[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht

Begonnen von stefanru, 22 März 2019, 21:16:26

Vorheriges Thema - Nächstes Thema

stefanru

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

Beta-User

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 eine kurze Anleitung mit weiteren Links.

Sollte in deinem letzten Post eigentlich ein Link sein?
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

stefanru

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


stefanru

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

Beta-User

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...)
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

stefanru

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

rudolfkoenig

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.

stefanru

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

Beta-User

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...

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

rudolfkoenig

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.

Beta-User

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...).)
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

justme1968

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?
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

rudolfkoenig

Mitattr global logfile -
attr global modpath .
define w FHEMWEB 8083 global
define d dummy
attr d setList rgb:colorpicker,HSV
bekommt man die Fehlermeldung:
Zitatfhemweb_colorpicker.js line 85:
Uncaught TypeError: cmd is not a function
falls man mit einem der Regler herumspielt.

Beta-User

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
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

justme1968

ok. ich das ganze bisher immer nur als webcmd verwendet. da geht es.

nicht als set in der detail ansicht.

fix kommt nachher.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968