FHEM Forum

FHEM - Anwendungen => Beleuchtung => Thema gestartet von: Dlay am 13 März 2024, 19:54:27

Titel: [GELÖST] WLED als Display nutzen
Beitrag von: Dlay am 13 März 2024, 19:54:27
Moin,

seit einiger Zeit kann WLED mit 2D Matrix-Displays z.b. 8x32 WS2812 umgehen.
Ebenfalls existiert bereits ein MQTT2 Modul für WLED.

Über diese Funktion (mit meinem Gerätenamen)
set mqtt2_wled_display seg_name_0 <Text>

Lassen sich auch beliebige Texte ausgeben.
Nun möchte ich aber gern wissen, was ich tun muss, damit z.b. die aktuelle Temperatur eines Temperatur-Sensors angezeigt wird.

Oder noch besser, wie kann man es erreichen, dass sich verschiedene Werte über Zeit abwechselnd auf dem Display zeigen?

Nach langer Suche im Netz und im Forum bin ich nicht fündig geworden.
Hat jemand schon so etwas realisiert?

Viele Grüße
Titel: Aw: WLED als Display nutzen
Beitrag von: TomLee am 14 März 2024, 21:04:09
Hallo,

ZitatNun möchte ich aber gern wissen, was ich tun muss, damit z.b. die aktuelle Temperatur eines Temperatur-Sensors angezeigt wird.


Oder noch besser, wie kann man es erreichen, dass sich verschiedene Werte über Zeit abwechselnd auf dem Display zeigen?

Eine von vielen Möglichkeiten das anzugehen:

Mehrere setter mit fixem Text in setlist ergänzen/definieren:

  segnamev0:noArg {my $v=ReadingsNum('HF_Aussensensor_Vorderhaus','temperature',-99);return qq(wled/55da2c/api {"seg":[{"id":0,"n":"Aussen $v °C"]}})}
  segnamev1:noArg {my $v=ReadingsNum('DG_Innensensor_Dach_Hinterhaus','temperature',-99);return qq(wled/55da2c/api {"seg":[{"id":0,"n":"Dach1 $v °C"]}})}
  segnamev2:noArg {my $v=ReadingsNum('DG_Innensensor_Dach_Vorderhaus','temperature',-99);return qq(wled/55da2c/api {"seg":[{"id":0,"n":"Dach2 $v °C"]}})}

Und ein at, für die zufällige Wiedergabe:
defmod MeineAktion at +*00:00:30 {my @arr=qw(segnamev0 segnamev1 segnamev2);;fhem('set MQTT2_WLED_TV '.$arr[int(rand(3))])}
Thomas
Titel: Aw: WLED als Display nutzen
Beitrag von: Dlay am 14 März 2024, 23:01:22
Hallo TomLee,

der erste Teil funktioniert prima, sofern ich die jeweiligen Eintrag über die setList auswähle.

Das at schlägt mit folgender Fehlermeldung fehl:
PERL WARNING: Use of uninitialized value within @arr in concatenation (.) or string at (eval 89009) line 1.
Ok, ich hatte nur zwei anzuzeigende Werte definiert. Daher muss dann auch der Wert in $arr[int(rand(2))] geändert werden.

Dann zeigt mir das Log zwar brav an, wann die nächste Umschaltzeit ansteht, aber es passiert dann nichts. Sprich, die Anzeige wird nicht umgeschaltet.

Hast du eine Idee?
Titel: Aw: WLED als Display nutzen
Beitrag von: Dlay am 14 März 2024, 23:25:28
Ok, hat sich erledigt. Funktioniert bestens.

Ich habe bei der Anpassung an dieser Stelle (^):
fhem('set mqtt2_wled_display^'.
Das Leerzeichen aus deiner Zeile weggelassen. Schon ging es nicht mehr.

Vielen Dank!