FHEM Forum

FHEM - Hausautomations-Systeme => Homematic => Thema gestartet von: rrr am 24 Dezember 2019, 03:42:08

Titel: HMCCUCHN / HMCCUDEV wechseln kurzzeitig den state auf Initalized bei FHEM-Reboot
Beitrag von: rrr am 24 Dezember 2019, 03:42:08
Nach dem Neustart des FHEM-Servers steht der state bei sämtlichen HMCCUCHN / HMCCUDEV Geräten kurzzeitig auf "Initialized", bevor er dann auf den korrekten Wert wechselt. (Bei einem HM-Sec-SC bspw. auf "closed" bzw. "open".)

Dadurch wird natürlich ein unnötiges Event erzeugt, welches auch sämtliche Notifys und DOIFs durcheinanderbringt.
Nebenbei kann bspw. auch nicht mehr die korrekte Zeit seit dem letzten Zustandswechsel eines Fensters erfasst werden.

Warum nimmt das Gerät sich bei einem FHEM-Neustart nicht den Wert aus dem statefile, wie es auch bei per CUL_HM angebundenen HomeMatic Geräten der Fall ist?

Kann ich das irgendwie ändern??
Titel: Antw:HMCCUCHN / HMCCUDEV wechseln kurzzeitig den state auf Initalized bei FHEM-Reboot
Beitrag von: zap am 24 Dezember 2019, 09:02:18
Du kannst es nicht ändern, aber ich. Möglicherweise sogar kurzfristig ;)
Titel: Antw:HMCCUCHN / HMCCUDEV wechseln kurzzeitig den state auf Initalized bei FHEM-Reboot
Beitrag von: marvin78 am 24 Dezember 2019, 09:48:25
Ich bin dafür.
Titel: Antw:HMCCUCHN / HMCCUDEV wechseln kurzzeitig den state auf Initalized bei FHEM-Reboot
Beitrag von: rrr am 24 Dezember 2019, 18:29:56
Das wäre echt super, wenn Du das kurzfristig ändern könntest...
Titel: Antw:HMCCUCHN / HMCCUDEV wechseln kurzzeitig den state auf Initalized bei FHEM-Reboot
Beitrag von: Grimmschak am 25 Dezember 2019, 13:21:07
oh, dem Wunsch schließ ich mich auf jeden Fall an.... 8)
Titel: Antw:HMCCUCHN / HMCCUDEV wechseln kurzzeitig den state auf Initalized bei FHEM-Reboot
Beitrag von: eurofinder am 26 Dezember 2019, 09:39:47
+1 :)

eurofinder
Titel: Antw:HMCCUCHN / HMCCUDEV wechseln kurzzeitig den state auf Initalized bei FHEM-Reboot
Beitrag von: rrr am 30 Dezember 2019, 10:37:59
Zitat von: zap am 24 Dezember 2019, 09:02:18
Du kannst es nicht ändern, aber ich. Möglicherweise sogar kurzfristig ;)

Weisst Du schon, wann Du das Update bereitstellen kannst?
Ich habe das state-Problem leider erst mitten in der Migration von CUL_HM zu HMCCU bemerkt. Ich würde aber auch ungern wieder zurück wechseln...

Im Übrigen wechseln sämtliche Readings eines HMCCUDEV/HMCCUCHN Devices bei einem Neustart zuerst auf "Initalized".
Es wäre gut wenn sämtliche Readings ihre alten Werte und Timestamps beibehalten, sofern diese keinen aktuelleren abweichenden Wert haben.
Titel: Antw:HMCCUCHN / HMCCUDEV wechseln kurzzeitig den state auf Initalized bei FHEM-Reboot
Beitrag von: zap am 30 Dezember 2019, 12:16:01
Das nächste Update wird die 4.4 und bringt zumindest intern einige Veränderungen mit. Das erfordert etwas umfangreichere Tests als sonst. Aber ich sag mal: entweder ed klappt diese Woche oder es dauert noch. Ab nächste Woche ist der Urlaub zu Ende und ich habe wieder weniger Zeit dafür.
Titel: Antw:HMCCUCHN / HMCCUDEV wechseln kurzzeitig den state auf Initalized bei FHEM-Reboot
Beitrag von: rrr am 30 Dezember 2019, 12:22:59
Hast Du den Part welches das Reading-Problem betrifft, denn schon fertig und könntest Ihn zum testen zur Verfügung stellen?

Ich hab probeweise mal die Zeile "readingsSingleUpdate ($dev_hash, "state", "Initialized", 1);" auskommentiert. So wird zwar der Initialized Status verhindert, aber kurz danach erhalten die Readings dennoch einen neuen Timestamp.
Titel: Antw:HMCCUCHN / HMCCUDEV wechseln kurzzeitig den state auf Initalized bei FHEM-Reboot
Beitrag von: zap am 30 Dezember 2019, 17:40:37
Die Zeile ist schon mal korrekt. Du musst aber zumindest im IO Device im Attribut ccuflags das Flag noInitialUpdate setzen. Das verhindert, dass nach dem Start vom RPC Server alle Devices aktualisiert werden.
Titel: Antw:HMCCUCHN / HMCCUDEV wechseln kurzzeitig den state auf Initalized bei FHEM-Reboot
Beitrag von: rrr am 30 Dezember 2019, 17:46:13
Das Flag noInitialUpdate hab ich auch schon gesetzt. Jedoch werden dadurch auch Änderungen welche während des FHEM-Ausfalls / Reboots stattfinden, nicht in FHEM aktualisiert...
Das Modul müsste beim Start vergleichen, ob die Werte sich geändert haben, und nur dann ein Update ausführen.
Titel: Antw:HMCCUCHN / HMCCUDEV wechseln kurzzeitig den state auf Initalized bei FHEM-Reboot
Beitrag von: frank am 30 Dezember 2019, 19:07:18
wenn du das attr timestamp-on-change-reading setzt, zb ".*" für alle readings, sollten die timestamps nur aktualisieren, wenn sich der value ändert.
Titel: Antw:HMCCUCHN / HMCCUDEV wechseln kurzzeitig den state auf Initalized bei FHEM-Reboot
Beitrag von: rrr am 02 Januar 2020, 10:24:18
Das habe ich auch bereits gesetzt. Dadurch kommen aber dennoch (kurz nach dem Reboot) Readings durch, welche im Attribut "event-min-interval" vorkommen. Aber das wäre ja noch zu verschmerzen.

Weiterhin helfen alle diese Maßnahmen (entfernen der "readingsSingleUpdate"-Zeile und setzen des Flags "noInitialUpdate") nicht, wenn der Rechner auf welchem sowohl FHEM als auch die piVCCU laufen, rebootet wird.
Dann bleiben sämtliche HMCCUDEV/HMCCUCHN-Devices auf "Pending" stehen (RPC-Server läuft selbstverständlich). So ist eine produktive Nutzung des HMCCU-Moduls leider nicht möglich...
Titel: Antw:HMCCUCHN / HMCCUDEV wechseln kurzzeitig den state auf Initalized bei FHEM-Reboot
Beitrag von: zap am 02 Januar 2020, 21:21:43
Also ich nutze es produktiv, insofern scheint es doch irgendwie zu funktionieren.

Pending heißt, dass eine verpätete Initialisierung stattfindet. Das ist der Nachteil, wenn CCU und FHEM auf dem gleichen Rechner laufen bei einem Reboot ist FHEM viel schneller wieder da als die CCU. Daher muss HMCCU auf die CCU warten. Während dieser Zeit gehemmdie Devices auf pending.
Titel: Antw:HMCCUCHN / HMCCUDEV wechseln kurzzeitig den state auf Initalized bei FHEM-Reboot
Beitrag von: rrr am 03 Januar 2020, 11:27:37
Also bei mir bleibt der state dauerhaft auf "Pending" stehen (kann jetzt aber auch sein weil, ich die besagte "Initialized"-Zeile entfernt habe).

Solche Angaben wie "Pending","Initialized", usw. gehören aber nicht in das state-Reading bzw. STATE-Internal eines einzelnen Devices/Kanals.
Wenn ich wissen möchte, ob das Interface (in diesem Fall die VCCU) nicht läuft, dann schau in in deren State.
Von mir aus kann man das, falls gewünscht, in den hmstate eines einzelnen Devices/Kanals mit reinbauen. Aber man kann doch keinem User zumuten, sämtliche Routinen anzupassen um Unpässlichkeiten des Interfaces abzufangen.
Titel: Antw:HMCCUCHN / HMCCUDEV wechseln kurzzeitig den state auf Initalized bei FHEM-Reboot
Beitrag von: zap am 03 Januar 2020, 17:26:41
In der nächsten Version ist sowohl initialized als auch pending aus dem state Reading verschwunden.
Titel: Antw:HMCCUCHN / HMCCUDEV wechseln kurzzeitig den state auf Initalized bei FHEM-Reboot
Beitrag von: zap am 04 Januar 2020, 16:32:49
Bitte schön:

https://forum.fhem.de/index.php/topic,91033.msg1008711.html#msg1008711
Titel: Antw:HMCCUCHN / HMCCUDEV wechseln kurzzeitig den state auf Initalized bei FHEM-Reboot
Beitrag von: rrr am 04 Januar 2020, 17:28:22
Vielen Dank für das Update.

Das folgende Problem besteht jedoch noch weiterhin:
Ich habe im HMCCUCHN/HMCCUDEV-Device das Attribut "event-on-change-reading .*" gesetzt. Leider kommen aber (kurz nach dem Reboot/Start) Readings durch, welche im Attribut "event-min-interval" vorkommen.

Besteht weiterhin die Möglichkeit, dass Readings - insbesondere deren Timestamp - sich nicht bei einem Neustart/Reboot ändern, wenn der Wert derselbe ist?