MQTT Transformation klappt einfach nicht mehr

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
maddin2020
Beiträge: 30
Registriert: 29. Sep 2019 11:21
Answers: 0

MQTT Transformation klappt einfach nicht mehr

Beitrag von maddin2020 »

Hallo ich habe Ikea Taster im Einsatz die ich über Zigbee to MQTT verwende.
Nun habe ich seit kurzen das Problem das die Transformation von in der MQTT Thing Datei nicht mehr klappt. Kann mir dort jemand helfen. Der Taster liefert als String on und off allerdings kommt bei der Konvertierung in der Items Datei kein ON und OFF an (Großgeschrieben). Dies hat eigentlich monatelang funktioniert allerdings finde ich den Fehler nicht. Das Item nimmt immer nur den wert on oder off (kleingeschrieben) an.

Code: Alles auswählen

    Thing topic Taster_Bad_Dusche "Taster Bad Dusche" {
 Channels:
 Type string : click "click"   [ stateTopic = "zigbee2mqtt/a11_ein_aus_taster_bad_dusche/click",off="OFF", on="ON"]

Code: Alles auswählen

String        Taster_Bad_Dusche         "Taster"       {channel="mqtt:topic:MQTTBroker:Taster_Bad_Dusche:click"}                                                                                               
Eigentlich würde ich am liebsten in der Items Datei ein Switch haben allerdings wenn ich es dort auf Switch umstelle kommt einfach immer NULL raus egal was ich tue.

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

Re: MQTT Transformation klappt einfach nicht mehr

Beitrag von udo1toni »

Ein string Channel kennt keine Parameter on oder off. Korrekt wäre es so:

Code: Alles auswählen

Thing topic Taster_Bad_Dusche "Taster Bad Dusche" {
    Channels:
        Type switch : click "click"   [ stateTopic = "zigbee2mqtt/a11_ein_aus_taster_bad_dusche/click",off="off", on="on"]
}
Ergibt einen switch Channel, der auf das Topic zigbee2mqtt/a11_ein_aus_taster_bad_dusche/click hört. kommt dort on oder off an (in Kleinbuchstaben), so wird daraus über die beiden Parameter der Wert ON bzw. OFF generiert (das wird zwar groß geschrieben, gemeint sind hier aber zwei Zustände als OnOffType, das sind keine Strings).
Entsprechend das passende Item:

Code: Alles auswählen

Switch Taster_Bad_Dusche "Taster" {channel="mqtt:topic:MQTTBroker:Taster_Bad_Dusche:click"}
Ich weiß, ist etwas verwirrend... alle Parameter sind in camelCase geschrieben, und da on bzw. off halt nur ein Wort lang sind, bestehen die Parameternamen aus Kleinbuchstaben. Der hinterlegte Wert ist das, was ankommt (oder auch was gesendet wird, wenn es sich um einen sendefähigen Channel handelt).
Um es leichter zu machen, nutze ich als Beispiel mal die Werte eingeschaltet und ausgeschaltet im Payload (einfach, damit es eindeutiger wird):

Code: Alles auswählen

Thing topic beispiel "switch" {
    Channels:
        Type switch : channel1 "Eingang"   [ stateTopic = "zigbee2mqtt/test/click",off="ausgeschaltet", on="eingeschaltet"]
}
Channel empfängt den String "eingeschaltet" -> ordnet über den hinterlegten Wert "eingeschaltet" im Feld on den neuen Status ON zu -> sendet ein Update ON ans Item.
Channel empfängt den String "ausgeschaltet" -> ordnet über den hinterlegten Wert "ausgeschaltet" im Feld off den neuen Status OFF zu -> sendet ein Update OFF ans Item.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Antworten