Universelle Infrarot Fernbedienung mit Tasmota steuert AppleTV mit Alexa Integration

Ziel: universelle Fernbedienung mit Alexa Integration

Mein Ziel ist es, dass ich eine universelle Fernbedienung mit Tasmota realisiere. Dazu verwende ich die auvisio WLAN Fernbedienung von Pearl, auch unter dem Namen URC-150.app. Die Produktseite ist hier zu finden https://www.pearl.de/a-NX4519-3103.shtml

Flashen der IR Fernbedienung mit Tasmota

Auch diese ungefähr Streichholzschachtel große Box basiert auf einem ESP8266 und der Tuya Software, mit den gleichen Sicherheitslücken wie etliche Steckdosen und kann mittels Tuya-Convert mit Tasmota geflasht werden. Wie das gemacht werden kann habe ich hier am Beispiel einer Teckin SP21 Steckdose beschrieben.

Das Flashen geht leicht von der Hand und klappte im zweiten Anlauf, nachdem ich den Resetknopf an der Unterseite der auvision WLAN Fernbedienung lange gedrückt hielt. Ggf. muss man hier etwas probieren (lange drücken, gedrückt halten bis der Flashvorgang startet, mehrfach drücken…. wer hier genaueres weiß gerne in die Kommentare schreiben).

Nach dem Flashen macht Tasmota wie gehabt einen WLAN Accesspoint TASMOTA-XXXX auf, mit dem man sich z.B. mit dem Handy verbindet und den Zugang zum lokalen WLAN konfiguriert. Anschließend startet Tasmota neu und ist ab sofort im lokalen WLAN unter der per DHCP zugewiesenen IP Adresse erreichbar.

Um die IP Adresse des neuen Geräts im lokalen Netzwerk herauszufinden schaut man im Router in der Liste der Netzwerkgeräte nach. Alternativ verwende ich dafür die App Fing die das lokale Netzwerk nach Geräten scannt. Schön ist, dass man hier auch gleich noch nach offenen Ports scannen kann uvm.

Hat man die IP des neuen Geräts herausgefunden ruft man diese im Browser auf und kann das Tasmota für die IR Fernbedienung konfigurieren.

Konfiguration von Tasmota für die IR Fernbedienung

Nach dem ersten Flashen mit tasmota.bin habe ich per Over The Air Update das tasmota-ir Binary geflasht. Ansonsten war das senden per irsend nicht möglich. Um das IR Binary einzuspielen muss nur unter Firmware Upgrade die OTA Url http://ota.tasmota.com/tasmota/release/tasmota-ir.bin angegeben werden,

Als Template habe ich unter Configuration / Configure Other das Template für auvisio S06 eingetragen (Haken „Activate“ nicht vergessen!):

{"NAME":"NX-4519-675","GPIO":[255,255,255,255,52,51,0,0,255,255,8,255,255],"FLAG":1,"BASE":18}

Hier aktiviere ich auch MQTT, das ich für die Steuerung später benötige. Unter Configuration / Configure MQTT trage ich noch meinen MQTT Broker ein und vergebe ein Topic. In meinem Fall nenne ich das Topic infrarot.

Fernbedienung auslesen

Nun beginnt der spannende Teil, das Auslesen von Infrarot Kommandos. Dazu öffne in Tasmota die Console, halte die Fernbedienung in Richtung der auvisio Box und drücke die gewünschten Tasten an der Fernbedienung. In der Console werden daraufhin die empfangenen IR Kommandos geloggt. Diese Kommandos verwenden wir dann, um sie mit IRsend zu versenden. Beispielhaft habe ich nach dem Druck auf Taste 1 meiner Fernbedienung in der Console diese Ausgabe erhalten:

17:47:09 MQT: tele/infrarot/RESULT = {"IrReceived":{"Protocol":"RC5","Bits":12,"Data":"0x201","DataLSB":"0x4080","Repeat":0}}

Um nun über die auvisio Box das Kommando für Taste 1 zu senden kann in der Console einfach das Kommando in der Form IRsend {"Protocol":"<value>","Bits":<value>,"Data":<value>} abgesetzt werden. Konkret für die oben empfangenen Daten also: IRsend {"Protocol":"RC5","Bits":12,"Data":0x201}, Auf der Konsole wird die Aktion entsprechend protokolliert und das Gerät entsprechend geschaltet:

17:54:01 CMD: IRsend {"Protocol":"RC5","Bits":12,"Data":0x201}
17:54:01 MQT: stat/infrarot/RESULT = {"IRSend":"Done"}

Details zu IRsend gibt es im Tasmota Wiki

Exkurs – Protocol: unknown

Mit einer Fernbedienung für meinen Samsung Fernseher hatte ich die Schwierigkeit, dass als Protocol „unknown“ angezeigt wurde. Meine Recherche hat mich zur Möglichkeit Raw Daten auszulesen geführt. Hierzu wird über die Console mittels SetOption58 1 (Doku zur Option hier) der Empfang von Raw-Daten eingeschaltet. Die Ausgabe unten zeigt, wie diese Raw Daten dann aussehen.

 17:47:35 CMD: SetOption58 1
 17:47:35 MQT: stat/infrarot/RESULT = {"SetOption58":"ON"}
 17:47:55 MQT: tele/infrarot/RESULT = {"Time":"2019-12-14T17:47:55","IrReceived":{"Protocol":"UNKNOWN","Bits":34,"Hash":"0xF4BA2988","RawData":[4446,4468,596,1644,600,1642,598,1640,596,524,568,572,574,524,572,544,572,572,548,1670,570,1670,598,1640,576,550,590,548,576,524,592,522,600,522,570,550,596,1646,596,522,596,526,594,524,572,550,594,546,550,570,572,1644,598,524,570,1668,598,1642,602,1640,594,1648,570,1668,572,1670,598],"RawDataInfo":[67,67,0]}}

Aus diesen Raw-Daten habe ich wie im Tasmota Wiki beschrieben die notwendigen Parameter ermittelt …

Header mark 4446
Header space 4468
Bit mark: 585
Zero space: 540
One space: 1650
Bitcode: 11100000111000000100000010111111

… um damit schließlich dieses Kommando abzusetzen IRsend raw,0,4446,4468,585,540,1650,11100000111000000100000010111111

Und siehe da – der Fernseher ging an. Yippieh!

Wie ich allerdings später festgestellt habe hätte ich mir das komplizierte Vorgehen auch sparen können. Ein langer Druck auf die entsprechenden Tasten auf der Fernbedienung führen dazu, dass einige Male das Protokoll als „Samsung“ erkannt wurde. Vielleicht hätte auch SetOption38 zur Anpassung der Protokoll-Erkenn-Empfindlichkeit weitergeholfen über die ich aber leider erst jetzt gestolpert bin.

Nun ja…. ging auch so … und ich habe einige über IR Protokolle gelernt.

Und jetzt wird per MQTT ferngesteuert

Auf der Console in Tasmota haben wir nun der Reihe nach alle Tasten gedrückt und uns alle benötigten Codes aus den „Data“ Strings besorgt. Wie wir sehen können werden sie über Tasmota dank eingeschaltetem MQTT auch direkt an das Topic tele/infrarot/RESULT gepublished.

17:47:09 MQT: tele/infrarot/RESULT = {"IrReceived":{"Protocol":"RC5","Bits":12,"Data":"0x201","DataLSB":"0x4080","Repeat":0}}

Also versuchen wir jetzt einfach den anderen Weg und publishen an das cmnd Topic cmnd/infrarot/irsend {"Protocol":"RC5","Bits":12,"Data": 0x201}. Hierzu verwende ich zunächst den MQTT Explorer als Client.

Das klappt ja schon mal prima!

Mittlerweile habe ich Node Red installiert (bei mir als Service in IOBroker im Docker Container auf der Synology DS718+) und lege mir daher einen Flow für meine Fernbedienung an. Wer einen Einstieg in Node Red sucht, dem kann ich die Videos von haus-automatisierung.com zu Node Red sehr empfehlen.

Nun habe ich einen schönen Knopf auf meinem Node Red Dashboard, um meinen Fernseher ein- und auszuschalten. Aber ich will mehr: Jetzt soll AppleTV gesteuert werden.

AppleTV per MQTT fernsteuern

Der erste Versuch über den Node https://flows.nodered.org/node/node-red-contrib-apple-tv ist fehlgeschlagen. Node Red lief zu der Zeit auf einem Raspberry Pi und die Installation des Node ist bei sodium fehlgeschlagen. Hier dann einen für mich viel einfacheren Weg gegangen, indem ich die auvision Box als Fernbedienung im AppleTV angelernt habe. Hierzu habe ich mir eine Reihe von Codes „ausgedacht“, die ich per MQTT oder Tasmota Console wie oben beschrieben an das AppleTV geschickt habe.

IRSend {"Protocol":"PANASONIC","Bits":48,"Data":0x100BCBD}

Nachfolgende Data-Codes habe ich mit dem Protokoll Panasonic mit 48 Bit zum Anlernen der neuen Fernbedienung an. das Apple TV verwendet.

TasteData
Pfeil hoch0x100BCBD
Pfeil runter0x400401004C4D
Pfeil links0x400401000405
Pfeil rechts0x400401008485
Select0x400401002C2D
Menu0x40040100ACAD
KommandoData
Play0x400401007273
Pause0x40040100F2F3
Stop0x400401005253
zurückspulen0x40040100D2D3
vorspulen0x400401009293
Skip zurück0x400401004A4B
Skip vorwärts0x400401000E0F
zurückspringen0x400401004E4F
vorspringen0x400401008E8F

Untenstehend ist der Node-Red Flow beigefügt, den ich zur Fernbedienung verwende.

[
    {
        "id": "3b9c6e64.3a6a02",
        "type": "tab",
        "label": "AppleTV",
        "disabled": false,
        "info": ""
    },
    {
        "id": "8cd74408.1f0058",
        "type": "comment",
        "z": "3b9c6e64.3a6a02",
        "name": "AppleTV angelernte Codes",
        "info": "Verwendungsbeispiel auf Tasmota Console:\nIRSend {\"Protocol\":\"PANASONIC\",\"Bits\":48,\"Data\":0x100BCBD}\n\nAllgemeine Tasten\n\n0x100BCBD =„Pfeil hoch“\n0x400401004C4D =„Pfeil runter“\n0x400401000405 =„Pfeil links“\n0x400401008485 =„Pfeil rechts“\n0x400401002C2D =„Select“\n0x40040100ACAD =„Menu“\n\nWiedergabetasten\n\n0x400401007273=„Play“\n0x40040100F2F3=„Pause“\n0x400401005253=„Stop“\n0x40040100D2D3=„zurückspulen“\n0x400401009293=„vorspulen“\n0x400401004A4B=„Skip zurück„\n0x400401000E0F=„Skip vorwärts“\n0x400401004E4F=„zurückspringen“\n0x400401008E8F=„vorspringen“",
        "x": 150,
        "y": 120,
        "wires": []
    },
    {
        "id": "3923891d.98ce66",
        "type": "mqtt out",
        "z": "3b9c6e64.3a6a02",
        "name": "",
        "topic": "cmnd/infrarot/irsend",
        "qos": "",
        "retain": "",
        "broker": "",
        "x": 560,
        "y": 520,
        "wires": []
    },
    {
        "id": "a89a8e3b.33991",
        "type": "ui_button",
        "z": "3b9c6e64.3a6a02",
        "name": "Menu",
        "group": "c296a358.3a5d9",
        "order": 1,
        "width": 0,
        "height": 0,
        "passthru": false,
        "label": "AppleTV an",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "icon": "",
        "payload": "{\"Protocol\":\"PANASONIC\",\"Bits\":48,\"Data\":0x40040100ACAD}",
        "payloadType": "str",
        "topic": "",
        "x": 90,
        "y": 160,
        "wires": [
            [
                "3923891d.98ce66"
            ]
        ]
    },
    {
        "id": "1e51cb20.b2b7c5",
        "type": "ui_button",
        "z": "3b9c6e64.3a6a02",
        "name": "Pfeil hoch",
        "group": "c296a358.3a5d9",
        "order": 3,
        "width": 2,
        "height": 2,
        "passthru": false,
        "label": "",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "icon": "arrow_upwards",
        "payload": "{\"Protocol\":\"PANASONIC\",\"Bits\":48,\"Data\": 0x100BCBD}",
        "payloadType": "str",
        "topic": "",
        "x": 100,
        "y": 220,
        "wires": [
            [
                "3923891d.98ce66"
            ]
        ]
    },
    {
        "id": "4b0c2bfc.435f44",
        "type": "ui_button",
        "z": "3b9c6e64.3a6a02",
        "name": "Pfeil links",
        "group": "c296a358.3a5d9",
        "order": 7,
        "width": 2,
        "height": 2,
        "passthru": false,
        "label": "",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "icon": "arrow_back",
        "payload": "{\"Protocol\":\"PANASONIC\",\"Bits\":48,\"Data\": 0x400401000405}",
        "payloadType": "str",
        "topic": "",
        "x": 100,
        "y": 260,
        "wires": [
            [
                "3923891d.98ce66"
            ]
        ]
    },
    {
        "id": "7013e84b.2c3038",
        "type": "ui_button",
        "z": "3b9c6e64.3a6a02",
        "name": "Pfeil rechts",
        "group": "c296a358.3a5d9",
        "order": 9,
        "width": 2,
        "height": 2,
        "passthru": false,
        "label": "",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "icon": "arrow_forward",
        "payload": "{\"Protocol\":\"PANASONIC\",\"Bits\":48,\"Data\": 0x400401008485}",
        "payloadType": "str",
        "topic": "",
        "x": 110,
        "y": 300,
        "wires": [
            [
                "3923891d.98ce66"
            ]
        ]
    },
    {
        "id": "26ccfc3c.7f7734",
        "type": "ui_button",
        "z": "3b9c6e64.3a6a02",
        "name": "Pfeil unten",
        "group": "c296a358.3a5d9",
        "order": 11,
        "width": 2,
        "height": 2,
        "passthru": false,
        "label": "",
        "tooltip": "",
        "color": "",
        "bgcolor": "000000",
        "icon": "arrow_downward",
        "payload": "{\"Protocol\":\"PANASONIC\",\"Bits\":48,\"Data\": 0x400401004C4D}",
        "payloadType": "str",
        "topic": "",
        "x": 110,
        "y": 340,
        "wires": [
            [
                "3923891d.98ce66"
            ]
        ]
    },
    {
        "id": "f9e5e55e.7bcea8",
        "type": "ui_button",
        "z": "3b9c6e64.3a6a02",
        "name": "Select",
        "group": "c296a358.3a5d9",
        "order": 8,
        "width": 2,
        "height": 2,
        "passthru": false,
        "label": "",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "icon": "lens",
        "payload": "{\"Protocol\":\"PANASONIC\",\"Bits\":48,\"Data\": 0x400401002C2D}",
        "payloadType": "str",
        "topic": "",
        "x": 90,
        "y": 380,
        "wires": [
            [
                "3923891d.98ce66"
            ]
        ]
    },
    {
        "id": "276541f1.71092e",
        "type": "ui_button",
        "z": "3b9c6e64.3a6a02",
        "name": "Play",
        "group": "c296a358.3a5d9",
        "order": 16,
        "width": 2,
        "height": 1,
        "passthru": false,
        "label": "",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "icon": "play_circle_outline",
        "payload": "{\"Protocol\":\"PANASONIC\",\"Bits\":48,\"Data\": 0x400401007273}",
        "payloadType": "str",
        "topic": "",
        "x": 90,
        "y": 460,
        "wires": [
            [
                "3923891d.98ce66"
            ]
        ]
    },
    {
        "id": "637bb77c.937d78",
        "type": "ui_button",
        "z": "3b9c6e64.3a6a02",
        "name": "Pause",
        "group": "c296a358.3a5d9",
        "order": 17,
        "width": 2,
        "height": 1,
        "passthru": false,
        "label": "",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "icon": "pause_circle_outline",
        "payload": "{\"Protocol\":\"PANASONIC\",\"Bits\":48,\"Data\": 0x40040100F2F3}",
        "payloadType": "str",
        "topic": "",
        "x": 90,
        "y": 500,
        "wires": [
            [
                "3923891d.98ce66"
            ]
        ]
    },
    {
        "id": "371d0ee6.d097e2",
        "type": "ui_button",
        "z": "3b9c6e64.3a6a02",
        "name": "Stop",
        "group": "c296a358.3a5d9",
        "order": 18,
        "width": 2,
        "height": 1,
        "passthru": false,
        "label": "",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "icon": "stop",
        "payload": "{\"Protocol\":\"PANASONIC\",\"Bits\":48,\"Data\": 0x400401005253}",
        "payloadType": "str",
        "topic": "",
        "x": 90,
        "y": 540,
        "wires": [
            [
                "3923891d.98ce66"
            ]
        ]
    },
    {
        "id": "777ffc46.bb5fc4",
        "type": "ui_button",
        "z": "3b9c6e64.3a6a02",
        "name": "FastForward",
        "group": "c296a358.3a5d9",
        "order": 22,
        "width": 1,
        "height": 1,
        "passthru": false,
        "label": "",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "icon": "fast_forward",
        "payload": "{\"Protocol\":\"PANASONIC\",\"Bits\":48,\"Data\": 0x400401009293}",
        "payloadType": "str",
        "topic": "",
        "x": 210,
        "y": 580,
        "wires": [
            [
                "3923891d.98ce66"
            ]
        ]
    },
    {
        "id": "9df23bbb.83e028",
        "type": "ui_button",
        "z": "3b9c6e64.3a6a02",
        "name": "FastRewind",
        "group": "c296a358.3a5d9",
        "order": 21,
        "width": 1,
        "height": 1,
        "passthru": false,
        "label": "",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "icon": "fast_rewind",
        "payload": "{\"Protocol\":\"PANASONIC\",\"Bits\":48,\"Data\": 0x40040100D2D3}",
        "payloadType": "str",
        "topic": "",
        "x": 210,
        "y": 620,
        "wires": [
            [
                "3923891d.98ce66"
            ]
        ]
    },
    {
        "id": "e0cad414.ae0238",
        "type": "ui_button",
        "z": "3b9c6e64.3a6a02",
        "name": "Skip previous",
        "group": "c296a358.3a5d9",
        "order": 20,
        "width": 1,
        "height": 1,
        "passthru": false,
        "label": "",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "icon": "skip_previous",
        "payload": "{\"Protocol\":\"PANASONIC\",\"Bits\":48,\"Data\": 0x400401004A4B}",
        "payloadType": "str",
        "topic": "",
        "x": 220,
        "y": 700,
        "wires": [
            [
                "3923891d.98ce66"
            ]
        ]
    },
    {
        "id": "18e246cc.9c4d39",
        "type": "ui_button",
        "z": "3b9c6e64.3a6a02",
        "name": "Skip next",
        "group": "c296a358.3a5d9",
        "order": 23,
        "width": 1,
        "height": 1,
        "passthru": false,
        "label": "",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "icon": "skip_next",
        "payload": "{\"Protocol\":\"PANASONIC\",\"Bits\":48,\"Data\": 0x400401000E0F}",
        "payloadType": "str",
        "topic": "",
        "x": 200,
        "y": 660,
        "wires": [
            [
                "3923891d.98ce66"
            ]
        ]
    },
    {
        "id": "f8972401.86fe68",
        "type": "ui_button",
        "z": "3b9c6e64.3a6a02",
        "name": "Redo / Jump forward",
        "group": "c296a358.3a5d9",
        "order": 27,
        "width": 1,
        "height": 1,
        "passthru": false,
        "label": "",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "icon": "redo",
        "payload": "{\"Protocol\":\"PANASONIC\",\"Bits\":48,\"Data\": 0x400401008E8F}",
        "payloadType": "str",
        "topic": "",
        "x": 240,
        "y": 740,
        "wires": [
            [
                "3923891d.98ce66"
            ]
        ]
    },
    {
        "id": "8db698db.f95d88",
        "type": "ui_button",
        "z": "3b9c6e64.3a6a02",
        "name": "Undo / Jump back",
        "group": "c296a358.3a5d9",
        "order": 26,
        "width": 1,
        "height": 1,
        "passthru": false,
        "label": "",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "icon": "undo",
        "payload": "{\"Protocol\":\"PANASONIC\",\"Bits\":48,\"Data\": 0x400401004E4F}",
        "payloadType": "str",
        "topic": "",
        "x": 230,
        "y": 780,
        "wires": [
            [
                "3923891d.98ce66"
            ]
        ]
    },
    {
        "id": "c296a358.3a5d9",
        "type": "ui_group",
        "z": "",
        "name": "AppleTV Fernbedienung",
        "tab": "3eb961f3.61695e",
        "order": 1,
        "disp": true,
        "width": 6,
        "collapse": false
    },
    {
        "id": "3eb961f3.61695e",
        "type": "ui_tab",
        "z": "",
        "name": "AppleTV",
        "icon": "apple",
        "order": 4,
        "disabled": false,
        "hidden": false
    }
]

Und jetzt noch Alexa Integration

Mit Alexa mache ich es mir jetzt einfach. Ich verwende den IOBroker Adapter Alexa2, der entsprechende Nodes in Node Red zur Verfügung stellt, mit denen ich auf Routinen zugreifen kann, die ich in der Alexa App angelegt habe. So habe ich mir Routinen für „Alexa, Fernseher Pause“ und „Alexa, Fernseher Wiedergabe“ angelegt. Auf diese kann ich in Node Red zugreifen und reagieren. Hierzu prüfe ich den Wert der Alexa Routine reagiere auf „true“, schreibe meine Payload, die ich an MQTT schicke und setzte den Wert der Alexa Routine nach einer Sekunde auf false zurück.

Wahrscheinlich etwas komplizierter als es sein müsste, aber es klappt.

Ziel erreicht

Nach einigem hin-und her hat es also schließlich geklappt und ich steuere mein AppleTV zumindest in den wesentlichsten Funktionen per Alexa. Über Kommentare zu einfacheren Wegen oder Anregungen würde ich mich freuen.

Viel Spaß damit!

9 Antworten auf „Universelle Infrarot Fernbedienung mit Tasmota steuert AppleTV mit Alexa Integration“

  1. Alternativer Denkanstoß: (mqtt->)Node-Red->AV-Receiver->PlaybackDevice

    Wenn bei mir jemand anruft, schickt die FritzBox node ein „Drück Pause“ an den AV Receiver (Yamaha) und egal ob Shield, AppleTV oder Kodi halten dann an. Parallel erstellt die FB-Phonebook Node einen Eintrag für eine Toast Meldung für den LG Fernseher.

    Über Tasmota IR -> NodeRed habe ich jetzt zwei ungenutzte Tasten der AV Receiver FB verwendet um die Jalousie (Shelly2.5) zu bedienen.

    Gruß

  2. Hallo, vielen Dank für die Tipps! Es hat alles geklappt, ich konnte die URC-150.app, flashen, die Codes meiner Fernbedienung in der „Console“ auslesen und diese mit IRsend erfolgreich wieder versenden.
    Nun bin ich auf der Suche nach einer App für Android, in der ich die ausgelesenen Codes verschiedenen Buttons zuordnen kann, um sie dann mit dem Handy per Touch via WiFi an den IR-Sender zu schicken.
    Für einen Tip wäre ich sehr dankbar.

    1. Hallo photona!

      Wie hat das Flashen bei dir geklappt? Ich habe mir das Gerät gerade neu gekauft und bekomme es nicht mit dem Raspberry gepairt. Wenn ich den Knopf an der Unterseite länger drücke, blinkt die LED schnell. Laut dem Skript (start_flash.sh) verbindet sich auch ein ESP82xx, aber es gibt irgendein Problem. Nach einiger Zeit erscheint dann immer die Meldung „Timed out while waiting for the device to (re)connect“. Wie hast du das Gerät in den richtigen Modus versetzt?

      Danke & viele Grüße,
      Thomas

        1. Hi, habe auch mit dem Problem gekämpft dass ich mit Tuya nicht flashen konnte. Das Problem liegt beim Raspberry PI am OS. Beim Raspbian mit Version Bullseye läuft Tuya nicht, man muss zurück auf Buster. Damit lief es dann bei mir auch sofort und ohne Probleme.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert