Support-Thread Modul 36_Shelly.pm

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

Vorheriges Thema - Nächstes Thema

kkoeniger

#870
Zitat von: Kai-Alfonso am 22 März 2024, 13:39:13Frage: hatte noch niemand vor mir den Fehler? Hatte auf die Schnelle nix gefunden

Ja ich. Mit dem vorhergehenden Modul aus dem restorDir und gesichertem fhem.cfg alles wiederhergestellt.
LG,
Karl

wolsch

Guten Abend,
ich hoffe meine Frage ist hier richtig gestellt.

gestern nach update,
Error:Modul 36_Shelly deactivated:
 Global symbol "$oldtimer" requires explicit package name (did you forget to declare "my $oldtimer"?) at ./FHEM/36_Shelly.pm line 1977.
Global symbol "$oldtimer" requires explicit package name (did you forget to declare "my $oldtimer"?) at ./FHEM/36_Shelly.pm line 1979.

Die Beiträge dazu hab ich gelesen helfen mir aber nicht.

mfg
Wolfgang

Prof. Dr. Peter Henning

Shellys zu Ostern preisreduziert bei Amazon.

LG

pah

Starkstrombastler

Zitat von: wolsch am 22 März 2024, 17:22:26Die Beiträge dazu hab ich gelesen helfen mir aber nicht.
Nun, was ist passiert? Dem Modulautor ist beim Vorhaben "mal eben schnell eine kleine Änderung" ein Fehler unterlaufen, was natürlich keine Absicht war.

Erfahrene User nutzen die Fehlerangabe (...Shelly.pm line 1977...) um sich die Stelle im Quellcode anzuschauen und evtl. zu editieren.
Der Vorschlag, die Anführungszeichen zu ändern ist aber nicht unbedingt zielführend, weil zwar der urpsprüngliche Fehler nicht mehr auftritt, aber dafür ein unsinniger Befehl an einen Shelly-Dimmer gesendet wird.

Mein Vorschlag zur Änderung des Quellcodes (Löschen von $oldtimer) richtet sich aber auch nur an erfahrene User.

Die Angabe Korrektur ist eingecheckt, heißt, dass eine korrigierte Version ab dem nächsten Tag ca. 08:00 Uhr via update zur Verfügung steht (also seit heute Morgen).

Alternativ lässt sich die vorhergehende Version des fehlerhaften Moduls aus dem restoreDir wieder zurückholen. Im konkreten Fall wird dazu die Datei 36_Shelly.pm aus dem Verzeichnis /opt/fhem/restoreDir/update/2024-03-22/FHEM/ in das Verzeichnis /opt/fhem/FHEM/ kopiert und anschließend mit dem FHEM-Befehl reload 36_Shelly.pm in das laufende System geladen.
/opt/fhem/ ist hier das Stammverzeichnis von FHEM, das lautet in der jeweiligen Installation eventuell auch anders.

Ich hoffe, das hilft ein wenig die oben diskutierten Maßnahmen besser zu verstehen.


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

wolsch

Hallo Starkstrombastler,
tolle Antwort hab die 36_Shelly.pm aus dem restore kopiert.
Scheint alles gut su sein.

Danke für die Tips

Wolfgang

homespinner

#875
Hallo zusammen,
inzwischen habe ich ne Runde neue Shelly Plus S gekauft...leider sind die "alten" Shelly Plug S kaum noch zu finden, weshalb ich dann die Shelly Plug Plus S gekauft habe...nur leider scheinen diese (noch) nicht mit dem Modul in FHEM zu funktionieren. Kann ich etwas tun, damit dieses Modell auch vom Modul unterstützt wird? Das war mit den "alten" Shellys immer so einfach...oder müssen wir hier jetzt tatsächlich über MQTT gehen (sehe ich eher als Rückschritt)...

Danke in die Runde!  ;D

RalfRog

Hallo
Check mal ob das Attribut Model gesetzt ist.
model shellyplusplug
Ansonsten setze es mal.

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

VB90

@homespinner

Ich habe gestern erst einen neuen Plus S eingebunden, absolut problemlos.
Ist dein System aktuell?

vb
Man muss das Rad nicht neu erfinden, nur wissen wie es gedreht wird.

Shadow3561

Moin,
Ich habe seit heute auch Probleme mit einem PlugS.
Kurios ist nur, ich habe 2 davon und einer läuft Problemlos.
Der andere wirft alle 10 Sekunden folgendes ins log
2024.03.24 19:02:09.700 2: myShelly_Tablet: undefined value for source
Was kann das sein?
Grüsse Daniel

Starkstrombastler

Zitat von: Shadow3561 am 24 März 2024, 19:07:152024.03.24 19:02:09.700 2: myShelly_Tablet: undefined value for source
Das Schreiben des Readings "source" hat also nicht funktioniert, weil der zu schreibende Wert undefiniert ist.

Um dem auf die Spur zu kommen, benötige ich mehr Informationen:
a) eine Kopie der Definition "copy for forum"
b) einen kurzen Abschnitt aus der Logdatei, hierzu für das betroffene Device für einige Sekunden verbose=5 setzten, so dass der fehlerhafte Schreibvorgang erfasst wird.
IPC\Ubuntu + Fhem, 1wire, Shellies, Siemens Logo!, Z-Wave, PhilipsTV, Vu+duo2, KM200

Shadow3561

Moin,
Hier der Logauzug mit verbose 5
2024.03.24 20:05:19.092 4: [Shelly_status] myShelly_Tablet: next update in 10 seconds
2024.03.24 20:05:29.141 4: [Shelly_status(1G)] issue a non-blocking call to http://192.168.1.73/status
2024.03.24 20:05:29.316 5: [Shelly_status] device myShelly_Tablet of model shellyplug has returned data
{"wifi_sta":{"connected":true,"ssid":"o2-WLAN06","ip":"192.168.1.73","rssi":-54},"cloud":{"enabled":false,"connected":false},"mqtt":{"connected":true},"time":"20:05","unixtime":1711310729,"serial":1,"has_update":false,"mac":"4C11AE041575","relays":[{"ison":false,"has_timer":false,"timer_remaining":0,"overpower":false}],"meters":[{"power":0.00,"is_valid":true,"timestamp":1711310729,"counters":[0.000, 0.000, 0.000],"total":1178570}],"temperature":31.99,"overtemperature":false,"tmp":{"tC":31.99,"tF":89.58, "is_valid":"true"},"update":{"status":"unknown","has_update":false,"new_version":"","old_version":"20200309-104506/v1.6.0@43056d58"},"ram_total":50608,"ram_free":39612,"fs_size":233681,"fs_free":167919,"uptime":49618652}
2024.03.24 20:05:29.336 5: [Shelly_Set] FhemWeb is requesting set-commands for device myShelly_Tablet
2024.03.24 20:05:29.336 5: [Shelly_rssi] returns -54 to device myShelly_Tablet
2024.03.24 20:05:29.337 2: myShelly_Tablet: undefined value for source
2024.03.24 20:05:29.337 4: [Shelly_proc1G] myShelly_Tablet: Looking for metering values
2024.03.24 20:05:29.337 5: [Shelly_proc1G] myShelly_Tablet : power=0 TTL=0, energy=19642.8 TTL=1178570
2024.03.24 20:05:29.357 5: [Shelly_Set] FhemWeb is requesting set-commands for device myShelly_Tablet
2024.03.24 20:05:29.357 4: [Shelly_status] myShelly_Tablet: proc1G returned with value=10
2024.03.24 20:05:29.358 4: [Shelly_status] myShelly_Tablet: next update in 10 seconds

Zitat von: Starkstrombastler am 24 März 2024, 19:51:18a) eine Kopie der Definition "copy for forum"

damit kann ich nichts anfangen, daher die RAW-Def
defmod myShelly_Tablet Shelly 192.168.1.73
attr myShelly_Tablet DbLogExclude cloud,firmware,network,overpower,relay,relay_0
attr myShelly_Tablet DbLogInclude state, power
attr myShelly_Tablet alias Ladegerät Wallpanel
attr myShelly_Tablet interval 10
attr myShelly_Tablet mode relay
attr myShelly_Tablet model shellyplug
attr myShelly_Tablet room Tablet Flur
attr myShelly_Tablet stateFormat {\
my $gesamt = sprintf("%.2f",ReadingsVal($name,"energy","")/1000);;;;\
my $gesamtname = "Gesamtverbrauch: $gesamt kWh";;;;\
my $pic = ReadingsVal($name,"running","") eq "läuft"?'message_socket@green':'message_socket';;;;\
my $text = ReadingsVal($name,"running","") eq "läuft"?"lädt gerade - Aktuell: ".ReadingsVal($name,"power","")." W":'Standby';;;;\
"<div><a href=\"/fhem?cmd.dummy=set $name toggle&XHR=1\"></a>&nbsp;;&nbsp;;&nbsp;;".FW_makeImage($pic)."&nbsp;;&nbsp;;&nbsp;;$text&nbsp;;&nbsp;;&nbsp;;$gesamtname</div>"\
}
attr myShelly_Tablet timeout 120
attr myShelly_Tablet userReadings running {ReadingsVal($name,"power",0) ne "0" ? "läuft" : "fertig"}
attr myShelly_Tablet verbose 0
attr myShelly_Tablet webCmd :

setstate myShelly_Tablet <div><a href="/fhem?cmd.dummy=set myShelly_Tablet toggle&XHR=1"></a>&nbsp;;&nbsp;;&nbsp;;<svg class=" message_socket" data-txt="message_socket" version="1.0" xmlns="http://www.w3.org/2000/svg"  width="468pt" height="470pt" viewBox="0 0 468 470"  preserveAspectRatio="xMidYMid meet"> <metadata> Created by potrace 1.8, written by Peter Selinger 2001-2007 </metadata> <g transform="translate(0,470) scale(0.158108,-0.158108)"  stroke="none"> <path d="M75 2941 c-16 -10 -39 -28 -50 -41 -20 -22 -20 -36 -20 -1415 l0 -1393 25 -27 c55 -59 -38 -55 1445 -55 1483 0 1390 -4 1445 55 l25 27 0 1394 0 1394 -38 37 -37 38 -1383 3 c-1332 2 -1383 1 -1412 -17z m2743 -1453 l-3 -1343 -1340 0 -1340 0 -3 1330 c-1 732 0 1336 3 1343 3 9 282 12 1345 12 l1340 0 -2 -1342z"/> <path d="M589 2417 c-19 -13 -39 -38 -46 -57 -15 -45 -18 -1676 -3 -1731 6 -19 22 -46 36 -60 l26 -24 885 0 885 0 29 33 29 32 0 878 c0 964 4 904 -60 937 -25 13 -145 15 -888 15 l-859 0 -34 -23z m785 -142 c22 -22 33 -25 101 -25 68 0 79 3 101 25 25 25 25 25 216 25 l192 0 158 -157 158 -157 0 -490 0 -491 -167 -167 -168 -168 -187 0 c-137 0 -188 3 -188 12 0 6 -7 20 -17 30 -13 15 -31 18 -101 18 -87 0 -122 -13 -122 -47 0 -10 -35 -13 -172 -13 l-173 0 -167 167 -168 168 0 480 0 480 167 167 168 168 172 0 c170 0 172 0 197 -25z"/> <path d="M954 1589 c-16 -18 -19 -37 -19 -111 0 -118 10 -128 132 -128 76 0 86 2 108 25 22 21 25 33 25 100 0 73 -10 112 -34 127 -6 4 -52 8 -102 8 -80 0 -93 -3 -110 -21z"/> <path d="M1780 1590 c-17 -17 -20 -33 -20 -108 0 -80 2 -91 23 -110 20 -19 35 -22 110 -22 120 0 127 8 127 133 0 123 -4 127 -128 127 -79 0 -95 -3 -112 -20z"/> </g> </svg>&nbsp;;&nbsp;;&nbsp;;Standby&nbsp;;&nbsp;;&nbsp;;Gesamtverbrauch: 19.64 kWh</div>
setstate myShelly_Tablet 2024-03-24 16:45:59 cloud disabled
setstate myShelly_Tablet 2024-03-24 16:46:08 coiot disabled
setstate myShelly_Tablet 2024-03-24 16:46:08 coiot_period 15
setstate myShelly_Tablet 2024-03-24 16:47:04 config updating
setstate myShelly_Tablet 2024-03-24 19:00:38 energy 19642.8
setstate myShelly_Tablet 2024-03-24 16:45:59 firmware v1.6.0
setstate myShelly_Tablet 2024-03-24 20:08:02 inttemp 31.88
setstate myShelly_Tablet 2024-03-24 20:04:58 network <html>connected to <a href="http://192.168.1.73">192.168.1.73</a></html>
setstate myShelly_Tablet 2024-03-24 20:04:48 network_disconnects 1
setstate myShelly_Tablet 2024-03-24 20:06:20 network_rssi -54
setstate myShelly_Tablet 2024-03-24 16:45:59 network_ssid o2-WLAN06
setstate myShelly_Tablet 2024-03-24 20:04:58 overpower off
setstate myShelly_Tablet 2024-03-24 19:08:18 power 0
setstate myShelly_Tablet 2024-03-24 19:10:09 relay off
setstate myShelly_Tablet 2024-03-24 20:08:12 running fertig
setstate myShelly_Tablet 2024-03-24 20:04:58 state off
setstate myShelly_Tablet 2024-03-24 16:54:41 timer 0
setstate myShelly_Tablet 2024-03-24 16:45:58 webhook_cnt 0
setstate myShelly_Tablet 2024-03-24 16:45:58 webhook_ver 0


Grüsse
Daniel

Starkstrombastler

Zitat von: Shadow3561 am 24 März 2024, 20:08:57setstate myShelly_Tablet 2024-03-24 16:45:59 firmware v1.6.0
Die Firmware auf dem Shelly scheint nicht aktuell zu sein. Aktuell: 1.14.0

Im Übrigen findest du den Befehl für "Copy for forum.." in der Device-Ansicht ganz unten...
Du darfst diesen Dateianhang nicht ansehen.
IPC\Ubuntu + Fhem, 1wire, Shellies, Siemens Logo!, Z-Wave, PhilipsTV, Vu+duo2, KM200

Shadow3561

Da scheint bei mir wohl etwas gewaltig nicht zu stimmen.
Die Firmware vom Shelly habe ich am Samstag aktualisiert. Ich bin mir ziemlich sicher, das dies auf 1.14 war.

Copy for Forum gibt es bei mir nicht. Fhem ist aktuell. Gestern habe ich ein update gefahren.


Shadow3561

#883
So, Firmware-Update habe ich hinbekommen. Das FHEM-Log bleibt sauber.
Danke für den Hinweis mit der Firmware. Darauf wäre ich nie gekommen weil ich ja bereits die Firmware aktualisiert habe. Leider ist dabei wohl etwas schief gegangen.
Danke

EDIT:
zu Copy for FHEM
Dies ist erscheint bei mir nur bei einigen Styles aber nicht bei allen.

Hadl

Hallo zusammen,
ich bin gerade dabei mit einem Shelly Plus 2PM meine Zirkulationspumpe zu steuern.
Dazu hab ich per Addon 3 Temperatursensoren DS18B20 angeschlossen.

In Fhem nutze ich das Shelly Modul dazu um alles auszulesen. Dabei bekomme ich leider kein guten Update Interval hin.
Meine Versuche bisher waren:
- Automatisch generierte Webhooks => Diese funktionieren nicht, da bei mir nur HTTPS mit Passwort erlaubt ist, es wird aber http ohne passwort generiert.
- Attribut interval auf 10 sekunden stellen => Damit wird z.b. das reading "inttemp" alle 10 sekunden aktualisiert, jedoch die Readings "temperature_0" bis "temperature_2" werden nur alle 4 Minuten aktualisiert.

Was mach ich hier falsch? Wie kann ich die Webhooks richtig anlegen lassen, bzw. das Interval für die Temperaturen runtersetzen.

define ShellyWarmwasser Shelly 192.168....
attr ShellyWarmwasser event-min-interval .*:3600
attr ShellyWarmwasser event-on-change-reading .*
attr ShellyWarmwasser interval 10
attr ShellyWarmwasser mode relay
attr ShellyWarmwasser model shellyplus2pm
attr ShellyWarmwasser userReadings energy_kWh_0:energy_0.* monotonic {ReadingsVal("ShellyWarmwasser","energy_0",0)/1000;;},\
energy_kWh_1:energy_1.* monotonic {ReadingsVal("ShellyWarmwasser","energy_1",0)/1000;;}
attr ShellyWarmwasser webhook WEB
...
setstate ShellyWarmwasser 2024-03-26 23:48:44 webhook_cnt 9
setstate ShellyWarmwasser 2024-03-27 00:33:16 webhook_ver 26