IR Remote, Tasmota, Trigger-Channel richtig konfigurieren

Die alternative Firmware für ESP8266 based devices

Moderatoren: seppy, udo1toni

8malklug
Beiträge: 8
Registriert: 4. Sep 2021 15:56

IR Remote, Tasmota, Trigger-Channel richtig konfigurieren

Beitrag von 8malklug »

Hallo Alle miteinander,
ich stehe auf dem Schlauch.
Habe hier eine Ferbedienung die mir in der Tasmota Konsole foldende Werte ausspuckt:

Drücke ich Taste 1:

Code: Alles auswählen

15:14:55.917 MQT: tele/IR-Fernbedienung/RESULT = {"IrReceived":{"Protocol":"NEC","Bits":32,"Data":"0xFF30CF","DataLSB":"0xFF0CF3","Repeat":0}} [/size]
Taste 2:

Code: Alles auswählen

15:16:54.730 MQT: tele/IR-Fernbedienung/RESULT = {"IrReceived":{"Protocol":"NEC","Bits":32,"Data":"0xFF18E7","DataLSB":"0xFF18E7","Repeat":0}}
..usw..
Leider kann ich beim Einrichten eines Trigger-Channels in OH nur den Pfad "MQTT Trigger Topic" angeben. Da dieser generell für die Fernbedienung ist funktioniert das nicht. Wie muss ich den genauen Pfad angeben, in JSON?

Danke schonmal

Gruß
Micha
von udo1toni » 5. Sep 2021 15:28
Nein, Du darfst nicht den eigentlichen Wert in das JSONPATH Statement rein schreiben.
Das JSONPATH Statement muss JSONPATH:$.IrReceived.Data lauten (oder eben mit LSB).

In der Rule triggerst Du auf received update auf das String Item, welches mit dem Channel gekoppelt ist.
Dann kannst Du im eigentlichen Code der Rule mittels if(ITem.state.toString == "0xFF30CF") gezielt auf die jeweilige Taste reagieren.
Gehe zur vollständigen Antwort

8malklug
Beiträge: 8
Registriert: 4. Sep 2021 15:56

Re: IR Remote, Tasmota, Trigger-Channel richtig konfigurieren

Beitrag von 8malklug »

Noch ein paar Details:

Die Fernbedienung ist ein 5€-mit-Empfängermodul-Gerät. Empfänger sitzt auf einem NodeMCU V3.4 ESP8266 ESP-12 mit der aktuellen IR-Bin tasmota-Software. Hardwareseitig kann ich das Problem denke ich Ausschließen, da es ja theoretisch geht, und praktisch nur die Detail nicht stimmen.

Ich habe auf bereits geschafft das ich mittels egal welcher taste der Fernbedienung das gewünschte Gerät (WLANSteckdose) angesprochen wird.
Aber habe ich eben beim Erstellen des Channels keine Ahnung was ich als MQTT Trigger Topic angeben muss damit eben nur eine Taste gültig ist.

Gruß

Micha

Benutzeravatar
udo1toni
Beiträge: 13860
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: IR Remote, Tasmota, Trigger-Channel richtig konfigurieren

Beitrag von udo1toni »

tele ist ja eher ungewöhnlich als Quelle, ich würde da stat erwarten, aber sei's drum.

Du musst lediglich ein generic MQTT Thing anlegen und in diesem einen String Channel. In dem String Channel trägst Du das Topic als stateTopic ein.

Das gelieferte JSON Objekt sieht aufgehübscht so aus:

Code: Alles auswählen

{
    "IrReceived": {
        "Protocol": "NEC",
        "Bits": 32,
        "Data": "0xFF30CF",
        "DataLSB": "0xFF0CF3",
        "Repeat": 0
    }
}
Ob eher Data oder eher DataLSB als Unterscheidung herangezogen werden muss, wirst Du vermutlich selbst ausprobieren müssen. Die gleiche Taste muss immer die gleiche Sequenz ergeben.
Die Auswertung des Codes erledigst Du in einer Rule. Wenn Du nur auf eines der Felder zugreifen musst (d.h. Dich interessieren keine Felder wie Repeat oder Protocol), kannst Du das passende JSONPATH Statement einfach in der incomming Transformation eintragen: JSONPATH:$.IrReceived.Data
Dann enthält der String Channel nur noch den Wert dieses Feldes.

Voraussetzung ist natürlich, dass mqtt installiert und funktional ist, ebenso muss die JSONPATH Transformation installiert sein.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

8malklug
Beiträge: 8
Registriert: 4. Sep 2021 15:56

Re: IR Remote, Tasmota, Trigger-Channel richtig konfigurieren

Beitrag von 8malklug »

Hi Udo,
danke für die schnelle Antwort, werde es gleich probieren.
mqtt und Jsonpath sind natürlich installiert

Gruß

Micha

8malklug
Beiträge: 8
Registriert: 4. Sep 2021 15:56

Re: IR Remote, Tasmota, Trigger-Channel richtig konfigurieren

Beitrag von 8malklug »

So, alles versucht, aber OH bietet mir beim Einrichten der Rules den Channel nicht an. Woran könnte das jetzt liegen?

8malklug
Beiträge: 8
Registriert: 4. Sep 2021 15:56

Re: IR Remote, Tasmota, Trigger-Channel richtig konfigurieren

Beitrag von 8malklug »

...zum Test einen Trigger Channel angeleg ---> zack verfügbar..?!?!!?

Bild:

Die Frage ist welche Werte rein sollen in "Transform Values",.. den Befehl in JSON nicht!

Schönen Abend
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Benutzeravatar
udo1toni
Beiträge: 13860
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: IR Remote, Tasmota, Trigger-Channel richtig konfigurieren

Beitrag von udo1toni »

Du musst den Channel mit einem Item verknüpfen und das Item verwenden. Es hat keine Nachteile, ein Item zu verwenden ;)
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

8malklug
Beiträge: 8
Registriert: 4. Sep 2021 15:56

Re: IR Remote, Tasmota, Trigger-Channel richtig konfigurieren

Beitrag von 8malklug »

...ich verzweifel, hab glaub ich alle möglichkeiten 20x (oder 30x) probiert und steh immernoch am Anfang mit meinem Problem. Der Lösungsansatz is schon logisch, funktioniert aber irgendwie nicht..

Wenn ich den TriggerChannel erstell ragiert die Geschichte wenigstens, aber so wie Du mir das erklärt hast geht leider garnix wenn ich die Remote-Tasten drück. Es liegt nicht am MQTT, der FX gibt mir ja die Befehle aus. Wenn ich die Rule als Trigger erstelle reagiert die Statusanzeige bei Tastendruck und schaltet. Wenn ich aber einen String-Channel erstell passiert nix. Also könnte es die Adresse sein, ich weiß aber null was ich da noch probieren könnte...

Also im Detail: (Alle Things Rules und Channels gelöscht)

1. Thing erstellen: MQTT-Binding, MQTT-Thing (alle Einstellungen LWT gemacht, zeigt Online)
2. Channel erstellen: MQTT State Topic = tele/IRFernbedienung/RESULT; Incoming Value Transformations = JSONPATH:$.IrReceived.Data.0xFF30CF
3. Link Channel to Item: Create a new Item. Profile: JSONPATH. JSONPath Expression: sowohl mit als auch ohne "JSONPATH:" probiert.. den gleichen Pfad wie beim Channel erstellen.

Code: Alles auswählen

UID: mqtt:topic:Broker:IRFernbedienung
label: IRFernbedienung
thingTypeUID: mqtt:topic
configuration:
  payloadNotAvailable: Offline
  availabilityTopic: tele/IRFernbedienung/LWT
  payloadAvailable: Online
bridgeUID: mqtt:broker:Broker
location: Schlafzimmer
channels:
  - id: IRChannel01
    channelTypeUID: mqtt:string
    label: IRChannel01
    description: ""
    configuration:
      qos: 0
      stateTopic: tele/IRFernbedienung/RESULT
      transformationPattern: JSONPATH:$.IrReceived.Data.0xFF30CF
So der Code bis jetzt.

4. Rules erstellen: WHEN: Add Trigger: An Item-Event, hier die IR gewählt, received an Command, bleibt auf "any"
THEN: is klar.


UND NUN DER TEST: IDLE ändert den Zustand nicht und es läuft garnichts.
Auch alle weiteren einstellungsmöglichkeiten hab ich probiert, nichts..
Vielleicht ist das doch nicht der richtige Weg.

Ich probiere weiter..

Gruß
Micha

8malklug
Beiträge: 8
Registriert: 4. Sep 2021 15:56

Re: IR Remote, Tasmota, Trigger-Channel richtig konfigurieren

Beitrag von 8malklug »

..bin einen Schritt, bzw eine Erkenntniss weiter:

Wenn ich auf das Item direkt geh zeigt es mir zumindest schonmal den empfangenen Wert an den auch der FX rausfiltert.
Allerdings bekomm ich die Rule nicht zum laufen, egal was ich da eintrage, der Status ändert sich nicht. Klicke ich manuel auf ausführen gehts, der Status ändert sich kurz und das Gerät schaltet... iwo hab ich n Hänger...

Code: Alles auswählen

triggers:
  - id: "1"
    configuration:
      itemName: IRFernbedienung_IRChannel01
      command: "0xFF30CF"
    type: core.ItemCommandTrigger
conditions:
  - id: "3"
    configuration:
      itemName: LichtFensterseite_LichtFensterseite
      operator: "!="
      state: OFF
    type: core.ItemStateCondition
actions:
  - inputs: {}
    id: "2"
    configuration:
      itemName: LichtFensterseite_LichtFensterseite
      command: OFF
    type: core.ItemCommandAction
oder ist einfach nur der empfangene Code noch zu übersetzen oder eine Adresse mit anzugeben??
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Benutzeravatar
udo1toni
Beiträge: 13860
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: IR Remote, Tasmota, Trigger-Channel richtig konfigurieren

Beitrag von udo1toni »

Nein, Du darfst nicht den eigentlichen Wert in das JSONPATH Statement rein schreiben.
Das JSONPATH Statement muss JSONPATH:$.IrReceived.Data lauten (oder eben mit LSB).

In der Rule triggerst Du auf received update auf das String Item, welches mit dem Channel gekoppelt ist.
Dann kannst Du im eigentlichen Code der Rule mittels if(ITem.state.toString == "0xFF30CF") gezielt auf die jeweilige Taste reagieren.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Antworten