Class Item
This class implements the following methods and properties:
- class lib.item.item.Item(smarthome, parent, path, config, items_instance=None)[Quellcode]
Bases:
object
Class from which item objects are created
The class
Item
implements the methods and attributes of an item. Each item is represented by an instance of the classItem
. For an item to be valid and usable, it has to be part of the item tree, which is maintained by an object of classItems
.This class is used by the method
`load_itemdefinitions()
of the Items object.- class TypeHandler(item)[Quellcode]
Bases:
object
Class for dict/list type item handling
This class is a base class to enable modifying lists or dicts stored in item values. As item() yields a copy of the stored objects, changes are not written back to the item. This set of classes provides methods which handle storing the modified object and at the same time ensure that all item metadata handling (updated, changed, changed_age etc) are properly set.
The class method for either object type correspond to the Python list/ dict class methods for easy usage.
When an item of type list/dict is created, the appropriate sub-class is instantiated as <item>.list resp. <item>.dict as to minimize collisions between item methods and names of sub-items (e.g. update).
- item_functions = []
- class ListHandler(item)[Quellcode]
Bases:
TypeHandler
handle list type items
- item_functions = ['append', 'prepend', 'insert', 'pop', 'extend', 'clear', 'delete', 'remove']
- append(value, caller='Logic', source=None, dest=None)[Quellcode]
- prepend(value, caller='Logic', source=None, dest=None)[Quellcode]
- insert(index, value, caller='Logic', source=None, dest=None)[Quellcode]
- pop(index=None, caller='Logic', source=None, dest=None)[Quellcode]
- extend(value, caller='Logic', source=None, dest=None)[Quellcode]
- clear(caller='Logic', source=None, dest=None)[Quellcode]
- delete(value, caller='Logic', source=None, dest=None)[Quellcode]
mimic the del list[x:y] behaviour - supply „x:y“ as value needs to be called delete instead of del for syntax reasons
- remove(value, caller='Logic', source=None, dest=None)[Quellcode]
- class DictHandler(item)[Quellcode]
Bases:
TypeHandler
handle dict type items
- item_functions = ['get', 'delete', 'clear', 'pop', 'popitem', 'update']
- get(key, default=None)[Quellcode]
- delete(key, caller='Logic', source=None, dest=None)[Quellcode]
needs to be called delete instead of del for syntax reasons
- clear(caller='Logic', source=None, dest=None)[Quellcode]
- pop(key, caller='Logic', source=None, dest=None, default=None)[Quellcode]
- popitem(caller='Logic', source=None, dest=None)[Quellcode]
- update(value, caller='Logic', source=None, dest=None)[Quellcode]
- remove()[Quellcode]
Cleanup item usage before item deletion Calls all plugins to remove the item and its references. :return: success :rtype: bool
- find_attribute(attr, default='', level=-1, strict=False)[Quellcode]
Find attribute value from item (level == 0) or parent item of given level
If level < 0, search up the whole item tree If strict is set and level is not reached, return ‚‘
- Parameter:
attr – Get the value from this attribute of the parent item
level (
int
) – number of parent-levelsstrict (
bool
) – define if level is max-level or exact level
- Rückgabe:
value from attribute of parent item
- Ptype level:
int
- Ptype strict:
bool
- Rückgabe:
attribute value
- Rückgabetyp:
str
- path()[Quellcode]
Path of the item
Available only in SmartHomeNG v1.6, not in versions above
- Rückgabe:
String with the path of the item
- Rückgabetyp:
str
- id()[Quellcode]
Old method name - Use item.property.path instead of item.property.path
- type()[Quellcode]
Datatype of the item
- Rückgabe:
Datatype of the item
- Rückgabetyp:
str
- last_change()[Quellcode]
Timestamp of last change of item’s value
- Rückgabe:
Timestamp of last change
- age()[Quellcode]
Age of the item’s actual value. Returns the time in seconds since the last change of the value
- Rückgabe:
Age of the value
- Rückgabetyp:
int
- last_update()[Quellcode]
Timestamp of last update of item’s value (not necessarily change)
- Rückgabe:
Timestamp of last update
- update_age()[Quellcode]
Update-age of the item’s actual value. Returns the time in seconds since the value has been updated (not necessarily changed)
- Rückgabe:
Update-age of the value
- Rückgabetyp:
int
- last_trigger()[Quellcode]
Timestamp of last trigger of item’s eval expression (if available)
- Rückgabe:
Timestamp of last update
- trigger_age()[Quellcode]
Trigger-age of the item’s last eval trigger. Returns the time in seconds since the eval has been triggered
- Rückgabe:
Update-age of the value
- Rückgabetyp:
int
- prev_change()[Quellcode]
Timestamp of the previous (next-to-last) change of item’s value
- Rückgabe:
Timestamp of previous change
- prev_age()[Quellcode]
Age of the item’s previous value. Returns the time in seconds the item had the the previous value
- Rückgabe:
Age of the previous value
- Rückgabetyp:
int
- prev_update()[Quellcode]
Timestamp of previous (next-to-last) update of item’s value (not necessarily change)
- Rückgabe:
Timestamp of previous update
- prev_update_age()[Quellcode]
Update-age of the item’s previous value. Returns the time in seconds the previous value existed since it had been updated (not necessarily changed)
- Rückgabe:
Update-age of the previous value
- Rückgabetyp:
int
- prev_trigger()[Quellcode]
Timestamp of previous (next-to-last) trigger of item’s eval
- Rückgabe:
Timestamp of previous update
- prev_trigger_age()[Quellcode]
Trigger-age of the item’s previous eval trigger. Returns the time in seconds of the previous eval trigger
- Rückgabe:
Update-age of the previous value
- Rückgabetyp:
int
- prev_value()[Quellcode]
Next-to-last value of the item
- Rückgabe:
Next-to-last value of the item
- changed_by()[Quellcode]
Returns an indication, which plugin, logic or event changed the item’s value
- Rückgabe:
Changer of item’s value
- Rückgabetyp:
str
- updated_by()[Quellcode]
Returns an indication, which plugin, logic or event updated (not necessarily changed) the item’s value
- Rückgabe:
Updater of item’s value
- Rückgabetyp:
str
- triggered_by()[Quellcode]
Returns an indication, which plugin, logic or event triggered the item’s eval
- Rückgabe:
Updater of item’s value
- Rückgabetyp:
str
- get_absolutepath(relativepath, attribute='')[Quellcode]
Builds an absolute item path relative to the current item
- Parameter:
relativepath – string with the relative item path
attribute – string with the name of the item’s attribute, which contains the relative path (for log entries)
- Rückgabe:
string with the absolute item path
- expand_relativepathes(attr, begintag, endtag)[Quellcode]
converts a configuration attribute containing relative item paths to absolute paths
The item’s attribute can be of type str or list (of strings)
The begintag and the endtag remain in the result string!
- Parameter:
attr – Name of the attribute. Use * as a wildcard at the end
begintag – string or list of strings that signals the beginning of a relative path is following
endtag – string or list of strings that signals the end of a relative path
- get_stringwithabsolutepathes(evalstr, begintag, endtag, attribute='')[Quellcode]
converts a string containing relative item paths to a string with absolute item paths
The begintag and the endtag remain in the result string!
- Parameter:
evalstr – string with the statement that may contain relative item paths
begintag – string that signals the beginning of a relative path is following
endtag – string that signals the end of a relative path
attribute – string with the name of the item’s attribute, which contains the relative path
- Rückgabe:
string with the statement containing absolute item paths
- get_class_from_frame(fr)[Quellcode]
- get_calling_item_from_frame(fr)[Quellcode]
- get_stack_info()[Quellcode]
- hysteresis_state()[Quellcode]
Return the inner hysteresis_state
Available in SmartHomeNG v1.10 and above
TODO: Return right state, if value is from init:cache
- Rückgabe:
hysteresis state of the item
- Rückgabetyp:
str
- hysteresis_data()[Quellcode]
Return the inner hysteresis_state
returns a dict with the current hysteresis data (lower threshold, upper threshold, input value, output value and internal state)
Available in SmartHomeNG v1.10 and above
- Rückgabe:
hysteresis state of the item
- Rückgabetyp:
dict
- add_logic_trigger(logic)[Quellcode]
Add a logic trigger to the item
- Parameter:
logic –
- Rückgabe:
- remove_logic_trigger(logic)[Quellcode]
- get_logic_triggers()[Quellcode]
Returns a list of logics to trigger, if the item gets changed
- Rückgabe:
Logics to trigger
- Rückgabetyp:
list
- add_method_trigger(method)[Quellcode]
- remove_method_trigger(method)[Quellcode]
- get_method_triggers()[Quellcode]
Returns a list of plugin methods to trigger, if this item gets changed
- Rückgabe:
methods to trigger
- Rückgabetyp:
list
- get_item_triggers()[Quellcode]
Returns a list of items to trigger, if this item gets changed
- Rückgabe:
methods to trigger
- Rückgabetyp:
list
- get_hysteresis_item_triggers()[Quellcode]
Returns a list of items to trigger, if this item gets changed
- Rückgabe:
methods to trigger
- Rückgabetyp:
list
- timer(time, value, auto=False, caller=None, source=None, compat='latest')[Quellcode]
Starts a timer for this item
- Parameter:
time – Duration till the value of the item is set
value – Value the item should be set to
auto – Optional: If False a single timer is started, else the duration/value information is set as an autotimer
caller – Optional: The caller of this function
source – Optional: The source of the timer-request
compat – Not used anymore, only defined for backward compatibility
- remove_timer()[Quellcode]
Remove a running timer for this item from the scheduler
- autotimer(time=None, value=None, compat='latest')[Quellcode]
Defines or removes an autotimer for the item
If time and value are not given (or None), an existing autotimer is removed
- Parameter:
time – Time until the value is set
value – Value to set the item to
compat – Not used anymore, only defined for backward compatibility
- fade(dest, step=1, delta=1)[Quellcode]
- return_children()[Quellcode]
- return_parent(level=1, strict=False)[Quellcode]
Return ancestor item of given level
If item doesn’t have <level> ancestors, and… - strict is set, return None - strict is not set, return the highest found ancestor
If level is < 1, method returns this item
- Parameter:
level (
int
) – number of parent-levelsstrict (
bool
) – define if level is max-level or exact level
- Ptype level:
int
- Ptype strict:
bool
- Rückgabe:
ancestor item (or this item, or None)
- Rückgabetyp:
object | None
- set(value, caller='Logic', source=None, dest=None, prev_change=None, last_change=None)[Quellcode]
Set an Item value and optionally set prev_change and last_change timestamps
(This method is called eg. by the database plugin to initialize items from the database on start)
- Parameter:
value –
caller –
source –
dest –
prev_change –
last_change –
- Rückgabe:
- get_children_path()[Quellcode]
- jsonvars()[Quellcode]
Translation method from object members to json :return: Key / Value pairs from object members
- to_json()[Quellcode]