Script Python para consultar corrente/tensão/potência/consumo do Shelly Pro1PM
O seguinte script consulta um dispositivo Shelly Pro1PM por suas estatísticas de corrente, tensão, potência e consumo de energia. Ele usa a biblioteca httpx para fazer requisições HTTP GET para a API do dispositivo Shelly.
shelly_query.py
import httpx
# Endereço IP do dispositivo Shelly
device_ip = "192.168.33.1"
base_url = f"http://{device_ip}"
# Endpoint para parâmetros de energia (assume dispositivo Gen2 com API RPC)
power_url = f"{base_url}/rpc/Switch.GetStatus?id=0"
try:
# Enviar requisição GET para o endpoint de energia
response = httpx.get(power_url, timeout=5.0)
response.raise_for_status()
data = response.json()
print("Shelly Pro 1PM Power Parameters:")
print(f" Output On: {data.get('output')}")
print(f" Power: {data.get('apower')} W")
print(f" Voltage: {data.get('voltage')} V")
print(f" Current: {data.get('current')} A")
print(f" Power Factor: {data.get('pf')}")
print(f" Frequency: {data.get('freq')} Hz")
print(f" Energy: {data.get('aenergy', {}).get('total', 0)} Wh")
except httpx.RequestError as e:
print(f"Request error: {e}")
except httpx.HTTPStatusError as e:
print(f"HTTP error: {e.response.status_code} - {e.response.text}")
except Exception as e:
print(f"Unexpected error: {e}")Exemplo de saída
shelly_output.txt
Shelly Pro 1PM Power Parameters:
Output On: True
Power: -36.8 W
Voltage: 234.3 V
Current: 0.927 A
Power Factor: 0.7
Frequency: 50.0 Hz
Energy: 14169.316 WhIf this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow