FHEM Forum

FHEM - Hausautomations-Systeme => MQTT => Thema gestartet von: stefanru am 22 März 2019, 21:16:26

Titel: [Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: stefanru am 22 März 2019, 21:16:26
Hi,

ich versuche gerade WLED per MQTT anzusprechen (https://github.com/Aircoookie/WLED/wiki/MQTT).
Das funktioniert auch soweit ich in rgb #hexwert gebe.
Geliefert wird von WLED auch wieder #hexwert.

Nun wollte ich gern den Colorpicker verwenden. Der schein nur hexwert zu liefern.
Ich habe mich in den mqtt2.templates umgesehen und da bin ich bei zigbee auch fündig geworden und habe etwas in dieser Art gefunden:
  hex:colorpicker,HEX,0,15,255 BASE_TOPIC/DEV_ID/set {"color":{"$EVTPART0":"#$EVTPART1"}}
Das habe ich versucht für mein Device in
  rgb:colorpicker,HEX  wled/TestLED/col {"#$EVTPART1"}
anzupassen. Leider funktioniert das nicht.

Kann mir jemand bitte auf die Sprünge helfen?

Das List meines MQTT Devices, funktionsfähig ohne Colorpicker sieht so aus:
Internals:
   CID        a020a621c6c3
   DEF        a020a621c6c3
   DEVICETOPIC MQTT2_a020a621c6c3
   FHEM_MQTT2_MSGCNT 16
   FHEM_MQTT2_TIME 2019-03-22 21:13:47
   FUUID      5c93e232-f33f-0c45-f528-70f8b16469d9e705
   IODev      FHEM_MQTT2
   LASTInputDev FHEM_MQTT2
   MSGCNT     16
   NAME       MQTT2_a020a621c6c3
   NR         1213
   STATE      rgb
   TYPE       MQTT2_DEVICE
   OLDREADINGS:
   READINGS:
     2019-03-22 21:13:47   pct             127
     2019-03-22 21:13:47   rgb             #FF9F99
     2019-03-22 21:13:47   state           rgb
Attributes:
   IODev      FHEM_MQTT2
   devStateIcon {Color::devStateIcon( $name, "rgb" );}
   readingList a020a621c6c3:wled/TestLED/g:.* pct
a020a621c6c3:wled/TestLED/c:.* rgb
   room       MQTT2_DEVICE
   setList    rgb wled/TestLED/col
pct wled/TestLED

Gruß und Danke,
Stefan

Titel: Antw:MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: Beta-User am 22 März 2019, 22:28:49
Versuch's mal mit
rgb:colorpicker,HEX  wled/TestLED/col #$EVTPART1
Erläuterung: zigbee&Co wollen die Anweisungen als JSON verpackt. Das scheint bei dir nicht erforderlich zu sein. Das ist aber ausdrücklich eine Annahme und kann auch falsch sein. Solltest du dann noch was brauchen, wäre es hilfreich, wenn du eine komplette Sendeanweisung liefern könntest.
Titel: Antw:MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: stefanru am 22 März 2019, 23:51:32
Hi Beta-User,
super das wars!

Vielen Dank für die Erklärung.

Gruß,
Stefan
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: f-zappa am 28 März 2019, 13:18:55
Ich habe auch ein WLED-Objekt (ein umgebauter Leuchtspiegel aus den 60ern, sieht schweinegeil aus). Eine FHEM-Anbindung habe ich dafür noch nicht gebaut, weil mir "There is no support for authentication/encryption at this time" nicht wirklich behagt.
Inzwischen hat WLED aber auch eine JSON-API, die man bestimmt gut via HTTPMOD ansprechen kann (wenn man nicht gleich ein eigenes Modul bauen möchte).
Hat da vielleicht schon jemand etwas fertig?
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: Beta-User am 28 März 2019, 13:23:45
@f-zappa:
Was spricht dagegen, das mit MQTT anzusprechen? Wenn ich das richtig deute, funktioniert das im Prinzip problemlos bei stefanru...

Wären genau 2 Devices: Ein MQTT2_SERVER (auch für anderes zu nutzen) und ein MQTT2_DEVICE.
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: f-zappa am 28 März 2019, 13:36:11
Was spricht dagegen, das mit MQTT anzusprechen? Wenn ich das richtig deute, funktioniert das im Prinzip problemlos bei stefanru...
Noch mal das Zitat: "There is no support for authentication/encryption at this time"
Ich muss meinen MQTT-Server dann für unauthentifizierte Zugriffe öffnen. Jeder darf dran, ohne Credentials angeben zu müssen. Das widerstrebt mir.
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: Beta-User am 28 März 2019, 13:41:09
Ah ok, irgendwie hatte ich den Link zwischen dem MQTT2_SERVER und diesem Text noch nicht...

Könntest du diesem speziellen Client ein eigenes allowed gönnen?
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: stefanru am 12 April 2019, 22:38:42
Hi,

hätte noch eine kleine Frage:
Das mit RGB senden geht nun super.
Leider ist es so das WLED in einem Topic die RGB Farbe liefert und in einem anderen kann ich sie setzen.

Also mit    
rgb:colorpicker,HEX wled/a020a621c6c3/col #$EVTPART1
setze ich zur Zeit die RGB Farbe.

Ändere ich sie nun an der Lampe direkt bekomme ich das über
a020a621c6c3:wled/a020a621c6c3/c:.* rgb
mitgeteilt.

Hier wird der Wert auch wieder mit # gesendet.
Leider kann damit der colorpicker wieder nix anfangen.
Kann man das # am Anfang beim Empfangen auch irgendwie wegschneiden?

Gruß und Danke,
Stefan
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: Beta-User am 13 April 2019, 10:37:33
Das Wegschneiden sollte gehen, du brauchst aber "hinten" dann Perl:

Würde mal folgendes testen:
a020a621c6c3:wled/a020a621c6c3/c:.* {{"rgb"=>substr($EVENT,1,6)}} Kann aber sein, dass du den substr erst in eine Variable packen mußt usw..

Bei der Gelegenheit:
Scheint ein Device zu sein, für den es noch kein attrTemplate gibt. Vielleicht magst du was beisteuern? Wenn du Hilfe benötigst, würde mich neben ein paar Infos zum Gerät selbst eine RAW-Definition hier weiterbringen, optimalerweise mit den unveränderten default-Topic-Strukturen.
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: stefanru am 13 April 2019, 14:37:40
Hi Beta-User,

super hat geklappt.
Natürlich, sehr gerne steuer ich ein attrTemplate bei.

Muss das aber erstmal zum laufen bringen. An / Aus fehlt mir noch.
Sollte gehen in dem man on/off an das main topic sendet.

Ich melde mich bei fragen oder wenn ich es soweit zusammen habe.

Ansteuern tue ich einen ESP8622 auf dem WLED läuft:
https://github.com/Aircoookie/WLED/wiki/MQTT

WLED ist ziemlich gut für RGB Stripes WS2812.

Gruß,
Stefan

Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: Sharky69 am 23 Oktober 2019, 17:03:54
Hallo Stefan,

ich habe auch eine WS218B-LED-Streifen mit der WLED-Software ausgestattet. Läuft sehr gut über das Webinterface. Allerdings habe ich es bisher noch nicht in FHEM integriert. Deswegen wäre ich sehr dankbar für Deine Unterstützung. Kannst Du vielleicht Dein Template mit einer kurzen Anleitung posten, auch wenn es noch nicht ganz perfekt ist?
Da wäre ich Dir sehr dankbar!

LG

Michael
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: projectsun am 13 November 2019, 00:50:42
Hallo,

ich würde mich auch über ein template freuen. Helligkeit setzen klappt, on/off senden bewirkt nur einen toggle und RGB macht mir nur schwarz, also aus
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: Beta-User am 15 November 2019, 07:25:57
Wenn jemand ein list (bitte nur mit dem, was funktioniert bzw. Hinweisen, was ggf. nicht) beitragen könnte, wäre das schon mal hilfreich. Die Kommandos an sich scheinen (bis auf den col-Teil) recht einfach zu sein.

Allerdings steht da auf der Seite "MQTT-Interface wird grade überarbeitetet (breaking change)". Das hat demnach eher vorläufigen Charakter...
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: stefanru am 21 November 2019, 18:49:20
Hi,

sorry ich war eine Zeitlang nicht mehr hier.
Habe jetzt erst gesehen dass hier Interesse besteht.

Ich bin sehr zufrieden mit der MQTT implementierung, mittlerweile läuft es super stabil.

Ich weiß leider nicht wie ich so ein attrTemplate aus meinen Daten erstellen kann.

Hier erstmal ein List in dem alles drinsteht. Bei Gelegenheit schaue ich mal wie ich ein attrTemplate erzeugen kann.
Internals:
   CID        a020a621c6c3
   DEF        a020a621c6c3
   DEVICETOPIC KuechenLicht
   FUUID      5cd1d0d2-f33f-0c45-e918-02b2175584076a07
   IODev      myMQTT2Client
   LASTInputDev myMQTT2Client
   MSGCNT     1286
   NAME       KuechenLicht
   NR         1231
   STATE      brightness
   TYPE       MQTT2_DEVICE
   myMQTT2Client_MSGCNT 1286
   myMQTT2Client_TIME 2019-11-21 08:08:22
   READINGS:
     2019-11-21 08:08:22   api             <?xml version="1.0" ?><vs><ac>0</ac><cl>255</cl><cl>191</cl><cl>0</cl><cs>0</cs><cs>0</cs><cs>0</cs><ns>0</ns><nr>1</nr><nl>0</nl><nf>1</nf><nd>60</nd><nt>0</nt><fx>0</fx><sx>75</sx><ix>128</ix><fp>0</fp><wv>-1</wv><ws>0</ws><md>1</md><cy>0</cy><ds>Kuechenlicht</ds></vs>
     2019-08-31 21:00:06   bewegung        0
     2019-11-21 08:08:22   brightness      0
     2019-11-21 08:08:22   rgb             FFBF00
     2019-11-13 01:14:50   state           brightness
Attributes:
   IODev      myMQTT2Client
   devStateIcon {Color::devStateIcon( $name, "rgb", "rgb", "brightness", "state" );}
   group      Licht
   icon       hue_filled_iris
   readingList myMQTT2Client:wled/kuechenlicht/g:.* brightness
myMQTT2Client:wled/kuechenlicht/c:.* {{"rgb"=>substr("$EVENT",1,6)}}
myMQTT2Client:wled/kuechenlicht/v:.* api
   room       EG,MQTT2_DEVICE
   setList    rgb:colorpicker,RGB wled/kuechenlicht/col #$EVTPART1
brightness:colorpicker,BRI,0,1,255 wled/kuechenlicht
status:on,off,t wled/kuechenlicht
   webCmd     rgb:brightness
   widgetOverride rgb:colorpicker,HSV
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: Beta-User am 23 November 2019, 12:34:30
Danke für das list (für attrTemplate-Erstellung ist RAW tendenziell einfacher, hätte ich deutlicher sagen sollen...).

Würde das mal "auf Verdacht" so einchecken, aber wenn es jemand testen würde und kurzfristig Rückmeldung geben, wenn was verbessert werden kann: Danke...

Versuchsweise Änderungen gg. das list:
- Das widgetOverride sollte jetzt direkt  in der readingList stecken
- getrennte on/off/toggle (?)-setter

#source post: https://forum.fhem.de/index.php/topic,98880.msg995308.html#msg995308
name:wled_controller
filter:TYPE=MQTT2_DEVICE
desc:To control a WLED device, see https://github.com/Aircoookie/WLED/wiki for details).
order:W_01
par:BASE_ID;BASE_ID typically is wled;{ AttrVal("DEVICE","readingList","") =~ m,([^:]+)[/][^/]+[/].*:, ? $1 : undef }
par:DEVNAME;Device name as configured;{ AttrVal("DEVICE","readingList","") =~ m,([^:]+)[/]([^/]+)[/].*:, ? $1 : undef }
par:ICON;ICON as set, defaults to hue_filled_iris;{ AttrVal("DEVICE","icon","hue_filled_iris") }
attr DEVICE icon ICON
attr DEVICE setList\
  on:noArg BASE_ID/DEVNAME status on\
  off:noArg BASE_ID/DEVNAME status on\
  toggle:noArg BASE_ID/DEVNAME status t\
  rgb:colorpicker,HSV BASE_ID/DEVNAME/col #$EVTPART1\
  brightness:colorpicker,BRI,0,1,255 BASE_ID/DEVNAME
attr DEVICE readingList \
  BASE_ID/DEVNAME/g:.* brightness\
  BASE_ID/DEVNAME/c:.* {{"rgb"=>substr("$EVENT",1,6)}}\
  BASE_ID/DEVNAME/v:.* api
deletereading -q DEVICE (?!associatedWith).*
attr DEVICE devStateIcon {Color::devStateIcon( $name, "rgb", "rgb", "brightness", "state" )}
attr DEVICE webCmd rgb:brightness
attr DEVICE model wled_controller
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: stefanru am 23 November 2019, 21:02:40
Hi Beta-User,

ich teste das sehr gerne.
Habe gerade ein Update gemacht aber noch kein Template gefunden.

Gib mal bescheid wenn du es fertig hast dann teste ich es mit meinen WLEDs.
Habe gerade alle auf die neueste Version gehoben.

P.S.: Hier ist die MQTT beschreibung von Wled. Ist aber mittlerweile etwas outdated. Es geht mittlerweile auch mit secure connection.

Gruß und Danke,
Stefan
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: Beta-User am 24 November 2019, 09:03:09
Hi Stefan,

die Frage war eigentlich, ob es getestet werden kann vor der Verteilung via update ;D .

Zum Testen findest du unter https://wiki.fhem.de/wiki/AttrTemplate#Eigene_Templates_entwickeln (https://wiki.fhem.de/wiki/AttrTemplate#Eigene_Templates_entwickeln) eine kurze Anleitung mit weiteren Links.

Sollte in deinem letzten Post eigentlich ein Link sein?
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: stefanru am 24 November 2019, 11:21:02
Hi Beta-User,

:-) jetzt verstehe ich erst. Dein Post ist das attrTemplate. Da war ich ja voll auf dem schlauch gestanden.
Klar ich teste es und melde mich.

Ja ich wollte einen link mit rein hängen:
https://github.com/Aircoookie/WLED/wiki/MQTT
Wie gesagt leider zur Zeit nicht ganz aktuell.

Gruß,
Stefan

Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: stefanru am 24 November 2019, 13:09:45
Ok habs ausprobiert.

Hast noch nen kleinen bug drin bei off steht am ende on, da muss auch off hin.
Ansonsten tut es, gefällt mir gut.

Hast du noch eine Idee wegen des colorpickers?
Im Device Overview tut es wie gewünscht. Aber wenn man RGB bei set auswählt und dort etwas einstellt kommt folgende Meldung:
fhemweb_colorpicker.js line 85:
Uncaught TypeError: cmd is not a function

Gruß,
Stefan
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: Beta-User am 24 November 2019, 13:24:33
Sorry wg. dem off, das korrigiere ich direkt...

Was den Colorpicker angeht: Funktioniert das, wenn man das via widgetOverride einstellt wie in deinem List?
(Wenn auch da ein Bug ist, sollte sich das Rudi (?) mal ansehen (=> gesonderte Meldung bei FHEMWEB). MMn. sollte es keinen Unterschied machen, an welcher Stelle das widget definiert wird; wenn doch, wäre das ggf. was, was hier als "feature" von MQTT2_DEVICE beschrieben werden sollte...)
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: stefanru am 24 November 2019, 13:40:26
Hi Beta-User,
nein das tut auch bei mir nicht. Gleicher Fehler.

Das Thema wird hier schon diskutiert, die Diskussion ist aber alt. Rudi war da auch schon kurz dabei.
https://forum.fhem.de/index.php?topic=90589.0

Irgendwie fehlen wohl parameter, mir ist aber nicht klar welche.

Danke und Gruß,
Stefan
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: rudolfkoenig am 24 November 2019, 22:53:02
Ich bin eigentlich nicht zustaendig, da colorpicker nicht meine Baustelle ist.
Wenn ich https://wiki.fhem.de/wiki/Color und die verlinkte Firmware-Seite anschaue, dann sollte setList die Zeile
rgb:colorpicker,RGB BASE_ID/DEVNAME/col #$EVTPART1
enthalten. Ohne Gewähr, da ich kein Geraet zum Testen habe.
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: stefanru am 24 November 2019, 23:13:29
Hi Rudi,

ja das funktioniert.
Ist dann halt ein reiner RGB Colorpicker, und nicht der mit den 3 Schiebern von HSV.
Aber ich denke das passt auch besser das Gerät hat ja nur ein RGB reading.

Hier der angepasste Code Beta-User:
#source post: https://forum.fhem.de/index.php/topic,98880.msg995308.html#msg995308
name:wled_controller
filter:TYPE=MQTT2_DEVICE
desc:To control a WLED device, see https://github.com/Aircoookie/WLED/wiki for details).
order:W_01
par:BASE_ID;BASE_ID typically is wled;{ AttrVal("DEVICE","readingList","") =~ m,([^:]+)[/][^/]+[/].*:, ? $1 : undef }
par:DEVNAME;Device name as configured;{ AttrVal("DEVICE","readingList","") =~ m,([^:]+)[/]([^/]+)[/].*:, ? $1 : undef }
par:ICON;ICON as set, defaults to hue_filled_iris;{ AttrVal("DEVICE","icon","hue_filled_iris") }
attr DEVICE icon ICON
attr DEVICE setList\
  on:noArg BASE_ID/DEVNAME status on\
  off:noArg BASE_ID/DEVNAME status off\
  toggle:noArg BASE_ID/DEVNAME status t\
  rgb:colorpicker,RGB BASE_ID/DEVNAME/col #$EVTPART1\
  brightness:colorpicker,BRI,0,1,255 BASE_ID/DEVNAME
attr DEVICE readingList \
  BASE_ID/DEVNAME/g:.* brightness\
  BASE_ID/DEVNAME/c:.* {{"rgb"=>substr("$EVENT",1,6)}}\
  BASE_ID/DEVNAME/v:.* api
deletereading -q DEVICE (?!associatedWith).*
attr DEVICE devStateIcon {Color::devStateIcon( $name, "rgb", "rgb", "brightness", "state" )}
attr DEVICE webCmd rgb:brightness
attr DEVICE model wled_controller

Den sollte man so einchecken können.
Richtig cool. Danke euch für eure Hilfe.

Gruß,
Stefan
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: Beta-User am 25 November 2019, 09:44:22
Danke für die Rückmeldung, ist eingecheckt (=>via update ab morgen kurz vor 8:00 Uhr verfügbar).

@Rudi: Sorry, hatte irgendwie nicht auf dem Schirm, dass das (ggf. indirekt) zu Color.pm gehört...

Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: rudolfkoenig am 25 November 2019, 10:36:07
Soweit ich es sehe, implementiert Color.pm "nur" eine Menge von Funktionen, die von einem Farbschema ins Andere konvertieren.
Das hier referenzierte Widget ist in fhemweb_colorpicker.js implementiert, und bei FHEMWEB dokumentiert (https://fhem.de/commandref_modular.html#widgetOverride)
Ich gehe davon aus, dass die HSV Variante ohne Parameter nicht fuer widgetOverride vorbereitet ist, auf die Schnelle konnte ich aber nicht die Ursache finden.
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: Beta-User am 25 November 2019, 11:00:31
Hmm, wie auch immer, evtl. sollte man den alten Thread reaktivieren oder was neues dazu starten.

(Das betrifft mich aber wenn überhaupt, dann nur indirekt, daher bleibe ich dazu schlicht still, auch wenn ich grundsätzlich die HUE-Slider-Lösung angenehmer zu bedienen finde wie den RGB-Picker. Von daher wäre das nicht schlecht, wenn man (wer auch immer) sowas (ohne die beiden anderen Slider) irgendwie auch für "klassische" RGB-Geräte bereitstellen könnte.
 (Das ist aber nur aus der Erinnerung rekonstruiert, kann sein, dass ich dabei was übersehen hatte; das stammt aus der Zeit, als ich die templates für milight entwickelt habe, und da gab es dann den einfachen Ausweg nach hue und auch meine Kenntnisse in FHEMWEB-Design waren da noch andere...).)
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: justme1968 am 25 November 2019, 14:08:22
ein widgetOverride mit <cmd>:colorpicker,HSV sollte problemlos funktionieren. gerade mit einem HUEDevice und dark style getestet.

was genau geht denn nicht? kannst du ein minimal beispiel mit einem dummy bauen bei dem das problem
zu sehen ist?
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: rudolfkoenig am 25 November 2019, 15:00:13
Mitattr global logfile -
attr global modpath .
define w FHEMWEB 8083 global
define d dummy
attr d setList rgb:colorpicker,HSV
bekommt man die Fehlermeldung:
Zitat
fhemweb_colorpicker.js line 85:
Uncaught TypeError: cmd is not a function
falls man mit einem der Regler herumspielt.
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: Beta-User am 25 November 2019, 15:09:55
dto., wenn man dasselbe via widgetOverride macht (das ist optisch dasselbe wie das MQTT2_DEVICE, um das es hier eigentlich geht, daher die weiteren Readings usw.):
defmod Test_rgb dummy
attr Test_rgb readingList brightness\
  rgb\
  api
attr Test_rgb setList on:noArg\
  off:noArg\
  toggle:noArg\
  rgb:colorpicker,RGB\
  brightness:colorpicker,BRI,0,1,255
attr Test_rgb widgetOverride rgb:colorpicker,HSV
Das Testsystem läuft auf einem strawberry-Perl@Win7
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: justme1968 am 25 November 2019, 15:11:28
ok. ich das ganze bisher immer nur als webcmd verwendet. da geht es.

nicht als set in der detail ansicht.

fix kommt nachher.
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: justme1968 am 25 November 2019, 15:16:03
sollte im svn repariert sein.
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: Beta-User am 25 November 2019, 16:01:35
Danke für's fixen  :) .

@stefanru:
Soll dann in das template jetzt die HSV-Variante rein?

@justme1968:
Gäbe es die Option, sich noch einen reinen RGB-Slider zu wünschen? Wäre vermutlich zukünftig noch für  ein paar Geräte interessant, die RGB und PCT/brightness getrennt verwalten und in FHEMWEB dann für beides slider-widgets vertragen würden. (Das hier ist für MQTT-Gerät m.E. nicht ungewöhnlich)  (Oder übersehe ich mal wieder was?)
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: justme1968 am 25 November 2019, 16:11:53
naja... ein rgb wert der nicht die helligkeit beeinflusst gibt es erst mal nicht. die helligkeit ist hier implizit immer mit drin.

rgb über einen einzigen slider geht nicht.

das wäre dann hue.

aber zusätzlich zum colorpicker für die farbe noch einen slider für die helligkeit anzuzeigen geht doch jetzt schon.

oder verstehe ich etwas falsch?
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: Beta-User am 25 November 2019, 16:22:40
Das mit der Helligkeit ist richtig ??? , Kopfkratz .

Worum es geht: In der Regel will man für farbige Leuchten zwei bzw. drei slider haben; zwei, wenn man Farbe und Helligkeit einstellen kann hat, drei, wenn man zusätzlich eine ct-Option hat.

Hier hat man einen separaten Slider für die Helligkeit, was demnach benötigt würde, wäre einer, der (auf derselben Helligkeitsstufe, die grade gilt) einen RGB-Wert liefert. Der HUE-Slider macht ja einen Zahlenwert, oder liege ich da falsch? Daher kann man den für diejenigen Geräte nicht verwenden, die den HUE-Wert nicht "verstehen".
(Für sowas wäre dann nur die Frage, wo der Slider den aktuellen Helligkeitswert hernimmt, und welche Skalierung für den gilt (100% oder 0-255); könnte man durch weitere Argumente lösen? EDIT: Oder den vorherigen RGB-Wert auswerten?)
Die Alternative wäre, den HUE-Slider anzubieten, und eine der Funktionen aus Color zu nutzen, um den Wert vor dem Senden zu beeinflussen; dann wird aber der Informationsfluss rückwärts gestört, weil was anderes zurückkommt, als gesendet wurde.
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: justme1968 am 25 November 2019, 18:16:27
wenn das device ein set kommando nur für die helligkeit hat -> einfach den hier: https://wiki.fhem.de/wiki/Color#Helligkeit (https://wiki.fhem.de/wiki/Color#Helligkeit) verwenden.

wenn das device keinen eigenes set kommando hat und nur rgb kann -> den colorpicker im rgb oder hsv mode nutzen. da gibt es jeweils einen slider der nur die helligkeitsstufe komponente ändert.

wenn du noch etwas anderes meinst -> bitte noch mal beschrieben :(.


der dritte slider im rgb mode ist nicht für die farbtemperatur sonder für die sättigung. schau mal hier: https://wiki.fhem.de/wiki/Hue#Grundlagen_-_Farbmodelle (https://wiki.fhem.de/wiki/Hue#Grundlagen_-_Farbmodelle). das mischen von komponenten aus unterschiedlichen farbmodellen ist normalerweise nicht sinnvoll.


der slider für die farbtemperatur ist noch mal etwas anderes: https://wiki.fhem.de/wiki/Color#Farbtemperatur (https://wiki.fhem.de/wiki/Color#Farbtemperatur).

es gibt devices die automatisch den weiss anteil mit steuern wenn man eine farbe setzt und die automatisch in einen nur weiss modus wechseln wenn man die farbtemperatur explizit setzt (fast alle zigbee devices mit ausnahme der de geräte mit neurer firmware). hier kann man im frontend den colorpicker und den ct slider anzeigen aber beide beeinflussen sich automatisch gegenseitig durch die rückmeldung vom device.

und es gibt devices bei denen beides völlig getrennt ist. hier kann man beides anzeigen und getrennt voneinander bedienen.
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: Beta-User am 25 November 2019, 21:27:12
Na ja, was stefanru gerne haben wollte, ist nach meinem Verständnis ein Device, das in etwa so aussieht bzw. sich so steuern läßt:

defmod dummy_test dummy
attr dummy_test readingList brightness rgb
attr dummy_test setList brightness:colorpicker,BRI,0,15,255 rgb:colorpicker,HUE,0,1,359
attr dummy_test webCmd brightness:rgb
Aber der HUE-Slider liefert leider eben Zahlenwerte, die man nicht sinnvoll an das konkrete Device via MQTT versenden kann, denn das mag ausschließlich RGB-Werte im RRGGBB-Format. Das sollte der Slider liefern...

Dass es andere Widgets gibt, die das hergeben, ist klar, aber der Mechanismus mit dem Aufklappen vom RGB-Widget ist nicht sooo schön, wenn man daneben sowieso einen Slider für die Helligkeit hat.

Sorry für die Ungenauigkeit, was die anderen Optionen/Begrifflichkeiten betr. Farbe usw. angeht. Es geht einfach nur darum, (genau nur) das anzuzeigen, was dann auch das (Ziel-) Device versteht/verarbeiten kann. Hier ist das eben nur brightness und rgb.

Hoffe, das ist nun etwas klarer?
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: justme1968 am 25 November 2019, 22:28:36
wenn du den colorpicker im HSV mode verendest klappt nichts auf. die drei regler sind immer sichtbar.

das problem ist: ein oder zwei regler sind nicht genug um eine farbe im rgb oder hsv raum zu bestimmen. es sind drei komponenten nötig. d.h. um rgb einzustellen reicht ein regler nicht.

#FF0000 und #FFFFFF und #FF9999 sind auf hue ebene alles die gleiche farbe. reines rot. und haben alle 100% helligkeit. sie unterscheiden sich nur in der sättigung die du als dritten regler unterschlagen hast.

auch wenn das device nur rgb und helligkeit kann brauchst du im gui alle drei regler um alle möglichen farben einzustellen. genau dafür ist der HSV mode vom colorpicker da.
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: stefanru am 25 November 2019, 23:03:04
Hi Beta-User,

ich denke den Hue Slider hätte ich dann lieber.

@justme:
Sieh dir mal den Anhang an.
So sieht so ein Device dann in der Übersicht aus.

Die vorne sind die HUE, der hinten ist das Brightness-Reading des Devices, wobei Brightness von 0 - 255 geht.
Irgendwie ist die Helligkeit doch jetzt 2 mal vorhanden.
Einmal im Hue von 0 - 100 und einmal im Brightness-Reading von 0 - 255.

Nochmal vielen Dank für eure Hilfe.

Gruß,
Stefan
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: justme1968 am 25 November 2019, 23:09:54
wenn du nur eins von beiden willst darfst du in deinem webCmd auch nur eins von beiden einbauen.
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: Beta-User am 26 November 2019, 07:51:06
@justme1968: Danke nochmal für die Infos.

@stefanru:
Läßt sich das Device denn über den HSV (? nicht HUE, oder?) -Slider auch Helligkeitsmäßig gut bedienen? Der mittlere slider sollte auch irgendwelche Auswirkungen auf das Device haben? Dann würde ich (nur) den in webCmd anbieten, doppeln macht keinen Sinn.

Wenn einer der slider funktionslos sein sollte, dann bleiben wir beim aktuellen Stand.
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: stefanru am 26 November 2019, 20:50:40
Hi,

ich glaub ich hab das nicht so gut ausgedrückt.
Der vordere ist HSV und alles funktioniert, der hintere ist Brightness, auch diese funktioniert.

Ist Brightness 0, kann ich an HSV drehen wie ich will es tut sich nichts.
Hat Brightness einen Wert größer 0 kann ich HSV benutzen.
Auch den unteren der drei Slider von HSV der ja auch von Schwarz bis volle Farbe geht.
Ich kann also mit dem unteren vom HSV Slider die Helligkeit von 0 bis 100 einstellen, wobei 100 maximal die Helligkeit von Brightness haben kann.

Bsp: Brightness 50.
Unterer HSV Slider ist bei 0 aus und bei 100 hat die Lampe eine Brightness von 50.

Ein Problem hat der HSV Slider aber.
Slide ich den unteren Slider wirklich auf 0 wird RGB 000000.
Das heißt alle Slider in HSV gehen auf Anfangsposition.
Farbe und Sättigung ändern sich also plötzlich.
Bin mir nicht sicher woran das liegt.
Ich denke aber dass der HSV Slider wenn der untere Slider auf 0 steht alles auf 0 setzt.
Somit geht die Farbe und Sättigung verloren.

Ich würde den HSV Slider gern behalten.
Ist irgendwie besser zu bedienen als die RGB Auswahl.
Außerdem hat RGB ja das selbe. Man kann von oben nach unten auch immer dunkler werden.
Extremfall also eine schwarze Farbe und die LED ist aus obwohl Brightness auf 255 steht.

Ich denke wir sollten HSV nehmen.
Das einzige Problem ist wenn man den unteren HSV Slider auf 0 stellt.
Vielleicht kann justme was dazu sagen?

Gruß,
Stefan
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: justme1968 am 26 November 2019, 21:04:39
jedes farbmodell hat gewisse nachteile. bei hsv geht bei sättigung 0 oder helligkeit 0 die farbe ‘verloren‘. bei rgb kann man nicht einfach durch die farben scrollen.

wenn man die farmodelle auch noch kombinieren muss weil in einem die einstellung einfacher geht, dieses aber vom device nicht direkt unterstützt wird verstärken sie die probleme gegenseitig.

d.h. für hsv: wenn man die helligkeit auf 0 dreht gehen bei der hin- und rückrechnung über rgb die beiden anderen kanäle verloren weil sich aus rgb 000000 nichts mehr rekonstruieren lässt. ähnliches gilt für ffffff d.h. weiß.

bei einem device das direkt in hsv arbeitet würde das nicht passieren weil nicht hin und her gerechnet werden muss und im device bzw. reading die original werte erhalten bleiben.
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: stefanru am 26 November 2019, 21:22:45
Ah ok, danke für die Erklärung.

Hmm, dann fällt es mir schwer zu sagen ob HSV oder RGB für die WLED.
Sie hat nur ein RGB und ein Brightness reading.
Dann wäre wohl RGB das korrekte.

Gruß,
Stefan
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: Beta-User am 27 November 2019, 07:39:52
Dann lassen wir das im template wie es ist. Zumindest die Beschreibung verweist nach hierher, ggf. bzw. bei Gelegenheit nehme ich noch einen comment dazu auf, dass man es auch danach noch wiederfindet, wenn man sich intensiver mit seinem device beschäftigt.

Finde es besser, man hat eine etwas "umständliche" Bedienung (@justme1968: das ist ausdrücklich keine Kritik, die Hintergründe, warum das so sein muss, hast du ja nochmal ausführlich dargelegt) wie irritierende Verhaltensweisen bei einem "mißbrauchten" widget.

(@stefanru: Du kannst das bei dir ja trotzdem so lassen; du kennst ja die Einschränkungen, und wenn du ein paar "Farb-Buttons" dazupackst, die rgb liefern, ist das auch einfach zu überspielen...).
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: stefanru am 27 November 2019, 20:53:44
Hi,

nein das passt. Ich denke ich nehme dann auch RGB. Ich benutze das FHEM WebUI eh fast nicht zum steuern.
Läuft alles automatisiert mit Bewegungsmelder usw.

Also alles super.

Vielen dank nochmal!

Gruß,
Stefan
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: andre07 am 17 Februar 2020, 20:50:19
Hallo
Wollte da auch mal testen da ich einige  WS2812 rumliegen hatte.
Nach flashen der firmware auf meinen esp8266 und mqtt Aktivierung
wird bei mir dieses Device per template angelegt
defmod MQTT2_WLED_vitrine MQTT2_DEVICE WLED_vitrine
attr MQTT2_WLED_vitrine DbLogExclude .*
attr MQTT2_WLED_vitrine IODev MQTTServer
attr MQTT2_WLED_vitrine comment For questions about the use of different widgets for color selection see discussion at https://forum.fhem.de/index.php/topic,98880.msg995308.html
attr MQTT2_WLED_vitrine devStateIcon {Color::devStateIcon( $name, "rgb", "rgb", "brightness", "state" )}
attr MQTT2_WLED_vitrine genericDeviceType light
attr MQTT2_WLED_vitrine homebridgeMapping Brightness=brightness::brightness,maxValue=100,factor=0.39216,delay=true
attr MQTT2_WLED_vitrine icon hue_filled_iris
attr MQTT2_WLED_vitrine model wled_controller
attr MQTT2_WLED_vitrine readingList wled/wled/g:.* brightness\
  wled/wled/c:.* {{"rgb"=>substr("$EVENT",1,6)}}\
  wled/wled/v:.* api
attr MQTT2_WLED_vitrine room MQTT2_DEVICE
attr MQTT2_WLED_vitrine setList on:noArg wled/wled status on\
  off:noArg wled/wled status off\
  toggle:noArg wled/wled status t\
  rgb:colorpicker,RGB wled/wled/col #$EVTPART1\
  brightness:colorpicker,BRI,0,1,255 wled/wled
attr MQTT2_WLED_vitrine webCmd rgb:brightness
funktionierte aber nicht
colorpicker wollte selbst nach Anpassung der  Pfade
nicht funtionieren.
Firmware ist die letzte vom Dezember 2019

defmod MQTT2_WLED_vitrine MQTT2_DEVICE WLED_vitrine
attr MQTT2_WLED_vitrine DbLogExclude .*
attr MQTT2_WLED_vitrine IODev MQTTServer
attr MQTT2_WLED_vitrine comment For questions about the use of different widgets for color selection see discussion at https://forum.fhem.de/index.php/topic,98880.msg995308.html
attr MQTT2_WLED_vitrine devStateIcon {Color::devStateIcon( $name, "rgb", "rgb", "brightness", "state" )}
attr MQTT2_WLED_vitrine genericDeviceType light
attr MQTT2_WLED_vitrine homebridgeMapping Brightness=brightness::brightness,maxValue=100,factor=0.39216,delay=true
attr MQTT2_WLED_vitrine icon hue_filled_iris
attr MQTT2_WLED_vitrine model wled_controller
attr MQTT2_WLED_vitrine readingList wled/vitrine/g:.* brightness\
  wled/vitrine/c:.* {{"rgb"=>substr("$EVENT",1,6)}}\
  wled/vitrine/v:.* api\
WLED_vitrine:wled/vitrine/g:.* g\
WLED_vitrine:wled/vitrine/c:.* c\
WLED_vitrine:wled/vitrine/status:.* status\
WLED_vitrine:wled/vitrine/v:.* v
attr MQTT2_WLED_vitrine room MQTT2_DEVICE
attr MQTT2_WLED_vitrine setList on:noArg wled/vitrine status on\
  off:noArg wled/vitrine status off\
  toggle:noArg wled/vitrine status t\
  rgb:colorpicker,RGB wled/vitrine/col #$EVTPART1\
  brightness:colorpicker,BRI,0,1,255 wled/vitrine
attr MQTT2_WLED_vitrine webCmd rgb:brightness
attr MQTT2_WLED_vitrine widgetOverride rgb:colorpicker,HSV

attr vitrinenlicht_wled webCmd rgb:brightness
attr vitrinenlicht_wled widgetOverride rgb:colorpicker,HSV


Was ich mir noch wünschen würde die Effekte irgenwie mit
einzubauen habe aber leider null Plan wie das anzustellen ist.
Mein  Plan wäre alle meine Milight durch diese zu ersetzen da die WS2811
gefühlt smoother laufen.

Andre

Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: stefanru am 17 Februar 2020, 21:05:08
Hi Andre,

eigentlich sollte die ReadingsList so aussehen, hier für mein kuechenlicht:
readingList
wled/kuechenlicht/g:.* brightness
  wled/kuechenlicht/c:.* {{"rgb"=>substr("$EVENT",1,6)}}
  wled/kuechenlicht/v:.* api

Hast du den bei der Wled auf dem Web Ui unter Config -> MQTT angeschaltet und dort auch ein Device Topic Vergeben?
Für mein Beispiel wäre das wled/kuechenlicht

Kann dir da nur recht geben WLEd läuft super smooth und ist richtig cool.
Ja du kannst auch die Effekte über MQTT ansprechen und zwar über die API, dort kannst du alle Befehler der HTTP API übergeben.
Siehe:https://github.com/Aircoookie/WLED/wiki/MQTT

Z.b. für mein Küchenlicht:
set myMQTT2Client publish wled/kuechenlicht/api CL=#98F3F9&A=255&TT=1000

CL ist Farbe, A ist Helligkeit und TT ist die dauer des Übergangs.
Für eine Effekt würdest du noch &FX=10 setzen.
Das würde Effekt Nummer 10 laufen lassen.

Gruß,
Stefan


Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: andre07 am 17 Februar 2020, 21:42:30
In der Web UI habe ich bei Device Topic: wled/vitrine eingetragen
Group Tropic steht auf wled/all
Client ID steht auf WLED-vitrine und Mqtt aktiviert
den rest habe ich erst mal nicht verändert.
Welche Firmware hast du drauf vielleicht liegt es ja daran das das falsch
angelegt wird.
set mqttserver publish wled/vitrine/api CL=#98F3F9&A=255&TT=1000 &FX=2
funtioniert wunderbar... :)
Andre
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: stefanru am 17 Februar 2020, 21:47:37
Hab die neuste Firmware drauf.
Hatte aber auch die vorher drauf.
Benutze das schon ne Zeit lang.

Wo ist denn dein Problem genau?
Wenn das "set mqttserver publish wled/vitrine/api CL=#98F3F9&A=255&TT=1000 &FX=2" geht sollte doch auch der rest gehen.

Hast du in deiner ReadingsList:
wled/vitrine/g:.* brightness
  wled/vitrine/c:.* {{"rgb"=>substr("$EVENT",1,6)}}
  wled/vitrine/v:.* api

Gruß,
Stefan
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: andre07 am 18 Februar 2020, 10:40:35
Problem eigentlich nicht nach anpaasung der Pfade läuft es ja erst mal
es wird nur falsch vom template angelegt vieleicht liegt es nur an meiner
Konfiguration das das so passiert.
defmod MQTTServer MQTT2_SERVER 1884 global
attr MQTTServer DbLogExclude .*
attr MQTTServer autocreate simple
attr MQTTServer icon mqtt
attr MQTTServer rawEvents 1
attr MQTTServer room MQTT2_DEVICE,Mqtt

Internals:
   .FhemMetaInternals 1
   CID        WLED_vitrine
   DEF        WLED_vitrine
   DEVICETOPIC MQTT2_WLED_vitrine
   FUUID      5e4ae9f3-f33f-0b03-84fc-e1c0e1eb40de45a0
   FVERSION   10_MQTT2_DEVICE.pm:0.211680/2020-02-10
   IODev      MQTTServer
   LASTInputDev MQTTServer
   MQTTServer_MSGCNT 16
   MQTTServer_TIME 2020-02-17 21:43:03
   MSGCNT     16
   NAME       MQTT2_WLED_vitrine
   NR         766
   STATE      toggle
   TYPE       MQTT2_DEVICE
   .attraggr:
   .attrminint:
   READINGS:
     2020-02-17 21:43:02   api             <?xml version="1.0" ?><vs><ac>0</ac><cl>152</cl><cl>243</cl><cl>249</cl><cs>0</cs><cs>0</cs><cs>0</cs><ns>1</ns><nr>1</nr><nl>0</nl><nf>1</nf><nd>60</nd><nt>132</nt><fx>2</fx><sx>128</sx><ix>128</ix><fp>0</fp><wv>-1</wv><ws>0</ws><cy>0</cy><ds>WLED</ds><ss>0</ss></vs>
     2020-02-17 21:43:02   brightness      0
     2020-02-17 21:43:02   c               #98F3F9
     2020-02-17 21:43:02   g               0
     2020-02-17 21:43:02   rgb             98F3F9
     2020-02-17 21:43:02   state           toggle
     2020-02-17 21:43:02   status          online
     2020-02-17 21:43:02   v               <?xml version="1.0" ?><vs><ac>0</ac><cl>152</cl><cl>243</cl><cl>249</cl><cs>0</cs><cs>0</cs><cs>0</cs><ns>1</ns><nr>1</nr><nl>0</nl><nf>1</nf><nd>60</nd><nt>132</nt><fx>2</fx><sx>128</sx><ix>128</ix><fp>0</fp><wv>-1</wv><ws>0</ws><cy>0</cy><ds>WLED</ds><ss>0</ss></vs>
   helper:
     bm:
       MQTT2_DEVICE_Get:
         cnt        14
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        18.02. 10:39:46
         max        7.20024108886719e-05
         tot        0.000534772872924805
         mAr:
           HASH(0x564100625a48)
           MQTT2_WLED_vitrine
           brightness
       MQTT2_DEVICE_Set:
         cnt        30
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        17.02. 21:43:02
         max        0.0286839008331299
         tot        0.0400433540344238
         mAr:
           HASH(0x564100625a48)
           MQTT2_WLED_vitrine
           toggle
Attributes:
   DbLogExclude .*
   IODev      MQTTServer
   comment    For questions about the use of different widgets for color selection see discussion at https://forum.fhem.de/index.php/topic,98880.msg995308.html
   devStateIcon {Color::devStateIcon( $name, "rgb", "rgb", "brightness", "state" )}
   genericDeviceType light
   homebridgeMapping Brightness=brightness::brightness,maxValue=100,factor=0.39216,delay=true
   icon       hue_filled_iris
   model      wled_controller
   readingList wled/vitrine/g:.* brightness
  wled/vitrine/c:.* {{"rgb"=>substr("$EVENT",1,6)}}
  wled/vitrine/v:.* api
WLED_vitrine:wled/vitrine/g:.* g
WLED_vitrine:wled/vitrine/c:.* c
WLED_vitrine:wled/vitrine/status:.* status
WLED_vitrine:wled/vitrine/v:.* v
   room       MQTT2_DEVICE
   setList    on:noArg wled/vitrine status on
  off:noArg wled/vitrine status off
  toggle:noArg wled/vitrine status t
  rgb:colorpicker,RGB wled/vitrine/col #$EVTPART1
  brightness:colorpicker,BRI,0,1,255 wled/vitrine
   webCmd     rgb:brightness
   widgetOverride rgb:colorpicker,HSV
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: stefanru am 18 Februar 2020, 11:22:24
Erklär mir mal was falsch angelegt wird.
Bei mir ist das passt alles wenn ich ein Device neu anlege.
Was musstest du denn aus welchem Grund anpassen?

Gruß,
Stefan
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: andre07 am 24 Februar 2020, 12:18:57
Hallo
Sorry das ich mich erst jetzt melde.
defmod MQTT2_WLED_vitrine MQTT2_DEVICE WLED_vitrine
attr MQTT2_WLED_vitrine DbLogExclude .*
attr MQTT2_WLED_vitrine IODev MQTTServer
attr MQTT2_WLED_vitrine comment For questions about the use of different widgets for color selection see discussion at https://forum.fhem.de/index.php/topic,98880.msg995308.html
attr MQTT2_WLED_vitrine devStateIcon {Color::devStateIcon( $name, "rgb", "rgb", "brightness", "state" )}
attr MQTT2_WLED_vitrine genericDeviceType light
attr MQTT2_WLED_vitrine homebridgeMapping Brightness=brightness::brightness,maxValue=100,factor=0.39216,delay=true
attr MQTT2_WLED_vitrine icon hue_filled_iris
attr MQTT2_WLED_vitrine model wled_controller
attr MQTT2_WLED_vitrine readingList wled/vitrine/wled/vitrine/g:.* brightness\
  wled/vitrine/wled/vitrine/c:.* {{"rgb"=>substr("$EVENT",1,6)}}\
  wled/vitrine/wled/vitrine/v:.* api
attr MQTT2_WLED_vitrine room MQTT2_DEVICE
attr MQTT2_WLED_vitrine setList on:noArg wled/vitrine/wled/vitrine status on\
  off:noArg wled/vitrine/wled/vitrine status off\
  toggle:noArg wled/vitrine/wled/vitrine status t\
  rgb:colorpicker,RGB wled/vitrine/wled/vitrine/col #$EVTPART1\
  brightness:colorpicker,BRI,0,1,255 wled/vitrine/wled/vitrine
attr MQTT2_WLED_vitrine webCmd rgb:brightness

Und so habe ich es dann abgeändert.
defmod MQTT2_WLED_vitrine MQTT2_DEVICE WLED_vitrine
attr MQTT2_WLED_vitrine DbLogExclude .*
attr MQTT2_WLED_vitrine IODev MQTTServer
attr MQTT2_WLED_vitrine comment For questions about the use of different widgets for color selection see discussion at https://forum.fhem.de/index.php/topic,98880.msg995308.html
attr MQTT2_WLED_vitrine devStateIcon {Color::devStateIcon( $name, "rgb","rgb", "brightness", "state" )}
attr MQTT2_WLED_vitrine genericDeviceType light
attr MQTT2_WLED_vitrine homebridgeMapping Brightness=brightness::brightness,maxValue=100,factor=0.39216,delay=true
attr MQTT2_WLED_vitrine icon hue_filled_iris
attr MQTT2_WLED_vitrine model wled_controller
attr MQTT2_WLED_vitrine readingList wled/vitrine/g:.* brightness\
  wled/vitrine/c:.* {{"rgb"=>substr("$EVENT",1,6)}}\
  wled/vitrine/v:.* api\
WLED_vitrine:wled/vitrine/g:.* g\
WLED_vitrine:wled/vitrine/c:.* c\
WLED_vitrine:wled/vitrine/status:.* status\
WLED_vitrine:wled/vitrine/v:.* v
attr MQTT2_WLED_vitrine room MQTT2_DEVICE
attr MQTT2_WLED_vitrine setList on:noArg wled/vitrine status on\
  off:noArg wled/vitrine status off\
  toggle:noArg wled/vitrine status t\
  rgb:colorpicker,RGB wled/vitrine/col #$EVTPART1\
  brightness:colorpicker,BRI,0,1,255 wled/vitrine
attr MQTT2_WLED_vitrine webCmd rgb:brightness
attr MQTT2_WLED_vitrine widgetOverride rgb:colorpicker,HSV
Wie du  siehst legt er die Pfade wled/vitrine doppelt an.
Auch der Colorpicker funktioniert bei mir so nicht
Andre
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: stefanru am 24 Februar 2020, 13:09:52
Hi Andre,

ah ok.
Das sieht ja seltsam aus. Ich probiere das heute mal.
Als ich meine Device angelegt hatte war nichts doppelt.

Gruß,
Stefan
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: Beta-User am 24 Februar 2020, 13:31:32
Hm, das ist zwar einerseits klar, dass das attrTemplate kaputt war (Korrektur ist seit eben im svn), aber diesen Effekt hätte der bug nicht haben sollen...

(Wenn testen, bitte mit der version aus dem svn bzw. mit der kleinen Änderung von eben).
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: andre07 am 24 Februar 2020, 14:24:37
Habs eben getestet funktioniert
Diese Meldung kommt aber beim anlegen....
Unknown command WLED_vitrine:wled, try help.
Unknown command WLED_vitrine:wled, try help.
Unknown command WLED_vitrine:wled, try help.
Unknown command WLED_vitrine:wled/col, try help.
Unknown command WLED_vitrine:wled, try help.
Unknown command WLED_vitrine:wled/g:.*, try help.
Unknown command WLED_vitrine:wled/c:.*, try help.
Unknown command WLED_vitrine:wled/v:.*, try help.
Colorpicker arbeitet auch wieder ohne Änderung
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: Beta-User am 24 Februar 2020, 14:34:21
Hmm, bin grade etwas am Rätseln, wo das herkommen könnte.

Wichtig ist erst mal, dass die Parameter sauber aufgelöst werden. Das scheint der Fall zu sein?

Alles andere _könnte_ auch von irgendeiner "Altlast" her kommen. Von daher würde es mich interessieren, ob diese Meldungen auch kommen, wenn man ein "neues" Device hat, wie autocreate es erstellt hatte?
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: andre07 am 24 Februar 2020, 22:07:06
Ich habe ein zweites neues Device angelegt selbige Fehlermeldung erscheint
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: Beta-User am 25 Februar 2020, 09:21:19
Hmm, aus dieser Beschreibung alleine werde ich leider nicht schlau. Ich vermute (?), diese Fehlermeldungen "unknown command.." erscheinen, wenn du das attrTemplate anwendest?

Bitte (sofern ich dem auf den Grund gehen soll, muß ich das bei Gelegenheit 1:1 nachvollziehen...): Ein (vollst.) RAW von dem, was autocreate erstellt, dann eine genaue Angabe, wie du welches attrTemplate anwendest.
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: stefanru am 29 Februar 2020, 14:56:30
Also ich habe gerade auch ein neues Device angelegt.
Habe ein AlleLeds device angelegt.
Als Baseid "wled" und als Devname "all".
Ging ohne Probleme.

Folgendes Vorgehen:
define AlleLeds mqtt2_device
set AlleLeds attrTemplate wled_controller wled all

Alles perfekt danach.

Gruß,
Stefan



Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: TomLee am 29 Februar 2020, 17:17:13
Hallo,

beschäftige mich auch seit 2-3 Tagen mit WLED.
Bescheidene Frage, wo gibts denn das Template wled_controller wled all ?
Selbst wenn ich ein update verpasst hätte find ich es hier (https://svn.fhem.de/trac/browser/trunk/fhem/FHEM/lib/AttrTemplate/mqtt2.template) nicht.

Angelegt wir bei mir folgendes Device:

defmod MQTT2_WLED_538e36 MQTT2_DEVICE WLED_538e36
attr MQTT2_WLED_538e36 IODev MQTT2_Server
attr MQTT2_WLED_538e36 readingList WLED_538e36:wled/538e36/g:.* g\
WLED_538e36:wled/538e36/c:.* c\
WLED_538e36:wled/538e36/status:.* status\
WLED_538e36:wled/538e36/v:.* v
attr MQTT2_WLED_538e36 room MQTT2_DEVICE

setstate MQTT2_WLED_538e36 2020-02-29 16:11:55 c #FF0000
setstate MQTT2_WLED_538e36 2020-02-29 16:11:55 g 41
setstate MQTT2_WLED_538e36 2020-02-29 16:11:55 status online
setstate MQTT2_WLED_538e36 2020-02-29 16:11:55 v <?xml version="1.0" ?><vs><ac>41</ac><cl>255</cl><cl>0</cl><cl>0</cl><cs>0</cs><cs>0</cs><cs>0</cs><ns>0</ns><nr>1</nr><nl>0</nl><nf>1</nf><nd>60</nd><nt>0</nt><fx>27</fx><sx>128</sx><ix>128</ix><fp>0</fp><wv>0</wv><ws>0</ws><ps>0</ps><cy>0</cy><ds>WLED</ds><ss>0</ss></vs>

Wende ich darauf das wled_controller-Template an:

Zitat
attr DEVICE icon ICON
attr DEVICE setList\
  on:noArg BASE_ID/DEVNAME status on\
  off:noArg BASE_ID/DEVNAME status off\
  toggle:noArg BASE_ID/DEVNAME status t\
  rgb:colorpicker,RGB BASE_ID/DEVNAME/col #$EVTPART1\
  brightness:colorpicker,BRI,0,1,255 BASE_ID/DEVNAME
attr DEVICE readingList \
  BASE_ID/DEVNAME/g:.* brightness\
  BASE_ID/DEVNAME/c:.* {{"rgb"=>substr("$EVENT",1,6)}}\
  BASE_ID/DEVNAME/v:.* api
deletereading -q DEVICE (?!associatedWith).*
attr DEVICE devStateIcon {Color::devStateIcon( $name, "rgb", "rgb", "brightness", "state" )}
attr DEVICE webCmd rgb:brightness
attr DEVICE comment For questions about the use of different widgets for color selection see discussion at https://forum.fhem.de/index.php/topic,98880.msg995308.html
set DEVICE attrTemplate mqtt2_speech_recognition_type_light_255
attr DEVICE model wled_controller
Das ist noch ein Fehler drin.

bekomme ich auch die Unknown command Meldungen:

Unknown command WLED_538e36:wled, try help.
Unknown command WLED_538e36:wled, try help.
Unknown command WLED_538e36:wled, try help.
Unknown command WLED_538e36:wled/col, try help.
Unknown command WLED_538e36:wled, try help.
Unknown command WLED_538e36:wled/g:.*, try help.
Unknown command WLED_538e36:wled/c:.*, try help.
Unknown command WLED_538e36:wled/v:.*, try help.

Das Device sieht dann so aus, nachdem man den die Meldungen mit OK bestätigt hat.

defmod MQTT2_WLED_538e36 MQTT2_DEVICE WLED_538e36
attr MQTT2_WLED_538e36 IODev MQTT2_Server
attr MQTT2_WLED_538e36 comment For questions about the use of different widgets for color selection see discussion at https://forum.fhem.de/index.php/topic,98880.msg995308.html
attr MQTT2_WLED_538e36 devStateIcon {Color::devStateIcon( $name, "rgb", "rgb", "brightness", "state" )}
attr MQTT2_WLED_538e36 genericDeviceType light
attr MQTT2_WLED_538e36 homebridgeMapping Brightness=brightness::brightness,maxValue=100,factor=0.39216,delay=true
attr MQTT2_WLED_538e36 icon hue_filled_iris
attr MQTT2_WLED_538e36 model wled_controller
attr MQTT2_WLED_538e36 readingList wled/538e36/g:.* g
attr MQTT2_WLED_538e36 room MQTT2_DEVICE
attr MQTT2_WLED_538e36 setList on:noArg wled/538e36/g:.* g
attr MQTT2_WLED_538e36 webCmd rgb:brightness

off:noArg BASE_ID/DEVNAME status off\
  toggle:noArg BASE_ID/DEVNAME status t\
  rgb:colorpicker,RGB BASE_ID/DEVNAME/col #$EVTPART1\
  brightness:colorpicker,BRI,0,1,255 BASE_ID/DEVNAME

werden nicht angelegt, nur on.

Auch die ReadingList aus dem Template wird nicht angelegt, wie zu sehen ist.

Nach einmal ein/ausschalten im UI von WLED erweitert sich die ReadingList wieder um:

wled/538e36/g:.* g
WLED_538e36:wled/538e36/c:.* c
WLED_538e36:wled/538e36/status:.* status
WLED_538e36:wled/538e36/v:.* v

Passe ich alles händisch so an:

defmod MQTT2_WLED_538e36 MQTT2_DEVICE WLED_538e36
attr MQTT2_WLED_538e36 IODev MQTT2_Server
attr MQTT2_WLED_538e36 comment For questions about the use of different widgets for color selection see discussion at https://forum.fhem.de/index.php/topic,98880.msg995308.html
attr MQTT2_WLED_538e36 devStateIcon {Color::devStateIcon( $name, "rgb", "brightness", "state" )}
attr MQTT2_WLED_538e36 genericDeviceType light
attr MQTT2_WLED_538e36 homebridgeMapping Brightness=brightness::brightness,maxValue=100,factor=0.39216,delay=true
attr MQTT2_WLED_538e36 icon hue_filled_iris
attr MQTT2_WLED_538e36 model wled_controller
attr MQTT2_WLED_538e36 readingList wled/538e36/wled/538e36/c:.* {{"rgb"=>substr("$EVENT",1,6)}}\
wled/538e36/wled/538e36/v:.* api\
wled/538e36/c:.* c\
wled/538e36/status:.* status\
wled/538e36/g:.* brightness\
WLED_538e36:wled/538e36/v:.* v
attr MQTT2_WLED_538e36 room MQTT2_DEVICE
attr MQTT2_WLED_538e36 setList on:noArg wled/538e36/g:.* g\
off:noArg wled/538e36 status off\
toggle:noArg wled/538e36 status t\
rgb:colorpicker,RGB wled/538e36/col #$EVTPART1\
brightness:colorpicker,BRI,0,1,255 wled/538e36
attr MQTT2_WLED_538e36 webCmd rgb:brightness

setstate MQTT2_WLED_538e36 rgb
setstate MQTT2_WLED_538e36 2020-02-29 17:02:10 brightness 82
setstate MQTT2_WLED_538e36 2020-02-29 17:02:10 c #4E21FF
setstate MQTT2_WLED_538e36 2020-02-29 17:02:09 state rgb
setstate MQTT2_WLED_538e36 2020-02-29 17:02:10 status online
setstate MQTT2_WLED_538e36 2020-02-29 17:02:10 v <?xml version="1.0" ?><vs><ac>82</ac><cl>78</cl><cl>33</cl><cl>255</cl><cs>0</cs><cs>0</cs><cs>0</cs><ns>0</ns><nr>1</nr><nl>0</nl><nf>1</nf><nd>60</nd><nt>0</nt><fx>0</fx><sx>128</sx><ix>128</ix><fp>0</fp><wv>0</wv><ws>0</ws><ps>0</ps><cy>0</cy><ds>WLED</ds><ss>0</ss></vs>

passt alles, bis auf das es kein rgb-Reading gibt.
Habs auch schon mit nur 2 statt 4 {} probiert bei {{"rgb"=>substr("$EVENT",1,6)}}
Woran liegt das ?


so kann man übrigens einen Effect auswählen, das wurde, mein ich, bisher noch nicht erwähnt.

effect:colorpicker,BRI,0,1,79 wled/538e36/api http://192.168.188.50/win&FX=$EVTPART1
Gruß

Thomas
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: Beta-User am 29 Februar 2020, 17:40:10
Hm, das Problem war das ".*:" am Ende. Hab's jetzt gegen "[^/]+:" getauscht, das sollte das korrekte Ergebnis bringen...
Das .* hat dazu geführt, dass Teile des topic-Trees doppelt verwendet wurden, deswegen geht auch rgb nicht.

Wenn man attrTemplate mit weiteren Parametern aufruft, werden die par-Anweisungen dadurch überschrieben.

Sorry, hoffe, das paßt nun.
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: TomLee am 29 Februar 2020, 18:13:44
Super. Danke. Klappt alles.

Dann nehm ich das mit dem Fehler in devStateIcon wieder zurück ::), hätte man auch nachlesen können was korrekt ist.

Das mit
Zitat
$EVENT direkt mit Perl auswerten
hängt mir einfach noch zu hoch (da warte ich noch auf den Eureka effect, hab mir die vorgeschlagenen verwandten Beispiele aber noch gar nicht im Detail angeschaut), das wär doch hier das gleiche wenn man zu dem vorgeschlagenen effect-setter eine Rückmeldung bauen wollte !?

Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: stefanru am 29 Februar 2020, 19:06:57
Hmm,

warum ging es bei mir?
Habe ich noch irgendwo ein Template vom Testen das vom Update nicht überschrieben wird?

Gruß,
Stefan
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: TomLee am 02 März 2020, 12:19:12
Zu dem effect-setter hier (https://forum.fhem.de/index.php/topic,108737.msg1028382.html#msg1028382) würd ich gerne noch 3 weitere vorschlagen, sofern das im Template erwünscht ist.

speed:colorpicker,BRI,0,1,255 wled/538e36/api http://192.168.188.50/win&SX=$EVTPART1
intensity:colorpicker,BRI,0,1,255 wled/538e36/api http://192.168.188.50/win&IX=$EVTPART1
palette:selectnumbers,0,1,46,0,lin wled/538e36/api http://192.168.188.50/win&FP=$EVTPART1

die zugehörige readingList
wled/538e36/v:.* {$EVENT =~ m,((?<=<sx>).*?(?=<\/sx>)), ? {"speed"=>"$1"} : undef }
wled/538e36/v:.* {$EVENT =~ m,((?<=<ix>).*?(?=<\/ix>)), ? {"intensity"=>"$1"} : undef }
wled/538e36/v:.* {$EVENT =~ m,((?<=<fp>).*?(?=<\/fp>)), ? {"palette"=>"$1"} : undef }

Das ein/ausschalten und die Duration einstellen von Nightlight fänd ich auch noch toll, allerdings hat das beim ersten mal nicht genauso geklappt wie hier (https://github.com/Aircoookie/WLED/wiki/HTTP-request-API) in der Doku beschrieben, da ist was durcheinander denke ich (duration mit delay vertauscht).

Gruß

Thomas
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: stefanru am 02 März 2020, 12:50:30
Hi TomLee,

Das gefällt mir!
Dann hätte ich gern noch FX.
Wäre dann:
effect:selectnumbers,0,1,101,0,lin wled/538e36/api http://192.168.188.50/win&FX=$EVTPART1
wled/538e36/v:.* {$EVENT =~ m,((?<=<fx>).*?(?=<\/fx>)), ? {"effect"=>"$1"} : undef }

Gruß,
Stefan
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: Beta-User am 02 März 2020, 13:09:40
Kann das gerne einpflegen, denke aber, dass wir noch eine Sache berücksichtigen sollten: Wenn ich diese etwas seltsame Form der Datenübertragung aus dem anderen Thread richtig deute, kommt "immer alles" zurück, ganz gleich, ob geändert oder nicht (und dazu in einem eigenen Format, das nicht JSON ist...)? (und: Es kommen immer ganze Zahlen zurück?)

Dann sollten wir das noch etwas dahingehend verfeinern, dass wir auf Änderungen checken, ergäbe als readingList:

wled/538e36/v:.* {$EVENT =~ m,(?<=<sx>)([\d]+)(?=<\/sx>), ? $1 eq ReadingsVal($NAME,"speed","unknown") ? undef : {"speed"=>$1} : undef }
wled/538e36/v:.* {$EVENT =~ m,(?<=<ix>)([\d]+)(?=<\/ix>), ? $1 eq ReadingsVal($NAME,"intensity","unknown") ? undef : {"intensity"=>$1} : undef }
wled/538e36/v:.* {$EVENT =~ m,(?<=<fp>)([\d]+)(?=<\/fp>), ? $1 eq ReadingsVal($NAME,"palette","unknown") ? undef : {"palette"=>$1} : undef }
wled/538e36/v:.* {$EVENT =~ m,(?<=<fx>)([\d]+)(?=<\/fx>), ? $1 eq ReadingsVal($NAME,"effect","unknown") ? undef :{"effect"=>"$1"} : undef }

und setList:
speed:colorpicker,BRI,0,1,255 wled/538e36/api http://192.168.188.50/win&SX=$EVTPART1
intensity:colorpicker,BRI,0,1,255 wled/538e36/api http://192.168.188.50/win&IX=$EVTPART1
palette:selectnumbers,0,1,46,0,lin wled/538e36/api http://192.168.188.50/win&FP=$EVTPART1
effect:selectnumbers,0,1,100,0,lin wled/538e36/api http://192.168.188.50/win&FX=$EVTPART1

Dazu evtl. noch eine eventMap und webCmd als Beispiele:

attr DEVICE eventMap /effect 2:Breathe/effect 8:Colorloop/effect 95:Popcorn/
attr DEVICE webCmd rgb:brightness:Breathe:Colorloop
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: stefanru am 02 März 2020, 13:19:57
Hi Beta-User,

ja leider kommt noch kein JSON.
Wird irgendwann kommen.

Zur Zeit finde ich die Idee gut das so zu Lösen wie du beschrieben hast.
FX hat laut Doku 0 - 101.
Eine Eventmap für 102 Effekte wird doch etwas heftig oder?
Aber eine kleine Liste finde ich sinnvoll.
Man kann sich seine lieblings Effekte ja dann noch adden.

Gruß,
Stefan
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: TomLee am 02 März 2020, 13:43:40
Die readinglist mit ReadingsVal hab ich getestet, passt.

Was die  MQTT-Implemetierung angeht einfach hier (https://github.com/Aircoookie/WLED/wiki/MQTT) den ersten Satz lesen und bei mehr Interesse dem Link in dem Satz folgen.
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: stefanru am 02 März 2020, 13:46:04
Ah ok,
cool.

Danke für die Info TomLee.

Gruß,
Stefan
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: stefanru am 02 März 2020, 21:30:41
Hab das jetzt mal für mein Schranklicht eingebaut.
Ist echt super. Funktioniert 1A.
Habs noch hübscher gemacht mit Hostname usw.
readingList:
wled/schranklicht/g:.* brightness
wled/schranklicht/c:.* {{"rgb"=>substr("$EVENT",1,6)}}
wled/schranklicht/v:.* api
wled/schranklicht/v:.* {$EVENT =~ m,(?<=<sx>)([\d]+)(?=<\/sx>), ? $1 eq ReadingsVal($NAME,"speed","unknown") ? undef : {"speed"=>$1} : undef }
wled/schranklicht/v:.* {$EVENT =~ m,(?<=<ix>)([\d]+)(?=<\/ix>), ? $1 eq ReadingsVal($NAME,"intensity","unknown") ? undef : {"intensity"=>$1} : undef }
wled/schranklicht/v:.* {$EVENT =~ m,(?<=<fp>)([\d]+)(?=<\/fp>), ? $1 eq ReadingsVal($NAME,"palette","unknown") ? undef : {"palette"=>$1} : undef }
wled/schranklicht/v:.* {$EVENT =~ m,(?<=<fx>)([\d]+)(?=<\/fx>), ? $1 eq ReadingsVal($NAME,"effect","unknown") ? undef :{"effect"=>"$1"} : undef }

setList:
on:noArg wled/schranklicht status on
off:noArg wled/schranklicht status off
toggle:noArg wled/schranklicht status t
rgb:colorpicker,RGB wled/schranklicht/col #$EVTPART1
brightness:colorpicker,BRI,0,1,255 wled/schranklicht
speed:colorpicker,BRI,0,1,255 wled/schranklicht/api http://schranklicht/win&SX=$EVTPART1
intensity:colorpicker,BRI,0,1,255 wled/schranklicht/api http://schranklicht/win&IX=$EVTPART1
palette:selectnumbers,0,1,46,0,lin wled/schranklicht/api http://schranklicht/win&FP=$EVTPART1
effect:selectnumbers,0,1,101,0,lin wled/schranklicht/api http://schranklicht/win&FX=$EVTPART1

eventMap und webCmd:
   eventMap   /effect 0:Solid/effect 2:Breathe/effect 63:Pride/effect 48:Police/
   webCmd     rgb:brightness:Solid:Breathe:Pride:Police

Find ich echt super!

Danke und Gruß,
Stefan
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: TomLee am 02 März 2020, 21:59:47
Was meinst du mit noch hübscher gemacht usw.. .?

Sehe nix, was schon geposted wurde ?

Meinst du mit Hostname <ds>WLED</ds> ?

Meine Hoffnung war jetzt zu lesen -> Hey, so und so klappt das mit den (bis zu 4 ) nightlight-settern. Thomas du warst bloß zu doof das zu verstehen. :P

Aber warten wir mal ab was die nächsten Updates bezüglich MQTT zeigen.
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: stefanru am 02 März 2020, 22:17:55
Sorry, wollte nicht für Verwirrung sorgen.
Kam jetzt erst zum Testen und finde das echt gut.
Ich wollte es nur nochmal sauber hinschreiben. Und anstelle von der http://IP habe ich den Hostnamen den du ja auch vergeben kannst verwendet.

Was meinst du mit Nightlight settern?
Wenn du 4 vordefinierte Nightlight nehmen willst kannst du doch Presets speichern und mit &PL laden.
Das geht auch wunderbar.
Bin selbst gerade am überlegen ob ich zum speichern eines Zustandes lieber mit &PS ein Preset speichere und später mit &PL wieder lade,
oder in FHEM die ganzen werte auslese und danach wieder setze.

Wenn man öfter presets ändert ist nur das Problem dass sie ins ROM geschrieben werden und der irgendwann kaputt geht.
Aber auch das kann man im Coding so anpassen das sie nur im RAM gespeichert werden.
Eigentlich ist &PL und &PS die geschicktere Lösung zum Abspeichern und setzen eines kompletten Sets an Werten.

Oder hab ich da was missverstanden mit den 4 Nighlight Timern?

Gruß,
Stefan

Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: sinus61 am 21 April 2020, 14:35:41
Hab auch gerade Mal einen Esp auf Wled umgestellt, das mit dem Template hat gut geklappt, danke für die Arbeit.

Bei den Api Befehlen reicht die Angabe aber auch so:
effect:selectnumbers,0,1,101,0,lin wled/538e36/api FX=$EVTPART1

Etwas mehr ließe sich ja möglicherweise aus der MQTT Steuerung noch rausholen, aber wahrscheinlich wird man ja eh das meiste über das Webinterface einstellen.
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: sinus61 am 21 April 2020, 16:32:25
Was mir noch aufgefallen ist, state bleibt ja auf set_on usw stehen und bekommt auch nicht mit wenn man das Gerät über brightness einschaltet, dafür hab ich Mal das eingefügt:

wled/64b5f5/g:.* { $EVENT ? {"state"=>"on"} : {"state"=>"off"} }
Der Status ist im Template auch noch nicht berücksichtigt

wled/64b5f5/status:.* LWT
Unter setList reicht es laut Doku auch so, statt "status on"

on:noArg wled/64b5f5 on
  off:noArg wled/64b5f5 off
  toggle:noArg wled/64b5f5 t
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: Beta-User am 21 April 2020, 17:20:47
Habe mal versucht, das in die template-file zu integrieren, bitte um Rückmeldung, ob das so klappt bzw. ob noch was fehlt...
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: sinus61 am 22 April 2020, 17:47:30
Danke, die Api Befehle könnte aber alle angepasst werden, hab das hier mal gemacht und auch noch dimup und dimdown Befehle hinzugefügt.

#source post: https://forum.fhem.de/index.php/topic,98880.msg995308.html#msg995308
name:wled_controller
filter:TYPE=MQTT2_DEVICE
desc:To control a WLED device, see https://github.com/Aircoookie/WLED/wiki for details).
order:W_01
par:BASE_ID;BASE_ID typically is wled;{ AttrVal("DEVICE","readingList","") =~ m,([^:]+)[/][^/]+[/][^/]+:, ? $1 : undef }
par:DEVNAME;Device name as configured;{ AttrVal("DEVICE","readingList","") =~ m,[^:]+[/]([^/]+)[/][^/]+:, ? $1 : undef }
par:ICON;ICON as set, defaults to hue_filled_iris;{ AttrVal("DEVICE","icon","hue_filled_iris") }
attr DEVICE icon ICON
attr DEVICE setList\
  on:noArg BASE_ID/DEVNAME on\
  off:noArg BASE_ID/DEVNAME off\
  toggle:noArg BASE_ID/DEVNAME t\
  rgb:colorpicker,RGB BASE_ID/DEVNAME/col #$EVTPART1\
  brightness:colorpicker,BRI,0,1,255 BASE_ID/DEVNAME\
  speed:colorpicker,BRI,0,1,255 BASE_ID/DEVNAME/api SX=$EVTPART1\
  intensity:colorpicker,BRI,0,1,255 BASE_ID/DEVNAME/api IX=$EVTPART1\
  palette:selectnumbers,0,1,46,0,lin BASE_ID/DEVNAME/api FP=$EVTPART1\
  effect:selectnumbers,0,1,101,0,lin BASE_ID/DEVNAME/api FX=$EVTPART1\
  loadPreset:selectnumbers,0,1,3,0,lin BASE_ID/DEVNAME/api PL=$EVTPART1\
  dimup:noArg BASE_ID/DEVNAME/api A=~10\
  dimdown:noArg BASE_ID/DEVNAME/api A=~-10 
attr DEVICE readingList \
  BASE_ID/DEVNAME/status:.* LWT\
  BASE_ID/DEVNAME/g:.* brightness\
  BASE_ID/DEVNAME/g:.* { $EVENT ? {"state"=>"on"} : {"state"=>"off"} }\
  BASE_ID/DEVNAME/c:.* { {"rgb"=>substr("$EVENT",1,6)} }\
  BASE_ID/DEVNAME/v:.* api\
  BASE_ID/DEVNAME/v:.* { $EVENT =~ m,(?<=<sx>)([\d]+)(?=<\/sx>), ? $1 eq ReadingsVal($NAME,"speed","unknown") ? return : {"speed"=>$1} : return; }\
  BASE_ID/DEVNAME/v:.* {$EVENT =~ m,(?<=<ix>)([\d]+)(?=<\/ix>), ? $1 eq ReadingsVal($NAME,"intensity","unknown") ? return : {"intensity"=>$1} : return }\
  BASE_ID/DEVNAME/v:.* {$EVENT =~ m,(?<=<fp>)([\d]+)(?=<\/fp>), ? $1 eq ReadingsVal($NAME,"palette","unknown") ? return : {"palette"=>$1} : return }\
  BASE_ID/DEVNAME/v:.* {$EVENT =~ m,(?<=<fx>)([\d]+)(?=<\/fx>), ? $1 eq ReadingsVal($NAME,"effect","unknown") ? return :{"effect"=>"$1"} : return }
deletereading -q DEVICE (?!associatedWith).*
attr DEVICE devStateIcon {Color::devStateIcon( $name, "rgb", "rgb", "brightness", "state" )}
attr DEVICE eventMap /effect 0:Solid/effect 2:Breathe/effect 63:Pride/effect 48:Police/
attr DEVICE webCmd rgb:brightness:Solid:Breathe:Pride:Police
attr DEVICE setStateList on off toggle
attr DEVICE comment For questions about the use of different widgets for color selection see discussion at https://forum.fhem.de/index.php/topic,98880.msg995308.html
set DEVICE attrTemplate speechcontrol_type_light_255
farewell:template has been applied successfully. <br>Note: webCmd and eventMap are just examples; adopt this to your needs.
attr DEVICE model wled_controller
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: Beta-User am 22 April 2020, 17:57:52
THX, hatte sowas schon vermutet ::) ...

Ist seit eben im svn!
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: andre07 am 22 Mai 2020, 01:08:24
wie ich sehe gibs wieder neue Funktionen wie effects gleich mal testen nur schade das die Änderungen erst aktiv werden nachdem man das template neu gesetzt hat so muss man halt immer am Ball
bleiben
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: Beta-User am 22 Mai 2020, 09:58:17
[...] nur schade das die Änderungen erst aktiv werden nachdem man das template neu gesetzt hat so muss man halt immer am Ball
bleiben
Na ja, die (gedankliche) Alternative wäre, jeweils "automatisch" das attrTemplate anzuwenden. Mal abgesehen davon, dass das im Moment nicht vorgesehen ist, halte ich das auch nicht für wünschenswert:
- Es ist nicht ausgeschlossen, dass Fehler passieren (ich habe z.B. die wenigsten der Gadgets, für die ich die attrTemplate pflege, und alles immer (theoretisch) auszutesten, geht auch kaum).
- Was attrTemplate liefert, ist für manche auch "nur" ein Startpunkt, um dann weiter zu konfigurieren. Das ist völlig ok, aber es wäre nicht ok, die User-Settings dann jedes Mal zu überschreiben...

Ergo: Wenn es um "neue" Dinge geht, sollte man eben tatsächlich hin und wieder schauen, was es neues gibt oder aktiv mitwirken (wie hier gibt es meistens entsprechende Threads, die auch in den Beschreibungen (?) verlinkt sind...). Dann kommt das ganze "schneller in Form", und danach besteht meistens dann kein Anlaß mehr, irgendwas zu ändern.
(Es sei denn, die API oä. ändert sich, aber dann merkt man ja auch, wenn manches nicht mehr so funktioniert wie vorher).

Just my2ct.

(Aber Danke für das implizite Lob, dass es ganz brauchbar ist, was via attrTemplate so im allg. kommt 8) ).
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: rudolfkoenig am 22 Mai 2020, 10:18:30
Zitat
... nur schade das die Änderungen erst aktiv werden nachdem man das template neu gesetzt hat so muss man halt immer am Ball
bleiben
Man kann bestimmt etwas basteln was auf global:UPDATE reagiert, und anhand das model Attribut "set device attrTemplate model" absetzt.
Bin nur nicht sicher, ob die Templates immer alle Parameter bestimmen koennen, damit kein Dialog geoeffnet werden muss.

Nicht falsch verstehen: das ist keine Empfehlung, weil sinnvoll, nur eine Ueberlegung, ob es technisch machbar ist.
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: Beta-User am 22 Mai 2020, 10:39:07
Na ja, aber das wäre dann auch eher sehr global und würde potentiell "alles" erfassen, selbst wenn die attrTemplate-file gar nicht geändert wäre - ganz abgesehen davon, dass es dann immer noch schwierig wäre rauszufinden, ob denn nun gerade ein bestimmtes template geändert wurde...

Ich könnte ja ggf. die "Meldekultur" noch verbessern, aber bisher war mir das zu aufwändig.

Das "Problem" der User kann ich aber nachvollziehen: Man sieht nirgends, wann ein einzelnes Template das letzte Mal angefaßt wurde. Man müßte also entweder "auf Verdacht" anwenden oder manuell Checken, ob und was sich ggf. geändert hat.

Dazu mal in den Raum geworfen: Es wäre kein Ding der Unmöglichkeit, (nach und nach bzw. eben bei allen künftigen updates) ggf. Infos zur letzten Änderung (z.B. als "lastupdate:", "date:" oder "version:") einzupflegen. Die Frage wäre dann nur, wie der User an die Info kommt. Das könnte man über einen/mehrere setter ("?lastupdate" bzw. "?lastupdates") erledigen: ?lastupdate gäbe das update-Datum des Model des aktuellen Devices aus, ?lastupdates das aller "model" des aktuellen Device-TYPE? Immer vorausgesetzt, die Info ist überhaupt vorhanden?
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: rudolfkoenig am 22 Mai 2020, 11:37:31
Vorschlag: Man baut im Befehlsabschnitt des Templates "setreading DEVICE attrTemplateVersion X.YY" ein.
Da der Benutzer diese Befehle nach Template-Auswahl in FHEMWEB sieht, kann er feststellen, ob er die letzte Version hat.
Man sieht auch, wann das Template angewendet wurde.

Das reicht zwar fuer eine automatische Pruefung noch nicht, ich kann aber was einbauen, wenn jemand das haben will.
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: Beta-User am 22 Mai 2020, 12:29:21
Klingt nach einem Weg :) .

Wie bereits geschrieben, _glaube_ ich, dass ein Automatismus _in der Anwendung_ keine wirklich gute Lösung ist und sowas am Ende eher Frust erzeugen könnte. Aber das mit der Anzeige des update-Datums auf diesem Weg dürften einige User hilfreich finden, und uns Helfern dürfte das auch weiterhelfen. (Hast du auf die Schnelle eine Idee, wie wir das in den aktuellen files direkt und automatisiert reinlasen könnten? Also immer vor attr DEVICE[^\b]* model bla eine Zeile rein mit "set $1 attrTemplateVersion 20200522 or prior" (mit $1 = DEVICE[^\b]*)?)

(Es gab in letzter Zeit allerdings gar nicht mehr so viel Bewegung, eigentlich kommen wir mit dem feature etwas zu spät, um das gleich ins Bewußtsein der User zu bringen...).
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: rudolfkoenig am 22 Mai 2020, 13:27:04
Zitat
Hast du auf die Schnelle eine Idee, wie wir das in den aktuellen files direkt und automatisiert reinlasen könnten? Also immer vor attr DEVICE[^\b]* model bla eine Zeile rein mit "set $1 attrTemplateVersion 20200522 or prior" (mit $1 = DEVICE[^\b]*)?)

In vim:
:%s/attr \(.*\) model \(.*\)/attr \1 model \2^Msetreading \1 attrTemplateVersion 20200522 or prior<return>(wobei ^M mit CTRL-V <return> zu erzeugen ist).

Zitat
... eigentlich kommen wir mit dem feature etwas zu spät...
Lieber zu spaet als nie :)
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: Beta-User am 22 Mai 2020, 14:05:51
In vim:
Danke (auch wenn ich vim schon immer "komisch" fand, aber man lernt ja nie aus...).

War revision 22000 :) .
Titel: Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
Beitrag von: heikoh81 am 22 Juni 2020, 23:22:16
Hallo Stefan,

Hab das jetzt mal für mein Schranklicht eingebaut.
Ist echt super. Funktioniert 1A.

ich habe mir auch mal WLED 0.1 auf einen Wemos D1 Mini gepackt, funktioniert soweit.
Nun soll das ganze natürlich aus FHEM heraus über MQTT2_Server angesprochen werden (funktioniert bei mir schon mit zahlreichen tasmota-Aktoren).

Ich habe mir deine Code-Beispiele genommen, allerdings reagiert WLED gar nicht auf diese Kommandos.
Ist denn mein MQTT-Topic so korrekt?

WLED01/Statusdisplay/
(d.h. ich ersetze wled/schranklicht/ durch WLED01/Statusdisplay/)

In WLED habe ich unter Config -> Sync Interfaces folgendes eingetragen:
Oder muss das Topic so heißen?
wled/WLED01/Statusdisplay/

Wenn ich mit mqtt.fx mitlausche und im WebIF von WLED z.B. Ein/Ausschalte, erscheint dort nur "Statuslicht":
2020-06-22 23:20:05,736  INFO --- MqttFX ClientModel             : messageArrived() with topic: Statuslicht/g
2020-06-22 23:20:05,737  INFO --- MqttFX ClientModel             : messageArrived() added: message #300 to topic 'Statuslicht/g'
2020-06-22 23:20:05,804  INFO --- MqttFX ClientModel             : messageArrived() with topic: Statuslicht/c
2020-06-22 23:20:05,805  INFO --- MqttFX ClientModel             : messageArrived() added: message #301 to topic 'Statuslicht/c'
2020-06-22 23:20:05,805  INFO --- MqttFX ClientModel             : messageArrived() with topic: Statuslicht/Statuslicht
2020-06-22 23:20:05,805  INFO --- MqttFX ClientModel             : messageArrived() added: message #302 to topic 'Statuslicht/Statuslicht'
2020-06-22 23:20:05,806  INFO --- MqttFX ClientModel             : messageArrived() with topic: Statuslicht/v
2020-06-22 23:20:05,807  INFO --- MqttFX ClientModel             : messageArrived() added: message #303 to topic 'Statuslicht/v'

Viele Grüße,
Heiko