This commit is contained in:
Aaro Varis
2026-02-05 08:48:24 +02:00
parent ab3d9fd90f
commit f83d021c7b

32
init.py
View File

@@ -3,10 +3,41 @@ from astral import LocationInfo
from astral.sun import sun from astral.sun import sun
from datetime import date, datetime from datetime import date, datetime
from zoneinfo import ZoneInfo from zoneinfo import ZoneInfo
import requests
from grove.gpio import GPIO from grove.gpio import GPIO
from grove.display.jhd1802 import JHD1802 from grove.display.jhd1802 import JHD1802
shelly_server = "https://shelly-237-eu.shelly.cloud"
shelly_token = "M2M5YTYxdWlkEFD82A2301693D62637E530B4CDDC0DC6E2CDD8F01BE5E5102000B92638A2DA74019E6A81E6D17E0"
shelly_deviceId = "8cbfea9fd6d0"
def setShellyPlugState(deviceId: str, state: bool) -> dict:
"""
Set the state of a Shelly plug/switch device.
Args:
deviceId: The Shelly device id
state: True to turn on, False to turn off
Returns:
Response from the API as a dictionary
"""
url = f"{shelly_server}/v2/devices/api/set/switch"
params = {"auth_key": shelly_token}
payload = {
"id": deviceId,
"on": state
}
response = requests.post(url, params=params, json=payload)
if response.status_code == 200:
return {"success": True}
else:
return response.json()
city = LocationInfo("Seinäjoki", "Finland", "Europe/Helsinki", 62.7900, 22.8400) city = LocationInfo("Seinäjoki", "Finland", "Europe/Helsinki", 62.7900, 22.8400)
s = sun(city.observer, date=date.today()) s = sun(city.observer, date=date.today())
print(f"City: {city.name}, {city.region}") print(f"City: {city.name}, {city.region}")
@@ -94,6 +125,7 @@ class AlarmClock:
if self.configMode == "normal": if self.configMode == "normal":
# Normal mode: toggle relay # Normal mode: toggle relay
self.setRelayState(not self.relayGpio.read()) self.setRelayState(not self.relayGpio.read())
setShellyPlugState(shelly_deviceId, self.relayGpio.read() == 1)
elif self.configMode == "set_hour": elif self.configMode == "set_hour":
# Increment hour # Increment hour
self.alarmHour = (self.alarmHour + 1) % 24 self.alarmHour = (self.alarmHour + 1) % 24