Support-Thread Modul 36_Shelly.pm

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

Vorheriges Thema - Nächstes Thema

WhyTea

Vielen Danke für die ausführliche Antwort!

So wie ich das sehe ist dies hier die aktuelle Version, richtig?
Zitat von: Starkstrombastler am 06 Mai 2023, 12:11:42Die bisherigen Erkenntnisse aus den Tests von RalfRog sind in dieser neuen Fassung berücksichtigt:  Du darfst diesen Dateianhang nicht ansehen.

Für die Problematik der Autoerkennung ist das Logging etwas ausführlicher, die Diskussion dazu aber bitte im separaten Thread (s.o.) führen. 

Rückmeldungen wie immer gerne gesehen, da ich aber die nächsten Tage auf Reisen bin, muss ich entsprechend um etwas Geduld bitten.

Kann ich die nur hier im Forum laden oder liegt die auch irgendwo in einem Git oder ähnlichen, sodass ich sie direkt laden könnte?

Gruß
Daniel

Starkstrombastler

Zitat von: WhyTea am 22 Mai 2023, 12:35:42So wie ich das sehe ist dies hier die aktuelle Version, richtig?
Richtig, letzte Version ist vom  6. Mai. Und die gibt es auch nur hier im Forum.
IPC\Ubuntu + Fhem, 1wire, Shellies, Siemens Logo!, Z-Wave, PhilipsTV, Vu+duo2, KM200

WhyTea

Moin
Ich habe jetzt auf die Version vom 6.Mai umgestellt und einen Restart durchgeführt.

Verändert hat sich soweit nichts. Meine Shellys (1PM und Plugs) sind erreichbar und regieren.

Die Geräteerkennung hat scheinbar nicht funktioniert. :-/
2023.05.25 08:42:30 1: [Shelly_get_model] standard decoding: has invalid JSON data for device EG_WZ_Terrassenlicht
2023.05.25 08:42:30 1: [Shelly_get_model] relaxed decoding: has invalid JSON data for device EG_WZ_Terrassenlicht
2023.05.25 08:42:30 1: [Shelly_get_model] standard decoding: has invalid JSON data for device KG_BZ_Waschmaschine
2023.05.25 08:42:30 1: [Shelly_get_model] relaxed decoding: has invalid JSON data for device KG_BZ_Waschmaschine
2023.05.25 08:42:30 1: [Shelly_get_model] standard decoding: has invalid JSON data for device KG_BZ_Trockner
2023.05.25 08:42:30 1: [Shelly_get_model] relaxed decoding: has invalid JSON data for device KG_BZ_Trockner
2023.05.25 08:42:30 1: [Shelly_get_model] standard decoding: has invalid JSON data for device KG_BZ_Trockner
2023.05.25 08:42:30 1: [Shelly_get_model] relaxed decoding: has invalid JSON data for device KG_BZ_Trockner
2023.05.25 08:42:30 1: [Shelly_get_model] standard decoding: has invalid JSON data for device EG_WZ_shellyplugs
2023.05.25 08:42:30 1: [Shelly_get_model] relaxed decoding: has invalid JSON data for device EG_WZ_shellyplugs
2023.05.25 08:42:30 1: [Shelly_get_model] standard decoding: has invalid JSON data for device KG_GZ_shellyplugs
2023.05.25 08:42:30 1: [Shelly_get_model] relaxed decoding: has invalid JSON data for device KG_GZ_shellyplugs
2023.05.25 08:42:30 1: [Shelly_get_model] standard decoding: has invalid JSON data for device OG1_SZ_Steckdose
2023.05.25 08:42:30 1: [Shelly_get_model] relaxed decoding: has invalid JSON data for device OG1_SZ_Steckdose
2023.05.25 08:42:30 1: [Shelly_get_model] standard decoding: has invalid JSON data for device OG2_KZ_Klima_shelly1pm
2023.05.25 08:42:30 1: [Shelly_get_model] relaxed decoding: has invalid JSON data for device OG2_KZ_Klima_shelly1pm
2023.05.25 08:42:30 1: [Shelly_get_model] standard decoding: has invalid JSON data for device EG_WZ_shellyplugs
2023.05.25 08:42:30 1: [Shelly_get_model] relaxed decoding: has invalid JSON data for device EG_WZ_shellyplugs
2023.05.25 08:42:30 1: [Shelly_get_model] standard decoding: has invalid JSON data for device KG_GZ_shellyplugs
2023.05.25 08:42:30 1: [Shelly_get_model] relaxed decoding: has invalid JSON data for device KG_GZ_shellyplugs
2023.05.25 08:42:30 1: [Shelly_get_model] standard decoding: has invalid JSON data for device KG_TK_Serverschrank
2023.05.25 08:42:30 1: [Shelly_get_model] relaxed decoding: has invalid JSON data for device KG_TK_Serverschrank
2023.05.25 08:42:30 1: [Shelly_get_model] standard decoding: has invalid JSON data for device KG_TK_Serverschrank
2023.05.25 08:42:30 1: [Shelly_get_model] relaxed decoding: has invalid JSON data for device KG_TK_Serverschrank
2023.05.25 08:42:30 1: [Shelly_get_model] standard decoding: has invalid JSON data for device KG_BZ_Waschmaschine
2023.05.25 08:42:30 1: [Shelly_get_model] relaxed decoding: has invalid JSON data for device KG_BZ_Waschmaschine
2023.05.25 08:42:30 1: [Shelly_get_model] standard decoding: has invalid JSON data for device EG_WZ_Terrassenlicht
2023.05.25 08:42:30 1: [Shelly_get_model] relaxed decoding: has invalid JSON data for device EG_WZ_Terrassenlicht
2023.05.25 08:42:30 1: [Shelly_get_model] standard decoding: has invalid JSON data for device EG_Eingang_Steckdose
2023.05.25 08:42:30 1: [Shelly_get_model] relaxed decoding: has invalid JSON data for device EG_Eingang_Steckdose
2023.05.25 08:42:30 1: [Shelly_get_model] standard decoding: has invalid JSON data for device GA_Huette_shelly1pm
2023.05.25 08:42:30 1: [Shelly_get_model] relaxed decoding: has invalid JSON data for device GA_Huette_shelly1pm
2023.05.25 08:42:30 1: [Shelly_get_model] standard decoding: has invalid JSON data for device GA_Huette_shelly1pm
2023.05.25 08:42:30 1: [Shelly_get_model] relaxed decoding: has invalid JSON data for device GA_Huette_shelly1pm
2023.05.25 08:42:30 1: [Shelly_get_model] standard decoding: has invalid JSON data for device EG_Eingang_Steckdose
2023.05.25 08:42:30 1: [Shelly_get_model] relaxed decoding: has invalid JSON data for device EG_Eingang_Steckdose
2023.05.25 08:42:30 1: [Shelly_get_model] standard decoding: has invalid JSON data for device OG1_SZ_Klima_shellyplugs
2023.05.25 08:42:30 1: [Shelly_get_model] relaxed decoding: has invalid JSON data for device OG1_SZ_Klima_shellyplugs
2023.05.25 08:42:30 1: [Shelly_get_model] standard decoding: has invalid JSON data for device OG1_SZ_Klima_shellyplugs
2023.05.25 08:42:30 1: [Shelly_get_model] relaxed decoding: has invalid JSON data for device OG1_SZ_Klima_shellyplugs
2023.05.25 08:42:30 1: [Shelly_get_model] standard decoding: has invalid JSON data for device OG1_SZ_Steckdose
2023.05.25 08:42:30 1: [Shelly_get_model] relaxed decoding: has invalid JSON data for device OG1_SZ_Steckdose
2023.05.25 08:42:30 1: [Shelly_get_model] standard decoding: has invalid JSON data for device OG2_KZ_Klima_shelly1pm
2023.05.25 08:42:30 1: [Shelly_get_model] relaxed decoding: has invalid JSON data for device OG2_KZ_Klima_shelly1pm

Woran könnte das liegen?

Gruß
Daniel

Starkstrombastler

Zitat von: WhyTea am 25 Mai 2023, 09:24:40Die Geräteerkennung hat scheinbar nicht funktioniert.

Hallo WhyTea,
die Autoerkennug probiert den Shelly sowohl als Gen1 als auch als Gen2 anzusprechen. Damit wird also auch mindestens eine negative Antwort vom Shelly zurückgegeben.
Wie lautet die Antwort des Shelly auf folgende Anfrage (im Browser):
http://ip-des-Shelly/info
Außerdem bitte noch prüfen:
Wenn die Autoerkennung funktioniert wird eine Zeile der Art
[Shelly_get_model] discovered model=shelly1pm for device ....in das Logfile geschrieben und es wird ein Internal "SHELLY" angelegt, ist dies vorhanden?
IPC\Ubuntu + Fhem, 1wire, Shellies, Siemens Logo!, Z-Wave, PhilipsTV, Vu+duo2, KM200

WhyTea

Zitat von: Starkstrombastler am 25 Mai 2023, 14:23:20Hallo WhyTea,
die Autoerkennug probiert den Shelly sowohl als Gen1 als auch als Gen2 anzusprechen. Damit wird also auch mindestens eine negative Antwort vom Shelly zurückgegeben.
Das ist soweit nachvollziehbar aber ich habe hier halt immer zwei nagative wie du siehst.

Zitat von: Starkstrombastler am 25 Mai 2023, 14:23:20Wie lautet die Antwort des Shelly auf folgende Anfrage (im Browser):
http://ip-des-Shelly/info
Antwort ist eine weisse Webseite auf der nur "Not Found" steht.

Meinst Du vielleicht http://ip-des-shelly/status oder http://ip-des-shelly/shelly?
Da bekomme ich Antworten.

Zitat von: Starkstrombastler am 25 Mai 2023, 14:23:20Außerdem bitte noch prüfen:
Wenn die Autoerkennung funktioniert wird eine Zeile der Art
[Shelly_get_model] discovered model=shelly1pm for device ....in das Logfile geschrieben und es wird ein Internal "SHELLY" angelegt, ist dies vorhanden?

Solche Zeilen wurden nicht geloggt.
Ein Internal Shelly wurde ebenfalls nicht angelegt.

Gruß
Daniel

RalfRog

Hallo Starkstrombastler

Meinst du eventuell den Endpoint IP/shelly, den es bei Gen1 und Gen2 gibt und ebenfalls Auskunft über das Modell?

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

WhyTea

Es gibt ja auch die Möglichkeit die Shellys per MQTT abzufragen und zu steuern.

Kann mir jemand sagen wo die Vor- bzw. Nachteile der beiden Systeme sind?

Starkstrombastler

Das Shelly Modul ist von der Anwendung her einfacher als MQTT und eignet sich daher insbesondere für FHEM-Einsteiger. Die Anbindung via MQTT ist von Vorteil, wenn Aktualität der Statusmeldungen wichtig ist, da bei dem Shelly-Modul mit kurzen Polling-Intervallen die Systemlast steigt. Letzteres ist insbesonders bei sehr großen Installationen (mehrere Hundert Devices) von Bedeutung.

Bei Shellies der ersten Generation wird auch durch die Verwendung des Shelly-Monitors (siehe Commandref) eine hohe Aktualität erreicht. Allerdings ist die aktuell hier diskutierte Testversion des Shelly-Moduls noch nicht vollständig kompatibel zum Shelly-Monitor.
IPC\Ubuntu + Fhem, 1wire, Shellies, Siemens Logo!, Z-Wave, PhilipsTV, Vu+duo2, KM200

SmartHomeHeni

Zitat von: mkriegl am 11 Mai 2023, 17:10:01Ich biete mich auch gerne zum Testen an. Habe mir folgendes geholt:

Shelly Plus 2PM (Doppelsteckdose)
Shelly Plus 1PM (Steckdose)
Shelly Plus Plug S (einzelne Geräte)

am Wochenende sollen noch folgen:
Shelly Plus 2PM (Doppellichtschalter)
Shelly Plus 1PM (Einzellichtschalter)
Shelly Plus i4 (Szenenauswahl)

Gruß .. Max

Hey Max,

hast Du Deine SHELLY PLUS PLUG S schon eingebunden ??
Das hab ich leider nicht hingekriegt.

Der SHELLY PLUG S ist kein Problem: funzt supi. Aber für den SHELLY PLUS PLUG S gabs irgendwie nix.

Wenn ja, kannst Du mir ein Schritt für Schritt - Setup schicken ? Bin leider Laie und brauche es daher bissi ausführlicher  ;D

LG
Christian

RalfRog

Zitat von: SmartHomeHeni am 02 Juni 2023, 09:44:01...
hast Du Deine SHELLY PLUS PLUG S schon eingebunden ??
Das hab ich leider nicht hingekriegt.

Der SHELLY PLUG S ist kein Problem: funzt supi. Aber für den SHELLY PLUS PLUG S gabs irgendwie nix.
...

Welche Modulversion verwendest du denn? Die "offizielle" die es per Update gibt (von letztem Jahr? version = "4.01")

Versuch doch einfach mal hier die Testversion der "Entwicklung" (https://forum.fhem.de/index.php?msg=1274963).

Zitat von: Starkstrombastler am 22 Mai 2023, 17:51:36
Zitat von: WhyTea am 22 Mai 2023, 12:35:42So wie ich das sehe ist dies hier die aktuelle Version, richtig?
Richtig, letzte Version ist vom  6. Mai. Und die gibt es auch nur hier im Forum.
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

Loctite

Zitat von: WhyTea am 25 Mai 2023, 15:41:07Meinst Du vielleicht http://ip-des-shelly/status oder http://ip-des-shelly/shelly?
Da bekomme ich Antworten.


Nur als Info, weiß nicht ob das hier schon irgendwo steht:
Ein Shelly 1pm plus wird so abgefragt
http://<IP>/rpc/Shelly.GetStatus
Aktuell habe ich kein reading "energy" im Shelly 1pm plus.
Da wurde wohl die Schreibweise intern verändert.


Starkstrombastler

Hallo Loctite,
 
Zitat von: Loctite am 02 Juni 2023, 18:27:20Aktuell habe ich kein reading "energy" im Shelly 1pm plus.
Da wurde wohl die Schreibweise intern verändert.
bezieht sich diese Angabe auf
a) die Ausgabe des Shelly oder
b) auf das Shelly-Modul?

zu a) die Angabe findet sich hier unter "aenergy", wobei das "a" für "active" steht. Damit ist Active-Energy, also Wirkenergie, gemeint.
zu b) im Shelly-Modul lautet das reading unverändert "energy".
  Welche Modulversion?
  Wie lautet das Internal "SHELLY"?
  Wie lautet das Anttribut "model"?
IPC\Ubuntu + Fhem, 1wire, Shellies, Siemens Logo!, Z-Wave, PhilipsTV, Vu+duo2, KM200

Loctite

Zitat von: Starkstrombastler am 03 Juni 2023, 11:36:30Hallo Loctite,
 
  Welche Modulversion?
  Wie lautet das Internal "SHELLY"?
  Wie lautet das Anttribut "model"?

Version ist die letzte die über das FHEM Update verfügbar ist 4.01
Ich habe einen Beitrag gefunden der besagt, das man in der 36_Shelly.pm aus dem "energy" ein "aenergy" machen soll, dann würde es gehen (Zeile 14xx) muss ich nachschauen.

Das habe ich gemacht und hatte danach direkt das reading energy.
Modell wurde "shellyplus1pm" angegeben.

Was mit Internal "SHELLY" gemeint ist weiß ich nicht.

Starkstrombastler

Zitat von: Loctite am 03 Juni 2023, 22:50:59Version ist die letzte die über das FHEM Update verfügbar ist 4.01
Shellies der zweiten Generation (Plus- und Pro-Varianten) werden vom Modul im FHEM-Update (V. 4.01) nur rudimentär unterstützt. Abhilfe schafft die Weiterentwicklung des Moduls, welche sich derzeit noch im Teststadium befindet.
Die derzeit letzte Testversion kann hier heruntergeladen werden.
Der ShellyPlus1PM sollte unterstützt werden, allerdings liegen dazu noch keine Testergebnisse vor. Ich möchte dazu einladen dies zu testen. Allerdings, wie bei allen Entwicklungen, mit entsprechender Vorsicht (am besten auf einem Testsystem).

Zitat von: Loctite am 03 Juni 2023, 22:50:59Was mit Internal "SHELLY" gemeint ist weiß ich nicht.
Das Internal "SHELLY" gibt es in der Modulversion 4.01 noch nicht.
IPC\Ubuntu + Fhem, 1wire, Shellies, Siemens Logo!, Z-Wave, PhilipsTV, Vu+duo2, KM200

RalfRog

Hallo Starkstrombastler

Eine interesannte Ergänzung für die Shellies mit Relay wäre die Auswertung des SW-Eingangs.
Der "Button Type" kann mit "detach" zur unabhägigen Auswertung konfiguriert werden (0= offen, 1= geschlossen auf L(-) oder N(+)).

Als Beispiel in einem Shelly1 (1PM) -Gen1- kommt die Info im Status als Inputs mit
   "wifi_sta":{"connected":true,"ssid":"WLAN","ip":"11.12.13.19","rssi":-78},
   "cloud":{"enabled":false,"connected":false},
   "mqtt":{"connected":false},
   "time":"14:39",
   "unixtime":1685968799,
   "serial":14,
   "has_update":false,
   "mac":"1234567890AB",
   "cfg_changed_cnt":0,
   "actions_stats":{"skipped":0},
   "relays":[{"ison":false,"has_timer":false,"timer_started":0,"timer_duration":0,"timer_remaining":0,"source":"http"}],
   "meters":[{"power":0.00,"is_valid":true}],
"inputs":[{"input":1,"event":"","event_cnt":2}], 
   "ext_sensors":{},
   "ext_temperature":{},
   "ext_humidity":{},
   "update":{"status":"unknown","has_update":false,"new_version":"","old_version":"20230503-095514/v1.13.0-g9aed950"},
   "ram_total":51688,
   "ram_free":39860,
   "fs_size":233681,
   "fs_free":150851,
   "uptime":11983

Habe mir mal testhalber und recht unorthodox (mein Perl ist auch eher schlecht...) das Reading mit einer Zeile 1908 in den Code für das BulkUpdate gequetscht:
1896   #############################################################################################################################
1897   #-- 1st generation: we have a switch type device and 'relay'-mode, e.g. shelly1, shelly1pm, shelly4, shelly2, shelly2.5, shellyplug or shellyem
1898   if( $shelly_models{$model}[0]>0 && $mode ne "roller" ){
1899
1900     my $metern = ($model =~ /shelly.?em/)?"emeters":"meters";
1901
1902     for( my $i=0;$i<$channels;$i++){
1903       $subs = ($channels == 1) ? "" : "_".$i;
1904       $ison = $jhash->{'relays'}[$i]{'ison'};
1905       $ison =~ s/0|(false)/off/;
1906       $ison =~ s/1|(true)/on/;
1907       readingsBulkUpdateIfChanged($hash,"relay".$subs,$ison);
1908       readingsBulkUpdateIfChanged($hash,"input".$subs,$jhash->{'inputs'}[$i]{'input'});   #Ralf fuer Input

Ergebnis für Shelly1
input   1         2023-06-05 15:41:48
network connected to 11.12.13.19 2023-06-06 14:20:22
power   0         2023-06-05 15:38:08
relay   off       2023-06-05 15:40:47
state   off       2023-06-06 14:20:22


Gruß Ralf


P.S. Habe gvzdus mal wegen der Möglichkeiten im Monitor angetriggert.



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