MQTT2+Shelly: erste Konfiguration und template-Entwicklung

Begonnen von miggun, 03 Dezember 2018, 21:05:34

Vorheriges Thema - Nächstes Thema

Mr. P

So gefällt mir das. :-)
Einen hab ich noch für dich:
--- mqtt2.template_origin 2019-06-17 22:19:57.610684304 +0200
+++ mqtt2.template 2019-06-17 22:24:08.630973185 +0200
@@ -1083,9 +1083,9 @@
attr DEVICE setList\
   off:noArg shellies/DEVNAME/color/0/command off\
   on:noArg shellies/DEVNAME/color/0/command on\
-  white:colorpicker,BRI,0,1,100 shellies/DEVNAME/color/0/set {"turn":"on","white":"$EVTPART1"}\
-  gain:colorpicker,BRI,0,1,100 shellies/DEVNAME/color/0/set {"turn":"on","gain":"$EVTPART1"}\
-  rgb:colorpicker,RGB {$EVTPART1=~/(..)(..)(..)/;if($1 ne $2 || $2 ne $3) {"shellies/DEVNAME/color/0/set {\"turn\":\"on\",\"mode\":\"color\",\"gain\":\"100\",\"red\":".hex($1).",\"green\":".hex($2).",\"blue\":".hex($3)."}"}else{"shellies/DEVNAME/color/0/set {\"turn\":\"on\",\"mode\":\"white\",\"brightness\":".int(hex($1)/2.55)."}"}}\
+  white:colorpicker,BRI,0,1,100 shellies/DEVNAME/color/0/set {"white":"$EVTPART1"}\
+  gain:colorpicker,BRI,0,1,100 shellies/DEVNAME/color/0/set {"gain":"$EVTPART1"}\
+  rgb:colorpicker,RGB {$EVTPART1=~/(..)(..)(..)/;if($1 ne $2 || $2 ne $3) {"shellies/DEVNAME/color/0/set {\"mode\":\"color\",\"red\":".hex($1).",\"green\":".hex($2).",\"blue\":".hex($3)."}"}else{"shellies/DEVNAME/color/0/set {\"turn\":\"on\",\"mode\":\"white\",\"brightness\":".int(hex($1)/2.55)."}"}}\
   effect:select,0,1,2,3 shellies/DEVNAME/color/0/set {"effect":"$EVTPART1"}\
   update:noArg shellies/DEVNAME/command update_fw
deletereading -q DEVICE status_.*
@@ -1110,7 +1110,7 @@
   shellies/DEVNAME/online:.* online
attr DEVICE setList off:noArg shellies/DEVNAME/white/0/command off\
   on:noArg shellies/DEVNAME/white/0/command on\
-  brightness:colorpicker,BRI,0,1,100 shellies/DEVNAME/white/0/set {"ison":"true","mode":"white","brightness":"$EVTPART1"}\
+  brightness:colorpicker,BRI,0,1,100 shellies/DEVNAME/white/0/set {"mode":"white","brightness":"$EVTPART1"}\
   x_update:noArg shellies/DEVNAME/command update_fw\
   x_mqttcom shellies/DEVNAME/command $EVTPART1
deletereading -q DEVICE (?!associatedWith).*
@@ -1129,7 +1129,7 @@
   shellies/DEVNAME/online:.* online
attr DEVICE_CH2 setList off:noArg shellies/DEVNAME/white/1/command off\
   on:noArg shellies/DEVNAME/white/1/command on\
-  brightness:colorpicker,BRI,0,1,100 shellies/DEVNAME/white/1/set {"ison":"true","mode":"white","brightness":"$EVTPART1"}
+  brightness:colorpicker,BRI,0,1,100 shellies/DEVNAME/white/1/set {"mode":"white","brightness":"$EVTPART1"}
attr DEVICE_CH2 setStateList on off
copy DEVICE DEVICE_CH3
setreading DEVICE_CH3 associatedWith DEVICE,DEVICE_CH2,DEVICE_CH4
@@ -1139,7 +1139,7 @@
   shellies/DEVNAME/online:.* online
attr DEVICE_CH3 setList off:noArg shellies/DEVNAME/white/2/command off\
   on:noArg shellies/DEVNAME/white/2/command on\
-  brightness:colorpicker,BRI,0,1,100 shellies/DEVNAME/white/2/set {"ison":"true","mode":"white","brightness":"$EVTPART1"}
+  brightness:colorpicker,BRI,0,1,100 shellies/DEVNAME/white/2/set {"mode":"white","brightness":"$EVTPART1"}
attr DEVICE_CH3 setStateList on off
copy DEVICE DEVICE_CH4
attr DEVICE_CH4 readingList shellies/DEVNAME/white/3/status:.* {json2nameValue($EVENT)}\
@@ -1148,7 +1148,7 @@
shellies/DEVNAME/online:.* online
attr DEVICE_CH4 setList off:noArg shellies/DEVNAME/white/3/command off\
   on:noArg shellies/DEVNAME/white/3/command on\
-  brightness:colorpicker,BRI,0,1,100 shellies/DEVNAME/white/3/set {"ison":"true","mode":"white","brightness":"$EVTPART1"}
+  brightness:colorpicker,BRI,0,1,100 shellies/DEVNAME/white/3/set {"mode":"white","brightness":"$EVTPART1"}
setreading DEVICE_CH4 associatedWith DEVICE,DEVICE_CH2,DEVICE_CH3
attr DEVICE_CH4 setStateList on off


Damit wird beim Ändern der Helligkeit oder Einstellen der Farbe nicht auch automatisch das Licht (bei RGB sogar mit voller Stärke) eingeschalten. Nachträglich hab ich die Änderungen auch noch mit dem Verhalten aus der Shelly-App geprüft: Das Verhalten deckt sich damit auch mit dem Original. ;-)
Greetz,
   Mr. P

Beta-User

Thx, hab's mal (mit den alten Einschaltoptionen als .*_on) eingecheckt.
Dass das Einschalten so stattfindet, war mal ein ausdrücklicher Vorschlag hier gewesen; bin immer etwas unschlüssig, wie mit sowas zu verfahren ist (finde aber die Kompabilität mit anderen Einbindungen wichtiger).
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

87insane

Hey und guten Morgen...

Danke an den/die ersteller des shelly rgbw 2 Templates. Mal eine einfache frage dazu...
Wie sagt ihr Alexa, das sie die Stripes, Lampen weiß schalten soll? Wenn ich sage, sie soll alles blau, grün... Machen geht das. Wenn ich sage weiß, schaltet sie auf rot.
Verbaut sind led Stripes die sowohl Farbe als auch weiß können.

Danke :)

Mr. P

Zitat von: Beta-User am 18 Juni 2019, 19:18:27
Thx, hab's mal (mit den alten Einschaltoptionen als .*_on) eingecheckt.
Dass das Einschalten so stattfindet, war mal ein ausdrücklicher Vorschlag hier gewesen; bin immer etwas unschlüssig, wie mit sowas zu verfahren ist (finde aber die Kompabilität mit anderen Einbindungen wichtiger).

Hej again,

danke für das Aktualisieren des Templates. So macht das Sinn. :-)

Habe heute wieder ein Update für den RGBW-Shelly.

Mir hat die Einbindung mit dem Verbrauch für den Shelly1PM sehr gut gefallen - weshalb ich es für den RGBW übernommen habe (auch wenn dieser nur den Verbrauch liefert). :-)

Deshalb:
--- /tmp/mqtt2.template_origin 2019-06-20 22:12:48.564811047 +0200
+++ /tmp/mqtt2.template 2019-06-23 23:00:49.985475887 +0200
@@ -1099,7 +1099,7 @@
attr DEVICE webCmd on:off:white:gain:rgb:effect
attr DEVICE setStateList on off
attr DEVICE icon light_control
-attr DEVICE devStateIcon {my $onl = ReadingsVal($name,"online","false") eq "true"?"10px-kreis-gruen":"10px-kreis-rot";; my $light = ReadingsVal($name,"state","off");; "<a href=\"http://".ReadingsVal($name,"ip","none")." \"target=\"_blank\">".FW_makeImage($onl)."</a> <a href=\"/fhem?cmd.dummy=set $name toggle&XHR=1\">".FW_makeImage($light)."</a>"}
+attr DEVICE devStateIcon {my $onl = ReadingsVal($name,"online","false") eq "true"?"10px-kreis-gruen":"10px-kreis-rot";; my $light = ReadingsVal($name,"state","off");; my $cons = ReadingsVal($name,"power","unknown");; "<a href=\"http://".ReadingsVal($name,"ip","none")." \"target=\"_blank\">".FW_makeImage($onl)."</a> <a href=\"/fhem?cmd.dummy=set $name toggle&XHR=1\">".FW_makeImage($light)."</a><div>Verbrauch: $cons</div>"}
attr DEVICE model A_17_shelly2rgbw_color

#contributed by user sledge
Greetz,
   Mr. P

Beta-User

Kurze Frage, bevor das in's svn geht und sich jemand mit einem "alten" RGBW beschwert...

Ist das Reading "power" bei allen Hardware-Revisionen vorhanden (und nur ggf. erst nach einem firmware-update verfügbar)?
(Wenn nein, brauchen wir evtl. zwei Templates oder wenigstens einen entsprechenden comment mit dem "abgespeckten" Code).
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

87insane

#410
Guten Morgen,

da ich auch 2 x Shelly RGBW2 habe, habe ich eh mal ne Frage.
Woher bekommt ihr die ganzen Readings? Bei mir gibt es kein Reading das z.B. IP heißt.

Anbei mal ein List von einem RGBW2 nachdem er via autocreate in FHEM angelegt wurde und danach ein Neustart des RGBW2. Hinzu habe ich noch ein paar Minuten gewartet.
Internals:
   CFGFN     
   CID        shellyrgbw2_66138D
   DEF        shellyrgbw2_66138D
   DEVICETOPIC wz_regal
   FUUID      5d106f6e-f33f-fcb4-8727-f4a3723c5ad6045e
   IODev      MQTT2_FHEM_Server
   LASTInputDev MQTT2_FHEM_Server
   MQTT2_FHEM_Server_MSGCNT 57
   MQTT2_FHEM_Server_TIME 2019-06-24 09:05:07
   MSGCNT     57
   NAME       wz_regal
   NR         882
   STATE      ???
   TYPE       MQTT2_DEVICE
   READINGS:
     2019-06-24 09:05:07   blue            0
     2019-06-24 09:05:07   effect          0
     2019-06-24 09:05:07   gain            100
     2019-06-24 09:05:07   green           255
     2019-06-24 09:05:07   ison            false
     2019-06-24 09:05:07   mode            color
     2019-06-24 08:54:37   online          true
     2019-06-24 09:05:07   overpower       false
     2019-06-24 09:05:07   power           0.00
     2019-06-24 09:05:07   red             0
     2019-06-24 09:05:07   white           0
Attributes:
   IODev      MQTT2_FHEM_Server
   autocreate 1
   readingList shellyrgbw2_66138D:shellies/shellyrgbw2-66138D/color/0/status:.* { json2nameValue($EVENT) }
shellyrgbw2_66138D:shellies/shellyrgbw2-66138D/online:.* online
   room       MQTT2_DEVICE


Vergleich zu einem Shelly1 PM:
Internals:
   CHANGED   
   CID        shelly1pm_B1D901
   DEF        shelly1pm_B1D901
   DEVICETOPIC wz_deckenlicht
   FUUID      5ccd7540-f33f-fcb4-6b9f-63366162edfb7874
   IODev      MQTT2_FHEM_Server
   LASTInputDev MQTT2_FHEM_Server
   MQTT2_FHEM_Server_MSGCNT 24879
   MQTT2_FHEM_Server_TIME 2019-06-24 09:09:00
   MSGCNT     24879
   NAME       wz_deckenlicht
   NR         122
   STATE      off
   TYPE       MQTT2_DEVICE
   READINGS:
     2019-06-22 15:45:03   fw_ver          20190612-090006/FW1.5.0_hotfix-HT-PM@5ea70469
     2019-06-22 15:45:03   id              shelly1pm-B1D901
     2019-06-24 09:09:00   input0          1
     2019-06-22 15:45:03   ip              192.168.20.52
     2019-06-23 13:04:39   longpush_0      1
     2019-06-22 15:45:03   mac             840D8EB1D901
     2019-06-22 15:45:03   new_fw          false
     2019-06-22 15:45:03   online          true
     2019-06-24 09:09:00   overtemperature 0
     2019-06-24 09:09:00   relay0          off
     2019-06-23 19:34:20   relay_0_energy  3237
     2019-06-24 09:09:00   relay_0_power   0.00
     2019-06-24 09:09:00   state           off
     2019-06-24 09:09:00   temperature     25.76
Attributes:
   IODev      MQTT2_FHEM_Server
   alexaName  Wohnzimmer Deckenlicht
   alias      Wohnzimmer Deckenlicht
   devStateIcon {my $onl = ReadingsVal($name,"online","false") eq "true"?"10px-kreis-gruen":"10px-kreis-rot";; my $light = ReadingsVal($name,"state","off") eq "on"?'light_pendant_light@green':'light_pendant_light';; my $cons = ReadingsVal($name,"relay_0_power","unknown");; my $temp = ReadingsVal($name,"temperature","-100");;"<div><a href=\"http://".ReadingsVal($name,"ip","none")." \"target=\"_blank\">".FW_makeImage($onl)."</a> <a href=\"/fhem?cmd.dummy=set $name toggle&XHR=1\">".FW_makeImage($light)."</a> Aktuell: $cons W / Temperatur: $temp °C</div>"}
   event-on-change-reading .*
   genericDeviceType light
   group      Licht
   model      A_10b_shelly1pm
   readingList shellies/shelly1pm-B1D901/relay/0:.* state
  shellies/shelly1pm-B1D901/relay/0:.* relay0
  shellies/shelly1pm-B1D901/input/0:.* input0
  shellies/shelly1pm-B1D901/online:.* online
  shellies/shelly1pm-B1D901/announce:.* { json2nameValue($EVENT) }
  shellies/shelly1pm-B1D901/relay/0/power:.* relay_0_power
  shellies/shelly1pm-B1D901/temperature:.* temperature
  shellies/shelly1pm-B1D901/overtemperature:.* overtemperature
  shellies/shelly1pm-B1D901/relay/0/energy:.* relay_0_energy
  shellies/shelly1pm-B1D901/longpush/0:.* longpush_0
shelly1pm_B1D901:shellies/announce:.* { json2nameValue($EVENT) }
   room       Alexa,FHEM / Info,MQTT,Wohnzimmer
   setList    relay0:on,off,toggle shellies/shelly1pm-B1D901/relay/0/command $EVTPART1
  off:noArg shellies/shelly1pm-B1D901/relay/0/command off
  on:noArg shellies/shelly1pm-B1D901/relay/0/command on
  update:noArg shellies/shelly1pm-B1D901/command update_fw
   webCmd     :relay0


Ich selber vermute ja, dass es an der aktuellen FW liegt. Was sagt ihr dazu?
Ach ja.. der json output im Zweig ip/color/0/status bietet diese Ausgabe auch nicht. Diese Infos stehen nur im Zweig des shellys direkt unter ip/status.

@Beta-User: Bei meinen RGBW2 gibt es das Reading. Was sagen die Kollegen mit der älteren Version?

87insane

Nochmal guten Morgen,

warum es nicht alleine angelegt wird, weiß ich nicht ABER @ Beta-User, es ist wie bei den anderen Shellys auch. Das eine Reading, was normal automatisch kommt, muss man sich manuell anlegen. In meinem Fall:
shellyrgbw2_66138D:shellies/announce:.* { json2nameValue($EVENT) }

Wir hatten das in den anderen Templates ausgenommen, da dies das einzige Reading mit "_" ist und komplett am Standard vorbei geht. Das gute "früher" - Es wurde automatisch angelegt nach einem Neustart des Shellys. Bei den RGBW2 Geräten, mit aktueller FW leider nicht. Über das Template könnte man es anlegen ABER bitte beachten, dass hier wirklich "_" anstelle von "-" im DEV-Name ist.

Das announce Reading geht auch nur so wie oben beschrieben. Ein Reading im normalem Stiel geht NICHT.
Bitte mit einbauen, wenn möglich.

Da ich zwei Shellys neu aus der Verpackung (Freitag bekommen) habe, und beide das gleiche Verhalten zeigen, auch nach Reset usw., denke ich es wird nicht an mir liegen....

Nach dem anlegen dieses Readings, sieht es dann so aus:


Internals:
   CID        shellyrgbw2_66138D
   DEF        shellyrgbw2_66138D
   DEVICETOPIC wz_regal
   FUUID      5d106f6e-f33f-fcb4-8727-f4a3723c5ad6045e
   IODev      MQTT2_FHEM_Server
   LASTInputDev MQTT2_FHEM_Server
   MQTT2_FHEM_Server_MSGCNT 111
   MQTT2_FHEM_Server_TIME 2019-06-24 11:00:34
   MSGCNT     111
   NAME       wz_regal
   NR         378
   STATE      ???
   TYPE       MQTT2_DEVICE
   OLDREADINGS:
   READINGS:
     2019-06-24 11:00:34   blue            0
     2019-06-24 11:00:34   effect          0
     2019-06-24 10:52:33   fw_ver          20190531-080138/v1.5.0-hotfix2@022ec015
     2019-06-24 11:00:34   gain            100
     2019-06-24 11:00:34   green           255
     2019-06-24 10:52:33   id              shellyrgbw2-66138D
     2019-06-24 10:52:33   ip              192.168.20.55
     2019-06-24 11:00:34   ison            false
     2019-06-24 10:52:33   mac             B4E62D66138D
     2019-06-24 11:00:34   mode            color
     2019-06-24 10:52:33   new_fw          false
     2019-06-24 10:52:33   online          true
     2019-06-24 11:00:34   overpower       false
     2019-06-24 11:00:34   power           0.00
     2019-06-24 11:00:34   red             0
     2019-06-24 11:00:34   white           0
Attributes:
   IODev      MQTT2_FHEM_Server
   autocreate 1
   readingList shellies/shellyrgbw2-66138D/color/0/status:.* { json2nameValue($EVENT) }
shellies/shellyrgbw2-66138D/online:.* online
shellyrgbw2_66138D:shellies/announce:.* { json2nameValue($EVENT) }

Beta-User

Hmm, da alle Shellys diesen topic nutzen, geht das m.E. via template nicht so einfach:

Das template muß nämlich auch dann passen, wenn MQTT2_CLIENT als IODev genutzt wird. Da kommen dieselben Daten aber unter einer anderen CID rein (das war wohl der wahre Grund, warum das rausgeflogen ist)...

Jetzt könnte man zwar abfragen, welcher IO-Typ verwendet wird und das Reading dann nur setzen, wenn das der Fall ist (oder ggf. den JSON immer analysieren und nur auswerten, wenn die richtige ID dabei ist), aber ganz ehrlich: ersteres ist sehr viel Aufwand, für letzteres würde ich ein paar Rohdaten benötigen und kann noch nicht sagen, wann das was wird... Einfacher wäre es, wenn man den announce-Pfad umbiegen könnte.

(Wenn jemand sich berufen fühlt: den JSON bedingt auszuwerten ist Teil der tasmota-IR und -RF-templates; vielleicht findet jemand eine "einfache" Lösung, die man dann ausrollen kann?).
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

87insane

ZitatDas template muß nämlich auch dann passen, wenn MQTT2_CLIENT als IODev genutzt wird. Da kommen dieselben Daten aber unter einer anderen CID rein (das war wohl der wahre Grund, warum das rausgeflogen ist)...
Den Teil verstehe ich nicht...

Habe mir den Teil nun manuell eingefügt und kann damit leben. Ggf. ein Hinweis im Template, würde ja schon reichen. Nicht jeder braucht diese Readings. ABER wenn jemand dieses Template nutzt, wird dieser sich wundern warum er niemals z.B. ein ip Reading bekommt und somit auch nicht über den grünen Kreis auf das WEB-IF kommt. Ich wusste bzw dachte mir das nun auch nur aufgrund der anderen Templates. Hätte ich da nicht selber mitgewirkt, wäre ich erstmal nicht darauf gekommen.

Beta-User

Zitat von: 87insane am 24 Juni 2019, 15:13:10
Den Teil verstehe ich nicht...
Einfach: Wer mosquitto+MQTT2_CLIENT nutzt, hat keine CID mehr, die Rückschlüsse auf den ursprünglichen Sender (den Shelly) zuläßt; es landet alles (erst mal) an derselben Stelle. Das Verhalten ist (in etwa) so, wie wenn du die CID ganz wegläßt: dann bekommen auch alle deine Shellys die announce-Messages von allen anderen...

Dass es nicht funzt mit dem Punkt ist ärgerlich, aber wie gesagt: Ohne eine RAW-Message kann ich nichts tun, sonst könnte ich ggf. mit regex und etwas Perl filtern bzw. die jeweils richtigen Messages auch erkennen, wenn keine (korrekte/noch auf die ursprüngliche Datenquelle verweisende) CID da ist...
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

87insane

#415
Danke für die Erklärung!

Reicht dir einfach via verbose 5 und die Nachricht eintrudeln lassen? Wenn ja kann ich dir diese bereit stellen...(Shelly RGBW 2)

EventMonitor (vermutlich unnütz):
2019-06-24 15:58:43 Global global ATTR wz_regal readingList shellies/shellyrgbw2-66138D/color/0/status:.* {json2nameValue($EVENT)}   shellies/shellyrgbw2-66138D/color/0:.* state   shellies/shellyrgbw2-66138D/color/0:.* relay0   shellyrgbw2_66138D:shellies/announce:.* { json2nameValue($EVENT) } shellyrgbw2_66138D:shellies/shellyrgbw2-66138D/online:.* online

LOGFILE (Mal den ganzen Block genommen und natürlich PW + Benutzer entfernt.):
2019.06.24 15:58:43 4: Connection accepted from MQTT2_FHEM_Server_192.168.20.55_24196
2019.06.24 15:58:43 5: CONNECT: (16).(0)(4)MQTT(4)(194)(0)<(0)(18)shellyrgbw2-66138D(0)(2)BENUTZERNAME(0)(10)PASSWORT
2019.06.24 15:58:43 4: MQTT2_FHEM_Server_192.168.20.55_24196 shellyrgbw2-66138D CONNECT V:4 keepAlive:60 usr:BENUTZERNAME
2019.06.24 15:58:43 5: PUBLISH: 0((0)"shellies/shellyrgbw2-66138D/onlinetrue
2019.06.24 15:58:43 4: MQTT2_FHEM_Server_192.168.20.55_24196 shellyrgbw2-66138D PUBLISH shellies/shellyrgbw2-66138D/online:true
2019.06.24 15:58:43 5: MQTT2_FHEM_Server: dispatch autocreate=simple\000shellyrgbw2_66138D\000shellies/shellyrgbw2-66138D/online\000true
2019.06.24 15:58:43 5: PUBLISH: 0(155)(1)(0)(17)shellies/announce{"id":"shellyrgbw2-66138D","mac":"B4E62D66138D","ip":"192.168.20.55","new_fw":false, "fw_ver":"20190531-080138/v1.5.0-hotfix2@022ec015"}
2019.06.24 15:58:43 4: MQTT2_FHEM_Server_192.168.20.55_24196 shellyrgbw2-66138D PUBLISH shellies/announce:{"id":"shellyrgbw2-66138D","mac":"B4E62D66138D","ip":"192.168.20.55","new_fw":false, "fw_ver":"20190531-080138/v1.5.0-hotfix2@022ec015"}
2019.06.24 15:58:43 5: MQTT2_FHEM_Server: dispatch autocreate=simple\000shellyrgbw2_66138D\000shellies/announce\000{"id":"shellyrgbw2-66138D","mac":"B4E62D66138D","ip":"192.168.20.55","new_fw":false, "fw_ver":"20190531-080138/v1.5.0-hotfix2@022ec015"}
2019.06.24 15:58:43 5: PUBLISH: 0(165)(1)(0)*shellies/shellyrgbw2-66138D/color/0/status{"ison":false,"mode":"color","red":0,"green":255,"blue":0,"white":0,"gain":100,"effect":0,"power":0.00,"overpower":false}
2019.06.24 15:58:43 4: MQTT2_FHEM_Server_192.168.20.55_24196 shellyrgbw2-66138D PUBLISH shellies/shellyrgbw2-66138D/color/0/status:{"ison":false,"mode":"color","red":0,"green":255,"blue":0,"white":0,"gain":100,"effect":0,"power":0.00,"overpower":false}
2019.06.24 15:58:43 5: MQTT2_FHEM_Server: dispatch autocreate=simple\000shellyrgbw2_66138D\000shellies/shellyrgbw2-66138D/color/0/status\000{"ison":false,"mode":"color","red":0,"green":255,"blue":0,"white":0,"gain":100,"effect":0,"power":0.00,"overpower":false}



87insane

#416
Zitat von: Mr. P am 17 Juni 2019, 22:35:57
So gefällt mir das. :-)
Einen hab ich noch für dich:
--- mqtt2.template_origin 2019-06-17 22:19:57.610684304 +0200
+++ mqtt2.template 2019-06-17 22:24:08.630973185 +0200
@@ -1083,9 +1083,9 @@
attr DEVICE setList\
   off:noArg shellies/DEVNAME/color/0/command off\
   on:noArg shellies/DEVNAME/color/0/command on\
-  white:colorpicker,BRI,0,1,100 shellies/DEVNAME/color/0/set {"turn":"on","white":"$EVTPART1"}\
-  gain:colorpicker,BRI,0,1,100 shellies/DEVNAME/color/0/set {"turn":"on","gain":"$EVTPART1"}\
-  rgb:colorpicker,RGB {$EVTPART1=~/(..)(..)(..)/;if($1 ne $2 || $2 ne $3) {"shellies/DEVNAME/color/0/set {\"turn\":\"on\",\"mode\":\"color\",\"gain\":\"100\",\"red\":".hex($1).",\"green\":".hex($2).",\"blue\":".hex($3)."}"}else{"shellies/DEVNAME/color/0/set {\"turn\":\"on\",\"mode\":\"white\",\"brightness\":".int(hex($1)/2.55)."}"}}\
+  white:colorpicker,BRI,0,1,100 shellies/DEVNAME/color/0/set {"white":"$EVTPART1"}\
+  gain:colorpicker,BRI,0,1,100 shellies/DEVNAME/color/0/set {"gain":"$EVTPART1"}\
+  rgb:colorpicker,RGB {$EVTPART1=~/(..)(..)(..)/;if($1 ne $2 || $2 ne $3) {"shellies/DEVNAME/color/0/set {\"mode\":\"color\",\"red\":".hex($1).",\"green\":".hex($2).",\"blue\":".hex($3)."}"}else{"shellies/DEVNAME/color/0/set {\"turn\":\"on\",\"mode\":\"white\",\"brightness\":".int(hex($1)/2.55)."}"}}\
   effect:select,0,1,2,3 shellies/DEVNAME/color/0/set {"effect":"$EVTPART1"}\
   update:noArg shellies/DEVNAME/command update_fw
deletereading -q DEVICE status_.*
@@ -1110,7 +1110,7 @@
   shellies/DEVNAME/online:.* online
attr DEVICE setList off:noArg shellies/DEVNAME/white/0/command off\
   on:noArg shellies/DEVNAME/white/0/command on\
-  brightness:colorpicker,BRI,0,1,100 shellies/DEVNAME/white/0/set {"ison":"true","mode":"white","brightness":"$EVTPART1"}\
+  brightness:colorpicker,BRI,0,1,100 shellies/DEVNAME/white/0/set {"mode":"white","brightness":"$EVTPART1"}\
   x_update:noArg shellies/DEVNAME/command update_fw\
   x_mqttcom shellies/DEVNAME/command $EVTPART1
deletereading -q DEVICE (?!associatedWith).*
@@ -1129,7 +1129,7 @@
   shellies/DEVNAME/online:.* online
attr DEVICE_CH2 setList off:noArg shellies/DEVNAME/white/1/command off\
   on:noArg shellies/DEVNAME/white/1/command on\
-  brightness:colorpicker,BRI,0,1,100 shellies/DEVNAME/white/1/set {"ison":"true","mode":"white","brightness":"$EVTPART1"}
+  brightness:colorpicker,BRI,0,1,100 shellies/DEVNAME/white/1/set {"mode":"white","brightness":"$EVTPART1"}
attr DEVICE_CH2 setStateList on off
copy DEVICE DEVICE_CH3
setreading DEVICE_CH3 associatedWith DEVICE,DEVICE_CH2,DEVICE_CH4
@@ -1139,7 +1139,7 @@
   shellies/DEVNAME/online:.* online
attr DEVICE_CH3 setList off:noArg shellies/DEVNAME/white/2/command off\
   on:noArg shellies/DEVNAME/white/2/command on\
-  brightness:colorpicker,BRI,0,1,100 shellies/DEVNAME/white/2/set {"ison":"true","mode":"white","brightness":"$EVTPART1"}
+  brightness:colorpicker,BRI,0,1,100 shellies/DEVNAME/white/2/set {"mode":"white","brightness":"$EVTPART1"}
attr DEVICE_CH3 setStateList on off
copy DEVICE DEVICE_CH4
attr DEVICE_CH4 readingList shellies/DEVNAME/white/3/status:.* {json2nameValue($EVENT)}\
@@ -1148,7 +1148,7 @@
shellies/DEVNAME/online:.* online
attr DEVICE_CH4 setList off:noArg shellies/DEVNAME/white/3/command off\
   on:noArg shellies/DEVNAME/white/3/command on\
-  brightness:colorpicker,BRI,0,1,100 shellies/DEVNAME/white/3/set {"ison":"true","mode":"white","brightness":"$EVTPART1"}
+  brightness:colorpicker,BRI,0,1,100 shellies/DEVNAME/white/3/set {"mode":"white","brightness":"$EVTPART1"}
setreading DEVICE_CH4 associatedWith DEVICE,DEVICE_CH2,DEVICE_CH3
attr DEVICE_CH4 setStateList on off


Damit wird beim Ändern der Helligkeit oder Einstellen der Farbe nicht auch automatisch das Licht (bei RGB sogar mit voller Stärke) eingeschalten. Nachträglich hab ich die Änderungen auch noch mit dem Verhalten aus der Shelly-App geprüft: Das Verhalten deckt sich damit auch mit dem Original. ;-)

Hey - Das habe ich persönlich wegen Alexa wieder umgeändert. Sage ich "Alexa, Wohnzimmer grün" macht sie das. Ohne das ON bei der Farbe, macht sie das nicht. Das ist aber auch nur ein Hinweis und kein meckern. Ich möchte mir eben nicht den Mund fusselig reden bevor die feine Dame reagiert :-P

ZitatThx, hab's mal (mit den alten Einschaltoptionen als .*_on) eingecheckt.
Dass das Einschalten so stattfindet, war mal ein ausdrücklicher Vorschlag hier gewesen; bin immer etwas unschlüssig, wie mit sowas zu verfahren ist (finde aber die Kompabilität mit anderen Einbindungen wichtiger).

Die Antwort habe ich dann doch noch gefunden...
An sich macht es ja Sinn - Warum sollte man an den Farbwerten spielen, wenn man diese nicht auch sehen will bzw. einschaltet? Also für Alexa und andere Systeme ist es einfacher (besser will ich nicht sagen), es mit dem sofortigem an zu nutzen.




Was mich aber wundert... Ich habe nun ein paar Seiten zurück geblättert aber nirgends eine Antwort gefunden auf folgendes:
white_on:colorpicker,BRI,0,1,100 shellies/shellyrgbw2-66138D/color/0/set {"turn":"on","white":"$EVTPART1"}
  gain_on:colorpicker,BRI,0,1,100 shellies/shellyrgbw2-66138D/color/0/set {"turn":"on","gain":"$EVTPART1"}
  rgb_on:colorpicker,RGB {$EVTPART1=~/(..)(..)(..)/;if($1 ne $2 || $2 ne $3) {"shellies/shellyrgbw2-66138D/color/0/set {\"turn\":\"on\",\"mode\":\"color\",\"gain\":\"100\",\"red\":".hex($1).",\"green\":".hex($2).",\"blue\":".hex($3)."}"}else{"shellies/shellyrgbw2-66138D/color/0/set {\"turn\":\"on\",\"mode\":\"white\",\"brightness\":".int(hex($1)/2.55)."}"}}


Wofür sind die .*_on Befehle in setList hinzu gekommen? Hab mal ein wenig gespielt aber keinen Grund oder Sinn gefunden...

Und auch das ist mit der Antwort für mich erledigt und zufriedenstellend gelöst ;)

Anbei mal ein Bild, wie das bei mir nun aussieht... Nix besonderes, aber so können sich ggf. später lesende User das einfach ansehen :)

Beta-User

 :)
Schön, dass du das noch gefunden hast, warum die .*_on jetzt da sind. Dabei hatte ich irgendwo im Hinterkopf die Idee, dass man das ggf. für das mapping für die Sprachsteuerung entsprechend "umbiegen" könnte?
Also du nennst eine Farbe, es wird aber per Sprachsteuerung nicht das rgb-Reading gemappt, sondern rgb_on.

So kann jeder die templates nutzen, es braucht "nur" passende Attribute für die Sprachsteuernung... (Aber da ich sowas nicht nutze, kann ich eben nur die Idee hierher schreiben, testen/umsetzen können/müssen andere ;) ).
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

87insane

Hey und guten Morgen,

ja das würde auch gehen. Thema wäre hier "homebridgemapping". Würde ich mich dran hängen aber auch nur zuhause. Aus der Ferne finde ich Tests mit Alexa eher semi.
Ich habe in meinem Hinterkopf das ein sehr freundlicher Kollege hier, mal gegen das Umbiegen war und deswegen habe ich das nicht mal mehr angefasst, da man es ja in der setlist anpassen kann mit zwei Klicks.

Aber gut :) Hänge ich mich dran. Sollte in dem Fall auch nicht sooo schwer sein. Aber mal anders rum.... Warum werden nicht einfach die normalen Befehle für Alexa genommen (werden ja automatisch angenommen/gemappt) und die .*_on Befehle für FHEM? So spart man sich das homebridgemapping. Oder habe ich da was übersehen?

Sagt mal, ich hatte die Frage bereits gestellt aber keine Antwort bekommen. Wenn man Alexa sagt, sie soll Wohnzimmer "weiß" machen (für jede wirkliche Farbe geht das so), schaltet sie rot ein. Nun habe ich mich bisher noch nie mit den RGB/BRI usw beschäftigt und kann mir das nur so halb erklären. Getestet habe ich mit zwei verschiedenen Stripes an zwei verschiedenen RBGW2. Der eine Stripe ist mit W verbunden und der andere hat kein weiß. Beide springen im aber auf rot.
Also die Frage - Wie schalte ich nun einfach weiß ein? Muss ich sowas sagen wie - Schalte rgb ab? Bin gespannt was ihr sagt.

Ansonsten habe ich für mich das Template leicht angepasst. Die Schiebregler müssen in meinen Augen untereinander oder weg. Diese nehmen in der automatischen Ansicht von FHEM zu viel Platz ein und verschieben alles andere. Kann mir jemand sagen wie ich die Schiebregler untereinander bekomme? Wie es bei mir aktuell aussieht, seht ihr im Post zuvor. An sich finde ich das gut so aber es ist doof, dass ich nicht sehen kann welches Dropdown, für was ist (außer mit mouseover). Ich weiß das dieses Template echt viel Arbeit war aber hier können wir alle bestimmt noch etwas dran schrauben :)

Danke @ ALL

Mr. P

Zitat von: Beta-User am 24 Juni 2019, 07:30:02
Kurze Frage, bevor das in's svn geht und sich jemand mit einem "alten" RGBW beschwert...

Ist das Reading "power" bei allen Hardware-Revisionen vorhanden (und nur ggf. erst nach einem firmware-update verfügbar)?
(Wenn nein, brauchen wir evtl. zwei Templates oder wenigstens einen entsprechenden comment mit dem "abgespeckten" Code).
Hello again,
das kann ich dir leider nicht sagen. Ich hab auch gerade Manuals der beiden Geräte gewälzt - aber hätte bei beiden nichts dazu gefunden.
Ist natürlich deine Entscheidung, aber sofern keiner hier mit liest, der einen von der ersten Generation hat, könnte man es nur darauf an kommen lassen.
Greetz,
   Mr. P