[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

DeeSPe

#120
Sorry, ich hatte nicht gesehen dass das Internal mit der IP den Namen basierend auf dem IODev hat.
Habe die Funktion "WLED_getNames" nun oben nochmal entsprechend angepasst.
Nun sollte es klappen.

Gruß
Dan

EDIT: Musste noch eine kleine Änderung in WLED_getNames machen.
EDIT2: Musste die Ermittlung der IP Adresse auch noch einmal anpassen.
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Beta-User

Ähm, kurz der Hinweis: Ich lese mit Interesse mit, habe aber im Moment noch keine Idee, wie man daraus eine sinnvolle attrTemplate-Erweiterung basteln könnte...

Hinfreich wäre es aber in jedem Fall, wenn man die IP-Adresse auch in einem Reading "verewigen" könnte, dann können es auch Leute nutzen, die MQTT2_CLIENT als IO verwenden, und den Zugriff auf den IODev-Namen könnte man über über eine etwas andere Auswertung dynamisieren. Steinbruch-Schnipsel:
InternalVal('DEVICE','LASTInputDev',AttrVal('DEVICE','IODev',InternalVal('DEVICE','IODev',undef)->{NAME})) }
müßte angepaßt also sowas ergeben:
InternalVal($dev,'LASTInputDev',AttrVal($dev,'IODev',InternalVal($dev,'IODev',undef)->{NAME})) }
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

DeeSPe

Zitat von: Beta-User am 07 Dezember 2021, 12:09:50
Ähm, kurz der Hinweis: Ich lese mit Interesse mit, habe aber im Moment noch keine Idee, wie man daraus eine sinnvolle attrTemplate-Erweiterung basteln könnte...

Hinfreich wäre es aber in jedem Fall, wenn man die IP-Adresse auch in einem Reading "verewigen" könnte, dann können es auch Leute nutzen, die MQTT2_CLIENT als IO verwenden, und den Zugriff auf den IODev-Namen könnte man über über eine etwas andere Auswertung dynamisieren. Steinbruch-Schnipsel:
InternalVal('DEVICE','LASTInputDev',AttrVal('DEVICE','IODev',InternalVal('DEVICE','IODev',undef)->{NAME})) }
müßte angepaßt also sowas ergeben:
InternalVal($dev,'LASTInputDev',AttrVal($dev,'IODev',InternalVal($dev,'IODev',undef)->{NAME})) }


Ich hatte auch schon überlegt wie das in ein AttrTemplate zu gießen wäre. Bisher bin ich aber nicht auf eine Lösung gekommen wie man durch AttrTemplate die benötigten Funktionen in die "99_myUtils.pm" bekommt. Oder hast Du da eine Idee?
Bei MQTT2 steht das IODev doch im Reading IODev. So habe ich es jetzt zumindest im Code umgesetzt.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Beta-User

Readings sind uU. trügerisch, insbes. was IODev angeht (siehe andere Diskussion dazu).

myUtils-Code dazu zur Verfügung zu stellen ist kein Problem, das passiert an anderer Stelle auch "ständig"... (ebus, Sauger, z2m-Thermostate, sonos2mqtt...). Allerdings gleich die Warnung: Jedenfalls ich werde den nicht so "dreckig" einchecken ;D , wenn, dann muss der auf ein "akzeptables Qualitäts-Level" wie in etwa die anderen Beispiele auch, die in https://svn.fhem.de/trac/browser/trunk/fhem/contrib/AttrTemplate/ zu finden sind :P .
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

TomLee

Weniger sauber oder nicht solange das nicht vertemplated  ::) worden ist, gehört die Variablendeklaration von $chash wieder ergänzt die bei der letzten Änderung untergegangen ist.

my $chash = $defs{$dev};

DeeSPe

Oh, das wusste ich bisher nicht dass man Code so für AttrTemplate zur Verfügung stellen kann.
Was meinst Du mit "dreckig" und "akzeptables Qualitäts-Level"? Dass ich den Code in so eine Datei auslagern soll?
Denn ich habe mir beim Code schreiben Mühe gegeben und finde ihn alles andere als "dreckig".

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

DeeSPe

Zitat von: TomLee am 07 Dezember 2021, 13:25:24
Weniger sauber oder nicht solange das nicht vertemplated  ::) worden ist, gehört die Variablendeklaration von $chash wieder ergänzt die bei der letzten Änderung untergegangen ist.

my $chash = $defs{$dev};

Danke für den Hinweis.
Habe ich wohl versehentlich vorhin beim ändern der $ip Variablen mit rausgelöscht.
Ist wieder eingefügt. ;)

Gruß
Dan

P.S. Danke für's Testen und Probleme finden.
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Beta-User

Zitat von: DeeSPe am 07 Dezember 2021, 13:29:06
Oh, das wusste ich bisher nicht dass man Code so für AttrTemplate zur Verfügung stellen kann.
Dann mal Willkommen an Bord :) .

Zitat
Was meinst Du mit "dreckig" und "akzeptables Qualitäts-Level"? Dass ich den Code in so eine Datei auslagern soll?
Denn ich habe mir beim Code schreiben Mühe gegeben und finde ihn alles andere als "dreckig".
War nicht persönlich gemeint, und das sieht auch prinzipiell "ganz ok" aus, erfüllt aber nicht diese beiden "essentials" (aus meiner Warte):
- gepackaged
- perlcritic meckert höchstens bei Kleinigkeiten auf Level 3 rum (Pflaster sind nur erlaubt, was den package-Namen angeht; hier sollte das ohne weitere Meckereien gehen, "verhauen lassen" geht kostenlos online unter perlcritic.com)
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

australien

#128
Zitat von: DeeSPe am 07 Dezember 2021, 13:31:20


P.S. Danke für's Testen und Probleme finden.

Wieso steht eigentlich bei setList
effectname:{"select,".join(",",sort(split(",",ReadingsVal($name,".effects","Solid,Police"))))} {WLED_setName($NAME,"effect",$EVTPART1)}
"Solid,Police", dass sind die einzigen Effecte die ich sehe!?
Also warum die im ReadinsVal sind, ist mir schon klar, aber warum wird sonst nichts gefunden, bei den Paletten funktioniert es.


raspberry pi3
signalduino, Shelly1, Shelly2, Sonos, Unifi
Amazon Fire Tablet 7 | Noname Android Tablet 10"

DeeSPe

Zitat von: australien am 07 Dezember 2021, 14:45:05
Wieso steht eigentlich bei setList
effectname:{"select,".join(",",sort(split(",",ReadingsVal($name,".effects","Solid,Police"))))} {WLED_setName($NAME,"effect",$EVTPART1)}
"Solid,Police", dass sind die einzigen Effecte die ich sehe!?
Also warum die im ReadinsVal sind, ist mir schon klar, aber warum wird sonst nichts gefunden, bei den Paletten funktioniert es.

Das ist nur als Fallback angegeben damit das neu entstandene Dropdown schon einen Inhalt hat bevor man 1x einen Effekt per Nummer ausgewählt hat.
Hast Du denn schon 1x einen Effekt per Nummer aufgerufen (z.B. "set <WLED> effect 10")? Denn nur so entsteht der richtige Inhalt der Dropdowns.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

DeeSPe

Zitat von: Beta-User am 07 Dezember 2021, 13:37:56
Dann mal Willkommen an Bord :) .
War nicht persönlich gemeint, und das sieht auch prinzipiell "ganz ok" aus, erfüllt aber nicht diese beiden "essentials" (aus meiner Warte):
- gepackaged
- perlcritic meckert höchstens bei Kleinigkeiten auf Level 3 rum (Pflaster sind nur erlaubt, was den package-Namen angeht; hier sollte das ohne weitere Meckereien gehen, "verhauen lassen" geht kostenlos online unter perlcritic.com)

Ich versuche mal Deine Punkte umzusetzen und gebe Dir dann wieder Bescheid.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

australien

Zitat von: DeeSPe am 07 Dezember 2021, 14:54:18
Das ist nur als Fallback angegeben damit das neu entstandene Dropdown schon einen Inhalt hat bevor man 1x einen Effekt per Nummer ausgewählt hat.
Hast Du denn schon 1x einen Effekt per Nummer aufgerufen (z.B. "set <WLED> effect 10")? Denn nur so entsteht der richtige Inhalt der Dropdowns.

Gruß
Dan

Ich hatte es mehrmals, wie beschrieben, mit
set  MQTT2_WLED_garage effect 1; set  MQTT2_WLED_garage palette 1
gemacht, kein Erfolg.
Nun hab ich es mit
set  MQTT2_WLED_garage effect 11
alleine probiert, siehe da, alles da!

Warum, keine Ahnung, aber ist so.

Sorry für meine Nachfragen und danke für die Hilfe!
Robert
raspberry pi3
signalduino, Shelly1, Shelly2, Sonos, Unifi
Amazon Fire Tablet 7 | Noname Android Tablet 10"

TomLee

Kommt bei irgendwem der hier mitliest und WLED auch nutzt in dem Info-Objekt des JSON die IP mit ?
Ich nutze noch 0.12.0, da kommt zwar lip mit ist aber leer "lip":"" und ip gibts gar nicht.

Bei irgendeiner Version muss sie ja mal dabei gewesen sein:
Info-Objekt
ZitatNo value may be changed by means of this API.

DeeSPe

Zitat von: TomLee am 07 Dezember 2021, 17:18:43
Ich nutze noch 0.12.0, da kommt zwar lip mit ist aber leer "lip":"" und ip gibts gar nicht.

Ist bei mir auch so.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

TomLee

Was für eine Version nutzt du denn ?

Es steht zwar nix dazu in der Doku, aber es wär auch toll (ich brauchs nicht) die Presets mit dem vergebenen Namen setzen zu können, in dem state-Objekt kommt zwar die ID mit, aber nicht der Name, - Wunschdenken on - in der neuesten Version vlt. doch aber noch nicht dokumentiert ?