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: cotecmania am 21 Dezember 2023, 10:49:55Wenn ich den Schalter nun öffne und wieder schliesse kommen die Events aber immer 4 mal zeitverzögert in FHEM an.
Diese Wiederholungen mit t=16sec hatten wir hier schon einmal.
Probier mal ohne XHR, also:
http://192.168.1.xxx:xxxx/fhem?cmd=set%20Shelly_Plus1_Holzgarage%20button_on%20100
IPC\Ubuntu + Fhem, 1wire, Shellies, Siemens Logo!, Z-Wave, PhilipsTV, Vu+duo2, KM200

cotecmania

Perfekt ! Das wars !
Hast Du mir 'nen Link zum Problem bzw. was macht das XHR=1 und warum kann ich es weglassen ?
In den Dokus war das ja immer mit drin.

Gruss und Danke
Joe
FHEM auf RaspberryPI B (buster)
2xCUL868 für MAX/Slow_RF, HM-LAN, JeeLink
MAX!/HM-Thermostate, FS20/HM-Rolladenschalter, FS20-EM, LevelJet-Ölstandsmessung, PCA301, IT, KM271, IPCAM, FireTAB10 FTUI

Fredi69

Ich habe mehrere Shelly1 Schalter mit anderen Komponenten in einer structure zusammengefasst. Diese schalte ich dann über set on bzw. set off.
Jetzt wollte ich der structure auch einen ShellyPlugS hinzufügen. Der schaltet aber über die structure nicht. Der ShellyPlugS bietet in der der ,,Set" Auswahl auch kein on bzw. off.
Ich hoffe ich habe mich verständlich ausgedrückt?
fhem auf Raspberry Pi 3
FRITZ!Box7490, Fritz!Box 3270 AP, 3xHMLAN, CUL868, nanoCUL 433 für IT, JeeLink für LaCrosse, HUE Bridge 2.0, Samsung UE46C8790 (STV), mehrere Homematic, Intertechno, Shelly und LaCrosse Komponenten

gvzdus

Den Spaß hatte ich heute auch beim Spielen mit einem Shelly 3gen 1PM mini.
Wie bist Du vorgegangen?
Ich war so vorgegangen:
1) define gen3 Shelly <ip>
2) attr gen3 model shellypro1pm
Dann war on / off etc. nicht im Set-Pulldown-Menü.

Save config & restart von FHEM: on / off da.
Wäre nett, wenn Du mal den Restart probieren könntest: Dann hättest Du meinen Fehler reproduziert.
Ursache wäre dann, dass nach einem Setzen des Models die verfügbaren Settings nicht aktualisiert werden.

Starkstrombastler

Zitat von: Fredi69 am 21 Dezember 2023, 21:28:51Der ShellyPlugS bietet in der der ,,Set" Auswahl auch kein on bzw. off.

Welches Model wurde denn beim Define vom Modul automatisch ermittelt?

Lässt sich das Device über die Befehlszeile on und off schalten?

Sind die Befehle toggle on/off-for-timer im Pulldown vorhanden?

Bitte den Vorgang mit verbose=4 loggen.

Wie ist denn das Ergebnis, wenn in der Fhem-Befehlszeile
set <device> ? eingegeben wird? Mit diesem Befehl fragt FHEMWEB beim Device nach um das Drop-Down entsprechend aufzubauen. Maßgeblich ist das, was nach "unknown ... choose one of" kommt.

Hilfreich ist auch ein Device-List via Copy for forum
IPC\Ubuntu + Fhem, 1wire, Shellies, Siemens Logo!, Z-Wave, PhilipsTV, Vu+duo2, KM200

gvzdus

Zitat von: Starkstrombastler am 21 Dezember 2023, 22:30:23Welches Model wurde denn beim Define vom Modul automatisch ermittelt?

Vorab: Update auf aktuelle Version, dann folgende Zeile reingepatcht:

root@sauerberry:/opt/fhem/FHEM# diff 36_Shelly.pm /tmp/
300a301
>     "S3SW-001P8EU"    => "shellyplus1pm", # Shelly 1PM Mini Gen3

Restart.
define gen3 Shelly 192.168.0.87
dann erkennt er korrekt "shellyplus1pm".

ZitatLässt sich das Device über die Befehlszeile on und off schalten?

Ja, und funktioniert auch.

ZitatSind die Befehle toggle on/off-for-timer im Pulldown vorhanden?

Nein. Aber nach einem "shutdown restart" ist alles da.

ZitatBitte den Vorgang mit verbose=4 loggen.

Weißt Du, wie ich bereits beim Define für ein "verbose=4" sorgen kann?
Danach ist mir klar...

ZitatWie ist denn das Ergebnis, wenn in der Fhem-Befehlszeile
set <device> ? eingegeben wird? Mit diesem Befehl fragt FHEMWEB beim Device nach um das Drop-Down entsprechend aufzubauen. Maßgeblich ist das, was nach "unknown ... choose one of" kommt.

Vor Reboot:
shellyplus1pm : unknown argument ? choose one of config interval password reboot update name
Nach Reboot komplett (mit on, off, u.s.w).

ZitatHilfreich ist auch ein Device-List via Copy for forum

Internals:
   CFGFN     
   DEF        192.168.0.87
   FUUID      6584b1e4-f33f-8d06-e736-4c5aa78441dece57
   INTERVAL   60
   NAME       gen3
   NR         520
   SHELLY     S3SW-001P8EU
   SHELLYID   shelly1pmminig3-84fce63b7ffc
   STATE      on
   TCPIP      192.168.0.87
   TYPE       Shelly
   eventCount 7
   units      0
   READINGS:
     2023-12-21 22:45:38   cloud           disabled
     2023-12-21 22:45:28   current         0
     2023-12-21 22:45:28   energy          0
     2023-12-21 22:45:38   firmware        v1.1.0
     2023-12-21 22:45:28   frequency       50
     2023-12-21 22:45:38   input           off
     2023-12-21 22:45:38   input_mode      switch straight follow
     2023-12-21 22:46:28   inttemp         61
     2023-12-21 22:45:38   network         <html>connected to <a href="http://192.168.0.87">192.168.0.87</a> (Wifi)</html>
     2023-12-21 22:45:38   network_rssi    -38
     2023-12-21 22:45:38   network_ssid    SBSTR10
     2023-12-21 22:45:38   network_threshold -80
     2023-12-21 22:45:28   power           0
     2023-12-21 22:45:28   protection      none
     2023-12-21 22:45:28   relay           on
     2023-12-21 22:45:28   source          http
     2023-12-21 22:45:28   state           on
     2023-12-21 22:46:28   voltage         234.1
     2023-12-21 22:45:20   webhook_cnt     0
     2023-12-21 22:45:20   webhook_ver     0
   helper:
     Sets       config interval password reboot:noArg update:noArg name
Attributes:
   model      shellyplus1pm

Starkstrombastler

Zitat von: gvzdus am 21 Dezember 2023, 22:48:41Vor Reboot:
Code Auswählen Erweitern
shellyplus1pm : unknown argument ? choose one of config interval password reboot update name
Nach Reboot komplett (mit on, off, u.s.w).
Mit dieser Analyse ist die Lage klar:

Die Anfrage set ... ? kommt in einigen (oder allen?) Installationen ziemlich oft - wir hatten das früher schon einmal hier im Forum diskutiert. Ich habe daher das zurückzuliefernde Ergenbnis in einem Helper zwischengespeichert, um hier etwas Systemlast zu reduzieren. Es kommt wohl bei einigen Usern vor, dass die Anfrage vor Abschluss der Initialisierung kommt und dann wird ein unvollständiges Setting ermittelt und gespeichert. Das ist mit dem nächsten Update gefixt.

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

Starkstrombastler

Schön, dass es jetzt funktioniert.
Die Frage
Zitat von: cotecmania am 21 Dezember 2023, 15:47:42was macht das XHR=1 und warum kann ich es weglassen ?
stelle ich mir auch, denn das war schon vor meinen Aktivitäten im Modul bzw. der Doku mit drin.

Dass es ohne XHR geht habe ich auch nur durch Probieren herausgefunden. Vielleicht gibt es aber Umgebungen wo diese Einstellung benötigt wird.

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

Fredi69

Zitat von: Starkstrombastler am 21 Dezember 2023, 22:30:23Welches Model wurde denn beim Define vom Modul automatisch ermittelt?
shellyplusplug

Zitat von: Starkstrombastler am 21 Dezember 2023, 22:30:23Lässt sich das Device über die Befehlszeile on und off schalten?
ja

Zitat von: Starkstrombastler am 21 Dezember 2023, 22:30:23Sind die Befehle toggle on/off-for-timer im Pulldown vorhanden?
nein

Zitat von: Starkstrombastler am 21 Dezember 2023, 22:30:23Bitte den Vorgang mit verbose=4 loggen.
Wie ist denn das Ergebnis, wenn in der Fhem-Befehlszeile
set <device> ? eingegeben wird? Mit diesem Befehl fragt FHEMWEB beim Device nach um das Drop-Down entsprechend aufzubauen. Maßgeblich ist das, was nach "unknown ... choose one of" kommt.
Hilfreich ist auch ein Device-List via Copy for forum
shellyplusplug : unknown argument ? choose one of config interval password reboot update name
fhem auf Raspberry Pi 3
FRITZ!Box7490, Fritz!Box 3270 AP, 3xHMLAN, CUL868, nanoCUL 433 für IT, JeeLink für LaCrosse, HUE Bridge 2.0, Samsung UE46C8790 (STV), mehrere Homematic, Intertechno, Shelly und LaCrosse Komponenten

Starkstrombastler

Zitat von: Fredi69 am 23 Dezember 2023, 13:55:10shellyplusplug : unknown argument ? choose one of config interval password reboot update name
die Angaben decken sich mit denen von gvzdus. Wenn du FHEM heute aktualisierst sollte das Problem behoben sein.
IPC\Ubuntu + Fhem, 1wire, Shellies, Siemens Logo!, Z-Wave, PhilipsTV, Vu+duo2, KM200

olwaldi

#745
Habe einige Fragen zu meinem neuen ShellyPlusPlugS zusammen mit dem aktuellsten (vom 23.12.23) Modul Shelly.

Erstmal vorab: Der ShellyPlug läßt sich prima benutzen aus fhem heraus - Ein/Ausschalten oder power & energy plotten.
define ShellyPlug Shelly 192.168.178.44
attr ShellyPlug event-on-change-reading .*
attr ShellyPlug group EG
attr ShellyPlug model shellyplusplug
attr ShellyPlug webCmd on:off
#   DEF        192.168.178.44
#   FUUID      6587d7d1-f33f-fc3a-8aef-562dc7211c8c3dad
#   INTERVAL   60
#   NAME       ShellyPlug
#   NR         96
#   SHELLYID   shellyplusplugs-e465b8b4a8f8
#   STATE      off
#   TCPIP      192.168.178.44
#   TYPE       Shelly
#   eventCount 46
#   units      0
#   READINGS:
#     2023-12-24 08:04:12   cloud           disabled
#     2023-12-24 19:36:12   current         0
#     2023-12-25 08:56:31   energy          7.124
#     2023-12-24 08:04:12   firmware        v1.1.0
#     2023-12-25 09:02:41   inttemp         35
#     2023-12-25 08:25:57   network         <html>connected to <a href="http://192.168.178.44">192.168.178.44</a> (Wifi)</html>
#     2023-12-25 08:22:55   network_disconnects 6
#     2023-12-25 09:02:40   network_rssi    -52
#     2023-12-24 08:04:12   network_ssid    Daheim24
#     2023-12-24 08:04:12   network_threshold -80
#     2023-12-24 08:07:21   overpower       0
#     2023-12-25 08:56:31   power           0
#     2023-12-24 08:04:04   protection      none
#     2023-12-25 08:56:31   relay           off
#     2023-12-25 08:26:20   source          http
#     2023-12-25 08:56:31   state           off
#     2023-12-24 08:07:21   timer           -
#     2023-12-25 08:56:31   voltage         0
#     2023-12-24 08:03:55   webhook_cnt     0
#     2023-12-24 08:03:55   webhook_ver     0
#   helper:
#     Sets       config interval password reboot:noArg update:noArg name on off toggle on-for-timer off-for-timer
#
setstate ShellyPlug off
setstate ShellyPlug 2023-12-24 08:04:12 cloud disabled
setstate ShellyPlug 2023-12-24 19:36:12 current 0
setstate ShellyPlug 2023-12-25 08:56:31 energy 7.124
setstate ShellyPlug 2023-12-24 08:04:12 firmware v1.1.0
setstate ShellyPlug 2023-12-25 09:02:41 inttemp 35
setstate ShellyPlug 2023-12-25 08:25:57 network <html>connected to <a href="http://192.168.178.44">192.168.178.44</a> (Wifi)</html>
setstate ShellyPlug 2023-12-25 08:22:55 network_disconnects 6
setstate ShellyPlug 2023-12-25 09:02:40 network_rssi -52
setstate ShellyPlug 2023-12-24 08:04:12 network_ssid Daheim24
setstate ShellyPlug 2023-12-24 08:04:12 network_threshold -80
setstate ShellyPlug 2023-12-24 08:07:21 overpower 0
setstate ShellyPlug 2023-12-25 08:56:31 power 0
setstate ShellyPlug 2023-12-24 08:04:04 protection none
setstate ShellyPlug 2023-12-25 08:56:31 relay off
setstate ShellyPlug 2023-12-25 08:26:20 source http
setstate ShellyPlug 2023-12-25 08:56:31 state off
setstate ShellyPlug 2023-12-24 08:07:21 timer -
setstate ShellyPlug 2023-12-25 08:56:31 voltage 0
setstate ShellyPlug 2023-12-24 08:03:55 webhook_cnt 0
setstate ShellyPlug 2023-12-24 08:03:55 webhook_ver 0

Nun zu meinen Fragen in aufsteigendem Schwierigkeitsgrad:-)

1. get ShellyPlug status oder shelly_status funktionieren beide nicht. version abfragen funktioniert.

2. energy akkumuliert die insgesamt verbraucht Energie (m.W. im Wmin). Aber wie kann man den Wert wieder auf 0 zurücksetzen?

3. Ich würde meinen ShellyPlug gern mit einem Paßwort sichern. Dazu kann man in der Shelly-WebGUI unter Settings->Device Settings->Authentication ein Paßwort vergeben, aber keinen Username. Wenn ich das tue, ist der Zugriff via URL wie erwartet mit diesem Paßwort geschützt. Im fhem-Modul kann ich durch
set ShellyPlug passwordauch ein Passwort setzen. Danach funktioniert der Zugriff aus fhem nicht mehr. Vielleicht, weil fhem einen Usernamen braucht?
attr ShellyPlug shellyuserAber wie lautet der shellyuser?

4. Der ShellyPlug hat auch einen Hardware-Schalter, mit dem man am Stecker das Relais aus/einschalten kann. Funktioniert prima. Aber dieses Schalten kommt nicht in fhem an. Hätte z.B. einen fhem-Event erwartet, sehe aber keinen. Oder noch besser, daß das on/off vom Hardware-Schalter sich direkt im fhem webcmd niederschlägt.
In der Doku vom Modul Shelly steht etwas in der Richtung oben in den Notes. Vermutlich sind da die Actions vom ShellyPlusPlugS gemeint. Aber wieso fragt der ShellyPlug den Status in fhem ab? Ich bräuchte eher die andere Richtung.

Alles keine Showstopper, aber nice-to-have.


Grüßle & - nicht zu vergessen - schöne Weihnachten,
Michael

gvzdus

#746
Moin, gerade einmal mit einem PlusPlugS durchgespielt. In *dieser* Reihenfolge:
attr <device> shellyuser admin
set <device> password <passwort>

Caveats:
Erst explizit shellyuser auf "admin" setzen, dann erst Passwort setzen

Energie zurücksetzen: Müsste per Device-Reboot klappen.

gvzdus

Moin, ich habe mich jetzt auch mal an das Modul rangetraut. Wenn ich einen ersten Stand habe, melde ich mich.
Hintergrund: Die "Auto-Detection" (Shelly_get_model) läuft weiterhin bei mir nicht so prall. Damit fange ich an. Zielsetzungen:
  • Wenn define mit laufendem FHEM erfolgt, Discovery sofort starten, ansonsten auf "global:INITIALIZED"-Event warten
  • Statt der spezifischen Gen1/Gen2-URLs immer mit der URL /shelly anfangen: Die ist beiden Generationen gemeinsam und funktioniert auch bei PW-geschützten Geräten
  • Weg von Timern, die asynchron und ggf. parallel Informationen fetchen, hin zu "Schritt für Schritt" so schnell wie möglich

Mittelfristiges Ziel: Websockets zu implementieren (das macht dann Webhooks überflüssig), um dann auch die Bluetooth-Gateway-Funktion zu unterstützen, damit die Shelly-BLU-Devices eingebunden werden können.

Starkstrombastler

Zitat von: olwaldi am 25 Dezember 2023, 09:19:21get ShellyPlug status oder shelly_status funktionieren beide nicht
Muss ich mir anschauen.
Zitat von: olwaldi am 25 Dezember 2023, 09:19:21energy akkumuliert die insgesamt verbraucht Energie (m.W. im Wmin)
Mit attr ... showunits ... kannst du die Readings formatieren.
Zitat von: olwaldi am 25 Dezember 2023, 09:19:21Aber wie kann man den Wert wieder auf 0 zurücksetzen?
Das geht derzeit nur so wie hier beschrieben.

Zitat von: olwaldi am 25 Dezember 2023, 09:19:21Der ShellyPlug hat auch einen Hardware-Schalter, mit dem man am Stecker das Relais aus/einschalten kann.
Es handelt sich hier um einen Taster, der immer nur kurz betätigt wird. Um den Taster im Device zu sehen, muss auf dem Shelly eine Action angelegt werden. Das geht manuell oder automatisiert mittels dem Attribut 'webhook'. Die URL muss z.B. so aussehen:
http://192.168.178.100:8083/fhem?cmd=set%20MyShelly%20button_on



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

loetmeister

Zitat von: gvzdus am 25 Dezember 2023, 10:05:27Moin, gerade einmal mit einem PlusPlugS durchgespielt. In *dieser* Reihenfolge:
attr <device> shellyuser admin
set <device> password <passwort>

Caveats:
Erst explizit shellyuser auf "admin" setzen, dann erst Passwort setzen

Ist das damit:
2158      if( $cmd eq "password" ){
2159        my $user = AttrVal($name, "shellyuser", 'admin');
2160        if(!$user && $shelly_models{$model}[4]==0 ){
https://svn.fhem.de/trac/browser/trunk/fhem/FHEM/36_Shelly.pm?rev=28277#L2158
nicht hinfällig? (shellyuser gilt nur 1st Gen)?

Mein PlusPlugS mit Passwort ist aber für FHEM nicht mehr erreichbar.. HTTP simple auth ist wohl nicht mehr möglich:
ZitatCommunication through HTTP and Websocket channels is secured by a digest authentication mechanism [...]
https://shelly-api-docs.shelly.cloud/gen2/General/Authentication/

Gruß,
Thomas