summaryrefslogtreecommitdiffstats
path: root/python_scripts/set_state.py
diff options
context:
space:
mode:
Diffstat (limited to 'python_scripts/set_state.py')
-rw-r--r--python_scripts/set_state.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/python_scripts/set_state.py b/python_scripts/set_state.py
new file mode 100644
index 0000000..fae5c7c
--- /dev/null
+++ b/python_scripts/set_state.py
@@ -0,0 +1,27 @@
+#==================================================================================================
+# python_scripts/set_state.py
+#==================================================================================================
+
+#--------------------------------------------------------------------------------------------------
+# Set the state or other attributes for the entity specified in the Automation Action
+#--------------------------------------------------------------------------------------------------
+
+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)