What I want to do?
For every room on a Temperature Change there is allways needed to change if Window is open.
To be more effective in programming I now tried to create a python function for it.
But I allways got errors at sendCommand. Tried different kinds of Syntax, but none work.
Anybody an Idea?
The actual Version / Last try:
from core.rules import rule
from core.triggers import when
from core.log import logging, LOG_PREFIX
log=logging.getLogger("{}.110_FUNC_changeTemperature".format(LOG_PREFIX))
def ChangeTemperature(T_ITEM, NEW_T, WINDOW, T_TEMP):
log.info("TEST-Function {0} {1} {2} {3}".format(T_ITEM, NEW_T, WINDOW, T_TEMP))
if WINDOW != "NONE":
if items[WINDOW] == OPEN:
log.info("110 ...{0} reduziert auf {1}".format(T_TEMP, NEW_T))
events.sendCommand(T_TEMP, NEW_T)
else:
log.info("110 ...{0} reduziert auf {1}".format(T_ITEM, NEW_T))
events.sendCommand(T_ITEM, NEW_T)
else:
log.info("110 ...{0} reduziert auf {1}".format(T_ITEM, NEW_T))
events.sendCommand(T_ITEM, NEW_T)
@rule("110 Status Heat-Control away", description="Changes Heating behaviour if Status is set to away")
#@when("Item Status_Home changed to 3")
@when("Time cron /30 * * ? * * *")
def HeatControlAway(event):
HeatControlAway.log.info(u"110 Temperaturen abwesend --> Reduzieren")
ChangeTemperature("EG_Flur_Thermo_Soll_Temp", items.Pref_EG_Flur_Soll_Temp.floatValue() - items.Pref_Away_Soll_Decrease.floatValue() , "NONE", "NONE")
ChangeTemperature("EG_Bad_Thermo_Soll_Temp", items.Pref_EG_Bad_Soll_Temp.floatValue() - items.Pref_Away_Soll_Decrease.floatValue() , "EG_Bad_Window_Contact", "TMP_EG_Bad_Soll_Temp")
The Syntax for explanation:
ChangeTemperature(>Item to change temperature for<, >New Temperature< , >Item of Window to be checked<, >Item to store temperature if Window is open<)