Tuya Power Plug - Ein/Aus - Status wird nicht auf Schalter angewendet

Tuya basierte Hardware. Geflasht oder ungeflasht ...

Moderator: seppy

Antworten
Benutzeravatar
TorstenE
Beiträge: 237
Registriert: 12. Jan 2022 18:29
Answers: 4
Wohnort: Niederstaufen

Tuya Power Plug - Ein/Aus - Status wird nicht auf Schalter angewendet

Beitrag von TorstenE »

Hallo Mitstreiter,

ich habe einen "Zigbee - Power Plug von Tuya" im Einsatz
direkt als "Generic MQTT Thing".
Die Channels für die Stromwerte usw. funktionieren wunderbar.

Im Channel um den Stecker Ein/Aus zu schalten habe ich ein Problem.
Der Schalter benötigt zum Schalten

Code: Alles auswählen

{"state": "OFF"}
["state": "ON"}
Der Befehl wird mit

Code: Alles auswählen

zigbee2mqtt/Tuya_Steckdose_01/set
gesendet.
Der Schalter macht was er soll, geht ein und aus.

ABER:
Wenn ich den Schalter manuell betätige erhalte ich per MQTT

Code: Alles auswählen

https://www.zigbee2mqtt.io/devices/TS0121_plug.html
state: "ON"
aber wie setze ich jetzt diesen Status in den Status des Switch korrekt um ?
D.h. der Switch in OH ändert seinen Status nicht.
Unten im Code ist es der Channel "Tuya_Steckdose_01_switch"


Hier die komplette Code der Channel:

Code: Alles auswählen

UID: mqtt:topic:f62301ba6c:45de34cd4f
label: Steckdose 1
thingTypeUID: mqtt:topic
configuration: {}
bridgeUID: mqtt:broker:f62301ba6c
channels:
  - id: Tuya_Steckdose_01_voltage
    channelTypeUID: mqtt:number
    label: Netzspannung
    description: null
    configuration:
      formatBeforePublish: "%.2f"
      stateTopic: zigbee2mqtt/Tuya_Steckdose_01
      transformationPattern: JSONPATH:$.voltage
  - id: Tuya_Steckdose_01_power
    channelTypeUID: mqtt:number
    label: Leistung
    description: null
    configuration:
      formatBeforePublish: "%.2f"
      stateTopic: zigbee2mqtt/Tuya_Steckdose_01
      transformationPattern: JSONPATH:$.power
  - id: Tuya_Steckdose_01_current
    channelTypeUID: mqtt:number
    label: Strom
    description: null
    configuration:
      formatBeforePublish: "%.2f"
      stateTopic: zigbee2mqtt/Tuya_Steckdose_01
      transformationPattern: JSONPATH:$.current
  - id: Tuya_Steckdose_01_switch
    channelTypeUID: mqtt:switch
    label: Schalter
    description: null
    configuration:
      commandTopic: zigbee2mqtt/Tuya_Steckdose_01/set
      postCommand: false
      stateTopic: zigbee2mqtt/Tuya_Steckdose_01/state
      transformationPattern: JSONPATH:$.device.state
      off: '{"state": "OFF"}'
      on: '{"state": "ON"}'
  - id: Tuya_Steckdose_01_energy
    channelTypeUID: mqtt:number
    label: Stromverbrauch
    description: null
    configuration:
      formatBeforePublish: "%.2f"
      stateTopic: zigbee2mqtt/Tuya_Steckdose_01
      transformationPattern: JSONPATH:$.energy
 
Hier der Link zu den Befehlen des Tuya Power Plug, welcher zwar ein anderes
Model darstellen, jedoch funktionierten:
https://www.zigbee2mqtt.io/devices/TS0121_plug.html

Danke für Tips

Torsten
openHAB 4.0.4 auf einem Pi 4 mit openHABian

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

Re: Tuya Power Plug - Ein/Aus - Status wird nicht auf Schalter angewendet

Beitrag von udo1toni »

Das sollte gewöhnlich mit formatBeforePublish gelöst werden. on und off lässt Du leer (damit als Werte ON und OFF verwendet werden), als formatBeforePublish setzt Du dann '{"state": "%s"}'

Eventuell (habe das noch nie ausprobiert) gibt es auch ein transformationPatternOut, das wäre dann JSONPATH:$.state und müsste sozusagen umgekehrt funktionieren wie das normals transformationPattern, also das JSON Objekt mit diesem einen Wert bauen
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Benutzeravatar
TorstenE
Beiträge: 237
Registriert: 12. Jan 2022 18:29
Answers: 4
Wohnort: Niederstaufen

Re: Tuya Power Plug - Ein/Aus - Status wird nicht auf Schalter angewendet

Beitrag von TorstenE »

Hallo Udo1Toni,

dein Tipp hat mir geholfen und jetzt funktioniert die Power Plug wie gewünscht.
Hier noch der Vollständigkeit halber die Channels:

Code: Alles auswählen

UID: mqtt:topic:f62301ba6c:45de34cd4f
label: Steckdose 1
thingTypeUID: mqtt:topic
configuration: {}
bridgeUID: mqtt:broker:f62301ba6c
channels:
  - id: Tuya_Steckdose_01_voltage
    channelTypeUID: mqtt:number
    label: Netzspannung
    description: null
    configuration:
      formatBeforePublish: "%f"
      stateTopic: zigbee2mqtt/Tuya_Steckdose_01
      transformationPattern: JSONPATH:$.voltage
  - id: Tuya_Steckdose_01_power
    channelTypeUID: mqtt:number
    label: Leistung
    description: null
    configuration:
      formatBeforePublish: "%f"
      stateTopic: zigbee2mqtt/Tuya_Steckdose_01
      transformationPattern: JSONPATH:$.power
  - id: Tuya_Steckdose_01_current
    channelTypeUID: mqtt:number
    label: Strom
    description: null
    configuration:
      formatBeforePublish: "%f"
      stateTopic: zigbee2mqtt/Tuya_Steckdose_01
      transformationPattern: JSONPATH:$.current
  - id: Tuya_Steckdose_01_switch
    channelTypeUID: mqtt:switch
    label: Schalter
    description: null
    configuration:
      commandTopic: zigbee2mqtt/Tuya_Steckdose_01/set
      postCommand: false
      transformationPatternOut: " '{\"state\": \"%s\"}'"
      stateTopic: zigbee2mqtt/Tuya_Steckdose_01
      transformationPattern: JSONPATH:$.state
  - id: Tuya_Steckdose_01_energy
    channelTypeUID: mqtt:number
    label: Stromverbrauch
    description: null
    configuration:
      formatBeforePublish: "%f"
      stateTopic: zigbee2mqtt/Tuya_Steckdose_01
      transformationPattern: JSONPATH:$.energy
Grüße

Torsten :-)
openHAB 4.0.4 auf einem Pi 4 mit openHABian

Antworten