Ich habe ein merkwürdiges Problem, das ich nach einiger Zeit nachvollziehen aber nicht ändern kann:
Mehrfach waren plötzlich 4 RandomTimer-devices verschwunden und durch zwischenzeitliches Arbeiten und speichern auch aus der configdb verschwunden, z.B.
define Timer_TV_Fake_1 RandomTimer *{ReadingsVal("myTwilight","ss_indoor",0)} Ti_TV_Fake *{ReadingsVal("myTwilight","ss_astro",0)} 840
attr Timer_TV_Fake_1 devStateIcon on:rc_GREEN off:rc_REC
attr Timer_TV_Fake_1 disableCond (!isVerreist())
attr Timer_TV_Fake_1 group Abwesend
attr Timer_TV_Fake_1 room 30_Verreist
attr Timer_TV_Fake_1 runonce 0
attr Timer_TV_Fake_1 switchmode 600/150
5 weitere RandomTimer, die nach gleichem Muster angelegt waren, sind davon nie betroffen gewesen. Beispielsweise
define Timer_KueDim_1 RandomTimer *18:00 Kue_Dimmer *21:00:00 840
attr Timer_KueDim_1 switchmode 800/200
attr Timer_KueDim_1 group Abwesend
attr Timer_KueDim_1 room 30_Verreist
attr Timer_KueDim_1 disableCond (!isVerreist())
attr Timer_KueDim_1 DbLogExclude .*
attr Timer_KueDim_1 devStateIcon on:rc_GREEN off:rc_REC
Jetzt habe ich mit configdb recover eine Version mit allen RandomTimern wieder hergestellt, fhem neu gestartet, aber die betroffenen Timer werden nicht angezeigt, obwohl sie bei der Abfrage mit 'configdb search Timer%' komplett vorhanden sind. Würde ich jetzt irgendwo in fhem etwas ändern und speichern, wären die betroffenen Timer wieder aus der configdb verschwunden.
Bis vor kurzem hat alles wunderbar funktioniert. Liegt das Problem jetzt an der Verwendung von Twilight und den zugehörigen Yahoo-Problemen oder hat sich irgendetwas in der Befehlssyntax geändert, was ich nicht mitbekommen habe?
Es gibt keinerlei Fehlermeldung. Die Timer erscheinen einfach nicht in der Weboberfläche. Auch der Neustart der Debian-VM und Aktualisierung bringen keine Abhilfe? Ich bin ziemlich ratlos!!!
Sieht man was nach "list Timer_TV_Fake_1" ?
Sieht man etwas im Raum "Everything"?
"No device named Timer_TV_Fake_1 found"
In Everything taucht auch nichts auf.
Zitat"No device named Timer_TV_Fake_1 found"
Dann wurde sie auch nicht hergestellt.
Zu configDB kann ich leider nichts sagen.
Danke für die schnelle Reaktion, aber das hilft mir erstmal auch nicht weiter..... Schade!
Der Fehler ist beliebig repüroduzierbar.
Das Problem scheint gelöst zu sein:
Die Syntax von Twilight muss irgendwann geändert worden sein. Bei einer Recovery aus einer alten Version wird die alte Schreibweise übernommen.
alt: define Timer_Ti_TV_Fake RandomTimer *{ReadingsVal("myTwilight","ss_indoor",0)} Ti_TV_Fake *22:00:00 840
neu: define Timer_Ti_TV_Fake RandomTimer *{twilight("myTwilight","ss_indoor","15:30","21:00")} Ti_TV_Fake *22:00:00 840
Beim Neustart hat FHEM gemeckert, dass ein timespec für das mögliche Einschaltintervall fehlt. Das Einfügen eines Zeitintervalls war es jedoch nicht alleine.
Das "ReadingsVal" musste zusätzlich gegen"twilight" getauscht werden.
Diese Änderungen mögen schon älter sein, eine Änderungsdokumentation dazu habe ich aber weder im WIKI noch in der commandref gefunden.
Puuh! Darauf soll man erstmal kommen.