Hallo zusammen,
ich habe ein Problem mit meinen Aotec Multi Switch Gen 5 Zwischensteckern. STATE/state funktioniert nicht bidirektional. Wenn ich manuell am Zwischenstecker schalte kommen zwar die Leistungswerte an, also "power" aktualisiert sich, STATE/state bleiben aber auf off.
Ich habe jetzt versucht das über ein DOIF zu lösen, also falls Power>0.5 und state off -> set on, bzw. Power=0 und state on -> set off.
Das DOIF klappt auch beim manuellen Schalten und state wechselt wie gewünscht auf on bzw. off, aber das Schalten aus FHEM funktioniert damit nicht mehr. Der Zwischenstecker schaltet sich z.B. direkt wieder ein.
Mein Problem ist, dass ich absoluter FHEM-Anfänger bin :) Ich versuche zwar mit Wiki usw. weiterzukommen, aber hier habe ich keine Idee. Ich habe es nur mal mit wait versucht, aber dann kamen die "Fehlschaltungen" einfach nur verzögert.
Bin für jeden Tipp dankbar! :)
Hier noch ein bisschen "Code":
Event Monitor beim Schalten über FHEM (Anschalten war ok, nach dem Ausschalten ging die Lampe direkt wieder an, da Power noch nicht 0 war):
2017-10-25 22:31:30 ZWave bu_FSD_Sideboardlampe on
2017-10-25 22:31:30 ZWave bu_FSD_Sideboardlampe Power: 0
2017-10-25 22:31:31 ZWave bu_FSD_Sideboardlampe hail: 01
2017-10-25 22:31:31 ZWave bu_FSD_Sideboardlampe Power: 0
2017-10-25 22:31:34 ZWave bu_FSD_Sideboardlampe energy: 18.62 kWh previous: 18.619 delta_time: 600 s
2017-10-25 22:31:34 ZWave bu_FSD_Sideboardlampe Power: 0
2017-10-25 22:31:34 ZWave bu_FSD_Sideboardlampe power: 39.057 W
2017-10-25 22:31:34 ZWave bu_FSD_Sideboardlampe Power: 39.057
2017-10-25 22:31:40 DOIF bu_FSD_Sideboardlampe_DOIF cmd_nr: 1
2017-10-25 22:31:40 DOIF bu_FSD_Sideboardlampe_DOIF cmd: 1
2017-10-25 22:31:40 DOIF bu_FSD_Sideboardlampe_DOIF cmd_event: bu_FSD_Sideboardlampe
2017-10-25 22:31:40 DOIF bu_FSD_Sideboardlampe_DOIF cmd_1
2017-10-25 22:31:40 ZWave bu_FSD_Sideboardlampe off
2017-10-25 22:31:40 ZWave bu_FSD_Sideboardlampe Power: 39.057
2017-10-25 22:31:40 ZWave bu_FSD_Sideboardlampe on
2017-10-25 22:31:40 ZWave bu_FSD_Sideboardlampe Power: 39.057
2017-10-25 22:31:40 ZWave bu_FSD_Sideboardlampe hail: 01
2017-10-25 22:31:40 ZWave bu_FSD_Sideboardlampe Power: 39.057
2017-10-25 22:31:40 ZWave bu_FSD_Sideboardlampe hail: 01
2017-10-25 22:31:40 ZWave bu_FSD_Sideboardlampe Power: 39.057
2017-10-25 22:31:51 ZWave bu_FSD_Sideboardlampe off
2017-10-25 22:31:51 ZWave bu_FSD_Sideboardlampe Power: 39.057
2017-10-25 22:31:51 ZWave bu_FSD_Sideboardlampe hail: 01
2017-10-25 22:31:51 ZWave bu_FSD_Sideboardlampe Power: 39.057
2017-10-25 22:31:56 ZWave bu_FSD_Sideboardlampe power: 0 W
2017-10-25 22:31:56 ZWave bu_FSD_Sideboardlampe Power: 0
2017-10-25 22:31:57 ZWave bu_FSD_Sideboardlampe power: 0 W
2017-10-25 22:31:57 ZWave bu_FSD_Sideboardlampe Power: 0
Event Monitor bei manuellem Schalten:
2017-10-25 22:29:21 ZWave bu_FSD_Sideboardlampe CMD: ZW_APPLICATION_UPDATE
2017-10-25 22:29:21 ZWave bu_FSD_Sideboardlampe Power: 0
2017-10-25 22:29:22 ZWave bu_FSD_Sideboardlampe hail: 01
2017-10-25 22:29:22 ZWave bu_FSD_Sideboardlampe Power: 0
2017-10-25 22:29:25 DOIF bu_FSD_Sideboardlampe_DOIF cmd_nr: 1
2017-10-25 22:29:25 DOIF bu_FSD_Sideboardlampe_DOIF cmd: 1
2017-10-25 22:29:25 DOIF bu_FSD_Sideboardlampe_DOIF cmd_event: bu_FSD_Sideboardlampe
2017-10-25 22:29:25 DOIF bu_FSD_Sideboardlampe_DOIF cmd_1
2017-10-25 22:29:25 ZWave bu_FSD_Sideboardlampe power: 39.002 W
2017-10-25 22:29:25 ZWave bu_FSD_Sideboardlampe Power: 39.002
2017-10-25 22:29:25 ZWave bu_FSD_Sideboardlampe on
2017-10-25 22:29:25 ZWave bu_FSD_Sideboardlampe Power: 39.002
2017-10-25 22:29:25 ZWave bu_FSD_Sideboardlampe hail: 01
2017-10-25 22:29:25 ZWave bu_FSD_Sideboardlampe Power: 39.002
2017-10-25 22:29:29 ZWave bu_FSD_Sideboardlampe CMD: ZW_APPLICATION_UPDATE
2017-10-25 22:29:29 ZWave bu_FSD_Sideboardlampe Power: 39.002
2017-10-25 22:29:30 ZWave bu_FSD_Sideboardlampe hail: 01
2017-10-25 22:29:30 ZWave bu_FSD_Sideboardlampe Power: 39.002
2017-10-25 22:29:33 DOIF bu_FSD_Sideboardlampe_DOIF cmd_nr: 2
2017-10-25 22:29:33 DOIF bu_FSD_Sideboardlampe_DOIF cmd: 2
2017-10-25 22:29:33 DOIF bu_FSD_Sideboardlampe_DOIF cmd_event: bu_FSD_Sideboardlampe
2017-10-25 22:29:33 DOIF bu_FSD_Sideboardlampe_DOIF cmd_2
2017-10-25 22:29:33 ZWave bu_FSD_Sideboardlampe power: 0 W
2017-10-25 22:29:33 ZWave bu_FSD_Sideboardlampe Power: 0
2017-10-25 22:29:33 ZWave bu_FSD_Sideboardlampe off
2017-10-25 22:29:33 ZWave bu_FSD_Sideboardlampe Power: 0
2017-10-25 22:29:34 ZWave bu_FSD_Sideboardlampe power: 0 W
2017-10-25 22:29:34 ZWave bu_FSD_Sideboardlampe Power: 0
2017-10-25 22:29:34 ZWave bu_FSD_Sideboardlampe power: 0 W
2017-10-25 22:29:34 ZWave bu_FSD_Sideboardlampe Power: 0
2017-10-25 22:29:34 ZWave bu_FSD_Sideboardlampe hail: 01
2017-10-25 22:29:34 ZWave bu_FSD_Sideboardlampe Power: 0
list DOIF:
Internals:
DEF ([bu_FSD_Sideboardlampe:Power] > 0.5 and [bu_FSD_Sideboardlampe:state] eq "off")
(set bu_FSD_Sideboardlampe on)
DOELSEIF
([bu_FSD_Sideboardlampe:Power] == 0 and [bu_FSD_Sideboardlampe:state] eq "on")
(set bu_FSD_Sideboardlampe off)
NAME bu_FSD_Sideboardlampe_DOIF
NR 245
NTFY_ORDER 50-bu_FSD_Sideboardlampe_DOIF
STATE initialized
TYPE DOIF
READINGS:
2017-10-25 22:22:40 cmd 0
2017-10-25 22:22:40 state initialized
condition:
0 ReadingValDoIf($hash,'bu_FSD_Sideboardlampe','Power') > 0.5 and ReadingValDoIf($hash,'bu_FSD_Sideboardlampe','state') eq "off"
1 ReadingValDoIf($hash,'bu_FSD_Sideboardlampe','Power') == 0 and ReadingValDoIf($hash,'bu_FSD_Sideboardlampe','state') eq "on"
devices:
0 bu_FSD_Sideboardlampe
1 bu_FSD_Sideboardlampe
all bu_FSD_Sideboardlampe
do:
0:
0 set bu_FSD_Sideboardlampe on
1:
0 set bu_FSD_Sideboardlampe off
2:
helper:
globalinit 1
last_timer 0
sleeptimer -1
itimer:
readings:
0 bu_FSD_Sideboardlampe:Power bu_FSD_Sideboardlampe:state
1 bu_FSD_Sideboardlampe:Power bu_FSD_Sideboardlampe:state
all bu_FSD_Sideboardlampe:Power bu_FSD_Sideboardlampe:state
regexp:
all:
state:
STATE:
Attributes:
list device:
Internals:
DEF ef1f4c55 4
IODev ZWAVE_USB_02
LASTInputDev ZWAVE_USB_02
MSGCNT 174
NAME bu_FSD_Sideboardlampe
NR 69
STATE off
TYPE ZWave
ZWAVE_USB_02_MSGCNT 174
ZWAVE_USB_02_RAWMSG 000400040e32022164000048bb0258000048bb
ZWAVE_USB_02_TIME 2017-10-25 22:11:34
ZWaveSubDevice no
cmdsPending 0
homeId ef1f4c55
isWakeUp
lastMsgSent 1508879450.37342
nodeIdHex 04
READINGS:
2017-10-24 22:12:50 CMD ZW_APPLICATION_UPDATE
2017-10-25 22:11:34 Power 0
2017-10-05 20:54:08 SEND_DATA failed:00
2017-08-05 08:04:55 UNPARSED METER 0e32422174000007a8000000000000
2017-10-17 22:26:36 basicReport 255
2017-10-17 22:27:46 configMinimumChangeToSendReport 5
2017-10-17 22:27:51 configMinimumChangeToSendReportWatt 25
2017-10-17 23:05:08 configNotificationStatus Hail
2017-10-25 22:11:34 energy 18.619 kWh previous: 18.619 delta_time: 600 s
2017-10-24 23:10:50 hail 01
2017-07-14 17:12:42 model Aeotec ZW075 Smart Switch Gen5
2017-07-14 17:12:42 modelConfig aeotec/zw075.xml
2017-07-14 17:12:42 modelId 0086-0003-004b
2017-10-24 22:27:54 power 0 W
2017-10-24 23:10:50 state off
2017-10-24 23:10:50 timeToAck 0.187
2017-10-24 23:10:50 transmit OK
2017-08-05 08:52:07 undef 2.254 undef
Attributes:
IODev ZWAVE_USB_02
Lampen Lampen
classes ZWAVEPLUS_INFO SWITCH_BINARY METER SWITCH_ALL SCENE_ACTUATOR_CONF SCENE_ACTIVATION CONFIGURATION ASSOCIATION ASSOCIATION_GRP_INFO CRC_16_ENCAP MANUFACTURER_SPECIFIC VERSION FIRMWARE_UPDATE_MD POWERLEVEL SECURITY MARK DEVICE_RESET_LOCALLY HAIL
genericDeviceType light
lights Lampen
room 1.8_Büro,16_ZWave,2.3_Funksteckdosen,41_Homekit
userReadings Power { ReadingsNum("bu_FSD_Sideboardlampe","power",0)}
userattr Lampen Lampen_map lights lights_map structexclude
vclasses ASSOCIATION:2 ASSOCIATION_GRP_INFO:1 CONFIGURATION:1 CRC_16_ENCAP:1 DEVICE_RESET_LOCALLY:1 FIRMWARE_UPDATE_MD:2 HAIL:1 MANUFACTURER_SPECIFIC:2 METER:3 POWERLEVEL:1 SCENE_ACTIVATION:1 SCENE_ACTUATOR_CONF:1 SECURITY:1 SWITCH_ALL:1 SWITCH_BINARY:1 VERSION:2 ZWAVEPLUS_INFO:2
Ich kenne Zwave nicht, aber wenn das ZWave-Gerät den Status nicht aktualisiert, würde ich dort ein Problem vermuten. Da solltest Du zuerst ansetzen und nicht versuchen das Problem durch Tricks zu kaschieren.
Um das DOIF-Problem zu losen sollte [bu_FSD_Sideboardlampe:state] nicht triggern lassen, wie das geht, steht in der deutschsprachigen Commandref zum DOIF im Inhaltsverzeichnis "... ohne Trigger".
Zitat von: Ellert am 25 Oktober 2017, 23:17:29
Ich kenne Zwave nicht, aber wenn das ZWave-Gerät den Status nicht aktualisiert, würde ich dort ein Problem vermuten. Da solltest Du zuerst ansetzen und nicht versuchen das Problem durch Tricks zu kaschieren.
Das habe ich auch versucht bevor ich mit dem DOIF angefangen habe. Bei diesem Zwischenstecker kann ich allerdings nur einstellen, ob mir die Leistungsdaten gesendet werden und ab welchen Schwellenwerten. Zum Status gibt es scheinbar keine Meldung.
Zitat von: Ellert am 25 Oktober 2017, 23:17:29
"... ohne Trigger".
Danke für den Hinweis, schaue ich mir an!
Es kommt keine Aenderung des state/STATE, da das Geraet so konfiguriert ist, dass manuelle Schaltvorgaenge mit der Class HAIL gemeldet werden. HAIL kennt kein on/off, sondern nur "geschaltet"=hail:01.
2017-10-17 23:05:08 configNotificationStatus Hail
Aender bitte configNotificationStatus (=Konfigurationsparamter 80) auf Meldung mit Class BASIC ab. Das sollte Dein Problem mMn lösen.
Gruß, Christian
Ich habe jetzt configNotificationStatus auf Basic geändert, aber leider sendet der Zwischenstecker kein on und off sondern basicReport 255 und 0.
Beim manuellen Schalten ändert sich state somit nicht :(
(Bei jedem Schalten wird außerdem noch CMD: ZW_APPLICATION_UPDATE mitgesendet.)
Gibt es irgendeine Möglichkeit das basicReport 255/0 in state on/off zu wandeln ohne den Zwischenstecker wieder zu triggern?
Der andere Vorschlag das DOIF bei state nicht zu triggern mit jeweils [?bu_FSD_Sideboardlampe:state] hat auch nicht zum Ziel geführt. Das Problem ist denke ich, dass Power nicht schnell genug auf 0 ist und daher ungewollt triggert.
Event Monitor bei manuellem Ein und Aus-:schalten
2017-10-26 18:48:02 ZWave bu_FSD_Sideboardlampe CMD: ZW_APPLICATION_UPDATE
2017-10-26 18:48:02 ZWave bu_FSD_Sideboardlampe Power: 0
2017-10-26 18:48:02 ZWave bu_FSD_Sideboardlampe basicReport: 255
2017-10-26 18:48:02 ZWave bu_FSD_Sideboardlampe Power: 0
2017-10-26 18:48:04 ZWave bu_FSD_Sideboardlampe power: 38.64 W
2017-10-26 18:48:04 ZWave bu_FSD_Sideboardlampe Power: 38.64
2017-10-26 18:48:12 ZWave bu_FSD_Sideboardlampe CMD: ZW_APPLICATION_UPDATE
2017-10-26 18:48:12 ZWave bu_FSD_Sideboardlampe Power: 38.64
2017-10-26 18:48:13 ZWave bu_FSD_Sideboardlampe basicReport: 0
2017-10-26 18:48:13 ZWave bu_FSD_Sideboardlampe Power: 38.64
2017-10-26 18:48:13 ZWave bu_FSD_Sideboardlampe power: 15.03 W
2017-10-26 18:48:13 ZWave bu_FSD_Sideboardlampe Power: 15.03
2017-10-26 18:48:16 ZWave bu_FSD_Sideboardlampe power: 0 W
2017-10-26 18:48:16 ZWave bu_FSD_Sideboardlampe Power: 0
ZitatGibt es irgendeine Möglichkeit das basicReport 255/0 in state on/off zu wandeln ohne den Zwischenstecker wieder zu triggern?
https://fhem.de/commandref.html#stateFormat
attr stateFormat bu_FSD_Sideboardlampe {ReadingsVal("ZWave bu_FSD_Sideboardlampe","basicReport","") eq "255" ? "on" : "off" }
So etwas in der Art (ungetestet)
Super danke!
attr stateFormat bu_FSD_Sideboardlampe {ReadingsVal("bu_FSD_Sideboardlampe","basicReport","") eq "255" ? "on" : "off" }
...funktioniert und immerhin STATE wird jetzt aktualisiert, so dass ich in FTUI und FHEMWEB den Status richtig angezeigt bekomme.
Gibt es einen Grund das kleine state zu ändern?
Hm evtl.? Dafür bin ich noch zu neu in FHEM um das zu überblicken. Könnte mir vorstellen, dass es mit structure Probleme geben könnte wenn ich mehrere Lampen verbinde. Oder generell bei notifys und Doifs nimmt man ja häufig state als Ereigniss/Event.
Zitat von: smn_fx am 26 Oktober 2017, 20:25:13
Hm evtl.? Dafür bin ich noch zu neu in FHEM um das zu überblicken. Könnte mir vorstellen, dass es mit structure Probleme geben könnte wenn ich mehrere Lampen verbinde. Oder generell bei notifys und Doifs nimmt man ja häufig state als Ereigniss/Event.
Im DOIF:
[<Devicename>] fragt STATE ab
[<Devicename>:state] fragt state ab
Hi, ich weiß das ist lange her aber ich habe es nachvollzogen und bin über die Leerzeichen (Space) gestolpert, richtiger wäre so was:
{ReadingsVal("Stube_Steckdose_oben","basicReport","")eq"255"?"on":"off"}
das attr stateFormat xxxx spare ich mir weil das beim Gerät auswählbar ist.
So funktionierts mit meiner Steckdose -Hank HKZW-SO05 Smart Plug - WebCmd habe ich noch auf ":" gesetzt um nur das Icon darzustellen.
Tschuldigung aber eventuell guckt jemand so wie ich (ohne Ahnung von Programmierung)
Liebe Grüße AM