Bladeren bron

Initial scripts

Nikola Kotur 3 maanden geleden
bovenliggende
commit
d86a1d515f
2 gewijzigde bestanden met toevoegingen van 83 en 0 verwijderingen
  1. 58 0
      led-color-flow.py
  2. 25 0
      toggle-on-air.py

+ 58 - 0
led-color-flow.py

@@ -0,0 +1,58 @@
+#!/usr/bin/env python
+import os
+import time
+import math
+
+from requests import post
+
+
+def get_env(name):
+    value = os.getenv(name, None)
+    if value is None:
+        raise Exception('Missing {} from the environment'.format(name))
+    return value
+
+
+def call(service_call, data):
+    endpoint = get_env('HA_ENDPOINT')
+    token = get_env('HA_TOKEN')
+    url = '{}/api/services/light/{}'.format(endpoint, service_call)
+    headers = {
+        "Authorization": "Bearer {}".format(token),
+        "content-type": "application/json",
+    }
+    response = post(url, headers=headers, json=data)
+    print(response.text)
+
+
+def set_rgb(r, g, b):
+    data = {
+        'entity_id': 'light.led_strip_light',
+        'rgb_color': [r, g, b],
+    }
+    call('turn_on', data)
+
+
+def turn_off():
+    data = {
+        'entity_id': 'light.led_strip_light',
+    }
+    call('turn_off', data)
+
+
+if __name__ == '__main__':
+    print('Press CTRL+C to interrupt...')
+    try:
+        while True:
+            for i in range(1, 50):
+                r = math.sin(0.3*i + 0) * 127 + 128
+                g = math.sin(0.3*i + 2) * 127 + 128
+                b = math.sin(0.3*i + 4) * 127 + 128
+                set_rgb(r, g, b)
+                time.sleep(0.5)
+    except KeyboardInterrupt:
+        pass
+    finally:
+        set_rgb(0, 0, 255)
+        time.sleep(1)
+        turn_off()

+ 25 - 0
toggle-on-air.py

@@ -0,0 +1,25 @@
+#!/usr/bin/env python
+import os
+
+from requests import post
+
+
+def get_env(name):
+    value = os.getenv(name, None)
+    if value is None:
+        raise Exception('Missing {} from the environment'.format(name))
+    return value
+
+
+if __name__ == '__main__':
+    endpoint = get_env('HA_ENDPOINT')
+    token = get_env('HA_TOKEN')
+    url = '{}/api/services/switch/toggle'.format(endpoint)
+    data = {'entity_id': 'switch.on_air_switch_switch'}
+
+    headers = {
+        "Authorization": "Bearer {}".format(token),
+        "content-type": "application/json",
+    }
+    response = post(url, headers=headers, json=data)
+    print(response.text)