first commit
This commit is contained in:
76
templates/All.Python
Normal file
76
templates/All.Python
Normal file
@@ -0,0 +1,76 @@
|
||||
"""
|
||||
Domoticz passes information to python scripts through global variables and the
|
||||
domoticz python module
|
||||
|
||||
The 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 value
|
||||
|
||||
A Device has a number of attributes and methods
|
||||
The attributes are:
|
||||
* id
|
||||
* name
|
||||
* type
|
||||
* sub_type
|
||||
* switch_type
|
||||
* n_value
|
||||
* n_value_string
|
||||
* s_value
|
||||
* last_update_string
|
||||
* last_update: datetime object
|
||||
|
||||
The 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 which
|
||||
to turn the device on.
|
||||
If reflect is True, a next call to is_on will return True, while normally
|
||||
domoticz will first have to go through possible script before turning it on
|
||||
def 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) security
|
||||
|
||||
Compare to Lua, instead of filling a commandArray, you change the status of a
|
||||
device by calling device.on() or device.off()
|
||||
|
||||
TODO: setting variables
|
||||
|
||||
Calling Python's print function will not print to the domoticz console, see below
|
||||
"""
|
||||
import DomoticzEvents as DE
|
||||
|
||||
DE.Log("Python: Changed: " + DE.changed_device.Describe())
|
||||
|
||||
if DE.changed_device_name == "Test":
|
||||
if DE.Devices["Test_Target"].n_value_string == "On":
|
||||
DE.Command("Test_Target", "Off")
|
||||
|
||||
if DE.Devices["Test_Target"].n_value_string == "Off":
|
||||
DE.Command("Test_Target", "On")
|
||||
|
||||
DE.Log("Python: Number of user_variables: " + str(len(DE.user_variables)))
|
||||
|
||||
# All user_variables are treated as strings, convert as necessary
|
||||
for key, value in DE.user_variables.items():
|
||||
DE.Log("Python: User-variable '{0}' has value: {1}".format(key, value))
|
||||
Reference in New Issue
Block a user