32 lines
1.4 KiB
Python
32 lines
1.4 KiB
Python
|
#==================================================================================================
|
||
|
# python_scripts/set_statev2.py
|
||
|
#==================================================================================================
|
||
|
|
||
|
#--------------------------------------------------------------------------------------------------
|
||
|
# Set the state or other attributes for the entity specified in the Automation Action
|
||
|
#--------------------------------------------------------------------------------------------------
|
||
|
|
||
|
# service:
|
||
|
# python_script.set_statev2
|
||
|
# {"entity_id": "light.keukeneiland","state":"on","icon":"mdi:door","friendly_name":"test"}
|
||
|
|
||
|
inputEntity = data.get('entity_id')
|
||
|
if inputEntity is None:
|
||
|
logger.warning("===== entity_id is required if you want to set something.")
|
||
|
else:
|
||
|
inputStateObject = hass.states.get(inputEntity)
|
||
|
inputState = inputStateObject.state
|
||
|
inputAttributesObject = inputStateObject.attributes.copy()
|
||
|
|
||
|
for item in data:
|
||
|
newAttribute = data.get(item)
|
||
|
logger.debug("===== item = {0}; value = {1}".format(item,newAttribute))
|
||
|
if item == 'entity_id':
|
||
|
continue # already handled
|
||
|
elif item == 'state':
|
||
|
inputState = newAttribute
|
||
|
else:
|
||
|
inputAttributesObject[item] = newAttribute
|
||
|
|
||
|
hass.states.set(inputEntity, inputState, inputAttributesObject)
|