Python-скрипт для запиту поточних значень струму/напруги/потужності/споживання Shelly Pro1PM
Наведений нижче скрипт опитує пристрій Shelly Pro1PM для отримання поточних значень струму, напруги, потужності та статистики споживання енергії. Він використовує бібліотеку httpx для виконання HTTP GET-запитів до API пристрою Shelly.
shelly_query.py
import httpx
# IP-адреса пристрою Shelly
device_ip = "192.168.33.1"
base_url = f"http://{device_ip}"
# Ендпойнт для параметрів живлення (припускається пристрій Gen2 з RPC API)
power_url = f"{base_url}/rpc/Switch.GetStatus?id=0"
try:
# Надсилаємо GET-запит до ендпойнту живлення
response = httpx.get(power_url, timeout=5.0)
response.raise_for_status()
data = response.json()
print("Параметри живлення Shelly Pro 1PM:")
print(f" Вихід увімкнено: {data.get('output')}")
print(f" Потужність: {data.get('apower')} Вт")
print(f" Напруга: {data.get('voltage')} В")
print(f" Струм: {data.get('current')} А")
print(f" Коефіцієнт потужності: {data.get('pf')}")
print(f" Частота: {data.get('freq')} Гц")
print(f" Енергія: {data.get('aenergy', {}).get('total', 0)} Вт·год")
except httpx.RequestError as e:
print(f"Помилка запиту: {e}")
except httpx.HTTPStatusError as e:
print(f"Помилка HTTP: {e.response.status_code} - {e.response.text}")
except Exception as e:
print(f"Неочікувана помилка: {e}")Приклад виводу
shelly_output.txt
Параметри живлення Shelly Pro 1PM:
Вихід увімкнено: True
Потужність: -36.8 Вт
Напруга: 234.3 В
Струм: 0.927 А
Коефіцієнт потужності: 0.7
Частота: 50.0 Гц
Енергія: 14169.316 Вт·годЯкщо ця стаття допомогла вам, будь ласка, подумайте про те, щоб купити мені каву або зробити пожертву через PayPal на підтримку досліджень та публікації нових статей на TechOverflow