PRESENCE: "maybe absent" nach Neustart von FHEM

Begonnen von DeeSPe, 09 Mai 2017, 14:11:04

Vorheriges Thema - Nächstes Thema

CoolTux

Ok, wahrscheinlich muss man sich Mal den ganzen Code anschauen. Werde das mal so einbauen und testen bei mir. Ausserdem schaue ich morgen mal in den Code.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

DeeSPe

Habe gerade vor $count noch das -- ergänzt damit der Zähler stimmt.
Bei mir überleben die absent Devices so schon mal sauber einen Neustart. 8)

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

DeeSPe

#17
Ganz rund ist die Sache noch nicht, denn der Counter muss ja tatsächlich wieder auf 0 gesetzt werden.
Ich denke so geht es, die Readings waren einfach vertauscht:
ZitatIndex: FHEM/73_PRESENCE.pm
===================================================================
--- FHEM/73_PRESENCE.pm   (revision 14249)
+++ FHEM/73_PRESENCE.pm   (working copy)
@@ -1289,7 +1289,7 @@
         {
             if(++$count >= $absenceThreshold)
             {
-                readingsBulkUpdate($hash, ".absenceThresholdCounter", 0);
+                readingsBulkUpdate($hash, ".presenceThresholdCounter", 0);
                 readingsBulkUpdate($hash, "state", "absent");
                 readingsBulkUpdate($hash, "presence", "absent");
             }
@@ -1334,7 +1334,7 @@
         {
             if(++$count >= $presenceThreshold)
             {
-                readingsBulkUpdate($hash, ".presenceThresholdCounter", "0");
+                readingsBulkUpdate($hash, ".absenceThresholdCounter", 0);
                 readingsBulkUpdate($hash, "state", "present");
                 readingsBulkUpdate($hash, "presence", "present");


Gruß
Dan

EDIT:
Nein immer noch nicht!
Die Mischung aus beiden klappt nun gut bei mir:
Index: FHEM/73_PRESENCE.pm
===================================================================
--- FHEM/73_PRESENCE.pm (revision 14249)
+++ FHEM/73_PRESENCE.pm (working copy)
@@ -1289,7 +1289,8 @@
         {
             if(++$count >= $absenceThreshold)
             {
-                readingsBulkUpdate($hash, ".absenceThresholdCounter", 0);
+                readingsBulkUpdate($hash, ".presenceThresholdCounter", 0);
+                readingsBulkUpdate($hash, ".absenceThresholdCounter", $count);
                 readingsBulkUpdate($hash, "state", "absent");
                 readingsBulkUpdate($hash, "presence", "absent");
             }
@@ -1334,7 +1335,8 @@
         {
             if(++$count >= $presenceThreshold)
             {
-                readingsBulkUpdate($hash, ".presenceThresholdCounter", "0");
+                readingsBulkUpdate($hash, ".absenceThresholdCounter", 0);
+                readingsBulkUpdate($hash, ".presenceThresholdCounter", --$count);
                 readingsBulkUpdate($hash, "state", "present");
                 readingsBulkUpdate($hash, "presence", "present");
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

DeeSPe

MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

CoolTux

Zitat von: DeeSPe am 12 Mai 2017, 23:15:02
Hast Du es mal getestet Marko?

Gruß
Dan

Leider noch nicht. Bin noch nicht dazu gekommen. Stecke mitten im Umbau von AMAD fest  ;D
Läuft es bei Dir?


Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

DeeSPe

Es tut erfolgreich seinen Dienst, überlebt die Neustarts problemlos und setzt auch den Zähler zurück.
Sogar wenn man mitten in einem absence Cycle neustartet, startet auch PRESENCE wieder beim richtigen Zähler.
Ganz perfekt ist der Zähler am Ende (nach Ablauf des Cycle) irgendwie teilweise noch nicht! 8)
Ist aber nur ein Schönheitsfehler, der nicht wirklich stört. Markus wird da sicher gleich die Lösung für sehen.
Habe allerdings bisher auch nur den absence Cycle getestet. presenceThreshold habe ich nicht im Einsatz.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

CoolTux

Klingt auf jeden Fall gut. PresenceThreshold habe ich auch nicht im Einsatz.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Markus Bloch

Hallo zusammen,

mein Fehler war, dass ich beim erreichen des finalen Zustands (absent/present), den Counter mit dem Wert 0 gespeichert habe, was bei einem Neustart ein erneutes durchgehen zufolge hat. Jetzt wird der Counter im korrekten Zustand gespeichert, sodass nach einem Neustart der Zustand sofort final gesetzt wird.

Vielen Dank für eure Hilfe.

Gruß
Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

DeeSPe

Danke, und freut mich dass Du das so schnell gefixt hast. :)
Dann war ja meine vorgeschlagene Änderung gar nicht sooo schlecht. 8)
Und eigentlich hattest Du ja, entgegen Deiner eigenen Vermutung, bereits alles vorbereitet. Nur war die Umsetzung noch nicht ganz perfekt.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Markus Bloch

Zitat von: DeeSPe am 13 Mai 2017, 13:17:38
Und eigentlich hattest Du ja, entgegen Deiner eigenen Vermutung, bereits alles vorbereitet. Nur war die Umsetzung noch nicht ganz perfekt.

Man wird mit dem zunehmenden Alter eben auch vergesslicher ;)
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

CoolTux

Und attraktiver, vergiss das attraktiver nicht!!!
;D  ;D  ;D
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net