Hallo,
über zigbee2mqtt habe ich eine Steckdose mit Leistungsmessung eingebunden. Diese Steckdose hat eine Tastensperre, die über MQTT2_DEVICE ein-/ausgeschaltet werden kann. Das habe ich bereits eingebunden. Der Zustand wird über devStateIcon angezeigt. Zusätzlich möchte ich die Tastensperre durch "drücken" des Icons schalten können. Bei ON/OFF funktioniert das. Für LOCK/UNLOCK bekomme ich das aber nicht hin..
Vieleicht kann mir ein Wissender helfen.
List:
Internals:
CFGFN
CID zigbee_0x84ba20fffe77b4c8
DEF zigbee_0x84ba20fffe77b4c8
FUUID 64d49c48-f33f-b02d-ec7d-9346821e93cb1320
IODev Mqtt2_Server
LASTInputDev Mqtt2_Server
MSGCNT 632
Mqtt2_Server_CONN Mqtt2_Server_172.16.10.23_56176
Mqtt2_Server_MSGCNT 632
Mqtt2_Server_TIME 2023-08-10 16:18:00
NAME MQTT2_zigbee_0x84ba20fffe77b4c8
NR 215549
STATE on
TYPE MQTT2_DEVICE
eventCount 723
OLDREADINGS:
READINGS:
2023-08-10 10:14:00 IODev Mqtt2_Server
2023-08-10 10:14:00 associatedWith MQTT2_zigbee_vm
2023-08-10 10:14:30 attrTemplateVersion 20220622
2023-08-10 16:18:00 child_lock LOCK
2023-08-10 16:18:00 current 0
2023-08-10 16:18:00 energy 0.01
2023-08-10 16:18:00 indicator_mode off/on
2023-08-10 11:39:50 json2nameValueInput ON
2023-08-10 16:18:00 linkquality 255
2023-08-10 16:17:00 lock set
2023-08-10 16:18:00 power 0
2023-08-10 16:18:00 power_outage_memory restore
2023-08-10 16:18:00 state on
2023-08-10 15:43:59 unlock set
2023-08-10 16:18:00 voltage 232
hmccu:
Attributes:
DbLogExclude .*
autocreate 1
devStateIcon {my $light = FW_makeImage(ReadingsVal($name,'state','off')eq 'on'?'radio_checked@red':'radio_unchecked@darkorange');;
my $lock = FW_makeImage (ReadingsVal($name,'child_lock','UNLOCK')eq 'LOCK'?'general_an@green':'general_aus@red');;
my $current = ReadingsVal($name,'current',0); my $pwr = ReadingsVal($name,'power',0);
my $energy = ReadingsVal($name,'energy',0);
qq(<div> <a href="/fhem?cmd.dummy=set $name toggle&XHR=1">$light</a> Aktuell: $current A Leistung.: $pwr W / Tastensperre: $lock<b></b>)}
devicetopic zigbee2mqtt/0x84ba20fffe77b4c8
genericDeviceType switch
model zigbee2mqtt_plug_w_energy_measuring
readingList $DEVICETOPIC:.* { my $ret=json2nameValue($EVENT); $ret->{state}=lc($ret->{state}) if defined $ret->{state}; return $ret }
room MQTT2_DEVICE
setList on:noArg $DEVICETOPIC/set {"state":"ON"}
off:noArg $DEVICETOPIC/set {"state":"OFF"}
toggle:noArg $DEVICETOPIC/set {"state":"TOGGLE"}
lock:noArg $DEVICETOPIC/set {"child_lock":"LOCK"}
unlock:noArg $DEVICETOPIC/set {"child_lock":"UNLOCK"}
setStateList on off toggle
webCmd :
Vielen Dank
Jürgen K.
ZitatZusätzlich möchte ich die Tastensperre durch "drücken" des Icons schalten können.
Bei ON/OFF funktioniert das. Für LOCK/UNLOCK bekomme ich das aber nicht hin..
Dafuer kann man aehnlich zum vorhandenen a-Tag einen Weiteren hinzufuegen, mit je nach $lock Wert href="/fhem?cmd=set $name lock&XHR=1" oder href="/fhem?cmd=set $name unlock&XHR=1".
zunaechst DANKE für die Hilfe.
Hatte erst Problme mit der Syntax..
jetzt habe ich es so geloest:
{my $light = FW_makeImage(ReadingsVal($name,'state','off')eq 'on'?'radio_checked@red':'radio_unchecked@darkorange');;
my $lock = FW_makeImage(ReadingsVal($name,'child_lock','UNLOCK')eq 'LOCK'?'general_an@red':'general_aus@lime');;
my $unlock = FW_makeImage(ReadingsVal($name,'child_lock','LOCK')eq 'UNLOCK'?'general_an@red':'general_aus@lime');;
my $current = ReadingsVal($name,'current',0); my $pwr = ReadingsVal($name,'power',0);
my $energy = ReadingsVal($name,'energy',0);
qq(<div> <a href="/fhem?cmd.dummy=set $name toggle&XHR=1">$light</a> Aktuell: $current A Leistung.: $pwr W / Tastensperre: <a href="/fhem?cmd=set $name lock&XHR=1">$lock</a> <a href="/fhem?cmd=set $name unlock&XHR=1"">$unlock</a><b></b>)}
geht bestimmt auch schoener..
Gruß
Jürgen K.