Hallo Zusammen,
erst mal ein dickes Kompliment und großes Lob an Diejenigen, welche in den letzten Monaten tolle Entwicklungs- und Dokumentationsarbeit geleistet haben!!!
SmarthomeNG kann sich echt sehen lassen!!!
Ich habe lange gezögert für die Umstellung von Smarthome auf SmarthomeNG, habe es aber jetzt in Angriff genommen. Viele kleinere Probleme konnte ich mit Hilfe des Forums (aktuell stiller Mitleser) und der Dokumentation lösen. Aktuell habe ich aber ein Problem, bei dem ich nicht weiter komme...
Für die Rollladensteuerung habe ich eine Logik erstellt, die RollladenSteuerungAuf heißt und einen Cronjob hat. Hiefür habe ich in logic.yaml folgenden Eintrag vorgesehen:
In einer weiteren Logik wird abgefragt, ob der heutige Tag ein Samstag, Sonntag oder Feiertag ist. In diesem Fall sollen die Rollläden erst später hochfahren...
Diese Logik wird in der Nacht einmal gestartet. In der bisherigen Smarthome-Version lief die Logik ohne Fehler. Jetzt kommt der Fehler:
Was ist hier falsch??? Ich seh' vermutlich den Wald vor lauter Bäumen nicht...
Im Voraus besten Dank für die Unterstützung...
Grüße vom Bodensee
Uwe
erst mal ein dickes Kompliment und großes Lob an Diejenigen, welche in den letzten Monaten tolle Entwicklungs- und Dokumentationsarbeit geleistet haben!!!
SmarthomeNG kann sich echt sehen lassen!!!
Ich habe lange gezögert für die Umstellung von Smarthome auf SmarthomeNG, habe es aber jetzt in Angriff genommen. Viele kleinere Probleme konnte ich mit Hilfe des Forums (aktuell stiller Mitleser) und der Dokumentation lösen. Aktuell habe ich aber ein Problem, bei dem ich nicht weiter komme...
Für die Rollladensteuerung habe ich eine Logik erstellt, die RollladenSteuerungAuf heißt und einen Cronjob hat. Hiefür habe ich in logic.yaml folgenden Eintrag vorgesehen:
RollladenSteuerungAuf:
visu_acl: true
filename: rollladen_auf.py
crontab: '07:30<sunrise'
filename: rollladen_auf.py
crontab: '07:30<sunrise'
#!/usr/bin/env python
#
# Crontab kann den Sunrise nicht auf bestimmte Tage beschränken. Deshalb müssen wir hier dieses erledigen
import datetime
import istfeiertag
logger.info("WochenendeSteuerung: Das File: setWochenende.py wurde gestartet")
if sh.now().weekday() in [0,1,2,3,4]:
else:
if istfeiertag.IstFeiertag(sh.now().date(), True):
else:
#
# Crontab kann den Sunrise nicht auf bestimmte Tage beschränken. Deshalb müssen wir hier dieses erledigen
import datetime
import istfeiertag
logger.info("WochenendeSteuerung: Das File: setWochenende.py wurde gestartet")
if sh.now().weekday() in [0,1,2,3,4]:
logger.info("WochenendeSteuerung: Setze den RolladenAufstehen Sheduler auf Wochentag")
sh.scheduler.change(name='logics.RollladenSteuerun gAuf', cron={'07:30<sunrise<08:30:None'})
sh.scheduler.change(name='logics.RollladenSteuerun gAuf', cron={'07:30<sunrise<08:30:None'})
else:
logger.info("WochenendeSteuerung: Setzt den RolladenAufstehen Sheduler auf Wochenende - 08:30")
sh.scheduler.change(name='logics.RollladenSteuerun gAuf', cron={'30 8 * 5,6:None'})
sh.scheduler.change(name='logics.RollladenSteuerun gAuf', cron={'30 8 * 5,6:None'})
if istfeiertag.IstFeiertag(sh.now().date(), True):
logger.info("WochenendeSteuerung: Setze den RolladenAufstehen Sheduler auf FEIERTAG - 08:30")
sh.scheduler.change(name='logics.RollladenSteuerun gAuf', cron={'30 8 * *:None'})
sh.scheduler.change(name='logics.RollladenSteuerun gAuf', cron={'30 8 * *:None'})
else:
logger.info("WochenendeSteuerung: heute ist kein Feiertag!")
2018-02-24 16:22:21 INFO logics.Wochenendesteuerung WochenendeSteuerung: Das File: setWochenende.py wurde gestartet
2018-02-24 16:22:21 INFO logics.Wochenendesteuerung WochenendeSteuerung: Setzt den RolladenAufstehen Sheduler auf Wochenende - 08:30
2018-02-24 16:22:21 ERROR logics.Wochenendesteuerung Error parsing crontab "30 8 * 5,6:None": invalid literal for int() with base 10: '6:None'
2018-02-24 16:22:21 ERROR logics.Wochenendesteuerung Logic: logics.Wochenendesteuerung, File: /usr/local/smarthome/lib/scheduler.py, Line: 381, Method: _next_time, Exception: 'set' object is not subscriptable
Traceback (most recent call last):
File "/usr/local/smarthome/lib/scheduler.py", line 425, in _task
exec(obj.bytecode)
File "/usr/local/smarthome/logics/setWochenende.py", line 15, in <module>
sh.scheduler.change(name='logics.RollladenSteuerun gAuf', cron={'30 8 * 5,6:None'})
File "/usr/local/smarthome/lib/scheduler.py", line 351, in change
self._next_time(name)
File "/usr/local/smarthome/lib/scheduler.py", line 381, in _next_time
value = job['cron'][entry]
TypeError: 'set' object is not subscriptable
2018-02-24 16:22:21 INFO logics.Wochenendesteuerung WochenendeSteuerung: Setzt den RolladenAufstehen Sheduler auf Wochenende - 08:30
2018-02-24 16:22:21 ERROR logics.Wochenendesteuerung Error parsing crontab "30 8 * 5,6:None": invalid literal for int() with base 10: '6:None'
2018-02-24 16:22:21 ERROR logics.Wochenendesteuerung Logic: logics.Wochenendesteuerung, File: /usr/local/smarthome/lib/scheduler.py, Line: 381, Method: _next_time, Exception: 'set' object is not subscriptable
Traceback (most recent call last):
File "/usr/local/smarthome/lib/scheduler.py", line 425, in _task
exec(obj.bytecode)
File "/usr/local/smarthome/logics/setWochenende.py", line 15, in <module>
sh.scheduler.change(name='logics.RollladenSteuerun gAuf', cron={'30 8 * 5,6:None'})
File "/usr/local/smarthome/lib/scheduler.py", line 351, in change
self._next_time(name)
File "/usr/local/smarthome/lib/scheduler.py", line 381, in _next_time
value = job['cron'][entry]
TypeError: 'set' object is not subscriptable
Im Voraus besten Dank für die Unterstützung...
Grüße vom Bodensee
Uwe
Kommentar