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

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 24485
Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
« Antwort #105 am: 29 Juni 2021, 17:48:42 »
Zitat
Bei "echtem LWT" ist es so, dass die "offline"-Meldung vom Server (!) erzeugt (genauer: dann ausgeliefert) wird, wenn sich der Client nicht rechtzeitig - wie angekündigt - meldet.
Noch etwas genauer :)
Das vom Client hinterlegte LWT wird vom Server publiziert (publish), wenn die Verbindung zum Client unterbrochen ist.
Die Verbindung kann auch vom Server beendet werden, wenn der Client sich nicht an seinem keepalive Versprechen haelt.

Offline TomLee

  • Hero Member
  • *****
  • Beiträge: 3565
  • ... wer sät, der erntet ...
Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
« Antwort #106 am: 30 Juni 2021, 01:44:32 »
Sry, das mit dem LWT hatte ich mir nicht richtig angeschaut (eigentlich war ich auf dem Weg zur Dusche und dann schnell, schnell mal am Controller gespielt wegen der Frage).
Es erfolgt doch ein offline nach Zeit X, also erster Fehler war das ich länger hätte warten sollen und zweiter Denkfehler das ich FHEMWEB hätte im Browser aktualisieren müssen (weil ich eine Liste von Readings in eor angegeben habe ohne LWT siehe #101)  ::)

Zu der Frage :
Zitat
wie bringe ich den Status dazu mir den Online Status auch anzuzeigen? Wie bei den anderen MQTT2 auch?

Mit der farbigen Glühlampe könnte man es so lösen (ist nicht von mir, ist angepasst abgekupfert) und gefällt mir nicht, da bei Auswahl einer Farbe Code kurz angezeigt wird statt der Glühlampe (schließe aber nicht aus das mans auch anders/richtig/ohne dieses Verhalten lösen kann):

attr <DEVICENAME> devStateIcon {my $os = ReadingsVal($name,"LWT","offline") eq "online" ? "gruen" : "rot";;\
my $cd = Color::devStateIcon( $name, "rgb", "rgb", "brightness", "state" );;\
$cd =~ s/.*:([^:]+):.*/$1/;;\
'<div>'.FW_makeImage("10px-kreis-".$os)."<a href=\"/fhem?cmd.dummy=set $name toggle&XHR=1\">".FW_makeImage($cd)."</a></div>"}


Oder so, ganz simpel, ohne der farbigen Glühlampe dann halt:
attr <DEVICENAME> devStateIcon online:10px-kreis-gruen offline:10px-kreis-rot
attr <DEVICENAME> stateFormat LWT\
state

Zum ausprobieren den gezeigten Code wie er ist einfach in die Kommandozeile werfen, nur <DEVICENAME> ersetzen.

edit:

das Beispiel mit stateFormat kann man doch nicht einfach so über die Kommandozeile eingeben.
Das dann entweder über das + => Raw-Editor eingeben oder unten in irgendeinem Device über Raw definition den Raw-Editor aufrufen, den kompletten Code entfernen und den gezeigten Code einsetzen und mit execute commands bestätigen.

nochmal edit:

Bei dem Beispiel mit der farbigen Glühlampe kann man die div auch weglassen:

attr <DEVICENAME> devStateIcon {my $os = ReadingsVal($name,"LWT","offline") eq "online" ? "gruen" : "rot";;\
my $cd = Color::devStateIcon( $name, "rgb", "rgb", "brightness", "state" );;\
$cd =~ s/.*:([^:]+):.*/$1/;;\
FW_makeImage("10px-kreis-".$os)."<a href=\"/fhem?cmd.dummy=set $name toggle&XHR=1\">".FW_makeImage($cd)."</a>"}
« Letzte Änderung: 30 Juni 2021, 13:15:36 von TomLee »

Offline australien

  • Full Member
  • ***
  • Beiträge: 295
Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
« Antwort #107 am: 10 September 2021, 13:40:42 »
Hallo zusammen,

ich würde gerne mein Wled via MQTT2 oder html einen kompletten neuen Satz an Werten übergeben.

Und zwar brightness, effect, intensity, palette, rgb, speed und state also alles, um bestimmte Effekte einzuschalten.


Kann ich das mit einem set Befehl machen?
Wenn ja, wie?
Wenn nein, wie dann? myUtils?

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

Offline TomLee

  • Hero Member
  • *****
  • Beiträge: 3565
  • ... wer sät, der erntet ...
Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
« Antwort #108 am: 10 September 2021, 14:01:23 »
Hallo,

an bspw. dem setList-Eintrag flash in #101 kannst dir ableiten wie man sowas in setList umsetzen könnte.

Gruß

Thomas

Offline australien

  • Full Member
  • ***
  • Beiträge: 295
Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
« Antwort #109 am: 10 September 2021, 14:25:03 »
das habe ich schon gesehen, aber kann es nicht lesen ;)

die setList ist ja im template schon vorhanden:


on:noArg wled/garage on
  off:noArg wled/garage off
  toggle:noArg wled/garage t
  rgb:colorpicker,RGB wled/garage/col #$EVTPART1
  brightness:colorpicker,BRI,0,1,255 wled/garage
  speed:colorpicker,BRI,0,1,255 wled/garage/api SX=$EVTPART1
  intensity:colorpicker,BRI,0,1,255 wled/garage/api IX=$EVTPART1
  palette:selectnumbers,0,1,46,0,lin wled/garage/api FP=$EVTPART1
  effect:selectnumbers,0,1,101,0,lin wled/garage/api FX=$EVTPART1
  loadPreset:selectnumbers,0,1,3,0,lin wled/garage/api PL=$EVTPART1
  dimup:noArg wled/garage/api A=~10
  dimdown:noArg wled/garage/api A=~-10

ich will jetzt folgendes schalten:
brightness 255
effect 11
intensity 125
palette 2
rgb FF0000
speed 240
state on

das ganze will ich auch noch mit 2 anderen Einstellungen machen, also insgesamt 3 voreinstellungen per set MQTT senden.

wie mach ich das?

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

Offline TomLee

  • Hero Member
  • *****
  • Beiträge: 3565
  • ... wer sät, der erntet ...
Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
« Antwort #110 am: 10 September 2021, 15:24:31 »
So

deinsettername:noArg {fhem("set $NAME brightness 255;set $NAME effect 11;set $NAME intensity 125;set $NAME palette 2;set $NAME rgb FF0000;set $NAME speed 240;set $NAME on")}
?
« Letzte Änderung: 10 September 2021, 17:11:00 von TomLee »

Offline australien

  • Full Member
  • ***
  • Beiträge: 295
Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
« Antwort #111 am: 10 September 2021, 16:03:34 »
cool, genau so.

jetzt verstehe ich auch den Beitrag #101

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

 

decade-submarginal