FHEM Forum

FHEM => Automatisierung => Thema gestartet von: betateilchen am 28 März 2014, 15:31:16

Titel: [patch] 91_notify.pm - Uhrzeit der letzten Ausführung anzeigen
Beitrag von: betateilchen am 28 März 2014, 15:31:16
Bitte um wohlwollende Prüfung folgenden Vorschlages:


Index: 91_notify.pm
===================================================================
--- 91_notify.pm (revision 5350)
+++ 91_notify.pm (working copy)
@@ -14,7 +14,7 @@
   $hash->{DefFn} = "notify_Define";
   $hash->{NotifyFn} = "notify_Exec";
   $hash->{AttrFn}   = "notify_Attr";
-  $hash->{AttrList} = "disable:0,1 disabledForIntervals forwardReturnValue:0,1";
+  $hash->{AttrList} = "disable:0,1 disabledForIntervals forwardReturnValue:0,1 showTriggerTime:0,1";
}


@@ -69,6 +69,7 @@
       $found = ("$n:$s" =~ m/^$re$/);
     }
     if($found) {
+      CommandSetstate(undef, "$ln ".localtime) if AttrVal($ln,'showTriggerTime',0);
       Log3 $ln, 5, "Triggering $ln";
       my (undef, $exec) = split("[ \t]+", $ntfy->{DEF}, 2);

@@ -230,6 +231,9 @@
         triggers this notify will also return this value. This can cause e.g
         FHEMWEB to display this value, when clicking "on" or "off", which is
         often not intended.</li>
+
+    <li>showTriggerTime<br/>
+        Replace STATE content 'active' by timestamp of last execution.</li>
   </ul>
   <br>


Danke.
Titel: Antw:[patch] 91_notify.pm - Uhrzeit der letzten Ausführung anzeigen
Beitrag von: rudolfkoenig am 28 März 2014, 18:40:26
Hab die Zuweisung etwas CPU-freundlicher gestaltet (hoffentlich ohne Nebeneffekte) und eingecheckt.
Titel: Antw:[patch] 91_notify.pm - Uhrzeit der letzten Ausführung anzeigen
Beitrag von: betateilchen am 28 März 2014, 18:56:28
Zitat von: rudolfkoenig am 28 März 2014, 18:40:26
etwas CPU-freundlicher

ich hab doch keine Fritzbox 8)
Titel: Antw:[patch] 91_notify.pm - Uhrzeit der letzten Ausführung anzeigen
Beitrag von: betateilchen am 28 März 2014, 19:13:22
Getestet. Funktioniert. Aber mir ist noch was aufgefallen.

Wie findest Du diese Variante?

      $ntfy->{STATE} = AttrVal($ln, 'showTriggerTime', 0) ? $dev->{NTFY_TRIGGERTIME} : 'active';

Hat den Vorteil, dass nach einem eventuellen Löschen des Attributes wieder der alte Zustand (active) eingetragen wird anstatt ewig (bis zum nächsten Neustart/Reload) den letzten Zeitstempel zu haben.
Titel: Antw:[patch] 91_notify.pm - Uhrzeit der letzten Ausführung anzeigen
Beitrag von: rudolfkoenig am 29 März 2014, 08:03:21
Habs eingecheckt. Haette nichtmal was dagegen das Attribut standardmaessig zu aktivieren.
Gegenargumente?
Titel: Antw:[patch] 91_notify.pm - Uhrzeit der letzten Ausführung anzeigen
Beitrag von: betateilchen am 29 März 2014, 09:54:03
Zitat von: rudolfkoenig am 29 März 2014, 08:03:21Gegenargumente?

Von meiner Seite keine.
Titel: Antw:[patch] 91_notify.pm - Uhrzeit der letzten Ausführung anzeigen
Beitrag von: rudolfkoenig am 30 März 2014, 09:19:00
Dann habe ich es geaendert.
Titel: Antw:[patch] 91_notify.pm - Uhrzeit der letzten Ausführung anzeigen
Beitrag von: betateilchen am 30 März 2014, 11:43:34
Danke.

Wenn das jetzt Standard ist, solltest Du diese Änderung vielleicht in den Ankündigungen erwähnen.* Vielleicht arbeitet der eine oder andere doch mit Abfragen auf "active" oder "disabled" bei seinen notifies. Anstatt auf "active" sollte man dann ggf. auf "!disabled" prüfen, falls man das Attribut nicht ändern will.

* Ich werde einen Hinweis in den Ankündigungen posten.
Titel: Antw:[patch] 91_notify.pm - Uhrzeit der letzten Ausführung anzeigen
Beitrag von: betateilchen am 02 April 2014, 20:09:34
Hallo Rudi,

könntest Du die Triggertime bitte auf einen Zeitpunkt NACH der Ausführung verschieben?

So wie es jetzt umgesetzt ist, kann man den Zeitpunkt der letzten Ausführung nicht innerhalb eines notify lesen, weil er vorher schon wieder durch die aktuelle Ausführung überschrieben wird. Ich kann also nicht feststellen, ob ein notify "heute" schon einmal gelaufen ist.

Ich denke, eine Stelle nach AnalyzeCommandChain() wäre wohl der bessere Zeitpunkt.

Viele Grüße
Udo
Titel: Antw:[patch] 91_notify.pm - Uhrzeit der letzten Ausführung anzeigen
Beitrag von: rudolfkoenig am 03 April 2014, 09:40:08
Habs nach hinten geschoben und eingecheckt.
Titel: Antw:[patch] 91_notify.pm - Uhrzeit der letzten Ausführung anzeigen
Beitrag von: betateilchen am 03 April 2014, 09:41:46
Danke :)