Hi zusammen,
ich bin grad am Verzeweifeln. Ich habe schon Erfahrungen mit geflashten Steckdosen und der RF Bridge von Sonoff. Alles bisher nach einigem hin und her habe ich die Kontrolle darüber per Openhab3 bekommen.
Nun habe ich mir eine Sonoff zbBridge geholt, mit Tasmota geflasht und schon zwei Steckdosen damit verbunden.
Was mir jetzt nicht gelingt, ist das Steuern der Steckdosen über openhab.
Es fehlen mir also die Angaben für:
MQTT State Topic
MQTT Command Topic
Incoming Value Transformations
vielleicht fehlt mir auch noch was anderes, von dem ich noch nicht weiss
In der Console sehe ich beim manuellen Ausschalten der Steckdose:
12:52:32.056 MQT: tele/tasZbBridge/A4A5/SENSOR = {"zbHA_Kabel":{"Device":"0xA4A5","Name":"zbHA_Kabel","Power":0,"Endpoint":1,"LinkQuality":110}}
Hat jemand vielleicht schonmal eine ähnlich Konfig zum Laufen gebracht?
Würde mich über ein Beispiel riesig freuen.
Danke
Sonoff Zigbee Bridge, Tasmota und Openhab3
-
- Beiträge: 15
- Registriert: 26. Aug 2022 14:10
- warhook76
- Beiträge: 24
- Registriert: 4. Apr 2018 18:53
Re: Sonoff Zigbee Bridge, Tasmota und Openhab3
Hi,
ich würds mal mit
und mit
versuchen.
Gesendet von meinem A063 mit Tapatalk
ich würds mal mit
Code: Alles auswählen
cmnd/tasZbBridge/A4A5/POWER
und mit
Code: Alles auswählen
stat/tasZbBridge/A4A5/POWER
Gesendet von meinem A063 mit Tapatalk
-
- Beiträge: 15
- Registriert: 26. Aug 2022 14:10
Re: Sonoff Zigbee Bridge, Tasmota und Openhab3
Hey, vielen Dank für deine Antwort, aber leider klappt es nicht
Anbei ein Screenshot der Konfig...
Anbei ein Screenshot der Konfig...
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
- udo1toni
- Beiträge: 14057
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Sonoff Zigbee Bridge, Tasmota und Openhab3
Nein, so geht das nicht.
Tasmota stellt drei verschiedene Prefixes zur Verfügung, cmnd, stat und tele (vorausgesetzt, man hat in der Tasmota MQTT Konfiguration keinen Unsinn angestellt, wie z.B. das Fulltopic auf einen Wert zu setzen, der den Platzhalter %prefix% nicht enthält - dieser ist nicht optional, er MUSS im Fulltopic gesetzt sein, unbedingt, ohne Ausnahme!)
cmnd -> Tasmota abonniert diesen Zweig und wartet auf Befehle
stat -> Tasmota sendet hier Antworten auf empfangene Befehle, z.B. antwortet es mit dem Status des Schaltausgangs, wenn zuvor ein Schaltbefehl erkannt wurde.
tele -> Tasmota sendet hier alle 5 Minuten (default Wert) Daten zum allgemeinen Status.
Nun geht es hier um eine spezielle Hardware, ein Gateway. Dort ist es oftmals so, dass Geräte nur indirekt gesteuert werden können, ein Befehl muss an einen bestimmten Kanal gesendet werden, Tasmota leitet daraus den passenden Steuerbefehl ab, sendet ihn, empfängt die Antwort des Geräts und sendet wiederum diese Antwort an ein passendes Topic, entweder im Zweig tele oder im Zweig stat. Und da es hier viele mögliche Geräte gibt, wird die Antwort als JSON verpackt.
Das Topic cmnd/<geräteID>/POWER wird von Tasmota verwendet, um ein Relais zu schalten, stat/<geräteID>/POWER enthält anschließend den Status des Relais. Hier geht es aber ja nicht um Relais, die Tasmota selbst kontrolliert, stattdessen leitet Tasmota die Befehle nur weiter.
Ich habe so etwas bei mir nicht in Betrieb, mein Vorschlag wäre aber, schau bei Tasmota selbst nach, Tasmota ist wirklich hervorragend dokumentiert, zur Not gibt es auch einen Support Channel bei Discord. Ich habe das nie selbst gebraucht, hatte aber den Eindruck, dass die Leute da auch eher nett und hilfsbereit sind
Meine Vermutung ist, dass Du den Befehl jeweils mit formatBeforePublish zu einem JSON Objekt zusammenbauen musst, bevor dieses dann über exakt ein Topic für alle Geräte, die über das Gateway angebunden sind gesendet wird. Heißt, alle commandTopics all dieser Geräte sind identisch und unterscheiden sich lediglich in dem Teil, der bei formatBeforePublish eingetragen ist (z.B. eine Hardware ID, plus dem eigentlichen Befehl, der wiederum über eine Variable aus dem received command des verlinkten Items eingefügt wird.) Ähm, über den Satz reden wir noch mal, wenn Du weißt, was Du exakt senden musst...
Ankommend nimmst Du das Topic, über das das JSON ankommt und zerlegst das Topic passend, so dass der Status extrahiert wird. Dabei musst Du mutmaßlich zwei Transformation Services verketten, weil auch beim Status ein einziges Topic für viele Geräte zuständig sein wird. Ist nicht die leichteste Form der Konfiguratiuon, ist aber durchaus machbar, wenn man weiß, was wohin kommt...
Tasmota stellt drei verschiedene Prefixes zur Verfügung, cmnd, stat und tele (vorausgesetzt, man hat in der Tasmota MQTT Konfiguration keinen Unsinn angestellt, wie z.B. das Fulltopic auf einen Wert zu setzen, der den Platzhalter %prefix% nicht enthält - dieser ist nicht optional, er MUSS im Fulltopic gesetzt sein, unbedingt, ohne Ausnahme!)
cmnd -> Tasmota abonniert diesen Zweig und wartet auf Befehle
stat -> Tasmota sendet hier Antworten auf empfangene Befehle, z.B. antwortet es mit dem Status des Schaltausgangs, wenn zuvor ein Schaltbefehl erkannt wurde.
tele -> Tasmota sendet hier alle 5 Minuten (default Wert) Daten zum allgemeinen Status.
Nun geht es hier um eine spezielle Hardware, ein Gateway. Dort ist es oftmals so, dass Geräte nur indirekt gesteuert werden können, ein Befehl muss an einen bestimmten Kanal gesendet werden, Tasmota leitet daraus den passenden Steuerbefehl ab, sendet ihn, empfängt die Antwort des Geräts und sendet wiederum diese Antwort an ein passendes Topic, entweder im Zweig tele oder im Zweig stat. Und da es hier viele mögliche Geräte gibt, wird die Antwort als JSON verpackt.
Das Topic cmnd/<geräteID>/POWER wird von Tasmota verwendet, um ein Relais zu schalten, stat/<geräteID>/POWER enthält anschließend den Status des Relais. Hier geht es aber ja nicht um Relais, die Tasmota selbst kontrolliert, stattdessen leitet Tasmota die Befehle nur weiter.
Ich habe so etwas bei mir nicht in Betrieb, mein Vorschlag wäre aber, schau bei Tasmota selbst nach, Tasmota ist wirklich hervorragend dokumentiert, zur Not gibt es auch einen Support Channel bei Discord. Ich habe das nie selbst gebraucht, hatte aber den Eindruck, dass die Leute da auch eher nett und hilfsbereit sind
Meine Vermutung ist, dass Du den Befehl jeweils mit formatBeforePublish zu einem JSON Objekt zusammenbauen musst, bevor dieses dann über exakt ein Topic für alle Geräte, die über das Gateway angebunden sind gesendet wird. Heißt, alle commandTopics all dieser Geräte sind identisch und unterscheiden sich lediglich in dem Teil, der bei formatBeforePublish eingetragen ist (z.B. eine Hardware ID, plus dem eigentlichen Befehl, der wiederum über eine Variable aus dem received command des verlinkten Items eingefügt wird.) Ähm, über den Satz reden wir noch mal, wenn Du weißt, was Du exakt senden musst...
Ankommend nimmst Du das Topic, über das das JSON ankommt und zerlegst das Topic passend, so dass der Status extrahiert wird. Dabei musst Du mutmaßlich zwei Transformation Services verketten, weil auch beim Status ein einziges Topic für viele Geräte zuständig sein wird. Ist nicht die leichteste Form der Konfiguratiuon, ist aber durchaus machbar, wenn man weiß, was wohin kommt...
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.2.2, LXC), mit openHABian eingerichtet
- warhook76
- Beiträge: 24
- Registriert: 4. Apr 2018 18:53
Re: Sonoff Zigbee Bridge, Tasmota und Openhab3
@Udo
Meinst du das so?
Steht ja eigendlich alles im Log.
Gesendet von meinem A063 mit Tapatalk
Meinst du das so?
Code: Alles auswählen
Topic:
cmnd/tasZbBridge/A4A5/POWER
Payload:
{"zbHA_Kabel":{"Device":"0xA4A5","Name":"zbHA_Kabel","Power":0}}
Gesendet von meinem A063 mit Tapatalk
- udo1toni
- Beiträge: 14057
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Sonoff Zigbee Bridge, Tasmota und Openhab3
Ja, sowas.
Daraus kann man nun die notwendige Konfiguration des Channels ableiten.
Das Ganze ist dann ein Switch Channel.
Beim eintreffen des Befehls wird aus OFF ein "0" bzw. aus ON ein "1"
Anschließend wird %s im formatBeforePublish String durch das Ergebnis des vorherigen Schritts ersetzt. Es steht dann also an der Stelle entweder eine 1 oder eine 0.
Zum Abschluss wird der komplette String an das commandTopicgesendet.
Daraus kann man nun die notwendige Konfiguration des Channels ableiten.
Code: Alles auswählen
commandTopic: cmnd/tasZbBridge/A4A5/POWER
onValue: 1
offValue: 0
formatBeforePublish: {"zbHA_Kabel":{"Device":"0xA4A5","Name":"zbHA_Kabel","Power":%s}}
Beim eintreffen des Befehls wird aus OFF ein "0" bzw. aus ON ein "1"
Anschließend wird %s im formatBeforePublish String durch das Ergebnis des vorherigen Schritts ersetzt. Es steht dann also an der Stelle entweder eine 1 oder eine 0.
Zum Abschluss wird der komplette String an das commandTopicgesendet.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.2.2, LXC), mit openHABian eingerichtet
-
- Beiträge: 5
- Registriert: 22. Jun 2020 17:11
Re: Sonoff Zigbee Bridge, Tasmota und Openhab3
Outgoing Value Format
{"Device":"0xA4A5","Send":{"Power": %S}}
Poslano sa mog CPH2371 koristeći Tapatalk
{"Device":"0xA4A5","Send":{"Power": %S}}
Poslano sa mog CPH2371 koristeći Tapatalk