Entwicklungs-Thread Modul 36_Shelly.pm

Begonnen von Starkstrombastler, 24 Februar 2024, 12:15:05

Vorheriges Thema - Nächstes Thema

Starkstrombastler

Zitat von: caldir65 am 29 September 2024, 14:14:51ich habe einen ShellyPlus1 mit Addon. Daran angeschlossen ist ein Reedkontakt. Wenn ich jetzt einen Magnet entsprechend anlege, kann ich in der Oberfläche vom Shelly eine Reaktion sehen, jedoch kommt davon nichts in fhem an.
Das Addon ist ja bereits integriert, aber offensichtlich passt da noch nicht alles. Schaue ich mir an, damit auch das funktioniert.
IPC\Ubuntu + Fhem, 1wire, Shellies, Siemens Logo!, Z-Wave, PhilipsTV, Vu+duo2, KM200

caldir65

Moin,

das hört sich gut an. Übrigens kommt ein am analogen Eingang des Addon wie folgt:

ble {}
cloud
connected false
input:0
id 0
state false
input:100
id 100
percent 0
mqtt
connected false
switch:0
id 0
source "init"
output false
temperature
tC 65.3
tF 149.6
sys
mac "441793A58A54"
restart_required false
time "20:19"
unixtime 1727720370
uptime 99158
ram_size 253952
ram_free 140680
fs_size 393216
fs_free 110592
cfg_rev 6
kvs_rev 0
schedule_rev 0
webhook_rev 0
available_updates {}
reset_reason 3
wifi
sta_ip "192.168.1.164"
status "got ip"
ssid "Caldir_MacAran_IoT"
rssi -57
ws
connected false

Da variiert dann nur die Ausgabe der "percent" (0 = keine Bewegung)

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

Starkstrombastler

Zitat von: caldir65 am 29 September 2024, 14:14:51Ich habe einen ShellyPlus1 mit Addon. Daran angeschlossen ist ein Reedkontakt. Wenn ich jetzt einen Magnet entsprechend anlege, kann ich in der Oberfläche vom Shelly eine Reaktion sehen, jedoch kommt davon nichts in fhem an.
Zitat von: caldir65 am 29 September 2024, 14:14:51setstate ShellyPlus1_Schlafzimmer 2024-09-29 14:07:34 input_1 on
setstate ShellyPlus1_Schlafzimmer 2024-09-29 13:57:30 input_1_mode switch straight enabled

Das Shelly-Modul scheint aber korrekt zu arbeiten, das Reading input_1 wird mit Wert on dargestellt.
Es gilt dabei zu beachten, dass die Readings entsprechend dem Polling-Intervall gesetzt werden.

Sollen kurzzeitige Änderungen am Eingang erfasst werden, so sollte auf dem Shelly eine entsprechende Action angelegt werden.
Die URL für die Action "Input toggled on" sollte so aussehen (die Leerzeichen sind durch %20 zu ersetzen):
http://192.168.1.147:8083/fhem?cmd=set Y174 input_on 1

Zu beachten ist, dass auf dem Shelly die Inputs des AddOn von 100 an aufwärts gezählt werden, im Fhem-Modul dagegen wird die Zählung nach den regulären Inputs fortgesetzt. Für den Shelly Plus 1 gilt also:
input:0     -->  input  bzw.  input_0   *)
input:100   -->  input_1

*) Das Modul wird noch korrigiert, mit dem Addon muss das Reading des 'regulären' Eingangs input_0 heißen.
IPC\Ubuntu + Fhem, 1wire, Shellies, Siemens Logo!, Z-Wave, PhilipsTV, Vu+duo2, KM200

Starkstrombastler

Hier wie versprochen die Weiterentwicklung des Moduls als Testversion 6.01 Beta1:

Du darfst diesen Dateianhang nicht ansehen.

Überarbeitet wurde das Polling, insbesondere im Zusammenhang mit zeitbasierten Befehlen (z.B. on-for-timer) und Rollofahrzeiten, um die möglichst zeitnahen Events nach Start bzw. Abschluss des Vorgangs zu verbessern. Sendet der Shelly zu einem Vorgang eine URL (via Action) so erfolgt eine Priorisierung um doppelte Abfragen des Status zu vermeiden: Ist bereits eine Status-Abfrage an den Shelly abgeschickt, aber noch nicht beantwortet, so wird keine weitere Abfrage ausgelöst. 
Ist der Zeitbasierte Befehl (oder die Rollofahrzeit) länger als das Polling-Interval, so werden Zwischenwerte abgerufen.

Die Version enthält Bug-Fixes zu den zuletzt diskutierten Problemfällen und einige Änderungen, die wichtigsten sind:
  • Das Reading firmware wird ersetzt durch drei Readings: firmware_current, firmware_updText und firmware_updIcon. Das wird in der ReadingsGroup (s.u.) für eine farbliche Hervorhebung des Firmwarestandes genutzt. 
  • Für die Shellies Gen2 mit Relais werden die Readings auto_on, auto_off ausgewiesen.
  • Für die Darstellung der Netzwerkverbindung werden neue Reading network_connection, network_host ausgewiesen. Letzeres ist insbesondere dann interessant, wenn der Shelly mit dem AP eines anderen Shelly verbunden ist.
  • Der Name des Access Points wird jetzt im Reading ap_name ausgewiesen.
  • Für die Recherche bei Netzwerkproblemen kann das Attribut timeout gesetzt werden, wodurch Readings mit den Reaktionszeiten zu den diversen Abfragen gesetzt werden. Mit dem Löschen des Attributes werden auch diese Readings entfernt. 

Mit dem neuen Befehl get <name> readingsGroup Device|Network|Firmware|Status lassen sich diverse Readings-Group-Devices erstellen, in denen alle Shelly-Definitionen thematisch zusammengefasst werden.
IPC\Ubuntu + Fhem, 1wire, Shellies, Siemens Logo!, Z-Wave, PhilipsTV, Vu+duo2, KM200

caldir65

Moin,

sieht erstmal gut aus, ich habe bisher keine Auffälligkeiten ... muß nur noch die alten Readings mal beseitigen ...

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

sfh

Zitat von: Starkstrombastler am 12 Oktober 2024, 19:29:42Hier wie versprochen die Weiterentwicklung des Moduls als Testversion 6.01 Beta1:
[...]
Hallo,
das sieht richtig gut aus. Jetzt werden im Rollladen-Betrieb bei Gen1- und Gen2-Shellies die End- und Zwischenstellungen korrekt und ohne sichtbare Zeitverzögerung angezeigt. Das funktioniert auch, wenn man die Rollläden über die Tastereingänge am Aktor bedient. Gute Arbeit, vielen Dank!

caldir65

Zitat von: Starkstrombastler am 04 Oktober 2024, 10:43:53
Zitat von: caldir65 am 29 September 2024, 14:14:51Ich habe einen ShellyPlus1 mit Addon. Daran angeschlossen ist ein Reedkontakt. Wenn ich jetzt einen Magnet entsprechend anlege, kann ich in der Oberfläche vom Shelly eine Reaktion sehen, jedoch kommt davon nichts in fhem an.
Zitat von: caldir65 am 29 September 2024, 14:14:51setstate ShellyPlus1_Schlafzimmer 2024-09-29 14:07:34 input_1 on
setstate ShellyPlus1_Schlafzimmer 2024-09-29 13:57:30 input_1_mode switch straight enabled

Das Shelly-Modul scheint aber korrekt zu arbeiten, das Reading input_1 wird mit Wert on dargestellt.
Es gilt dabei zu beachten, dass die Readings entsprechend dem Polling-Intervall gesetzt werden.

Sollen kurzzeitige Änderungen am Eingang erfasst werden, so sollte auf dem Shelly eine entsprechende Action angelegt werden.
Die URL für die Action "Input toggled on" sollte so aussehen (die Leerzeichen sind durch %20 zu ersetzen):
http://192.168.1.147:8083/fhem?cmd=set Y174 input_on 1

Zu beachten ist, dass auf dem Shelly die Inputs des AddOn von 100 an aufwärts gezählt werden, im Fhem-Modul dagegen wird die Zählung nach den regulären Inputs fortgesetzt. Für den Shelly Plus 1 gilt also:
input:0     -->  input  bzw.  input_0   *)
input:100   -->  input_1

*) Das Modul wird noch korrigiert, mit dem Addon muss das Reading des 'regulären' Eingangs input_0 heißen.
http://192.168.1.186:8083/fhem?cmd=set%20ShellyPlus1_Schlafzimmer%20input_on%201[/code]
aber leider kommt nichts an im Device - es ändert sich erst im Rahmen des Pollings ...
Die Fhem-Webui erreiche ich über https:// - muß ich jetzt noch etwas diesbezüglich berücksichtigen?

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

Starkstrombastler

Zitat von: caldir65 am 13 Oktober 2024, 14:39:52Die Fhem-Webui erreiche ich über https://
Das erklärt alles (ist die Info neu oder hatte ich das übersehen) !

Sofern sich dein FHEM-Server und der Shelly im gleichen (abgesichertem) Netzwerk befinden, ist die einfachste Lösung die Verwendung einer eigenen FHEMweb Instanz und Absicherung mit einem allowed-Device. Im Detail:
  • Definition der FHEMweb-Instanz z.B.:  defmod HOOK FHEMWEB 8084 global
  • Definition eines Allowed-Devices und Setzen der Attribute validFor allowedDevices allowedCommands, siehe Commandref
  • Sicherstellen, dass der Name der Action auf dem Shelly mit einem _ (Unterstrich) beginnt. Dies ist Voraussetzung für die automatische Änderung im nächsten Schritt
  • Ändern des Attributes webhook im Shelly-Device auf den neuen Namen. FHEM wird die vom Modul angelegten Actions auf dem Shelly auf den neuen Webhook anpassen und auch den CSFR-Token in der URL ergänzen
  • Option: Kontrolle der geänderten Actions mit get <name> actions

Ich hoffe, ich habe da nichts vergessen...
IPC\Ubuntu + Fhem, 1wire, Shellies, Siemens Logo!, Z-Wave, PhilipsTV, Vu+duo2, KM200

JoWiemann

Hallo,

ich bekomme mit der aktuellen Beta folgende Log Einträge:
2024.10.15 08:31:36 5: [Shelly_Get] receiving command get SH_DiV2 ?
2024.10.15 08:31:49 4: [Shelly_Set] calling for device SH_DiV2 with command 'pct' and 1 parameters: 85
2024.10.15 08:31:49 4: [Shelly_Set] SH_DiV2 channel is 0
2024.10.15 08:31:49 5: [Shelly_Set] SH_DiV2 'timer_0': no timer to add to pct
2024.10.15 08:31:49 4: [Shelly_Set] setting brightness for device SH_DiV2 to 85
2024.10.15 08:31:49 4: [Shelly_HttpRequest] issue a non-blocking call to http://192.168.0.82/light/0?brightness=85, callback to Shelly_response, dim
2024.10.15 08:31:49 4: [Shelly_Set] calling for device SH_DiV2 with command 'pct' and 1 parameters: 85
2024.10.15 08:31:49 4: [Shelly_Set] SH_DiV2 channel is 0
2024.10.15 08:31:49 5: [Shelly_Set] SH_DiV2 'timer_0': no timer to add to pct
2024.10.15 08:31:49 4: [Shelly_Set] setting brightness for device SH_DiV2 to 85
2024.10.15 08:31:49 4: [Shelly_HttpRequest] issue a non-blocking call to http://192.168.0.82/light/0?brightness=85, callback to Shelly_response, dim
2024.10.15 08:31:49 4: [Shelly_HttpResponse] SH_DiV2 http://192.168.0.82/light/0?brightness=85 returned data: {"ison":false,"source":"http","has_timer":false,"timer_started":0,"timer_duration":0,"timer_remaining":0,"mode":"white","brightness":85,"transition":0}
2024.10.15 08:31:49 5: [Shelly_HttpResponse] SH_DiV2: standard JSON decoding
2024.10.15 08:31:49 5: [Shelly_HttpResponse] SH_DiV2: forwarding JSON-Hash to func: Shelly_response
2024.10.15 08:31:49 5: [Shelly_response] device SH_DiV2 has returned JSON for component dim to set /light
2024.10.15 08:31:49 4: [Shelly_response:dim] ok
2024.10.15 08:31:49 4: [Shelly_status] SH_DiV2: processing Http-Request forced by response_dim, helper=0
2024.10.15 08:31:49 4: [Shelly_status] set STATUS_CALL 'pending' for SH_DiV2
2024.10.15 08:31:49 4: [Shelly_HttpRequest] issue a non-blocking call to http://192.168.0.82/status, callback to Shelly_status1G,
2024.10.15 08:31:49 1: PERL WARNING: Use of uninitialized value $timer in concatenation (.) or string at /opt/fhem/FHEM/36_Shelly.pm line 3275.
2024.10.15 08:31:49 1: stacktrace:
2024.10.15 08:31:49 1:     main::__ANON__                      called by /opt/fhem/FHEM/36_Shelly.pm (3275)
2024.10.15 08:31:49 1:     main::Shelly_status                 called by /opt/fhem/FHEM/36_Shelly.pm (5649)
2024.10.15 08:31:49 1:     main::Shelly_response               called by /opt/fhem/FHEM/36_Shelly.pm (6906)
2024.10.15 08:31:49 1:     main::Shelly_HttpResponse           called by /opt/fhem/FHEM/HttpUtils.pm (755)
2024.10.15 08:31:49 1:     main::__ANON__                      called by fhem.pl (783)
2024.10.15 08:31:49 4: [Shelly_status:A] SH_DiV2: next status call scheduled at INTERVAL in  seconds
2024.10.15 08:31:49 1: PERL WARNING: Use of uninitialized value $timer in numeric gt (>) at /opt/fhem/FHEM/36_Shelly.pm line 3287.
2024.10.15 08:31:49 1: stacktrace:
2024.10.15 08:31:49 1:     main::__ANON__                      called by /opt/fhem/FHEM/36_Shelly.pm (3287)
2024.10.15 08:31:49 1:     main::Shelly_status                 called by /opt/fhem/FHEM/36_Shelly.pm (5649)
2024.10.15 08:31:49 1:     main::Shelly_response               called by /opt/fhem/FHEM/36_Shelly.pm (6906)
2024.10.15 08:31:49 1:     main::Shelly_HttpResponse           called by /opt/fhem/FHEM/HttpUtils.pm (755)
2024.10.15 08:31:49 1:     main::__ANON__                      called by fhem.pl (783)
2024.10.15 08:31:49 4: [Shelly_status] SH_DiV2: scheduled next status update in 10.25 seconds by Shelly_response, helper=0
2024.10.15 08:31:49 4: [Shelly_HttpResponse] SH_DiV2 http://192.168.0.82/light/0?brightness=85 returned data: {"ison":false,"source":"http","has_timer":false,"timer_started":0,"timer_duration":0,"timer_remaining":0,"mode":"white","brightness":85,"transition":0}
2024.10.15 08:31:49 5: [Shelly_HttpResponse] SH_DiV2: standard JSON decoding
2024.10.15 08:31:49 5: [Shelly_HttpResponse] SH_DiV2: forwarding JSON-Hash to func: Shelly_response
2024.10.15 08:31:49 5: [Shelly_response] device SH_DiV2 has returned JSON for component dim to set /light
2024.10.15 08:31:49 4: [Shelly_response:dim] ok
2024.10.15 08:31:49 4: [Shelly_status] SH_DiV2: processing Http-Request forced by response_dim, helper=0
2024.10.15 08:31:49 4: [Shelly_status] SKIPPED STATUS_CALL for SH_DiV2
2024.10.15 08:31:49 4: [Shelly_status] SH_DiV2: scheduled next status update in 10.25 seconds by Shelly_response, helper=0
2024.10.15 08:31:49 5: [Shelly_HttpResponse] incoming STATUS_CALL answer for SH_DiV2, resetting flag
2024.10.15 08:31:49 4: [Shelly_HttpResponse] SH_DiV2 http://192.168.0.82/status returned data: {"wifi_sta":{"connected":true,"ssid":"7270FamWieFritz266","ip":"192.168.0.82","rssi":-62},"cloud":{"enabled":false,"connected":false},"mqtt":{"connected":false},"time":"08:31","unixtime":1728973910,"serial":333,"has_update":false,"mac":"48E729679D9F","cfg_changed_cnt":2,"actions_stats":{"skipped":0},"lights":[{"ison":false,"source":"http","has_timer":false,"timer_started":0,"timer_duration":0,"timer_remaining":0,"mode":"white","brightness":85,"transition":0}],"meters":[{"power":0.00,"overpower":0.00,"is_valid":true, "timestamp":1728981110,"counters":[0.000, 0.000, 0.000],"total":4278}],"inputs":[{"input":1,"event":"","event_cnt":34},{"input":0,"event":"","event_cnt":0}],"tmp":{"tC":41.16,"tF":106.08, "is_valid":true},"calibrated":true,"calib_progress":0,"calib_status":0,"calib_running":0,"wire_mode":1,"forced_neutral":false,"overtemperature":false,"loaderror":0,"overpower":false,"debug":0,"update":{"status":"idle","has_update":false,"new_version":"20230913-114008/v1.14.0-gcb84623","old_version":"20230913-114008/v1.14.0-gcb84623","beta_version":"20231107-164738/v1.14.1-rc1-g0617c15"},"ram_total":49672,"ram_free":37344,"fs_size":233681,"fs_free":118974,"uptime":323076}
2024.10.15 08:31:49 5: [Shelly_HttpResponse] SH_DiV2: standard JSON decoding
2024.10.15 08:31:49 5: [Shelly_HttpResponse] SH_DiV2: forwarding JSON-Hash to func: Shelly_status1G
2024.10.15 08:31:49 5: [Shelly_rssi] returns -62 to device SH_DiV2
2024.10.15 08:31:49 1: PERL WARNING: Use of uninitialized value $intervalN in concatenation (.) or string at /opt/fhem/FHEM/36_Shelly.pm line 3544.
2024.10.15 08:31:49 1: stacktrace:
2024.10.15 08:31:49 1:     main::__ANON__                      called by /opt/fhem/FHEM/36_Shelly.pm (3544)
2024.10.15 08:31:49 1:     main::Shelly_status1G               called by /opt/fhem/FHEM/36_Shelly.pm (6906)
2024.10.15 08:31:49 1:     main::Shelly_HttpResponse           called by /opt/fhem/FHEM/HttpUtils.pm (755)
2024.10.15 08:31:49 1:     main::__ANON__                      called by fhem.pl (783)
2024.10.15 08:31:49 5: [Shelly_status1G] finished processing lights-device SH_DiV2 is shellydimmer and mode is . Next update in  seconds.
2024.10.15 08:31:49 5: [Shelly_firmwarecheck] SH_DiV2: current=20230913-114008/v1.14.0-gcb84623 update=none beta=20231107-164738/v1.14.1-rc1-g0617c15
2024.10.15 08:31:49 5: [Shelly_firmwarecheck] SH_DiV2: v1.14.0 - check for beta-version  - B
2024.10.15 08:31:49 5: [Shelly_status1G] SH_DiV2: Looking for metering values
2024.10.15 08:31:49 5: [Shelly_status1G] SH_DiV2 : power=0 TTL=0, energy=71.3 TTL=4278
2024.10.15 08:31:49 5: [Shelly_status1G] SH_DiV2 has input 0 with state "on"
2024.10.15 08:31:49 5: [Shelly_status1G] SH_DiV2 has input 1 with state "off"
2024.10.15 08:31:49 1: PERL WARNING: Use of uninitialized value in numeric gt (>) at /opt/fhem/FHEM/36_Shelly.pm line 3804.
2024.10.15 08:31:49 1: stacktrace:
2024.10.15 08:31:49 1:     main::__ANON__                      called by /opt/fhem/FHEM/36_Shelly.pm (3804)
2024.10.15 08:31:49 1:     main::Shelly_status1G               called by /opt/fhem/FHEM/36_Shelly.pm (6906)
2024.10.15 08:31:49 1:     main::Shelly_HttpResponse           called by /opt/fhem/FHEM/HttpUtils.pm (755)
2024.10.15 08:31:49 1:     main::__ANON__                      called by fhem.pl (783)
2024.10.15 08:31:53 4: [Shelly_Set] calling for device SH_DiV2 with command 'on', no parameters
2024.10.15 08:31:53 4: [Shelly_Set] SH_DiV2 channel is 0
2024.10.15 08:31:53 5: [Shelly_Set] SH_DiV2 'timer_0': no timer to add to on
2024.10.15 08:31:53 4: [Shelly_Set] switching channel 0 for device SH_DiV2 with command ?turn=on, FF=2
2024.10.15 08:31:53 4: [Shelly_HttpRequest] issue a non-blocking call to http://192.168.0.82/light/0?turn=on, callback to Shelly_response, onoff
2024.10.15 08:31:53 4: [Shelly_HttpResponse] SH_DiV2 http://192.168.0.82/light/0?turn=on returned data: {"ison":true,"source":"http","has_timer":false,"timer_started":0,"timer_duration":0,"timer_remaining":0,"mode":"white","brightness":85,"transition":0}
2024.10.15 08:31:53 5: [Shelly_HttpResponse] SH_DiV2: standard JSON decoding
2024.10.15 08:31:53 5: [Shelly_HttpResponse] SH_DiV2: forwarding JSON-Hash to func: Shelly_response
2024.10.15 08:31:53 5: [Shelly_response] device SH_DiV2 has returned JSON for component onoff to set /light
2024.10.15 08:31:53 4: [Shelly_response:onoff] received callback from SH_DiV2 channel 0 is switched on, no timer set
2024.10.15 08:31:53 4: [Shelly_status] SH_DiV2: scheduled next status update in 0.4 seconds by Shelly_response, helper=0
2024.10.15 08:31:53 4: [Shelly_status] SH_DiV2: processing Http-Request forced by Shelly_Status_, helper=0
2024.10.15 08:31:53 4: [Shelly_status] set STATUS_CALL 'pending' for SH_DiV2
2024.10.15 08:31:53 4: [Shelly_HttpRequest] issue a non-blocking call to http://192.168.0.82/status, callback to Shelly_status1G,
2024.10.15 08:31:53 1: PERL WARNING: Use of uninitialized value $timer in concatenation (.) or string at /opt/fhem/FHEM/36_Shelly.pm line 3275.
2024.10.15 08:31:53 1: stacktrace:
2024.10.15 08:31:53 1:     main::__ANON__                      called by /opt/fhem/FHEM/36_Shelly.pm (3275)
2024.10.15 08:31:53 1:     main::Shelly_status                 called by fhem.pl (3508)
2024.10.15 08:31:53 1:     main::HandleTimeout                 called by fhem.pl (707)
2024.10.15 08:31:53 4: [Shelly_status:A] SH_DiV2: next status call scheduled at INTERVAL in  seconds
2024.10.15 08:31:53 1: PERL WARNING: Use of uninitialized value $timer in numeric gt (>) at /opt/fhem/FHEM/36_Shelly.pm line 3287.
2024.10.15 08:31:53 1: stacktrace:
2024.10.15 08:31:53 1:     main::__ANON__                      called by /opt/fhem/FHEM/36_Shelly.pm (3287)
2024.10.15 08:31:53 1:     main::Shelly_status                 called by fhem.pl (3508)
2024.10.15 08:31:53 1:     main::HandleTimeout                 called by fhem.pl (707)
2024.10.15 08:31:53 5: [Shelly_HttpResponse] incoming STATUS_CALL answer for SH_DiV2, resetting flag
2024.10.15 08:31:53 4: [Shelly_HttpResponse] SH_DiV2 http://192.168.0.82/status returned data: {"wifi_sta":{"connected":true,"ssid":"7270FamWieFritz266","ip":"192.168.0.82","rssi":-59},"cloud":{"enabled":false,"connected":false},"mqtt":{"connected":false},"time":"08:31","unixtime":1728973913,"serial":335,"has_update":false,"mac":"48E729679D9F","cfg_changed_cnt":2,"actions_stats":{"skipped":0},"lights":[{"ison":true,"source":"http","has_timer":false,"timer_started":0,"timer_duration":0,"timer_remaining":0,"mode":"white","brightness":85,"transition":0}],"meters":[{"power":0.00,"overpower":0.00,"is_valid":true, "timestamp":1728981114,"counters":[0.000, 0.000, 0.000],"total":4278}],"inputs":[{"input":1,"event":"","event_cnt":34},{"input":0,"event":"","event_cnt":0}],"tmp":{"tC":41.16,"tF":106.08, "is_valid":true},"calibrated":true,"calib_progress":0,"calib_status":0,"calib_running":0,"wire_mode":1,"forced_neutral":false,"overtemperature":false,"loaderror":0,"overpower":false,"debug":0,"update":{"status":"idle","has_update":false,"new_version":"20230913-114008/v1.14.0-gcb84623","old_version":"20230913-114008/v1.14.0-gcb84623","beta_version":"20231107-164738/v1.14.1-rc1-g0617c15"},"ram_total":49672,"ram_free":37020,"fs_size":233681,"fs_free":118974,"uptime":323080}
2024.10.15 08:31:53 5: [Shelly_HttpResponse] SH_DiV2: standard JSON decoding
2024.10.15 08:31:53 5: [Shelly_HttpResponse] SH_DiV2: forwarding JSON-Hash to func: Shelly_status1G
2024.10.15 08:31:53 5: [Shelly_rssi] returns -59 to device SH_DiV2
2024.10.15 08:31:53 1: PERL WARNING: Use of uninitialized value $intervalN in concatenation (.) or string at /opt/fhem/FHEM/36_Shelly.pm line 3544.
2024.10.15 08:31:53 1: stacktrace:
2024.10.15 08:31:53 1:     main::__ANON__                      called by /opt/fhem/FHEM/36_Shelly.pm (3544)
2024.10.15 08:31:53 1:     main::Shelly_status1G               called by /opt/fhem/FHEM/36_Shelly.pm (6906)
2024.10.15 08:31:53 1:     main::Shelly_HttpResponse           called by /opt/fhem/FHEM/HttpUtils.pm (755)
2024.10.15 08:31:53 1:     main::__ANON__                      called by fhem.pl (783)
2024.10.15 08:31:53 5: [Shelly_status1G] finished processing lights-device SH_DiV2 is shellydimmer and mode is . Next update in  seconds.
2024.10.15 08:31:53 5: [Shelly_firmwarecheck] SH_DiV2: current=20230913-114008/v1.14.0-gcb84623 update=none beta=20231107-164738/v1.14.1-rc1-g0617c15
2024.10.15 08:31:53 5: [Shelly_firmwarecheck] SH_DiV2: v1.14.0 - check for beta-version  - B
2024.10.15 08:31:53 5: [Shelly_status1G] SH_DiV2: Looking for metering values
2024.10.15 08:31:53 5: [Shelly_status1G] SH_DiV2 : power=0 TTL=0, energy=71.3 TTL=4278
2024.10.15 08:31:53 5: [Shelly_status1G] SH_DiV2 has input 0 with state "on"
2024.10.15 08:31:53 5: [Shelly_status1G] SH_DiV2 has input 1 with state "off"
2024.10.15 08:31:53 1: PERL WARNING: Use of uninitialized value in numeric gt (>) at /opt/fhem/FHEM/36_Shelly.pm line 3804.
2024.10.15 08:31:53 1: stacktrace:
2024.10.15 08:31:53 1:     main::__ANON__                      called by /opt/fhem/FHEM/36_Shelly.pm (3804)
2024.10.15 08:31:53 1:     main::Shelly_status1G               called by /opt/fhem/FHEM/36_Shelly.pm (6906)
2024.10.15 08:31:53 1:     main::Shelly_HttpResponse           called by /opt/fhem/FHEM/HttpUtils.pm (755)
2024.10.15 08:31:53 1:     main::__ANON__                      called by fhem.pl (783)
2024.10.15 08:31:55 4: [Shelly_Set] calling for device SH_DiV2 with command 'off', no parameters
2024.10.15 08:31:55 4: [Shelly_Set] SH_DiV2 channel is 0
2024.10.15 08:31:55 5: [Shelly_Set] SH_DiV2 'timer_0': no timer to add to off
2024.10.15 08:31:55 4: [Shelly_Set] switching channel 0 for device SH_DiV2 with command ?turn=off, FF=2
2024.10.15 08:31:55 4: [Shelly_HttpRequest] issue a non-blocking call to http://192.168.0.82/light/0?turn=off, callback to Shelly_response, onoff
2024.10.15 08:31:55 4: [Shelly_HttpResponse] SH_DiV2 http://192.168.0.82/light/0?turn=off returned data: {"ison":false,"source":"http","has_timer":false,"timer_started":0,"timer_duration":0,"timer_remaining":0,"mode":"white","brightness":85,"transition":0}
2024.10.15 08:31:55 5: [Shelly_HttpResponse] SH_DiV2: standard JSON decoding
2024.10.15 08:31:55 5: [Shelly_HttpResponse] SH_DiV2: forwarding JSON-Hash to func: Shelly_response
2024.10.15 08:31:55 5: [Shelly_response] device SH_DiV2 has returned JSON for component onoff to set /light
2024.10.15 08:31:55 4: [Shelly_response:onoff] received callback from SH_DiV2 channel 0 is switched off, no timer set
2024.10.15 08:31:55 4: [Shelly_status] SH_DiV2: scheduled next status update in 0.4 seconds by Shelly_response, helper=0
2024.10.15 08:31:56 4: [Shelly_status] SH_DiV2: processing Http-Request forced by Shelly_Status_, helper=0
2024.10.15 08:31:56 4: [Shelly_status] set STATUS_CALL 'pending' for SH_DiV2
2024.10.15 08:31:56 4: [Shelly_HttpRequest] issue a non-blocking call to http://192.168.0.82/status, callback to Shelly_status1G,
2024.10.15 08:31:56 1: PERL WARNING: Use of uninitialized value $timer in concatenation (.) or string at /opt/fhem/FHEM/36_Shelly.pm line 3275.
2024.10.15 08:31:56 1: stacktrace:
2024.10.15 08:31:56 1:     main::__ANON__                      called by /opt/fhem/FHEM/36_Shelly.pm (3275)
2024.10.15 08:31:56 1:     main::Shelly_status                 called by fhem.pl (3508)
2024.10.15 08:31:56 1:     main::HandleTimeout                 called by fhem.pl (707)
2024.10.15 08:31:56 4: [Shelly_status:A] SH_DiV2: next status call scheduled at INTERVAL in  seconds
2024.10.15 08:31:56 1: PERL WARNING: Use of uninitialized value $timer in numeric gt (>) at /opt/fhem/FHEM/36_Shelly.pm line 3287.
2024.10.15 08:31:56 1: stacktrace:
2024.10.15 08:31:56 1:     main::__ANON__                      called by /opt/fhem/FHEM/36_Shelly.pm (3287)
2024.10.15 08:31:56 1:     main::Shelly_status                 called by fhem.pl (3508)
2024.10.15 08:31:56 1:     main::HandleTimeout                 called by fhem.pl (707)
2024.10.15 08:31:56 5: [Shelly_HttpResponse] incoming STATUS_CALL answer for SH_DiV2, resetting flag
2024.10.15 08:31:56 4: [Shelly_HttpResponse] SH_DiV2 http://192.168.0.82/status returned data: {"wifi_sta":{"connected":true,"ssid":"7270FamWieFritz266","ip":"192.168.0.82","rssi":-61},"cloud":{"enabled":false,"connected":false},"mqtt":{"connected":false},"time":"08:31","unixtime":1728973916,"serial":337,"has_update":false,"mac":"48E729679D9F","cfg_changed_cnt":2,"actions_stats":{"skipped":0},"lights":[{"ison":false,"source":"http","has_timer":false,"timer_started":0,"timer_duration":0,"timer_remaining":0,"mode":"white","brightness":85,"transition":0}],"meters":[{"power":10.76,"overpower":0.00,"is_valid":true, "timestamp":1728981116,"counters":[0.000, 0.000, 0.000],"total":4278}],"inputs":[{"input":1,"event":"","event_cnt":34},{"input":0,"event":"","event_cnt":0}],"tmp":{"tC":41.16,"tF":106.08, "is_valid":true},"calibrated":true,"calib_progress":0,"calib_status":0,"calib_running":0,"wire_mode":1,"forced_neutral":false,"overtemperature":false,"loaderror":0,"overpower":false,"debug":0,"update":{"status":"idle","has_update":false,"new_version":"20230913-114008/v1.14.0-gcb84623","old_version":"20230913-114008/v1.14.0-gcb84623","beta_version":"20231107-164738/v1.14.1-rc1-g0617c15"},"ram_total":49672,"ram_free":36536,"fs_size":233681,"fs_free":118974,"uptime":323082}
2024.10.15 08:31:56 5: [Shelly_HttpResponse] SH_DiV2: standard JSON decoding
2024.10.15 08:31:56 5: [Shelly_HttpResponse] SH_DiV2: forwarding JSON-Hash to func: Shelly_status1G
2024.10.15 08:31:56 5: [Shelly_rssi] returns -61 to device SH_DiV2
2024.10.15 08:31:56 1: PERL WARNING: Use of uninitialized value $intervalN in concatenation (.) or string at /opt/fhem/FHEM/36_Shelly.pm line 3544.
2024.10.15 08:31:56 1: stacktrace:
2024.10.15 08:31:56 1:     main::__ANON__                      called by /opt/fhem/FHEM/36_Shelly.pm (3544)
2024.10.15 08:31:56 1:     main::Shelly_status1G               called by /opt/fhem/FHEM/36_Shelly.pm (6906)
2024.10.15 08:31:56 1:     main::Shelly_HttpResponse           called by /opt/fhem/FHEM/HttpUtils.pm (755)
2024.10.15 08:31:56 1:     main::__ANON__                      called by fhem.pl (783)
2024.10.15 08:31:56 5: [Shelly_status1G] finished processing lights-device SH_DiV2 is shellydimmer and mode is . Next update in  seconds.
2024.10.15 08:31:56 5: [Shelly_firmwarecheck] SH_DiV2: current=20230913-114008/v1.14.0-gcb84623 update=none beta=20231107-164738/v1.14.1-rc1-g0617c15
2024.10.15 08:31:56 5: [Shelly_firmwarecheck] SH_DiV2: v1.14.0 - check for beta-version  - B
2024.10.15 08:31:56 5: [Shelly_status1G] SH_DiV2: Looking for metering values
2024.10.15 08:31:56 5: [Shelly_status1G] SH_DiV2 : power=10.76 TTL=10.76, energy=71.3 TTL=4278
2024.10.15 08:31:56 5: [Shelly_status1G] SH_DiV2 has input 0 with state "on"
2024.10.15 08:31:56 5: [Shelly_status1G] SH_DiV2 has input 1 with state "off"
2024.10.15 08:31:56 1: PERL WARNING: Use of uninitialized value in numeric gt (>) at /opt/fhem/FHEM/36_Shelly.pm line 3804.
2024.10.15 08:31:56 1: stacktrace:
2024.10.15 08:31:56 1:     main::__ANON__                      called by /opt/fhem/FHEM/36_Shelly.pm (3804)
2024.10.15 08:31:56 1:     main::Shelly_status1G               called by /opt/fhem/FHEM/36_Shelly.pm (6906)
2024.10.15 08:31:56 1:     main::Shelly_HttpResponse           called by /opt/fhem/FHEM/HttpUtils.pm (755)
2024.10.15 08:31:56 1:     main::__ANON__                      called by fhem.pl (783)

Hier das List:
define SH_DiV2 Shelly 192.168.0.82
attr SH_DiV2 alexaName Balkon
attr SH_DiV2 alexaRoom Wohnecken
attr SH_DiV2 alias Wohnbereich_Balkon
attr SH_DiV2 genericDeviceType light
attr SH_DiV2 group Beleuchtung
attr SH_DiV2 interval 0
attr SH_DiV2 model shellydimmer
attr SH_DiV2 room Wohnbereich
#   DEF        192.168.0.82
#   FUUID      66f68b96-f33f-0b39-3d2e-256b58e1f73adece
#   NAME       SH_DiV2
#   NR         754
#   NTFY_ORDER 50-SH_DiV2
#   STATE      off
#   StatusCall 0
#   TYPE       Shelly
#   eventCount 106
#   units      0
#   READINGS:
#     2024-10-10 17:45:35   calibrated      yes
#     2024-10-10 17:45:35   cloud           disabled
#     2024-10-14 19:50:23   energy          71.3
#     2024-10-14 19:42:51   error           commands parsed, outstanding call for device SH_DiV2 with command '65', no parameters
#     2024-10-10 17:45:35   firmware        v1.14.0
#     2024-10-10 17:45:35   firmware_beta   20231107-164738/v1.14.1-rc1-g0617c15
#     2024-10-14 19:43:35   firmware_current v1.14.0
#     2024-10-14 19:43:35   firmware_updIcon B
#     2024-10-14 19:43:35   firmware_updText check for beta-version
#     2024-10-12 06:55:02   input_0         on
#     2024-10-13 22:59:40   input_0_cnt     34
#     2024-10-10 17:45:35   input_1         off
#     2024-10-15 08:31:49   inttemp         41.16
#     2024-10-15 08:31:56   light           off
#     2024-10-10 17:45:35   network         <html>connected to <a href="http://192.168.0.82">192.168.0.82</a></html>
#     2024-10-14 19:43:35   network_connection online
#     2024-10-07 11:41:20   network_disconnects 1
#     2024-10-10 17:45:35   network_ip-address 192.168.0.82
#     2024-10-15 08:31:56   network_rssi    -61
#     2024-10-10 17:45:35   network_ssid    7270FamWieFritz266
#     2024-10-10 17:45:35   overpower       0
#     2024-10-15 08:31:49   pct             85
#     2024-10-15 08:31:56   power           10.76
#     2024-10-10 17:45:35   source          http
#     2024-10-10 17:45:34   source_0        http
#     2024-10-15 08:31:56   state           off
#     2024-10-10 17:45:35   timer           0
#     2024-10-10 17:45:34   timer_0         0
#     2024-10-15 08:31:56   uptime          323082 sec, last reboot at 2024-10-11 14:47:14
#   helper:
#     Sets       config interval password reboot:noArg update:noArg name reset:noArg clear:disconnects,error,responsetimes actions on:noArg off:noArg toggle:noArg on-for-timer off-for-timer pct:slider,1,1,100 dim dimup dimdown dim-for-timer calibrate:noArg
#     settings_time 0
#     timer      0
#   hmccu:
#
setstate SH_DiV2 off
setstate SH_DiV2 2024-10-10 17:45:35 calibrated yes
setstate SH_DiV2 2024-10-10 17:45:35 cloud disabled
setstate SH_DiV2 2024-10-14 19:50:23 energy 71.3
setstate SH_DiV2 2024-10-14 19:42:51 error commands parsed, outstanding call for device SH_DiV2 with command '65', no parameters
setstate SH_DiV2 2024-10-10 17:45:35 firmware v1.14.0
setstate SH_DiV2 2024-10-10 17:45:35 firmware_beta 20231107-164738/v1.14.1-rc1-g0617c15
setstate SH_DiV2 2024-10-14 19:43:35 firmware_current v1.14.0
setstate SH_DiV2 2024-10-14 19:43:35 firmware_updIcon B
setstate SH_DiV2 2024-10-14 19:43:35 firmware_updText check for beta-version
setstate SH_DiV2 2024-10-12 06:55:02 input_0 on
setstate SH_DiV2 2024-10-13 22:59:40 input_0_cnt 34
setstate SH_DiV2 2024-10-10 17:45:35 input_1 off
setstate SH_DiV2 2024-10-15 08:31:49 inttemp 41.16
setstate SH_DiV2 2024-10-15 08:31:56 light off
setstate SH_DiV2 2024-10-10 17:45:35 network <html>connected to <a href="http://192.168.0.82">192.168.0.82</a></html>
setstate SH_DiV2 2024-10-14 19:43:35 network_connection online
setstate SH_DiV2 2024-10-07 11:41:20 network_disconnects 1
setstate SH_DiV2 2024-10-10 17:45:35 network_ip-address 192.168.0.82
setstate SH_DiV2 2024-10-15 08:31:56 network_rssi -61
setstate SH_DiV2 2024-10-10 17:45:35 network_ssid 7270FamWieFritz266
setstate SH_DiV2 2024-10-10 17:45:35 overpower 0
setstate SH_DiV2 2024-10-15 08:31:49 pct 85
setstate SH_DiV2 2024-10-15 08:31:56 power 10.76
setstate SH_DiV2 2024-10-10 17:45:35 source http
setstate SH_DiV2 2024-10-10 17:45:34 source_0 http
setstate SH_DiV2 2024-10-15 08:31:56 state off
setstate SH_DiV2 2024-10-10 17:45:35 timer 0
setstate SH_DiV2 2024-10-10 17:45:34 timer_0 0
setstate SH_DiV2 2024-10-15 08:31:56 uptime 323082 sec, last reboot at 2024-10-11 14:47:14

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

carlos

#69
Hallo,
Ich habe mein neues Walldisplay mit der Beta version eingebunden.
Hier fehlt mir das Reading name, bei meinen anderen shellies ist es vorhanden.
Ist das ein bug oder ein Fehler meinerseits?

Gruß
Hubert
FHEM svn auf Intel NUC mit proxmox, 3 Raspberry Pi, signalduino, nanoCUL,  toom Baumarkt Funksteckdosen, einige sonoffs, hue, shelly

Starkstrombastler

Zitat von: JoWiemann am 15 Oktober 2024, 08:35:30attr SH_DiV2 interval 0
Deaktiviertes Polling führt in der Tat zu einer uninitialisierten Variable. Diesen Fall hatte ich so noch nicht auf dem Schirm - Ist in der nächsten Version gefixt!
IPC\Ubuntu + Fhem, 1wire, Shellies, Siemens Logo!, Z-Wave, PhilipsTV, Vu+duo2, KM200

Starkstrombastler

Zitat von: carlos am 16 Oktober 2024, 14:45:08Hier fehlt mir das Reading name, bei meinen anderen shellies ist es vorhanden.
Beim Walldisplay ist 'name' nicht in der 'DeviceInfo' enthalten, bei den anderen Gen2-Shellies schon. Wird in der nächsten Version auf die 'Config'-Abfrage geändert.
IPC\Ubuntu + Fhem, 1wire, Shellies, Siemens Logo!, Z-Wave, PhilipsTV, Vu+duo2, KM200

carlos

#72
Alles klar.
Ich habe noch ein anderes Problem mit dem rangeextender und den Clients.
Ich lasse mir im stateFormat des rangeextenders die CLients anzeigen mit Namen, die du, wie ich verstanden habe,  über das Internal MAC bei den devices bestimmst.
Genau da verschwindet aber nach einiger Zeit das Internal MAC aus dem device.
Wenn ich dann ein modify def mache ist es wieder da.

Es ist seltsam, aber ich habe keinen Neustart von fhem gemacht.
Keine Ahnung was die Ursache dafür ist.

Gruß

Hubert
FHEM svn auf Intel NUC mit proxmox, 3 Raspberry Pi, signalduino, nanoCUL,  toom Baumarkt Funksteckdosen, einige sonoffs, hue, shelly

VB90

#73
Ich verfolge das hier immer ganz gespannt und bin total begeistert. Danke für euren Einsatz und Mühen.

Mal eine Frage zwischendurch, vielleicht habe ich die Lösung auch überlesen, oder denke mal wieder zu kompliziert  :o

Ich nutze mehrere Shelly Plus1pm inklusive AddOn.
Daran hängen mehrere Fühler, DS18B20.
Funktioniert auch problemlos, meistens.

Wenn der Shelly stromlos war, passiert es hin und wieder, das er die Sensoren in einer anderen Reihenfolge erkennt, als bisher.
Um mir das sortieren einfacher zu machen, habe ich im Shelly, die Sensoren gemäß ihrer Verwendung umbenannt und eindeutige Namen vergeben.

Besteht die Chance, diesen Namen auch ins FHEM zu bekommen?

Bislang bekomme ich dort nur bspw. "temperature_0", mit dem entsprechenden Wert als Reading.
"Neuerdings" in einem Zweiten (temperature_0_sensor) auch noch die interne Nummerierung sowie die Serial des Sensors. 
Wobei diese Serial anders ist als im Shelly. Bsp: Shelly: 40:120:161:241:95:32:1:156 <-> Reading in FHEM: 28:78:A1:F1:5F:20:01:9C
Soweit so gut, aber damit bekomme ich auch keine Ordnung ins System.

Wenn man die "Klarnamen" des Sensors als Reading mit übergeben könnte, wäre mir egal, auf welchem internen Platz der erkannt wurde.

Danke.

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

Starkstrombastler

Zitat von: carlos am 18 Oktober 2024, 19:04:02Ich lasse mir im stateFormat des rangeextenders die CLients anzeigen mit Namen, die du, wie ich verstanden habe,  über das Internal MAC bei den devices bestimmst.
Genau da verschwindet aber nach einiger Zeit das Internal MAC aus dem device.
Das Internal verschwindet bei Neustart, klar. Aber ohne Neustart? Wie auch immer, künftig wird das Reading 'mac' abgefragt, damit sollte das Problem vom Tisch sein.
IPC\Ubuntu + Fhem, 1wire, Shellies, Siemens Logo!, Z-Wave, PhilipsTV, Vu+duo2, KM200