XIAOMI Wandschalter QBKG12LM schalten

Begonnen von Blauhorn, 07 August 2019, 18:19:12

Vorheriges Thema - Nächstes Thema

Blauhorn

Guten Abend,

ich bräuchte bitte etwas Hilfe, steh grad auf der Leitung:
Es ist ein funktionierendes FHEM, mit zigbee2mqtt und verschiedenen XIAOMI-Sensoren und zwei IKEA-Birnen, die alle so brav ihren Dienst tun.
Weiß jemand wie ich einen XIAOMI aqara Wandschalter QBKG12LM
https://www.zigbee2mqtt.io/devices/QBKG12LM.html aus FHEM heraus schalten kann? Als set-Befehl kann ich nur removen, sonst nix.
Bei der IKEA-Birne geht das, da wurden die set-Befehle automatisch angelegt, aber bei dem Schalter muss ich wahrscheinlich manuell konfigurieren und weiß nicht wie.

Danke schonmal
1xBananaPi; 1x FB7490; 1xCUL433; 1x CC2530+CC2591; OpenMiLight-Gateway; 1xHMUART; HM-LC-Sw4-DR; Sonoff* mit TASMOTA, LEDController; MySensors; zigbee2mqtt;

hydrotec

Hallo Blauhorn,

bin mir nicht zu 100% sicher, doch ich gehe davon aus, das der Schalter (Taster) eine ähnliche Funktion hat wie der Xiaomi Aqara wireless switch (WXKG11LM).
Wenn dem so ist, dann wirst du in Fhem nur readings erhalten.

Am einfachsten ist es dann über ein Notify, oder Doif, auf die readings zu reagieren.

Zum Beispiel:
defmod DI_Xiaomi_Switch_Flur_01_Flur_Strahler DOIF ## 1\
(["Xiaomi_Switch_Flur_01:click_release"] and [DU_Hue_Bulb_GU10_Flur_Strahler_Schalter] eq "off") (set DU_Hue_Bulb_GU10_Flur_Strahler_Schalter on)\
## 2\
DOELSEIF (["Xiaomi_Switch_Flur_01:click_release"] and [DU_Hue_Bulb_GU10_Flur_Strahler_Schalter] eq "on") (set DU_Hue_Bulb_GU10_Flur_Strahler_Schalter off)
attr DI_Xiaomi_Switch_Flur_01_Flur_Strahler DbLogExclude .*
attr DI_Xiaomi_Switch_Flur_01_Flur_Strahler devStateIcon cmd_1:general_an:cmd_2 cmd_2|initialized:general_aus:cmd_1
attr DI_Xiaomi_Switch_Flur_01_Flur_Strahler do always
attr DI_Xiaomi_Switch_Flur_01_Flur_Strahler icon helper_doif
attr DI_Xiaomi_Switch_Flur_01_Flur_Strahler room Doif,Hue


Damit kannst du bei einem einfachen click auf den Taster einen Dummy schalten.
Diesen wiederum kann man über weitere Abfragen (Notify,Doif) weiterverwenden.

defmod DI_Hue_Bulb_GU10_Flur_Strahler_Schalter DOIF ([DU_Hue_Bulb_GU10_Flur_Strahler_Schalter] eq "on") (set Hue_Bulb_GU10_(01|02) on) DOELSE (set Hue_Bulb_GU10_(01|02) off)
attr DI_Hue_Bulb_GU10_Flur_Strahler_Schalter DbLogExclude .*
attr DI_Hue_Bulb_GU10_Flur_Strahler_Schalter devStateIcon cmd_1:general_an:cmd_2 cmd_2|initialized:general_aus:cmd_1
attr DI_Hue_Bulb_GU10_Flur_Strahler_Schalter icon helper_doif
attr DI_Hue_Bulb_GU10_Flur_Strahler_Schalter room Doif,Hue



Hoffentlich konnte ich dir damit etwas weiterhelfen.

Gruß Karsten

Blauhorn

Hallo hydrotec,

danke für Deine Antwort.

Die WXKG11LM habe ich auch im Einsatz, die funktionieren sehr prima. Mein angefragtes Problem ist aber, dass die Wandschalter auch zwei Relais eingebaut haben, mit denen die ganz normalen Deckenleuchten geschaltet werden sollen, es werden also die Standard-Wandschalter ersetzt. Der Sinn dahinter ist, dass die Leuchten nach wie vor über den Wandschalter bedienbar bleiben, aber zusätzlich im FHEM noch automatisch oder über sonstige Interaktionen (Bewegungsmelder o.s.ä.) angesprochen werden sollen.
Das kann ich mir nicht so schwer vorstellen, weil die mqtt-Topics zum publishen ja alle schon da sind.


switch:
  - platform: "mqtt"
    state_topic: "zigbee2mqtt/<FRIENDLY_NAME>"
    availability_topic: "zigbee2mqtt/bridge/state"
    payload_off: "OFF"
    payload_on: "ON"
    value_template: "{{ value_json.state_left }}"
    command_topic: "zigbee2mqtt/<FRIENDLY_NAME>/left/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_right }}"
    command_topic: "zigbee2mqtt/<FRIENDLY_NAME>/right/set"


Also ich habe


define Wallswitch XiaomiMQTTDevice QBKG12LM 0x00158d0002abc507 Wallswitch
attr Wallswitch IODev mosquitto_banana
attr Wallswitch icon rc_POWER
attr Wallswitch room XiaomiMQTTDevice
attr Wallswitch stateFormat state_left - state_right
attr Wallswitch webCmd left:right

Was mir fehlt sind die FHEM - Befehle

"set Wallswitch right on"
"set Wallswitch right off"
"set Wallswitch left on"
"set Wallswitch left off"


Das tut es aber nicht. Wenn ich einen solchen Set-Befehl absende, kommt "outgoing publish acknowledged", aber der Zustand ändert sich nicht.

Gruß vom blauhorn
1xBananaPi; 1x FB7490; 1xCUL433; 1x CC2530+CC2591; OpenMiLight-Gateway; 1xHMUART; HM-LC-Sw4-DR; Sonoff* mit TASMOTA, LEDController; MySensors; zigbee2mqtt;

hydrotec

Hallo Blauhorn,

ah, diese Schalter wollte ich mir auch schon zulegen.
Habe leider keinen Nullleiter an den Wanddosen verfügbar, deswegen bin ich auf die WXKG11LM gegangen.

Da bin ich dann auch etwas überfragt, eventuell könnte dir ein eventMap und publishSet_ weiterhelfen.

Nur so aus dem Stehgreif heraus, absolut ungetestet
attr <FRIENDLY_NAME> eventMap /left on:on/left off:off/
attr <FRIENDLY_NAME> publishSet_left ON OFF zigbee2mqtt/<FRIENDLY_NAME>/left/set


Gruß Karsten

sparkiie

Das selbe Problem habe ich mit dem LLKZMK11LM (2 Relais Switch) auch. Ich wäre deshalb ebenfalls an einer Lösung interessiert...

https://forum.fhem.de/index.php/topic,84790.msg959552.html#msg959552

pnewman

Hallo,

da ich auch an diesen Schaltern interessiert bin würde mich eine Lösung auch interessieren.

Seid Ihr schon weiter gekommen?


Gruß

Ralf
Raspberry Pi3B+ / Nano-Cul 868 - MAX!=Heizung, HM-Lan - Rollo+Licht, JeeLink-Clone 868 - LaCrosse, JeeLink-Clone 868 - PCA301, CUL 434 - IT-Steckdosen+Fernbedienung

mkraus81

seit ihr weiter gekommen?

mein Notify geht irgendenwie nicht

notify def:

MQTT2_zigbee_Aqara_Double_Switch_Kueche:left set MQTT2_zigbee_OsramSMARTPlus2 toggle


aber es passiert nichts... das notify wird gar nicht ausgeführt


der Aqara Switch hat ein Reading "click" was auf left steht
stateFormat = click

habt ihr eine Idee?


Brandenburger

#7
<device>:<reading>:<Wert>
MQTT2_zigbee_Aqara_Double_Switch_Kueche:click:left set MQTT2_zigbee_OsramSMARTPlus2 toggle

Zigbee2mqtt reagiert mit vielen bösen Logeinträgen, wenn man nicht genau sendet, was gefordert ist - Großschreibung bei ON bzw. OFF beachten, toggle dagegen klein!

Grüße aus Brandenburg

mkraus81


Blauhorn

So, ich habe das jetzt mal wieder aufgenommen, nachdem ich nahezu alle zigbee-Devices auf MQTT2 umgestellt habe.
Es gibt bei dem MQTT2_DEVICE-Modul aber kein Template deswegen habe ich das von Hand angepasst:


attr Wallswitch readingList zigbee2mqtt/<FRIENDLY_NAME>:.* { json2nameValue($EVENT) }


und

attr Wallswitch setList on_left:noArg zigbee2mqtt/<FRIENDLY_NAME>/left/set {"state":"ON"}\
  off_left:noArg zigbee2mqtt/<FRIENDLY_NAME>/left/set {"state":"OFF"}\
  toggle_left:noArg zigbee2mqtt/<FRIENDLY_NAME>/left/set {"state":"TOGGLE"}\
  on_right:noArg zigbee2mqtt/<FRIENDLY_NAME>/right/set {"state":"ON"}\
  off_right:noArg zigbee2mqtt/<FRIENDLY_NAME>/right/set {"state":"OFF"}\
  toggle_right:noArg zigbee2mqtt/<FRIENDLY_NAME>/right/set {"state":"TOGGLE"}\


Führen zum gewünschten Verhalten

Gruß vom Blauhorn
1xBananaPi; 1x FB7490; 1xCUL433; 1x CC2530+CC2591; OpenMiLight-Gateway; 1xHMUART; HM-LC-Sw4-DR; Sonoff* mit TASMOTA, LEDController; MySensors; zigbee2mqtt;

Beta-User

Kann gerne helfen mit einem attrTemplate@MQTT2_DEVICE ;) , aber in diesem Forumsbereich lese ich eher seltener rein...

Der Auszug von Blauhorn sieht zumindest auf den ersten Blick nicht optimal aus, das wären m.E. besser zwei Devices, bei denen jeweils mit jsonMap "state" korrekt zu füllen wären; sollte auf Basis des in attrTemplate vorhandenen 2-Kanaligen zigbee2mqtt-Devices recht einfach zu entwickeln sein (eigentlich sollte eine einfache Anpassung der jsonMap-Attribute reichen).
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

Blauhorn

Hallo Beta-User,

die Hilfe nehme ich gern an. Ich wollte eigentlich das Template selbst bauen und dann MQTT2.contribute-Zweig mit anbieten. Wahrscheinlich bist du aber schneller.
1xBananaPi; 1x FB7490; 1xCUL433; 1x CC2530+CC2591; OpenMiLight-Gateway; 1xHMUART; HM-LC-Sw4-DR; Sonoff* mit TASMOTA, LEDController; MySensors; zigbee2mqtt;

Beta-User

Finde es eine gute Idee, wenn du erst mal versuchst, das attrTemplate selbst vollends zusammenzubauen :) .

Wollte nur rechtzeitig anmerken, dass das hier mMn. besser mit $JSONMAP gelöst werden sollte. Aber bevor ich mir hier einen abbreche, um indirekt zu erläutern, wie es geht, hier mal ein erster Wurf:

# zigbee2mqtt 2 channel device with buttons, forum #102866
name:zigbee2mqtt_2channel_split_w_buttons
filter:TYPE=MQTT2_DEVICE:FILTER=CID=zigbee.*
desc:For zigbee2mqtt 2 channel device with 2 buttons. <br>NOTE: a second device will be created for the second channel<br>NOTE: Untested version, should work with Xiaomi QBKG12LM
order:L_05d
par:BASE_TOPIC;base topic set in configuration.yaml of the zigbee2mqtt bridge;{ AttrVal("DEVICE","readingList","") =~ m,[\b]?([^/:]+)[/].*:, ? $1 : undef }
par:DEV_ID;name of the device in the zigbee2mqtt bridge;{ AttrVal("DEVICE","readingList","") =~ m,[^/]+[/]([^/]+).*:, ? $1 : undef }
par:ICON;ICON as set, defaults to message_socket;{ AttrVal("DEVICE","icon","message_socket") }
set DEVICE attrTemplate zigbee2mqtt_2channel_split
attr DEVICE setList \
  on:noArg BASE_TOPIC/DEV_ID/left/set {"state":"ON"}\
  off:noArg BASE_TOPIC/DEV_ID/left/set {"state":"OFF"}\
attr DEVICE jsonMap state:availability state_left:state state_right:0
attr DEVICE_CH2 setList \
  on:noArg BASE_TOPIC/DEV_ID/right/set {"state":"ON"}\
  off:noArg BASE_TOPIC/DEV_ID/right/set {"state":"OFF"}
attr DEVICE_CH2 jsonMap state_left:0 state_right:state state:0 consumption:0 linkquality:0 power:0 temperature:0
attr DEVICE,DEVICE_CH2 model zigbee2mqtt_2channel_split_w_buttons

Dann bin ich mal gespannt, ob das soweit klappt, und welche Verbesserungsvorschläge kommen, das ist sicher noch nicht ganz fertig :) ...
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

Blauhorn

Danke für das Template.
Es fehlte noch
copy DEVICE DEVICE_CH2
vor dem ersten attr-Befehl des zweiten Kanals.
Und den eine Zeilenumbruch-Backslash vorm dem jsonmap habe ich auch mal raus genommen.

Das funktioniert erstmal sonst soweit.
Beim Anwenden des Templates kam eine Fehlermeldung *nicht gemerkt* "no template entry for ...." *naak, naak, naak*.
Kann ich das ignorieren?
1xBananaPi; 1x FB7490; 1xCUL433; 1x CC2530+CC2591; OpenMiLight-Gateway; 1xHMUART; HM-LC-Sw4-DR; Sonoff* mit TASMOTA, LEDController; MySensors; zigbee2mqtt;

Beta-User

Ne, dann ist noch was schief...Der attrTemplate-Befehl sollte auch CH2 anlegen. Template-File war auf dem letzten Stand?
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