From 211271f3e56da65cea6147e879f39ce6d32f3d3f Mon Sep 17 00:00:00 2001 From: tilman Date: Wed, 24 Aug 2022 14:33:07 +0000 Subject: [PATCH 1/3] doorbell.py - send MQTT --- doorbell/klingel_sender_nano_serial/doorbell.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/doorbell/klingel_sender_nano_serial/doorbell.py b/doorbell/klingel_sender_nano_serial/doorbell.py index c30634d..a1711f7 100644 --- a/doorbell/klingel_sender_nano_serial/doorbell.py +++ b/doorbell/klingel_sender_nano_serial/doorbell.py @@ -7,6 +7,7 @@ import urllib.request import logging import logging.handlers as handlers import time +import json logger = logging.getLogger('Rotating Log') logger.setLevel(logging.INFO) @@ -30,6 +31,12 @@ while True: if (data == 'RING'): try: response = urllib.request.urlopen('http://192.168.178.60/bell/on', timeout=5).read().decode('utf-8') + + # send MQTT + headers = {"Content-Type": "application/json","Authorization": "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJjYjY5NjA5NmY0N2E0NmZlOGEzYjczOGYzYmUzOTk5ZSIsImlhdCI6MTY2MTM0NDgxOSwiZXhwIjoxOTc2NzA0ODE5fQ.z9fzbVOA1Pbur3Zb07481n-SoYesj8cetw-CX6WPmTs"} + data = json.dumps({'payload': 'RING', 'topic': 'lewe/doorbell', 'retain': 'False'}).encode('utf8') + reqest = urllib.request.Request("https://www.nodebucket.de:8123/api/services/mqtt/publish", data, headers) + response = urllib.request.urlopen(reqest) except Exception: logger.error("Could not ring doorbell") # logger.exception("Could not ring doorbell") From 60139c674d9346d3e2da4aed7eacc48723f687da Mon Sep 17 00:00:00 2001 From: tilman Date: Wed, 24 Aug 2022 14:48:56 +0000 Subject: [PATCH 2/3] mc --- doorbell/klingel_sender_nano_serial/doorbell.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/doorbell/klingel_sender_nano_serial/doorbell.py b/doorbell/klingel_sender_nano_serial/doorbell.py index a1711f7..cd6f475 100644 --- a/doorbell/klingel_sender_nano_serial/doorbell.py +++ b/doorbell/klingel_sender_nano_serial/doorbell.py @@ -33,7 +33,10 @@ while True: response = urllib.request.urlopen('http://192.168.178.60/bell/on', timeout=5).read().decode('utf-8') # send MQTT - headers = {"Content-Type": "application/json","Authorization": "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJjYjY5NjA5NmY0N2E0NmZlOGEzYjczOGYzYmUzOTk5ZSIsImlhdCI6MTY2MTM0NDgxOSwiZXhwIjoxOTc2NzA0ODE5fQ.z9fzbVOA1Pbur3Zb07481n-SoYesj8cetw-CX6WPmTs"} + headers = { + "Content-Type": "application/json", + "Authorization": "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJjYjY5NjA5NmY0N2E0NmZlOGEzYjczOGYzYmUzOTk5ZSIsImlhdCI6MTY2MTM0NDgxOSwiZXhwIjoxOTc2NzA0ODE5fQ.z9fzbVOA1Pbur3Zb07481n-SoYesj8cetw-CX6WPmTs" + } data = json.dumps({'payload': 'RING', 'topic': 'lewe/doorbell', 'retain': 'False'}).encode('utf8') reqest = urllib.request.Request("https://www.nodebucket.de:8123/api/services/mqtt/publish", data, headers) response = urllib.request.urlopen(reqest) From 3461be1963cf8be120a3e462cb32ffd60cc966be Mon Sep 17 00:00:00 2001 From: tilman Date: Mon, 10 Oct 2022 14:37:17 +0000 Subject: [PATCH 3/3] =?UTF-8?q?=E2=80=9Ecozylife-light.py=E2=80=9C=20hinzu?= =?UTF-8?q?f=C3=BCgen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cozylife-light.py | 51 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 cozylife-light.py diff --git a/cozylife-light.py b/cozylife-light.py new file mode 100644 index 0000000..662d5b5 --- /dev/null +++ b/cozylife-light.py @@ -0,0 +1,51 @@ +# CozyLife WiFi LED strip +# code derived from https://github.com/cozylife/hass_cozylife_local_pull/blob/master/custom_components/hass_cozylife_local_pull/tcp_client.py#L134 + +import socket, time, json, sys +TCP_IP = '192.168.178.81' +TCP_PORT = 5555 +BUFFER_SIZE = 1024 + +if str(sys.argv[1]) == 'off': + payload = {'1': 0} +else: + payload = {'1': 255, '2': 0} + + # brightness 1 - 1000 (CozyLife nutzt nur 1-400) + payload['4'] = int(sys.argv[1]) + + # hs_color https://www.home-assistant.io/integrations/light/#service-lightturn_on + payload['5'] = int(sys.argv[2]) + payload['6'] = int(sys.argv[3]) * 10 + + # weiß 0 0 + # rot 0 100 + # grün 120 100 + # blau 240 100 + # gelb 60 100 + # orange 24 100 + + # colortemp + #payload['3'] = 900 + +message = { + 'pv': 0, + 'cmd': 3, + 'sn': str(int(round(time.time() * 1000))), + 'msg': { + 'attr': [int(item) for item in payload.keys()], + 'data': payload, + } +} + +payload_str = json.dumps(message, separators=(',', ':',)) +message_bytes = bytes(payload_str + "\r\n", encoding='utf8') + +#MESSAGE = '{"pv":0,"cmd":2,"sn":"' + str(int(round(time.time() * 1000))) + '","msg":{"attr":[0]}}' + "\r\n" +#print MESSAGE +s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) +s.connect((TCP_IP, TCP_PORT)) +s.send(message_bytes) +data = s.recv(BUFFER_SIZE) +s.close() +print(data) \ No newline at end of file