Seite 1 von 1

smarthomehandler.py shelly

Verfasst: Fr Dez 11, 2020 4:17 pm
von mabe
Hi,

ihr werkelt im Augenblick ja mächtig an der smarthomehandler.py

Spricht etwas dagegen folgende Änderung an der
/var/www/html/openWB/modules/smarthome/shelly/watt.py.
durchzuführen?

Alt:
aktpower = int(answer['meters'][0]['power'])

Neu:
try:
aktpower = int(answer['emeters'][0]['power'])*3 # Abfrage shellyEM
except:
aktpower = int(answer['meters'][0]['power']) # Abfrage shelly 1



Zum Hintergrund: Ich verwende einen Shelly 1 am SmartGrid Eingang meiner Vitocal200 Wärmepumpe.
Bei PV Überschuß schaltet der Shelly 1 und die Pufferspeichertemperatur wird erhöht. (Demnächst eine schönere Lösung mit Modbus)

Ebenso verwende ich einen Shelly EM (mit Stromwandler) um die Leistung der Wärmepumpe zu messen.
Da der Shelly EM keine 3 Phasen messen kann der Woraround mit *3.

Leider ist die Status Rückgabe des shelly EM emeters und nicht meters.


Gruß
Markus

Re: smarthomehandler.py shelly

Verfasst: Fr Dez 11, 2020 4:44 pm
von okaegi
Hallo Markus,
Hm.. mich stört der Faktor 3, hab ich richtig verstanden dass du nur eine Phase messen tuest und dann davon ausgehst das aktuelle Leistungsaufnahme mal drei ist ?
Hast du einen link auf die Schnittstellenbeschreibung em ?
Gruss Oliver

Re: smarthomehandler.py shelly

Verfasst: Fr Dez 11, 2020 5:03 pm
von mabe
Hallo Oliver,

mit dem Faktor 3 hast du Recht. Kann aber auch weg gelassen werden.
Hier wird nur der Außenkompressor der Wärmepumpe gemessen. Ich gehe davon aus, dass sie gleichmäßig über 3 Phasen zieht.

Leider hat der Shelly EM nur 2 Kanäle, die auch nur dieselbe Phase messen können.

https://shelly-api-docs.shelly.cloud/#shelly-em

{"wifi_sta":{"connected":true,"ssid":"Castle","ip":"192.168.3.65","rssi":-75},"cloud":{"enabled":true,"connected":true},"mqtt":{"connected":false},"time":"17:58","unixtime":1607709506,"serial":3089,"has_update":false,"mac":"A4CF12B9xxxx","cfg_changed_cnt":0,"actions_stats":{"skipped":0},"relays":[{"ison":true,"has_timer":false,"timer_started":0,"timer_duration":0,"timer_remaining":0,"overpower":false,"is_valid":true,"source":"http"}],"emeters":[{"power":1672.99,"reactive":415.47,"voltage":228.87,"is_valid":true,"total":20339.9,"total_returned":0.0},{"power":0.00,"reactive":0.00,"voltage":228.87,"is_valid":true,"total":0.0,"total_returned":0.0}],"update":{"status":"idle","has_update":false,"new_version":"20201124-092817/v1.9.0@57ac4ad8","old_version":"20201124-092817/v1.9.0@57ac4ad8","beta_version":"20201202-141537/v1.9.3-rc3@50c6ab57"},"ram_total":50152,"ram_free":33168,"fs_size":233681,"fs_free":152357,"uptime":111163}


Gruß
Markus

Re: smarthomehandler.py shelly

Verfasst: Di Dez 15, 2020 7:51 am
von okaegi
hallo Markus,
In der neusten nighly drin:
try:
aktpower = int(answer['meters'][0]['power']) # Abfrage shelly
except:
aktpower = int(answer['emeters'][0]['power']) # Abfrage shellyEM

Shelly em sollte gehen.
Bitte testen,
Gruss Oliver

Re: smarthomehandler.py shelly

Verfasst: Di Dez 15, 2020 10:21 am
von mabe
Hallo Oliver,

besten Dank.

Sinnvoll wäre vielleicht sogar:
try:
aktpower = int(answer['meters'][0]['power']) # Abfrage shelly
except:
aktpower = int(answer['emeters'][0]['power'])+int(answer['emeters'][1]['power']). # Abfrage shellyEM Summe Kanal 1 und Kanal 2

Gruß
Markus

Re: smarthomehandler.py shelly

Verfasst: Di Dez 15, 2020 11:01 am
von okaegi
Hallo Markus
Yankee hat einen besseren Lösungsvorschlag gemacht der derweilen im nighlty drin ist:
viewtopic.php?f=9&t=464&p=20346&hilit=shelly+3em#p20370
Geht es mit shelly em ?
Habe gerade shelly 1pm getestet, damit läuft es.
Gruss Oliver

Re: smarthomehandler.py shelly

Verfasst: Di Dez 15, 2020 2:36 pm
von mabe
Hallo Oliver,
Hallo Yankee,

funktioniert beim shelly EM und ist programmtechnisch die schönere Lösung.

Grs.
Markus