[gelöst] Shelly Plus 1 - Anbindung

Begonnen von smoudo, 26 Dezember 2021, 15:58:21

Vorheriges Thema - Nächstes Thema

Helmi55

Servus Claudio

ja das funktioniert ohne Probleme. Es erscheint lediglich beim Drücken rechts der kleine grüne, runde Pfeil (toggle).
Aber das ist keine Sekunde.
Ich kann vom Shelly aus schalten und auch aus FHEM heraus.

@87insane Was mir auffällt, bei den "alten" Shellies kam man beim Klick auf den grünen Punkt direkt auf die Website des Shellies.       
                 Das funkt hier leider nicht. Ist aber kein muss, war nur ein nice to have

Gruß
Helmut
System1 fhem 6.1 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.1 auf RPi 4B mit 4GB (Bullseye) mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/

vic

Hallo Helmut

In dem Fall kann es nur am unterschied Shellyplus1 und Shellyplus1pm liegen. Etwas anderes kann ich mir nicht erklären. Werde bei nächster Gelegenheit ein pm kaufen.

Danke für eure Hilfe

Beste Grüsse
Claudio
Raspberry Pi 4
RFXTRX 868MHz und 433MHz
FS20, Intertechno, Homematic, Shelly
MAX!-Cube, Philips HUE-Bridge

87insane

Shelly ganz am Ende neu gestartet? Bei mir geht das klicken auf die Webseite. Also da bei mir alles geht, bin ich noch immer verwundert. Raw Editor auf und einfach übernehmen + eben Namen des shelly anpassen. (An allen stellen).

Was genau passiert denn wenn du auf den Grünen Punkt klickst?

Helmi55

#48
Servus
Wenn ich auf den grünen Punkt klicke erscheint
,,Safari kann die Seite nicht öffnen da Server nicht gefunden"
Obwohl sonst alles schalttechnisch funktioniert
Gruß Helmut
System1 fhem 6.1 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.1 auf RPi 4B mit 4GB (Bullseye) mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/

87insane

Ich glaube das Thema Gerät anlegen, können wir hier in großer "Lernrunde" mal angehen.


devStateIcon mal ein wenig erklärt:
Vorwort: Es gibt natürlich immer verschiedene Wege !
In diesem Fall ist es so:

1. Damit der grüne Punkt grün/rot werden kann, braucht er das Reading "online". Für gelb wird das Reading "new_fw" abgefragt.
{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);


2. Im nächsten Schritt wird hier alles gesammelt, was man so haben will. In dem Fall Watt, IP usw.
Wie man hier sieht, werden die Werte der verschiedenen Readings einfach in eine Variable geschrieben.
Damit irgendwas in eine Variable geschrieben werden kann, muss es natürlich auch da sein. Nehmen wir mal an ich habe im Shelly nicht
alles korrekt eingestellt oder den Shelly nicht neu gestartet, dann hab ich z.B. kein IP Reading und somit auch keine IP.
Wie man hier gut sehen kann, hat "ReadingsVal" eine Art "Fallback". Wenn das Reading "ip" nicht existiert, nimmt er "none", was
dann natürlich in deinem Safari/Chrome usw nicht aufgelöst werden kann.
my $light = ReadingsVal($name,'state','false');
$light = FW_makeImage($light);
my $cons = ReadingsNum($name,'apower',0);
my $total = round(ReadingsNum($name,'aenergy_total',0)/1000,1);
my $temp = ReadingsVal($name,'temperature','-100');
my $ip = ReadingsVal($name,'ip','none');


3. In diesem Schritt, wird alles angezeigt. Hier werden mit Hilfe von z.B. HTML einfach die verschiedenen Bauteile zusammen gesteckt.
Hier sieht man z.B. aber auch den Link, der hinter dem grünen Punkt steckt.
qq(<a href="http://$ip"target="_blank">${onl}</a><a href="/fhem?cmd.dummy=set $name toggle&XHR=1">${light}</a><div>Verbrauch: $cons W / Total: $total kwh / Temp: $temp °C</div>)}

Ich bitte wirklich noch einmal darum, Fehler mit der Meldung: "geht nicht" etwas besser zu beschreiben oder eben mit RAW oder oder oder. Aber keiner von Euch, fährt in die
Autowerkstatt und sagt, geht nicht und geht wieder. Ich bin weder in Eurem Kopf noch stehe ich daneben ;)

Hinweis: Es sollte ein neues Template im SVN sein ;) In dem wurde dann erstmal so übernommen. Auch da stecken noch Fehler drin. Deswegen bitte nochmal aufmerksam hier mit testen und dann läuft das schon. Ich möchte an der Stelle darauf hinweisen, bei mir geht das alles ;) Also ich erfinde das nicht neu oder so....

Weitere Fragen dazu, bitte gern. Ggf. bekommen wir ja die Fehlenden Puzzelteile in Euren/meinen Kopf :)

vic

Danke 87insane für die ausführlichen Rückmeldungen. Dachte dass ich die Beschreibungen so genau wie möglich erstellt hatte.

Unterdessen habe ich folgendes versucht:
Komplett neues ShellyPlus_1 angeschlossen.
Unter dem WebGui des Shelly die Parameter WIFI (Bild 1) und MQTT (Bild 2) angepasst.
Anschliessend unter FHEM
Dem angelernten Device die CID wegkopiert (shellyplus1_a8032abcd684)
Im Editor deine RAW eingefügt.

defmod MQTT2_shellyplus1pm_7c87ce657e74 MQTT2_DEVICE shellyplus1pm_7c87ce657e74
attr MQTT2_shellyplus1pm_7c87ce657e74 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,'output','false') =~ m{false|off}?'off':'on';; $light = FW_makeImage($light);; my $cons = ReadingsNum($name,'apower',0);; my $total = round(ReadingsNum($name,'aenergy_total',0)/1000,1);; my $temp = ReadingsVal($name,'temperature','-100');; 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><div>Verbrauch: $cons W / Total: $total kwh / Temp: $temp °C</div>)}
attr MQTT2_shellyplus1pm_7c87ce657e74 devicetopic shellyplus1pm-7c87ce657e74
attr MQTT2_shellyplus1pm_7c87ce657e74 event-on-change-reading .*
attr MQTT2_shellyplus1pm_7c87ce657e74 genericDeviceType switch
attr MQTT2_shellyplus1pm_7c87ce657e74 jsonMap params_switch_0_aenergy_total:aenergy_total switch_0_apower:apower switch_0_temperature_tC:temperature switch_0_temperature_tF:0 params_wifi_sta_ip:ip
attr MQTT2_shellyplus1pm_7c87ce657e74 model shellyPlus_1pm
attr MQTT2_shellyplus1pm_7c87ce657e74 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) }\
  fhem/rpc:.* { json2nameValue($EVENT,'rpc_',$JSONMAP) }
attr MQTT2_shellyplus1pm_7c87ce657e74 room MQTT2_DEVICE
attr MQTT2_shellyplus1pm_7c87ce657e74 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"}

setstate MQTT2_shellyplus1pm_7c87ce657e74 toggle
setstate MQTT2_shellyplus1pm_7c87ce657e74 2021-12-24 11:42:44 aenergy_total 0.000
setstate MQTT2_shellyplus1pm_7c87ce657e74 2021-12-24 11:42:00 apower 0.0
setstate MQTT2_shellyplus1pm_7c87ce657e74 2021-12-24 11:43:38 dst shellyplus1pm-7c87ce657e74/events


die CID angepasst shellyplus1pm_7c87ce657e74 --> shellyplus1_a8032abcd684  und   shellyplus1pm-7c87ce657e74 --> shellyplus1-a8032abcd684

Shelly neu gestartet
FHEM neu gestartet nach dem Neustart erschien die Meldung unknown attribute genericDeviceType (Bild 3). Attribut entfernt

Das Shelly reagierte nicht --> attribut model von shellyPluspm auf shellyPlus geändert

Nun reagiert das Shelly bei Klick auf dem Lampen-Symbol und bei Klick auf on oder off.
Das Lampensymbol jedoch bleibt erhalten FS20.off (Bild 4)
Die Modi online (Bild 5) oder offline (Bild 6) reagieren wie gewünscht.
Wenn ich auf den grünen Kreis klicke erscheint die Website des Shelly (wie gewünscht)

Hier noch mein RAW
defmod MQTT2_shellyplus1_a8032abcd684 MQTT2_DEVICE shellyplus1_a8032abcd684
attr MQTT2_shellyplus1_a8032abcd684 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,'output','false') =~ m{false|off}?'off':'on';; $light = FW_makeImage($light);; my $cons = ReadingsNum($name,'apower',0);; my $total = round(ReadingsNum($name,'aenergy_total',0)/1000,1);; my $temp = ReadingsVal($name,'temperature','-100');; 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><div>Verbrauch: $cons W / Total: $total kwh / Temp: $temp °C</div>)}
attr MQTT2_shellyplus1_a8032abcd684 devicetopic shellyplus1-a8032abcd684
attr MQTT2_shellyplus1_a8032abcd684 event-on-change-reading .*
attr MQTT2_shellyplus1_a8032abcd684 jsonMap params_switch_0_aenergy_total:aenergy_total switch_0_apower:apower switch_0_temperature_tC:temperature switch_0_temperature_tF:0 params_wifi_sta_ip:ip
attr MQTT2_shellyplus1_a8032abcd684 model shellyPlus_1
attr MQTT2_shellyplus1_a8032abcd684 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) }\
  fhem/rpc:.* { json2nameValue($EVENT,'rpc_',$JSONMAP) }\
shellyplus1_a8032abcd684:shellyplus1-a8032abcd684/online:.* online
attr MQTT2_shellyplus1_a8032abcd684 room MQTT2_DEVICE
attr MQTT2_shellyplus1_a8032abcd684 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"}

setstate MQTT2_shellyplus1_a8032abcd684 off
setstate MQTT2_shellyplus1_a8032abcd684 2022-01-06 08:03:52 IODev MQTT2
setstate MQTT2_shellyplus1_a8032abcd684 2022-01-06 08:27:06 dst shellyplus1-a8032abcd684/events
setstate MQTT2_shellyplus1_a8032abcd684 2022-01-06 08:27:00 ip 192.168.10.168
setstate MQTT2_shellyplus1_a8032abcd684 2022-01-06 08:27:06 method NotifyStatus
setstate MQTT2_shellyplus1_a8032abcd684 2022-01-06 08:26:59 online true
setstate MQTT2_shellyplus1_a8032abcd684 2022-01-06 08:27:00 params_mqtt_connected true
setstate MQTT2_shellyplus1_a8032abcd684 2022-01-06 08:27:00 params_switch_0_id 0
setstate MQTT2_shellyplus1_a8032abcd684 2022-01-06 08:16:41 params_switch_0_output false
setstate MQTT2_shellyplus1_a8032abcd684 2022-01-06 08:16:41 params_switch_0_source MQTT
setstate MQTT2_shellyplus1_a8032abcd684 2022-01-06 08:27:00 params_switch_0_temperature_tC 42.45
setstate MQTT2_shellyplus1_a8032abcd684 2022-01-06 08:27:00 params_switch_0_temperature_tF 108.41
setstate MQTT2_shellyplus1_a8032abcd684 2022-01-06 08:27:06 params_sys_available_updates_beta_version 0.9.2-beta2
setstate MQTT2_shellyplus1_a8032abcd684 2022-01-06 08:27:06 params_sys_available_updates_stable_version 0.9.1
setstate MQTT2_shellyplus1_a8032abcd684 2022-01-06 08:27:06 params_ts 1641454026.53
setstate MQTT2_shellyplus1_a8032abcd684 2022-01-06 08:27:00 params_wifi_rssi -52
setstate MQTT2_shellyplus1_a8032abcd684 2022-01-06 08:27:00 params_wifi_ssid Lienta_01
setstate MQTT2_shellyplus1_a8032abcd684 2022-01-06 08:27:00 params_wifi_status got ip
setstate MQTT2_shellyplus1_a8032abcd684 2022-01-06 08:16:41 rpc_dst fhem
setstate MQTT2_shellyplus1_a8032abcd684 2022-01-06 08:16:41 rpc_id 0
setstate MQTT2_shellyplus1_a8032abcd684 2022-01-06 08:16:41 rpc_result_was_on true
setstate MQTT2_shellyplus1_a8032abcd684 2022-01-06 08:16:41 rpc_src shellyplus1-a8032abcd684
setstate MQTT2_shellyplus1_a8032abcd684 2022-01-06 08:27:06 src shellyplus1-a8032abcd684
setstate MQTT2_shellyplus1_a8032abcd684 2022-01-06 08:16:41 state off



Ich weiss nun wirklich nicht wo der Schuh drückt.

Grüsse
Claudio
Raspberry Pi 4
RFXTRX 868MHz und 433MHz
FS20, Intertechno, Homematic, Shelly
MAX!-Cube, Philips HUE-Bridge

OdfFhem

@vic

zunächst einmal zum MQTT-Screenshot: Welche "Firmware version" hast Du ?
Ich selbst nutze keinen ShellyPLUS1, sondern einen ShellyPLUS1PM mit "Firmware version" 0.9.1 und der MQTT-Screenshot sieht deutlich erweitert aus ...

Bzgl. Lampensymbol: Im Attribut devStateIcon basiert der Lampenstatus auf ReadingsVal($name,'output','false'). Laut Deinem RAW hast Du kein solches Reading, sondern heisst bei Dir (noch) params_switch_0_output

Helmi55

Hallo 87insane

Danke für das neue Template!
Habe soeben ein update in FHEM gemacht und nun sieht es super aus
Hier ein aktuelles RAW von meinem plus1pm
defmod PVAnlage MQTT2_DEVICE shellyplus1pm_44179394cab4
attr PVAnlage 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 = FW_makeImage(ReadingsVal($name,'state','off'));; my $cons = ReadingsNum($name,'apower',0);; my $total = round(ReadingsNum($name,'aenergy_total',0)/1000,1);; my $temp = ReadingsVal($name,'temperature','-100');; 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><div>Verbrauch: $cons W / Total: $total kwh / Temp: $temp °C</div>)}
attr PVAnlage devicetopic shellyplus1pm-44179394cab4
attr PVAnlage event-on-change-reading .*
attr PVAnlage icon message_socket
attr PVAnlage jsonMap switch_state:state params_switch_0_aenergy_total:aenergy_total switch_apower:apower switch_temperature_tC:temperature switch_temperature_tF:0 params_wifi_sta_ip:ip
attr PVAnlage model shellyPlus_1pm
attr PVAnlage 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:.* { $EVENT =~ s/"output":true/"state":"on"/g;; $EVENT =~ s/"output":false/"state":"off"/g;; json2nameValue($EVENT, 'switch_', $JSONMAP) }\
  fhem2shelly/rpc:.* {}
attr PVAnlage room PV Anlage,MQTT2_DEVICE
attr PVAnlage setList toggle:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Switch.Toggle","params": {"id":0}}\
  off:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Switch.Set","params": {"id":0,"on":false}}\
  on:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Switch.Set","params": {"id":0,"on":true}}\
  on-for-timer $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Switch.Set","params": {"id":0,"on":true,"toggle_after":$EVTPART1}}\
  x_update:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Shelly.Update","params": {"stage":"stable"}}\
  x_reboot:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Shelly.Reboot"}
attr PVAnlage setStateList on off toggle
attr PVAnlage userReadings relay_0_energy_kWh:params_switch_0_aenergy_total.* monotonic {ReadingsVal($NAME,"params_switch_0_aenergy_total",0)/1000.0}, Ertrag:relay_0_energy_kWh.* { sprintf("%.2f",(ReadingsVal($NAME,"relay_0_energy_kWh",0) - 0.00)*.2);;;;}
attr PVAnlage webCmd :


Es erscheint auch die Weboberfläche des Shellies beim Klick auf den grünen Punkt

Danke für deine Zeit und Hilfe - vor allem Geduld mit den Unwissenden

Helmut

System1 fhem 6.1 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.1 auf RPi 4B mit 4GB (Bullseye) mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/

smoudo

jetzt bin ich vollends verwirrt  ;D

Ich habe fhem geupdated und das neue template eingespielt.
Sowohl als shellyPlus_1 als auch shellyPlus_1pm probiert.
In beiden fällen bekomme ich jetzt im state wenn ich on:off als webcmd betätige den Wert "set_off" oder "set_on" und bei betätigung des icon "set_toggle"
Was noch nie ging ist die Temperatur Anzeige. Das reading war auch nach neuanlegen erstmal nicht da. Habe ich manuell hinzugefügt um die funktion zu sehen.

Anbei mein RAW:
efmod Strom_Strasse MQTT2_DEVICE shellyplus1_a8032abcdffc
attr Strom_Strasse 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 = FW_makeImage(ReadingsVal($name,'state','off'));; my $cons = ReadingsNum($name,'apower',0);; my $total = round(ReadingsNum($name,'aenergy_total',0)/1000,1);; my $temp = ReadingsVal($name,'temperature','-100');; 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><div>Verbrauch: $cons W / Total: $total kwh / Temp: $temp °C</div>)}
attr Strom_Strasse devicetopic shellyplus1-a8032abcdffc
attr Strom_Strasse event-on-change-reading .*
attr Strom_Strasse group Aussensteckdosen
attr Strom_Strasse icon message_socket
attr Strom_Strasse jsonMap switch_state:state params_switch_0_aenergy_total:aenergy_total switch_apower:apower switch_temperature_tC:temperature switch_temperature_tF:0 params_wifi_sta_ip:ip
attr Strom_Strasse model shellyPlus_1pm
attr Strom_Strasse 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:.* { $EVENT =~ s/"output":true/"state":"on"/g;; $EVENT =~ s/"output":false/"state":"off"/g;; json2nameValue($EVENT, 'switch_', $JSONMAP) }\
  fhem2shelly/rpc:.* {}
attr Strom_Strasse room Outdoor
attr Strom_Strasse setList toggle:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Switch.Toggle","params": {"id":0}}\
  off:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Switch.Set","params": {"id":0,"on":false}}\
  on:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Switch.Set","params": {"id":0,"on":true}}\
  on-for-timer $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Switch.Set","params": {"id":0,"on":true,"toggle_after":$EVTPART1}}\
  x_update:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Shelly.Update","params": {"stage":"stable"}}\
  x_reboot:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Shelly.Reboot"}
attr Strom_Strasse setStateList on off toggle
attr Strom_Strasse userReadings relay_0_energy_kWh:params_switch_0_aenergy_total.* monotonic {ReadingsVal($NAME,"params_switch_0_aenergy_total",0)/1000.0}, Ertrag:relay_0_energy_kWh.* { sprintf("%.2f",(ReadingsVal($NAME,"relay_0_energy_kWh",0) - 0.01)*.2);;;;}
attr Strom_Strasse webCmd : on:off

setstate Strom_Strasse set_toggle
setstate Strom_Strasse 2022-01-07 01:24:35 IODev MQTT2_FHEM_Server
setstate Strom_Strasse 2022-01-07 01:21:59 attrTemplateVersion 20220104
setstate Strom_Strasse 2022-01-07 01:29:01 dst shellyplus1-a8032abcdffc/events
setstate Strom_Strasse 2022-01-07 01:22:11 ip 192.168.1.50
setstate Strom_Strasse 2022-01-07 01:29:01 method NotifyStatus
setstate Strom_Strasse 2022-01-07 01:22:11 online true
setstate Strom_Strasse 2022-01-07 01:22:11 params_mqtt_connected true
setstate Strom_Strasse 2022-01-07 01:29:01 params_switch_0_id 0
setstate Strom_Strasse 2022-01-07 01:29:01 params_switch_0_output true
setstate Strom_Strasse 2022-01-07 01:29:01 params_switch_0_source MQTT
setstate Strom_Strasse 2021-12-31 21:28:32 params_switch_0_temperature_tC 48.48
setstate Strom_Strasse 2021-12-31 21:28:32 params_switch_0_temperature_tF 119.26
setstate Strom_Strasse 2022-01-07 01:22:20 params_sys_available_updates_beta_version 0.9.2-beta2
setstate Strom_Strasse 2022-01-07 01:29:01 params_ts 1641515341.55
setstate Strom_Strasse 2022-01-07 01:22:11 params_wifi_rssi -57
setstate Strom_Strasse 2022-01-07 01:22:11 params_wifi_ssid homenet 24
setstate Strom_Strasse 2022-01-07 01:22:11 params_wifi_status got ip
setstate Strom_Strasse 2022-01-07 01:29:01 src shellyplus1-a8032abcdffc
setstate Strom_Strasse 2022-01-07 01:29:01 state set_toggle


Ich hänge noch ein paar screenshots an zum verdeutlichen des problems.

Nochmals vielen Dank für Eure Geduld und Hilfe!!

Viele Grüße

Matze



OdfFhem

@smoudo

set_on, set_off und set_toggle hängen mit dem Attribut setStateList zusammen.
devStateIcon geht für die $light-Variable auf das state-Reading und findet zumindest für toggle anschließend kein verwenbares Icon.

Beim Attribut jsonMap geht man meist davon aus, dass man die "neuen" Werte über das switch_0-Subtopic bekommt. Dafür müsste man aber  "Generic status update over MQTT" aktiviert haben, ansonsten bekommt man über diesen Weg keine Info. Ich würde den aber ausser für Testzwecke auch nicht einschalten, da ich mit den weiter oben gezeigten Einstellungen beim bisherigen Firmware-Entwicklungsstand auf dem aktuellen Stand gehalten werde.
Ob es den Generic-Schalter beim plus1 überhaupt gibt, kann ich nicht sagen, da ich nur plus1pm einsetze.

vic

#55
@OdfFhem
Die Firmware-Version ist 0.9.1.     VIELEN DANK!!!! Das war das fehlende Puzzleteil. Ich habe im devStateIcon folgende Anpassung vorgenommen:
von
ReadingsVal($name,'output','false')

auf
ReadingsVal($name,'params_switch_0_output','false')

Jetzt funktioniert alles so wie ich es gerne hätte

Anbei noch mein RAW für interessierte:
defmod SH_AKT_149_AntiMuecken MQTT2_DEVICE shellyplus1_a8032abcd5e8
attr SH_AKT_149_AntiMuecken alias Anti-Mücken
attr SH_AKT_149_AntiMuecken 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,'params_switch_0_output','false') =~ m{false|off}?'off':'on';;;; $light = FW_makeImage($light);;;; my $cons = ReadingsNum($name,'apower',0);;;; my $total = round(ReadingsNum($name,'aenergy_total',0)/1000,1);;;; my $temp = ReadingsVal($name,'temperature','-100');;;; 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><div></div>)}
attr SH_AKT_149_AntiMuecken devicetopic shellyplus1-a8032abcd5e8
attr SH_AKT_149_AntiMuecken event-on-change-reading .*
attr SH_AKT_149_AntiMuecken group Sommer
attr SH_AKT_149_AntiMuecken icon message_socket
attr SH_AKT_149_AntiMuecken jsonMap params_switch_0_aenergy_total:aenergy_total switch_0_apower:apower switch_0_temperature_tC:temperature switch_0_temperature_tF:0 params_wifi_sta_ip:ip
attr SH_AKT_149_AntiMuecken model shellyPlus_1
attr SH_AKT_149_AntiMuecken 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) }\
  fhem/rpc:.* { json2nameValue($EVENT,'rpc_',$JSONMAP) }\
shellyplus1_a8032abcd5e8:shellyplus1-a8032abcd5e8/online:.* online
attr SH_AKT_149_AntiMuecken room MQTT2_DEVICE
attr SH_AKT_149_AntiMuecken 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"}
attr SH_AKT_149_AntiMuecken webCmd :

setstate SH_AKT_149_AntiMuecken toggle
setstate SH_AKT_149_AntiMuecken 2022-01-07 12:37:26 IODev MQTT2
setstate SH_AKT_149_AntiMuecken 2022-01-07 12:45:21 dst shellyplus1-a8032abcd5e8/events
setstate SH_AKT_149_AntiMuecken 2022-01-07 12:41:31 ip 192.168.10.149
setstate SH_AKT_149_AntiMuecken 2022-01-07 12:45:21 method NotifyStatus
setstate SH_AKT_149_AntiMuecken 2022-01-07 12:41:31 online true
setstate SH_AKT_149_AntiMuecken 2022-01-07 12:41:31 params_mqtt_connected true
setstate SH_AKT_149_AntiMuecken 2022-01-07 12:45:21 params_switch_0_id 0
setstate SH_AKT_149_AntiMuecken 2022-01-07 12:45:21 params_switch_0_output false
setstate SH_AKT_149_AntiMuecken 2022-01-07 12:45:21 params_switch_0_source MQTT
setstate SH_AKT_149_AntiMuecken 2022-01-07 12:41:31 params_switch_0_temperature_tC 49.57
setstate SH_AKT_149_AntiMuecken 2022-01-07 12:41:31 params_switch_0_temperature_tF 121.22
setstate SH_AKT_149_AntiMuecken 2022-01-07 12:41:39 params_sys_available_updates_stable_version 0.9.1
setstate SH_AKT_149_AntiMuecken 2022-01-07 12:45:21 params_ts 1641555921.75
setstate SH_AKT_149_AntiMuecken 2022-01-07 12:41:31 params_wifi_rssi -66
setstate SH_AKT_149_AntiMuecken 2022-01-07 12:41:31 params_wifi_ssid Lienta_01
setstate SH_AKT_149_AntiMuecken 2022-01-04 16:44:54 params_wifi_sta_ip 192.168.10.149
setstate SH_AKT_149_AntiMuecken 2022-01-07 12:41:31 params_wifi_status got ip
setstate SH_AKT_149_AntiMuecken 2022-01-07 12:45:21 rpc_dst fhem
setstate SH_AKT_149_AntiMuecken 2022-01-07 12:45:21 rpc_id 0
setstate SH_AKT_149_AntiMuecken 2022-01-07 12:45:21 rpc_result_was_on true
setstate SH_AKT_149_AntiMuecken 2022-01-07 12:45:21 rpc_src shellyplus1-a8032abcd5e8
setstate SH_AKT_149_AntiMuecken 2022-01-07 12:45:21 src shellyplus1-a8032abcd5e8
setstate SH_AKT_149_AntiMuecken 2022-01-07 12:45:21 state toggle



Vielen Dank euch allen... besonders für eure Hartnäckigkeit

@Matze
Bin gespannt auf deine Rückmeldung
Raspberry Pi 4
RFXTRX 868MHz und 433MHz
FS20, Intertechno, Homematic, Shelly
MAX!-Cube, Philips HUE-Bridge

Beta-User

...jetzt schreibe ich doch noch was direkt un diesen Thread im falschen Forenbereich...
ZitatAnbei noch mein RAW für interessierte
Das ist nicht gut! Gründe siehe Shelly-attrTemplate-Thread.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

smoudo

Hallo @Beta-User,

schön mal wieder was von Dir zu lesen.
Mittlerweile gehört der Thread wirklich in den MQTT Bereich. Anfangs war es eher ein ,,Findungsthread" wie man mit den neuen Shellytierchen am besten umgeht  ;)
Währe klasse wenn es ein mod verschieben könnte. Ein separater Shelly Bereich währe auch nice. Man sieht ja an dem Thread das es wohl generell Bedarf gibt. Obwohl ich hier schon einige Zeit mit anderen Systemen hantiere, hab ich mir bei Shelly das passende zu finden, schwer getan. Eigenes Modul, mqtt, ...? Irgendwie war das ganze mit den sonoffs +espeasy einfacher. Ich freue mich aber tierisch das uns hier so toll geholfen wird.

Viele Grüße

Matze

@vic

Ich werde es nachher testen wenn ich wieder am Rechner bin! Danke!!

smoudo

@vic funktioniert jetzt alles top mit den ícons.
Einzig die Systemtemperaturen werden nicht mehr übertragen. Damit kann ich aber leben. Das habe ich auf anderen Geräten auch nicht.
Ich hab mir jetzt testweise noch 2 ShellyPlus_1pm bestellt zum testen. Habe zwar generell nicht den Meteringbedarf, bei den 50ct. aufpreis aber grad wurscht  :D

Viele Grüße

Matze

Beta-User

Zitat von: smoudo am 07 Januar 2022, 13:14:27
Mittlerweile gehört der Thread wirklich in den MQTT Bereich. Anfangs war es eher ein ,,Findungsthread" wie man mit den neuen Shellytierchen am besten umgeht  ;)
Währe klasse wenn es ein mod verschieben könnte.
In der Findungsphase war es ja ok, aber jetzt ist es nur noch MQTT... Eigene Threads verschieben kann jeder User selbst (unter dem Thread links ist ein Knopf).

Zitat
Ein separater Shelly Bereich währe auch nice.
MAn. wäre das kontraproduktiv. Die hier beschrieben Probleme sind nicht wirklich Shelly-spezifisch, und mehr Forenbereiche bringen nicht mehr Übersicht.

ZitatIrgendwie war das ganze mit den sonoffs +espeasy einfacher.
Jein. Es war halt jeweils einheitlich. Ist es hier bei den Shelly im Prinzip auch, der Rest sind MQTT2-Bordmittel, die Bausteinchen für eine gute Lösung sind schon lange vorhanden.

Zitat von: smoudo am 07 Januar 2022, 19:23:39
@vic funktioniert jetzt alles top mit den ícons.
Nochmal: Diese "Lösung" ist "nicht gut"! Gesendet wird "A", es wird aber nicht auf "A" zurückgemappt, was als Antwort kommt => UNTAUGLICH! Problem kaschiert, aber nicht effektiv gelöst!

Just m2*2 ct.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files