Autor Thema: MQTT2+Shelly: erste Konfiguration und template-Entwicklung  (Gelesen 117288 mal)

Offline draddy

  • Full Member
  • ***
  • Beiträge: 211
  • let's grow, it glows in the dark.
    • Franzke IT Service
Antw:MQTT2+Shelly: erste Konfiguration und template-Entwicklung
« Antwort #840 am: 03 März 2022, 19:11:15 »
hi TomLee
ok, scheint wohl zu klappen
periodicCmd in_mode:1
werds nur nicht jede minute machen, das war jetzt zum testen. Danke ;)

@Beta kopf zu für heute, für dich, hoffentlich, ne Fingerübung gewesen mit dem ein oder anderen Erkenntnis Zuwachs - für mich viel neues zeugs was ich noch versuche zu verstehen xD auch dir nochmal Danke ;)

in eine DOIF bekomm ich meinen toggle auch nicht gescheit rein oder? bzw. ists vermutlich dann egal ob ichs im DOIF oder im setList baue  :o

zur erinnerung, das teil xD
modeToggle:noArg {if (ReadingsVal("MQTT2_shellyplus1_441793a3b110", 'x_in_mode', 'set flip' ) eq 'set flip' ) {fhem("set MQTT2_shellyplus1_441793a3b110 x_in_mode detached")}else{fhem("set MQTT2_shellyplus1_441793a3b110 x_in_mode flip")}}
OMV5@AsRock j3455 8GB RAM
FHEM@Docker, Shelly "starter pack" 4x PlugS, 2x Bulb Duo RGB, Shelly 2.5, Shelly Plus 1

Offline TomLee

  • Tester
  • Hero Member
  • ****
  • Beiträge: 4456
  • ... wer sät, der erntet ...
Antw:MQTT2+Shelly: erste Konfiguration und template-Entwicklung
« Antwort #841 am: 03 März 2022, 19:48:52 »
Ich hab keinen Shelly Plus, gelesen hatte ich was von "momentary|toggle|edge|detached", von flip bisher nix  (scheinbar zu wenig gelesen), geht es eventuell einfach ein toggle zu senden statt detached|flip ?

Offline draddy

  • Full Member
  • ***
  • Beiträge: 211
  • let's grow, it glows in the dark.
    • Franzke IT Service
Antw:MQTT2+Shelly: erste Konfiguration und template-Entwicklung
« Antwort #842 am: 03 März 2022, 23:12:11 »
hi
nein direkt toggle senden geht halt nicht, wie man auch hier wieder sieht, ist es all gemein ehr krampfig diesen status extern zu schalten ^^

und, die anderen namen kommen halt durch die neue api von shelly, der plus 1 ist Generation 2, der im anderen Beitrag behandelte 2.5 noch Generation 1. Und da Gen2 leider (noch?!) nicht vom Modul behandelt wird halt mqtt ^^
gen 1      gen 2
toggle = follow
momentary = momentary
edge = flip
detached = detached

und toggle / follow mein bei shelly;
"Follow - Set Shelly device to be "Toggle" switch. Act as a flip switch with one state for "ON" and one state for "OFF"."


ich will aber einfach nur zwischen den von mir verwendeten modi edge|flip und detached "toggeln" können :D


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

Offline TomLee

  • Tester
  • Hero Member
  • ****
  • Beiträge: 4456
  • ... wer sät, der erntet ...
Antw:MQTT2+Shelly: erste Konfiguration und template-Entwicklung
« Antwort #843 am: 03 März 2022, 23:41:44 »
Zitat
in eine DOIF bekomm ich meinen toggle auch nicht gescheit rein oder? bzw. ists vermutlich dann egal ob ichs im DOIF oder im setList baue  :o

ich will aber einfach nur zwischen den von mir verwendeten modi edge|flip und detached "toggeln" können :D

Verstehe nicht genau was für ein Problem du mit deiner if/else-Variante in setList hast ? Das klappt doch ?

Die könnte man noch etwas optimieren für setList, das wars aber auch schon.

Hoffe hab keinen Denkfehler, ungetestet:

modeToggle:noArg {ReadingsVal($NAME, 'in_mode', 'flip' ) eq 'flip' ? fhem("set $NAME in_mode detached") : fhem("set $NAME in_mode flip")}

Offline draddy

  • Full Member
  • ***
  • Beiträge: 211
  • let's grow, it glows in the dark.
    • Franzke IT Service
Antw:MQTT2+Shelly: erste Konfiguration und template-Entwicklung
« Antwort #844 am: 04 März 2022, 00:01:58 »
ja, das ist die frage, also, ob ich ein problem damit haben sollte oder nicht xD
jedenfalls sieht deine if schonmal "hübscher"  aus als meine Urversion von heute früh um 2 ^^

jetzt ist nur noch die sache, das ich echt zu blöde  bin das "get in_mode" auszulösen, nachdem ich diesen umgestellt habe ^^

zu qq finde ich in der ref gar nicht.

denke die idee von beta wäre auch das "get in_mode" kurze zeit nach dem "set in_mode" auszuführen, damit nach dem umschalten auch der richtige wert in fhem steht.

dachte ich könnte mit , oder ; einfach sleep 1 get in_mode anhängen, aber ... falsch gedacht ^^

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

Offline TomLee

  • Tester
  • Hero Member
  • ****
  • Beiträge: 4456
  • ... wer sät, der erntet ...
Antw:MQTT2+Shelly: erste Konfiguration und template-Entwicklung
« Antwort #845 am: 04 März 2022, 00:19:28 »
Zitat
denke die idee von beta wäre auch das "get in_mode" kurze zeit nach dem "set in_mode" auszuführen, damit nach dem umschalten auch der richtige wert in fhem steht.

Wenn du umschaltest sollte in dem Reading doch auch gleich wieder was zurückkommen, so hab ich es oben zumindest verstanden, da ist kein anschliessendes get nötig. Ist das nicht so ?

Der (periodische) getter ist wie gesagt nur dafür da wenn ausserhalb von FHEM die Kindersicherung eingeschaltet wurde.

Ich hab ehrlich gesagt nicht verstanden wie das mit dem qq und sleep gemeint war.


Offline draddy

  • Full Member
  • ***
  • Beiträge: 211
  • let's grow, it glows in the dark.
    • Franzke IT Service
Antw:MQTT2+Shelly: erste Konfiguration und template-Entwicklung
« Antwort #846 am: 04 März 2022, 00:31:20 »
genau da ist das Problem ^^

natürlich kommt etwas zurück nach dem set, allerdings ist dies zu nix zu gebrauchen ^^

shellyplus1-441793a3b110/rpc {"id":1,"src":"fhem2shelly","method":"Switch.SetConfig","params": {"id":0, "config": {"in_mode": "flip"}}}
fhem2shelly/rpc {"id":1,"src":"shellyplus1-441793a3b110","dst":"fhem2shelly","result":{"restart_required":false}}
shellyplus1-441793a3b110/events/rpc {"src":"shellyplus1-441793a3b110","dst":"shellyplus1-441793a3b110/events","method":"NotifyEvent","params":{"ts":1646350074.25,"events":[{"component":"switch:0","id":0,"event":"config_changed","restart_required":false,"ts":1646350074.25,"cfg_rev":31}]}}

oben ist das aabsetzen des set in_mode - dann kommt die antwort, die sagt "hier wurde was geändert" aber eben nicht mitteilt was geändert wird, darum ja der ganze käse mit dem extra getter ;)

aktuell funzt der toggle natürlich auch erst, nachdem der periodische gelaufen ist, oder ich manuel den getter getriggert habe ^^

denke mit qq und|oder sleep wäre es irgendwie möglich das set mit dem get zu verknüpfen, aber sag ja, ich blicks nicht xD
« Letzte Änderung: 04 März 2022, 00:34:45 von draddy »
OMV5@AsRock j3455 8GB RAM
FHEM@Docker, Shelly "starter pack" 4x PlugS, 2x Bulb Duo RGB, Shelly 2.5, Shelly Plus 1

Offline TomLee

  • Tester
  • Hero Member
  • ****
  • Beiträge: 4456
  • ... wer sät, der erntet ...
Antw:MQTT2+Shelly: erste Konfiguration und template-Entwicklung
« Antwort #847 am: 04 März 2022, 00:35:31 »
Zeig mal ein (Raw-) List von deiner jetzigen Definition bitte.

Offline draddy

  • Full Member
  • ***
  • Beiträge: 211
  • let's grow, it glows in the dark.
    • Franzke IT Service
Antw:MQTT2+Shelly: erste Konfiguration und template-Entwicklung
« Antwort #848 am: 04 März 2022, 00:38:11 »
klar
defmod MQTT2_shellyplus1_441793a3b110 MQTT2_DEVICE shellyplus1_441793a3b110
attr MQTT2_shellyplus1_441793a3b110 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_441793a3b110 devicetopic shellyplus1-441793a3b110
attr MQTT2_shellyplus1_441793a3b110 getList in_mode:noArg in_mode $DEVICETOPIC/rpc {"id": 1,"src":"request2shelly", "method": "Switch.GetConfig", "params": {"id": 0}}
attr MQTT2_shellyplus1_441793a3b110 icon message_socket
attr MQTT2_shellyplus1_441793a3b110 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_441793a3b110 model shellyPlus_1
attr MQTT2_shellyplus1_441793a3b110 periodicCmd in_mode:5
attr MQTT2_shellyplus1_441793a3b110 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:.* {}\
  fhem2shelly/rpc:.* {}\
  request2shelly/rpc:.* { json2nameValue($EVENT, 'req_', $JSONMAP, 'in_mode') }
attr MQTT2_shellyplus1_441793a3b110 room MQTT2_DEVICE
attr MQTT2_shellyplus1_441793a3b110 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:flip,detached $DEVICETOPIC/rpc {"id":1,"src":"fhem2shelly","method":"Switch.SetConfig","params": {"id":0, "config": {"in_mode": "$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"}\
  x_eco:true,false $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Sys.SetConfig","params": {"config": {"device": {"eco_mode": $EVTPART1}}}}\
  modeToggle:noArg {ReadingsVal($NAME, 'in_mode', 'flip' ) eq 'flip' ? fhem("set $NAME in_mode detached") : fhem("set $NAME in_mode flip")}
attr MQTT2_shellyplus1_441793a3b110 setStateList on off toggle on-for-timer off-for-timer
attr MQTT2_shellyplus1_441793a3b110 webCmd :

setstate MQTT2_shellyplus1_441793a3b110 off
setstate MQTT2_shellyplus1_441793a3b110 2022-03-03 15:08:19 IODev m2s
setstate MQTT2_shellyplus1_441793a3b110 2022-03-03 15:11:01 attrTemplateVersion 20220118
setstate MQTT2_shellyplus1_441793a3b110 2022-03-04 00:27:53 dst shellyplus1-441793a3b110/events
setstate MQTT2_shellyplus1_441793a3b110 2022-03-03 17:16:41 id 1
setstate MQTT2_shellyplus1_441793a3b110 2022-03-04 00:37:25 in_mode flip
setstate MQTT2_shellyplus1_441793a3b110 2022-03-03 15:46:40 ip 192.168.177.47
setstate MQTT2_shellyplus1_441793a3b110 2022-03-04 00:27:53 method NotifyEvent
setstate MQTT2_shellyplus1_441793a3b110 2022-03-03 15:46:40 mqtt_connected true
setstate MQTT2_shellyplus1_441793a3b110 2022-03-03 15:46:40 online true
setstate MQTT2_shellyplus1_441793a3b110 2022-03-04 00:27:53 params_events_1_cfg_rev 31
setstate MQTT2_shellyplus1_441793a3b110 2022-03-04 00:27:53 params_events_1_component switch:0
setstate MQTT2_shellyplus1_441793a3b110 2022-03-04 00:27:53 params_events_1_event config_changed
setstate MQTT2_shellyplus1_441793a3b110 2022-03-04 00:27:53 params_events_1_id 0
setstate MQTT2_shellyplus1_441793a3b110 2022-03-04 00:27:53 params_events_1_restart_required false
setstate MQTT2_shellyplus1_441793a3b110 2022-03-04 00:27:53 params_events_1_ts 1646350074.25
setstate MQTT2_shellyplus1_441793a3b110 2022-03-03 15:46:40 params_mqtt_connected true
setstate MQTT2_shellyplus1_441793a3b110 2022-03-03 18:46:41 params_switch_0_id 0
setstate MQTT2_shellyplus1_441793a3b110 2022-03-03 18:46:41 params_switch_0_output false
setstate MQTT2_shellyplus1_441793a3b110 2022-03-03 18:46:41 params_switch_0_source MQTT
setstate MQTT2_shellyplus1_441793a3b110 2022-03-03 15:46:40 params_switch_0_temperature_tC 48.84
setstate MQTT2_shellyplus1_441793a3b110 2022-03-03 15:46:40 params_switch_0_temperature_tF 119.91
setstate MQTT2_shellyplus1_441793a3b110 2022-03-03 15:46:51 params_sys_available_updates_beta_version 0.10.0-beta6
setstate MQTT2_shellyplus1_441793a3b110 2022-03-04 00:27:53 params_ts 1646350074.25
setstate MQTT2_shellyplus1_441793a3b110 2022-03-03 15:46:40 params_wifi_rssi -53
setstate MQTT2_shellyplus1_441793a3b110 2022-03-03 15:46:40 params_wifi_ssid WLAN-Alex
setstate MQTT2_shellyplus1_441793a3b110 2022-03-03 15:46:40 params_wifi_status got ip
setstate MQTT2_shellyplus1_441793a3b110 2022-03-03 17:16:41 result_auto_off false
setstate MQTT2_shellyplus1_441793a3b110 2022-03-03 17:16:41 result_auto_off_delay 60.00
setstate MQTT2_shellyplus1_441793a3b110 2022-03-03 17:16:41 result_auto_on false
setstate MQTT2_shellyplus1_441793a3b110 2022-03-03 17:16:41 result_auto_on_delay 60.00
setstate MQTT2_shellyplus1_441793a3b110 2022-03-03 17:16:41 result_id 0
setstate MQTT2_shellyplus1_441793a3b110 2022-03-03 17:16:41 result_in_mode flip
setstate MQTT2_shellyplus1_441793a3b110 2022-03-03 17:16:41 result_initial_state restore_last
setstate MQTT2_shellyplus1_441793a3b110 2022-03-04 00:27:53 src shellyplus1-441793a3b110
setstate MQTT2_shellyplus1_441793a3b110 2022-03-03 18:46:41 state off
setstate MQTT2_shellyplus1_441793a3b110 2022-03-03 18:46:41 switch_id 0
setstate MQTT2_shellyplus1_441793a3b110 2022-03-03 18:46:41 switch_source MQTT
setstate MQTT2_shellyplus1_441793a3b110 2022-03-03 15:46:51 sys_available_updates_beta_version 0.10.0-beta6
setstate MQTT2_shellyplus1_441793a3b110 2022-03-03 15:46:51 sys_cfg_rev 5
setstate MQTT2_shellyplus1_441793a3b110 2022-03-03 15:46:51 sys_fs_free 237568
setstate MQTT2_shellyplus1_441793a3b110 2022-03-03 15:46:51 sys_fs_size 458752
setstate MQTT2_shellyplus1_441793a3b110 2022-03-03 15:46:51 sys_mac 441793A3B110
setstate MQTT2_shellyplus1_441793a3b110 2022-03-03 15:46:51 sys_ram_free 178940
setstate MQTT2_shellyplus1_441793a3b110 2022-03-03 15:46:51 sys_ram_size 249488
setstate MQTT2_shellyplus1_441793a3b110 2022-03-03 15:46:51 sys_restart_required false
setstate MQTT2_shellyplus1_441793a3b110 2022-03-03 15:46:51 sys_time 15:46
setstate MQTT2_shellyplus1_441793a3b110 2022-03-03 15:46:51 sys_unixtime 1646318812
setstate MQTT2_shellyplus1_441793a3b110 2022-03-03 15:46:51 sys_uptime 11
setstate MQTT2_shellyplus1_441793a3b110 2022-03-03 18:46:41 temperature 48.6
setstate MQTT2_shellyplus1_441793a3b110 2022-03-03 15:11:01 x_reboot set
OMV5@AsRock j3455 8GB RAM
FHEM@Docker, Shelly "starter pack" 4x PlugS, 2x Bulb Duo RGB, Shelly 2.5, Shelly Plus 1

Offline TomLee

  • Tester
  • Hero Member
  • ****
  • Beiträge: 4456
  • ... wer sät, der erntet ...
Antw:MQTT2+Shelly: erste Konfiguration und template-Entwicklung
« Antwort #849 am: 04 März 2022, 01:03:33 »
Ok, hab was durcheinander gebracht.

Wie es mit meiner kurzen Variante von if geht komm ich jetzt auch gerade nicht drauf, aber bei der if/else-Variante müsstest eigentlich dem set-Befehl einfach nur das sleep und get Kommando mit Semikolon getrennt anhängen.

Ich mach mir jetzt weiter keinen Kopf mehr heute, weil spätestens um 8 Uhr morgen Früh wird eh wieder alles verworfen und anders gelöst  :P

Offline draddy

  • Full Member
  • ***
  • Beiträge: 211
  • let's grow, it glows in the dark.
    • Franzke IT Service
Antw:MQTT2+Shelly: erste Konfiguration und template-Entwicklung
« Antwort #850 am: 04 März 2022, 01:10:43 »
sag sowas doch nicht :D

nein, denke halt wenn müsste das get mit an den set in_mode dran (den grund befehl so zu sagen)

aber vll. gibt beta mir ja noch nen tipp wies geht, ein herz für Anfänger so zusagen  :-* ;D

aber die von dir verschönerte if else fürs toggle wird wohl bleiben und der periodische  auch:D
OMV5@AsRock j3455 8GB RAM
FHEM@Docker, Shelly "starter pack" 4x PlugS, 2x Bulb Duo RGB, Shelly 2.5, Shelly Plus 1

Offline TomLee

  • Tester
  • Hero Member
  • ****
  • Beiträge: 4456
  • ... wer sät, der erntet ...
Antw:MQTT2+Shelly: erste Konfiguration und template-Entwicklung
« Antwort #851 am: 04 März 2022, 01:59:55 »
Eigentlich sollte es so klappen, einfach nur anhängen:

modeToggle:noArg {ReadingsVal($NAME, 'in_mode', 'flip' ) eq 'flip' ? fhem("set $NAME in_mode detached;sleep 0.5;get $NAME in_mode") : fhem("set $NAME in_mode flip;sleep 0.5;get $NAME in_mode")}

Offline draddy

  • Full Member
  • ***
  • Beiträge: 211
  • let's grow, it glows in the dark.
    • Franzke IT Service
Antw:MQTT2+Shelly: erste Konfiguration und template-Entwicklung
« Antwort #852 am: 04 März 2022, 08:16:34 »
moin,

also das klappt wohl, ja. nur die frage warum ich es nicht schaffe das an den eigentlichen in_mode Befehl zu fummeln xD
OMV5@AsRock j3455 8GB RAM
FHEM@Docker, Shelly "starter pack" 4x PlugS, 2x Bulb Duo RGB, Shelly 2.5, Shelly Plus 1

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 19338
Antw:MQTT2+Shelly: erste Konfiguration und template-Entwicklung
« Antwort #853 am: 04 März 2022, 09:59:57 »
Zumindest das mit dem "sleep" hattet ihr ja (in etwas anderer Form wie gedacht) gefunden, "qq" ist einfach eine perl-Funktion, mit der man "einfacher" formatierten Text mit Quotes erzeugen kann - wenn man in mqtt2.template qq im Zusammenhang mit readingList sucht, gibt es nicht allzuviele Treffer. Es geht einfach darum, "am Ende" einer Perl-Anweisung in setList "topic payload" (vereinfacht) zurückzugeben, und vorher irgendwas anderes zu tun.

Hier mal ein (ungetesteter) Vorschlag, wie man das ohne periodicCmd lösen können sollte (mir gefällt das Pollen überhaupt nicht!), aber trotzdem alles mitbekommt, wenn ein potentiell "unklarer Status" gemeldet wird.

Das ganze ist "attrTemplate-Sprache" (man muss also die "escape"-backslashes für "DEVICE" entfernen), Klammern habe ich nicht gezählt, und wegen der Strichpunkte muss man aufpassen, an welcher Stelle/auf welchem Weg man wie viele setzt:
attr DEVICE 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 {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": "$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"}\
  x_eco:true,false $\DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Sys.SetConfig","params": {"config": {"device": {"eco_mode": $EVTPART1}}}}
attr DEVICE 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')\
  fhem2shelly/rpc:.* {}
attr DEVICE getList in_mode:noArg in_mode $\DEVICETOPIC/rpc {"id": 1,"src":"$\DEVICETOPIC", "method": "Switch.GetConfig", "params": {"id": 0}}
attr DEVICE userReadings get_in_mode:params_events_1_event:.config_changed {fhem("get $NAME in_mode")}

Hier noch ein ungetesteter Versuch, das automatische get mit einem fhem-sleep auch noch in der Zeile unterzubringen:
in_mode:toggle,flip,detached {fhem("sleep 0.2;; get $NAME in_mode"); my $val = $EVTPART1 ne 'toggle' ? $EVTPART1 : ReadingsVal($NAME,'in_mode','flip') ne 'flip' ? 'flip':'detached'; qq($\DEVICETOPIC/rpc {"id":1,"src":"fhem2shelly","method":"Switch.SetConfig","params": {"id":0, "config": {"in_mode": "$EVTPART1"}}}}\

Ergänzender Hinweis: das "get" unter einem "Einheitstopic" abzusetzen war vermutlich keine gute Idee, das hätte bei mehreren zu heilloser Verwirrung geführt. Daher das "Aufbohren" der "Erdleitung"...

Nachtrag noch:
Das mit webCmd war eigentlich als Aufforderung gedacht, das für alle bereitzustellen. Das ganze ist eine Spezialfunktion, die vermutlich einige Leute interessiert, aber nicht alle. Daher hätte ich das gerne aus devStateIcon draußen und "separat abschaltbar". Wäre nett, wenn du den Aufwand treiben würdest, ist glaube ich nicht soooo schwer.
« Letzte Änderung: 04 März 2022, 10:15:47 von Beta-User »
Server: HP-T620@Debian 11, 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

Offline draddy

  • Full Member
  • ***
  • Beiträge: 211
  • let's grow, it glows in the dark.
    • Franzke IT Service
Antw:MQTT2+Shelly: erste Konfiguration und template-Entwicklung
« Antwort #854 am: 04 März 2022, 10:21:51 »
moin,

ja sleep war mir auch durchaus ein begriff, auch die notwendigkeit war mir soweit klar (das schalten braucht ja nen mement, wenn man dann sofort abfragt kann es passieren noch den alten wert zu bekommen...) zu qq habe ich halt nichts gefunden was mich schlauer / durchblicken lässt ^^

werde mir das ganze anschauen, und auch versuchen deinem wunsch für die allgemeinheit gerecht zu werden, und irgendwie ein webCmd zu basteln dafür ;)

kontaktieren sie uns nicht, wir kontaktieren sie! :P
OMV5@AsRock j3455 8GB RAM
FHEM@Docker, Shelly "starter pack" 4x PlugS, 2x Bulb Duo RGB, Shelly 2.5, Shelly Plus 1

 

decade-submarginal