Entwicklungs-Thread Modul 36_Shelly.pm

Begonnen von Starkstrombastler, 24 Februar 2024, 12:15:05

Vorheriges Thema - Nächstes Thema

Starkstrombastler

Nach der Diskussion bezüglich des Verhaltens bei interval==0 hier die versprochene neue Testversion Du darfst diesen Dateianhang nicht ansehen. :

Folgendes Verhalten sollte jetzt sowohl bei aktivem Polling als auch bei deaktiviertem Polling (Intervall via attr oder set auf Null gesetzt) funktionieren:
Bei zeitbasierten Befehlen (on-for-timer, off-for-timer, dim-for-timer, blink, u.a.) holt sich FHEM den Status vom Shelly bei Beginn und nach Ende der Zeitperiode. Bei Dim-Befehlen entsprechend der im Shelly eingestellten Transition-Time zeitverzögert.

Ist das Polling-Interval kürzer als die geschaltete Zeitperiode, wird entsprechend  gepollt und das letzte Polling-Intervall ggf. passend gekürzt, so dass zeitnahe Werte geholt werden.

Wird der Shelly nur via FHEM geschaltet, sollte mit diesem Mechanismus ein langes Polling-Interval ausreichend sein.
IPC\Ubuntu + Fhem, 1wire, Shellies, Siemens Logo!, Z-Wave, PhilipsTV, Vu+duo2, KM200

Charity

Hallo Starkstrombastler,

danke für den Tipp mit der 36_Shelly.pm Testversion.
Damit hat es super geklappt den Shelly 2PM Gen3 einzubinden. Die Readings werde nun anngelegt.

Internals:
   .AttrList  model:generic,shellyplus2pm maxAge ShellyName mode:relay,roller interval timeout  defchannel pct100:open,closed maxtime_close maxtime_open showinputs:show,hide maxpower showunits:none,original,normal,normal2,ISO webhook:WEB,WEBhook verbose:0,1,2,3,4,5 event-aggregator event-min-interval event-on-change-reading event-on-update-reading oldreadings stateFormat:textField-long timestamp-on-change-reading
   CFGFN     
   DEF        192.168.0.120
   FUUID      6783b7f3-f33f-2728-a64d-6496c328f4dde8bc
   INTERVAL   60
   NAME       ShellySwitchKitchen
   NR         1069
   NTFY_ORDER 50-ShellySwitchKitchen
   SHELLYID   shelly2pmg3-8cbfeaa29a40
   STATE      OK
   TYPE       Shelly
   eventCount 12
   units      0
   .attraggr:
   .attrminint:
   OLDREADINGS:
   READINGS:
     2025-01-12 13:39:15   ap              disabled open
     2025-01-12 13:39:15   ap_clients      disabled
     2025-01-12 13:39:15   ap_name         Shelly2PMG3-8CBFEAA29A40
     2025-01-12 13:39:15   auto_off_0      disabled
     2025-01-12 13:39:15   auto_off_1      disabled
     2025-01-12 13:39:15   auto_on_0       disabled
     2025-01-12 13:39:15   auto_on_1       disabled
     2025-01-12 13:39:15   ble             disabled
     2025-01-12 13:39:15   ble_obs         -
     2025-01-12 13:39:15   ble_rpc         -
     2025-01-12 13:39:15   cloud           enabled(connected)
     2025-01-12 13:39:15   current_0       0
     2025-01-12 13:39:15   current_1       0
     2025-01-12 13:39:15   energy_0        277.954
     2025-01-12 13:39:15   energy_1        104.628
     2025-01-12 13:39:15   energy_purchased_0 277.954
     2025-01-12 13:39:15   energy_purchased_1 104.628
     2025-01-12 13:39:15   energy_returned_0 0
     2025-01-12 13:39:15   energy_returned_1 0
     2025-01-12 13:39:15   firmware_ID     20240731-123728/1.4.99-2pmg3prod0-ge3db05c
     2025-01-12 13:39:15   firmware_current v1.4.99-2pmg3prod0
     2025-01-12 13:40:15   firmware_updIcon OK
     2025-01-12 13:40:15   firmware_updText -/-
     2025-01-12 13:39:15   frequency_0     50
     2025-01-12 13:39:15   frequency_1     50
     2025-01-12 13:39:15   input_0         on
     2025-01-12 13:39:15   input_0_function flip
     2025-01-12 13:39:15   input_0_mode    switch straight enabled
     2025-01-12 13:39:15   input_1         on
     2025-01-12 13:39:15   input_1_mode    switch straight enabled
     2025-01-12 13:40:15   inttemp         45.4
     2025-01-12 13:39:15   mac             8C:BF:EA:A2:9A:40
     2025-01-12 13:39:15   model_ID        S3SW-002P16EU
     2025-01-12 13:39:15   model_family    Gen3
     2025-01-12 13:39:15   model_function  switch
     2025-01-12 13:39:15   model_name      Shelly 2PM Gen3
     2025-01-12 13:39:15   network         <html>connected to <a href="http://192.168.0.120">192.168.0.120</a> (Wifi)</html>
     2025-01-12 13:39:15   network_DNS     shelly2pmg3-8cbfeaa29a40.GT550BrainWorxs.net
     2025-01-12 13:39:15   network_connection online
     2025-01-12 13:39:15   network_ip-address 192.168.0.120
     2025-01-12 13:40:15   network_rssi    -55
     2025-01-12 13:39:15   network_ssid    GT550WLAN25
     2025-01-12 13:39:15   network_wifi_roaming -80
     2025-01-12 13:39:15   pfactor_0       0
     2025-01-12 13:39:15   pfactor_1       0
     2025-01-12 13:39:15   power_0         0
     2025-01-12 13:39:15   power_1         0
     2025-01-12 13:39:15   protection_0    none
     2025-01-12 13:39:15   protection_1    none
     2025-01-12 13:39:15   relay_0         off
     2025-01-12 13:39:15   relay_1         off
     2025-01-12 13:39:27   scripts         0
     2025-01-12 13:39:15   source_0        SHC
     2025-01-12 13:39:15   source_1        SHC
     2025-01-12 13:39:15   state           OK
     2025-01-12 13:40:15   uptime          172211
     2025-01-12 13:39:15   voltage_0       231.9
     2025-01-12 13:39:15   voltage_1       232
     2025-01-12 13:39:15   webhook_cnt     0 / 0 / 0
     2025-01-12 13:39:15   webhook_ver     0
   helper:
     Sets       config:ap_disable,ap_enable interval password reboot:noArg update:noArg name reset:noArg clear:disconnects,error,energy,responsetimes actions on off toggle on-for-timer off-for-timer ON:noArg OFF:noArg xtrachannels:noArg
     StatusCall 0
     range_extender disabled
     settings_time 1736685555.88638
     timer      0
Attributes:
   mode       relay
   model      shellyplus2pm
   room       Shelly

Leider werden die einzelnen Kanäle zum schalten nicht angelegt.
Die Energy und power Werte werden allerdings nur aktualisiert, wenn über den Ein/Aus ( da werden beide Kanäle eingeschalten ) in Fhem aktualisiert.
Sobald ich den Lichtschalter (Unterputz) oder die Shelly App oder Alexa zum schalten verwende, bekommt Fhem die Energywerte nicht mehr mit.
Mit der Testversion ist das leider auch mit den Shelly Plug S MTR passiert. Die zeigen jetzt auch keine Werte mehr an.

Ich hab mich auch schon mit dem Attribut "interval" gespielt. Das hilft leider nicht.
Gibt es da eine andere Lösung?

Starkstrombastler

Zitat von: Charity am 14 Januar 2025, 16:34:14Leider werden die einzelnen Kanäle zum schalten nicht angelegt.
Meinst du damit, dass
set ... readingsProxy nicht funktioniert?
Zitat von: Charity am 14 Januar 2025, 16:34:14Sobald ich den Lichtschalter (Unterputz) oder die Shelly App oder Alexa zum schalten verwende, bekommt Fhem die Energywerte nicht mehr mit.
Du hast keine Actions definiert. Du kannst die Actions automatisch anlegen lassen:
set ... actions create all
IPC\Ubuntu + Fhem, 1wire, Shellies, Siemens Logo!, Z-Wave, PhilipsTV, Vu+duo2, KM200

Starkstrombastler

Hier die überarbeitete Version 6.02 Beta3 des Moduls Du darfst diesen Dateianhang nicht ansehen. , welche zunächst zum Testen zur Verfügung gestellt wird.

Folgende Punkte sind darin gefixt bzw. ergänzt:
  • Energy-Readings beim ShellyPlusRGBWpm
  • Befehl set ... clear energy bei ShellyPMMini devices
  • Set-Befehle für ShellyProDual: Bei den Befehlen muss der Kanal (also 0 oder 1) als zusätzlicher Parameter mit übergeben werden    z.B. set myRollo pct 44 1
  • Set-Befehle für Zieltemperatur und Einstellungen beim ShellyWallDisplay
  • Das Attribut host_ip für Systeme, die  "hostname --all-ip-addresses" nicht unterstützen
IPC\Ubuntu + Fhem, 1wire, Shellies, Siemens Logo!, Z-Wave, PhilipsTV, Vu+duo2, KM200

Charity

Hi,
wollte mal kurz einen Status zur Beta 3 geben.

Mit dieser Version funktioniert nun ( zumindest in den ersten 10 min nach einspielen ) nun auch mein Shelly 2PM Gen3. Der bis dahin nicht mitbekommen hat, wenn er über einen anderen Weg - Alexa, Shelly App, eingeschalten wurde.
Alle Shelly liefern wieder einwandfrei Daten.

Danke

Mr. Flash

Hallo Starkstrombastler,

vielen Dank für Deine beta3, damit kommen von meinem Shelly Pro EM-50 endlich auch sinnvolle Werte für Power etc. an.

Eine Frage: welche Werte werden für den "state" verarbeitet?
Es sieht so aus, als würde hier sowohl der Status des Gerätes ("OK") als auch der Zustand des Relais ("on", "off") ausgegeben werden.
Ist das Relais aus, wechselt der "state" zwischen "OK" und "off", ist es an, zwischen "OK" und "on".
Eigentlich reicht es doch, wenn das Relais über das Reading "relay" seinen Zustand meldet.


2025-01-19_18:53:40 shellyproem50.01 OK
2025-01-19_18:54:07 shellyproem50.01 uptime: 7956635
2025-01-19_18:54:07 shellyproem50.01 off
2025-01-19_18:54:41 shellyproem50.01 Active_Power_A:   1.5
2025-01-19_18:54:41 shellyproem50.01 Voltage_A: 229.0
2025-01-19_18:54:41 shellyproem50.01 PowerReactive_A:  4.3
2025-01-19_18:54:41 shellyproem50.01 OK
2025-01-19_18:55:07 shellyproem50.01 uptime: 7956695
2025-01-19_18:55:07 shellyproem50.01 relay: on
2025-01-19_18:55:07 shellyproem50.01 source: WS_in
2025-01-19_18:55:07 shellyproem50.01 on
2025-01-19_18:55:41 shellyproem50.01 Active_Power_A:   1.3
2025-01-19_18:55:41 shellyproem50.01 Voltage_A: 228.4
2025-01-19_18:55:41 shellyproem50.01 PowerReactive_A:  4.4
2025-01-19_18:55:41 shellyproem50.01 OK
2025-01-19_18:56:07 shellyproem50.01 uptime: 7956755
2025-01-19_18:56:07 shellyproem50.01 relay: off
2025-01-19_18:56:07 shellyproem50.01 off
2025-01-19_18:56:07 shellyproem50.01 inttemp: 46.7
2025-01-19_18:56:41 shellyproem50.01 Active_Power_A:   1.0
2025-01-19_18:56:41 shellyproem50.01 Voltage_A: 228.0
2025-01-19_18:56:41 shellyproem50.01 PowerReactive_A:  4.5
2025-01-19_18:56:41 shellyproem50.01 OK
2025-01-19_18:57:07 shellyproem50.01 uptime: 7956815
2025-01-19_18:57:07 shellyproem50.01 off
2025-01-19_18:57:42 shellyproem50.01 Voltage_A: 226.7
2025-01-19_18:57:42 shellyproem50.01 OK
2025-01-19_18:58:08 shellyproem50.01 uptime: 7956875
2025-01-19_18:58:08 shellyproem50.01 off
2025-01-19_18:58:08 shellyproem50.01 inttemp: 46.6

Danke für Deine Arbeit!
RPi 4; Bullseye; FHEM 6.3; S.USV basic; BME280; TSL25911.
HM: CFG-LAN,CFG-USB-2,CC-RT-DN,Dis-(EP-)WM55,ES-PMSw1-Pl,ES-TX-WM,LC-Dim1T-FM,LC-Sw1-FM,LC-Sw2-FM,MOD-RPI-PCB,OU-CFM-Pl,RC-Dis-H-x-EU,SCI-3-FM,Sec-MDIR-2,-RHS,-SD,-SC-2,-SCo,-Sir-WM,-TiS,-WDS-2,TC-IT-WM-W-EU,WDS10-TH-O,WDS30-OT2-SM.
Shelly's.

Starkstrombastler

Zitat von: Mr. Flash am 20 Januar 2025, 20:39:51Ist das Relais aus, wechselt der "state" zwischen "OK" und "off", ist es an, zwischen "OK" und "on".
Vielen Dank für die Rückmeldung - das konnte ich selbst nicht bemerken, weil ich keinen ShellyEM50 zur Verfügung habe.
IPC\Ubuntu + Fhem, 1wire, Shellies, Siemens Logo!, Z-Wave, PhilipsTV, Vu+duo2, KM200

Mr. Flash

Hallo Starkstrombastler,

vielen Dank für die neue Version, jetzt liefern "state" und "relay" nur noch "on" oder "off".

Im Logfile ist mir nach einem Reboot eine Meldung aufgefallen:
2025.02.02 18:40:03 1: PERL WARNING: Use of uninitialized value $unit in concatenation (.) or string at ./FHEM/36_Shelly.pm line 5850.

Könntest Du das bitte bei Gelegenheit prüfen?
RPi 4; Bullseye; FHEM 6.3; S.USV basic; BME280; TSL25911.
HM: CFG-LAN,CFG-USB-2,CC-RT-DN,Dis-(EP-)WM55,ES-PMSw1-Pl,ES-TX-WM,LC-Dim1T-FM,LC-Sw1-FM,LC-Sw2-FM,MOD-RPI-PCB,OU-CFM-Pl,RC-Dis-H-x-EU,SCI-3-FM,Sec-MDIR-2,-RHS,-SD,-SC-2,-SCo,-Sir-WM,-TiS,-WDS-2,TC-IT-WM-W-EU,WDS10-TH-O,WDS30-OT2-SM.
Shelly's.

sfh

Hallo,

ich habe ein FHEM-Update durchgeführt und dabei wurde die 36_Shelly.pm auf die Version "6.02 27.01.2025" aktualisiert. Soweit so gut, alles funktioniert normal und zuverlässig wie zuvor. Allerdings sind mir bei zwei Shelly Plus2PM, die hier als Rollladen-Aktoren arbeiten, Auffälligkeiten im Geräte-Log aufgefallen. Hier werden 3 Einträge im Abstand vom eingestellten Intervall (in meinem Fall 900s) ständig wiederholt und das sieht dann so aus:

2025-02-02_21:09:34 Roll.Kueche output_mode: O1=up, O2=down
2025-02-02_21:09:34 Roll.Kueche input_1_function: downwards
2025-02-02_21:09:34 Roll.Kueche input_0_function: upwards
2025-02-02_21:09:33 Roll.Kueche inttemp: 36.8
2025-02-02_20:54:33 Roll.Kueche output_mode: O1=up, O2=down
2025-02-02_20:54:33 Roll.Kueche input_1_function: downwards
2025-02-02_20:54:33 Roll.Kueche input_0_function: upwards
2025-02-02_20:39:33 Roll.Kueche output_mode: O1=up, O2=down
2025-02-02_20:39:33 Roll.Kueche input_1_function: downwards
2025-02-02_20:39:33 Roll.Kueche input_0_function: upwards

Hier sind die wichtigsten Daten des Device:

model_ID SNSW-102P16EU
model_family Plus/Gen2
model_function switch    <-- müsste hier nicht cover stehen?

Bei Bedarf liefere ich ein komplettes Device-List nach. Das alles ist nicht weiter schlimm und kann mit niedriger Priorität bearbeitet werden :-) Vielen Dank.

Tueftler1983

Hallo ist der Shelle Plus RGBW PM schon eingebunden?? finde ihn nicht.
Oder bin ich nur blind?

Lg Holger

Starkstrombastler

Zitat von: sfh am 02 Februar 2025, 21:46:04Hier werden 3 Einträge im Abstand vom eingestellten Intervall (in meinem Fall 900s) ständig wiederhol
Diese Events sind natürlich überflüssig, wird im nächsten Update gefixt.

Zitat von: sfh am 02 Februar 2025, 21:46:04model_function switch    <-- müsste hier nicht cover stehen?
Im Reading "model_function" werden die 3. und 4. Stelle der Shelly model_ID (hier: SNSW-102P16EU) interpretiert:
      "BD" => "bulb"
     "CB" => "bulb"             # CB - color bulb
     "DC" => "LED driver"
     "DM" => "dimmer"
     "EM" => "energy meter"
     "IX" => "sensor"
     "PL" => "plug"
     "PM" => "power meter"
     "RG" => "LED controller"
     "SN" => "sensor"
     "SW" => "switch"
     "WD" => "wall display"
"switch" ist einfach nur von "SW" abgeleitet. Gibt es bessere Vorschläge?

Zitat von: Tueftler1983 am 03 Februar 2025, 13:08:40Hallo ist der Shelle Plus RGBW PM schon eingebunden?? finde ihn nicht.
Wenn du den ShellyPlusRGBWPM mit IP-Adresse oder DNS-Name definierst, sollte er automatisch identifiziert werden.
Es sind aber noch nicht alle Funktionen verfügbar.
IPC\Ubuntu + Fhem, 1wire, Shellies, Siemens Logo!, Z-Wave, PhilipsTV, Vu+duo2, KM200

sfh

Zitat von: Starkstrombastler am 03 Februar 2025, 21:41:46
Zitat von: sfh am 02 Februar 2025, 21:46:04Hier werden 3 Einträge im Abstand vom eingestellten Intervall (in meinem Fall 900s) ständig wiederhol
Diese Events sind natürlich überflüssig, wird im nächsten Update gefixt.
Vielen Dank.
Zitat von: Starkstrombastler am 03 Februar 2025, 21:41:46
Zitat von: sfh am 02 Februar 2025, 21:46:04model_function switch    <-- müsste hier nicht cover stehen?
Im Reading "model_function" werden die 3. und 4. Stelle der Shelly model_ID (hier: SNSW-102P16EU) interpretiert:
[...]
"switch" ist einfach nur von "SW" abgeleitet. Gibt es bessere Vorschläge?
Wenn man weiß, wo die Information herkommt, dann passt das so. Danke für die Aufklärung.

Tueftler1983

#117
ZitatWenn du den ShellyPlusRGBWPM mit IP-Adresse oder DNS-Name definierst, sollte er automatisch identifiziert werden.
Es sind aber noch nicht alle Funktionen verfügbar.

Leider nicht oder ich mache einen fehler?

Oder zählt das Einstellen der farbe zu den Sachen die noch nicht gehen oder das ändern der Helligkeit wenn eine Farbe eingestellt ist.
Selbst wenn ich einen defchannel einstelle kann ich die Helligkeit nicht ändern.

LG holger

JoWiemann

Hallo,

ich habe eine Bitte, wenn Shellies nicht erreichbar sind. Ich halte es nicht für sinnvoll das andauern ins Log zu schreiben. Ein entsprechender Hinweis in einem Internal Reading und ein Log Eintrag sollten doch reichen. Und bitte, ja ich könnte den verbose Level für ein solches Device auf 1 setzen, was aber andere wichtige Einträge blockieren würde.

Grüße und Danke

Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

Prof. Dr. Peter Henning

Zitat von: sfh am 03 Februar 2025, 22:18:16Wenn man weiß, wo die Information herkommt, dann passt das so
Ich denke, das "passt" auch, wenn man das nicht weiß...

pah