Support-Thread Modul 36_Shelly.pm

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

Vorheriges Thema - Nächstes Thema

smoudo

Hallo Forum, hallo pah,


danke für das Modul. Ich habe einen Shelly plus 1 eingebunden und 2 Grundlegende Probleme.

Firmware ist aktuell 0.9.1. FHEM ist ebenso aktuell.

Problem 1:
Der state ist nach connect und nach jedem Schaltvorgang auf error. Der Schaltvorgang wird aber durchgeführt. Rückmeldung ist wieder Error.

Problem 2:
Ich hatte anfangs connectionsprobleme weil ich den shelly mit Passwort gesichert hatte. In der Shelly Konfiguration kann man lediglich ein Passwort setzen.
In der FHEM Modul Konfiguration muss aber Username und Passwort gesetzt werden. Ich habe das ganze jetzt erstmal ohne Passwort laufen. Connection steht damit. 

In der commandref konnte ich zu den Themen nichts finden. Liegt das generell an der neueren Shelly Firmware?

Ein Gerätelist hänge ich an:
Internals:
   .AttrList 
   DEF        192.168.1.50
   DURATION   0
   FUUID      61c86b37-f33f-284d-9b1e-c848039fd6303626
   INTERVAL   60
   NAME       Strom_Strasse
   NR         351
   STATE      Error
   TCPIP      192.168.1.50
   TYPE       Shelly
   .attraggr:
   .attrminint:
   READINGS:
     2021-12-26 14:38:51   network         <html>connected to <a href="http://192.168.1.50">192.168.1.50</a></html>
     2021-12-26 14:39:28   relay           off
     2021-12-26 14:39:51   state           Error
Attributes:
   group      Außensteckdosen
   model      shelly1
   room       Outdoor[ftp][/ftp]


Viele Grüße

Matze

caldir65

Moin,

das dürfte daran liegen, daß der ShellyPlus zur neuen Generation von Shelly-Devices gehört, und bei denen wird nicht mehr das alte Protokoll unterstützt. Ich habe einen Plus1 mittels mqtt testweise eingebunden, und das funktioniert offenbar gut...

Gruß,
Christoph
Alte Techniker-Regel: "kaum macht man es richtig, funktioniert es auch"
------
Dell Wyse5070 ThinClient 16GBRam, 64GB SSD, Lubuntu 22.04LTS, fhem (aktuell), debmatic, Homematic-Devs, ConBee II und deConz, viele Shellys, Rademacher, NextCloud-Anbindung, FullyKioskBrowser+FUIP uvm.

smoudo

gibts dazu einbindungsbeispiele? bzw. kannst du die einstellen?
Da die Geräteanzahl die mittlerweile im Umlauf ist schon recht ordentlich ist, würde sich ein umstieg generell auf mqtt sicherlich lohnen. Bislang habe ich mich mit der Thematik aber noch nicht beschäftigt. Die http abfragen empfand ich immer als sehr einfach umsetzbar.

viele Grüße

Matze

caldir65

Moin,

ich habe ihn testweise so eingebunden - ist aber zur Zeit deaktiviert, da ich ihn noch nicht weiter verbaut habe, und wenn ich ihn nicht angeschlossen hatte, gab es bei mir freeze im FHEM, der offenbar in meinem Fall auf dieses Device zurück zu führen war.

Internals:
   DEVICETOPIC shellyplus1-441793cf9254
   FUUID      61b90650-f33f-378b-4430-7ae3b08824eb04ee
   FVERSION   10_MQTT2_DEVICE.pm:0.248610/2021-08-20
   IODev      MQTT2_FHEM_Server
   NAME       Shelly1plus
   NR         1685
   STATE      off
   TYPE       MQTT2_DEVICE
   JSONMAP:
     params_switch_0_aenergy_total aenergy_total
     params_switch_0_apower apower
     params_wifi_sta_ip ip
     temperature_tC temperature
     temperature_tF 0
   READINGS:
     2021-12-26 11:59:03   IODev           MQTT2_FHEM_Server
     2021-12-14 22:03:02   attrTemplateVersion 20211128
     2021-12-16 20:28:53   dst             shellyplus1-441793cf9254/events
     2021-12-16 20:28:53   method          NotifyStatus
     2021-12-15 20:40:07   mqtt_connected  true
     2021-12-16 21:23:27   online          false
     2021-12-15 20:40:07   params_mqtt_connected false
     2021-12-14 22:06:06   params_switch_0_id 0
     2021-12-14 22:06:06   params_switch_0_output false
     2021-12-14 22:06:06   params_switch_0_source MQTT
     2021-12-16 20:28:53   params_sys_available_updates_stable_version 0.9.1
     2021-12-16 20:28:53   params_ts       1639682933.11
     2021-12-16 20:28:53   src             shellyplus1-441793cf9254
     2021-12-14 22:06:06   state           off
     2021-12-14 22:06:06   switch_0_id     0
     2021-12-14 22:06:06   switch_0_output false
     2021-12-14 22:06:06   switch_0_source MQTT
     2021-12-14 22:06:06   switch_0_temperature_tC 52.6
     2021-12-14 22:06:06   switch_0_temperature_tF 126.7
     2021-12-16 20:28:53   sys_available_updates_stable_version 0.9.1
     2021-12-16 20:28:53   sys_cfg_rev     8
     2021-12-16 20:28:53   sys_fs_free     237568
     2021-12-16 20:28:53   sys_fs_size     458752
     2021-12-16 20:28:53   sys_mac         441793CF9254
     2021-12-16 20:28:53   sys_ram_free    176696
     2021-12-16 20:28:53   sys_ram_size    249416
     2021-12-16 20:28:53   sys_restart_required false
     2021-12-16 20:28:53   sys_time        20:28
     2021-12-16 20:28:53   sys_unixtime    1639682933
     2021-12-16 20:28:53   sys_uptime      172812
Attributes:
   DbLogExclude .*
   autocreate 1
   devStateIcon {my $onl = ReadingsVal($name,'online','false') eq 'false'?'10px-kreis-rot': ReadingsVal($name,'new_fw','false') eq 'true' ? '10px-kreis-gelb' : '10px-kreis-gruen';; $onl = FW_makeImage($onl);; my $light = ReadingsVal($name,'switch_0_output','false') =~ m{false|off}?'off':'on';; $light = FW_makeImage($light);; my $ip = ReadingsVal($name,'ip','none');; qq(<a href="http://$ip"target="_blank">${onl}</a><a href="/fhem?cmd.dummy=set $name toggle&XHR=1">${light}</a>)}
   devicetopic shellyplus1-441793cf9254
   disable    1
   event-on-change-reading state,online,mqtt_connected
   icon       message_socket
   jsonMap    params_switch_0_aenergy_total:aenergy_total params_switch_0_apower:apower temperature_tC:temperature temperature_tF:0 params_wifi_sta_ip:ip
   model      shellyPlus_1
   readingList $DEVICETOPIC/online:.* online
  $DEVICETOPIC/events/rpc:.* { json2nameValue($EVENT,'',$JSONMAP) }
  $DEVICETOPIC/status/mqtt:.* { json2nameValue($EVENT, 'mqtt_', $JSONMAP) }
  $DEVICETOPIC/status/sys:.* { json2nameValue($EVENT, 'sys_', $JSONMAP) }
  $DEVICETOPIC/status/switch_0:.* { json2nameValue($EVENT, 'switch_0_', $JSONMAP) }
   room       Entwicklung
   setList    toggle:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem","method":"Switch.Toggle","params": {"id":0}}
  off:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem","method":"Switch.Set","params": {"id":0,"on":false}}
  on:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem","method":"Switch.Set","params": {"id":0,"on":true}}
  on-for-timer $DEVICETOPIC/rpc {"id":0,"src":"fhem","method":"Switch.Set","params": {"id":0,"on":true,"toggle_after":$EVTPART1}}
  x_update:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem","method":"Shelly.Update","params": {"stage":"stable"}}
  x_reboot:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem","method":"Shelly.Reboot"}


Gruß, Christoph

PS: ich stehe mit mqtt bisher noch am Anfang, kann also nicht wirklich mit Erfahrungen großartig dienen ...
Alte Techniker-Regel: "kaum macht man es richtig, funktioniert es auch"
------
Dell Wyse5070 ThinClient 16GBRam, 64GB SSD, Lubuntu 22.04LTS, fhem (aktuell), debmatic, Homematic-Devs, ConBee II und deConz, viele Shellys, Rademacher, NextCloud-Anbindung, FullyKioskBrowser+FUIP uvm.

smoudo

hmm freezes sind natürlich unschön.
alternativ evtl. espeasy drüber flashen? so habe ich das mit sämtlichen sonoff pendanten gemacht.
Ich mach dazu mal nen extra thread auf um die Übersichtlichkeit nicht zu gefährden

Viele Grüße

Matze

ergerd

Zitat von: smoudo am 26 Dezember 2021, 14:57:57
... connectionsprobleme weil ich den shelly mit Passwort gesichert hatte. In der Shelly Konfiguration kann man lediglich ein Passwort setzen.
In der FHEM Modul Konfiguration muss aber Username und Passwort gesetzt werden. Ich habe das ...
Der Username wird per Attribut gesetzt.

Grüße
ergerd
FHEM auf RasPi 4, CUNO, ZigBee, 1Wire2WLAN, DS2423, C-Control II, Buderus KM200, LaCrosseGateway, PCA301, ConBee II, LuftdatenInfo, OneWireGW, Div. ESPs u. Shellys

smoudo

Ist fhem seitig schon klar. Ich kann im Shelly aber keinen usernamen angeben. Da kann man nur ein passwort erstellen

Viele Grüße

Matze

Prof. Dr. Peter Henning

ZitatIch kann im Shelly aber keinen usernamen angeben

Wer lesen kann, ist klar im Vorteil:

ZitatDer Username wird per Attribut gesetzt.

Einfach mal die CommandRef ansehen.

LG

pah

smoudo

Ich glaube wir reden an einander vorbei.

Problem: ich kann in der shelly Geräte Firmware keinen Usernamen hinterlegen.
Passwort schon.

Um in fhem ein Passwort setzen zu können muss ich das attr shellyuser setzen.
Das habe ich auch alles getan. Funktioniert nicht. Fehler: no Connection.
Ist ja auch logisch, da im shelly kein User hinterlegt werden kann.

Bevor ich mich erdreistet habe hier Hilfe zu erbeten habe ich natürlich wie oben beschrieben die Commandref ersucht. Leider konnte ich das Problem so nicht lösen.

Das Problem habe ich jetzt per mqtt gelöst.

Danke für Deine Bemühungen.

Viele Grüße

Matze

gvzdus

Zitat von: Xell1984 am 22 Dezember 2021, 23:34:23
Zur Info: Das TRV ist ein Gen1 Device lt. CEO von Allterco.

Ich habe heute meinen TRV bekommen. Ich schreibe demnächst mal einen Test in einem anderen Thread.
Den Sparring-Partner zum 36_Shelly-Modul, nämlich 36_ShellyMonitor, habe ich angepasst - die Readings kommen entsprechend sinnvoll.

Wenn der Autor, pah, himself überlegt, auf MQTT umzusteigen, ist natürlich 36_Shelly nicht die beste Basis für die Einbindung. Ich mag das Modul weiterhin, weil die Readings & Co. eben sinnvoll angepasst sind, und außerdem MQTT für alle Gen1-Geräte nicht mit der Shelly-Cloud kombiniert werden kann.

Lieber pah: Würdest Du einen Patch für TRV haben und wohlwollend prüfen wollen?
In jedem Fall werde ich zusehen, auch für MQTT ein AttrTemplate zu erstellen.

Prof. Dr. Peter Henning

ZitatDu einen Patch für TRV haben und wohlwollend prüfen wollen?
Mach ich gerne und zeitnah. Ich mag das Modul auch noch, ich habe aber keine Lust, mir auch noch ein halbes Dutzend der neuen Shellys zuzulegen um diese zu testen.

LG

pah

Nobbynews

#86
Guten Morgen,

ich habe mir eine Bulb DUO RGBW gegönnt und über das Modul eingebunden.
Internals:
   CFGFN     
   DEF        192.168.2.239
   FUUID      61e0fdb2-f33f-8873-1adc-7f291d212cb03754
   INTERVAL   60
   NAME       Bulb1
   NR         1525041
   SHELLYID   shellycolorbulb-E8DB84D30DFD
   STATE      off
   TCPIP      192.168.2.239
   TYPE       Shelly
   OLDREADINGS:
   READINGS:
     2022-01-14 05:48:25   L-blue          27
     2022-01-14 05:48:25   L-green         57
     2022-01-14 05:48:25   L-red           69
     2022-01-14 05:39:58   L-white         86
     2022-01-14 05:36:03   cloud           disabled
     2022-01-14 05:37:08   config          mode=color [channel s]
     2022-01-14 05:48:13   energy          0.3
     2022-01-14 05:36:03   firmware        v1.11.7
     2022-01-14 05:36:02   network         <html>connected to <a href="http://192.168.2.239">192.168.2.239</a></html>
     2022-01-14 05:48:40   power           0
     2022-01-14 05:48:25   rgb             45391B
     2022-01-14 05:48:40   state           off
Attributes:
   mode       color
   model      shellybulb
   room       Shelly


Das funktioniert soweit auch.
Nur leider habe ich seit dem minütliche Warnungen im Log:
2022.01.14 06:11:41 1 : PERL WARNING: Use of uninitialized value $value in string eq at fhem.pl line 4927.
2022.01.14 06:11:41 1 : stacktrace:
2022.01.14 06:11:41 1 :     main::__ANON__                      called by fhem.pl (4927)
2022.01.14 06:11:41 1 :     main::readingsBulkUpdateIfChanged   called by ./FHEM/36_Shelly.pm (1224)
2022.01.14 06:11:41 1 :     main::Shelly_status                 called by ./FHEM/36_Shelly.pm (1030)
2022.01.14 06:11:41 1 :     main::__ANON__                      called by FHEM/HttpUtils.pm (647)
2022.01.14 06:11:41 1 :     main::__ANON__                      called by fhem.pl (771)


Muss ich da noch etwas zusätzlich einstellen oder habe ich sonst etwas falsch gemacht?

Norbert

Edit 1:
Es funktionieren auch die Definition als model shellyrgbw mit den zusätzlichen readings für energy und power.
Warning bleibt aber unverändert.

Edit 2:
Durch attr Bulb1 interval 0 wird das minütliche Warning unterdrückt.
Es bleibt aber bei einem warning bei Übertragung eines Befehls.

Prof. Dr. Peter Henning

In Zeile 1223 des Moduls steht
Zitatmy $rgb   = sprintf("%02X%02X%02X", $red,$green,$blue);
Bitte mal unmittelbar nach dieser Zeile einfügen

ZitatLog 1,"===========> $rgb";

Modul neu laden und Log hier posten.

LG

pah

Nobbynews

Hier im Modul  steht das zwar in Zeile 1217.
FVERSION

36_Shelly.pm:v3.3.0-s24222/2021-04-11

Im Log-File steht mit der Ergänzung jetzt:
2022.01.14 09:51:00 1: ===========> 070001
2022.01.14 09:51:00 1: PERL WARNING: Use of uninitialized value $value in string eq at fhem.pl line 4927.
2022.01.14 09:51:00 1: stacktrace:
2022.01.14 09:51:00 1:     main::__ANON__                      called by fhem.pl (4927)
2022.01.14 09:51:00 1:     main::readingsBulkUpdateIfChanged   called by ./FHEM/36_Shelly.pm (1225)
2022.01.14 09:51:00 1:     main::Shelly_status                 called by ./FHEM/36_Shelly.pm (1030)
2022.01.14 09:51:00 1:     main::__ANON__                      called by FHEM/HttpUtils.pm (647)
2022.01.14 09:51:00 1:     main::__ANON__                      called by fhem.pl (771)
2022.01.14 09:51:06 1: ===========> 070001
2022.01.14 09:51:06 1: PERL WARNING: Use of uninitialized value $value in string eq at fhem.pl line 4927.
2022.01.14 09:51:06 1: stacktrace:
2022.01.14 09:51:06 1:     main::__ANON__                      called by fhem.pl (4927)
2022.01.14 09:51:06 1:     main::readingsBulkUpdateIfChanged   called by ./FHEM/36_Shelly.pm (1225)
2022.01.14 09:51:06 1:     main::Shelly_status                 called by ./FHEM/36_Shelly.pm (1030)
2022.01.14 09:51:06 1:     main::__ANON__                      called by FHEM/HttpUtils.pm (647)
2022.01.14 09:51:06 1:     main::__ANON__                      called by fhem.pl (771)
2022.01.14 09:51:12 1: ===========> 820013
2022.01.14 09:51:12 1: PERL WARNING: Use of uninitialized value $value in string eq at fhem.pl line 4927.
2022.01.14 09:51:12 1: stacktrace:
2022.01.14 09:51:12 1:     main::__ANON__                      called by fhem.pl (4927)
2022.01.14 09:51:12 1:     main::readingsBulkUpdateIfChanged   called by ./FHEM/36_Shelly.pm (1225)
2022.01.14 09:51:12 1:     main::Shelly_status                 called by ./FHEM/36_Shelly.pm (1030)
2022.01.14 09:51:12 1:     main::__ANON__                      called by FHEM/HttpUtils.pm (647)
2022.01.14 09:51:12 1:     main::__ANON__                      called by fhem.pl (771)

Prof. Dr. Peter Henning

OK, dann habe ich an einer falschen Stelle nachgesehen - mein Modul ist nämlich schon weiter entwickelt ...

Also bitte Folgendes ersetzen:

In Zeile 1224 (alte Zählung, der obige Log-Eintrag kann wieder raus)

ZitatreadingsBulkUpdateIfChanged($hash,"overpower",$overpower);

durch

ZitatreadingsBulkUpdateIfChanged($hash,"overpower",$overpower) if( $overpower);

Offenbar haben die kein Overpower-Reading (mehr?)

LG

pah