Support-Thread Modul 36_Shelly.pm

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

Vorheriges Thema - Nächstes Thema

JWRu

ZitatSollte das Problem weiterhin bestehen, müssen wir uns ein List des Devices und die Log-Daten für verbose=4 (oder 5) anschauen.

Ich habe jetzt folgendes gemacht: 'webhook' auf 'none' gesetzt, 'verbose' auf 5 gesetzt, dann 'webhook' auf 'WEB' gesetzt.

Ausschnitt aus dem Log zum Zeitpunkt der letzten Aktion:
2023.08.24 07:10:00 5: [Shelly_Attr] Shellyplus1PM01: called with command set for attribute webhook and value WEB
2023.08.24 07:10:00 3: [Shelly_Attr:webhook] Shellyplus1PM01 command is set, attribute webhook old: none  new: WEB
2023.08.24 07:10:00 3: [Shelly_Attr:webhook] the webhook attribute is now WEB, create webhooks
2023.08.24 07:10:00 3: [Shelly_Attr:webhook] we will call Shelly_webhook for device Shellyplus1PM01, command is Create
2023.08.24 07:10:00 5: [Shelly_Set] calling for device Shellyplus1PM01 with command ?, without value
2023.08.24 07:10:00 5: [Shelly_Set] calling for device Shellyplus1PM01 with command ?, without value
2023.08.24 07:10:00 5: [Shelly_Set] calling for device Shellyplus1PM01 with command ?, without value
2023.08.24 07:10:00 5: [Shelly_Set] calling for device Shellyplus1PM01 with command ?, without value
2023.08.24 07:10:00 4: [Shelly_Get] receiving command get Shellyplus1PM01 ?
2023.08.24 07:10:00 5: [Shelly_Get] Shellyplus1PM01: unknown argument ?, choose one of config model:noArg predefAttr:noArg registers:noArg shelly_status:noArg status:noArg version:noArg
2023.08.24 07:10:03 4: [Shelly_webhook] proceeding with command 'Create' for device Shellyplus1PM01
2023.08.24 07:10:03 4: [Shelly_webhook] device Shellyplus1PM01 was called with command=Create
2023.08.24 07:10:03 4: [Shelly_webhook] device Shellyplus1PM01 will be called by Webhook.
2023.08.24 07:10:03 4: [Shelly_webhook] Shellyplus1PM01: check number of components for component=
2023.08.24 07:10:03 4: [Shelly_webhook] Shellyplus1PM01: the number of '' is compCount=0
2023.08.24 07:10:03 4: [Shelly_webhook] Shellyplus1PM01: check number of components for component=input
2023.08.24 07:10:03 4: [Shelly_webhook] Shellyplus1PM01: the number of 'input' is compCount=1
2023.08.24 07:10:03 5: [Shelly_webhook] Shellyplus1PM01: evtsCnt=-1 <4>
2023.08.24 07:10:03 4: [Shelly_webhook] Shellyplus1PM01: check number of components for component=emeter
2023.08.24 07:10:03 4: [Shelly_webhook] Shellyplus1PM01: the number of 'emeter' is compCount=0

Hier ist ein List (etwas anonymisiert):
Internals:
   CMD        Create
   DEF        AAA.BBB.CCC.DDD
   FUUID      637f3434-f33f-c1fa-ac2b-9f48ad54be5a539b
   INTERVAL   600
   NAME       Shellyplus1PM01
   NR         448
   SHELLY     SNSW-001P16EU
   SHELLYID   shellyplus1pm-0cdc7ef76230
   STATE      off
   TCPIP      AAA.BBB.CCC.DDD
   TYPE       Shelly
   eventCount 75280
   units      0
   Helper:
     DBLOG:
       cloud:
         myDbLog:
           TIME       1692277004.3344
           VALUE      disabled
       config:
         myDbLog:
           TIME       1692797505.65621
           VALUE      register 'stage' not found or empty [channel e]
       current:
         myDbLog:
           TIME       1692836157.04214
           VALUE      0
       energy:
         myDbLog:
           TIME       1692844059.03877
           VALUE      79905.2
       energy_lastMinute:
         myDbLog:
           TIME       1692844059.03877
           VALUE      0.0
       firmware:
         myDbLog:
           TIME       1692284173.39467
           VALUE      v1.0.0
       input:
         myDbLog:
           TIME       1692839282.10977
           VALUE      unknown
       input_mode:
         myDbLog:
           TIME       1692839282.16926
           VALUE      button straight momentary
       inttemp:
         myDbLog:
           TIME       1692853690.0805
           VALUE      50.1
       network:
         myDbLog:
           TIME       1692839778.12175
           VALUE      <html>connected to <a href="http://AAA.BBB.CCC.DDD">AAA.BBB.CCC.DDD</a> (Wifi)</html>
       network_disconnects:
         myDbLog:
           TIME       1692839777.16035
           VALUE      8
       network_rssi:
         myDbLog:
           TIME       1692853739.11128
           VALUE      -66
       network_ssid:
         myDbLog:
           TIME       1692277004.44027
           VALUE      XXXXXXXXXXXXXXX
       power:
         myDbLog:
           TIME       1692844059.03877
           VALUE      0
       powerDamped:
         myDbLog:
           TIME       1692844059.03877
           VALUE      0
       protection:
         myDbLog:
           TIME       1692839240.04192
           VALUE      none
       reason:
         myDbLog:
           TIME       1692845242.04085
           VALUE      button
       relay:
         myDbLog:
           TIME       1692836162.03787
           VALUE      off
       state:
         myDbLog:
           TIME       1692839782.27964
           VALUE      off
       voltage:
         myDbLog:
           TIME       1692853736.04034
           VALUE      229.6
       webhook_cnt:
         myDbLog:
           TIME       1692839282.19987
           VALUE      0
       webhook_ver:
         myDbLog:
           TIME       1692839282.19987
           VALUE      0
   OLDREADINGS:
   READINGS:
     2023-08-17 14:56:44   cloud           disabled
     2023-08-23 15:31:45   config          register 'stage' not found or empty [channel e]
     2023-08-24 02:15:57   current         0
     2023-08-24 04:27:39   energy          79905.2
     2023-08-24 04:27:39   energy_lastMinute 0.0
     2023-08-17 16:56:13   firmware        v1.0.0
     2023-08-24 03:08:02   input           unknown
     2023-08-24 03:08:02   input_mode      button straight momentary
     2023-08-24 07:08:10   inttemp         50.1
     2023-08-24 03:16:18   network         <html>connected to <a href="http://AAA.BBB.CCC.DDD">AAA.BBB.CCC.DDD</a> (Wifi)</html>
     2023-08-24 03:16:17   network_disconnects 8
     2023-08-24 07:08:59   network_rssi    -66
     2023-08-17 14:56:44   network_ssid    XXXXXXXXXXXXXXX
     2023-08-24 04:27:39   power           0
     2023-08-24 04:27:39   powerDamped     0
     2023-08-24 03:07:20   protection      none
     2023-08-24 04:47:22   reason          button
     2023-08-24 02:16:02   relay           off
     2023-08-24 03:16:22   state           off
     2023-08-24 07:08:56   voltage         229.6
     2023-08-24 03:08:02   webhook_cnt     0
     2023-08-24 03:08:02   webhook_ver     0
   helper:
     a_Active_Power 0
     b_Active_Power 0
     c_Active_Power 0
     power      0
     powerCnt   1
Attributes:
   ShellyName Shellyplus1PM01
   alexaName  Kaffeemaschine
   alias      Kaffeemaschine
   cmdIcon    on:general_an@green off:general_aus@red
   devStateIcon on.*:general_an@green off.*:general_aus@red
   genericDeviceType switch
   icon       sonos_play1
   interval   600
   model      shellyplus1pm
   room       Küche,System->Alexa,System->Protokolle->Shelly
   stateFormat relay
   userReadings powerDamped:power.* { if ( ReadingsVal($name,"relay","off") eq "off" ) { return 0 }
else { sprintf( "%.0f", movingAverage("$name","power",600)) } }
   verbose    5
   webCmd     on:off
   webhook    WEB
ZBox; RasPi 3B; RasPi Zero W; Homematic; Z-Wave; EnOcean, Shelly; DuoFern; Oregon-Sensoren; TFA-Sensoren; Steuerung Viessmann-Heizung; Arduinos für Strom-, Wasser-, Gaszähler, Rauchmelder und FI-Schutzschalter

Starkstrombastler

#526
Die zuletzt berichteten Probleme werden mit diesem neuen Update behoben:

Zitat von: bene80 am 22 August 2023, 22:33:38Die Helligkeit für den Weißkanal wird auch direkt im Shelly Webinterface übernommen. Die Helligkeit der Farbkanäle ändert sich aber nicht. Das heißt auch, man muss die Helligkeit der Farbkanäle im Webinterface auf 100% stellen, sonst kann man aus FHEM heraus nicht mehr korrekt ansteuern, bzw gar nicht mehr die Frabkanäle einschalten wenn sie auf 0% gestellt ist.
Beim Setzten der Farbkanäle mit set name rgb .... bzw. set name rgbw .... wird die Verstärkung jetzt immer auf 100% gesetzt.
Außerdem wurde ein set-Befehl für die Verstärkung der Farbkanäle eingebaut: set name gain <0...100>. Damit sollte es auch möglich sein, durch zyklisches Setzen des Gain-Wertes eine einfache Dimmfunktion zu realisieren.

Zitat von: bene80 am 22 August 2023, 22:33:38Es gäbe ja die Transition time, die kann man aber mit dem shelly modul nicht ansprechen und sie geht leider auch nur bis 5s.
Das stimmt so nicht ganz. Mit set name config ... lassen sich im Prinzip alle Werte bei den Gen1-Geräten einstellen, z.B. so: set name config transition 1500.
Die zur Verfügung stehenden Register erhält man mit: get name register.
Einen bestimmten Wert erhält man mit: get name config <register>.  Das Ergebnis steht dann im Reading 'config'.

Auch die Webhooks für die ShellyPlus/Pro1-Geräte sollten jetzt funktionieren:
Zitat von: JWRu am 24 August 2023, 07:25:19
ZitatSollte das Problem weiterhin bestehen, müssen wir uns ein List des Devices und die Log-Daten für verbose=4 (oder 5) anschauen.

Viel Erfolg beim Testen!

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

JWRu

#527
Das ging aber fix - vielen Dank!
Ich werde es später mal testen.

Update:
ZitatAuch die Webhooks für die ShellyPlus/Pro1-Geräte sollten jetzt funktionieren:
Funktioniert!
ZBox; RasPi 3B; RasPi Zero W; Homematic; Z-Wave; EnOcean, Shelly; DuoFern; Oregon-Sensoren; TFA-Sensoren; Steuerung Viessmann-Heizung; Arduinos für Strom-, Wasser-, Gaszähler, Rauchmelder und FI-Schutzschalter

JWRu

Jetzt habe ich noch eine Frage:
Ich betreibe meine FHEMWEB-Instanz mit HTTPS - csrfToken ist nicht gesetzt.
Der Automatismus des Shelly-Moduls legt als URL der Action eine http-Adresse mit csrf-Token an.
Das führt in FHEM zu einer Fehlermeldung:
FHEMWEB SSL/HTTPS error:  SSL accept attempt failed error:1408F09C:SSL routines:ssl3_get_record:http requestSelbst wenn ich "http" in der Action-URL durch "https" ersetze, bleibt der Fehler bestehen.
Ist es sinnvoll, für die Shelly-Webhooks eine eigene FHEMWEB-Instanz mit HTTP und csrfToken anzulegen?
ZBox; RasPi 3B; RasPi Zero W; Homematic; Z-Wave; EnOcean, Shelly; DuoFern; Oregon-Sensoren; TFA-Sensoren; Steuerung Viessmann-Heizung; Arduinos für Strom-, Wasser-, Gaszähler, Rauchmelder und FI-Schutzschalter

MadMax-FHEM

#529
Zitat von: JWRu am 24 August 2023, 16:01:19Ich betreibe meine FHEMWEB-Instanz mit HTTPS - csrfToken ist nicht gesetzt.
Warum OHNE csrfToken!!?

Zitat von: JWRu am 24 August 2023, 16:01:19Ist es sinnvoll, für die Shelly-Webhooks eine eigene FHEMWEB-Instanz mit HTTP und csrfToken anzulegen?
Es ist NICHT sinvoll (und total unnötig) eine FhemWeb-Instanz OHNE csrfToken anzulegen!

Minimum sollte ein fixer Token sein.

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

JWRu

#530
Zitat von: MadMax-FHEM am 24 August 2023, 16:19:16
Zitat von: JWRu am 24 August 2023, 16:01:19Ich betreibe meine FHEMWEB-Instanz mit HTTPS - csrfToken ist nicht gesetzt.
Warum OHNE csrfToken!!?

Zitat von: JWRu am 24 August 2023, 16:01:19Ist es sinnvoll, für die Shelly-Webhooks eine eigene FHEMWEB-Instanz mit HTTP und csrfToken anzulegen?
Es ist NICHT sinvoll (und total unnötig) eine FhemWeb-Instanz OHNE csrfToken anzulegen!

Minimum sollte ein fixer Token sein.

Gruß, Joachim

Das ist ja nett, dass ich allgemeine Ratschläge zur Sicherheit von FHEM bekomme.
Leider ist es kein Beitrag zur Lösung meines Problems. Ich habe jetzt 'csrfToken' auf 'random' gesetzt und erhalte mit http und https haargenau die gleichen Fehlermeldung. (Die URLs habe ich natürlich neu anlegen lassen).

Und wenn man meinen Post genau liest, kann man verstehen, dass ich eine eigene FHEMWEB-Instanz mit http UND csrfToken vorgeschlagen habe.
ZBox; RasPi 3B; RasPi Zero W; Homematic; Z-Wave; EnOcean, Shelly; DuoFern; Oregon-Sensoren; TFA-Sensoren; Steuerung Viessmann-Heizung; Arduinos für Strom-, Wasser-, Gaszähler, Rauchmelder und FI-Schutzschalter

bene80

Tipptopp, das ging ja schnell, jetzt funktioniert alles. Jetzt muss ich nur mehr raus finden wie ich den Dimmer umsetze :-). Wäre schon gut wenn man sich ein bisschen besser auskennen würde.

ZitatDas stimmt so nicht ganz. Mit set name config ... lassen sich im Prinzip alle Werte bei den Gen1-Geräten einstellen, z.B. so: set name config transition 1500.

Super, das wusste ich nicht, dachte mir transition wurde mit get nicht angezeigt als ich da das letzte Mal danach gesucht habe. Das war aber noch mit der offiziellen Version

JWRu

#532
Zitat von: JWRu am 24 August 2023, 16:01:19Jetzt habe ich noch eine Frage:
Ich betreibe meine FHEMWEB-Instanz mit HTTPS - csrfToken ist nicht gesetzt.
Der Automatismus des Shelly-Moduls legt als URL der Action eine http-Adresse mit csrf-Token an.
Das führt in FHEM zu einer Fehlermeldung:
FHEMWEB SSL/HTTPS error:  SSL accept attempt failed error:1408F09C:SSL routines:ssl3_get_record:http requestSelbst wenn ich "http" in der Action-URL durch "https" ersetze, bleibt der Fehler bestehen.
Ist es sinnvoll, für die Shelly-Webhooks eine eigene FHEMWEB-Instanz mit HTTP und csrfToken anzulegen?

So, ich habe es jetzt hingekriegt, allerdings nur mit http - https hat nicht funktioniert.
Ich hatte sowieso eine FHEMWEB api Instanz mit http und einer anderen Portnummer - darüber funktioniert es.
Habe mich auch nochmal zum Thema csrfToken schlau gemacht: Ich hatte das Attribut in FHEMWEB nicht explizit gesetzt - das bedeutet aber laut Commandref, dass es auf 'random'steht.
ZitatDefault ist random für featurelevel 5.8 und größer..
Ich habe die mit dem Attribut 'webhook' automatisiert erstellte Action auch verändert. Habe nicht verstanden, was z.B. 'set ... out_on 0' machen soll.
Ich stelle 'interval' runter, sobald der Shelly eingeschaltet wird (_SWITCH.ON_), um in kurzen Zeitabständen 'power'-Readings zu erhalten.
http://<FHEM-IP>:<PORT>/fhem?XHR=1&fwcsrf=<csrf-Token>cmd=attr%20-silent%20<Devicename>%20interval%2010Beim Ausschalten (_SWITCH.OFF_) stelle ich 'interval' wieder hoch.
Jetzt bin ich mal gespannt, ob das Shelly-Modul beim Neustart von FHEM in den veränderten Actions gezielt nur das csrf-Token austauscht.

ZBox; RasPi 3B; RasPi Zero W; Homematic; Z-Wave; EnOcean, Shelly; DuoFern; Oregon-Sensoren; TFA-Sensoren; Steuerung Viessmann-Heizung; Arduinos für Strom-, Wasser-, Gaszähler, Rauchmelder und FI-Schutzschalter

Starkstrombastler

Hallo JWRu,
das ist aber eine schöne Anwendung der Shelly-Actions.
Mit dem nächsten Modul-Update wird es einen Set-Befehl zum Ändern des Intervalls geben, so dass das Intervall-Attribut bei einer derartigen Anwendung unverändert bleiben kann.
Zitat von: JWRu am 25 August 2023, 19:43:02Habe nicht verstanden, was z.B. 'set ... out_on 0' machen soll.
Mit diesem Befehl wird dem Modul mitgeteilt, dass der erste Ausgang (channel=0) des Shelly eingeschaltet wurde, z.B. durch einen angeschlossenen Schalter oder durch einen Shelly-internen Timer. Das Modul setzt die Readings und löst Events aus, ohne dass abgewartet werden muss, bis die nächste zyklische Abfrage gem. Intervall durchgeführt wird. Mit einem Notify kann man dann darauf reagieren.

Vielleicht kann einer der Mitleser hier etwas zur HTTPS-Thematik beitragen, das würde ich dann noch im Modul berücksichtigen.
IPC\Ubuntu + Fhem, 1wire, Shellies, Siemens Logo!, Z-Wave, PhilipsTV, Vu+duo2, KM200

bene80

Hallo, kennt das Modul einen shelly motion2 bzw. kann dessen Werte auslesen?

alf.ele

Hallo zusammen,

ich habe seit heute einen Shelly Pro1 im Einsatz.
Dieser hat 2 SW Eingänge.

Ich habe dazu folgenden Änderungsvorschlag:
Alt:
    "shellypro1"    => [1,0,0, 0,1,1],
Neu
    "shellypro1"    => [1,0,0, 0,1,2],

funktioniert soweit

Schöne Grüße

Starkstrombastler

Zitat von: alf.ele am 31 August 2023, 17:11:32ich habe seit heute einen Shelly Pro1 im Einsatz.
Dieser hat 2 SW Eingänge.
Danke für den Hinweis - und das Testen vorab.
Änderung ist im nächsten Update mit drin.
IPC\Ubuntu + Fhem, 1wire, Shellies, Siemens Logo!, Z-Wave, PhilipsTV, Vu+duo2, KM200

Starkstrombastler

Zitat von: bene80 am 31 August 2023, 16:08:26Hallo, kennt das Modul einen shelly motion2 bzw. kann dessen Werte auslesen?
Batteriebetriebene Shellies werden vom Modul zwar erkannt, aber mit model generic angelegt. Es werden keine spezifischen Readings angelegt.
Diese Shellies können jedoch via Colo-T-Protokoll mit dem Modul ShellyMonitor ausgelesen werden (nur Gen1).
IPC\Ubuntu + Fhem, 1wire, Shellies, Siemens Logo!, Z-Wave, PhilipsTV, Vu+duo2, KM200

RalfRog

Zitat von: Starkstrombastler am 31 August 2023, 21:12:40via Colo-T-Protokoll mit dem Modul ShellyMonitor ausgelesen werden (nur Gen1).

Hatte ich das schon mal gefragt.... weiss nicht mehr.

Inwieweit vertragen sich das aktuelle Modul und der Shelly Monitor (klar für Gen1) noch? Die Namen der Readings müssen ja passen und auch sonst muss ja einiges zusammen spielen. Aktiv läuft bei mir noch das alte Modul und Deines ist z.Zt. auf dem Testsystem.

Gruß Ralf
FHEM auf Raspi 2B mit nanoCUL, HM-MOD-RPI-PCB und über LAN MAX!Cube mit a-culFW (Stack 868 + 433)
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder

Starkstrombastler

Zitat von: RalfRog am 31 August 2023, 21:35:12Inwieweit vertragen sich das aktuelle Modul und der Shelly Monitor (klar für Gen1) noch?
Das kann ich nicht so genau sagen. Kompatibilität mit dem ShellyMonitor habe ich nicht getestet, es könnte schon sein, dass sich irgendwo der Name eines Readings geändert hat.

Auch wenn das Attribut model automatisch gesetz wird, bleibt immer noch die Möglichkeit das Attribut model auf generic zu ändern. Dann werden die Readings nur vom ShellyMonitor gesetzt.
Auf der anderen Seite können im ShellyMonitor Devices mit dem Attribut ignoreDevices ausgeblendet werden. Dann schreibt nur das ShellyModul.

Seit der Weiterentwicklung des Moduls gab es hier in diesem Thread so gut wie keine Diskussion dazu. Hinweise und Anregungen sind aber wie immer gerne gesehen.
IPC\Ubuntu + Fhem, 1wire, Shellies, Siemens Logo!, Z-Wave, PhilipsTV, Vu+duo2, KM200