RandomTimer - neues Modul

Begonnen von Dietmar63, 28 Juli 2013, 15:52:40

Vorheriges Thema - Nächstes Thema

Dietmar63

Problem mit RandomTimer_Wakeup():

eingecheckt!
Prüf' bitte, ob es jetzt auch bei dir wieder funktioniert.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Benni

Hallo Dietmar

Habe erst gestern Abend das Update durchgeführt und meinen RandomTimer wieder aktiviert.
Heute Morgen nach verlassen des Hauses wurde korrekterweise ein RandomTimer_Wakeup ausgeführt und seither gibt es im Log keine unerwarteten Schaltungen vom RandomTimer.
Werde das dann heute Abend nochmal nach eintreten der Startzeit prüfen, d.h. Ob dann korrekt geschaltet wird.
Das Ergebnis reiche ich dann noch nach, aber soweit sieht es erst mal gut aus!
Danke!

Gruß Benni

Benni

Hallo Dietmar,

ich konnte nun gestern Abend einige RT-Schaltungen "live" beobachten.
Es scheint wieder zu funktionieren, wie gehabt.

Ich bin zwar der Meinung, dass das disabledCond früher etwas schneller ausgewertet wurde, quasi prompt beim umschalten auf 1, aber da bin ich mir nicht mehr ganz so sicher und mag mich auch irren.

Für mich ist das Problem so gelöst.

Vielen Dank!

Gruß Benni.

Dietmar63


ZitatIch bin zwar der Meinung, dass das disabledCond früher etwas schneller ausgewertet wurde, quasi prompt beim umschalten auf 1, aber da bin ich mir nicht mehr ganz so sicher und mag mich auch irren.

Dafür habe ich vielleicht eine Erklärung und kann auch das ändern.
Wenn es klappt checke ich es wieder ein.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

dsoltau

Hallo!

Ich möchte eine Anwesenheitssimulation während unseres Urlaubs laufen lassen. Ich wollte mich an diesem Thread hier orientieren, jedoch wurde mein Vorhaben erschwert. Ich habe mir von https://github.com/mhop/fhem-mirror/blob/master/fhem/FHEM/98_RandomTimer.pm die aktuelle Version von Random_Timer kopiert, in das /FHEM Verzeichnis kopiert und mit reload nachgeladen. Ich erhalte trotzdem immer noch diese Meldung:

Wrong timespec Verreist: either HH:MM:SS or {perlcode}

in der fhem.cfg habe ich folgendes eingetragen:
#
define Verreist dummy
attr Verreist group Commands
attr Verreist room Wohnzimmer
attr Verreist webCmd ja:nein
#
define ZufallsTimerTisch RandomTimer  *{sunset_abs("REAL")} LampeTisch Verreist 22:00 480 800/100
#


Im Einsatz habe ich FHEM 5.5 auf Fritzbox 7390 in der Version von AVM

Was ist zu tun?

Dietmar63

#95
Definition ist falsch. Siehe Commandref.
etwa so:
define ZufallsTimerTisch      RandomTimer  *{sunset_abs_rand(40)} StehlampeTisch +02:30:00 480
attr   ZufallsTimerTisch      disableCond  (!isVerreist())

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

maxritti

Hallo,

heute habe ich mich ein wenig gewundert, als ich nach ein paar Tagen nach Hause kam.
Denn eine Beleuchtung war noch an, welche normalerweise durch einen RandomTimer geschaltet wird.

Die Config des RandomTimers sieht so aus:

Internals:
   CFGFN
   COMMAND    off
   DEF        *{sunset("HORIZON=-1")}  EG_ku_SD_IndirekteBeleuchtung 22:30:00 500
   DEVICE     EG_ku_SD_IndirekteBeleuchtung
   NAME       UrlaubTimer
   NR         131
   REL
   REP        *
   SIGMAOFF   800
   SIGMAON    200
   STARTTIME  31.05.2014  21:35:31
   STATE      21:35:31
   STOPTIME   31.05.2014  22:30:00
   SWITCHMODE 800/200
   S_REL
   S_REP
   TIMESPEC_START *{sunset("HORIZON=-1")}
   TIMESPEC_STOP 22:30:00
   TIMETOSWITCH 500
   TYPE       RandomTimer
   active     0
   startTime  1401564931
   stopTime   1401568200
   Timer:
     Urlaubtimer_exec:
       HASH       UrlaubTimer
       MODIFIER   Exec
       NAME       UrlaubTimer_Exec
     Urlaubtimer_settimer:
       HASH       UrlaubTimer
       MODIFIER   SetTimer
       NAME       UrlaubTimer_SetTimer
Attributes:
   group      Urlaub
   switchmode 400/600
   verbose    5

   
Und das Log von gestern abend so:

2014.05.30 21:34:24 3: [UrlaubTimer] starting RandomTimer on EG_ku_SD_IndirekteBeleuchtung: 21:34:24(30) - 22:30:00(30)
2014.05.30 21:34:24 4: [UrlaubTimer] Zustand:on sigma:600 random:66
2014.05.30 21:34:24 4: [UrlaubTimer] command: set EG_ku_SD_IndirekteBeleuchtung off
2014.05.30 21:34:24 3: CUL_HM set EG_ku_SD_IndirekteBeleuchtung off
2014.05.30 21:34:24 5: [UrlaubTimer] removing Timer: UrlaubTimer_Exec
2014.05.30 21:34:24 5: [UrlaubTimer] setting  Timer: UrlaubTimer_Exec 30.05.2014  21:42:28
2014.05.30 21:42:28 4: [UrlaubTimer] Zustand:off sigma:400 random:857
2014.05.30 21:42:28 5: [UrlaubTimer] removing Timer: UrlaubTimer_Exec
2014.05.30 21:42:28 5: [UrlaubTimer] setting  Timer: UrlaubTimer_Exec 30.05.2014  21:51:04
2014.05.30 21:51:04 4: [UrlaubTimer] Zustand:off sigma:400 random:133
2014.05.30 21:51:04 4: [UrlaubTimer] command: set EG_ku_SD_IndirekteBeleuchtung on
2014.05.30 21:51:04 3: CUL_HM set EG_ku_SD_IndirekteBeleuchtung on
2014.05.30 21:51:04 5: [UrlaubTimer] removing Timer: UrlaubTimer_Exec
2014.05.30 21:51:04 5: [UrlaubTimer] setting  Timer: UrlaubTimer_Exec 30.05.2014  21:59:11
2014.05.30 21:59:11 4: [UrlaubTimer] Zustand:on sigma:600 random:796
2014.05.30 21:59:11 5: [UrlaubTimer] removing Timer: UrlaubTimer_Exec
2014.05.30 21:59:11 5: [UrlaubTimer] setting  Timer: UrlaubTimer_Exec 30.05.2014  22:07:38
2014.05.30 22:07:38 4: [UrlaubTimer] Zustand:on sigma:600 random:933
2014.05.30 22:07:38 5: [UrlaubTimer] removing Timer: UrlaubTimer_Exec
2014.05.30 22:07:38 5: [UrlaubTimer] setting  Timer: UrlaubTimer_Exec 30.05.2014  22:16:00
2014.05.30 22:16:00 4: [UrlaubTimer] Zustand:on sigma:600 random:721
2014.05.30 22:16:00 5: [UrlaubTimer] removing Timer: UrlaubTimer_Exec
2014.05.30 22:16:00 5: [UrlaubTimer] setting  Timer: UrlaubTimer_Exec 30.05.2014  22:24:37
2014.05.30 22:24:37 4: [UrlaubTimer] Zustand:on sigma:600 random:757
2014.05.30 22:24:37 5: [UrlaubTimer] removing Timer: UrlaubTimer_Exec
2014.05.30 22:24:37 5: [UrlaubTimer] setting  Timer: UrlaubTimer_Exec 30.05.2014  22:32:51
2014.05.30 22:31:00 4: [UrlaubTimer] timings for RandomTimer on EG_ku_SD_IndirekteBeleuchtung: 21:35:31(31) - 22:30:00(31)
2014.05.30 22:31:00 5: [UrlaubTimer] removing Timer: UrlaubTimer_Exec
2014.05.30 22:31:00 5: [UrlaubTimer] setting  Timer: UrlaubTimer_Exec 31.05.2014  21:35:31
2014.05.30 22:31:00 5: [UrlaubTimer] removing Timer: UrlaubTimer_SetTimer
2014.05.30 22:31:00 5: [UrlaubTimer] setting  Timer: UrlaubTimer_SetTimer 31.05.2014  22:31:00


Um 21:51:04 scheint das Licht vom RandomTimer noch eingeschaltet worden zu sein.
Nur warum ist das nicht mehr ausgegangen?

Ist die Config nicht so zu verstehen, dass zwischen sunset("HORIZON=-1") und 22:30:00 das Licht zufällig ein- und wieder ausgeschaltet wird?
Oder muss ich da zum Ende des RandomTimers immer mit einem at noch dafür sorgen, dass das Licht ausgeschaltet wird?

Zum Einsatz kommt im übrigen diese Version:

# $Id: 98_RandomTimer.pm 5879 2014-05-17 16:56:20Z dietmar63 $

Dietmar63

Ich habe das leider auch festgestellt. Ich kann mich aber erst ab morgen abend wieder darum kümmern - Kurzurlaub in Dresden.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Dietmar63

ich habe die Ursache eventuell gefunden - muss aber jetzt noch einige Tage testen.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

maxritti

Moin,

kein Problem. Derzeit habe ich auch keinen Urlaubsmodus mehr aktiv.
Leider  >:(

Dietmar63

Eingecheckt

probier' den RT nochmals aus - sollte nun funzen.
Es gab nach der großen Umstrukturierung von RT ein Probem mit dem Abschalten nach Mitternacht.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

maxritti

Was heisst denn "Abschalten nach Mitternacht"?

Denn nach Mitternacht ist ja irgendwie auch wieder vor Mitternacht :)

Bei mir war ja Abschaltung für 22:30 geplant.

Egal. Ich mache morgen mal ein Update und teste und berichte dann.

Dietmar63

Kurz nach Mitternacht werden in RT die timings des frisch angebrochenen Tages ermittelt.
Damit soll erreicht werden, dass sunrise und ... immer die aktuellen ss/sr des Tages ermitteln.

Wenn ein Timer über den Tag hinaus läuft verschiebt sich die Zeit der Ermittlung auf
AbschaltzeitAktuellerTimer + 60 Sekunden. 60 Sekunden war falsch, weil das Setzen der timings so knapp nach der Abschlatzeit die noch laufenden Timer gelöscht hat. Der Abschaltbefehl wurde deshalb nicht mehr ausgeführt.

Jetzt erfolgt das Setzen der timings immer um AbschaltzeitAktuellerTimer+timeToSwitch+15Sekunden. Dann sollte der Abschaltbefehl tatsächlich erfolgt sein.

Probiers aus ob es funzt - bei mir hat es jedenfalls geklappt.



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

maxritti

So, nach ein paar Tagen kann ich nun mein Feedback geben.
Es klappt. Licht geht nun brav an und aus.

Danke Dir und schöne Pfingsttage

Bracew

Hallo,

ich kann mit:

# FunkSchalter mit Code 2
define Lampe_TV GenShellSwitch /usr/local/sbin/send433 10000 2 1 0
attr Lampe_TV group Licht
attr Lampe_TV room Wohnzimmer,Licht
#
define Verreist dummy
attr Verreist devStateIcon ja:status_away_1:nein nein:status_available:ja
attr Verreist group Commands
attr Verreist icon it_i-net
attr Verreist room Info
attr Verreist webCmd ja:nein
#
define ZufallsTimer2 RandomTimer *{sunset_abs('REAL')} Lampe_TV *{sunset_abs('REAL',2*3600)} 300
attr ZufallsTimer2 disableCond (!isVerreist())
attr ZufallsTimer2 switchmode 660/400

meine Funksteckdosen in der gegebenen Zeit schalten lassen. Funktioniert gut!

Nun möchte ich aber, wenn ich zuhause bin, die Lampe auch automatisch zum Sonnenuntergang einschalten und um 22:00 Uhr wieder ausschalten.
Dafür habe ich:

define ZufallsTimer4 RandomTimer *{sunset_abs('HORIZON=3')} Lampe_TV 22:00:00 999
attr ZufallsTimer4 switchmode 999/000

einprogrammiert.

Aber, wie muss ich disableCond setzen, dass eben gerade wenn ich nicht verreist bin funktioniert?

Danke für eure Hilfe
Bracew

P.S. Kann ich die Lampe auch automatisch in der oben genannten Zeit einschalten lassen, wenn der Fernseher läuft? und wenn ja, wie?
Die Fernbedienung des Fernsehers habe ich mit:

define SamsungTV7090 STV 192.168.0.102 55000
define SamsungRC remotecontrol
attr SamsungRC rc_iconpath icons/remotecontrol
attr SamsungRC rc_iconprefix black_btn_
attr SamsungRC room Wohnzimmer
attr SamsungRC row00 POWEROFF,TV,HDMI
attr SamsungRC row01 :blank,:blank,:blank
attr SamsungRC row02 1,2,3
attr SamsungRC row03 4,5,6
attr SamsungRC row04 7,8,9
attr SamsungRC row05 :blank,0,PRECH
attr SamsungRC row06 :blank,:blank,:blank
attr SamsungRC row07 VOLUP:UP,MUTE,CHUP
attr SamsungRC row08 :VOL,:blank,:PROG
attr SamsungRC row09 VOLDOWN:DOWN,CH_LIST,CHDOWN
attr SamsungRC row10 MENU,:blank,GUIDE
attr SamsungRC row11 :blank,:blank,:blank
attr SamsungRC row12 TOOLS,UP,INFO
attr SamsungRC row13 LEFT,ENTER,RIGHT
attr SamsungRC row14 RETURN,DOWN,EXIT
define notify_SamsungRC notify SamsungRC set SamsungTV7090 $EVENT

in FHEM drin und funktioniert auch.
Für einen Anfänger fühle ich mich schon ganz schön Stolz das alles so klappt.
Ich danke allen, bei denen ich habe den Code abgucken dürfen!


FHEM auf Raspberry Pi
für z.B. Lichtsteuerung, Temperaturmessung, Balkonkraftwerk,
Öltankfüllstandsmessung und für Hühnerstall Hühnerklappe