first commit

This commit is contained in:
Souti
2025-03-06 11:09:58 +01:00
commit 11f7d440ff
330 changed files with 38306 additions and 0 deletions

76
templates/All.Python Normal file
View 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))