MQTT Problem beim Tasmota Sonoff Zigbee
-
- Beiträge: 32
- Registriert: 24. Jan 2021 14:54
MQTT Problem beim Tasmota Sonoff Zigbee
Guten Abend,
wieso geht mein Befehl nicht?
Er soll doch nur das Licht an und aus schalten.
Im Command habe ich das: ZbSend {"Device":"0x1BAC", "Send":{"Power":true}}
UID: mqtt:topic:9f9f871918:ae39436dcd
label: tasmota_zigbee_controller
thingTypeUID: mqtt:topic
configuration:
payloadNotAvailable: OFF
payloadAvailable: ON
bridgeUID: mqtt:broker:4595f8b14b
location: System
channels:
- id: Schlafzimmerdeckenleuchte
channelTypeUID: mqtt:switch
label: Schlafzimmerdeckenleuchte
description: ""
configuration:
commandTopic: cmnd/tasmota_E32AEB/ZbSend{"Device":"0x1BAC",
"Send":{"Power":ON:true OFF:false}}
Ich steh total auf dem Schlauch -.-
Bitte, helft mir
Mit freundlichen Grüßen,
Mordi
wieso geht mein Befehl nicht?
Er soll doch nur das Licht an und aus schalten.
Im Command habe ich das: ZbSend {"Device":"0x1BAC", "Send":{"Power":true}}
UID: mqtt:topic:9f9f871918:ae39436dcd
label: tasmota_zigbee_controller
thingTypeUID: mqtt:topic
configuration:
payloadNotAvailable: OFF
payloadAvailable: ON
bridgeUID: mqtt:broker:4595f8b14b
location: System
channels:
- id: Schlafzimmerdeckenleuchte
channelTypeUID: mqtt:switch
label: Schlafzimmerdeckenleuchte
description: ""
configuration:
commandTopic: cmnd/tasmota_E32AEB/ZbSend{"Device":"0x1BAC",
"Send":{"Power":ON:true OFF:false}}
Ich steh total auf dem Schlauch -.-
Bitte, helft mir
Mit freundlichen Grüßen,
Mordi
-
- Beiträge: 32
- Registriert: 24. Jan 2021 14:54
Re: MQTT Problem beim Tasmota Sonoff Zigbee
Guten Morgen.
Problem halb gelöst.
Hab einfach den Commandstring geändert in:
OFF = cmnd/tasmotaxyz/ZbSend {"Device":"0x1BAC", "Send":{"Power"false}}
ON = cmnd/tasmotaxyz/ZbSend {"Device":"0x1BAC", "Send":{"Power":true}}
Das Licht kann hierdurch aus und eingeschaltet werden.
Nun, wie integriere ich dann den Stat/tasmota/ wenn ich den Lichtschalter Manuell schließe?
Denn wenn ich das tu, dann wird dies im OpenHAB3 nicht wahrgenommen.
Es kommt ein command mit ZbReceived an, diesen muss ich doch weitergeben können im MQTT.
Ich kann den Command in der Konsole selbst nicht abfragen.
Vielen herzlichen Dank!
Lucas
Problem halb gelöst.
Hab einfach den Commandstring geändert in:
OFF = cmnd/tasmotaxyz/ZbSend {"Device":"0x1BAC", "Send":{"Power"false}}
ON = cmnd/tasmotaxyz/ZbSend {"Device":"0x1BAC", "Send":{"Power":true}}
Das Licht kann hierdurch aus und eingeschaltet werden.
Nun, wie integriere ich dann den Stat/tasmota/ wenn ich den Lichtschalter Manuell schließe?
Denn wenn ich das tu, dann wird dies im OpenHAB3 nicht wahrgenommen.
Es kommt ein command mit ZbReceived an, diesen muss ich doch weitergeben können im MQTT.
Ich kann den Command in der Konsole selbst nicht abfragen.
Vielen herzlichen Dank!
Lucas
- udo1toni
- Beiträge: 13867
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: MQTT Problem beim Tasmota Sonoff Zigbee
Also, erstmal kommt kein Command an, sondern ein State
Und dann ist die RF Bridge halt schon ein bisschen spezieller. Ich habe selbst keine RF Bridge, kann da also auch nur raten. Grundsätzlich ist es aber so, dass Du das commandTopic eintragen musst und das stateTopic ebenso eintragen musst. Für beide Richtungen kannst Du (bzw. musst Du) jeweils eine passende Transformation einriuchten. Wie erwähnt habe ich selbst kein entsprechendes Objekt.
Und dann ist die RF Bridge halt schon ein bisschen spezieller. Ich habe selbst keine RF Bridge, kann da also auch nur raten. Grundsätzlich ist es aber so, dass Du das commandTopic eintragen musst und das stateTopic ebenso eintragen musst. Für beide Richtungen kannst Du (bzw. musst Du) jeweils eine passende Transformation einriuchten. Wie erwähnt habe ich selbst kein entsprechendes Objekt.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 32
- Registriert: 24. Jan 2021 14:54
Re: MQTT Problem beim Tasmota Sonoff Zigbee
Hallo Udo.
Ja meinte ich doch.
Ich muss doch bestimmt den state mit gerätezuordnung an openHAB weitergeben.
Oder einfach nur stat/tasmotaxyz/ ?
Woher weiß dann OpenHAB welcher Stat zu welchem Item gehört?
Hast du mir den genauen state Befehl?
Lucas
Ja meinte ich doch.
Ich muss doch bestimmt den state mit gerätezuordnung an openHAB weitergeben.
Oder einfach nur stat/tasmotaxyz/ ?
Woher weiß dann OpenHAB welcher Stat zu welchem Item gehört?
Hast du mir den genauen state Befehl?
Lucas
- udo1toni
- Beiträge: 13867
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: MQTT Problem beim Tasmota Sonoff Zigbee
Mein Rat: Nimm einen mqtt Sniffer (z.B. mqtt.fx oder - mein bevorzugter - mqtt spy), sende den korrekten Befehl zum Schalten und schau, was als Antwort zurück kommt.
Aus der Antwort kannst Du sowohl das Topic als auch die nötige Transformation ableiten.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 32
- Registriert: 24. Jan 2021 14:54
Re: MQTT Problem beim Tasmota Sonoff Zigbee
Hallo Udo,
nun habe ich die Wichtigsten Geräte mit MQTT.FX ausgelesen.
Dies ist ein Lichtschalter der einen Zigbee schaltet.
tele/tasmota:E32AEB/Sensor
mit
{"ZbReceived":{"0x1BAC":{"Device":"0x1BAC","Power":0,"Endpoint":1,"LinkQuality":65}}}
Hier möchte ich lediglich nur die Power auslesen.
Bzw. bei
tele/tasmota_Schlafzimmer_Lucas_Bett/STATE
Power1; Power2; Power 3; Power 4
{"Time":"2021-02-15T23:01:32","Uptime":"4T00:03:53","UptimeSec":345833,"Heap":26,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":21,"MqttCount":45,"POWER1":"ON","POWER2":"OFF","POWER3":"OFF","POWER4":"OFF","Wifi":{"AP":1,"SSId":"-","BSSId":"2C:91:AB:57:0E:45","Channel":11,"RSSI":30,"Signal":-85,"LinkCount":8,"Downtime":"0T00:01:16"}}
zu guter letzt
tele/Trockner/Sensor
Die Momentanen Wattverbräuche bei
{"Time":"2021-02-15T23:04:57","ENERGY":{"TotalStartTime":"2021-02-13T13:41:52","Total":0.000,"Yesterday":0.000,"Today":0.000,"Period":0,"Power":0,"ApparentPower":0,"ReactivePower":0,"Factor":0.00,"Voltage":0,"Current":0.000}}
Ich habe irgendwo etwas gelesen mit
also von mir angepasst auf:
JSONPATH:$.ZbReceived.0x1BAC."
bzw. der Komplette Code auf:
UID: mqtt:topic:9f9f871918:ae39436dcd
label: tasmota_zigbee_controller
thingTypeUID: mqtt:topic
configuration:
payloadNotAvailable: OFF
payloadAvailable: ON
bridgeUID: mqtt:broker:4595f8b14b
location: System
channels:
- id: Deckenleuchte
channelTypeUID: mqtt:switch
label: Deckenleuchte
description: ""
configuration:
commandTopic: cmnd/tasmota_E32AEB/ZbSend
stateTopic: tele/tasmota_E32AEB/Sensor
transformationPattern="JSONPATH:$.ZbReceived.0x1BAC."
off: '{"Device":"0x1BAC", "Send":{"Power":0}}'
on: '{"Device":"0x1BAC", "Send":{"Power":1}}'
Was mache ich falsch? Es kommt im openHAB nichts an bei dem Schalter.
Vielleicht kannst Du mir erklären wo ich den Jsonpath richtig einsetze, ich steh da total auf dem Schlauch.
Viele Grüße,
Lucas
nun habe ich die Wichtigsten Geräte mit MQTT.FX ausgelesen.
Dies ist ein Lichtschalter der einen Zigbee schaltet.
tele/tasmota:E32AEB/Sensor
mit
{"ZbReceived":{"0x1BAC":{"Device":"0x1BAC","Power":0,"Endpoint":1,"LinkQuality":65}}}
Hier möchte ich lediglich nur die Power auslesen.
Bzw. bei
tele/tasmota_Schlafzimmer_Lucas_Bett/STATE
Power1; Power2; Power 3; Power 4
{"Time":"2021-02-15T23:01:32","Uptime":"4T00:03:53","UptimeSec":345833,"Heap":26,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":21,"MqttCount":45,"POWER1":"ON","POWER2":"OFF","POWER3":"OFF","POWER4":"OFF","Wifi":{"AP":1,"SSId":"-","BSSId":"2C:91:AB:57:0E:45","Channel":11,"RSSI":30,"Signal":-85,"LinkCount":8,"Downtime":"0T00:01:16"}}
zu guter letzt
tele/Trockner/Sensor
Die Momentanen Wattverbräuche bei
{"Time":"2021-02-15T23:04:57","ENERGY":{"TotalStartTime":"2021-02-13T13:41:52","Total":0.000,"Yesterday":0.000,"Today":0.000,"Period":0,"Power":0,"ApparentPower":0,"ReactivePower":0,"Factor":0.00,"Voltage":0,"Current":0.000}}
Ich habe irgendwo etwas gelesen mit
also von mir angepasst auf:
JSONPATH:$.ZbReceived.0x1BAC."
bzw. der Komplette Code auf:
UID: mqtt:topic:9f9f871918:ae39436dcd
label: tasmota_zigbee_controller
thingTypeUID: mqtt:topic
configuration:
payloadNotAvailable: OFF
payloadAvailable: ON
bridgeUID: mqtt:broker:4595f8b14b
location: System
channels:
- id: Deckenleuchte
channelTypeUID: mqtt:switch
label: Deckenleuchte
description: ""
configuration:
commandTopic: cmnd/tasmota_E32AEB/ZbSend
stateTopic: tele/tasmota_E32AEB/Sensor
transformationPattern="JSONPATH:$.ZbReceived.0x1BAC."
off: '{"Device":"0x1BAC", "Send":{"Power":0}}'
on: '{"Device":"0x1BAC", "Send":{"Power":1}}'
Was mache ich falsch? Es kommt im openHAB nichts an bei dem Schalter.
Vielleicht kannst Du mir erklären wo ich den Jsonpath richtig einsetze, ich steh da total auf dem Schlauch.
Viele Grüße,
Lucas
- udo1toni
- Beiträge: 13867
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: MQTT Problem beim Tasmota Sonoff Zigbee
Wie kommt denn da der Doppelpunkt rein? Falls der mit im Topic ist, bitte aus dem Topic entfernen, Buchstaben, Zahlen, Unterstrich ist in Ordnung, mit weiteren Zeichen wäre ich vorsichtig.
Code: Alles auswählen
{
"ZbReceived": {
"0x1BAC": {
"Device": "0x1BAC",
"Power": 0,
"Endpoint": 1,
"LinkQuality": 65
}
}
}
Mordi hat geschrieben: ↑16. Feb 2021 00:29 Bzw. bei
tele/tasmota_Schlafzimmer_Lucas_Bett/STATE
Power1; Power2; Power 3; Power 4
{"Time":"2021-02-15T23:01:32","Uptime":"4T00:03:53","UptimeSec":345833,"Heap":26,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":21,"MqttCount":45,"POWER1":"ON","POWER2":"OFF","POWER3":"OFF","POWER4":"OFF","Wifi":{"AP":1,"SSId":"-","BSSId":"2C:91:AB:57:0E:45","Channel":11,"RSSI":30,"Signal":-85,"LinkCount":8,"Downtime":"0T00:01:16"}}
Code: Alles auswählen
{
"Time": "2021-02-15T23:01:32",
"Uptime": "4T00:03:53",
"UptimeSec": 345833,
"Heap": 26,
"SleepMode": "Dynamic",
"Sleep": 50,
"LoadAvg": 21,
"MqttCount": 45,
"POWER1": "ON",
"POWER2": "OFF",
"POWER3": "OFF",
"POWER4": "OFF",
"Wifi": {
"AP": 1,
"SSId": "-",
"BSSId": "2C:91:AB:57:0E:45",
"Channel": 11,
"RSSI": 30,
"Signal": -85,
"LinkCount": 8,
"Downtime": "0T00:01:16"
}
}
Mordi hat geschrieben: ↑16. Feb 2021 00:29 zu guter letzt
tele/Trockner/Sensor
Die Momentanen Wattverbräuche bei
{"Time":"2021-02-15T23:04:57","ENERGY":{"TotalStartTime":"2021-02-13T13:41:52","Total":0.000,"Yesterday":0.000,"Today":0.000,"Period":0,"Power":0,"ApparentPower":0,"ReactivePower":0,"Factor":0.00,"Voltage":0,"Current":0.000}}
Code: Alles auswählen
{
"Time": "2021-02-15T23:04:57",
"ENERGY": {
"TotalStartTime": "2021-02-13T13:41:52",
"Total": 0.0,
"Yesterday": 0.0,
"Today": 0.0,
"Period": 0,
"Power": 0,
"ApparentPower": 0,
"ReactivePower": 0,
"Factor": 0.0,
"Voltage": 0,
"Current": 0.0
}
}
Wenn Du nun fragst, warum im ersten Fall die eckigen Klammern und noch Anführungszeichen gebraucht werden, muss ich leider etwas ausweichen. Die Anführungszeichen werden mutmaßlich gebraucht, damit der HEX-Code als String verwendet wird. Die eckigen Klammern hingegen werden gebraucht, weil es sich bei der Ebene um einen Knoten handelt, das heißt, es gibt keine anderen Punkte in dieser Ebene, die keine Unterpunkte haben. Ich bin mir aber nicht zu hundert Prozent sicher, ob diese Begründungen korrekt sind.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 32
- Registriert: 24. Jan 2021 14:54
Re: MQTT Problem beim Tasmota Sonoff Zigbee
Hallo Udo1Toni
Sorry wenn ich dich deshalb noch einmal um Hilfe bitten muss, für eine Frage die du bestimmt schon Millionen mal beantwortet hast.
Ich habe mal bei 2 Stück das ganze eingefügt, aber ich glaube, es ist nicht richtig.
Ich bin echt ein Noob bei dem Thema, aber ich hoffe ich schnall es bald!
Gerade sieht meine Trocknerkonfiguration so aus, aber er liest nichts aus.
Wo muss der String hin? Fehlt da noch was?
Deckenleuchte:
Ich denke da ist irgendwas grober Unfug bei beiden, nur wo?
Viele Grüße,
Lucas
Sorry wenn ich dich deshalb noch einmal um Hilfe bitten muss, für eine Frage die du bestimmt schon Millionen mal beantwortet hast.
Ich habe mal bei 2 Stück das ganze eingefügt, aber ich glaube, es ist nicht richtig.
Ich bin echt ein Noob bei dem Thema, aber ich hoffe ich schnall es bald!
Gerade sieht meine Trocknerkonfiguration so aus, aber er liest nichts aus.
Wo muss der String hin? Fehlt da noch was?
Code: Alles auswählen
UID: mqtt:topic:4595f8b14b:2ef03353a1
label: Trockner
thingTypeUID: mqtt:topic
configuration:
off: 0
on: 1
bridgeUID: mqtt:broker:4595f8b14b
location: Keller
channels:
- id: Trockner_switch
channelTypeUID: mqtt:switch
label: Trockner Schalter
description: ""
configuration:
commandTopic: CMND/Trockner/Power
stateTopic: tele/Trockner/STATE $.Power
- id: Trockner_Wattleistung
channelTypeUID: mqtt:number
label: Momentane Leistung des Trockners
description: ""
configuration:
stateTopic: tele/Trockner/SENSOR $.ENERGY.Power
Deckenleuchte:
Code: Alles auswählen
UID: mqtt:topic:9f9f871918:ae39436dcd
label: tasmota_zigbee_controller
thingTypeUID: mqtt:topic
configuration:
payloadNotAvailable: OFF
payloadAvailable: ON
bridgeUID: mqtt:broker:4595f8b14b
location: System
channels:
- id: Deckenleuchte
channelTypeUID: mqtt:switch
label: Deckenleuchte
description: ""
configuration:
commandTopic: cmnd/tasmota_E32AEB/ZbSend
stateTopic: tele/tasmota:E32AEB/Sensor '{$.ZbReceived['0x1BAC'].Power}'
off: '{"Device":"0x1BAC", "Send":{"Power":0}}'
on: '{"Device":"0x1BAC", "Send":{"Power":1}}'
Viele Grüße,
Lucas
- udo1toni
- Beiträge: 13867
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: MQTT Problem beim Tasmota Sonoff Zigbee
Vermutlich ist fast alles grober Unfug...
Das eine sind die Topics. Auch wenn Tasmota selbst nicht pingelig bei der Groß-/ Kleinschreibung ist, openHAB ist extrem pingelig, jeder einzelne Buchstabe zählt.
Für die Standard Tasmota Geräte lautet das commandTopic cmnd/Trockner/POWER (gegeben, dass topic auf Trockner und full topic auf %prefix%/%topic%/ gesetzt sind)
Das stateTopic lautet dann stat/Trockner/POWER (NICHT tele/...)
Für den Kanal, der die Leistung annimmt, passt das Topic so halb... Das Topic ist aber exakt das Topic, Du kannst da nicht einfach noch andere Sachen rein schreiben, wie z.B. das jsonpath Statement. Vermutlich hast Du das dazu notwendige Feld nicht gesehen, denn es ist normalerweise ausgeblendet. Du musst den Haken bei "show advanced" setzen. Dann sieht die Konfiguration so aus:
Code: Alles auswählen
channels:
- id: power
channelTypeUID: mqtt:number
label: Leistung
description: ""
configuration:
stateTopic: tele/Trockner/SENSOR
transformationPattern: JSONPATH:$.ENERGY.Power
unit: W
Bei der Wahl der IDs solltest Du nach Möglichkeit keine ellenlangen Namen nehmen, wenn es auch kurze tun.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 32
- Registriert: 24. Jan 2021 14:54
Re: MQTT Problem beim Tasmota Sonoff Zigbee
Hallo Udo1toni,
vielen Dank!
Der Trockner wird Wattmäßig angezeigt, bzw. auch den Schaltzustand der Steckdose habe ich dort hinbekommen.
Den gleichen Erfolg konnte ich auch bei der Steckdosenleiste verzeichnen!
Beim Deckenlicht hänge ich noch...
meine MQTT Einstellung sind:
UID: mqtt:topic:9f9f871918:ae39436dcd
label: tasmota_zigbee_controller
thingTypeUID: mqtt:topic
configuration:
payloadAvailable: ON
bridgeUID: mqtt:broker:4595f8b14b
location: System
channels:
- id: Deckenleuchte
channelTypeUID: mqtt:switch
label: Deckenleuchte
description: ""
configuration:
commandTopic: cmnd/tasmota_E32AEB/ZbSend
stateTopic: tele/tasmota_E32AEB/RESULT
transformationPattern: JSONPATH:$.ZbReceived['0x1BAC'].Power
off: '{"Device":"0x1BAC", "Send":{"Power":0}}'
on: '{"Device":"0x1BAC", "Send":{"Power":1}}'
liegt es eventuell an dem ZbSend Befehl, oder ist dieser eigenständig mit dem Schaltzustand?
Ich habe den Sendebefehl nicht anders realisieren können, falls dies mein Problem wäre.
Vielleicht haben Sie noch eine Idee wieso es nicht geht.
Viele liebe Grüße,
Lucas
vielen Dank!
Der Trockner wird Wattmäßig angezeigt, bzw. auch den Schaltzustand der Steckdose habe ich dort hinbekommen.
Den gleichen Erfolg konnte ich auch bei der Steckdosenleiste verzeichnen!
Beim Deckenlicht hänge ich noch...
meine MQTT Einstellung sind:
UID: mqtt:topic:9f9f871918:ae39436dcd
label: tasmota_zigbee_controller
thingTypeUID: mqtt:topic
configuration:
payloadAvailable: ON
bridgeUID: mqtt:broker:4595f8b14b
location: System
channels:
- id: Deckenleuchte
channelTypeUID: mqtt:switch
label: Deckenleuchte
description: ""
configuration:
commandTopic: cmnd/tasmota_E32AEB/ZbSend
stateTopic: tele/tasmota_E32AEB/RESULT
transformationPattern: JSONPATH:$.ZbReceived['0x1BAC'].Power
off: '{"Device":"0x1BAC", "Send":{"Power":0}}'
on: '{"Device":"0x1BAC", "Send":{"Power":1}}'
liegt es eventuell an dem ZbSend Befehl, oder ist dieser eigenständig mit dem Schaltzustand?
Ich habe den Sendebefehl nicht anders realisieren können, falls dies mein Problem wäre.
Vielleicht haben Sie noch eine Idee wieso es nicht geht.
Viele liebe Grüße,
Lucas