Hallo,
Ich (als Python Noob) versuche mich gerade an meiner ersten aufwendigeren Logik,
Leider komm ich nach zig versuchen immer auf eine Fehlermeldung.
Ich würde gerne meine Squeezebox im Bad mit dem Lichtschalter verknüpfen,
Es soll von 6-7 uhr Morgens beim einschalten des Lichts der Radiosender Antenne Bayern abgespielt werden.
Tagsüber zw. 7 und 21 Uhr soll der Radio aber mit dem Sender Rockantenne starten.
Nach 21 Uhr soll er keinen Sender mehr einschalten.
Und beim ausschalten des Lichts soll der Radio auch ausschalten.
Bisher hätte ich folgende Logik erstellt (radio2.py):
Hier die logic.conf
die Squeezebox-Items.conf
Im Logfile bekomm ich beim starten folgenden Fehler:
line 61 wäre diese Zeile: if int(unix) < int(unix_nacht):
Bis zu der Startzeit vor Endzeit hat es schon funktioniert,
nur mit dem Zeitvergleich komm ich nicht weiter.
Kann mir bitte jemand helfen ?
Gruß, Mike
Ich (als Python Noob) versuche mich gerade an meiner ersten aufwendigeren Logik,
Leider komm ich nach zig versuchen immer auf eine Fehlermeldung.
Ich würde gerne meine Squeezebox im Bad mit dem Lichtschalter verknüpfen,
Es soll von 6-7 uhr Morgens beim einschalten des Lichts der Radiosender Antenne Bayern abgespielt werden.
Tagsüber zw. 7 und 21 Uhr soll der Radio aber mit dem Sender Rockantenne starten.
Nach 21 Uhr soll er keinen Sender mehr einschalten.
Und beim ausschalten des Lichts soll der Radio auch ausschalten.
Bisher hätte ich folgende Logik erstellt (radio2.py):
Code:
#!/usr/bin/env python now = sh.now() # Switch go off if sh.radio.switch() == False: sh.Squeezebox_1.Power('False') # look for a value to set #if hasattr(logic, 'set_value'): # val = logic.cond_value if hasattr(logic, 'start_time'): start_time = logic.start_time if hasattr(logic, 'end_time'): end_time = logic.end_time if hasattr(logic, 'nacht_time'): nacht_time = logic.nacht_time # Time unix = now.strftime('%s') sth,stm = start_time.split(':') enh,enm = end_time.split(':') nih,nim = nacht_time.split(':') sb = int(sth) print "sth {0}".format(sth) sm = int(stm) print "stm {0}".format(stm) eh = int(enh) print "enh {0}".format(enh) em = int(enm) print "enm {0}".format(enm) nh = int(nih) print "nih {0}".format(nih) nm = int(nim) print "nim {0}".format(nim) print now start = datetime.datetime(now.year, now.month, now.day, sb, sm, 0, 0) unix_start = int(start.strftime('%s')) print start end = datetime.datetime(now.year, now.month, now.day, eh, em, 0, 0) unix_end = int(end.strftime('%s')) print end nacht = datetime.datetime(now.year, now.month, now.day, nh, nm, 0, 0) unix_nacht = int(nacht.strftime('%s')) print nacht print unix print unix_start print unix_end print unix_nacht ###Startzeit vor Endzeit z.B. 14-18 Uhr if sb <= eh: ###Startzeit vor Endzeit z.B. 14-18 Uhr print "Startzeit vor Endzeit" if int(unix) < int(unix_nacht): print "Tag" if int(unix) > int(unix_start) and int(unix) < int(unix_end): sh.Squeezebox_1.AntenneBayern('True') print "AntenneBayern" if int(unix) < int(unix_nacht) and int(unix) > int(unix_end): sh.Squeezebox_1.Rockantenne('True') print "RockAntenne"
Code:
[sender] filename = 'radio2.py' watch_item = radio.switch start_time = '6:00' end_time = '7:00' nacht_time = '21:00'
Code:
[radio] [[switch]] type = bool visu = yes [Squeezebox_1] squeezebox_playerid = xx:xx:xx:xx:xx:xx [[Power]] type = bool visu = yes squeezebox_send = <playerid> power {} squeezebox_recv = <playerid> prefset server power squeezebox_init = <playerid> power [[AntenneBayern]] type = bool enforce_updates = true visu = yes squeezebox_send = <playerid> playlist play http://opml.radiotime.com/Tune.ashx?id=xxx&partnerId=xxx [[Rockantenne]] type = bool enforce_updates = true visu = yes squeezebox_send = <playerid> playlist play http://opml.radiotime.com/Tune.ashx?id=xxx&partnerId=xxx
Code:
2013-10-21 21:02:18,636 SmartHome.py WARNING Exception: unindent does not match any outer indentation level (radio2.py, line 61) -- logic.py:generate_bytecode:111
Bis zu der Startzeit vor Endzeit hat es schon funktioniert,
nur mit dem Zeitvergleich komm ich nicht weiter.
Kann mir bitte jemand helfen ?
Gruß, Mike
Kommentar