Hallo,
ich habe seit kurzem SmartHome auf einem Raspy laufen und will ein paar Logiken schreiben, dazu habe ich mal folgende Fragen:
Aufgabe: Eine Steckdose soll max alle 50 Minuten geschalten werden, kann aber auch durch ein anderes Ereignis früher geschalten werden.
GA in .conf-Datei:
teich_keine_spuelung.conf-Datei für Werte:
teich_spuelung.py für Funktion:
logic.conf:
Kann man einem item eigene Parameter hinzufügen, auf die man zugreifen kann zB sh.teich.keine_spuelung.notice (vermutlich nicht)?
Ist es möglich cycle zur Laufzeit mit einem neuen Wert zu versehen, so wie ich das gemacht habe?
Ich würde gerne noch Log-Funktion schreiben, um mir die Daten später auf der Visu ausgeben zu lassen und eine Alarm-Funktion für Pushs auf das Handy. Hier würde ich gerne die 'notice' ausgeben, wenn ich es so lösen würde:
dann könnte ich nicht auf das aufrufende item zurückgreifen. Zusätzlich soll geloggt werden, wenn der Timer die Steckdose wieder abschaltet.
Wie kann ich meinen Code am besten Debuggen (so könnte ich einige Fragen vermutlich selbst durch testen beantworten)?
Vielen Dank für Eure Hilfe!!
ich habe seit kurzem SmartHome auf einem Raspy laufen und will ein paar Logiken schreiben, dazu habe ich mal folgende Fragen:
Aufgabe: Eine Steckdose soll max alle 50 Minuten geschalten werden, kann aber auch durch ein anderes Ereignis früher geschalten werden.
GA in .conf-Datei:
Code:
[teich]
[[trommler]]
[[[s]]]
visu_acl = rw
type = bool
knx_dpt = 1
knx_send = 2/6/40
knx_listen = 2/6/40
Code:
[teich]
name = Teich
[[keine_spuelung]]
name = Keine Spülung
notice = Zu lange keine Spülung des Trommelfilters
log = yes
[[[interval]]] # max Zeit für nächste Spülung
name = maximales Intervall
type = num
value = 50 # min
[[[time]]] # Laufzeit für Spülung
name = Laufzeit
type = num
value = 2 # min
[[[alarm]]] # Alarm ausgeben
name = Alarm
type = bool
value = 0
Code:
# ------------------ vars -------------------
trom_item = sh.teich.trommler
prob_item = sh.teich.keine_spuelung
duration = prob_item.time * 60 # Dauer Spülvorgang
interval = prob_item.interval * 60 # nächster Spülvorgang
# ------------------ code -------------------
if not trom_item.s(): # Trommler läuft nicht
trom_item.s(1)
trom_item.s.timer(duration, 0)
sh.teich_spuelung.cycle(interval)
Code:
[teich_spuelung]
filename = teich_spuelung.py
cycle = sh.teich.keine_spuelung.interval * 60
Ist es möglich cycle zur Laufzeit mit einem neuen Wert zu versehen, so wie ich das gemacht habe?
Ich würde gerne noch Log-Funktion schreiben, um mir die Daten später auf der Visu ausgeben zu lassen und eine Alarm-Funktion für Pushs auf das Handy. Hier würde ich gerne die 'notice' ausgeben, wenn ich es so lösen würde:
Code:
[log]
filename = log.py
watch_item = teich.trommler.s
Wie kann ich meinen Code am besten Debuggen (so könnte ich einige Fragen vermutlich selbst durch testen beantworten)?
Vielen Dank für Eure Hilfe!!


Kommentar