RandomTimer - neues Modul

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

Vorheriges Thema - Nächstes Thema

Dietmar63

Kein Problem - ich hatte ja noch keine Zeit investiert.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

oelidoc

Hallo,
seit einiger Zeit schalten meine RT nicht mehr. Ich habe hier eine Anwesenheitserkennung, die über ein DOIF insgesamt 6 RT auf disabled 0/1 setzt. Das funktioniert auch alles wunderbar, nur werden nach dem Starten der RT (disabled 0) die entsprechenden Schaltbefehle in letzter Zeit nicht mehr/nur vereinzelt ausgeführt.

Hier einmal ein Beispiel für einen RT:
define zufall_wohnzimmer_abends RandomTimer *{sunset_abs(-3100)} Dimmer_Wohnzimmer *{sunset_abs(+3720,"21:32","23:32")} 800
attr zufall_wohnzimmer_abends disable 0
attr zufall_wohnzimmer_abends onCmd set Dimmer_Wohnzimmer pct 60
attr zufall_wohnzimmer_abends room Wohnzimmer
attr zufall_wohnzimmer_abends switchmode 999/100


Hier ein kleiner Auszug aus dem LOG, die RT starten, schalten aber nicht:
2015.11.20 18:02:22 3: [zufall_arbeitszimmer_abends] starting RandomTimer on Licht_Arbeitszimmer: 16:18:54(20) - 21:32:00(20)
2015.11.20 18:05:51 3: [zufall_kueche_abends] starting RandomTimer on Dimmer_Kueche: 16:22:14(20) - 21:33:00(20)
2015.11.20 18:06:07 3: [zufall_wohnzimmer_abends] starting RandomTimer on Dimmer_Wohnzimmer: 16:20:34(20) - 21:32:00(20)


Das Maximum ist, daß ein einziger RT schaltet:
2015.11.19 18:41:56 3: [zufall_kueche_abends] starting RandomTimer on Dimmer_Kueche: 16:22:14(19) - 21:33:00(19)
2015.11.19 18:47:50 3: [zufall_arbeitszimmer_abends] starting RandomTimer on Licht_Arbeitszimmer: 16:19:54(19) - 21:32:00(19)
2015.11.19 18:48:33 3: [zufall_wohnzimmer_abends] starting RandomTimer on Dimmer_Wohnzimmer: 16:21:34(19) - 21:32:00(19)
2015.11.19 18:48:33 3: CUL_HM set Dimmer_Wohnzimmer pct 60

Die beiden anderen bleiben stumm, nur die eine Lampe wird im Verlauf weiter geschaltet.

Was läuft hier falsch oder was wurde am RT geändert, daß meine zugegebenermassen etwas komplizierten Konstrukte der Vergangenheit nicht mehr funktionieren?

Vielen Dank für eure Hilfe im voraus

oelidoc

Dietmar63

Kann ich mir erst morgen Abend ansehen
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

oelidoc

Zitat von: Dietmar63 am 20 November 2015, 22:44:22
Kann ich mir erst morgen Abend ansehen

OK, dann warte ich mal.

Gruß

oelidoc

oelidoc

#304
Also...

das Problem besteht immer noch: die RT starten, schalten aber nicht nicht.
Hier mal ein RT, der seit zwei Stunden kein einziges Mal das Licht eingeschaltet hat:

Internals:
   COMMAND    on
   DEF        *{sunset_abs(-3000)} Dimmer_Kueche *{sunset_abs(+3960,"21:36","23:36")} 300
   DEVICE     Dimmer_Kueche
   NAME       zufall_kueche_abends
   NR         117
   REL
   REP        *
   SIGMAOFF   999
   SIGMAON    050
   STARTTIME  02.12.2015  16:13:28
   STATE      on
   STOPTIME   02.12.2015  21:36:00
   SWITCHMODE 999/050
   S_REL
   S_REP      *
   TIMESPEC_START *{sunset_abs(-3000)}
   TIMESPEC_STOP *{sunset_abs(+3960,"21:36","23:36")}
   TIMETOSWITCH 300
   TYPE       RandomTimer
   active     1
   startTime  1449069208
   stopTime   1449088560
   Timer:
     Zufall_kueche_abends_exec:
       HASH       zufall_kueche_abends
       MODIFIER   Exec
       NAME       zufall_kueche_abends_Exec
     Zufall_kueche_abends_settimer:
       HASH       zufall_kueche_abends
       MODIFIER   SetTimer
       NAME       zufall_kueche_abends_SetTimer
Attributes:
   disable    0
   room       Kueche
   switchmode 999/050


Was kann ich tun?

Kleiner Nachtrag: wenn ich in der Web Oberfläche bei der Def des RT auf modify drücke, ohne etwas geändert zu haben, geht das Licht sofort an.

Gruß

oelidoc

Dietmar63

Hatte gestern Abend keine Zeit. Setze mal bei dem Timer verbose 5. Dann bekommst du besseres Logging.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

oelidoc

Hab ich:

2015.12.02 18:39:39 3: [zufall_kueche_abends] starting RandomTimer on Dimmer_Kueche: 16:13:02(02) - 21:36:00(02)
2015.12.02 18:39:39 4: [zufall_kueche_abends] Zustand:on sigma:050 random:726->
2015.12.02 18:39:39 5: [zufall_kueche_abends] removing Timer: zufall_kueche_abends_Exec
2015.12.02 18:39:39 5: [zufall_kueche_abends] setting  Timer: zufall_kueche_abends_Exec 2015-12-02 18:44:30
2015.12.02 18:44:30 4: [zufall_kueche_abends] Zustand:on sigma:050 random:562->
2015.12.02 18:44:30 5: [zufall_kueche_abends] removing Timer: zufall_kueche_abends_Exec
2015.12.02 18:44:30 5: [zufall_kueche_abends] setting  Timer: zufall_kueche_abends_Exec 2015-12-02 18:49:33


Irgendwie sieht es für mich so aus, als wenn der RT "denkt" Dimmer_Kueche sei schon an - ist aber beim Start des RT vorher von Hand ausgemacht worden.

Gruß

oelidoc

Dietmar63

warum hast du die Werte
SWITCHMODE 999/050
so gewählt?


   SIGMAOFF   999
   SIGMAON    050


Es wird mit fast 99,9 prozentiger Sicherheit ausgeschaltet aber nur mit 5,0 prozentiger Wahrscheinlichkeit wieder eingeschaltet.

das kann man im Log an folgenden Zeilen genau erkennen:

2015.12.02 18:39:39 4: [zufall_kueche_abends] Zustand:on sigma:050 random:726->
2015.12.02 18:44:30 4: [zufall_kueche_abends] Zustand:on sigma:050 random:562->


Es wird nur dann geschaltet wenn random:726 < sigma:050.
random ist eine Zufallszahl zwischen 0 und 1000.

Es ist also sehr unwahrscheinlich, dass deine Lampe angeschaltet wird.
Standard ist übrigens 800/200

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

oelidoc

Hallo Dietmar63,
vielen Dank für deine Hilfe.
Ich möchte, dass das Licht die allermeiste Zeit eingeschaltet ist und nur ab und zu für wenige Minuten mal ausgeht. Die Commandref zum Switchmode ist m.M.n. etwas widersprüchlich...
Also Switchmode einfach umdrehen und es sollte wie gewünscht laufen? Wirklich so einfach?

Gruß

oelidoc

oelidoc

#309
Hi,
hab die Switchmode Werte jetzt umgedreht und FHEM neu gestartet. Trotzdem steht im Log:
2015.12.02 21:10:40 3: [zufall_kueche_abends] starting RandomTimer on Dimmer_Kueche: 16:13:02(02) - 21:36:00(02)
2015.12.02 21:10:40 4: [zufall_kueche_abends] Zustand:off sigma:050 random:854->
2015.12.02 21:10:40 5: [zufall_kueche_abends] removing Timer: zufall_kueche_abends_Exec
2015.12.02 21:10:40 5: [zufall_kueche_abends] setting  Timer: zufall_kueche_abends_Exec 2015-12-02 21:15:39
2015.12.02 21:14:49 5: [zufall_kueche_abends] removing Timer: zufall_kueche_abends_SetTimer
2015.12.02 21:14:49 5: [zufall_kueche_abends] setting  Timer: zufall_kueche_abends_SetTimer 2015-12-02 21:14:50
2015.12.02 21:14:50 4: [zufall_kueche_abends] timings  RandomTimer on Dimmer_Kueche: 16:13:02(02) - 21:36:00(02)
2015.12.02 21:14:50 5: [zufall_kueche_abends] removing Timer: zufall_kueche_abends_Exec
2015.12.02 21:14:50 5: [zufall_kueche_abends] setting  Timer: zufall_kueche_abends_Exec 2015-12-02 21:14:50
2015.12.02 21:14:50 5: [zufall_kueche_abends] removing Timer: zufall_kueche_abends_SetTimer
2015.12.02 21:14:50 5: [zufall_kueche_abends] setting  Timer: zufall_kueche_abends_SetTimer 2015-12-03 00:05:15
2015.12.02 21:14:50 3: [zufall_kueche_abends] starting RandomTimer on Dimmer_Kueche: 16:13:02(02) - 21:36:00(02)
2015.12.02 21:14:50 4: [zufall_kueche_abends] Zustand:off sigma:050 random:548->
2015.12.02 21:14:50 5: [zufall_kueche_abends] removing Timer: zufall_kueche_abends_Exec
2015.12.02 21:14:50 5: [zufall_kueche_abends] setting  Timer: zufall_kueche_abends_Exec 2015-12-02 21:20:03

Einziger Unterschied: jetzt ist "Zustand:off"
aber das Licht ist immer noch aus...

Werden die neuen Werte erst um 00:05 Uhr übernommen?

Gruß

oelidoc

oelidoc

#310
Hallo,
es klappt immer noch nicht so, wie geplant  :'(

Hier mal das List des RT mit dem geänderten Switchmode:

Internals:
   COMMAND    off
   DEF        *{sunset_abs(-3000)} Dimmer_Kueche *{sunset_abs(+3960,"21:36","23:36")} 300
   DEVICE     Dimmer_Kueche
   NAME       zufall_kueche_abends
   NR         117
   REL
   REP        *
   SIGMAOFF   050
   SIGMAON    999
   STARTTIME  03.12.2015  16:13:02
   STATE      on
   STOPTIME   03.12.2015  21:36:00
   SWITCHMODE 050/999
   S_REL
   S_REP      *
   TIMESPEC_START *{sunset_abs(-3000)}
   TIMESPEC_STOP *{sunset_abs(+3960,"21:36","23:36")}
   TIMETOSWITCH 300
   TYPE       RandomTimer
   active     1
   startTime  1449155582
   stopTime   1449174960
   Timer:
     Zufall_kueche_abends_exec:
       HASH       zufall_kueche_abends
       MODIFIER   Exec
       NAME       zufall_kueche_abends_Exec
     Zufall_kueche_abends_settimer:
       HASH       zufall_kueche_abends
       MODIFIER   SetTimer
       NAME       zufall_kueche_abends_SetTimer
Attributes:
   disable    0
   room       Kueche
   switchmode 050/999
   verbose    5


Damit schaltet der RT nur ganz selten für 300 sek das Licht ein und danach gleich wieder aus:

2015.12.03 16:13:02 3: [zufall_kueche_abends] starting RandomTimer on Dimmer_Kueche: 16:13:02(03) - 21:36:00(03)
2015.12.03 16:13:02 4: [zufall_kueche_abends] Zustand:off sigma:050 random:882->
2015.12.03 16:13:02 5: [zufall_kueche_abends] removing Timer: zufall_kueche_abends_Exec
2015.12.03 16:13:02 5: [zufall_kueche_abends] setting  Timer: zufall_kueche_abends_Exec 2015-12-03 16:17:48
2015.12.03 16:17:48 4: [zufall_kueche_abends] Zustand:off sigma:050 random:308->
2015.12.03 16:17:48 5: [zufall_kueche_abends] removing Timer: zufall_kueche_abends_Exec
2015.12.03 16:17:48 5: [zufall_kueche_abends] setting  Timer: zufall_kueche_abends_Exec 2015-12-03 16:22:36
2015.12.03 16:22:36 4: [zufall_kueche_abends] Zustand:off sigma:050 random:140->
2015.12.03 16:22:36 5: [zufall_kueche_abends] removing Timer: zufall_kueche_abends_Exec
2015.12.03 16:22:36 5: [zufall_kueche_abends] setting  Timer: zufall_kueche_abends_Exec 2015-12-03 16:27:35
2015.12.03 16:27:35 4: [zufall_kueche_abends] Zustand:off sigma:050 random:322->
2015.12.03 16:27:35 5: [zufall_kueche_abends] removing Timer: zufall_kueche_abends_Exec
2015.12.03 16:27:35 5: [zufall_kueche_abends] setting  Timer: zufall_kueche_abends_Exec 2015-12-03 16:32:21
2015.12.03 16:32:21 4: [zufall_kueche_abends] Zustand:off sigma:050 random:287->
2015.12.03 16:32:21 5: [zufall_kueche_abends] removing Timer: zufall_kueche_abends_Exec
2015.12.03 16:32:21 5: [zufall_kueche_abends] setting  Timer: zufall_kueche_abends_Exec 2015-12-03 16:37:22
2015.12.03 16:37:22 4: [zufall_kueche_abends] Zustand:off sigma:050 random:272->
2015.12.03 16:37:22 5: [zufall_kueche_abends] removing Timer: zufall_kueche_abends_Exec
2015.12.03 16:37:22 5: [zufall_kueche_abends] setting  Timer: zufall_kueche_abends_Exec 2015-12-03 16:42:36
2015.12.03 16:42:36 4: [zufall_kueche_abends] Zustand:off sigma:050 random:406->
2015.12.03 16:42:36 5: [zufall_kueche_abends] removing Timer: zufall_kueche_abends_Exec
2015.12.03 16:42:36 5: [zufall_kueche_abends] setting  Timer: zufall_kueche_abends_Exec 2015-12-03 16:47:32
2015.12.03 16:47:32 4: [zufall_kueche_abends] Zustand:off sigma:050 random:432->
2015.12.03 16:47:32 5: [zufall_kueche_abends] removing Timer: zufall_kueche_abends_Exec
2015.12.03 16:47:32 5: [zufall_kueche_abends] setting  Timer: zufall_kueche_abends_Exec 2015-12-03 16:52:34
2015.12.03 16:52:34 4: [zufall_kueche_abends] Zustand:off sigma:050 random:594->
2015.12.03 16:52:34 5: [zufall_kueche_abends] removing Timer: zufall_kueche_abends_Exec
2015.12.03 16:52:34 5: [zufall_kueche_abends] setting  Timer: zufall_kueche_abends_Exec 2015-12-03 16:57:31
2015.12.03 16:57:31 4: [zufall_kueche_abends] Zustand:off sigma:050 random:269->
2015.12.03 16:57:31 5: [zufall_kueche_abends] removing Timer: zufall_kueche_abends_Exec
2015.12.03 16:57:31 5: [zufall_kueche_abends] setting  Timer: zufall_kueche_abends_Exec 2015-12-03 17:02:39
2015.12.03 16:59:43 3: CUL_HM set Licht_Arbeitszimmer on
2015.12.03 17:02:39 4: [zufall_kueche_abends] Zustand:off sigma:050 random:111->
2015.12.03 17:02:39 5: [zufall_kueche_abends] removing Timer: zufall_kueche_abends_Exec
2015.12.03 17:02:39 5: [zufall_kueche_abends] setting  Timer: zufall_kueche_abends_Exec 2015-12-03 17:07:43
2015.12.03 17:03:02 3: CUL_HM set Jalousie1 off
2015.12.03 17:04:53 3: CUL_HM set Licht_Arbeitszimmer off
2015.12.03 17:07:43 4: [zufall_kueche_abends] Zustand:off sigma:050 random:521->
2015.12.03 17:07:43 5: [zufall_kueche_abends] removing Timer: zufall_kueche_abends_Exec
2015.12.03 17:07:43 5: [zufall_kueche_abends] setting  Timer: zufall_kueche_abends_Exec 2015-12-03 17:12:28
2015.12.03 17:12:28 4: [zufall_kueche_abends] Zustand:off sigma:050 random:814->
2015.12.03 17:12:28 5: [zufall_kueche_abends] removing Timer: zufall_kueche_abends_Exec
2015.12.03 17:12:28 5: [zufall_kueche_abends] setting  Timer: zufall_kueche_abends_Exec 2015-12-03 17:17:41
2015.12.03 17:17:41 4: [zufall_kueche_abends] Zustand:off sigma:050 random:315->
2015.12.03 17:17:41 5: [zufall_kueche_abends] removing Timer: zufall_kueche_abends_Exec
2015.12.03 17:17:41 5: [zufall_kueche_abends] setting  Timer: zufall_kueche_abends_Exec 2015-12-03 17:22:51
2015.12.03 17:22:51 4: [zufall_kueche_abends] Zustand:off sigma:050 random:16->1
2015.12.03 17:22:51 4: [zufall_kueche_abends] command: set Dimmer_Kueche on
2015.12.03 17:22:51 3: CUL_HM set Dimmer_Kueche on
2015.12.03 17:22:51 5: [zufall_kueche_abends] removing Timer: zufall_kueche_abends_Exec
2015.12.03 17:22:51 5: [zufall_kueche_abends] setting  Timer: zufall_kueche_abends_Exec 2015-12-03 17:27:59
2015.12.03 17:27:59 4: [zufall_kueche_abends] Zustand:on sigma:999 random:140->1
2015.12.03 17:27:59 4: [zufall_kueche_abends] command: set Dimmer_Kueche off
2015.12.03 17:27:59 3: CUL_HM set Dimmer_Kueche off
2015.12.03 17:27:59 5: [zufall_kueche_abends] removing Timer: zufall_kueche_abends_Exec
2015.12.03 17:27:59 5: [zufall_kueche_abends] setting  Timer: zufall_kueche_abends_Exec 2015-12-03 17:33:06
2015.12.03 17:33:06 4: [zufall_kueche_abends] Zustand:off sigma:050 random:376->
2015.12.03 17:33:06 5: [zufall_kueche_abends] removing Timer: zufall_kueche_abends_Exec
2015.12.03 17:33:06 5: [zufall_kueche_abends] setting  Timer: zufall_kueche_abends_Exec 2015-12-03 17:37:56
2015.12.03 17:37:56 4: [zufall_kueche_abends] Zustand:off sigma:050 random:584->
2015.12.03 17:37:56 5: [zufall_kueche_abends] removing Timer: zufall_kueche_abends_Exec
2015.12.03 17:37:56 5: [zufall_kueche_abends] setting  Timer: zufall_kueche_abends_Exec 2015-12-03 17:43:01
2015.12.03 17:43:01 4: [zufall_kueche_abends] Zustand:off sigma:050 random:733->
2015.12.03 17:43:01 5: [zufall_kueche_abends] removing Timer: zufall_kueche_abends_Exec
2015.12.03 17:43:01 5: [zufall_kueche_abends] setting  Timer: zufall_kueche_abends_Exec 2015-12-03 17:47:55
2015.12.03 17:47:55 4: [zufall_kueche_abends] Zustand:off sigma:050 random:45->1
2015.12.03 17:47:55 4: [zufall_kueche_abends] command: set Dimmer_Kueche on
2015.12.03 17:47:55 3: CUL_HM set Dimmer_Kueche on
2015.12.03 17:47:55 5: [zufall_kueche_abends] removing Timer: zufall_kueche_abends_Exec
2015.12.03 17:47:55 5: [zufall_kueche_abends] setting  Timer: zufall_kueche_abends_Exec 2015-12-03 17:52:43
2015.12.03 17:52:43 4: [zufall_kueche_abends] Zustand:on sigma:999 random:988->1
2015.12.03 17:52:43 4: [zufall_kueche_abends] command: set Dimmer_Kueche off
2015.12.03 17:52:43 3: CUL_HM set Dimmer_Kueche off


Was muss ich ändern, damit das Licht beim Start des RT eingeschaltet wird und die meiste Zeit an bleibt?

Zwei weitere RT mit den gleichen Einstellungen schalten übrigens noch seltener oder gar nicht das Licht ein...

Gruß

oelidoc

oelidoc

OK,
ich glaube ich habe den Fehler erkannt - kann ihn aber nicht abstellen.

Wie ich ja schon schrieb, aktiviere oder deaktiviere ich die RT durch das Attribut disable. Wenn ich einen laufenden RT disable, während die Lampe on ist, und den RT danach wieder enable, geht er laut Log davon aus, dass die Lampe on ist und berechnet die "Wahrscheinlichkeit" zum Ausschalten. Tatsächlich ist die Lampe aber aus, weil sie z.B. zwischenzeitlich jemand am Schalter ausgemacht hat. Der RT kriegt das aber nicht mit. Es müsste also nach dem disable 0 der Status des zu schaltenden Gerätes geprüft werden oder der RT schickt zu Beginn immer ein on command. Ich meine auch, dass das früher so war, denn meine RT funktionieren erst seit einiger Zeit nicht mehr mit dem attribut disable. Z.Zt. geht die Lampe erst an, wenn der RT einmal aus und dann wieder an geschaltet hat. Was natürlich bei entsprechendem switchmode und Schaltdauer ganz schön lange dauern kann...

Lieber Dietmar63, kannst du das nachvollziehen? Hab ich mich verständlich ausgedrückt?

Für Nachfragen stehe ich jederzeit zur Verfügung

Gruß

oelidoc

Dietmar63

ja,
ich habe das grob verstanden.


Zitates müsste also nach dem disable 0 der Status des zu schaltenden Gerätes geprüft werden oder der RT schickt zu Beginn immer ein on command.
Und das ist bei der Vielzahl der Geräte und Variablen die  bei den unterschiedlichen Geräten nicht  möglich.
Vielleicht kannst du etwas mit den Attributen onCmd bzw. offCmd anfangen.

In Genzsituationen ist es leider immer schierig unter allen Umständen das Richtige zu machen.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

oelidoc

Hallo Dietmar63,

die Attribute onCmd und offCmd ändern leider nix an dem Problem - hab ich schon probiert. Und ich nutze deine RT schon seit längerer Zeit und die Probleme haben erst vor ein paar Monaten angefangen.Vorher lief eigentlich alles wie gewünscht. In der Commandref steht, dass "Standard is: "set <device> on" Aber irgendwie wird dies Command beim Start des RT nicht mehr geschickt. Ist doch eigentlich unabhängig von den genutzten devices, oder? Kannst du nicht (wieder) dafür sorgen, dass das Standard command beim Start des RT einmal gesendet wird?

Vielen Dank für deine Hilfe

oelidoc

oelidoc

Also das Problem ist und bleibt, dass die RT zu Beginn ihrer Laufzeit nicht oder nicht zuverlässig die entsprechenden Geräte einschalten. Und wenn man den Switchmode so eingestellt hat, dass das Licht häufiger an bleibt als aus geht, so bleibt es so lange dunkel, bis der RT einmal aus und dann wieder eingeschaltet hat. Und das ist mir für einen Einbruchschutz meist zu spät....
Hat denn keiner eine Idee woran dies Verhalten liegt bzw. wie ich es abstellen könnte?

Gruß

oelidoc  (langsam verzweifelt....)