Diskussion zu Shelly Gen2 MQTT Wikieintrag

Begonnen von draddy, 05 März 2022, 11:32:44

Vorheriges Thema - Nächstes Thema

draddy

Zitat von: Beta-User am 05 März 2022, 07:43:04
Hi zurück,

Danke für den Input.

Erste Fassung ist in https://wiki.fhem.de/wiki/MQTT2-Module_-_Praxisbeispiele#Shelly_Gen2. Muss das noch nacharbeiten und das mit dem "normalen" list ist m.E. auch im 1rst Gen (wo das "abgeschrieben" wurde) nicht optimal, da sollte eigentlich überall RAW stehen.
Es ist nach meinem Geschmack noch etwas sehr "frei" geschrieben, und der "toggle" ist bereits (update heute) im attrTemplate drin, also per default vorhanden.

Wenn möglich bitte auch (am einfachsten mit einer Kopie per RAW) das überarbeitete attrTemplate testen :) .

Im Zweifel einfach einen neuen Thread in https://forum.fhem.de/index.php/board,80.0.html dazu starten, und ich bin auch nicht böse, wenn einer der anderen "Wissenden" zum Thema Wiki und Shelly 2nd Gen. das direkt passend einpflegt.

moin,
jau, hatte auch zuerst  RAW bis ich gemerkt hab das ihr bei Gen1  List habt -  ::) ;D

willst du das RAW lieber vom "wurde frisch erkannt" oder nach Template Wahl oder beides? ^^

ausserdem, es hat ja keiner gesagt du sollst das 1:1 rüber kopieren sofort  :P

schau mir das neue Template dann mal an und teste bissl. Hier einfach schonmal die 2raw (frisch erkannt und mit Template)

neuershelly

defmod MQTT2_shellyplus1_441793a34044 MQTT2_DEVICE shellyplus1_441793a34044
attr MQTT2_shellyplus1_441793a34044 readingList shellyplus1_441793a34044:shellyplus1-441793a34044/online:.* online\
shellyplus1_441793a34044:shellyplus1-441793a34044/status/mqtt:.* { json2nameValue($EVENT) }\
shellyplus1_441793a34044:shellyplus1-441793a34044/events/rpc:.* { json2nameValue($EVENT) }\
shellyplus1_441793a34044:shellyplus1-441793a34044/status/sys:.* { json2nameValue($EVENT) }\
shellyplus1_441793a34044:shellyplus1-441793a34044/status/switch_0:.* { json2nameValue($EVENT) }
attr MQTT2_shellyplus1_441793a34044 room MQTT2_DEVICE

setstate MQTT2_shellyplus1_441793a34044 2022-03-05 11:08:24 IODev m2s
setstate MQTT2_shellyplus1_441793a34044 2022-03-05 11:08:31 available_updates_beta_version 0.10.0-beta6
setstate MQTT2_shellyplus1_441793a34044 2022-03-05 11:08:31 cfg_rev 7
setstate MQTT2_shellyplus1_441793a34044 2022-03-05 11:08:24 connected true
setstate MQTT2_shellyplus1_441793a34044 2022-03-05 11:09:12 dst shellyplus1-441793a34044/events
setstate MQTT2_shellyplus1_441793a34044 2022-03-05 11:08:31 fs_free 237568
setstate MQTT2_shellyplus1_441793a34044 2022-03-05 11:08:31 fs_size 458752
setstate MQTT2_shellyplus1_441793a34044 2022-03-05 11:09:12 id 0
setstate MQTT2_shellyplus1_441793a34044 2022-03-05 11:08:31 mac 441793A34044
setstate MQTT2_shellyplus1_441793a34044 2022-03-05 11:09:12 method NotifyStatus
setstate MQTT2_shellyplus1_441793a34044 2022-03-05 11:08:24 online true
setstate MQTT2_shellyplus1_441793a34044 2022-03-05 11:09:12 output false
setstate MQTT2_shellyplus1_441793a34044 2022-03-05 11:08:24 params_mqtt_connected true
setstate MQTT2_shellyplus1_441793a34044 2022-03-05 11:09:12 params_switch_0_id 0
setstate MQTT2_shellyplus1_441793a34044 2022-03-05 11:09:12 params_switch_0_output false
setstate MQTT2_shellyplus1_441793a34044 2022-03-05 11:09:12 params_switch_0_source WS_in
setstate MQTT2_shellyplus1_441793a34044 2022-03-05 11:08:24 params_switch_0_temperature_tC 39.88
setstate MQTT2_shellyplus1_441793a34044 2022-03-05 11:08:24 params_switch_0_temperature_tF 103.78
setstate MQTT2_shellyplus1_441793a34044 2022-03-05 11:08:31 params_sys_available_updates_beta_version 0.10.0-beta6
setstate MQTT2_shellyplus1_441793a34044 2022-03-05 11:09:12 params_ts 1646474952.66
setstate MQTT2_shellyplus1_441793a34044 2022-03-05 11:08:24 params_wifi_rssi -57
setstate MQTT2_shellyplus1_441793a34044 2022-03-05 11:08:24 params_wifi_ssid WLAN-Alex
setstate MQTT2_shellyplus1_441793a34044 2022-03-05 11:08:24 params_wifi_sta_ip 192.168.177.167
setstate MQTT2_shellyplus1_441793a34044 2022-03-05 11:08:24 params_wifi_status got ip
setstate MQTT2_shellyplus1_441793a34044 2022-03-05 11:08:31 ram_free 179764
setstate MQTT2_shellyplus1_441793a34044 2022-03-05 11:08:31 ram_size 249456
setstate MQTT2_shellyplus1_441793a34044 2022-03-05 11:08:31 restart_required false
setstate MQTT2_shellyplus1_441793a34044 2022-03-05 11:09:12 source WS_in
setstate MQTT2_shellyplus1_441793a34044 2022-03-05 11:09:12 src shellyplus1-441793a34044
setstate MQTT2_shellyplus1_441793a34044 2022-03-05 11:09:12 temperature_tC 39.9
setstate MQTT2_shellyplus1_441793a34044 2022-03-05 11:09:12 temperature_tF 103.9
setstate MQTT2_shellyplus1_441793a34044 2022-03-05 11:08:31 time 11:08
setstate MQTT2_shellyplus1_441793a34044 2022-03-05 11:08:31 unixtime 1646474911
setstate MQTT2_shellyplus1_441793a34044 2022-03-05 11:08:31 uptime 7


neues Template

defmod MQTT2_shellyplus1_441793a34044 MQTT2_DEVICE shellyplus1_441793a34044
attr MQTT2_shellyplus1_441793a34044 devStateIcon {my $onl = ReadingsVal($name,'online','false') eq 'false'?'10px-kreis-rot':'10px-kreis-gruen';; $onl = FW_makeImage($onl);; my $light = FW_makeImage(ReadingsVal($name,'state','off'));; my $temp = ReadingsVal($name,'temperature','-100');; my $ip = ReadingsVal($name,'ip','none');; my $reb = ReadingsVal($name,'sys_restart_required','false') eq 'true'?'<a href="/fhem?cmd.dummy=set '.$name.' x_reboot&XHR=1"> ... Notwendigen Reboot durchführen</a>':'';; qq(<a href="http://$ip" target="_blank">${onl}</a><a href="/fhem?cmd.dummy=set $name toggle&XHR=1">${light}</a>$reb<div>Temp: $temp °C</div>)}
attr MQTT2_shellyplus1_441793a34044 devicetopic shellyplus1-441793a34044
attr MQTT2_shellyplus1_441793a34044 getList in_mode:noArg in_mode $DEVICETOPIC/rpc {"id": 1,"src":"$DEVICETOPIC", "method": "Switch.GetConfig", "params": {"id": 0}}
attr MQTT2_shellyplus1_441793a34044 icon message_socket
attr MQTT2_shellyplus1_441793a34044 jsonMap switch_state:state switch_temperature_tC:temperature switch_temperature_tF:0 params_wifi_sta_ip:ip params_switch_0_temperature_tC:temperature params_switch_0_temperature_tF:0 req_result_in_mode:in_mode
attr MQTT2_shellyplus1_441793a34044 model shellyPlus_1
attr MQTT2_shellyplus1_441793a34044 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) }\
  $DEVICETOPIC/status/cloud:.* {}\
  $DEVICETOPIC/rpc:.* { json2nameValue($EVENT, 'req_', $JSONMAP, 'in_mode')}\
  $DEVICETOPIC/status/input_0:.* { json2nameValue($EVENT, 'input_', $JSONMAP) }\
  fhem2shelly/rpc:.* {}
attr MQTT2_shellyplus1_441793a34044 room MQTT2_DEVICE
attr MQTT2_shellyplus1_441793a34044 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}}\
  off-for-timer $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Switch.Set","params": {"id":0,"on":false,"toggle_after":$EVTPART1}}\
  in_mode:toggle,flip,detached {fhem("sleep 0.2;; get $NAME in_mode");; my $val = $EVTPART1 ne 'toggle' ? $EVTPART1 : ReadingsVal($NAME,'in_mode','flip') eq 'flip' ? 'detached':'flip';; qq($DEVICETOPIC/rpc {"id":1,"src":"fhem2shelly","method":"Switch.SetConfig","params": {"id":0, "config": {"in_mode": "$val"}}})}\
  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"}\
  x_eco:true,false $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Sys.SetConfig","params": {"config": {"device": {"eco_mode": $EVTPART1}}}}
attr MQTT2_shellyplus1_441793a34044 setStateList on off toggle on-for-timer off-for-timer
attr MQTT2_shellyplus1_441793a34044 webCmd :

setstate MQTT2_shellyplus1_441793a34044 2022-03-05 16:11:59 IODev m2s
setstate MQTT2_shellyplus1_441793a34044 2022-03-05 16:12:59 attrTemplateVersion 20220304
setstate MQTT2_shellyplus1_441793a34044 2022-03-05 16:13:02 dst shellyplus1-441793a34044/events
setstate MQTT2_shellyplus1_441793a34044 2022-03-05 16:13:02 ip 192.168.177.167
setstate MQTT2_shellyplus1_441793a34044 2022-03-05 16:13:02 method NotifyStatus
setstate MQTT2_shellyplus1_441793a34044 2022-03-05 16:13:02 mqtt_connected true
setstate MQTT2_shellyplus1_441793a34044 2022-03-05 16:13:02 online true
setstate MQTT2_shellyplus1_441793a34044 2022-03-05 16:13:02 params_mqtt_connected true
setstate MQTT2_shellyplus1_441793a34044 2022-03-05 16:13:02 params_switch_0_id 0
setstate MQTT2_shellyplus1_441793a34044 2022-03-05 16:13:02 params_ts 1646493181.46
setstate MQTT2_shellyplus1_441793a34044 2022-03-05 16:13:02 params_wifi_rssi -58
setstate MQTT2_shellyplus1_441793a34044 2022-03-05 16:13:02 params_wifi_ssid WLAN-Alex
setstate MQTT2_shellyplus1_441793a34044 2022-03-05 16:13:02 params_wifi_status got ip
setstate MQTT2_shellyplus1_441793a34044 2022-03-05 16:13:02 src shellyplus1-441793a34044
setstate MQTT2_shellyplus1_441793a34044 2022-03-05 16:13:02 temperature 42.74
setstate MQTT2_shellyplus1_441793a34044 2022-03-05 16:12:59 x_reboot set



soo weit die 2 Raws, nun da ich endlich das neue Template habe, geh ich mal fix ans testen und überarbeite den Text für "Tipps" im Wiki
OMV5@AsRock j3455 8GB RAM
FHEM@Docker, Shelly "starter pack" 4x PlugS, 2x Bulb Duo RGB, Shelly 2.5, Shelly Plus 1, DoorBird 2103V

draddy

also,

Template scheint OK, zumindest ist mir nichts Aufgefallen, keine neuen unerwünschten Readings und Funktioniert (habe jetzt nur getestet, was durch die in_mode Erweiterung dazu gekommen ist, inkl. des dadurch aufgefallenen Bugs (in detached springt state auf ON --> behoben)

Raw sind oben, ob ihr meine Local IP lasst oder ersetzt, stört mich so oder so nicht ;)

Hier überarbeiteter Textvorschlag für TIPPS

=== Tipps ===
Das aktuelle Template wurde um die Funktion erweitert, den Button Mode um zu schalten, in den meisten Fällen legt man sich auf eine Schaltmethode fest, welche zum Hardware Setup passt.
###
Exkurs: So nimmt man bei Verwendung eines normalen Schalters (eine Stellung EIN eine AUS) gerne den ,,Flip" Mode – damit wird der Shelly IMMER umgeschaltet, egal in welche Stellung der Schalter sich bewegt (,,Kreuzschaltung") Diese Einstellungen trifft man Grundlegend im WebUI des Shelly (oder  APP) unter ,,Channel settings"
Für den ,,Flip" müssen wir die Grundeinstellung des ,,Power on default" auch ändern (gleiche Seite) persönlich wähle ich ,,Restore last" also, nach Strom Ausfall wird der letzte Zustand Hergestellt, grundlegend gehen alle Modi außer ,,Match input".  ]
###
Manchmal will man aber vielleicht den Hardware Schalter deaktivieren, nennen wir es ,,Kindersicherung". Bei Shelly heißt das ,,detached".
Diese Funktion wurde ins Template als ,,in_mode" Übernommen. Mögliche set Befehle sind ,,flip", ,,detached" ,,toggle". Bedingung zur Verwendung ist: ,,relay power on default" darf NICHT ,,Match input" sein.
Sollte Follow statt Flip bevorzugt werden, müsste entsprechende Zeile in der setList von ,,flip" auf ,,follow" angepasst werden.

Der Befehlt lässt sich mit dem webCmd in_mode auch schnell zugänglich in die Übersicht vom Shelly setzen, so erhält man neben dem Status ein Dropdown mit flip detached  und toggle zum schnellen umschalten. Mit webCmdLabel kann man noch einen Namen für das Dropdown setzen.


Habe den Exkurs mal in ### gesetzt - ist eben die Frage ob man ihn zur Erklärung drin lässt, oder wo anders hin schiebt oder wie auch immer, das dürfen die WIKI Leute sich überlegen ^^
und 2 Bildchen hab ich auch dazu gepackt, hoffe des Dunkle Thema stört niemanden,  wenn doch; selber machen :P (oder kurz Rückmeldung geben ^^)

lg
Jens
OMV5@AsRock j3455 8GB RAM
FHEM@Docker, Shelly "starter pack" 4x PlugS, 2x Bulb Duo RGB, Shelly 2.5, Shelly Plus 1, DoorBird 2103V

draddy

manchmal erschreckt mich eure Geschwindigkeit  ;D

in der Grünen "Exkurs blase" ist am ende noch eine ] stehen geblieben ;)
OMV5@AsRock j3455 8GB RAM
FHEM@Docker, Shelly "starter pack" 4x PlugS, 2x Bulb Duo RGB, Shelly 2.5, Shelly Plus 1, DoorBird 2103V