Autor Thema: [Gelöst] MQTT für WLED, rgb reading mit # klappt nicht  (Gelesen 27029 mal)

Offline DeeSPe

  • Developer
  • Hero Member
  • ****
  • Beiträge: 4524
  • Wer anderen eine Bratwurst brät...
    • Buy me a coffee
Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
« Antwort #120 am: 07 Dezember 2021, 11:50:57 »
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.
« Letzte Änderung: 07 Dezember 2021, 12:09:33 von DeeSPe »
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

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 18685
Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
« Antwort #121 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})) }
Server: HP-T620@Debian 11, 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

Offline DeeSPe

  • Developer
  • Hero Member
  • ****
  • Beiträge: 4524
  • Wer anderen eine Bratwurst brät...
    • Buy me a coffee
Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
« Antwort #122 am: 07 Dezember 2021, 12:14:51 »
Ä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

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 18685
Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
« Antwort #123 am: 07 Dezember 2021, 12:50:38 »
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-T620@Debian 11, 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

Offline TomLee

  • Hero Member
  • *****
  • Beiträge: 4179
  • ... wer sät, der erntet ...
Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
« Antwort #124 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};

Offline DeeSPe

  • Developer
  • Hero Member
  • ****
  • Beiträge: 4524
  • Wer anderen eine Bratwurst brät...
    • Buy me a coffee
Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
« Antwort #125 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.
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

Offline DeeSPe

  • Developer
  • Hero Member
  • ****
  • Beiträge: 4524
  • Wer anderen eine Bratwurst brät...
    • Buy me a coffee
Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
« Antwort #126 am: 07 Dezember 2021, 13:31:20 »
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

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 18685
Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
« Antwort #127 am: 07 Dezember 2021, 13:37:56 »
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-T620@Debian 11, 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

Offline australien

  • Full Member
  • ***
  • Beiträge: 330
Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
« Antwort #128 am: 07 Dezember 2021, 14:45:05 »


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.


« Letzte Änderung: 07 Dezember 2021, 14:46:49 von australien »
raspberry pi3
signalduino, Shelly1, Shelly2, Sonos, Unifi
Amazon Fire Tablet 7 | Noname Android Tablet 10"

Offline DeeSPe

  • Developer
  • Hero Member
  • ****
  • Beiträge: 4524
  • Wer anderen eine Bratwurst brät...
    • Buy me a coffee
Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
« Antwort #129 am: 07 Dezember 2021, 14:54:18 »
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

Offline DeeSPe

  • Developer
  • Hero Member
  • ****
  • Beiträge: 4524
  • Wer anderen eine Bratwurst brät...
    • Buy me a coffee
Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
« Antwort #130 am: 07 Dezember 2021, 14:56:12 »
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

Offline australien

  • Full Member
  • ***
  • Beiträge: 330
Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
« Antwort #131 am: 07 Dezember 2021, 14:58:12 »
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 1gemacht, kein Erfolg.
Nun hab ich es mit
set  MQTT2_WLED_garage effect 11alleine 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"

Offline TomLee

  • Hero Member
  • *****
  • Beiträge: 4179
  • ... wer sät, der erntet ...
Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
« Antwort #132 am: 07 Dezember 2021, 17:18:43 »
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
Zitat
No value may be changed by means of this API.

Offline DeeSPe

  • Developer
  • Hero Member
  • ****
  • Beiträge: 4524
  • Wer anderen eine Bratwurst brät...
    • Buy me a coffee
Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
« Antwort #133 am: 07 Dezember 2021, 17:39:41 »
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

Offline TomLee

  • Hero Member
  • *****
  • Beiträge: 4179
  • ... wer sät, der erntet ...
Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
« Antwort #134 am: 07 Dezember 2021, 18:22:42 »
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 ?