[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

AET_FHEM

Hallo,

hab da an kleines Problem ich will WLED mit MQTT
einzelne Segmente ansteuern

--> ich habe eine LED über eine wand wo in der Mitte eine Tür ist jetzt will ich wenn an der Tür der Rollladen auf oder zu geht genau in diesem Segment dualscan rot/grün, aber unabhängig von links und rechts

seg 0 = 0-55
seg 1 = 55-85
seg 2 = 85-150

jetzt kann ich die Segmente zwar ändern also Farbe und Effekt Geschwindigkeit bekomm ich geändert aber wie schalte ich die Segmente an und aus?

/win&SM=1&SS=1&S2=85&FX=11&R=0&G=0&B=255&W=0&SX=100

SM=     das Segment 1 aktivieren
SS=      Segment 1 aktivieren für Änderungen
S2=      ende vom Segment ... ?! => brauch ich das --> die Segmente sind doch schon Konfiguriert
FX=      Effekt DualScan
R=        rot
G=        grün
B=        blau
W=       weiß
SX=      Geschwindigkeit

hat mir jemand an Beispiel wie ich die Segmente einzeln schalten kann?!

Grüße
AET

AET_FHEM

#196
Habs hin bekommen läuft bei mir jetzt mit den json befehlen geht das!
diese kann man auch ganz einfach herauskopieren wenn man in der web Oberfläche den gewünschten Effekt und Farbe Geschwindigkeit einstellt und dann hinter die ip "/json/state" schreibt dann wird einem für jedes Segment der json code angezeigt!

Ich habe dann meine WLED in FHEM um die api Schnittstelle erweitert jetzt kann ich die befehle ganz einfach über FHEM absetzen!

masterpete23

Zitat von: AET_FHEM am 14 Januar 2022, 06:50:23
...

Ich habe dann meine WLED in FHEM um die api Schnittstelle erweitert jetzt kann ich die befehle ganz einfach über FHEM absetzen!
Wie genau hast du das gemacht?

rico5588

Hallo,

ich bin auch sehr begeistert von dem was hier entwickelt wurde, echt genial.
Könnte mir jemand Helfen beim Befehl helfen? Was muss man eingeben um Bsp. nur LED 1 anzuschalten und auf Farbe FFFFFF zu setzen.
Danke.
set MQTT2_WLED.... seg 1 FFFFFF  ???? (geht nicht)
Geht nicht gibt's nicht.
NUC-I3+Proxmox, Fritzbox 7590 AX, Synology DS414
Dimplex Wärmepumpe, Lüftungsanlage, Solarlog 1200
HM,IT,Lacross,EspEasy,Modbus,MQTT2, Freund von Shelly

Icebear

Hallo,
ich benutze das Template mit Google Home. Leider gelingt es mir nicht, das Brightness funktioniert. Der aktuelle Wert wird nicht angezeigt und ist auch nicht wählbar.

Und hat es wer hinbekommen, das ich ein Preset wählbar machen kann ?

lg.
Holger
Raspberry PI mod B (Wheezy), Fhem 5.4, CUL868, CUL433 , RfxTrx, HM-USB-CFG2, Wlan, HomeEasy, IT, FS20, TFA, HomeMatic, Oregon Scientific, HMLand auf Fritzbox
Raspberry PI mod B (RaspBMC)

Beta-User

Zitat von: Icebear am 14 März 2022, 22:32:29
Und hat es wer hinbekommen, das ich ein Preset wählbar machen kann ?
Zwar keine unmittelbare Antwort auf deine Fragen...

Wäre es nicht sinnvoll, statt der "preset.*"-Setter "scene"-Befehle anzubieten (anaog HUEDevice)? Zumindest RHASSPY würde daraus sprechbare Anweisungen generieren können...

(Dass brightness von der "großen Lösung" nicht als setter erkannt wird, finde ich seltsam).
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

lucca111

Hallo und frohe Ostern erstmal,

ich habe 4 Verschiedene WLED-Ketten jetzt erfolgreich über MQTT in mein FHEM Project einbinden Können.
Das funktionierte mit dem mqtt2.template super gut. In der Weboberfläche von WLED gibt es einen Sync Button
den ich gerne über FHEM schalten möchte. Ist das irgendwie möglich?



gruß Lucca

lucca111


Ich bin nicht immer der schnellste aber habe es endlich selbst gefunden.
Für die Cracks hier natürlich kein Ding aber für alle Rookies die wie ich kämpfen ...

set "myWLED" apiraw SN=1  (sync send einschalten)
set "myWLED" apiraw SN=0  (sync send ausschalten)


Quelle: https://github.com/Aircoookie/WLED/wiki/HTTP-request-API/016cb11efcf27dbd9d288d2c57b262b233a14b1f





TomLee

#203
Kann mir irgendwer zeigen wie man eine transition-Zeit beim einschalten mitgibt, ich verstehs/komm bis jetzt nicht drauf und weiter.

Gruß

Thomas

TomLee

Man kann einen default Wert unter LED-Preferences-->Transitions->Transition Time angeben, wäre auch OK für mich, bleibt trotzdem die Frage bei mir ob man über das MQTT2-Device diesen Wert überschreiben/mitgeben kann. Aus der Doku werd ich, wie gesagt, nicht schlauer.

ComputerZOO

Zitat von: TomLee am 30 September 2022, 21:56:13
Kann mir irgendwer zeigen wie man eine transition-Zeit beim einschalten mitgibt, ich verstehs/komm bis jetzt nicht drauf und weiter.

Gruß

Thomas

Hi, ich übergebe den Wert im setList folgendermaßen:
off-timer:selectnumbers,0,1,120,0,lin tele/$DEVICETOPIC/api NT=0&NL=$EVTPART1&NF=1

TomLee

Spricht was dagegen die IP, zur weiteren Verwendung bspw. in der DeviceOverview, im Template in ein Reading zu schreiben ?

99_attrT_WLED_Utils.pm:
Zitat
...
  my $io = InternalVal($dev,'LASTInputDev',AttrVal($dev,'IODev',InternalVal($dev,'IODev',undef)->{NAME})) // return defined $event ? $c : undef;
  my $ip = InternalVal($dev,$io.'_CONN',ReadingsVal($dev,'ip', undef)) =~ m/(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/x ? $1 : return defined $event ? $c : undef;
  HttpUtils_NonblockingGet({
    url=>"http://$ip/json",
    callback=>sub($$$){
      my ($hash,$err,$data) = @_;
      WLED_setReadings($dev,$data,$ip);
    }
  });
  return defined $event ? $c : undef;
}

sub WLED_setReadings {
  my $dev  = shift // return;
  my $data = shift // return;
  my $ip = shift // return;
  my $fx   = $data =~  m/effects..\[([^[]*?)]/x ? WLED_subst($1) : '';
  my $pl   = $data =~ m/palettes..\[([^[]*?)]/x ? WLED_subst($1) : '';
  my $hash = $defs{$dev};
  my @f    = split m{,}, $fx;
  my @p    = split m{,}, $pl;
  readingsBeginUpdate($hash);
  readingsBulkUpdate($hash,'effectname',$f[ReadingsNum($dev,'effect',0)]);
  readingsBulkUpdate($hash,'palettename',$p[ReadingsNum($dev,'palette',0)]);
  readingsBulkUpdate($hash,'ip',$ip);
  readingsEndUpdate($hash,1);
  readingsBeginUpdate($hash);
  readingsBulkUpdateIfChanged($hash,'.effectscount',(scalar @f)-1);
  readingsBulkUpdateIfChanged($hash,'.effects',$fx);
  readingsBulkUpdateIfChanged($hash,'.palettescount',(scalar @p)-1);
  readingsBulkUpdateIfChanged($hash,'.palettes',$pl);
  readingsEndUpdate($hash,0);
  return;
...
}

psycho160

Hi,

wenn ich übers WLED Template mit dem Brightness-Schieberegler die Helligkeit verstelle bekomme ich im Fhem Log folgenden Eintrag:

PERL WARNING: Argument "set 200" isn't numeric in numeric lt (<) at FHEM/Color.pm line 508.

Mir ist aufgefallen, dass das Reading für den Bruchteil einer Sekunde den Wert "set 200" annimmt und dann sofort auf 200 wechselt. 200 ist in meinem Beispiel der Wert den der Schieberegler übergibt. Im WLED wird die gewünschte Helligkeit aber korrekt übernommen.

Kann man das kurzzeitige "set" aus dem Reading irgendwie blockieren?
- 2013@FHEM - 2020 Setup: Pi 4 4GB Systeme: Shelly, Tasmota, Zigbee und mittlerweile nur noch wenig Homematic. Entwicker von: tado-FHEM Modul (perlcritic 3 ^^)(https://git.wolfmajer.at/Public/FHEM-Tado)

Beta-User

Zitat von: psycho160 am 23 Oktober 2022, 20:05:32
Kann man das kurzzeitige "set" aus dem Reading irgendwie blockieren?
Nicht wirklich geschickt. Aber man kann Color.pm patchen: https://forum.fhem.de/index.php/topic,123614.msg1182727.html#msg1182727
(Ich muss justme1968 dazu nochmal anhauen).
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

psycho160

ZitatAber man kann Color.pm patchen: https://forum.fhem.de/index.php/topic,123614.msg1182727.html#msg1182727

Stimmt ist der gleiche Fehler, hatte ich mit der Suche nicht gefunden. Hoffe dein Patch findet seinen Weg ins Modul  ;) ::)
- 2013@FHEM - 2020 Setup: Pi 4 4GB Systeme: Shelly, Tasmota, Zigbee und mittlerweile nur noch wenig Homematic. Entwicker von: tado-FHEM Modul (perlcritic 3 ^^)(https://git.wolfmajer.at/Public/FHEM-Tado)