Blame | Last modification | View Log | Download
"""Domoticz passes information to python scripts through global variables and thedomoticz python moduleThe global variables in the script are:* changed_device: the current device that changed (object of Device)* changed_device_name: name of current device (same as changed_device.name)* is_daytime: boolean, true when it is is daytime* is_nighttime: same for the night* sunrise_in_minutes: integer* sunset_in_minutes: integer* user_variables: dictionary from string to valueA Device has a number of attributes and methodsThe attributes are:* id* name* type* sub_type* switch_type* n_value* n_value_string* s_value* last_update_string* last_update: datetime objectThe methods are:* def last_update_was_ago(self, **kwargs):Arguments can be: days[, seconds[, microseconds[, milliseconds[, minutes[, hours[, weeks]* def is_on(self):returns True when device is on* def is_off(self):returns True when device is ooff* def on(self, after=None, reflect=False):turns device on, after is optional and are the number of seconds after whichto turn the device on.If reflect is True, a next call to is_on will return True, while normallydomoticz will first have to go through possible script before turning it ondef off(self, after=None, reflect=False):simular to on()uservariables and uservariables_lastupdate are arrays for all user variables:uservariables['yourvariablename'] = 'Test Value'uservariables_lastupdate['yourvariablename'] = '2015-12-27 11:19:22'other useful details are contained in the following global variables:* is_daytime* is_nighttime* sunrise_in_minutes* sunset_in_minutes* (TODO) securityTODO: wiki pageCompare to Lua, instead of filling a commandArray, you change the status of adevice by calling device.on() or device.off()TODO: setting variablesCalling Python's print function will not print to the domoticz console, see below"""import domoticzimport randomprint ("This will only show up in the shell where you start domoticz");domoticz.log("Hi Domoticz!")domoticz.log("The device that got changed is: ", changed_device_name)# changed_device.name is the same stringfor name, device in domoticz.devices.items():domoticz.log("device", name, "is", "on" if device.is_on() else "off")if device.is_off():domoticz.log("could turn it on in 3 seconds")#device.on(after=3)for name, value in user_variables.items():domoticz.log("var", name, "has value", value)