Seite 3 von 3

Re: Sonoff trvzb (Heizkörperthermostat) Commandtopic

Verfasst: 22. Nov 2024 09:59
von udo1toni
Im Prinzip richtig, aber hier ist es ja so, dass die Zigbee zu mqtt Bridge ein Sonoff Device ist, welches mit Tasmota geflasht wurde.
Die Kommunikation findet also über eine serielle Schnittstelle des Sonoff Device statt, innerhalb des Tasmota Baums lautet das fullTopic entsprechend
%fulltopic%/ZBsend, wobei %fulltopic% gewöhnlich %prefix%/%topic%/ entspricht, %prefix% wiederum für Befehle cmnd lautet und %topic% gewöhnlich der Name des Geräts ist (diesen Wert stellt man selbst ein)
In einer aktuellen Tasmota Version gibt es einen Plugin-Mechanismus, um Zigbee Devices direkt im Tasmota-Baum abzubilden, aber das ist, soweit ic hdas in der Doku gesehen habe, trotz der Einfachheit ein eher fortgeschrittenes Thema. Solltest Du (@mcandrew) allerdings beim Stöbern über solche Plugins stolpern, wäre es sicherlich einen Versuch wert, Deine Devices darüber direkt in Tasmota verfügbar zu machen.

Re: Sonoff trvzb (Heizkörperthermostat) Commandtopic

Verfasst: 22. Nov 2024 17:36
von mcdandrew
Der erste Teilerfolg ist da....die LED kann ich schalten und dimmen.
Ich hatte tatsächlich das fulltopic im Tasmota geändert.
Nun habe ich wieder "%prefix%/%topic%/" eingetragen und es funktioniert.

Für die LED lautet das Think nun

Code: Alles auswählen

Type switch : osram_led_1_state [ stateTopic = "zigbee_bridge/SENSOR", transformationPattern="JSONPATH:$.ZbReceived.0xD272.Power", commandTopic = "cmnd/zigbee_bridge/ZbSend", formatBeforePublish = "{ \"Device\":\"0xD272\", \"send\":{\"Power\":\"%s\"} }", on = "1", off = "0"]    
Type dimmer : osram_led_1_brightness [ stateTopic="zigbee_bridge/SENSOR", transformationPattern="JSONPATH:$.ZbReceived.0xD272.Dimmer", commandTopic = "cmnd/zigbee_bridge/ZbSend", min = 0, max = 254, step = 1, formatBeforePublish = "{ \"device\":\"0xD272\", \"send\":{\"Dimmer\":\"%s\"} }"]


Die Thermostate funktionieren jedoch noch immer nicht....hier ist aber scheinbar das Problem, dass "OccupiedHeatingSetpoint" nicht erkannt wird.

Re: Sonoff trvzb (Heizkörperthermostat) Commandtopic

Verfasst: 22. Nov 2024 22:18
von udo1toni
Schau mal hier: https://www.zigbee2mqtt.io/devices/TRVZB.html danach soll es occupied_heating_setpoint heißen, nicht OccupiedHeatingSetpoint

Re: Sonoff trvzb (Heizkörperthermostat) Commandtopic

Verfasst: 23. Nov 2024 10:27
von mcdandrew
Leider nicht...im Tasmota kommt bei der Eingabe von

Code: Alles auswählen

 ZbSend {"Device":"0x0FA5","send":{"occupied_heating_setpoint":30}}
die Meldung
10:24:28.199 MQT: stat/zigbee_bridge/RESULT = Unrecognized zigbee command: occupied_heating_setpoint
Auch bei den anderen Befehlen wie bspw. "Child_Lock" erscheint diese Meldung

Re: Sonoff trvzb (Heizkörperthermostat) Commandtopic

Verfasst: 23. Nov 2024 12:19
von udo1toni
Gerade habe ich noch mal einen Blick in die Doku von Tasmota geworfen.

Da steht Send, nicht send. Alternativ soll auch Write gehen.
Ich hatte das aus den Augen verloren... im dritten Posting hattest Du ja ein Beispiel eines Receives Events mitgeliefert, da dort OccupiedHeatingSetpoint als Label verwendet wird, wird zigbee2tasmota das auch beim Senden erwarten.
Hattest Du schon

Code: Alles auswählen

 ZbSend {"Device":"0x80ED","Send":{"OccupiedHeatingSetpoint":30}}
und

Code: Alles auswählen

 ZbSend {"Device":"0x80ED","Write":{"OccupiedHeatingSetpoint":30}}
ausprobiert? Stimmt die Device ID? Die hier habe ich nämlich aus der JSON Antwort, aber vermutlich hast Du eh mehrere TRVZB am Start...

Re: Sonoff trvzb (Heizkörperthermostat) Commandtopic

Verfasst: 23. Nov 2024 13:11
von mcdandrew
Jetzt läuft es :D

Vielen Vielen Dank für deine Unterstützung!!!
Hier nun das funktionierende Thing für alle anderen

Code: Alles auswählen

Type number  : badezimmer_zieltemperatur [ stateTopic="tele/zigbee_bridge/Heizkoerper_Badezimmer/SENSOR", transformationPattern="JSONPATH:$.ZbReceived.0x0FA5.OccupiedHeatingSetpoint", commandTopic = "cmnd/zigbee_bridge/Heizkoerper_Badezimmer/ZbSend", formatBeforePublish = "{\"Device\": \"0x0FA5\", \"Write\": {\"occupiedheatingsetpoint\":%s} }" ]	

Re: Sonoff trvzb (Heizkörperthermostat) Commandtopic

Verfasst: 23. Nov 2024 13:54
von udo1toni
Prima. Wenn Du magst, kannst Du auch noch unit="°C" als Parameter ergänzen und dann im Item Number:Temperature, ebnfalls mit der unit °C einsetzen.

Re: Sonoff trvzb (Heizkörperthermostat) Commandtopic

Verfasst: 23. Nov 2024 14:28
von mcdandrew
Noch eine allgemeine Frage.

Die Thermostate übergeben per MQTT den folgenden JSON

Code: Alles auswählen

{
  "ZbReceived": {
    "0x80ED": {
      "Device": "0x80ED",
      "Name": "Heizkoerper Schlafzimmer",
      "OccupiedHeatingSetpoint": 18,
      "Endpoint": 1,
      "LinkQuality": 58
    }
  }
}
Laut Doku gibt es noch viele weitere Informationen
- ChildLock
- system_mode
- running_state
- local_temperature_calibration

Wie komme ich an diese Infos, wenn MQTT diese nicht direkt bereitstellt?

Re: Sonoff trvzb (Heizkörperthermostat) Commandtopic

Verfasst: 23. Nov 2024 15:17
von udo1toni
Du könntest versuchen, mal den Befehl ZbInfo abzusetzen, vom MQTT Explorer aus cmnd/zigbee_bridge/ZbInfo mit leerer Payload, oder halt direkt in der Console der Zibee Bridge. Eventuell bekommst Du dann erweiterte Informationen aller Geräte zu sehen.