hallo Zusammen,
Wir haben in openWb ein paar generische Module drin, die Shellies auslesen und in Abhängigkeit vom Pv Überschuss schalten (Smarthomebereich).
Primär werden Shelly 1 / Shelly 1pm zur Leistungsmessung und zum Schalten verwendet (z.b. Heizstab bei Solarüberschuss mit Shelly 1pm einschalten und die Leistungsaufnahme messen.
Ich habe derweilen festgestellt, das es mit dem folgenden Befehl rausfinden können, welche gen (1 oder 2) als shelly verwendet wird.
Dieser Befehl läuft für gen 1 und gen 2 gleichermassen.
Dann könnten wir in Abhängigkeit die richtigen Kommando schicken.
Zum an und abstellen verwenden wir ein phyton programm was von einem permanenten python process von einem raspi zyklisch abgefragt, respektive geschaltet wird.
zum An oder Abstellen verwenden wir für gen 1 folgendes Kommando
urllib.request.urlopen("http://%22+str(ipadr)+%22/relay/0?turn=on", timeout=3)
urllib.request.urlopen("http://%22+str(ipadr)+%22/relay/0?turn=off", timeout=3)
1) Diese Endpoints laufen unverändert nach doku auch für gen 2, kann das jemand bestätigen ?
Sonst fragen wir noch die aktuelle Leistungsaufnahme und den aktuellen Relay status ab:
Gen 1 abfrage
answer = json.loads(str(urllib.request.urlopen("http://%22+str(ipadr)+%22/status", timeout=3).read().decode("utf-8")))
Gen1 return (ison , power)
{'wifi_sta': {'connected': True, 'ssid': 'xxxxx', 'rssi': -48, 'ip': '192.168.xxxxx}, 'ext_sensors': {}, 'cloud': {'enabled': True, 'connected': True}, 'inputs': [{'event': '', 'input': 0, 'event_cnt': 0}], 'fs_free': 148341, 'uptime': 36041, 'relays': [{'timer_started': 0, 'overpower': False, 'timer_remaining': 0, 'ison': False, 'source': 'http', 'timer_duration': 0, 'has_timer': False}], 'overtemperature': False, 'update': {'new_version': '20211109-130756/v1.11.7-g682a0db', 'status': 'idle', 'has_update': False, 'old_version': '20211109-130756/v1.11.7-g682a0db'}, 'temperature_status': 'Normal', 'meters': [{'overpower': 0.0, 'timestamp': 1637390449, 'total': 132189, 'power': 0.0, 'is_valid': True, 'counters': [0.0, 0.0, 0.0]}], 'fs_size': 233681, 'mac': 'xxxxxxxxx', 'time': '06:40', 'unixtime': 1637386849, 'actions_stats': {'skipped': 0}, 'cfg_changed_cnt': 0, 'tmp': {'tF': 113.35, 'tC': 45.19, 'is_valid': True}, 'ram_total': 50472, 'temperature': 45.19, 'ext_temperature': {}, 'mqtt': {'connected': False}, 'ext_humidity': {}, 'ram_free': 38352, 'has_update': False, 'serial': 799995}
Für gen 2
Hab ich das hier
http://192.168.1.2/rpc/Shelly.GetStatus
In der Rückgabe habe ich die aktuelle Leistungsaufnahme gefunden (apower)
{"ble":{},"cloud":{"connected":true},"input:0":{"id":0,"state":false},"mqtt":{"connected":false},"switch:0":{"id": 0, "source": "init", "output": true, "apower": 0.000, "voltage": 218.794,"aenergy": {"total":4327.454,"by_minute":[0.000,0.000,0.000],"minute_ts":1637430901},"temperature":{"tC":49.1, "tF":120.3}},"sys":{"mac":"A8032ABE0BEC","restart_required":false,"time":"18:55","unixtime":1637430903,"uptime":290,"ram_size":249600,"ram_free":170588,"fs_size":414401,"fs_free":262044,"available_updates":{"beta":{"version":"0.9.0-beta2"}}},"wifi":{"sta_ip":"192.168.10.93","status":"got ip","ssid":"XXXX","rssi":-86}}
2) ist apower korrekt der korrekte Wert der die Leistungsaufnahme enthält ?
3) wo finde ich den in dem shelly plus den aktuellen Relay Status ? (Den ich unter 1 geschaltet habe ?)
danke für eure Hilfe,
gruss Oliver