Folgendes Szenario läuft seit Jahren problemlos.
Versch. DOIF's steuren jeweils einen Rolladen. (Morgens hoch, abends runter)
Montags läuft morgens (in aller Regel nach dem die Rolladen hoch fahren) ein Backup mit anschließendem Neustart von fhem.
Seit wenigen Wochen fahren Montags abends nicht mehr alle Rolläden runter.
An allenen anderen Tagen läuft alles korrekt.
Ich verstehe nicht was das sein kann und wo ich ansetzen muss und bitte um Eure Hilfe.
Danke
Fredi
Zitat von: Fredi69 am 07 Mai 2019, 21:51:11
Ich verstehe nicht was das sein kann und wo ich ansetzen muss und bitte um Eure Hilfe.
Dein erster Ansatz sollte hier ein list vom DOIF-Modul sein, welches vermeintlich deine Rollladen nicht geschaltet hat.
Zitat von: Damian am 07 Mai 2019, 22:28:12
Dein erster Ansatz sollte hier ein list vom DOIF-Modul sein, welches vermeintlich deine Rollladen nicht geschaltet hat.
Ok, auch wenn sich das DOIF seit Monaten nicht verändert hat?
Internals:
DEF ([[Rollo_runter]-[Rollo_hoch]]
and [RolloAutomatikDY:state] eq "Ein")
(set EG.Bu.Ra.RolladenLinks down)
DOELSEIF ([[Rollo_hoch]]
and [RolloAutomatikDY:state] eq "Ein"
and [?WetterProplanta:fc0_tempMax:d] > [MaxTempRollo])
(set EG.Bu.Ra.RolladenLinks 40)
DOELSEIF
(![[Rollo_runter]-[Rollo_hoch]]
and [RolloAutomatikDY:state] eq "Ein")
(set EG.Bu.Ra.RolladenLinks up)
FUUID 5c4570d5-f33f-0af0-0578-139ea629020a0dd1
MODEL FHEM
NAME Rollo_Buero_Links_DI
NR 272
NTFY_ORDER 50-Rollo_Buero_Links_DI
STATE cmd_1
TYPE DOIF
VERSION 19303 2019-05-01 08:47:16
READINGS:
2019-04-23 22:15:04 Device MaxTempRollo
2019-05-07 21:31:51 cmd 1
2019-05-07 21:31:51 cmd_event timer_1
2019-05-07 21:31:51 cmd_nr 1
2019-04-23 22:15:04 e_MaxTempRollo_STATE 26.0
2019-04-23 22:09:23 e_RolloAutomatikDY_state Ein
2019-05-07 21:31:51 state cmd_1
2019-05-07 06:32:27 timer_01_c01 07.05.2019 21:31:51
2019-05-07 06:32:27 timer_02_c01 08.05.2019 06:32:27
2019-05-07 06:32:27 timer_03_c02 08.05.2019 06:32:27
2019-05-07 06:32:27 timer_04_c03 07.05.2019 21:31:51
2019-05-07 06:32:27 timer_05_c03 08.05.2019 06:32:27
Regex:
accu:
attr:
cmdState:
waitdel:
condition:
0 ::DOIF_time($hash,0,1,$wday,$hms) and ::ReadingValDoIf($hash,'RolloAutomatikDY','state') eq "Ein"
1 ::DOIF_time_once($hash,2,$wday) and ::ReadingValDoIf($hash,'RolloAutomatikDY','state') eq "Ein" and ::ReadingValDoIf($hash,'WetterProplanta','fc0_tempMax','','d') > ::InternalDoIf($hash,'MaxTempRollo','STATE')
2 !::DOIF_time($hash,3,4,$wday,$hms) and ::ReadingValDoIf($hash,'RolloAutomatikDY','state') eq "Ein"
days:
devices:
0 RolloAutomatikDY
1 RolloAutomatikDY MaxTempRollo
2 RolloAutomatikDY
all RolloAutomatikDY MaxTempRollo
do:
0:
0 set EG.Bu.Ra.RolladenLinks down
1:
0 set EG.Bu.Ra.RolladenLinks 40
2:
0 set EG.Bu.Ra.RolladenLinks up
3:
helper:
event timer_1
globalinit 1
last_timer 5
sleeptimer -1
timerdev
timerevent timer_1
timereventsState
triggerDev
DOIF_eventas:
cmd_nr: 1
cmd: 1
cmd_event: timer_1
state: cmd_1
timerevents:
timer_1
triggerEvents:
timer_1
internals:
1 MaxTempRollo:STATE
all MaxTempRollo:STATE
interval:
0 -1
1 0
3 -1
4 3
intervalfunc:
intervaltimer:
itimer:
all Rollo_runter Rollo_hoch
localtime:
0 1557257511
1 1557289947
2 1557289947
3 1557257511
4 1557289947
perlblock:
readings:
0 RolloAutomatikDY:state
1 RolloAutomatikDY:state
2 RolloAutomatikDY:state
all RolloAutomatikDY:state
realtime:
0 21:31:51
1 06:32:27
2 06:32:27
3 21:31:51
4 06:32:27
time:
0 [Rollo_runter]
1 [Rollo_hoch]
2 [Rollo_hoch]
3 [Rollo_runter]
4 [Rollo_hoch]
timeCond:
0 0
1 0
2 1
3 2
4 2
timer:
0 0
1 0
2 0
3 0
4 0
timers:
0 0 1
1 2
2 3 4
triggertime:
1557289947:
localtime 1557289947
hash:
uiState:
uiTable:
Attributes:
DbLogExclude .*
room Steuerung
Naja, dieses DOIF hat ja wohl heute den Rollladen herunter gefahren.
Zitat von: Damian am 07 Mai 2019, 22:54:44
Naja, dieses DOIF hat ja wohl heute den Rollladen herunter gefahren.
Ja, heute ist ja auch nicht Montag.
Zitat von: Fredi69 am 07 Mai 2019, 22:59:17
Ja, heute ist ja auch nicht Montag.
Tja, dann müssen wir bis Montag warten oder du provozierst den Montag-Vorgang
Zitat von: Damian am 07 Mai 2019, 23:01:17
Tja, dann müssen wir bis Montag warten oder du provozierst den Montag-Vorgang
Wir warten ;-)
So, heute war Montag:
Internals:
DEF ([[Rollo_runter]-[Rollo_hoch]]
and [RolloAutomatikDY:state] eq "Ein")
(set EG.Bu.Ra.RolladenLinks down)
DOELSEIF ([[Rollo_hoch]]
and [RolloAutomatikDY:state] eq "Ein"
and [?WetterProplanta:fc0_tempMax:d] > [MaxTempRollo])
(set EG.Bu.Ra.RolladenLinks 40)
DOELSEIF
(![[Rollo_runter]-[Rollo_hoch]]
and [RolloAutomatikDY:state] eq "Ein")
(set EG.Bu.Ra.RolladenLinks up)
FUUID 5c4570d5-f33f-0af0-0578-139ea629020a0dd1
MODEL FHEM
NAME Rollo_Buero_Links_DI
NR 272
NTFY_ORDER 50-Rollo_Buero_Links_DI
STATE cmd_1
TYPE DOIF
VERSION 19303 2019-05-01 08:47:16
READINGS:
2019-04-23 22:15:04 Device MaxTempRollo
2019-05-03 21:23:20 cmd 1
2019-05-03 21:23:20 cmd_event timer_1
2019-05-03 21:23:20 cmd_nr 1
2019-04-23 22:15:04 e_MaxTempRollo_STATE 26.0
2019-04-23 22:09:23 e_RolloAutomatikDY_state Ein
2019-05-03 21:23:20 state cmd_1
2019-05-13 08:16:12 timer_01_c01 13.05.2019 21:23:20
2019-05-13 08:16:12 timer_02_c01 14.05.2019 06:15:49
2019-05-13 08:16:12 timer_03_c02 14.05.2019 06:15:49
2019-05-13 08:16:12 timer_04_c03 13.05.2019 21:23:20
2019-05-13 08:16:12 timer_05_c03 14.05.2019 06:15:49
Regex:
accu:
attr:
waitdel:
condition:
0 ::DOIF_time($hash,0,1,$wday,$hms) and ::ReadingValDoIf($hash,'RolloAutomatikDY','state') eq "Ein"
1 ::DOIF_time_once($hash,2,$wday) and ::ReadingValDoIf($hash,'RolloAutomatikDY','state') eq "Ein" and ::ReadingValDoIf($hash,'WetterProplanta','fc0_tempMax','','d') > ::InternalDoIf($hash,'MaxTempRollo','STATE')
2 !::DOIF_time($hash,3,4,$wday,$hms) and ::ReadingValDoIf($hash,'RolloAutomatikDY','state') eq "Ein"
days:
devices:
0 RolloAutomatikDY
1 RolloAutomatikDY MaxTempRollo
2 RolloAutomatikDY
all RolloAutomatikDY MaxTempRollo
do:
0:
0 set EG.Bu.Ra.RolladenLinks down
1:
0 set EG.Bu.Ra.RolladenLinks 40
2:
0 set EG.Bu.Ra.RolladenLinks up
3:
helper:
event timer_1
globalinit 1
last_timer 5
sleeptimer -1
timerdev
timerevent timer_1
timereventsState
triggerDev
timerevents:
timer_1
triggerEvents:
timer_1
internals:
1 MaxTempRollo:STATE
all MaxTempRollo:STATE
interval:
0 -1
1 0
3 -1
4 3
intervalfunc:
intervaltimer:
itimer:
all Rollo_runter Rollo_hoch
localtime:
0 1557775400
1 1557807349
2 1557807349
3 1557775400
4 1557807349
perlblock:
readings:
0 RolloAutomatikDY:state
1 RolloAutomatikDY:state
2 RolloAutomatikDY:state
all RolloAutomatikDY:state
realtime:
0 21:23:20
1 06:15:49
2 06:15:49
3 21:23:20
4 06:15:49
time:
0 [Rollo_runter]
1 [Rollo_hoch]
2 [Rollo_hoch]
3 [Rollo_runter]
4 [Rollo_hoch]
timeCond:
0 0
1 0
2 1
3 2
4 2
timer:
0 0
1 0
2 0
3 0
4 0
timers:
0 0 1
1 2
2 3 4
triggertime:
1557807349:
localtime 1557807349
hash:
uiState:
uiTable:
Attributes:
DbLogExclude .*
room Steuerung
Nach eigener Recherche könnte es daran liegen, dass bei einigen RolladenDOIF's das "do always" fehlt.
Warum das aber über Monate auch ohne funktioniert hat, erklärt es nicht.
Zitat von: Fredi69 am 14 Mai 2019, 08:42:00
Nach eigener Recherche könnte es daran liegen, dass bei einigen RolladenDOIF's das "do always" fehlt.
Warum das aber über Monate auch ohne funktioniert hat, erklärt es nicht.
Das kann ich dir auch nicht sagen. Das Modul befindet sich seit dem 3.5 in diesem Zustand (cmd_1) und macht logischerweise nichts.
Zitat von: Damian am 14 Mai 2019, 09:35:16
Das kann ich dir auch nicht sagen. Das Modul befindet sich seit dem 3.5 in diesem Zustand (cmd_1) und macht logischerweise nichts.
Das kann ja nicht sein, es funktioniert ja nur Montags nicht.
Zitat von: Fredi69 am 14 Mai 2019, 09:56:39
Das kann ja nicht sein, es funktioniert ja nur Montags nicht.
Dein List beweist es aber.
Keine Zustandsänderung seit dem 03.05.
vermute da steuert noch etwas anderes?
kuck doch mal bei "Probably associated with" im Rollo Gerät.
Zitat von: Frank_Huber am 14 Mai 2019, 10:26:55
Dein List beweist es aber.
Keine Zustandsänderung seit dem 03.05.
vermute da steuert noch etwas anderes?
kuck doch mal bei "Probably associated with" im Rollo Gerät.
Da steuert definitiv nichts anderes, wie am Anfang erwähnt muss das Problem irgendetwas mit dem Neustart des Raspi und/oder dem FHEM Dienst an jedem Montag zu tun haben.
Gesendet von iPhone mit Tapatalk
dann viel Spass bei der Fehlersuche.
wie gesagt (und von Dir bewiesen) das DOIF hat seit dem 03.05. nichts gemacht.
Hier ein Logauszug vom 12.05.
2019.05.12 21:38:50 3: CUL_HM set EG.Bu.Ra.RolladenLinks off
Gesendet mit Tapatalk
Eines vielleicht noch,
Wie machst Du den Neustart? Wird dabei das statefile sauber geschrieben?
Ich erläutere nochmals gerne was genau am Montag anders ist:
- Um 07:30 macht fhem über ein AT ein Update
- Um 07:45 läuft folgender cronjob: apt-get update && sudo apt-get upgrade -y
- Um 08:00 läuft ein Cronjob der fhem beendet, dann ein DD Backup der SD Karte macht und dann ein /sbin/shutdown -r now ausführt
Das hat über viele Monate (>12) einwandfrei jede Woche funktioniert, jetzt seit wenigen Wochen eben nicht mehr.
Ich kann mir nicht erklären warum?
Vielen Dank für Eure Unterstützung.
Zitat von: Fredi69 am 14 Mai 2019, 10:48:55
Hier ein Logauszug vom 12.05.
2019.05.12 21:38:50 3: CUL_HM set EG.Bu.Ra.RolladenLinks off
Gesendet mit Tapatalk
Ein Ausführen eines Zweiges wird im DOIF immer in den cmd-Readings festgehalten und da steht noch der 3.05 drin. Der Fall, dass der Zweig ausgeführt wurde und die Readings bzw. der Status nicht aktualisiert wurde, ist eher unwahrscheinlich.
Zitat von: Damian am 14 Mai 2019, 11:48:13
Ein Ausführen eines Zweiges wird im DOIF immer in den cmd-Readings festgehalten und da steht noch der 3.05 drin. Der Fall, dass der Zweig ausgeführt wurde und die Readings bzw. der Status nicht aktualisiert wurde, ist eher unwahrscheinlich.
Das würde bedeuten, dass meine Rolläden jeden Tag außer Montags hoch und runter fahren, bilde ich mir nur ein.
Zitat von: Fredi69 am 14 Mai 2019, 11:54:52
Das würde bedeuten, dass meine Rolläden jeden Tag außer Montags hoch und runter fahren, bilde ich mir nur ein.
Das bedeutet: Entweder wurden sie nicht von dieser gezeigten Definition geschaltet oder die gezeigte Definition (list) ist überschrieben worden. Einen Fehler an dieser zentralen Stelle im Modul bei 60.000 Definitionen würde ich mal auschließen ;)
Evtl. hängt es mit dem Wechsel von Wheezy über Jessie auf Stretch Ende April zusammen?
Zitat von: Damian am 14 Mai 2019, 11:59:54
Das bedeutet: Entweder wurden sie nicht von dieser gezeigten Definition geschaltet oder die gezeigte Definition (list) ist überschrieben worden. Einen Fehler an dieser zentralen Stelle im Modul bei 60.000 Definitionen würde ich mal auschließen ;)
Es gibt keine andere Definition die diese Rolläden schaltet!
Dann hast ein Problem mit deiner sicherung und dem reboot.
Wenn fhem nicht sauber beendet wird wird kein state file geschrieben. Und ohne das fällt fhem auf die stati der letzten statefile Speicherung zurück.
Möglichkeit:
Baue in deine Routinen vor dem fhem shutdown eine manuelle Speicherung des state ein. --> fhem Befehl "{WriteStatefile()}"
Und verschiebe das evtl in einen zeitbereich wo nichts passieren soll.
Weil was wenn dein rollo um 8 fahren soll, fhem aber gerade down ist zur Sicherung...
Gesendet von meinem Doogee S60 mit Tapatalk
Zitat von: Frank_Huber am 14 Mai 2019, 12:08:20
Dann hast ein Problem mit deiner sicherung und dem reboot.
Wenn fhem nicht sauber beendet wird wird kein state file geschrieben. Und ohne das fällt fhem auf die stati der letzten statefile Speicherung zurück.
Hier wird fhem beendet
20190513-080005: MSG --- RBK0008I: Services werden gestoppt: '/etc/init.d/fhem stop'.
20190513-080005: DBG -- /etc/init.d/fhem stop
20190513-080005: DBG >> executeShellCommand: /etc/init.d/fhem stop
Stopping fhem...
20190513-080006: DBG << executeShellCommand: 0
Zitat
Und verschiebe das evtl in einen zeitbereich wo nichts passieren soll.
Weil was wenn dein rollo um 8 fahren soll, fhem aber gerade down ist zur Sicherung...
Das ist gewährleistet. Die Rollos fahren nie um 8:00 Uhr
Ich möchte nochmals darauf hinweisen, es hat monatelang genau so funktioniert!
Und was hat sich geändert bevor es nicht mehr funktioniert hat? Dieses "Es ging die ganze Zeit" bringt uns hier nichts. ;)
prüfe doch einfach mal den zeitstempel des statefile. im Regelfall /opt/fhem/log/fhem.save
Das sollte der Zeitpunkt des letzten backups sein. also Montag 13.05.2019 8:00
Was sich geändert hat, hatte ich geschrieben:
ZitatEvtl. hängt es mit dem Wechsel von Wheezy über Jessie auf Stretch Ende April zusammen?
fhem.save 14.05.2019 08:39:31
deine Sicherung lief doch um 8.
Hast Du um 8:39 fhem nochmal manuell neu gestartet?
Zitat von: Fredi69 am 14 Mai 2019, 10:48:55
Hier ein Logauszug vom 12.05.
2019.05.12 21:38:50 3: CUL_HM set EG.Bu.Ra.RolladenLinks off
Häng doch mal die vorherigen und nachfolgenden 5-10 Zeilen mit dran.
Zitat von: Frank_Huber am 14 Mai 2019, 13:03:49
deine Sicherung lief doch um 8.
Hast Du um 8:39 fhem nochmal manuell neu gestartet?
Die Sicherung lief gestern, heute ist Dienstag.
Heute morgen habe ich um 8:39 ein save gemacht.
Zitat von: Per am 14 Mai 2019, 13:08:47
Häng doch mal die vorherigen und nachfolgenden 5-10 Zeilen mit dran.
Was das bringt verstehe ich zwar nicht, aber gerne, alles was helfen kann.
2019.05.12 21:12:50 1: HMLAN_Parse: HMLAN2 new condition ok
2019.05.12 21:12:50 1: HMLAN_Parse: HMLAN1 new condition ok
2019.05.12 21:38:50 3: CUL_HM set EG.Bu.Ra.RolladenLinks off
2019.05.12 21:38:50 3: CUL_HM set EG.Bu.Ra.RolladenStrasse off
2019.05.12 21:38:50 3: CUL_HM set EG.Wc.Ra.Rolladen off
2019.05.12 21:38:50 3: CUL_HM set DG.Ga.Ra.Rolladen off
2019.05.12 21:38:50 3: CUL_HM set EG.Ku.Ra.Rolladen off
2019.05.12 21:38:50 3: CUL_HM set EG.Wz.Ra.RolladenTerrasse off
2019.05.12 21:38:50 3: CUL_HM set EG.Wz.Ra.RolladenErkerMitte off
2019.05.12 21:38:50 3: CUL_HM set EG.Wz.Ra.RolladenErkerRechts off
2019.05.12 21:38:50 3: CUL_HM set EG.Wz.Ra.RolladenErkerLinks off
2019.05.12 21:38:50 3: CUL_HM set EG.Wz.Ra.RolladenStrasse off
2019.05.12 21:39:19 3: Cam_HooToo_HT_IP211 - Camera WZHTIP211 has been disabled successfully
2019.05.12 21:39:29 3: Cam_HooToo_HT_IP211 - Camera WZHTIP211 has been disabled successfully
Dann warten wir den nächsten Montag ab und du prüfst dann bitte nach der Sicherung den zeitstempel vom statefile.
Gesendet von meinem Doogee S60 mit Tapatalk
Zitat von: Fredi69 am 14 Mai 2019, 13:19:13Was das bringt verstehe ich zwar nicht
Ich sehe da kein Logging vom
DOIF (allerdings auch von keinem anderen). Nur direkte Befehle an die Rolladen.
Zitat von: Per am 14 Mai 2019, 13:30:21
Ich sehe da kein Logging vom DOIF (allerdings auch von keinem anderen). Nur direkte Befehle an die Rolladen.
Ich auch nicht, habe ich auch nicht behauptet.
Wenn man den Loglevel nicht bewußt verändert, kommt vom DOIF standardmäßig nichts ins Log.
Zitat von: Frank_Huber am 14 Mai 2019, 13:20:08
Dann warten wir den nächsten Montag ab und du prüfst dann bitte nach der Sicherung den zeitstempel vom statefile.
Gesendet von meinem Doogee S60 mit Tapatalk
Ich denke auch, an dieser Stelle muss man ansetzen.
Ich hatte auch mal solche Probleme.
Die Rollos fuhren morgends nicht hoch.
Problem war damals dass beim Plot erstellen und versenden nachts FHEM abgestürzt ist.
Es kam alleine wieder hoch, aber mit altem state file.
Die Rollos dachten dann morgends sie sind noch unten und haben nichts gemacht.
Ich habe mir dann vor dem Plot senden das state file speichern eingebaut und Ruhe war.
Wenn Du sagst nichts ausser dem DOIF steuert die Rollos dann scheint es als hättest Du auch ein statefile "Problem"
Zitat von: Fredi69 am 14 Mai 2019, 14:15:45Wenn man den Loglevel nicht bewußt verändert, kommt vom DOIF standardmäßig nichts ins Log.
OK, dann halt keinen "
EVENT". Und Events liefert das
DOIF.