WLED Device mit mehreren Seqmenten

Begonnen von stephan20, 01 Juni 2023, 00:05:40

Vorheriges Thema - Nächstes Thema

stephan20

Hi,

ich stehe mal wieder auf dem Schlauch. Habe ein MQTT2 Device mit dem WLED Template angelegt. Das ganze lässt sich global auch gut steuern. Wie bekomme ich denn nur das in WLED angelegte 1. oder 2. Segment gesteuert? Segment 1 sind die LEDs 1 bis 159, Segment 2 160 bis 300.

Hier falls benötigt ein List meines Devices.
Internals:
   CFGFN     
   CID        WLED_0278f0
   DEF        WLED_0278f0
   DEVICETOPIC MQTT2_WLED_0278f0
   FUUID      6477c027-f33f-60ca-d535-2b0f7fe24ca13591
   IODev      Mosquitto2
   LASTInputDev Mosquitto2
   MSGCNT     53
   Mosquitto2_MSGCNT 53
   Mosquitto2_TIME 2023-05-31 23:58:28
   NAME       MQTT2_WLED_0278f0
   NR         17348
   STATE      on
   TYPE       MQTT2_DEVICE
   OLDREADINGS:
   READINGS:
     2023-05-31 23:58:28   LWT             online
     2023-05-31 23:58:28   api             <?xml version="1.0" ?><vs><ac>255</ac><cl>255</cl><cl>13</cl><cl>37</cl><cs>0</cs><cs>0</cs><cs>0</cs><ns>0</ns><nr>1</nr><nl>0</nl><nf>1</nf><nd>60</nd><nt>0</nt><fx>0</fx><sx>213</sx><ix>87</ix><fp>46</fp><wv>0</wv><ws>0</ws><ps>0</ps><cy>0</cy><ds>WLED</ds><ss>0</ss></vs>
     2023-05-31 23:49:27   attrTemplateVersion 20200522 or prior
     2023-05-31 23:58:28   brightness      255
     2023-05-31 23:58:11   effect          0
     2023-05-31 23:58:11   intensity       87
     2023-05-31 23:58:11   palette         46
     2023-05-31 23:58:28   rgb             FF0D25
     2023-05-31 23:58:11   speed           213
     2023-05-31 23:58:28   state           on
Attributes:
   IODev      Mosquitto2
   alias      Indirekte Beleuchtung Decke
   comment    For questions about the use of different widgets for color selection see discussion at https://forum.fhem.de/index.php/topic,98880.msg995308.html
   devStateIcon {Color::devStateIcon( $name, "rgb", "rgb", "brightness", "state" )}
   eventMap   /effect 0:Solid/effect 2:Breathe/effect 63:Pride/effect 48:Police/
   genericDeviceType light
   homebridgeMapping Brightness=brightness::brightness,maxValue=100,factor=0.39216,delay=true
   icon       hue_filled_iris
   model      wled_controller
   readingList wled/0278f0/status:.* LWT
  wled/0278f0/g:.* brightness
  wled/0278f0/g:.* { $EVENT ? {"state"=>"on"} : {"state"=>"off"} }
  wled/0278f0/c:.* { {"rgb"=>substr("$EVENT",1,6)} }
  wled/0278f0/v:.* api
  wled/0278f0/v:.* { $EVENT =~ m,(?<=<sx>)([\d]+)(?=<\/sx>), ? $1 eq ReadingsVal($NAME,"speed","unknown") ? return : {"speed"=>$1} : return; }
  wled/0278f0/v:.* {$EVENT =~ m,(?<=<ix>)([\d]+)(?=<\/ix>), ? $1 eq ReadingsVal($NAME,"intensity","unknown") ? return : {"intensity"=>$1} : return }
  wled/0278f0/v:.* {$EVENT =~ m,(?<=<fp>)([\d]+)(?=<\/fp>), ? $1 eq ReadingsVal($NAME,"palette","unknown") ? return : {"palette"=>$1} : return }
  wled/0278f0/v:.* {$EVENT =~ m,(?<=<fx>)([\d]+)(?=<\/fx>), ? $1 eq ReadingsVal($NAME,"effect","unknown") ? return :{"effect"=>"$1"} : return }
   room       60_Bad,autocreate
   setList    on:noArg wled/0278f0 on
  off:noArg wled/0278f0 off
  toggle:noArg wled/0278f0 t
  rgb:colorpicker,RGB wled/0278f0/col #$EVTPART1
  brightness:colorpicker,BRI,0,1,255 wled/0278f0
  speed:colorpicker,BRI,0,1,255 wled/0278f0/api SX=$EVTPART1
  intensity:colorpicker,BRI,0,1,255 wled/0278f0/api IX=$EVTPART1
  palette:selectnumbers,0,1,46,0,lin wled/0278f0/api FP=$EVTPART1
  effect:selectnumbers,0,1,101,0,lin wled/0278f0/api FX=$EVTPART1
  loadPreset:selectnumbers,0,1,3,0,lin wled/0278f0/api PL=$EVTPART1
  dimup:noArg wled/0278f0/api A=~10
  dimdown:noArg wled/0278f0/api A=~-10
   setStateList on off toggle
   webCmd     rgb:brightness:Solid:Breathe:Pride:Police

Vielen Dank aus Oberhausen

sumsum

#1
Hallo,

ich habe leider nicht die Erfahrung mit MQTT und WLED, aber in der doc steht die vollständigste Implementierung der APIs von WLED ist die von JSON. Via MQTT kann man auch ein JSON String senden (DOC[mqttDeviceTopic]/api
-> Send an API call (using the HTTP API or, since 0.11, JSON API syntax). You may omit the "win" and just send e.g. "FX=73"
Schau mal hier JSON API unter "Per-segment individual LED control".
Ich habe bei mir alle WLED Lampen mit HTTPMOD implementiert. Lass mich wissen, ob Du ein Beispiel brauchst.

Gruss

bartman121

naja, ich hatte einen Anwedungsfall wo einzelne LEDs in einer anderen Farbe leuchten sollten, das ganze zeigt den Fortschritt meines Geschirrspülers in der Küche an, die roten LEDs wandern halt durch.

ich benutze dazu folgenden Befehl:
set $device seg 5,10 255,0,0
das heißt: LED 6 (es wird ab 0 gezählt) bis LED 11 auf Rot

Ich denke das kannst du so adaptieren .... wenn du es aber einfach haben willst, dann lege dir presets in der WLED-Oberfläche an, die kannst du dann mit
set $device preset X aufrufen