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