Beiträge von Okaegi
-
-
stimmt, eine Frage noch
IPadresse/rpc/Switch.Set?id=100&on=true
Die switch id die hier 100 ist wie kann ich diese id beim shelly vergeben ? Sind die vorgegeben oder kann ich die in der shelly app erfassen ?
Gruss Oliver
-
hallo zusammen
In openwb habe wir ein generelles Modul zur shelly abfrage, wo wir derweilen bezüglich gen1 und gen2 beim ersten zugriff ermitteln (über http://" + str(ipadr) + "/http://" + str(ipadr) + "/shelly") und dann für alle folgezugriffe unterscheiden. Der shelly pro 3em wird derweilen korrekt erkannt zur Leistungsabfrage.
Gen1 fragen wir mit http und ipadresse/status ab
gen2 mit ipadresse/rpc/Shelly.GetStatus
on oder off setzen geht mit je nach pv Überschuss
Gen1
url = "http://" + str(ipadr) + "/relay/" + str(chan) + "?turn=on"
url = "http://" + str(ipadr) + "/relay/" + str(chan) + "?turn=off"
Wobei der Kanal parametrisiert werden kann. Wie müssten gen2 shelly cmd über http aussehen ?
Danke Gruss Oliver
-
-
-
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