Support-Thread Modul 36_Shelly.pm

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

Vorheriges Thema - Nächstes Thema

regii

#165
Habe gerade mal deine Version mit einem Shelly 1 Plus PM in Betrieb genommen. Sieht erstmal gut aus.
Allerdings geht jetzt mein 2.5er nicht mehr:
2022.06.13 10:39:19.039 1: PERL WARNING: Use of uninitialized value $channel in concatenation (.) or string at ./FHEM/36_Shelly.pm line 629.
2022.06.13 10:39:19.040 1: [Shelly_Set] Error: wrong channel  given and defchannel attribute not set properly for device Rollo1.Shelly

attr Rollo1.Shelly mode roller
attr Rollo1.Shelly model shelly2.5

Prof. Dr. Peter Henning

Seh ich mir an, sollte einfach zu beheben sein.

LG

pah

XBuschman

Hallo,
ich bin auch Besitzer eines shellyplus2pm. Daher habe ich mir das Shelly Module aus Antwort #163 runtergeladen.
Aus einen mit unerfindlichen Grund tut sich aber beim Absetzen des set Befehls rein gar nichts

set ShellyJanRollade open

Setze ich im Browser einen HTTP Befehl ab, reagiert der Rolladen.
http://192.168.178.67/roller/0?go=open

Das List sieht wie folgt aus:

Internals:
   CFGFN      ./rolladen.cfg
   DEF        192.168.178.67
   DURATION   0
   FUUID      62a5e548-f33f-144e-411a-c69c4bc12876ddcc
   INTERVAL   60
   NAME       ShellyJanRollade
   NR         408
   STATE      OK
   TCPIP      192.168.178.67
   TYPE       Shelly
   eventCount 5
   READINGS:
     2022-06-13 18:27:15   network         <html>connected to <a href="http://192.168.178.67">192.168.178.67</a></html>
     2022-06-13 18:27:19   state           OK
Attributes:
   mode       roller
   model      shellyplus2pm
   room       Rolladen
   verbose    5


Die Ausgabe im Log File ist trotz verbose 5 recht sperrlich.

2022-06-13_18:36:19 ShellyJanRollade OK
2022-06-13_18:36:20 ShellyJanRollade OK
2022-06-13_18:37:20 ShellyJanRollade OK
...


Jemand eine Idee. Ist bestimmt etwas total dämliches, bei dem alle mit dem Kopf schütteln.  ::)

Danke und Gruß,
Rainer


regii

#168
Zitat von: Prof. Dr. Peter Henning am 13 Juni 2022, 13:46:27
Seh ich mir an, sollte einfach zu beheben sein.

LG

pah

Habe gerade mal selbst reingeschaut :-)
Die Regexp in Zeile 587 funktioniert für den Shelly2.5 im Roller Mode nicht richtig, so dass der Code Teil betreten wird

  if( ($model =~ /shelly(plus)?\d.*/) || ($model eq "shellyuni") || ($model =~ /shelly(pro)?\d(pm)?/) || ($model eq "shellyplug") || (($model =~ /shelly2.*/) && ($mode eq "relay")) ){
   

moonsorrox

Zitat von: XBuschman am 13 Juni 2022, 18:44:21
Hallo,
ich bin auch Besitzer eines shellyplus2pm. Daher habe ich mir das Shelly Module aus Antwort #163 runtergeladen.
Aus einen mit unerfindlichen Grund tut sich aber beim Absetzen des set Befehls rein gar nichts

set ShellyJanRollade open

Setze ich im Browser einen HTTP Befehl ab, reagiert der Rolladen.
http://192.168.178.67/roller/0?go=open

Das List sieht wie folgt aus:

Internals:
   CFGFN      ./rolladen.cfg
   DEF        192.168.178.67
   DURATION   0
   FUUID      62a5e548-f33f-144e-411a-c69c4bc12876ddcc
   INTERVAL   60
   NAME       ShellyJanRollade
   NR         408
   STATE      OK
   TCPIP      192.168.178.67
   TYPE       Shelly
   eventCount 5
   READINGS:
     2022-06-13 18:27:15   network         <html>connected to <a href="http://192.168.178.67">192.168.178.67</a></html>
     2022-06-13 18:27:19   state           OK
Attributes:
   mode       roller
   model      shellyplus2pm
   room       Rolladen
   verbose    5


Die Ausgabe im Log File ist trotz verbose 5 recht sperrlich.

2022-06-13_18:36:19 ShellyJanRollade OK
2022-06-13_18:36:20 ShellyJanRollade OK
2022-06-13_18:37:20 ShellyJanRollade OK
...


Jemand eine Idee. Ist bestimmt etwas total dämliches, bei dem alle mit dem Kopf schütteln.  ::)

Danke und Gruß,
Rainer

Der Rollermode ist noch nicht integriert, dass wollte Pah erst die Tage machen wenn Zeit ist.
Also etwas Geduld
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

Prof. Dr. Peter Henning

#170
Sicher, dass das Ding ein Shelly2.5PM ist ? Der Shelly2.5 hat schon Leistungsmessung gehabt - und ein Modell Shelly2.5PM gibt es im API gar nicht.

Sollte also einfach Shelly2.5 draufstehen. Anbei eine Version, die das o.a. Problem vermeidet

LG

pah

@XBushman: Rollladen, mit 3 "l". Auch wenn die Google Spracherkennung das noch nicht kapiert.


regii

Ja sorry, ist natürlich ein Shelly2.5.
Die Anpassung funktioniert leider nicht, es kommt immer noch die gleiche Fehlermeldung.
2022.06.14 14:15:40.440 1: PERL WARNING: Use of uninitialized value $channel in concatenation (.) or string at ./FHEM/36_Shelly.pm line 629.
2022.06.14 14:15:40.441 1: [Shelly_Set] Error: wrong channel  given and defchannel attribute not set properly for device Rollo1.Shelly


   

Nobbynews

#172
Hallo pah,

ich habe hier neu einen Shellydimmer 2 mit der Firmware 1.11.7.
mit der Modulversion
36_Shelly.pm 26017 2022-05-02 07:04:23Z phenning

Das List:
Internals:
   CFGFN     
   DEF        192.168.2.67
   DURATION   0
   FUUID      62a885e1-f33f-8873-3068-553f2f7de1c4ae48
   INTERVAL   30
   NAME       dimmerTest
   NR         740248
   SHELLYID   shellydimmer2-C45BBE576AB9
   STATE      off
   TCPIP      192.168.2.67
   TYPE       Shelly
   READINGS:
     2022-06-14 14:58:09   cloud           disabled
     2022-06-14 14:59:14   energy          0.1
     2022-06-14 14:58:09   firmware        v1.11.7
     2022-06-14 14:58:09   network         <html>connected to <a href="http://192.168.2.67">192.168.2.67</a></html>
     2022-06-14 15:24:52   pct             4
     2022-06-14 14:59:14   power           0
     2022-06-14 15:22:52   state           off
Attributes:
   interval   30
   model      shellydimmer
   room       Shelly


Damit bekomme ich im Log folgendes Warning:
022.06.14 15:10:33 1: PERL WARNING: Use of uninitialized value $value in string eq at fhem.pl line 4979.
2022.06.14 15:10:33 1: stacktrace:
2022.06.14 15:10:33 1:     main::__ANON__                      called by fhem.pl (4979)
2022.06.14 15:10:33 1:     main::readingsBulkUpdateIfChanged   called by ./FHEM/36_Shelly.pm (1236)
2022.06.14 15:10:33 1:     main::Shelly_proc1G                 called by ./FHEM/36_Shelly.pm (1058)
2022.06.14 15:10:33 1:     main::Shelly_status                 called by ./FHEM/36_Shelly.pm (1045)
2022.06.14 15:10:33 1:     main::__ANON__                      called by FHEM/HttpUtils.pm (720)
2022.06.14 15:10:33 1:     main::__ANON__                      called by fhem.pl (778)


Das dürfte daran liegen, dass es in der Firmware kein Overpower gibt.
Ich habe im Modul die Zeile 1236
     readingsBulkUpdateIfChanged($hash,"overpower".$subs,$overpower) 
ergänzt zu
     readingsBulkUpdateIfChanged($hash,"overpower".$subs,$overpower)
       if($overpower);

Damit ist die Fehlermeldung weg.

Norbert

Edit:
Es gibt noch ein weiteres Warning bei
get <device> registers

2022.06.14 15:45:23 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/36_Shelly.pm line 466.
2022.06.14 15:45:23 1: stacktrace:
2022.06.14 15:45:23 1:     main::__ANON__                      called by ./FHEM/36_Shelly.pm (466)
2022.06.14 15:45:23 1:     main::Shelly_Get                    called by fhem.pl (3948)
2022.06.14 15:45:23 1:     main::CallFn                        called by fhem.pl (2021)
2022.06.14 15:45:23 1:     main::CommandGet                    called by fhem.pl (1273)
2022.06.14 15:45:23 1:     main::AnalyzeCommand                called by ./FHEM/01_FHEMWEB.pm (2802)
2022.06.14 15:45:23 1:     main::FW_fC                         called by ./FHEM/01_FHEMWEB.pm (982)
2022.06.14 15:45:23 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (608)
2022.06.14 15:45:23 1:     main::FW_Read                       called by fhem.pl (3948)
2022.06.14 15:45:23 1:     main::CallFn                        called by fhem.pl (781)


Als Ausgabe erfolgt:
Set/Get these registers by calling set/get dimmerTest config  <registername> <value> [<channel>]

Prof. Dr. Peter Henning

#173
Nächster Versuch ...

LG

pah

regii

Vielen Dank!
jetzt passt es für den Shelly 2.5 im Roller Mode und auch der Shelly Plus 1 PM schaltet noch richtig.

Prof. Dr. Peter Henning

Na, dann kann ich das ja offiziell freigeben ;-)

Btw: Ich habe etliche Shelly 2.5 kostengünstig abzugeben. Da die bei mir zu viert in gut isolierten Dosen verbaut waren, sind sie zu warm geworden. Das war mir auf Dauer zu riskant.

LG

pah

moonsorrox

Ist der Rollermode jetzt mit drin.?
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

Prof. Dr. Peter Henning

Für die 2er und 2.5er (=1st Generation) war er das schon vor mehr als einem Jahr. Noch nicht drin lediglich für Shelly Plus 2PM und Shelly Pro 2PM (=2nd Generation), weil das dort ziemlich anders funktioniert.

LG

pah

moonsorrox

Danke für die Rückmeldung, dann warte ich noch geduldig  ;)

Geht ja erstmal mit dem DOIF, kann nur eben nicht öffnen nach Prozenten was ich bei einer bestimmten Temperatur immer gemacht habe, oder besser es funktionierte automatisch.
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

Lars

Hallo pah,

ich habe ein ziemlich merkwürdiges Verhalten mit meinem Pro 4 PM. Der Aktor war eine Woche lang ohne FHEM Anbindung im Einsatz, ohne Probleme. Nun habe ich ihn seit gestern über FHEM eingebunden und die folgende reproduzierbare Situation. Sobald ich mit FHEM die Devices (in meinem Fall vier) verbinde, friert der Pro 4 PM nach einer kurzen Zeit ein. Über die Taster ist das Gerät dann nicht mehr zu bedienen, er antwortet nicht mehr auf Pings und in FHEM geht das Device in ERROR. Über das Webinterface des Shellys ist er etbenfalls nicht erreichbar.

Logs:
[Shelly_configure] invalid JSON data for device abc
[Shelly_proc2G] device abc has error read from http://10.1.4.12:80 timed out
[Shelly_proc2G] device bca has error read from http://10.1.4.12:80 timed out

Anschließend ist das Gerät mal erreichbar (PING, Webfrontend, FHEM), die meiste Zeit antwortet es jedoch nicht. Das Problem besteht über LAN und WLAN und tritt sowohl bei der derzeit eingecheckten Modulversion als auch mit der letzten Version hier aus dem Thread auf. Der einzige Unterschied zwischen den Versionen ist, dass in der Version hier aus dem Thread die Leistungsdaten (energy) nicht mehr aktialisiert werden.

Wenn ich die Devices auf eine nicht vorhandene IP-Adresse konfiguriere und den Shelly neu starte, funktoniert er wieder fehlerfrei, antwortet auf alle PINGs, etc. Ich kann ihn dann nur nicht über FHEm bedienen. Hast Du irgendeine Idee?

Andere Shellys (2.5, 1 PM, RGB) funktionieren tadellos.

Gruß
Lars
FHEM Hauptsystem auf ESXi VM | dblog | 3 rPi für Nebensysteme | 2 Beaglebone Black Test- / Integrationssystem