MQTT2, Befehle senden

Begonnen von Guzzi-Charlie, 10 Februar 2019, 15:27:08

Vorheriges Thema - Nächstes Thema

Beta-User

Hm, ok, schade mit dem toggle.

Mal ausgehend davon, dass das Teil in Kleinschreibung Werte zurückgibt folgender Versuch:
attr DEVICE devStateIcon {"<div>\
  <a href=\"/fhem?cmd.dummy=set ".$name." relay0 ".ReadingsVal($name, "relay0", "off") =~ /off/ ? "on": "off" . "&XHR=1\">Relay 0:" . FW_makeImage(ReadingsVal($name, "relay0", "off")) . "</a> \
  <a href=\"/fhem?cmd.dummy=set ".$name." relay0 ".ReadingsVal($name, "relay1", "off") =~ /off/ ? "on": "off" . "&XHR=1\">Relay 1:" . FW_makeImage(ReadingsVal($name, "relay1", "off")) . "</a> \
  <a href=\"/fhem?cmd.dummy=set ".$name." relay0 ".ReadingsVal($name, "relay2", "off") =~ /off/ ? "on": "off" . "&XHR=1\">Relay 2:" . FW_makeImage(ReadingsVal($name, "relay2", "off")) . "</a> \
  <a href=\"/fhem?cmd.dummy=set ".$name." relay0 ".ReadingsVal($name, "relay3", "off") =~ /off/ ? "on": "off" . "&XHR=1\">Relay 3:" . FW_makeImage(ReadingsVal($name, "relay3", "off")) . "</a\
  ></div>" }

Sonst bitte mal in ""off") =~ /off/" jeweils Großschreibung verwenden.
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

Guzzi-Charlie

Habs gerade getestet, aber leider ohne jeden Erfolg (Der Shelly liefert die Werte in Kleinschreibung, das ist schon richtig).

Das ist praktisch komplett wirkungslos. Angezeigt wird der Inhalt von state (also relay0...3), je nachdem welcher Kanal zuletzt geschaltet wurde. Genauso wie bei mir vorher.

Da ich die gesamte Befehlskette nicht verstehe wüßte ich auch nicht wo ich einen Fehler suchen sollte. Tut mir Leid.

Was ich gesehen habe und auch mit Änderung versucht hatte:
Im ersten Teil der Befehle (...dummy=set ".$name." relay0 ".Readi...) steht überall "relay0". Ist das richtig? Hab da mal "realy0...3" in den vier Zeilen versucht. ==> Ergebnis identisch.
Und was ist weiter hinten? Da steht: "...>Relay 0:..." Soll das so sein, oder müßte das auch "relay0...3" heißen?

Wie gesagt:
Ich verstehe die Befehlssequenz nicht und weiß nicht was die einzelnen Teile darin bewirken sollen.

Oder muß ich irgendwo noch was auf mein device anpassen.
- RaspPI 4+: (Cuno V2 -2x KS300, JeeLink -13x EC3000)
- Stromzähler (B+G E-Tech): 6x SDM120M, 9x XTM100A, 38x DRS110M
- LAN: IT LAN-Gateway mit 34x RMF-R1 (Rohrmotor24)
- WLAN: 85x Shelly, 12x Gosund SP111, 16x D1-Mini, 15x Sonoff Basic
- DECT: 6x DECT200, 8x DECT301, - HmIP: 3x FalmotC12, 16x WTH2

Guzzi-Charlie

Ich hatte die Tage noch was zu cmdIcon gefunden, konnte damit aber auch keine Ergebnisse erziehlen. Vielleicht ist es trotzdem nützlich.

https://waschto.eu/aufwerten-von-fhem-devices-durch-icons/

- RaspPI 4+: (Cuno V2 -2x KS300, JeeLink -13x EC3000)
- Stromzähler (B+G E-Tech): 6x SDM120M, 9x XTM100A, 38x DRS110M
- LAN: IT LAN-Gateway mit 34x RMF-R1 (Rohrmotor24)
- WLAN: 85x Shelly, 12x Gosund SP111, 16x D1-Mini, 15x Sonoff Basic
- DECT: 6x DECT200, 8x DECT301, - HmIP: 3x FalmotC12, 16x WTH2

Beta-User

Hmm, vorne hast du natürlich recht, das sollte der passende Set-Befehl sein, also mit dem richtigen Indexwert. Hinten ist es eigentlich (hoffentlich) nur Text, da sollte es "egal" sein (aber natürlich inhaltlich passen).

Steht was im log?

Ansonsten würde ich ein list von dem Gesamtgerät benötigen, dann kann ich uu. am WE mal spielen.

Der waschto-Beitrag ist zwar qualitativ besser als das meiste, was man so in den Weiten des INet findet (siehe https://wiki.fhem.de/wiki/Dokumentationsstruktur), deckt aber unser Problem nicht ab. Wenn du magst und evtl. einen RT-DN hast, kannst du ja mal den Code hier testen und nachvollziehen; der ist entstanden, nachdem ich den im mqtt2-template enthaltenen Code von dem 4-er Tasmota verstanden habe...)
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

Guzzi-Charlie

"RT-DN", wußte ich erst gar nicht  was das ist, aber wenn ich das nun richtig verstanden habe, dann ist das ein Raumthermostat von Homematic, oder? Damit kann ich aber leider nicht dienen. Ich setzte keine Hommatic-Komponenten ein.

List vom Gesamtgerät:defmod MQTT2_shelly4pro_4BBF45 MQTT2_DEVICE shelly4pro_4BBF45
attr MQTT2_shelly4pro_4BBF45 IODev MQTT2_FHEM_Server
attr MQTT2_shelly4pro_4BBF45 alias IoT-Licht-WZ1
attr MQTT2_shelly4pro_4BBF45 devStateIcon {"<div>\   <a href=\"/fhem?cmd.dummy=set ".$name." relay0 ".ReadingsVal($name, "relay0", "off") =~ /off/ ? "on": "off" . "&XHR=1\">Relay 0:" . FW_makeImage(ReadingsVal($name, "relay0", "off")) . "</a> \   <a href=\"/fhem?cmd.dummy=set ".$name." relay1 ".ReadingsVal($name, "relay1", "off") =~ /off/ ? "on": "off" . "&XHR=1\">Relay 1:" . FW_makeImage(ReadingsVal($name, "relay1", "off")) . "</a> \   <a href=\"/fhem?cmd.dummy=set ".$name." relay2 ".ReadingsVal($name, "relay2", "off") =~ /off/ ? "on": "off" . "&XHR=1\">Relay 2:" . FW_makeImage(ReadingsVal($name, "relay2", "off")) . "</a> \   <a href=\"/fhem?cmd.dummy=set ".$name." relay3 ".ReadingsVal($name, "relay3", "off") =~ /off/ ? "on": "off" . "&XHR=1\">Relay 3:" . FW_makeImage(ReadingsVal($name, "relay3", "off")) . "</a\   ></div>" }
attr MQTT2_shelly4pro_4BBF45 getList power0:noArg shellies/shelly4pro-4BBF45/relay/0/power power0\
  energy0:noArg shellies/shelly4pro-4BBF45/relay/0/energy energy0\
  power1:noArg shellies/shelly4pro-4BBF45/relay/1/power power1\
  energy1:noArg shellies/shelly4pro-4BBF45/relay/1/energy energy1\
  power2:noArg shellies/shelly4pro-4BBF45/relay/2/power power2\
  energy2:noArg shellies/Dshelly4pro-4BBF45/relay/2/energy energy2\
  power3:noArg shellies/shelly4pro-4BBF45/relay/3/power power3\
  energy3:noArg shellies/shelly4pro-4BBF45/relay/3/energy energy3
attr MQTT2_shelly4pro_4BBF45 group EG.Wohnzimmer
attr MQTT2_shelly4pro_4BBF45 icon light_ceiling
attr MQTT2_shelly4pro_4BBF45 model A_14b_shelly4pro_unified
attr MQTT2_shelly4pro_4BBF45 readingList shellies/shelly4pro-4BBF45/relay/0:.* relay0\
shellies/shelly4pro-4BBF45/input/0:.* input0\
shellies/shelly4pro-4BBF45/relay/1:.* relay1\
shellies/shelly4pro-4BBF45/input/1:.* input1\
shellies/shelly4pro-4BBF45/relay/2:.* relay2\
shellies/shelly4pro-4BBF45/input/2:.* input2\
shellies/shelly4pro-4BBF45/relay/3:.* relay3\
shellies/shelly4pro-4BBF45/input/3:.* input3\
shellies/shelly4pro-4BBF45/online:.* online\
shellies/shelly4pro-4BBF45/announce:.* { json2nameValue($EVENT, '', $JSONMAP) }\
shelly4pro_4BBF45:shellies/shelly4pro-4BBF45/relay/0/power:.* relay_0_power\
shelly4pro_4BBF45:shellies/shelly4pro-4BBF45/relay/1/power:.* relay_1_power\
shelly4pro_4BBF45:shellies/shelly4pro-4BBF45/relay/2/power:.* relay_2_power\
shelly4pro_4BBF45:shellies/shelly4pro-4BBF45/relay/3/power:.* relay_3_power\
shelly4pro_4BBF45:shellies/shelly4pro-4BBF45/relay/0/energy:.* relay_0_energy\
shelly4pro_4BBF45:shellies/shelly4pro-4BBF45/relay/1/energy:.* relay_1_energy\
shelly4pro_4BBF45:shellies/shelly4pro-4BBF45/relay/2/energy:.* relay_2_energy\
shelly4pro_4BBF45:shellies/shelly4pro-4BBF45/relay/3/energy:.* relay_3_energy
attr MQTT2_shelly4pro_4BBF45 room MQTT2_DEVICE
attr MQTT2_shelly4pro_4BBF45 setList relay0:on,off shellies/shelly4pro-4BBF45/relay/0/command $EVTPART1\
relay1:on,off shellies/shelly4pro-4BBF45/relay/1/command $EVTPART1\
relay2:on,off shellies/shelly4pro-4BBF45/relay/2/command $EVTPART1\
relay3:on,off shellies/shelly4pro-4BBF45/relay/3/command $EVTPART1
attr MQTT2_shelly4pro_4BBF45 webCmd relay0:relay1:relay2:relay3
attr MQTT2_shelly4pro_4BBF45 webCmdLabel Kanal 1\
:Kanal 2\
:Kanal 3\
:Kanal 4\
:

setstate MQTT2_shelly4pro_4BBF45 relay3
setstate MQTT2_shelly4pro_4BBF45 2019-02-15 16:09:12 relay0 off
setstate MQTT2_shelly4pro_4BBF45 2019-02-15 16:09:12 relay1 off
setstate MQTT2_shelly4pro_4BBF45 2019-02-15 16:09:12 relay2 off
setstate MQTT2_shelly4pro_4BBF45 2019-02-15 16:09:12 relay3 off
setstate MQTT2_shelly4pro_4BBF45 2019-02-15 12:45:46 relay_0_energy 0
setstate MQTT2_shelly4pro_4BBF45 2019-02-15 16:09:12 relay_0_power 0.00
setstate MQTT2_shelly4pro_4BBF45 2019-02-15 12:45:46 relay_1_energy 0
setstate MQTT2_shelly4pro_4BBF45 2019-02-15 16:09:12 relay_1_power 0.00
setstate MQTT2_shelly4pro_4BBF45 2019-02-15 12:45:47 relay_2_energy 0
setstate MQTT2_shelly4pro_4BBF45 2019-02-15 16:09:12 relay_2_power 0.00
setstate MQTT2_shelly4pro_4BBF45 2019-02-15 12:45:47 relay_3_energy 0
setstate MQTT2_shelly4pro_4BBF45 2019-02-15 16:09:12 relay_3_power 0.00
setstate MQTT2_shelly4pro_4BBF45 2019-02-15 12:46:20 state relay3



"Steht was im log?":
Das Log ist riesengroß. Wonach soll ich da suchen? Das Einzige was mir auf die Schnelle aufgefallen ist, ist das alle Naselang ein autocreate stattfindet (aber nicht nur für dieses Gerät).2019.02.15 15:30:12 5: PINGREQ:
2019.02.15 15:30:12 4: MQTT2_FHEM_Server_192.168.178.161_14747 DVES_D5A12E PINGREQ
2019.02.15 15:30:14 5: PINGREQ:
2019.02.15 15:30:14 4: MQTT2_FHEM_Server_192.168.178.167_49175 DVES_D41D1D PINGREQ
2019.02.15 15:30:14 5: PINGREQ:
2019.02.15 15:30:14 4: MQTT2_FHEM_Server_192.168.178.163_11722 DVES_D5AFC8 PINGREQ
Das sind Sonoff Basic

2019.02.15 15:30:14 3: DS18B20_D2AF77911102: reading temperature did not return a value
2019.02.15 15:30:15 3: DS18S20_516ADE020800: reading temperature did not return a value
Momentan nicht angeschlossene 1-Wire Sensoren

2019.02.15 15:30:18 5: PINGREQ:
2019.02.15 15:30:18 4: MQTT2_FHEM_Server_192.168.178.165_23362 DVES_D5A12C PINGREQ
2019.02.15 15:30:18 5: PINGREQ:
2019.02.15 15:30:18 4: MQTT2_FHEM_Server_192.168.178.162_53230 DVES_E4AC01 PINGREQ
2019.02.15 15:30:20 5: PINGREQ:
2019.02.15 15:30:20 4: MQTT2_FHEM_Server_192.168.178.169_49205 DVES_D44E1E PINGREQ
Sonoff Basic

2019.02.15 15:30:20 5: PUBLISH: 0)(0)$shellies/shellyswitch-135A27/relay/0o
2019.02.15 15:30:20 4: MQTT2_FHEM_Server_192.168.178.141_4809 shellyswitch-135A27 PUBLISH shellies/shellyswitch-135A27/relay/0:off
2019.02.15 15:30:20 5: MQTT2_FHEM_Server: dispatch autocreate\000shellyswitch_135A27\000shellies/shellyswitch-135A27/relay/0\000off
2019.02.15 15:30:20 5: PUBLISH: 0)(0)$shellies/shellyswitch-135A27/relay/1o
2019.02.15 15:30:20 4: MQTT2_FHEM_Server_192.168.178.141_4809 shellyswitch-135A27 PUBLISH shellies/shellyswitch-135A27/relay/1:off
2019.02.15 15:30:20 5: MQTT2_FHEM_Server: dispatch autocreate\000shellyswitch_135A27\000shellies/shellyswitch-135A27/relay/1\000off
2019.02.15 15:30:20 5: PUBLISH: 0.(0)(shellies/shellyswitch-135A27/relay/power0.
2019.02.15 15:30:20 4: MQTT2_FHEM_Server_192.168.178.141_4809 shellyswitch-135A27 PUBLISH shellies/shellyswitch-135A27/relay/power:0.00
2019.02.15 15:30:20 5: MQTT2_FHEM_Server: dispatch autocreate\000shellyswitch_135A27\000shellies/shellyswitch-135A27/relay/power\0000.00
2019.02.15 15:30:20 5: PUBLISH: 0'(0)$shellies/shellyswitch-135A27/input/
2019.02.15 15:30:20 4: MQTT2_FHEM_Server_192.168.178.141_4809 shellyswitch-135A27 PUBLISH shellies/shellyswitch-135A27/input/0:0
2019.02.15 15:30:20 5: MQTT2_FHEM_Server: dispatch autocreate\000shellyswitch_135A27\000shellies/shellyswitch-135A27/input/0\0000
2019.02.15 15:30:20 5: PUBLISH: 0'(0)$shellies/shellyswitch-135A27/input/
2019.02.15 15:30:20 4: MQTT2_FHEM_Server_192.168.178.141_4809 shellyswitch-135A27 PUBLISH shellies/shellyswitch-135A27/input/1:0
2019.02.15 15:30:20 5: MQTT2_FHEM_Server: dispatch autocreate\000shellyswitch_135A27\000shellies/shellyswitch-135A27/input/1\0000
Das sit ein Shelly 2

autocreate\000shelly4pro_4BBF45\000shellies/shelly4pro-4BBF45/relay/1/power\0000.00
2019.02.15 12:48:52 5: PUBLISH: 0'(0)"shellies/shelly4pro-4BBF45/relay/1o
2019.02.15 12:48:52 4: MQTT2_FHEM_Server_192.168.178.132_53696 shelly4pro-4BBF45 PUBLISH shellies/shelly4pro-4BBF45/relay/1:off
2019.02.15 12:48:52 5: MQTT2_FHEM_Server: dispatch autocreate\000shelly4pro_4BBF45\000shellies/shelly4pro-4BBF45/relay/1\000off
2019.02.15 12:48:52 5: PUBLISH: 0.(0)(shellies/shelly4pro-4BBF45/relay/2/power0.
2019.02.15 12:48:52 4: MQTT2_FHEM_Server_192.168.178.132_53696 shelly4pro-4BBF45 PUBLISH shellies/shelly4pro-4BBF45/relay/2/power:0.00
2019.02.15 12:48:52 5: MQTT2_FHEM_Server: dispatch
Das ist der Shelly 4Pro an dem ich teste
- RaspPI 4+: (Cuno V2 -2x KS300, JeeLink -13x EC3000)
- Stromzähler (B+G E-Tech): 6x SDM120M, 9x XTM100A, 38x DRS110M
- LAN: IT LAN-Gateway mit 34x RMF-R1 (Rohrmotor24)
- WLAN: 85x Shelly, 12x Gosund SP111, 16x D1-Mini, 15x Sonoff Basic
- DECT: 6x DECT200, 8x DECT301, - HmIP: 3x FalmotC12, 16x WTH2

Beta-User

OK, sorry, dachte durch den Link usw. wäre klar, dass es sich um die besagten Raum-Temperatur-Dinger handelt :) .
Aber das Bild da und die Beschreibung sind ja hoffentlich auch für andere Thermostate "im Prinzip" nachvollziehbar, hoffe ich.

Mit "was steht im Log" war gemeint: gibt es irgendwelche Auffälligkeiten, die mit der Zuweisung des Attributes (devStateIcon) zu tun haben. Scheint nicht der Fall zu sein, die Anweisung wird geschluckt, aber mehr auch nicht...

Muß das mal gedanklich durchspielen, wird dauern, wie bereits angekündigt.
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

Guzzi-Charlie

Kein Problem, ich habs ja herausgefunden (über den Link). Konnte halt rein vom Text nichts damit anfangen, da ich keine Homematic-Komponenten habe.

Mit dem Log war mir im Prinzip schon klar das es um Auffälligkeiten geht, aber wie Du schon sagtest. Der Befehl wird "geschluckt", d.h. die Syntax ist wohl ok, aber er hat offensichtlich keinerlei funktionalen Auswirkungen.

Etwas weiter sind wir ja trotzdem schon. Ich kann alle 4 Kanäle in einem Gerät bedienen und erhalte die korrekten Rückmeldungen. Jetzt geht es "nur" noch um die Ästhetik.
- RaspPI 4+: (Cuno V2 -2x KS300, JeeLink -13x EC3000)
- Stromzähler (B+G E-Tech): 6x SDM120M, 9x XTM100A, 38x DRS110M
- LAN: IT LAN-Gateway mit 34x RMF-R1 (Rohrmotor24)
- WLAN: 85x Shelly, 12x Gosund SP111, 16x D1-Mini, 15x Sonoff Basic
- DECT: 6x DECT200, 8x DECT301, - HmIP: 3x FalmotC12, 16x WTH2

Guzzi-Charlie

Hallo,

ich habe gerade noch was ganz anderes ausgegraben.

uzsu (universelle zeitschaltuhr)
und
iconSwitch

Hab mal für die vier Kanäle vier verschiedene settings in der setList eingetragen (als Beispiele).
attr MQTT2_shelly4pro_4BBF45 setList relay0:uzsuSelectRadio,on,off shellies/shelly4pro-4BBF45/relay/0/command $EVTPART1\
relay1:uzsuToggle,on,off shellies/shelly4pro-4BBF45/relay/1/command $EVTPART1\
relay2:iconSwitch,on,li_wht_off,off,li_wht_on shellies/shelly4pro-4BBF45/relay/2/command $EVTPART1\
relay3:on,off shellies/shelly4pro-4BBF45/relay/3/command $EVTPART1

- Kanal 1 mit uzsuSelectRadio (zwei Buttons, der ausgewählte ist gelb umrandet, aber schlecht zu sehen. Vielleicht kann man das auch noch konfigurieren)
- Kanal 2 mit uzsuToggle (ein "Toggle"-Button mit Status "on/off"-Text)
- Kanal 3 mit iconSwitch (ein "Toggle"-Button der mit beliebigen Icons hinterlegt werden kann)
- Kanal 4 ohne alles (Dropdown-Box mit Auswahl)

Kanal 3 mit iconSwitch hat eigentlich schon alles was ich benötige. Alle Varianten funktionieren sowohl bei Bedienung über FHEM als auch bei externer Bedienung über das Shelly Web-IF.

Jetzt muß ich nur noch schauen was ich mit der state-Anzeige mache. Ob ich die noch für irgendetwas brauchen kann, oder ob ich die irgendwie ganz unterdrücke.
- RaspPI 4+: (Cuno V2 -2x KS300, JeeLink -13x EC3000)
- Stromzähler (B+G E-Tech): 6x SDM120M, 9x XTM100A, 38x DRS110M
- LAN: IT LAN-Gateway mit 34x RMF-R1 (Rohrmotor24)
- WLAN: 85x Shelly, 12x Gosund SP111, 16x D1-Mini, 15x Sonoff Basic
- DECT: 6x DECT200, 8x DECT301, - HmIP: 3x FalmotC12, 16x WTH2

Beta-User

Das hier scheint zu funktionieren, ist aber noch nicht vollständig aufgehübscht - geändert sind nur setStateList und devStateIcon:
defmod MQTT2_shelly4pro_4BBF45 MQTT2_DEVICE shelly4pro_4BBF45
attr MQTT2_shelly4pro_4BBF45 IODev MQTT2_FHEM_Server
attr MQTT2_shelly4pro_4BBF45 alias IoT-Licht-WZ1
attr MQTT2_shelly4pro_4BBF45 devStateIcon {my $cmd00 = ReadingsVal($name, "relay0", "off") =~ /off/ ? "on": "off";;my $cmd01 = ReadingsVal($name, "relay1", "off") =~ /off/ ? "on": "off";;my $cmd02 = ReadingsVal($name, "relay2", "off") =~ /off/ ? "on": "off";;my $cmd03 = ReadingsVal($name, "relay3", "off") =~ /off/ ? "on": "off";; return "<div>\    <a href=\"/fhem?cmd.dummy=set ".$name." relay0 ". $cmd00 . "&XHR=1\">Relay 0:" . FW_makeImage(ReadingsVal($name, "relay0", "off")) . "</a> \    <a href=\"/fhem?cmd.dummy=set ".$name." relay1 ". $cmd01 . "&XHR=1\">Relay 1:" . FW_makeImage(ReadingsVal($name, "relay1", "off")) . "</a> \    <a href=\"/fhem?cmd.dummy=set ".$name." relay2 ". $cmd02 . "&XHR=1\">Relay 2:" . FW_makeImage(ReadingsVal($name, "relay2", "off")) . "</a> \    <a href=\"/fhem?cmd.dummy=set ".$name." relay3 ". $cmd03 . "&XHR=1\">Relay 3:" . FW_makeImage(ReadingsVal($name, "relay3", "off")) . "</a\   ></div>" }
attr MQTT2_shelly4pro_4BBF45 getList power0:noArg shellies/shelly4pro-4BBF45/relay/0/power power0\
  energy0:noArg shellies/shelly4pro-4BBF45/relay/0/energy energy0\
  power1:noArg shellies/shelly4pro-4BBF45/relay/1/power power1\
  energy1:noArg shellies/shelly4pro-4BBF45/relay/1/energy energy1\
  power2:noArg shellies/shelly4pro-4BBF45/relay/2/power power2\
  energy2:noArg shellies/Dshelly4pro-4BBF45/relay/2/energy energy2\
  power3:noArg shellies/shelly4pro-4BBF45/relay/3/power power3\
  energy3:noArg shellies/shelly4pro-4BBF45/relay/3/energy energy3
attr MQTT2_shelly4pro_4BBF45 icon light_ceiling
attr MQTT2_shelly4pro_4BBF45 model A_14b_shelly4pro_unified
attr MQTT2_shelly4pro_4BBF45 readingList shellies/shelly4pro-4BBF45/relay/0:.* relay0\
shellies/shelly4pro-4BBF45/input/0:.* input0\
shellies/shelly4pro-4BBF45/relay/1:.* relay1\
shellies/shelly4pro-4BBF45/input/1:.* input1\
shellies/shelly4pro-4BBF45/relay/2:.* relay2\
shellies/shelly4pro-4BBF45/input/2:.* input2\
shellies/shelly4pro-4BBF45/relay/3:.* relay3\
shellies/shelly4pro-4BBF45/input/3:.* input3\
shellies/shelly4pro-4BBF45/online:.* online\
shellies/shelly4pro-4BBF45/announce:.* { json2nameValue($EVENT, '', $JSONMAP) }\
shelly4pro_4BBF45:shellies/shelly4pro-4BBF45/relay/0/power:.* relay_0_power\
shelly4pro_4BBF45:shellies/shelly4pro-4BBF45/relay/1/power:.* relay_1_power\
shelly4pro_4BBF45:shellies/shelly4pro-4BBF45/relay/2/power:.* relay_2_power\
shelly4pro_4BBF45:shellies/shelly4pro-4BBF45/relay/3/power:.* relay_3_power\
shelly4pro_4BBF45:shellies/shelly4pro-4BBF45/relay/0/energy:.* relay_0_energy\
shelly4pro_4BBF45:shellies/shelly4pro-4BBF45/relay/1/energy:.* relay_1_energy\
shelly4pro_4BBF45:shellies/shelly4pro-4BBF45/relay/2/energy:.* relay_2_energy\
shelly4pro_4BBF45:shellies/shelly4pro-4BBF45/relay/3/energy:.* relay_3_energy
attr MQTT2_shelly4pro_4BBF45 room MQTT2_DEVICE
attr MQTT2_shelly4pro_4BBF45 setList relay0:on,off shellies/shelly4pro-4BBF45/relay/0/command $EVTPART1\
relay1:on,off shellies/shelly4pro-4BBF45/relay/1/command $EVTPART1\
relay2:on,off shellies/shelly4pro-4BBF45/relay/2/command $EVTPART1\
relay3:on,off shellies/shelly4pro-4BBF45/relay/3/command $EVTPART1
attr MQTT2_shelly4pro_4BBF45 setStateList none power0
attr MQTT2_shelly4pro_4BBF45 webCmd relay0:relay1:relay2:relay3
attr MQTT2_shelly4pro_4BBF45 webCmdLabel Kanal 1\
:Kanal 2\
:Kanal 3\
:Kanal 4\
:

setstate MQTT2_shelly4pro_4BBF45 relay0
setstate MQTT2_shelly4pro_4BBF45 2019-02-17 15:18:15 relay0 set off
setstate MQTT2_shelly4pro_4BBF45 2019-02-15 16:09:12 relay1 off
setstate MQTT2_shelly4pro_4BBF45 2019-02-15 16:09:12 relay2 off
setstate MQTT2_shelly4pro_4BBF45 2019-02-15 16:09:12 relay3 off
setstate MQTT2_shelly4pro_4BBF45 2019-02-15 12:45:46 relay_0_energy 0
setstate MQTT2_shelly4pro_4BBF45 2019-02-15 16:09:12 relay_0_power 0.00
setstate MQTT2_shelly4pro_4BBF45 2019-02-15 12:45:46 relay_1_energy 0
setstate MQTT2_shelly4pro_4BBF45 2019-02-15 16:09:12 relay_1_power 0.00
setstate MQTT2_shelly4pro_4BBF45 2019-02-15 12:45:47 relay_2_energy 0
setstate MQTT2_shelly4pro_4BBF45 2019-02-15 16:09:12 relay_2_power 0.00
setstate MQTT2_shelly4pro_4BBF45 2019-02-15 12:45:47 relay_3_energy 0
setstate MQTT2_shelly4pro_4BBF45 2019-02-15 16:09:12 relay_3_power 0.00
setstate MQTT2_shelly4pro_4BBF45 2019-02-17 15:16:40 state relay0

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

Guzzi-Charlie

Hallo,
ich werd mir das mal anschauen, Danke.

Hast Du Dir das mal angeschaut was ich gepostet hatte? Was hälst Du davon?

Gruß und einen schönen Sonntag Abend
- RaspPI 4+: (Cuno V2 -2x KS300, JeeLink -13x EC3000)
- Stromzähler (B+G E-Tech): 6x SDM120M, 9x XTM100A, 38x DRS110M
- LAN: IT LAN-Gateway mit 34x RMF-R1 (Rohrmotor24)
- WLAN: 85x Shelly, 12x Gosund SP111, 16x D1-Mini, 15x Sonoff Basic
- DECT: 6x DECT200, 8x DECT301, - HmIP: 3x FalmotC12, 16x WTH2

Beta-User

Moin,

sorry, hat etwas gedauert, bis der Groschen gefallen war ;D , war etwas sehr auf das devStateIcon fixiert.

Zitat von: Guzzi-Charlie am 17 Februar 2019, 19:41:56
Was hälst Du davon?
Sehr gut! Hatte das mit den Widgets irgendwie nicht hinreichend auf dem Schirm und war im ersten Moment nicht von der Lampenoptik überzeugt - aber das kann man ja ändern :) . (Werde ich aber nicht, so sieht man besser, was die Stellschraube ist, wenn man andere icons will :) ).

Magst du das soweit (mit "nur" iconSwitch) bereinigen, dass ich das direkt als template übernehmen kann?
Wünschen würde ich mir dabei nur, dass die Darstellung "default" einzeilig ist und die Kanalnummern zur internen Nummerierung passen:
attr MQTT2_shelly4pro_4BBF45 webCmdLabel Kanal 0:Kanal 1:Kanal 2:Kanal 3
Bin zwar kein Didaktiker, habe aber den Verdacht, dass eine andere Nummerierung sonst "irgendwann" zu Verwirrung führt, wenn sich der unbedachte user dann doch irgendwann mit den Internas beschäftigt.
Das mit der mehrzeiligen Darstellung könnten wir dann als Beispiel für eine Anpassung in's Wiki zu webCmdLabel oder "Device_Overview" packen?

Gruß, Beta-User
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

Guzzi-Charlie

Hallo,
ich werde mich im Laufe des Tages darum kümmern.

Deine letzte Variante mit devStateIcon funktioniert jetzt übrigens auch. Später mehr dazu, hab jetzt gerade nicht soviel Zeit.

Gruß
- RaspPI 4+: (Cuno V2 -2x KS300, JeeLink -13x EC3000)
- Stromzähler (B+G E-Tech): 6x SDM120M, 9x XTM100A, 38x DRS110M
- LAN: IT LAN-Gateway mit 34x RMF-R1 (Rohrmotor24)
- WLAN: 85x Shelly, 12x Gosund SP111, 16x D1-Mini, 15x Sonoff Basic
- DECT: 6x DECT200, 8x DECT301, - HmIP: 3x FalmotC12, 16x WTH2

Guzzi-Charlie

So, ich hab das Sript (den Teil für Shelly 4PRO unified) von Dir mal angepaßt:# shelly4pro unified device using original firmware
# source: https://forum.fhem.de/index.php/topic,97218.msg905689.html#msg905689
name:A_14b_shelly4pro_unified
filter:TYPE=MQTT2_DEVICE
desc:shelly4pro using original firmware <br>NOTE: UNTESTED! feedback is apreciated, please try also to add toggle commands <br>NOTE: only one device will be created.
par:DEVNAME;Shelly4Pro name in the topic;{ AttrVal("DEVICE","readingList","") =~ m,shellies/([^/]*)/, ? $1 : undef }
set DEVICE attrTemplate A_10a_shellyplug
attr DEVICE getList \
  power0:noArg shellies/DEVNAME/relay/0/power power0\
  energy0:noArg shellies/DEVNAME/relay/0/energy energy0\
  power1:noArg shellies/DEVNAME/relay/1/power power1\
  energy1:noArg shellies/DEVNAME/relay/1/energy energy1\
  power2:noArg shellies/DEVNAME/relay/2/power power2\
  energy2:noArg shellies/DDEVNAME/relay/2/energy energy2\
  power3:noArg shellies/DEVNAME/relay/3/power power3\
  energy3:noArg shellies/DEVNAME/relay/3/energy energy3
attr DEVICE readingList \
  shellies/DEVNAME/relay/0:.* relay0\
  shellies/DEVNAME/input/0:.* input0\
  shellies/DEVNAME/relay/1:.* relay1\
  shellies/DEVNAME/input/1:.* input1\
  shellies/DEVNAME/relay/2:.* relay2\
  shellies/DEVNAME/input/2:.* input2\
  shellies/DEVNAME/relay/3:.* relay3\
  shellies/DEVNAME/input/3:.* input3\
  shellies/DEVNAME/online:.* online\
  shellies/DEVNAME/announce:.* { json2nameValue($EVENT, '', $JSONMAP) }
attr DEVICE setList \
  relay0:iconSwitch,on,li_wht_off,off,li_wht_on shellies/DEVNAME/relay/0/command $EVTPART1\
  relay1:iconSwitch,on,li_wht_off,off,li_wht_on shellies/DEVNAME/relay/1/command $EVTPART1\
  relay2:iconSwitch,on,li_wht_off,off,li_wht_on shellies/DEVNAME/relay/2/command $EVTPART1\
  relay3:iconSwitch,on,li_wht_off,off,li_wht_on shellies/DEVNAME/relay/3/command $EVTPART1 
attr DEVNAME webCmd relay0:relay1:relay2:relay3
attr DEVNAME webCmdLabel R0:R1:R2:R3
attr DEVICE model A_14b_shelly4pro_unified


Ich habe:
- setList auf jetzt nur mit iconSwitch geändert (die Varianten in meinem Post waren ja nur zur Veranschaulichung der Möglichkeiten. Ich benutze auch nur iconSwitch).
- die Kanäle in R0...R3 umbenannt
- webCmdLabel einzeilig ausgeführt

Mein Shelly sieht jetzt so aus:
defmod MQTT2_shelly4pro_801300 MQTT2_DEVICE shelly4pro_801300
attr MQTT2_shelly4pro_801300 IODev MQTT2_FHEM_Server
attr MQTT2_shelly4pro_801300 alias Beleuchtung
attr MQTT2_shelly4pro_801300 devStateIcon relay0:rc_BLANK relay1:rc_BLANK relay2:rc_BLANK relay3:rc_BLANK
attr MQTT2_shelly4pro_801300 getList power0:noArg shellies/shelly4pro-801300/relay/0/power power0\
  energy0:noArg shellies/shelly4pro-801300/relay/0/energy energy0\
  power1:noArg shellies/shelly4pro-801300/relay/1/power power1\
  energy1:noArg shellies/shelly4pro-801300/relay/1/energy energy1\
  power2:noArg shellies/shelly4pro-801300/relay/2/power power2\
  energy2:noArg shellies/Dshelly4pro-801300/relay/2/energy energy2\
  power3:noArg shellies/shelly4pro-801300/relay/3/power power3\
  energy3:noArg shellies/shelly4pro-801300/relay/3/energy energy3
attr MQTT2_shelly4pro_801300 group EG.Diele
attr MQTT2_shelly4pro_801300 icon light_ceiling
attr MQTT2_shelly4pro_801300 model A_14b_shelly4pro_unified
attr MQTT2_shelly4pro_801300 readingList shellies/shelly4pro-801300/relay/0:.* relay0\
  shellies/shelly4pro-801300/input/0:.* input0\
  shellies/shelly4pro-801300/relay/1:.* relay1\
  shellies/shelly4pro-801300/input/1:.* input1\
  shellies/shelly4pro-801300/relay/2:.* relay2\
  shellies/shelly4pro-801300/input/2:.* input2\
  shellies/shelly4pro-801300/relay/3:.* relay3\
  shellies/shelly4pro-801300/input/3:.* input3\
  shellies/shelly4pro-801300/online:.* online\
  shellies/shelly4pro-801300/announce:.* { json2nameValue($EVENT, '', $JSONMAP) }\
shelly4pro_801300:shellies/shelly4pro-801300/relay/0/power:.* relay_0_power\
shelly4pro_801300:shellies/shelly4pro-801300/relay/1/power:.* relay_1_power\
shelly4pro_801300:shellies/shelly4pro-801300/relay/2/power:.* relay_2_power\
shelly4pro_801300:shellies/shelly4pro-801300/relay/3/power:.* relay_3_power\
shelly4pro_801300:shellies/shelly4pro-801300/relay/0/energy:.* relay_0_energy\
shelly4pro_801300:shellies/shelly4pro-801300/relay/1/energy:.* relay_1_energy\
shelly4pro_801300:shellies/shelly4pro-801300/relay/2/energy:.* relay_2_energy\
shelly4pro_801300:shellies/shelly4pro-801300/relay/3/energy:.* relay_3_energy
attr MQTT2_shelly4pro_801300 room Erdgeschoß,MQTT2_DEVICE
attr MQTT2_shelly4pro_801300 setList relay0:iconSwitch,on,li_wht_off,off,li_wht_on shellies/shelly4pro-801300/relay/0/command $EVTPART1\
relay1:iconSwitch,on,li_wht_off,off,li_wht_on shellies/shelly4pro-801300/relay/1/command $EVTPART1\
relay2:iconSwitch,on,li_wht_off,off,li_wht_on shellies/shelly4pro-801300/relay/2/command $EVTPART1\
relay3:iconSwitch,on,li_wht_off,off,li_wht_on shellies/shelly4pro-801300/relay/3/command $EVTPART1
attr MQTT2_shelly4pro_801300 webCmd relay0:relay1:relay2:relay3
attr MQTT2_shelly4pro_801300 webCmdLabel Sternenhimmel\
:Spot Bilder\
:Garderobe\
:Haustür\
:

setstate MQTT2_shelly4pro_801300 relay0
setstate MQTT2_shelly4pro_801300 2019-02-17 16:35:06 fw_ver 20190122-162215/v1.4.5@5cbc6229
setstate MQTT2_shelly4pro_801300 2019-02-17 16:35:06 id shelly4pro-801300
setstate MQTT2_shelly4pro_801300 2019-02-17 16:35:06 ip 192.168.178.131
setstate MQTT2_shelly4pro_801300 2019-02-17 16:35:06 mac C8FD19801300
setstate MQTT2_shelly4pro_801300 2019-02-17 16:35:06 new_fw false
setstate MQTT2_shelly4pro_801300 2019-02-17 16:35:06 online true
setstate MQTT2_shelly4pro_801300 2019-02-18 17:52:55 relay0 off
setstate MQTT2_shelly4pro_801300 2019-02-18 17:52:55 relay1 off
setstate MQTT2_shelly4pro_801300 2019-02-18 17:52:55 relay2 off
setstate MQTT2_shelly4pro_801300 2019-02-18 17:52:55 relay3 off
setstate MQTT2_shelly4pro_801300 2019-02-18 17:32:24 relay_0_energy 0
setstate MQTT2_shelly4pro_801300 2019-02-18 17:52:55 relay_0_power 0.00
setstate MQTT2_shelly4pro_801300 2019-02-16 18:04:01 relay_1_energy 0
setstate MQTT2_shelly4pro_801300 2019-02-18 17:52:55 relay_1_power 0.00
setstate MQTT2_shelly4pro_801300 2019-02-18 12:31:01 relay_2_energy 0
setstate MQTT2_shelly4pro_801300 2019-02-18 17:52:55 relay_2_power 0.00
setstate MQTT2_shelly4pro_801300 2019-02-18 07:56:39 relay_3_energy 0
setstate MQTT2_shelly4pro_801300 2019-02-18 17:52:55 relay_3_power 0.00
setstate MQTT2_shelly4pro_801300 2019-02-18 17:32:49 state relay0



Zwei Dinge verstehe ich noch nicht ganz:
1. Du legst eine getList an mit für die power und Energiewerte,power0:noArg shellies/shelly4pro-801300/relay/0/power power0
  energy0:noArg shellies/shelly4pro-801300/relay/0/energy energy0

  Für "relay.." und "input.." eine readingList. readingList verstehe ich ja, aber das mit der getList nicht zumal der Shelly/das autocreate offensichtlich sowieso automatisch die "power" und "energy"-Werte selbst sendet/anlegt, dabei allerdings wieder mit der vorangestellten CID und als "relay_0_power/relay_0_energy"shelly4pro_801300:shellies/shelly4pro-801300/relay/0/power:.* relay_0_power

2. Auch das mit dem attrTemplate angelegte reading { json2nameValue($EVENT, '', $JSONMAP) }wird automatisch neu (zusätzlich) geschrieben in { json2nameValue($EVENT) }

Ich glaube ein klein wenig sollten wir das alles noch anpassen. Mir gefällt zwar "power0" besser als "relay_0_power" weil genauso eindeutig aber kürzer. Das müßte dann aber im autocreate (sprich von Rudi angepaßt werden),oder? Ich weiß nicht was er dazu meint und wieviele Leute das schon so verwenden wie es jetzt ist. Ich kann natürlich auch so damit leben, aber dann sollte es in Deinem Template geändert werden.


So, und nun noch eine Frage zu Deiner Variante mit devStateIcon. Wo/wie wird denn da das icon festgelegt? Ist das FS20-Lämpchen das Standard-Icon?

Gruß
- RaspPI 4+: (Cuno V2 -2x KS300, JeeLink -13x EC3000)
- Stromzähler (B+G E-Tech): 6x SDM120M, 9x XTM100A, 38x DRS110M
- LAN: IT LAN-Gateway mit 34x RMF-R1 (Rohrmotor24)
- WLAN: 85x Shelly, 12x Gosund SP111, 16x D1-Mini, 15x Sonoff Basic
- DECT: 6x DECT200, 8x DECT301, - HmIP: 3x FalmotC12, 16x WTH2

Beta-User

So langsam wird das was, Danke auch für die kritische Durchsicht...

Kurz du deinen Fragen:
- manches (wie die JSONMAP) hat sich erst ergeben bzw. weiterentwickelt, ohne dass das in allen templates schon durchgängig berücksichtigt wäre (hier: wieder raus). mea culpa (zur Entschuldigung nochmal: ich habe die meiste Hardware gar nicht und müßte alles "trocken" vorhersehen... Da die templates nur der einmaligen Einrichtung dienen, eilt das nicht, aber ich checke das nochmal durch).
- autocreate wird nur aktiv, wenn es noch nichts passendes gibt. Es wäre daher sinnvoll, die readingList so zu erweitern, dass die angefragen Ergebnisse (aus getList) auch in den passenden Readings landen (power0 und energy0 etc.). Die längeren Reading-Namen sind das Ergebnis der Feststellung, dass einige mehrkanalige MQTT-Geräte eine pure Zahl zwischen den Trennzeichen "/" verwenden und das eine Art "Warnsignal" ist, das kann man aber händisch umbiegen (und sollte das m.E. hier auch, die kurzen Readingnamen sind hinreichend klar und eindeutig).
Wie gesagt, das ist eine Einrichtungshilfe, von daher habe ich keine Schwierigkeiten damit, das schlicht und einfach so zu ändern, dass es für jeden paßt, der das ab "jetzt" nutzt. Für die anderen bleibt ja alles "as is", und wer das template - aus welchem Grund auch immer - nochmal anwendet, wird hoffentlich wissen, dass das Änderungen zur Folge haben kann.

Zu dem devStateIcon (wir brauchen das hier nicht mehr, das ist - so habe ich die Frage auch verstanden - nur zur Info gedacht):
In dem Perl-Code ist es das FW_makeImage(), eine Funktion aus FHEMWEB, das aus einem Text ein Icon generiert (also vereinfacht gesagt bei "off" nach einem Icon "off.svg" sucht und das html-tauglich verpackt = Kauderwelsch, wenn man es in stateFormat packt, was auch geht ::) ). Wenn du mehr zu FW_makeImage wissen willst, kannst du gerne den code in https://forum.fhem.de/index.php/topic,97430.msg906576.html#msg906576 nachzuvollziehen.

Wie jetzt weiter? Machst du das bitte vollends?
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

Guzzi-Charlie

Hallo,

Danke erstmal für die Antworten. Ich werde mir das jetzt erstmal alles noch genau anschauen damit ich das auch halbwegs verstehe.

Das mit den devStateIcon war so gedacht (zur Info) ja.

Die HW ist be mir vorhanden, sowohl Shelly 1, Shelly 2, Shelly 4Pro, Sonoff Basic, Wemos D1 mini, etc. Da kann ich im Zweifel schon einiges probieren.

Gerade hab ich auch die neuen Shelly 1PM und Shelly 2.5 bestellt. Das wird aber wohl noch 6 Wochen dauern bis die hier sind.

Ok, ich mach damit weiter. Morgen muß ich mir allerdings mal eine Auszeit nehmen (neues Motorrad abholen).


Melde mich wieder, Gruß
- RaspPI 4+: (Cuno V2 -2x KS300, JeeLink -13x EC3000)
- Stromzähler (B+G E-Tech): 6x SDM120M, 9x XTM100A, 38x DRS110M
- LAN: IT LAN-Gateway mit 34x RMF-R1 (Rohrmotor24)
- WLAN: 85x Shelly, 12x Gosund SP111, 16x D1-Mini, 15x Sonoff Basic
- DECT: 6x DECT200, 8x DECT301, - HmIP: 3x FalmotC12, 16x WTH2