Xiaomi LLKZMK11LM double Relais MQTT2 Template

Begonnen von ulli, 04 Dezember 2019, 19:00:26

Vorheriges Thema - Nächstes Thema

ulli

Hallo zusammen,
Ich setze aktuell das genannte Relais ein und leider gibt es dazu noch kein MQTT2 Client Template. Daher sehe ich wenn ich das plug template zuweisen zwar die sensor- und Statusdaten aber ich kann nur ein Relais schalten.

Ein Listing sieht wie folgt aus
ZitatInternals:
   CID        zigbee_0x00158d000419d8a7
   DEF        zigbee_0x00158d000419d8a7
   DEVICETOPIC HS_Lichterkette
   FUUID      5de23cbc-f33f-aa80-90ca-f4e68bd89286d971
   IODev      MQTT
   LASTInputDev MQTT
   MQTT_MSGCNT 236
   MQTT_TIME  2019-12-04 18:51:28
   MSGCNT     236
   NAME       HS_Lichterkette
   NR         122
   STATE      off
   TYPE       MQTT2_DEVICE
   READINGS:
     2019-11-30 10:56:12   associatedWith  MQTT_zigbee_nuc
     2019-12-04 18:51:28   consumption     0.02
     2019-12-04 18:51:28   linkquality     52
     2019-12-04 18:51:28   power           0
     2019-12-04 18:51:28   state           OFF
     2019-12-04 18:51:28   state_l1        OFF
     2019-12-04 18:51:28   state_l2        ON
     2019-12-04 18:51:28   temperature     11
Attributes:
   IODev      MQTT
   eventMap   { dev=>{ON=>'on',OFF=>'off'} }
   icon       message_socket
   model      zigbee2mqtt_plug
   readingList zigbee2mqtt/0x00158d000419d8a7:.* { json2nameValue($EVENT) }
   room       Haus
   setList    on:noArg zigbee2mqtt/0x00158d000419d8a7/set {"state":"ON"}
  off:noArg zigbee2mqtt/0x00158d000419d8a7/set {"state":"OFF"}
attr MQTT2_zigbee_0x00158d000419d8a7 setStateList on off

Laut zigbee2mqtt sieht die Konfiguration wie folgt aus
Zitatswitch:
  - platform: "mqtt"
    state_topic: "zigbee2mqtt/<FRIENDLY_NAME>"
    availability_topic: "zigbee2mqtt/bridge/state"
    payload_off: "OFF"
    payload_on: "ON"
    value_template: "{{ value_json.state_l1 }}"
    command_topic: "zigbee2mqtt/<FRIENDLY_NAME>/l1/set"

switch:
  - platform: "mqtt"
    state_topic: "zigbee2mqtt/<FRIENDLY_NAME>"
    availability_topic: "zigbee2mqtt/bridge/state"
    payload_off: "OFF"
    payload_on: "ON"
    value_template: "{{ value_json.state_l2 }}"
    command_topic: "zigbee2mqtt/<FRIENDLY_NAME>/l2/set"

sensor:
  - platform: "mqtt"
    state_topic: "zigbee2mqtt/<FRIENDLY_NAME>"
    availability_topic: "zigbee2mqtt/bridge/state"
    unit_of_measurement: "-"
    value_template: "{{ value_json.linkquality }}"

Kann mir dabei wer helfen oder sogar ein template erzeugen?

Viele Grüße und Danke,
  Ulli

Beta-User

Hi,

eigentlich wollte ich ein RAW haben, ist einfacher...
Das Ding ist ganz schön tricky. Kannst du den MQTT-Verkehr irgendwie mitschneiden? Ich vermute, dass jedenfalls teilweise der komplette Status in dem JSON steckt.

Kannst du mal die eine Zeile in readingList erweitern in:
zigbee2mqtt/0x00158d000419d8a7:.* { json2nameValue($EVENT,'',$JSONMAP) }

Und dann ergänzen:
attr HS_Lichterkette jsonMap state:availability state_l1:Kanal1 state_l2:Kanal2
attr HS_Lichterkette setList \  Kanal1:ON,OFF zigbee2mqtt/0x00158d000419d8a7/l1/set {"state":"$EVTPART1"}\  Kanal2:ON,OFF zigbee2mqtt/0x00158d000419d8a7/l2/set {"state":"$EVTPART1"}


Das sollte schon funktionieren, aber im Ergebnis hätte ich dann gerne zwei Devices, die auch on-for-timer unterstützen usw., das ist also nur als Zwischenschritt zu verstehen bzw. evtl. gibt es zwei attrTemplates "split" und "unified"!

Und dass der eine Kanal mit dem Plug-template funktioniert, ist seltsam; es entspricht jedenfalls nicht der Doku...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Beta-User

Moin,

habe grade ein update dazu ins svn geschubst, wäre nett, wenn du das Testen könntest: zigbee2mqtt_2channel_split.

"Sollte" funktionieren, kann aber sein, dass (über die Dauer) im 2. Device immer noch Zeug ankommt, das da nichts verloren hat, dann bitte um Rückmeldung und RAW-Definitionen beider Devices.

Ist ab 7:50 Uhr via update verfügbar.

Gruß, Beta-User
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

ulli

Hab gerade ein Update gemacht. Ich vermute 7:50 abends ;)

Beta-User

?
Nein, gemeint war 7:45 Uhr MET/MEST, siehe https://fhem.de/commandref_modular_DE.html#update.

Kann aber natürlich sein, dass ich doch zu spät dran war bzw. der Durchlauf etwas früher; jedenfalls solltest du Version 20661 haben, sonst eben die Datei aus dem svn nehmen: https://svn.fhem.de/trac/export/20669/trunk/fhem/FHEM/lib/AttrTemplate/mqtt2.template
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

ulli

#5
Guten Morgen,
Hab ein restart von fhem gebraucht...jetzt warst drin.
Scheint zu funktionieren! Er hat ein zweites Device angelegt.
Wie du schon vermutet hast werden die reading nicht verteilt

Sieht so aus als würden die readings state_l1 state_l2 und das neue availability nicht mehr aktualisiert.
Das neue device für den 2ten Chanel hat gar keine readings...

Grüße und schonmal Danke

Beta-User

Kannst du schalten?
Sonst immer noch: brauche die Json-blobs und je ein RAW.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

ulli

Ja schalten klappt.
Was sind blobs und woher bekomm ich ein  Raw?

ulli

Meinst du das mir Raw

zigbee2mqtt:info  2019-12-08T08:34:04: MQTT publish: topic 'zigbee2mqtt/0x00158d000419d8a7', payload '{"state_l1":"OFF","linkquality":44,"state_l2":"OFF","power":0.03,"consumption":0.03,"temperature":13,"state":"OFF"}'

Beta-User

Das ist einer der JSON-blobs.
Mit RAW-Definitionen ist das hier gemeint: https://wiki.fhem.de/wiki/Import_von_Code_Snippets; die würden mich also vorrangig interessieren.

Wenn auch die jeweiligen state Readings aktualisiert werden, scheint mir fast alles ok zu sein:
- die state_l1...-Readings gibt es nicht mehr (genau das macht jsonMap: es benennt die um bzw. nutzt andere Namen), die alten kannst du löschen.
deletereading -q <DEVICEs-devspec> (?!associatedWith).*

Dieser JSON sieht etwas seltsam aus. Da state:OFF kommt, scheint das Ding vom Netz zu sein?
Und eigentlich wird Availability nur aktualisiert, wenn man in der configuration.yaml einen timeout setzt, und das sollte mMn. aber  unabhängig vom Rest kommen; hier ist es mit drin...

Kann aber sein, dass ich da einen etwas veralteten Stand von zigbee2mqtt im Kopf habe, ich nutze das schon eine Zeitlang nicht mehr.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Müller

#10
Hallo,
danke für die Vorarbeit. Ich habe mir das Teil auch gerade in China geordert (vielleicht kommt es noch dieses Jahr ?)

Passt dieser Aktor gut in eine Unterputzdose?
Gibt es eigentlich eine Bezugsquelle in Deutschland?

Ich habe gerade ein Update von FHEM gemacht, aber sehe das template nicht in der Liste. (auch nach restart nicht...)
Ich benutzte MQTT2_Client

Gruß

Jochen
FHEM auf Raspberry, 433mHz & Zigbee für Rollläden, Gartenbewässerung, Beleuchtung, Fußbodenheizung

Beta-User

Dürfte zu groß sein.

Du siehst es nur, wenn du ein passendes Gerät hast (zigbee2mqtt). Sonst nur in der Liste bei "?"
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

ulli

Hatte das selbe Problem. Du musst fhem neu starten dann ist das template drin.
Ich denke nicht das es in eine unterputzdose passt, außer es ist eine Blinddose.

Die l1 l2 states sind Zustände der schalteingänge am Gerät. D.h das müssten readings bleiben.
Denn wenn man die Eingänge nicht verwendet und das relay eins schaltet bleibt der schalteingang logischerweise unverändert.

Beta-User

Zitat von: ulli am 08 Dezember 2019, 14:17:38
Die l1 l2 states sind Zustände der schalteingänge am Gerät. D.h das müssten readings bleiben.
Denn wenn man die Eingänge nicht verwendet und das relay eins schaltet bleibt der schalteingang logischerweise unverändert.
Hmm, dann scheint das template noch nicht zu passen?
Wie wird dann mitgeteilt, was z.B. der Zustand des 2. Relais ist, wenn du von FHEM aus schaltest? "state" scheint dann ja nichts mit availability zu tun zu haben, sondern ist tatsächlich der Relay-Stand (vom 1. Relais)?

Kannst du mal die JSON-Infos liefern, was kommt, wenn man jeweils die Relais lokal schaltet und von FHEM aus? (= in total 4 JSON-blobs).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

ulli

Relais 1
On
zigbee2mqtt:info  2019-12-08T17:57:40: MQTT publish: topic 'zigbee2mqtt/0x00158d000419d8a7', payload '{"state_l1":"ON","linkquality":44,"state_l2":"OFF","power":0.04,"consumption":0.01,"temperature":17,"state":"OFF"}',
zigbee2mqtt:info  2019-12-08T17:57:40: MQTT publish: topic 'zigbee2mqtt/0x00158d000419d8a7', payload '{"state_l1":"ON","linkquality":47,"state_l2":"OFF","power":0.04,"consumption":0.01,"temperature":17,"state":"OFF"}',
zigbee2mqtt:info  2019-12-08T17:57:41: MQTT publish: topic 'zigbee2mqtt/0x00158d000419d8a7', payload '{"state_l1":"ON","linkquality":47,"state_l2":"OFF","power":154.64,"consumption":0.01,"temperature":17,"state":"OFF"}'

Off
zigbee2mqtt:info  2019-12-08T17:58:09: MQTT publish: topic 'zigbee2mqtt/0x00158d000419d8a7', payload '{"state_l1":"OFF","linkquality":47,"state_l2":"OFF","power":175.89,"consumption":0.01,"temperature":17,"state":"OFF"}'

Relais 2
On
zigbee2mqtt:info  2019-12-08T17:59:41: MQTT publish: topic 'zigbee2mqtt/0x00158d000419d8a7', payload '{"state_l1":"OFF","linkquality":47,"state_l2":"ON","power":0.04,"consumption":0.01,"temperature":17,"state":"OFF"}'

Off
zigbee2mqtt:info  2019-12-08T18:00:24: MQTT publish: topic 'zigbee2mqtt/0x00158d000419d8a7', payload '{"state_l1":"OFF","linkquality":47,"state_l2":"OFF","power":0.04,"consumption":0.01,"temperature":17,"state":"OFF"}'

Die beiden raw Definitionen
Relais 1
defmod HS_Lichterkette MQTT2_DEVICE zigbee_0x00158d000419d8a7
attr HS_Lichterkette IODev MQTT
attr HS_Lichterkette comment Channel 1 for HS_Lichterkette, see also HS_Lichterkette_CH2
attr HS_Lichterkette eventMap { dev=>{ON=>'on',OFF=>'off'} }
attr HS_Lichterkette icon message_socket
attr HS_Lichterkette jsonMap state:availability state_l1:state state_l2:0
attr HS_Lichterkette model zigbee2mqtt_2channel_split
attr HS_Lichterkette readingList zigbee2mqtt/0x00158d000419d8a7:.* { json2nameValue($EVENT,'',$JSONMAP) }
attr HS_Lichterkette room Haus
attr HS_Lichterkette setList on:noArg zigbee2mqtt/0x00158d000419d8a7/l1/set {"state":"ON"}\
  off:noArg zigbee2mqtt/0x00158d000419d8a7/l1/set {"state":"OFF"}\
attr HS_Lichterkette setStateList on off

setstate HS_Lichterkette off
setstate HS_Lichterkette 2019-12-07 12:37:17 associatedWith HS_Wasserpumpe
setstate HS_Lichterkette 2019-12-08 19:00:24 availability OFF
setstate HS_Lichterkette 2019-12-08 19:00:24 consumption 0.01
setstate HS_Lichterkette 2019-12-08 19:00:24 linkquality 47
setstate HS_Lichterkette 2019-12-08 19:00:24 power 0.04
setstate HS_Lichterkette 2019-12-08 19:00:24 state OFF
setstate HS_Lichterkette 2019-12-08 19:00:24 temperature 17

Relais 2
defmod HS_Wasserpumpe MQTT2_DEVICE zigbee_0x00158d000419d8a7
attr HS_Wasserpumpe IODev MQTT
attr HS_Wasserpumpe comment Channel 2 for HS_Lichterkette
attr HS_Wasserpumpe eventMap { dev=>{ON=>'on',OFF=>'off'} }
attr HS_Wasserpumpe icon message_socket
attr HS_Wasserpumpe imageLink /fhem/deviceimages/mqtt2/LLKZMK11LM.jpg
attr HS_Wasserpumpe jsonMap state_l1:0 state_l2:state state:0 consumption:0 linkquality:0 power:0 temperature:0
attr HS_Wasserpumpe model zigbee2mqtt_2channel_split
attr HS_Wasserpumpe readingList zigbee2mqtt/0x00158d000419d8a7:.* { json2nameValue($EVENT,'',$JSONMAP) }
attr HS_Wasserpumpe room Haus
attr HS_Wasserpumpe setList on:noArg zigbee2mqtt/0x00158d000419d8a7/l2/set {"state":"ON"}\
  off:noArg zigbee2mqtt/0x00158d000419d8a7/l2/set {"state":"OFF"}
attr HS_Wasserpumpe setStateList on off toggle

setstate HS_Wasserpumpe off
setstate HS_Wasserpumpe 2019-12-07 12:36:49 associatedWith HS_Lichterkette
setstate HS_Wasserpumpe 2019-12-08 19:00:24 state OFF