This commit is contained in:
2026-05-02 22:16:44 -04:00
parent 479f45229a
commit e806822dae
2 changed files with 27 additions and 3 deletions
+15 -3
View File
@@ -1,4 +1,4 @@
import requests import time
import json import json
import socket import socket
@@ -35,7 +35,19 @@ class GoveeApi:
} }
self.send_over_socket(payload) self.send_over_socket(payload)
def send_over_socket(self, payload): def send_over_socket(self, payload, retries=2, delay=0.1):
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.sendto(json.dumps(payload).encode(), (self.device_ip, 4003)) sock.settimeout(1)
data = json.dumps(payload).encode()
for attempt in range(retries):
sock.sendto(data, (self.device_ip, 4003))
try:
response, _ = sock.recvfrom(1024)
print(f"Got response on attempt {attempt + 1}")
break # stop retrying once we get an ack
except socket.timeout:
if attempt < retries - 1:
time.sleep(delay)
sock.close() sock.close()
+12
View File
@@ -0,0 +1,12 @@
from govee import GoveeApi
from time import sleep
GOVEE_DEVICE = "3D:22:D7:94:40:46:2F:72"
GOVEE_SKU = "H6168"
GOVEE_AWS = "owABAgT/AGQMACr//+YAADb//8k=,o//QAAIDAwAAAAAAAAAAAAAAAI4=,MwUKdwAAAAAAAAAAAAAAAAAAAEs="
GOVEE_IP = "172.16.0.15"
govee_api = GoveeApi(device_ip=GOVEE_IP)
govee_api.send_scene(GOVEE_AWS)
# sleep(5)
# govee_api.set_?to_original_color()