DOIF mit Bewegungsmelder startet Aktion mit großer Verzögerung

Begonnen von fhem-bastler, 22 Januar 2024, 17:28:48

Vorheriges Thema - Nächstes Thema

fhem-bastler

Hallo
ich stehe mit meinem Latein am Ende. Zur Aufgabe, ich habe einen Bewegungsmelder Tradfri, der über Zigbee Gateway Conbee2 sauber die Bedingung meldet. Der Befehl im DOIF wird aber erst nach Ablauf einer davon unabhängigen internen Zeitschleife von 60 Sekunden durchgeführt, so daß man nach Betreten des Erfassungsbereich bis zu einer Minute warten muß bis das Licht angeht. Ein Attribut "attr motion3.DOIF do resetwait" wird in meiner Installation fhem 6.0 nicht angeboten. Wo kann ich dazu Informationen finden oder ein Beispiel ? Die "set xx on" Schaltung an sich funktioniert, aber leider zu spät
Danke für die Hilfe
Als Anhaltspunkt ein Auszug meiner Statements:
define deCONZ HUEBridge 192.168.123.150:8080
setuuid deCONZ 65a893b8-f33f-b8f9-1448-b104ebbae2810721
attr deCONZ forceAutocreate 1
attr deCONZ httpUtils 1
attr deCONZ key xxxxxxxx
define deCONZ_HUEGroup20000 HUEDevice group 20000  IODev=deCONZ
setuuid deCONZ_HUEGroup20000 65a8a155-f33f-b8f9-5362-7d4c47d0a4d452b3
attr deCONZ_HUEGroup20000 userattr createActionReadings:1,0 createGroupReadings:1,0
attr deCONZ_HUEGroup20000 IODev deCONZ
attr deCONZ_HUEGroup20000 alias Presence 2 0
attr deCONZ_HUEGroup20000 color-icons 2
attr deCONZ_HUEGroup20000 delayedUpdate 1
attr deCONZ_HUEGroup20000 devStateIcon {(HUEDevice_devStateIcon($name),"toggle")}
attr deCONZ_HUEGroup20000 event-on-change-reading any_on
attr deCONZ_HUEGroup20000 group HUEGroup
define motion3.DOIF DOIF {if ([motion3:state] eq "motion" )   {fhem_set ("DG_Shellyplug9 on");; set_Exec("off",240, 'fhem_set("DG_Shellyplug9 off")');;}}
define motion3 HUEDevice sensor 2  IODev=deCONZ
setuuid motion3 65a94e0e-f33f-b8f9-6076-5a477c4d4e80eb8f
attr motion3 devStateIcon motion:people_sensor nomotion:message_presence
attr motion3 event-on-change-reading state
attr motion3 icon motion_detector
attr motion3 model TRADFRI motion sensor
fhem 6.0 auf opensuse leap, mqtt2, mqtt, Shelly3pm, shellyplugs, Victron PV mit influxdb, deCONZ in docker

Per

Du arbeitest im Perl Mode, da hast du nur sehr wenige Attribute, dafür aber den vollen Zugriff, für den du aber auch selbst sorgen musst.

Damian

Zitat von: fhem-bastler am 22 Januar 2024, 17:28:48Hallo
ich stehe mit meinem Latein am Ende. Zur Aufgabe, ich habe einen Bewegungsmelder Tradfri, der über Zigbee Gateway Conbee2 sauber die Bedingung meldet. Der Befehl im DOIF wird aber erst nach Ablauf einer davon unabhängigen internen Zeitschleife von 60 Sekunden durchgeführt, so daß man nach Betreten des Erfassungsbereich bis zu einer Minute warten muß bis das Licht angeht. Ein Attribut "attr motion3.DOIF do resetwait" wird in meiner Installation fhem 6.0 nicht angeboten. Wo kann ich dazu Informationen finden oder ein Beispiel ? Die "set xx on" Schaltung an sich funktioniert, aber leider zu spät
Danke für die Hilfe
Als Anhaltspunkt ein Auszug meiner Statements:
define deCONZ HUEBridge 192.168.123.150:8080
setuuid deCONZ 65a893b8-f33f-b8f9-1448-b104ebbae2810721
attr deCONZ forceAutocreate 1
attr deCONZ httpUtils 1
attr deCONZ key xxxxxxxx
define deCONZ_HUEGroup20000 HUEDevice group 20000  IODev=deCONZ
setuuid deCONZ_HUEGroup20000 65a8a155-f33f-b8f9-5362-7d4c47d0a4d452b3
attr deCONZ_HUEGroup20000 userattr createActionReadings:1,0 createGroupReadings:1,0
attr deCONZ_HUEGroup20000 IODev deCONZ
attr deCONZ_HUEGroup20000 alias Presence 2 0
attr deCONZ_HUEGroup20000 color-icons 2
attr deCONZ_HUEGroup20000 delayedUpdate 1
attr deCONZ_HUEGroup20000 devStateIcon {(HUEDevice_devStateIcon($name),"toggle")}
attr deCONZ_HUEGroup20000 event-on-change-reading any_on
attr deCONZ_HUEGroup20000 group HUEGroup
define motion3.DOIF DOIF {if ([motion3:state] eq "motion" )   {fhem_set ("DG_Shellyplug9 on");; set_Exec("off",240, 'fhem_set("DG_Shellyplug9 off")');;}}
define motion3 HUEDevice sensor 2  IODev=deCONZ
setuuid motion3 65a94e0e-f33f-b8f9-6076-5a477c4d4e80eb8f
attr motion3 devStateIcon motion:people_sensor nomotion:message_presence
attr motion3 event-on-change-reading state
attr motion3 icon motion_detector
attr motion3 model TRADFRI motion sensor
Dann schau dir im Eventmonitor die Events genau an, DOIF sollte nach deiner Definition sofort auf Änderung des Status von motion3 reagieren, vielleicht hast du bei motion3 irgendwelche event...-Attribute gesetzt, sodass es keine unmittelbaren Events gibt, die das DOIF-Device triggern.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

fhem-bastler

Zitat von: Damian am 22 Januar 2024, 18:38:57Dann schau dir im Eventmonitor die Events genau an, DOIF sollte nach deiner Definition sofort auf Änderung des Status von motion3 reagieren, vielleicht hast du bei motion3 irgendwelche event...-Attribute gesetzt, sodass es keine unmittelbaren Events gibt, die das DOIF-Device triggern.
Danke für den Hinweis.
Das habe ich gemacht, aber bin nicht schlauer. Es sieht so aus daß in fhem ein Scheduler einmal in der Minute zur Sekunde 07 durch alle Events geht die in der Zwischenzeit aufgelaufen sind und dann die Aktionen startet. In meinem Beispiel :
Bewegungsmelder spricht um 04:34 an, um 05:07 stellt fhem fest daß ein Event vorliegt, logged selbigen und startet Shellyplug9. Um 07:34 schaltet motion3 wieder auf nomotion, 4minuten nach Einschalten shellyplu9 wird dieser um 09:07 abgeschaltet. Ich weiß nicht wo dieses Minutenintervall eingestellt wird, bzw wie man das abschalten kann. Wird der fhem Task duchgestartet, findet die Schleife zu einem anderen Sekundenwert statt.
2024-01-23 00:04:22 MQTT_DEVICE DG_Shellyplug4 Wattmin: 17110920
2024-01-23 00:04:37 PRESENCE SamsungA52 present
2024-01-23 00:04:37 PRESENCE SamsungA52 presence: present
2024-01-23 00:04:58 MQTT_DEVICE DG_Shellyplug2 SENSOR: {"Time":"2024-01-23T00:04:58","ANALOG":{"Temperature":17.1},"ENERGY":{"TotalStartTime":"2022-04-23T15:20:22","Total":97.987,"Yesterday":0.047,"Today":0.000,"Period": 0,"Power": 2,"ApparentPower": 5,"ReactivePower": 4,"Factor":0.39,"Voltage":229,"Current":0.021},"TempUnit":"C"}
2024-01-23 00:05:00 MQTT_DEVICE KG_Shelly3EM emeter_2_energy: 61
2024-01-23 00:05:00 MQTT_DEVICE KG_Shelly3EM energie_Bilanz_intv: 5.81666666666667
2024-01-23 00:05:00 MQTT_DEVICE KG_Shelly3EM emeter_2_returned_energy: 0
2024-01-23 00:05:02 MQTT_DEVICE DG_Shellyplug9 SENSOR: {"Time":"2024-01-23T00:05:02","ENERGY":{"TotalStartTime":"2022-04-27T16:03:32","Total":0.018,"Yesterday":0.007,"Today":0.000,"Period": 0,"Power": 0,"ApparentPower": 0,"ReactivePower": 0,"Factor":0.00,"Voltage": 0,"Current":0.000}}
2024-01-23 00:05:04 MQTT MQTT connection: active
2024-01-23 00:05:07 MQTT_DEVICE DG_Shellyplug9 on
2024-01-23 00:05:07 MQTT_DEVICE DG_Shellyplug9 transmission-state: outgoing publish sent
---->>>>>>2024-01-23 00:04:34 HUEDevice motion3 motion
2024-01-23 00:05:07 MQTT_DEVICE DG_Shellyplug9 transmission-state: incoming publish received
2024-01-23 00:05:07 MQTT_DEVICE DG_Shellyplug9 Status: ON
2024-01-23 00:05:08 MQTT_DEVICE KG_Shelly3EM emeter_1_power: 213.19
2024-01-23 00:06:00 MQTT_DEVICE KG_Shelly3EM emeter_0_energy: 93
2024-01-23 00:06:00 MQTT_DEVICE KG_Shelly3EM energie_Bilanz_intv: 5.85
2024-01-23 00:06:01 MQTT_DEVICE KG_Shelly3EM emeter_2_returned_energy: 0
2024-01-23 00:06:02 MQTT_DEVICE DG_Shellyplug9 SENSOR: {"Time":"2024-01-23T00:06:02","ENERGY":{"TotalStartTime":"2022-04-27T16:03:32","Total":0.018,"Yesterday":0.007,"Today":0.000,"Period": 0,"Power": 9,"ApparentPower":15,"ReactivePower":13,"Factor":0.57,"Voltage":232,"Current":0.066}}
2024-01-23 00:06:02 MQTT_DEVICE DG_Shellyplug9 Leistung: 9
2024-01-23 00:06:02 MQTT_DEVICE DG_Shellyplug9 Wattmin: 1080
2024-01-23 00:06:04 MQTT MQTT connection: active
2024-01-23 00:06:20 MQTT_DEVICE KG_Shelly3EM emeter_1_power: 207.90
2024-01-23 00:07:01 MQTT_DEVICE KG_Shelly3EM emeter_2_returned_energy: 0
2024-01-23 00:07:02 MQTT_DEVICE DG_Shellyplug9 SENSOR: {"Time":"2024-01-23T00:07:02","ENERGY":{"TotalStartTime":"2022-04-27T16:03:32","Total":0.018,"Yesterday":0.007,"Today":0.000,"Period": 0,"Power": 8,"ApparentPower":15,"ReactivePower":13,"Factor":0.55,"Voltage":232,"Current":0.066}}
2024-01-23 00:07:02 MQTT_DEVICE DG_Shellyplug9 Wattmin: 1080
2024-01-23 00:07:04 MQTT MQTT connection: active
2024-01-23 00:08:01 MQTT_DEVICE KG_Shelly3EM emeter_2_returned_energy: 0
2024-01-23 00:08:02 MQTT_DEVICE DG_Shellyplug9 SENSOR: {"Time":"2024-01-23T00:08:02","ENERGY":{"TotalStartTime":"2022-04-27T16:03:32","Total":0.018,"Yesterday":0.007,"Today":0.000,"Period": 0,"Power": 9,"ApparentPower":15,"ReactivePower":13,"Factor":0.56,"Voltage":232,"Current":0.066}}
2024-01-23 00:08:04 MQTT MQTT connection: active
2024-01-23 00:08:06 InfluxDBLogger InfLog Statistics: t=1643818 s=1641671 f=2113 e=1643818
-->>>>>2024-01-23 00:07:34 HUEDevice motion3 nomotion
2024-01-23 00:08:20 MQTT_DEVICE KG_Shelly3EM emeter_1_total: 2717048.1
2024-01-23 00:08:20 MQTT_DEVICE KG_Shelly3EM emeter_2_total: 1493689.7
2024-01-23 00:08:22 MQTT_DEVICE DG_Shellyplug4 SENSOR: {"Time":"2024-01-23T00:08:22","ENERGY":{"TotalStartTime":"2022-04-26T15:57:19","Total":285.182,"Yesterday":0.491,"Today":0.000,"Period": 0,"Power": 1,"ApparentPower":11,"ReactivePower":11,"Factor":0.11,"Voltage":230,"Current":0.049}}
2024-01-23 00:08:22 MQTT_DEVICE DG_Shellyplug4 Wattmin: 17110920
2024-01-23 00:08:54 MQTT_DEVICE DG_Shellyplug3 SENSOR: {"Time":"2024-01-23T00:08:54","ENERGY":{"TotalStartTime":"2022-04-27T16:19:42","Total":64.830,"Yesterday":0.167,"Today":0.001,"Period":0.1,"Power":7.0,"ApparentPower":26.8,"ReactivePower":25.9,"Factor":0.26,"Voltage":231,"Current":0.116}}
2024-01-23 00:08:58 MQTT_DEVICE DG_Shellyplug2 SENSOR: {"Time":"2024-01-23T00:08:58","ANALOG":{"Temperature":17.6},"ENERGY":{"TotalStartTime":"2022-04-23T15:20:22","Total":97.988,"Yesterday":0.047,"Today":0.000,"Period": 0,"Power": 2,"ApparentPower": 5,"ReactivePower": 5,"Factor":0.37,"Voltage":229,"Current":0.021},"TempUnit":"C"}
2024-01-23 00:09:01 MQTT_DEVICE KG_Shelly3EM emeter_0_energy: 93
2024-01-23 00:09:01 MQTT_DEVICE KG_Shelly3EM energie_Bilanz_intv: 6.05
2024-01-23 00:09:01 MQTT_DEVICE KG_Shelly3EM emeter_0_returned_energy: 0
2024-01-23 00:09:01 MQTT_DEVICE KG_Shelly3EM emeter_1_energy: 208
2024-01-23 00:09:01 MQTT_DEVICE KG_Shelly3EM emeter_1_returned_energy: 0
2024-01-23 00:09:01 MQTT_DEVICE KG_Shelly3EM emeter_2_energy: 62
2024-01-23 00:09:01 MQTT_DEVICE KG_Shelly3EM emeter_2_returned_energy: 0
2024-01-23 00:09:02 MQTT_DEVICE DG_Shellyplug9 SENSOR: {"Time":"2024-01-23T00:09:02","ENERGY":{"TotalStartTime":"2022-04-27T16:03:32","Total":0.018,"Yesterday":0.007,"Today":0.001,"Period": 0,"Power": 9,"ApparentPower":15,"ReactivePower":12,"Factor":0.58,"Voltage":232,"Current":0.065}}
2024-01-23 00:09:02 MQTT_DEVICE DG_Shellyplug9 Wattmin: 1080
2024-01-23 00:09:04 MQTT MQTT connection: active
2024-01-23 00:09:05 PRESENCE SamsungA52 present
2024-01-23 00:09:05 PRESENCE SamsungA52 presence: present
2024-01-23 00:08:34 HUEDevice BWSonoff1 tampered: 0
2024-01-23 00:08:34 HUEDevice BWSonoff1 batteryPercent: 100
2024-01-23 00:08:34 HUEDevice BWSonoff1 motion
2024-01-23 00:08:34 HUEDevice BWSonoff1 lastseen: 2024-01-22T23:08Z
2024-01-23 00:08:34 HUEDevice BWSonoff1 batteryState: ok
2024-01-23 00:08:34 HUEDevice BWSonoff1 battery: 100
2024-01-23 00:08:34 HUEDevice BWSonoff1 reachable: 1
------>>>>2024-01-23 00:09:07 MQTT_DEVICE DG_Shellyplug9 off
2024-01-23 00:09:07 MQTT_DEVICE DG_Shellyplug9 transmission-state: outgoing publish sent
2024-01-23 00:09:07 MQTT_DEVICE DG_Shellyplug9 transmission-state: incoming publish received
2024-01-23 00:09:07 MQTT_DEVICE DG_Shellyplug9 Status: OFF
2024-01-23 00:09:07 MQTT_DEVICE KG_Shelly3EM emeter_1_power: 200.61
2024-01-23 00:09:10 InfluxDBLogger InfLog total_writes: 1643819
fhem 6.0 auf opensuse leap, mqtt2, mqtt, Shelly3pm, shellyplugs, Victron PV mit influxdb, deCONZ in docker

fhem-bastler

Hallo
danke für die Anteilnahme, das Problem ist weitgehend gelöst:
Ursache: sowohl HUEBridge als auch HUEDevice haben ein Intervall definiert als zweiten Wert in der Definition, dieser gibt an welche Zeitspanne zwischen zwei regelmäßigen Parse Vorgängen sein soll. Der Default ist eine Minute :-)  Deswegen das Reading bei mir nur zu festen Zeiten im Minutenabstand, aber warum:
In einer anderen Ecke (30_HUEBridge und 31_HUEDevice) habe ich gefunden, daß ein Websocket Zugang auch genutzt wird, da war aber bei mir ein Fehler drin, da der TCP Port 443 auf den Conbee2 Stick nicht erreichbar war. Das gestaltete sich etwas schwieriger, da ich die deconz Gateway Software für den Conbee2 Stck in einem Docker Container betreibe. Hierzu müssen die TCP Ports gemappt werden, da auf dem gleichen Server auch normale Webanwendungen laufen. Nachdem ich das eingerichtet hatte, läuft jetzt alles so wie ich mir das vorstelle: Wenn der Bewegungsmelder ausgelöst wird wird sofort der Schalter getriggert über die Websocket Verbindung.
Einziger Schatten bei der Geschichte : Meldungen wie diese am laufenden Band. Kennt das jemand ?
Wenn das verbose auf 3 gesetzt wird werden sie verschwinden, aber besser wäre sie gar nicht zu erzeugen.
2024.01.24 03:07:49 4 : parse status message for motion3
2024.01.24 03:07:49 5 : motion3: using offsetUTC 3600 from bridge
2024.01.24 03:07:49 4 : motion3: ignoring reading batteryPercent with timestamp 2024-01-24 02:52:46, current reading timestamp is 2024-01-24 02:52:46
2024.01.24 03:07:49 4 : motion3: ignoring reading dark with timestamp 2024-01-24 02:52:46, current reading timestamp is 2024-01-24 02:52:46
2024.01.24 03:07:49 4 : motion3: ignoring reading state with timestamp 2024-01-24 02:52:46, current reading timestamp is 2024-01-24 02:52:46
2024.01.24 03:07:49 4 : motion3: ignoring reading battery with timestamp 2024-01-24 02:52:46, current reading timestamp is 2024-01-24 02:52:46
2024.01.24 03:07:49 4 : motion3: ignoring reading reachable with timestamp 2024-01-24 02:52:46, current reading timestamp is 2024-01-24 02:52:46
2024.01.24 03:07:49 4 : motion3: ignoring reading lastseen with timestamp 2024-01-24 02:52:46, current reading timestamp is 2024-01-24 02:52:46

Grüße aus dem windigigen RheinMaingebiet
fhem 6.0 auf opensuse leap, mqtt2, mqtt, Shelly3pm, shellyplugs, Victron PV mit influxdb, deCONZ in docker