Support-Thread Modul 36_Shelly.pm

Begonnen von Prof. Dr. Peter Henning, 03 Februar 2021, 08:03:09

Vorheriges Thema - Nächstes Thema

Starkstrombastler

Zitat von: Hadl am 27 März 2024, 01:06:17ich bin gerade dabei mit einem Shelly Plus 2PM meine Zirkulationspumpe zu steuern.
Ich schlage vor, die Zirkulationssteuerung weitestgehend vom Shelly autonom durchführen zu lassen. Das mindert die Last auf dem FHEM-Server und funktioniert notfalls auch ohne FHEM.

1. Auf der Weboberfläche des Shelly eine Action für den Temperatursensor anlegen.
  Diese Action soll auslösen, wenn die Temperatur einen festgelegten Wert überschreitet:
  - Unter 'Then Do' eine lokale URL auswählen,
  - unter Action 'Control Output' wählen,
  - unter 'Target Component' den zu schaltenden Ausgang wählen,
  - unter 'Output State'  'off' wählen.

2. Ein- und Ausschaltvorgänge sollen an Fhem gemeldet werden. Dazu FHEM vorbereiten:
  - ein neues FHEMWEB Device z.B. mit Namen 'HOOK' anlegen, mit der lokalen Adresse des FHEM-Servers und einem neu gewähltem Port.
  - CSFR-Token ausschalten:  attr HOOK csfrToken none
  - ein allowed Device anlegen und mit dem zuvor definiertem FHEMWEB-Device verknüpfen:
    attr <allowedDevice> validFor HOOK
  - Die Kommunikation einschränken mit
    attr <allowedDevice> allowedDevices <IP-Adresse des Shelly>

3. Auf dem Shelly die automatisch angelegte Action _SWITCH_ON_ bearbeiten:
  - In der URL die Portnummer auf den im oben erstellen FHEMWEB Device ändern
  - ggf. enthaltenes Token entfernen (einschl. des vorangestellten "&")

4. Gleiches Vorgehen für Action _SWITCH_OFF_

5. Übrige Actions auf dem Shelly deaktivieren (oder löschen)

6. Polling Intervall für das Shelly-Device auf einen großen Wert, z.B. 300 Sekunden, stellen.

7. Fertig.

Wird der Ausgang des Shelly mittels Taster am Shelly, via FHEM "set ... on" oder via Shelly-App eingeschaltet,
meldet dies die Action _SWITCH_ON_ an FHEM. Das Shelly-Modul sendet daraufhin eine Statusanfrage an den Shelly
und kann damit ohne spürbare Verzögerung alle Readings, z.B. auch Power, aktualisieren.

Wird die gewünschte Temperatur erreicht, schaltet der Shelly selbständig aus und informiert FHEM via Action _SWITCH_OFF_,
woraufhin die Readings wieder aktualisiert werden.

Wenn das Ganze so wie beschrieben funktioniert, lässt es sich noch weiter verfeinern...
IPC\Ubuntu + Fhem, 1wire, Shellies, Siemens Logo!, Z-Wave, PhilipsTV, Vu+duo2, KM200

Hadl

Hallo Starkstrombastler,
vielen Dank für deine Hinweise, ja so ähnlich hatte ich das vor.

Dein Tip mit dem seperaten FHEMWEB Device, welches weder https, noch Passwort, noch CSFR hat heißt werde ich probieren.
Heißt das im Umkehrschluss das es mit alle dem garnicht möglich ist?

Wenn ich die Actions manuell bearbeite, werden die dann nicht wieder von Fhem zyklisch überschrieben, oder muss ich dann die "Webhook" wieder ausschalten?

Was leider damit nicht klappt, ist das ich meinen Temperaturverlauf in höherer Messrate in Fhem sehe. Hier würden mir am Anfang wirklich 10 Sekunden etwas bringen um z.B. abschätzen zu können wielange die Pumpe laufen muss bis das ganze System gespült ist (Hab Vorlauf und 2 Rückläufe am Shelly gemessen)

Soll ich dann analog zu den Switches auch die Temperaturen mit über den FHEMWEB HOOK laufen lassen?

Warum schlägst du nur vor, die beiden Switches per Hook anzubinden und nicht gleich alle Signale?
Manche Signale wie Power währen trotzdem schon mindestens jede Minute mal interessant. Vielleicht ist das aber auch nur meine Vorliebe für Viele Diagramme mit guter Auflösung.

beSmart

Hallo,

ich habe eine Frage zu den Shelly´s plus 2pm. Habe davon 2 Stck. angeschlossen und möchte sie mit dem Modul Shelly nutzen (für Beleuchtung und ohne MQTT).

Die übliche Prozedur mit einbinden ins WLAN, Name, Update usw. habe ich gemacht. Das Ein- und Ausschalten per Schalter funktioniert.

Danach habe ich ein Gerät in Fhem angelegt. (define Li.Kueche.Deckenlampe Shelly 192.168.178.113) Habe erwartet, das ich jetzt ein Gerät mit zwei Kanälen habe. Dem war bei mir aber nicht so, also habe ich ein zweites Gerät mit der gleichen IP angelegt und jedem Gerät 1x das "attr defchannel 0" und dem anderen "attr defchannel 1" zugeordnet. Jetzt kann ich die Relais per Fhem schalten, allerdings werden beim Schalten von Kanal0 beide Relais ein- bzw. ausgeschaltet. Außerdem steht state immer auf OK, ich hätte gern ein Symbol bzw. den Status An/aus.

Wie muss ich die Geräte in Fhem anlegen? oder fehlen noch Attribute?


Hier noch ein List von den beiden Geräten.

Li.Kueche.Deckenlampe

Internals:
   CFGFN     
   DEF        192.168.178.113
   FUUID      66031a7c-f33f-2fb6-0d86-3fc9dfce40ba6bc9
   INTERVAL   60
   NAME       Li.Kueche.Deckenlampe
   NR         69301
   SHELLYID   shellyplus2pm-xxxxxxxxxxxxxxxx
   STATE      OK
   TCPIP      192.168.178.113
   TYPE       Shelly
   eventCount 2878
   units      0
   OLDREADINGS:
   READINGS:
     2024-03-26 19:58:52   cloud           disabled
     2024-03-26 19:59:25   config          successful
     2024-03-27 20:41:57   current_0       0.16
     2024-03-27 20:41:57   current_1       0.095
     2024-03-27 20:41:57   energy_0        607.219
     2024-03-27 20:41:57   energy_1        219.231
     2024-03-26 19:58:52   firmware        v1.2.2
     2024-03-27 20:05:51   frequency_0     50
     2024-03-27 20:05:51   frequency_1     50
     2024-03-27 20:24:51   input_0         off
     2024-03-26 19:58:52   input_0_mode    switch straight follow
     2024-03-27 18:36:51   input_1         off
     2024-03-26 19:58:52   input_1_mode    switch straight follow
     2024-03-27 20:41:57   inttemp         52.5
     2024-03-26 19:58:52   name            Shelly-Kueche
     2024-03-26 19:58:52   network         <html>connected to <a href="http://192.168.178.113">192.168.178.113</a> (Wifi)</html>
     2024-03-27 13:37:38   network_disconnects 2
     2024-03-27 20:32:51   network_rssi    -53
     2024-03-26 19:58:52   network_ssid    BRxxxxxxxx
     2024-03-26 19:58:52   network_threshold -80
     2024-03-27 13:39:06   overpower_0     0
     2024-03-27 13:39:06   overpower_1     0
     2024-03-27 20:41:57   pfactor_0       0.95
     2024-03-27 20:41:57   pfactor_1       0.67
     2024-03-27 20:41:57   power_0         35.8
     2024-03-27 20:41:57   power_1         14.9
     2024-03-26 19:57:55   protection_0    none
     2024-03-26 19:58:55   protection_1    none
     2024-03-27 20:40:56   relay_0         on
     2024-03-27 20:40:56   relay_1         on
     2024-03-27 20:40:56   source_0        http
     2024-03-27 20:40:56   source_1        http
     2024-03-27 20:41:57   state           OK
     2024-03-26 19:58:55   timer_0         -
     2024-03-26 19:58:55   timer_1         -
     2024-03-27 20:41:57   voltage_0       233.7
     2024-03-27 20:41:57   voltage_1       233.8
     2024-03-26 20:56:36   webhook_cnt     2
     2024-03-26 20:56:36   webhook_ver     8
   helper:
     Sets       config interval password reboot:noArg update:noArg name reset:disconnects,energy on off toggle on-for-timer off-for-timer ON:noArg OFF:noArg xtrachannels:noArg
   hmccu:
Attributes:
   alias      Licht Kueche Deckenlampe
   defchannel 1
   event-on-change-reading .*
   eventMap   ON:An OFF:Aus
   group      Lichtschalter
   mode       relay
   model      shellyplus2pm
   room       Küche,Licht
   userattr   LS.All LS.All_map Licht.All Licht.All_map structexclude


Li.Kueche.Wandlampe

Internals:
   CFGFN     
   DEF        192.168.178.113
   FUUID      66031a1b-f33f-2fb6-551f-f2b139ea2255cc8e
   INTERVAL   60
   NAME       Li.Kueche.Wandlampen
   NR         69292
   SHELLYID   shellyplus2pm-xxxxxxxxxx
   STATE      OK
   TCPIP      192.168.178.113
   TYPE       Shelly
   eventCount 2990
   units      0
   OLDREADINGS:
   READINGS:
     2024-03-26 19:58:47   cloud           disabled
     2024-03-27 20:42:59   current_0       0.159
     2024-03-27 20:42:59   current_1       0.096
     2024-03-27 20:42:59   energy_0        607.885
     2024-03-27 20:42:59   energy_1        219.503
     2024-03-26 19:58:47   firmware        v1.2.2
     2024-03-27 20:05:51   frequency_0     50
     2024-03-27 20:05:51   frequency_1     50
     2024-03-27 20:25:27   input_0         off
     2024-03-26 19:58:47   input_0_mode    switch straight follow
     2024-03-27 18:37:26   input_1         off
     2024-03-26 19:58:47   input_1_mode    switch straight follow
     2024-03-27 20:42:59   inttemp         53.4
     2024-03-26 19:58:47   name            Shelly-Kueche
     2024-03-26 19:58:47   network         <html>connected to <a href="http://192.168.178.113">192.168.178.113</a> (Wifi)</html>
     2024-03-27 13:38:14   network_disconnects 3
     2024-03-27 20:33:27   network_rssi    -53
     2024-03-26 19:58:47   network_ssid    BRxxxxxxxxx
     2024-03-26 20:01:04   network_threshold -80
     2024-03-27 13:38:21   overpower_0     0
     2024-03-27 13:38:21   overpower_1     0
     2024-03-27 20:42:59   pfactor_0       0.96
     2024-03-27 20:42:59   pfactor_1       0.66
     2024-03-27 20:42:59   power_0         35.5
     2024-03-27 20:40:58   power_1         14.9
     2024-03-26 19:56:28   protection_0    none
     2024-03-26 19:58:59   protection_1    none
     2024-03-27 20:24:59   relay_          off
     2024-03-27 20:40:58   relay_0         on
     2024-03-27 20:40:58   relay_1         on
     2024-03-27 20:40:58   source_0        http
     2024-03-27 20:40:58   source_1        http
     2024-03-27 20:42:59   state           OK
     2024-03-26 19:58:59   timer_0         -
     2024-03-26 19:58:59   timer_1         -
     2024-03-27 20:41:58   voltage_0       233.8
     2024-03-27 20:40:58   voltage_1       233.9
     2024-03-26 20:57:07   webhook_cnt     2
     2024-03-26 20:57:07   webhook_ver     8
   helper:
     Sets       config interval password reboot:noArg update:noArg name reset:disconnects,energy on off toggle on-for-timer off-for-timer ON:noArg OFF:noArg xtrachannels:noArg
   hmccu:
Attributes:
   alias      Licht Küche Wandlampen
   defchannel 0
   event-on-change-reading .*
   eventMap   on:An off:Aus
   group      Lichtschalter
   mode       relay
   model      shellyplus2pm
   room       Küche,Licht
   userattr   LS.All LS.All_map Licht.All Licht.All_map structexclude


Vielen Dank und Gruß


besmart

Starkstrombastler

Zitat von: Hadl am 27 März 2024, 20:03:20Dein Tip mit dem seperaten FHEMWEB Device, welches weder https, noch Passwort, noch CSFR hat heißt werde ich probieren.
Heißt das im Umkehrschluss das es mit alle dem garnicht möglich ist?
Der CSFR-Token muss halt bei jedem Neustart von FHEM aktualisiert werden. Das ist in der aktuellen Modulversion aber noch nicht so schön gelöst (zyklische Prüfung). Passwort sollte gehen, muss aber manuell eingetragen werden.
HTTPS derzeit vom Modul nicht unterstützt.

Zitat von: Hadl am 27 März 2024, 20:03:20Wenn ich die Actions manuell bearbeite, werden die dann nicht wieder von Fhem zyklisch überschrieben, oder muss ich dann die "Webhook" wieder ausschalten?
In der aktuellen Modulversion wird die Action gelöscht, wenn du das Attr webhook entfernst.
Das automatische Update der Webhooks beschränkt sich auf Portnummer und CSFR-Token und das auch nur, wenn der Name der Action mit _Unterstrich_ anfängt und aufhört.

Zitat von: Hadl am 27 März 2024, 20:03:20Was leider damit nicht klappt, ist das ich meinen Temperaturverlauf in höherer Messrate in Fhem sehe. Hier würden mir am Anfang wirklich 10 Sekunden etwas bringen um z.B. abschätzen zu können wielange die Pumpe laufen muss bis das ganze System gespült ist (Hab Vorlauf und 2 Rückläufe am Shelly gemessen)
Das ist davon abhängig, was der Shelly bereitstellt. Du kannst natürlich auch eine Action mit dem Sensorwert an FHEM adressieren. Sollte ohnehin automatisch angelegt worden sein. Du kannst auch mit set <name> interval 10 das Interval mit dem Einschalten der Pumpe verringern und dann wieder mit set <name> interval -1 auf den Originalwert zurückgehen.

Zitat von: Hadl am 27 März 2024, 20:03:20Soll ich dann analog zu den Switches auch die Temperaturen mit über den FHEMWEB HOOK laufen lassen?
Ja, sonst macht der HOOK keinen Sinn.

Zitat von: Hadl am 27 März 2024, 20:03:20Warum schlägst du nur vor, die beiden Switches per Hook anzubinden und nicht gleich alle Signale?
Wenn der Shelly via Action/Webhook einen Befehl an das Modul sendet (z.B. Ausgang ist EIN), wird dieser Befehl sofort verarbeitet und mit einer Sekunde Verzögerung eine Anfrage get <shelly> status gestartet. So werden alle Status-Werte*) abgeholt und die Power-Readings sind aktuell (der Shelly misst im Sekundentakt). Du kannst dann auch am Reading source erkennen, wodurch der Schaltvorgang ausgelöst wurde. Eine Action beispielsweise auf den Tastereingang am Shelly wird deswegen nicht benötigt und sollte im Sinne geringerer Systemlasten nicht aktiviert sein.
*) wieso die Temperatur nur alle 4 Minuten kommt muss ich mir anschauen.

Jetzt bin ich mal gespannt, wie gut das Ganze funzt.



IPC\Ubuntu + Fhem, 1wire, Shellies, Siemens Logo!, Z-Wave, PhilipsTV, Vu+duo2, KM200

Starkstrombastler

Zitat von: beSmart am 27 März 2024, 21:18:22Danach habe ich ein Gerät in Fhem angelegt. (define Li.Kueche.Deckenlampe Shelly 192.168.178.113) Habe erwartet, das ich jetzt ein Gerät mit zwei Kanälen habe. Dem war bei mir aber nicht so, also habe ich ein zweites Gerät mit der gleichen IP angelegt und jedem Gerät 1x das "attr defchannel 0" und dem anderen "attr defchannel 1" zugeordnet. Jetzt kann ich die Relais per Fhem schalten, allerdings werden beim Schalten von Kanal0 beide Relais ein- bzw. ausgeschaltet. Außerdem steht state immer auf OK, ich hätte gern ein Symbol bzw. den Status An/aus.
Du hast sehr wohl ein Gerät mit 2 Kanälen, nur eben nicht in der Übersichtsanzeige. Lass dir mit set <name> xtrachannels zwei Proxy-Devices anlegen. Dann hast du zusätzlich zwei getrennte Geräte. Und mit den Befehlen ON und OFF im Shelly-Device kannst du bequem beide Kanäle gleichzeitig schalten.

IPC\Ubuntu + Fhem, 1wire, Shellies, Siemens Logo!, Z-Wave, PhilipsTV, Vu+duo2, KM200

Prof. Dr. Peter Henning

@Hadl
ZitatHier würden mir am Anfang wirklich 10 Sekunden etwas bringen um z.B. abschätzen
Das ist ziemlich sinnlos, weil sich die Temperaturen auch bei einer Zirkulationsleitung nicht so schnell ändern.
ZitatManche Signale wie Power währen trotzdem schon mindestens jede Minute mal interessant. Vielleicht ist das aber auch nur meine Vorliebe für Viele Diagramme mit guter Auflösung.
Den Begriff "Signale" kennen wir in FHEM nicht. Es ist außerdem sonnenklar, dass eine Vielzahl von Shelly-Devices die FHEM-Hauptschleife ganz schön ausbremsen können - aus dem Grund schlägt Starkstrombastler ja vor, die Regelung der Zirkulationspumpe unabhängig von dieser Hauptschleife zu machen. Bei mir ist das seit inzwischen mehr als 10 Jahren durch ein drahtgebundenes System realisiert. Dessen Latenz und Belastung der FHEM-Hauptschleife sind so gering, dass die Regelung und Messung problemlos in FHEM gemacht werden können, siehe hier: https://wiki.fhem.de/wiki/1W-WPump.

@beSmart
ZitatHabe erwartet, das ich jetzt ein Gerät mit zwei Kanälen habe. Dem war bei mir aber nicht so, also habe ich ein zweites Gerät mit der gleichen IP angelegt und jedem Gerät 1x das "attr defchannel 0" und dem anderen "attr defchannel 1" zugeordnet.
Schwerer Fehler, man legt niemals verschiedene Devices an, die auf dieselbe IP-Adresse zugreifen. Und das mit den Kanälen steht seit Anbeginn in der CommandRef zum Modul.

LG

pah