Autor Thema: RandomTimer - neues Modul  (Gelesen 110811 mal)

Offline Dietmar63

  • Hero Member
  • *****
  • Beiträge: 2329
RandomTimer - neues Modul
« am: 28 Juli 2013, 15:52:40 »
RandomTimer module added - a module to simulate the random functionality of a timer clock like  FS20ZSU.

Bei mir ist alles so definiert:
fhem.cfg
define Verreist               dummy
attr   Verreist               webCmd ja:nein
...
define ZufallsTimerTisch      RandomTimer  *{sunset_abs()} StehlampeTisch  20:30:00 480
attr   ZufallsTimerTisch      disableCond  (!isVerreist())

99_Utils
#
sub isUrlaub         () { return(YesNo("Urlaub"));  }
sub isVerreist       () { return(YesNo("Verreist"));}
sub isUebergangszeit () { return(YesNo("Uebergangszeit"));}
#
#
#
sub YesNo ($) {

  my ($dummy) = @_;
  my $state = ReadingsVal($dummy, "state", "nein");
  if ($state eq "nein") {
    return 0;
  }
  return 1;
}

Mit diesem Modul läßt sich sehr einfach eine Anwesenheitssimulation erstellen.
Ich weiß, es es gibt schon einige Lösungen hier, aber diese ist aus meiner Sicht die Einfachste.
Sie läßt sich ohne shell-scripts betreiben, ist hoffentlich auf für Linux-Laien einzurichten.

Bitte mal probieren und feedback hier einstellen.
Das Modul und eine Dokumentation ist angehängt. Es wird aber auch per update bereitgestellt.
« Letzte Änderung: 01 Mai 2014, 01:19:23 von Dietmar63 »
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Offline Luigi

  • Jr. Member
  • **
  • Beiträge: 77
Aw: RandomTimer - neues Modul
« Antwort #1 am: 29 Juli 2013, 16:08:31 »
Ich habs wie oben beschrieben ausprobiert und bekomm folgende Fehlermeldungen:

2013.07.29 15:42:19 1: configfile: Wrong timespec Verreist: either HH:MM:SS or {perlcode}
Please define ZufallsTimerEG_GZ first
Please define ZufallsTimerEG_GZ first
Please define ZufallsTimerEG_GZ first
Please define ZufallsTimerEG_GZ first
Please define ZufallsTimerEG_GZ first

Hier meine Konfiguration:

define Verreist dummy
attr Verreist group Commands
attr Verreist room 99_System
attr Verreist webCmd ja:nein

define ZufallsTimerEG_GZ RandomTimer *{sunset_abs("HORIZON=5")} EG_GZ_Deckenlich
attr ZufallsTimerEG_GZ loglevel 3
attr ZufallsTimerEG_GZ offCmd set @ off
attr ZufallsTimerEG_GZ onCmd set @ pct 50
attr ZufallsTimerEG_GZ room EG_GZ
attr ZufallsTimerEG_GZ disableCond (!isVerreist())

Gruß
Luigi

Offline Dietmar63

  • Hero Member
  • *****
  • Beiträge: 2329
Aw: RandomTimer - neues Modul
« Antwort #2 am: 29 Juli 2013, 18:22:31 »

define ZufallsTimerTisch RandomTimer *{sunset_abs()}            StehlampeTisch    20:30:00 480
define ZufallsTimerEG_GZ RandomTimer *{sunset_abs("HORIZON=5")} EG_GZ_Deckenlich  xxxxxxxx xxx


Es fehlt aus meiner Sicht der  timespec_stop und der Parameter timeToSwitch.

Die Fehlermeldung Wrong timespec Verreist: either HH:MM:SS or {perlcode} deutet darauf hin, dass die aktuellste Version von RT nicht aktiv ist. Bitte die Datei einspielen und mit reload 98_RandomTimer nachladen.

Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 15081
  • s/fhem\.cfg/configDB/g
Aw: RandomTimer - neues Modul
« Antwort #3 am: 30 Juli 2013, 11:53:44 »
Hallo Dietmar,

in Deinem Modul passt die Doku noch nicht richtig, wird immer wieder beim commandref_join angemeckert.

- am Ende muss es "end html" anstatt "end html_DE" heissen
- das letzte /ul ist zuviel
- nach dem cut kann ein Zeilenumbruch nicht schaden :)

Viele Grüße
Udo



Index: 98_RandomTimer.pm
===================================================================
--- 98_RandomTimer.pm (Revision 3542)
+++ 98_RandomTimer.pm (Arbeitskopie)
@@ -478,7 +478,6 @@
         </pre>
     </li>
   </ul>
-</ul>
 
-=end html_DE
-=cut
\ No newline at end of file
+=end html
+=cut
-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.
-----------------------
Nächster Hamburg-Stammtisch: 14.12.2018 - 18:30 Uhr

Offline Dietmar63

  • Hero Member
  • *****
  • Beiträge: 2329
Aw: RandomTimer - neues Modul
« Antwort #4 am: 30 Juli 2013, 12:48:09 »
passe ich an
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Offline Dietmar63

  • Hero Member
  • *****
  • Beiträge: 2329
Aw: RandomTimer - neues Modul
« Antwort #5 am: 31 Juli 2013, 21:40:25 »
funktioniert es jetzt?
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 15081
  • s/fhem\.cfg/configDB/g
Aw: RandomTimer - neues Modul
« Antwort #6 am: 31 Juli 2013, 21:41:30 »
jepp, die Fehlermeldung ist verschwunden :)

Danke & Grüße
Udo
-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.
-----------------------
Nächster Hamburg-Stammtisch: 14.12.2018 - 18:30 Uhr

Offline Fhem_Neuling

  • New Member
  • *
  • Beiträge: 3
Aw: RandomTimer - neues Modul
« Antwort #7 am: 03 August 2013, 08:23:41 »
Hallo Dietmar,

bei Einschaltzeiten zwischen 00 und 5:59 Uhr funktioniert das Modul bei mir nicht.
Die Anfangszeit wird dann immer auf 00:05:00 gesetzt.
Mache ich was falsch oder ist da noch ein Fehler drin?

Gruß

Offline Dietmar63

  • Hero Member
  • *****
  • Beiträge: 2329
Aw: RandomTimer - neues Modul
« Antwort #8 am: 03 August 2013, 08:54:31 »
Schick mir mal deine Definition
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Offline Fhem_Neuling

  • New Member
  • *
  • Beiträge: 3
Aw: RandomTimer - neues Modul
« Antwort #9 am: 03 August 2013, 09:03:46 »
Hallo Dietmar,

das geht ja fix.
Die Definition ist:

define ZufallsTimer1 RandomTimer *06:30:00 wz_sd_re Verreist 06:30 720 800/100

Ich habe auch noch einen Screenshot angehangen, dort kannst Du sehen das State auf 00:05:00 gesetzt wird.
Bei späteren Zeiten wird die richtige Zeit dort eingetraen.

Herzlichen Dank
Dieter

Offline Dietmar63

  • Hero Member
  • *****
  • Beiträge: 2329
Aw: RandomTimer - neues Modul
« Antwort #10 am: 03 August 2013, 15:43:54 »
Deine Definition und vielleicht auch die Version des Moduls RT stimmen möglicherweise nicht:

Bitte RT von hier verwenden und so definieren wie hier beschrieben.
Link

Die Definition enthält neuerdings kein dummy mehr.
Man muss, wenn man den RT über dummy an-/abschalten will, eine disableCondition per attr setzen.
attr   ZufallsTimerTisch      disableCond  (!isVerreist())

Hier wird der Wert der Funktion isVerreist() ausgewertet.
In isVerreist() kannst du dann alles Mögliche abfragen. Sie muss nur true/false zurückliefern.

Für die Definition siehe obigen Link. Neu ist, dass auch die stoptime im Format HH:MM:SS angegeben werden muss. Diese ist eine Folge des Wunsches von ??? auch dort Perlfunktionen angeben zu wollen.  

Die Anzeige 00:05:00 im state kommt dadurch zustande, dass alle RT um 5 Minuten nach Mitternacht eine kleine Neuberechnung der Startzeit für den soeben angebrochenen Tag durchführen, und erst dann den richtigen Schaltzeitpunkt anzeigen - habe ich deshalb gemacht, weil Funktionen wie sunrise/sunset sonst den Wert vom Vortag verwenden würden.

Ich denke darüber nach, die Anzeige 00:05:00 verschwinden zu lassen - irritiert zu sehr.

Prüf mal nach, ob du mit den Hinweisen weiterkommst!
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Offline Fhem_Neuling

  • New Member
  • *
  • Beiträge: 3
Aw: RandomTimer - neues Modul
« Antwort #11 am: 03 August 2013, 16:25:25 »
Herzlichen Dank!
Ich hatte noch eine ältere Version im Einsatz
und werden jetzt die neue mal testen.


Offline wing350

  • Jr. Member
  • **
  • Beiträge: 52
Aw: RandomTimer - neues Modul
« Antwort #12 am: 04 August 2013, 12:06:11 »
Zitat von: Dietmar63 schrieb am Sa, 03 August 2013 15:43
Neu ist, dass auch die stoptime im Format HH:MM:SS angegeben werden muss. Diese ist eine Folge des Wunsches von ??? auch dort Perlfunktionen angeben zu wollen.  



Hallo Dietmar.
vielen Dank für die Arbeit. Ich war ja der mit den 3 Fragezeichen und habe das neue Modul eingearbeitet. Nun muss es erst einmal morgen früh zeigen, was es hergibt. Ich melde mich wieder.
Gruß
Reimer
RaspberryPi, Jessie-VM auf QNAP, FHEM 5.7, CUL868, 8 FHTs, FHT8w, ca. 20 div. in-/outdoor FS-Aktoren sowie diverse Fernbedienungen u. Programmer, 2 S300TH, RFXtrx433, TFA 30.31.50, TFA 303139,
Jeelink-Clone, PCA301, FBDECT

Offline wing350

  • Jr. Member
  • **
  • Beiträge: 52
Aw: RandomTimer - neues Modul
« Antwort #13 am: 05 August 2013, 07:44:12 »
Es scheint alles reibungslos zu klappen:
Perlfunktion als Stoppzeit und Aktivierung/Deaktivierung über die Variable in 99_Utils.pm.

Eine Merkwürdigkeit ist mir aufgefallen:
Bei aktivem RandomTimer wurde bei der Stoppzeit nicht das Datum in der Form YYYY:MM:DD, sondern der Tag des Jahres angezeigt: "2013:215 .....  "

Gruß
Reimer
RaspberryPi, Jessie-VM auf QNAP, FHEM 5.7, CUL868, 8 FHTs, FHT8w, ca. 20 div. in-/outdoor FS-Aktoren sowie diverse Fernbedienungen u. Programmer, 2 S300TH, RFXtrx433, TFA 30.31.50, TFA 303139,
Jeelink-Clone, PCA301, FBDECT

Offline Dietmar63

  • Hero Member
  • *****
  • Beiträge: 2329
Aw: RandomTimer - neues Modul
« Antwort #14 am: 05 August 2013, 16:52:29 »
Zitat
Eine Merkwürdigkeit ist mir aufgefallen:
 Bei aktivem RandomTimer wurde bei der Stoppzeit nicht das Datum in der Form YYYY:MM:DD, sondern der Tag des Jahres angezeigt: "2013:215 ..... "


Das ist Absicht. Als ich die Einzelteile des Moduls erstellt habe, mußte ich mir eine Darstellung der Abschaltzeit einfallen lassen, die es mir ermöglichte einfach den Wechsel des Tages während der Aktivzeit einzubeziehen.

Die Darstellung mit dem Tag im lfd. Jahr war am Einfachsten.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm