Seite 2 von 2

Re: Sonoff RF Bridge

Verfasst: 22. Okt 2018 12:18
von sihui
Ich nutze kein Tasmota, sondern ESPEasy und kann deshalb nicht groß weiterhelfen.

Die meisten Antworten zu deinen Fragen sollten aber im Tasmota Wiki zu finden sein:

https://github.com/arendst/Sonoff-Tasmo ... T-Features

https://github.com/arendst/Sonoff-Tasmota/wiki/openHAB

https://github.com/arendst/Sonoff-Tasmo ... Bridge-433

Re: Sonoff RF Bridge

Verfasst: 22. Okt 2018 20:06
von Don Stefano
haegar33 hat geschrieben:Danke für die Hilfe aber ich habe wohl nicht konkret genug gefragt. Es geht nicht direkt um das Binding sonder die Anwendung in einem item und wie dann eine Kette von MQTT Kommandos genau wirken. Durch Try and Error und die Beispiele in diesem Thread habe ich nun zumindest auch einen Funkschalter mit der RF Bridge basteln können:

Code: Alles auswählen

Switch Flurlicht  "RfKey1 and RfKey2" <switch> (gLights)
	{ mqtt="<[NAS_broker:stat/sonoff/RESULT:state:OFF:.*RfKey2.*],
			>[NAS_broker:cmnd/sonoff/rfkey2:command:OFF:''],
			<[NAS_broker:stat/sonoff/RESULT:state:ON:.*RfKey1.*],
	        >[NAS_broker:cmnd/sonoff/rfkey1:command:ON:'']", autoupdate="false" }
In dieser Reihenfolge (ist die wichtig?) sorgen die einkommenden Nachrichten für eine korrekte Status Anzeige (Die Bridge melded rfkeyx: learned send") und die ausgehenden Nachrichten sind gekoppelt an den ON(rfkey1) oder OFF(rfkey2) Status.

Wie gesagt, Beispiele oder Erklärungen dieser Art habe ich nicht gefunden...
Und es geht ja noch weiter ;) Wie werden mehrere MQTT Kommandos bei anderen item typen verarbeitet. Z.b. hätte ich gerne die LAN IP der Bridge ausgelesen und dachte mir folgende Def sollte funktionieren:

Code: Alles auswählen

String Sonoff_IP "Status on current IP [%s]"
    { mqtt=">[NAS_broker:cmnd/sonoff/status:command:*:5],
            <[NAS_broker:stat/sonoff/STATUS5:state:JSONPATH($.StatusNET.IPAddress)]" }
cmdn/sonoff/status 5 gibt die WLAN Daten zurück. Geht aber nicht :roll: Wann werden überhaupt diese MQTT Kommandos ausgelöst? Wenn man den String anzeigt im HABPanel? Muss man noch anstossen....?
Du hast in deiner ersten Item Definition nur den Kommando-Teil drin (Das >Zeichen). Es fehlt der Input-Teil (mit < Zeichen) wo die über MQTT eingehende Statusänderung eingelesen wird. Mit autoupdate=Falle wird da der Status nicht richtig angezeigt
Wenn du die Statusmeldung weiter auswerten willst, musst du den JSON String, den der Schalter per Telemetrie zurückliefert auswerten. Ein Kommando benötigst du dazu nicht, da sich diese ja nicht so oft ändert und die Telemetrie-Meldungen regelmäßig versendet werden.

Mobil gesendet


Re: Sonoff RF Bridge

Verfasst: 23. Okt 2018 10:38
von haegar33
Du hast in deiner ersten Item Definition nur den Kommando-Teil drin (Das >Zeichen)
Du meinst mein Item Flurlicht? Da sind sowohl < als auch > MQTT Kommandos drin..?? :?

Ich glaube es is wichtig zwischen automatischen tele/... Meldungen und angeforderten stat/... Meldungen zu unterscheiden. Als tele kommt bei der Sonoff Bridge nur allg. Stand und Uptime. stat Meldungen muss man explizit erzeugen daher sind in item bindings wohl immer "<" Befehle nötig. Es ist mir nur nicht klar in welcher Reihenfolge bei einer item binding definition wie "{mttq= 1.Kommando, 2.Kommando... }" die MQTT Kommandos ausgewertet werden?

Re: Sonoff RF Bridge

Verfasst: 23. Okt 2018 21:45
von Don Stefano
Beim Flurlicht sehe ich nur > Zeichen, eines für ein und eines für aus. Der Status wird jeweils nach Ausführen des Sendebefehls zurückgemeldet und sollte bei autoupdate=true in das Item übertragen werden. Die Reihenfolge im Item ist völlig egal, da immer entweder ein Command ausgeführt (per MQTT gesendet) wird oder empfangen wird, nie beides gleichzeitig. Auch bei mehreren Sendebefehlen unterscheiden sich diese, es wird niemals On und Off gleichzeitig gesendet.

Beim Empfangen kannst du aus meinem Beispiel sehen, wie aus den unterschiedlichen Codes die verschiedenen Schaltzustände abgeleitet werden. Das dient dazu, zu erkennen, dass eine Fernbedienung verwendet wurde, um den Schalter auszulösen und nicht der Schalter über den von der Bridge ausgesendeten Code geschaltet wird.

Mobil gesendet


Re: Sonoff RF Bridge

Verfasst: 24. Okt 2018 13:10
von haegar33
Hallo Don!
Wenn du genau hinguckst wirst du beim item Flurlicht 4 MQTT Messages erkennen, 2 rein, 2 raus. Ist ja fast nach deinem Beispiel konstruiert ;)

Kennst du dich auch mit anderen items bzgl. MQTT aus? Z.B. hätte ich gerne die aktuelle IP Adresse der Bridge als String:

Code: Alles auswählen

String Sonoff_IP "Status on current IP [%s]"
    { mqtt=">[NAS_broker:cmnd/sonoff/status:command:*:5],
            <[NAS_broker:stat/sonoff/STATUS5:state:JSONPATH($.StatusNET.IPAddress)]" }
Der MQTT Befehl cmnd/sonoff/status 5 liefert eine MQTT stat/sonoff/STATUS5 Nachricht mit einem JSON String zurück in dem die IP Adresse extrahiert werden kann. Leider funzt das nicht wie oben definiert. Ich müsste das item String ja irgendwie "switchen" damit die Status Abfrage durchgeführt wird?

Re: Sonoff RF Bridge

Verfasst: 25. Okt 2018 21:43
von Don Stefano
Ich bin mir nicht sicher, was über MQTT mit deinem Befehl gesendet wird. Wie im anderen Thread beschrieben, wäre mein Vorschlag, ein Switch Item zum Auslösen der Statusmeldung anzulegen und über dieses eine Rule anzutriggern, die per MQTT Action das Kommando "Status 5" sendet. Das String Item kann dann das Ergebnis entgegen nehmen.

Mobil gesendet