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

Online stefanru

  • Sr. Member
  • ****
  • Beiträge: 760
Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
« Antwort #90 am: 18 September 2020, 11:42:19 »
Ja, ich benutze Mosquitto auf Raspberry und in FEHM den MQTT2_CLIENT, läuft wie geschnitten Brot :-)

Gruß,
Stefan

Offline freakadings

  • Full Member
  • ***
  • Beiträge: 109
Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
« Antwort #91 am: 26 Oktober 2020, 21:26:02 »
Hallo zusammen,
ich habe WLED per mqtt2_device über den mqtt2_client an Moquitto angebunden, nach ein bisschen Verwirrung was das Topic anging läuft auch alles perfekt mit FHEM :)
Danke dafür!

Ich habe jetzt versucht das ganze mit der Homebridge zu nutzen und scheinbar klappt da was mit den Werten nicht:
[10/26/2020, 9:05:47 PM] [FHEM] wled_test-brightness not a number: 0
[10/26/2020, 9:05:47 PM] [FHEM]     caching: On: false (as boolean; from 'off')
[10/26/2020, 9:05:49 PM] [FHEM] wled_test delaying command Brightness with value 100
[10/26/2020, 9:05:49 PM] [FHEM] wled_test: executing set cmd for On with value true
[10/26/2020, 9:05:49 PM] [FHEM]   executing: http://192.168.178.xxx:xxx/fhem?cmd=set%20wled_test%20on
  2020-10-26 21:05:49 caching: wled_test-state: set_on
  2020-10-26 21:05:49 caching: wled_test-brightness: 204
[10/26/2020, 9:05:49 PM] [FHEM] wled_test-brightness not a number: 204
  2020-10-26 21:05:49 caching: wled_test-state: on
[10/26/2020, 9:05:49 PM] [FHEM]     caching: On: true (as boolean; from 'on')
[10/26/2020, 9:05:50 PM] [FHEM] wled_test: executing set cmd for Brightness with value 100
  2020-10-26 21:05:50 caching: wled_test-brightness: 7d52ff
[10/26/2020, 9:05:50 PM] [FHEM]     caching: Brightness: 100 (as number; from '7d52ff')
[10/26/2020, 9:05:50 PM] [FHEM]   value converted to 7d52ff
[10/26/2020, 9:05:50 PM] [FHEM]   executing: http://192.168.178.xxx:xxx/fhem?cmd=set%20wled_test%20brightness%207d52ff
  2020-10-26 21:05:50 caching: wled_test-brightness: set
[10/26/2020, 9:05:50 PM] [FHEM] wled_test-brightness not a number: set
  2020-10-26 21:05:51 caching: wled_test-brightness: 7
[10/26/2020, 9:05:51 PM] [FHEM] wled_test-brightness not a number: 7
[10/26/2020, 9:05:53 PM] [FHEM] wled_test delaying command Brightness with value 88
[10/26/2020, 9:05:53 PM] [FHEM] wled_test: executing set cmd for On with value true
[10/26/2020, 9:05:53 PM] [FHEM]   executing: http://192.168.178.xxx:xxx/fhem?cmd=set%20wled_test%20on
  2020-10-26 21:05:53 caching: wled_test-state: set_on
[10/26/2020, 9:05:53 PM] [FHEM] wled_test delaying command Brightness with value 64
[10/26/2020, 9:05:53 PM] [FHEM] wled_test: executing set cmd for On with value true
[10/26/2020, 9:05:53 PM] [FHEM]   executing: http://192.168.178.xxx:xxx/fhem?cmd=set%20wled_test%20on
[10/26/2020, 9:05:53 PM] [FHEM] wled_test delaying command Brightness with value 57
[10/26/2020, 9:05:53 PM] [FHEM] wled_test: executing set cmd for On with value true
[10/26/2020, 9:05:54 PM] [FHEM]   executing: http://192.168.178.xxx:xxx/fhem?cmd=set%20wled_test%20on
[10/26/2020, 9:05:54 PM] [FHEM] wled_test: executing set cmd for Brightness with value 57
  2020-10-26 21:05:54 caching: wled_test-brightness: 472f91
[10/26/2020, 9:05:54 PM] [FHEM]     caching: Brightness: 56 (as number; from '472f91')
[10/26/2020, 9:05:54 PM] [FHEM]   value converted to 472f91
[10/26/2020, 9:05:54 PM] [FHEM]   executing: http://192.168.178.xxx:xxx/fhem?cmd=set%20wled_test%20brightness%20472f91
  2020-10-26 21:05:55 caching: wled_test-brightness: set
[10/26/2020, 9:05:55 PM] [FHEM] wled_test-brightness not a number: set
  2020-10-26 21:05:55 caching: wled_test-brightness: 216
[10/26/2020, 9:05:55 PM] [FHEM] wled_test-brightness not a number: 216
  2020-10-26 21:05:55 caching: wled_test-state: on
[10/26/2020, 9:05:55 PM] [FHEM]     caching: On: true (as boolean; from 'on')
[10/26/2020, 9:06:53 PM] [FHEM] wled_test: executing set cmd for Saturation with value 53
  2020-10-26 21:06:53 caching: wled_test-rgb: aN
[10/26/2020, 9:06:53 PM] [FHEM] wled_test-rgb not a number: aN
[10/26/2020, 9:06:53 PM] [FHEM] wled_test-rgb not a number: aN
[10/26/2020, 9:06:53 PM] [FHEM]   value converted to aN
[10/26/2020, 9:06:53 PM] [FHEM]   executing: http://192.168.178.xxx:xxx/fhem?cmd=set%20wled_test%20rgb%20aN
[10/26/2020, 9:06:53 PM] [FHEM] wled_test: executing set cmd for Hue with value 347
[10/26/2020, 9:06:53 PM] [FHEM]   converted value is unchanged
  2020-10-26 21:06:53 caching: wled_test-rgb: set aN
[10/26/2020, 9:06:53 PM] [FHEM] wled_test-rgb not a number: set aN
[10/26/2020, 9:06:53 PM] [FHEM] wled_test-rgb not a number: set aN
  2020-10-26 21:06:53 caching: wled_test-rgb: 00000A
[10/26/2020, 9:06:53 PM] [FHEM]     caching: Hue: 239 (as number; from '00000A')
[10/26/2020, 9:06:53 PM] [FHEM]     caching: Saturation: 100 (as number; from '00000A')
[10/26/2020, 9:06:55 PM] [FHEM] wled_test: executing set cmd for Saturation with value 95
  2020-10-26 21:06:55 caching: wled_test-rgb: aN
[10/26/2020, 9:06:55 PM] [FHEM]   value converted to aN
[10/26/2020, 9:06:55 PM] [FHEM]   executing: http://192.168.178.xxx:xxx/fhem?cmd=set%20wled_test%20rgb%20aN
[10/26/2020, 9:06:55 PM] [FHEM] wled_test-rgb not a number: aN
[10/26/2020, 9:06:55 PM] [FHEM] wled_test-rgb not a number: aN
[10/26/2020, 9:06:55 PM] [FHEM] wled_test: executing set cmd for Hue with value 303
[10/26/2020, 9:06:55 PM] [FHEM]   converted value is unchanged
  2020-10-26 21:06:55 caching: wled_test-rgb: set aN
[10/26/2020, 9:06:55 PM] [FHEM] wled_test-rgb not a number: set aN
[10/26/2020, 9:06:55 PM] [FHEM] wled_test-rgb not a number: set aN
[10/26/2020, 9:06:55 PM] [FHEM] wled_test: executing set cmd for Saturation with value 100
  2020-10-26 21:06:55 caching: wled_test-rgb: aN
[10/26/2020, 9:06:55 PM] [FHEM]   value converted to aN
[10/26/2020, 9:06:55 PM] [FHEM] wled_test-rgb not a number: aN
[10/26/2020, 9:06:55 PM] [FHEM] wled_test-rgb not a number: aN
[10/26/2020, 9:06:55 PM] [FHEM]   executing: http://192.168.178.xxx:xxx/fhem?cmd=set%20wled_test%20rgb%20aN
[10/26/2020, 9:06:55 PM] [FHEM] wled_test: executing set cmd for Hue with value 336
[10/26/2020, 9:06:55 PM] [FHEM]   converted value is unchanged
[10/26/2020, 9:07:04 PM] [FHEM] wled_test delaying command Brightness with value 72
[10/26/2020, 9:07:04 PM] [FHEM] wled_test: executing set cmd for On with value true
[10/26/2020, 9:07:04 PM] [FHEM]   executing: http://192.168.178.xxx:xxx/fhem?cmd=set%20wled_test%20on
  2020-10-26 21:07:04 caching: wled_test-state: set_on
[10/26/2020, 9:07:05 PM] [FHEM] wled_test: executing set cmd for Brightness with value 72
  2020-10-26 21:07:05 caching: wled_test-brightness: aN
[10/26/2020, 9:07:05 PM] [FHEM]   value converted to aN
[10/26/2020, 9:07:05 PM] [FHEM]   executing: http://192.168.178.xxx:xxx/fhem?cmd=set%20wled_test%20brightness%20aN
[10/26/2020, 9:07:05 PM] [FHEM] wled_test-brightness not a number: aN
  2020-10-26 21:07:05 caching: wled_test-brightness: set
[10/26/2020, 9:07:05 PM] [FHEM] wled_test-brightness not a number: set
  2020-10-26 21:07:05 caching: wled_test-brightness: 0
  2020-10-26 21:07:05 caching: wled_test-state: off
[10/26/2020, 9:07:05 PM] [FHEM]     caching: On: false (as boolean; from 'off')
[10/26/2020, 9:07:05 PM] [FHEM] wled_test-brightness not a number: 0
  2020-10-26 21:07:05 caching: wled_test-rgb: 00000A
[10/26/2020, 9:07:05 PM] [FHEM]     caching: Hue: 239 (as number; from '00000A')
[10/26/2020, 9:07:05 PM] [FHEM]     caching: Saturation: 100 (as number; from '00000A')
[10/26/2020, 9:07:15 PM] [FHEM] wled_test: executing set cmd for On with value true
[10/26/2020, 9:07:15 PM] [FHEM]   executing: http://192.168.178.xxx:xxx/fhem?cmd=set%20wled_test%20on
  2020-10-26 21:07:15 caching: wled_test-state: set_on
  2020-10-26 21:07:15 caching: wled_test-brightness: 216
  2020-10-26 21:07:15 caching: wled_test-state: on
[10/26/2020, 9:07:15 PM] [FHEM]     caching: On: true (as boolean; from 'on')
[10/26/2020, 9:07:15 PM] [FHEM] wled_test-brightness not a number: 216
[10/26/2020, 9:07:21 PM] [FHEM] wled_test: executing set cmd for Saturation with value 20
  2020-10-26 21:07:21 caching: wled_test-rgb: aN
[10/26/2020, 9:07:21 PM] [FHEM] wled_test-rgb not a number: aN
[10/26/2020, 9:07:21 PM] [FHEM] wled_test-rgb not a number: aN
[10/26/2020, 9:07:21 PM] [FHEM]   value converted to aN
[10/26/2020, 9:07:21 PM] [FHEM]   executing: http://192.168.178.xxx:xxx/fhem?cmd=set%20wled_test%20rgb%20aN
[10/26/2020, 9:07:21 PM] [FHEM] wled_test: executing set cmd for Hue with value 222
[10/26/2020, 9:07:21 PM] [FHEM]   converted value is unchanged
  2020-10-26 21:07:21 caching: wled_test-rgb: set aN
[10/26/2020, 9:07:21 PM] [FHEM] wled_test-rgb not a number: set aN
[10/26/2020, 9:07:21 PM] [FHEM] wled_test-rgb not a number: set aN
[10/26/2020, 9:07:22 PM] [FHEM] wled_test delaying command Brightness with value 56
[10/26/2020, 9:07:22 PM] [FHEM] wled_test: executing set cmd for On with value true
[10/26/2020, 9:07:22 PM] [FHEM]   executing: http://192.168.178.xxx:xxx/fhem?cmd=set%20wled_test%20on
  2020-10-26 21:07:22 caching: wled_test-state: set_on
[10/26/2020, 9:07:22 PM] [FHEM] wled_test delaying command Brightness with value 97
[10/26/2020, 9:07:22 PM] [FHEM] wled_test: executing set cmd for On with value true
[10/26/2020, 9:07:22 PM] [FHEM]   executing: http://192.168.178.xxx:xxx/fhem?cmd=set%20wled_test%20on
[10/26/2020, 9:07:23 PM] [FHEM] wled_test: executing set cmd for Brightness with value 97
  2020-10-26 21:07:23 caching: wled_test-brightness: aN
[10/26/2020, 9:07:23 PM] [FHEM]   value converted to aN
[10/26/2020, 9:07:23 PM] [FHEM]   executing: http://192.168.178.xxx:xxx/fhem?cmd=set%20wled_test%20brightness%20aN
[10/26/2020, 9:07:23 PM] [FHEM] wled_test-brightness not a number: aN
  2020-10-26 21:07:23 caching: wled_test-brightness: set
[10/26/2020, 9:07:23 PM] [FHEM] wled_test-brightness not a number: set
  2020-10-26 21:07:23 caching: wled_test-brightness: 0
  2020-10-26 21:07:23 caching: wled_test-state: off
[10/26/2020, 9:07:23 PM] [FHEM]     caching: On: false (as boolean; from 'off')
[10/26/2020, 9:07:23 PM] [FHEM] wled_test-brightness not a number: 0


Lustigerweise wird die Lampe auch dunkler, wenn man Siri sagt, dass sie sie heller machen soll?!
Das Attribut homebridgeMapping ist ja per default schon gesetzt, kann es sein dass bei dem Mapping was nicht stimmt?
Liegt das an mir?
Ich habe aber außer der Raumzuweisung und dem Sirinamen nichts geändert.

defmod wled_test MQTT2_DEVICE
attr wled_test DbLogExclude .*
attr wled_test IODev mqtt2_client
attr wled_test alias wled_test
attr wled_test 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
attr wled_test devStateIcon {Color::devStateIcon( $name, "rgb", "rgb", "brightness", "state" )}
attr wled_test eventMap /effect 0:Solid/effect 2:Breathe/effect 63:Pride/effect 48:Police/
attr wled_test genericDeviceType light
attr wled_test homebridgeMapping Brightness=brightness::brightness,maxValue=100,factor=0.39216,delay=true
attr wled_test icon hue_filled_iris
attr wled_test model wled_controller
attr wled_test readingList wled/badspiegel/status:.* LWT\
  wled/badspiegel/g:.* brightness\
  wled/badspiegel/g:.* { $EVENT ? {"state"=>"on"} : {"state"=>"off"} }\
  wled/badspiegel/c:.* { {"rgb"=>substr("$EVENT",1,6)} }\
  wled/badspiegel/v:.* api\
  wled/badspiegel/v:.* { $EVENT =~ m,(?<=<sx>)([\d]+)(?=<\/sx>), ? $1 eq ReadingsVal($NAME,"speed","unknown") ? return : {"speed"=>$1} : return;; }\
  wled/badspiegel/v:.* {$EVENT =~ m,(?<=<ix>)([\d]+)(?=<\/ix>), ? $1 eq ReadingsVal($NAME,"intensity","unknown") ? return : {"intensity"=>$1} : return }\
  wled/badspiegel/v:.* {$EVENT =~ m,(?<=<fp>)([\d]+)(?=<\/fp>), ? $1 eq ReadingsVal($NAME,"palette","unknown") ? return : {"palette"=>$1} : return }\
  wled/badspiegel/v:.* {$EVENT =~ m,(?<=<fx>)([\d]+)(?=<\/fx>), ? $1 eq ReadingsVal($NAME,"effect","unknown") ? return :{"effect"=>"$1"} : return }
attr wled_test room System->Homekit,System->Test
attr wled_test setList on:noArg wled/badspiegel on\
  off:noArg wled/badspiegel off\
  toggle:noArg wled/badspiegel t\
  rgb:colorpicker,RGB wled/badspiegel/col #$EVTPART1\
  brightness:colorpicker,BRI,0,1,255 wled/badspiegel\
  speed:colorpicker,BRI,0,1,255 wled/badspiegel/api SX=$EVTPART1\
  intensity:colorpicker,BRI,0,1,255 wled/badspiegel/api IX=$EVTPART1\
  palette:selectnumbers,0,1,46,0,lin wled/badspiegel/api FP=$EVTPART1\
  effect:selectnumbers,0,1,101,0,lin wled/badspiegel/api FX=$EVTPART1\
  loadPreset:selectnumbers,0,1,3,0,lin wled/badspiegel/api PL=$EVTPART1\
  dimup:noArg wled/badspiegel/api A=~10\
  dimdown:noArg wled/badspiegel/api A=~-10
attr wled_test setStateList on off toggle
attr wled_test siriName Badspiegel
attr wled_test webCmd rgb:brightness:Solid:Breathe:Pride:Police


(Funfact am Rande: Man sollte nicht versuchen über Siri den Effekt "police" aufzurufen...)

Offline TomLee

  • Hero Member
  • *****
  • Beiträge: 4108
  • ... wer sät, der erntet ...
Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
« Antwort #92 am: 04 Januar 2021, 13:24:05 »
Mit dem u. a. userReadings erhält man zwei zusätzliche Readings (effectname (aktuell gewählter Effekt) und effectnumber (Anzahl der verfügbaren Effekte)), ich weiß das braucht jeder  ::)

Ich mein festgestellt zu haben das der Controller nicht immer unter dem Hostnamen erreichbar ist, hab aber auch keinen Kondensator und Widerstand verbaut, kann nicht ausschliessen das es daran liegt, über IP hab ich keine Erreichbarkeitsprobleme.

Bin mir nicht sicher ob userReadings mit setreading der richtige Weg ist, klappt aber alles, es gibt Events beim auswählen eines Effekts bei effectname und effectnumber mit setreading.

Wenn man mit periodicCmd in period auf Events reagieren könnte, wär es auch über einen getter umsetzbar und cool.

Schade das man in FHEM-Widget kein Perl verwenden kann, hier wär mit effectnumber sowas möglich das der setter nicht statisch ist:

effect:selectnumbers,0,1,{my $en=ReadingsVal($NAME,"effectnumber","0");$en.",0,lin wled/538e36/api FX=".$EVTPART1}
effectname:effect.* {my $h="http://".InternalVal($NAME,'CID','0')."/json";$h=~s/_/-/g; HttpUtils_NonblockingGet( {url=>"$h", callback=>sub($$$) { my ($hash, $err, $data) = @_; $data =~ m,effects..\[([^[]*?)],;my $s=$1;$s=~s/"//g;$s=~ s/\n//g;my @a= split(/,/ , $s);my $i = ReadingsNum($NAME,"effect","1");;my $an=@a;$a=$a[$i];fhem("setreading $NAME effectname $a;setreading $NAME effectnumber $an")}
Kann das mal wer testen ?

Gruß

Thomas


Online stefanru

  • Sr. Member
  • ****
  • Beiträge: 760
Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
« Antwort #93 am: 05 Januar 2021, 17:52:54 »
Hi TomLee,

teste es gerne. Bin mir gerade nicht ganz sicher wo isch das eintragen soll?
Bei userReadings oder als eventMap? Sorry für die blöde Frage.

@frakadings:
Ich habe nur Alexa. Folgendes Mapping wurde bei mir erstellt
homebridgeMapping Brightness=brightness::brightness,maxValue=100,factor=0.39216,delay=true
Das hast du auch. Wie kannst du damit Effekte steuern?

Das Problem das du beschreibst habe ich auch. Alexa kann zwar an und ausschalten der rest geht nicht richtig.
Seltsame Werte erscheinen im WLED Device:
brightness  set 
effect           0   
intensity    128 
palette          0 
rgb        set aN

Bin mir nicht ganz sicher. Eventuell sollte nur über RGB gesteuert werden.
Wenn ich das ganze HomebridgeMapping entferne und Alexa neu starte dann funktioniert es einwandfrei.
Ich glaube dann wird nur RGB als Steuerungsreading genommen.
An/Aus geht natürlich auch.

Gruß,
Stefan


Offline TomLee

  • Hero Member
  • *****
  • Beiträge: 4108
  • ... wer sät, der erntet ...
Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
« Antwort #94 am: 05 Januar 2021, 18:31:30 »
ja, in userReadings.

Bei mir klappt das mit dem Hostnamen nur eine unbestimmte Zeit lang nach einem restart des Controllers.

Wenn ich die IP nehme klappts immer:

effectname:effect.* {my $h="http://192.168.XXX.XX/json";$h=~s/_/-/g; HttpUtils_NonblockingGet( {url=>"$h", callback=>sub($$$) { my ($hash, $err, $data) = @_; $data =~ m,effects..\[([^[]*?)],;my $s=$1;$s=~s/"//g;$s=~ s/\n//g;my @a= split(/,/ , $s);my $i = ReadingsNum($NAME,"effect","1");;my $an=@a;$a=$a[$i];fhem("setreading $NAME effectname $a;setreading $NAME effectnumber $an")} }) }

Offline TomLee

  • Hero Member
  • *****
  • Beiträge: 4108
  • ... wer sät, der erntet ...
Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
« Antwort #95 am: 05 Januar 2021, 18:51:33 »
Ich nutze eigentlich nur einen Effekt und das auch erst seit letzter Woche, mit Alexa zu steuern bin ich noch gar nicht auf die Idee gekommen.

Hab ich jetzt mal ausprobiert, aber nicht mit alexa-fhem sondern mit dem "Emulator" der unter Config->Sync Interfaces->Alexa Voice Assistant zu aktivieren ist.

Damit klappt ein/aus, Helligkeit und Farbe.

Ich meine wenn man die Helligkeit mit alexa-fhem steuern möchte dann müssten wir einfach nur den brightness-setter in pct umbenennen, test ich aber später auch mal.

Was die Steuerung der Farben mit alexa-fhem angeht, halt ich mich raus das mir zu hoch :P
« Letzte Änderung: 05 Januar 2021, 19:11:43 von TomLee »

Offline TomLee

  • Hero Member
  • *****
  • Beiträge: 4108
  • ... wer sät, der erntet ...
Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
« Antwort #96 am: 05 Januar 2021, 19:46:53 »
das mit dem pct-setter war Käse.

Was mir jetzt aufgefallen ist das mit dem homebridgemapping merkwürdigerweise die Sättigung statt brightness gesteuert wird.

Brightness=brightness::brightness,maxValue=100,factor=0.39216,delay=true
Das hab ich daran bemerkt das sich der Schieberegler bewegt hat rechts vom RGB-Widget als das  "geöffnet" war.

100 % über Alexa/APP gesteuert sind 100% Sättigung, 0 % sind 0% Sättigung  :o

Online stefanru

  • Sr. Member
  • ****
  • Beiträge: 760
Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
« Antwort #97 am: 06 Januar 2021, 17:03:53 »
Hi TomLee,

ja das mit der Namensauflösung habe ich bei mir auch.
Das mit brightness und saturation liegt glaube ich daran dass die Übergabe an WLED im Json dann doch nur der RGB String sein sollte.
Wie gesagt ohne Mapping geht es bei mir einwandfrei. Sowohl Farbe als auch Helligkeit.
Ich schätze dass dann nur RGB übergeben wird.
Ich verwende aber auch das WLED Interne Alexa und nicht FHEM.

Habe deine Zeile bei mir als:
userReadings
effectname:effect.* {my $h="http://192.168.69.38/json";$h=~s/_/-/g; HttpUtils_NonblockingGet( {url=>"$h", callback=>sub($$$) { my ($hash, $err, $data) = @_; $data =~ m,effects..\[([^[]*?)],;my $s=$1;$s=~s/"//g;$s=~ s/\n//g;my @a= split(/,/ , $s);my $i = ReadingsNum($NAME,"effect","1");;my $an=@a;$a=$a[$i];fhem("setreading $NAME effectname $a;setreading $NAME effectnumber $an")} }) }
eingetragen.

Was sollte da denn passieren?
Bei mir ist kein Reading dazu gekommen.

Gruß,
Stefan

Offline TomLee

  • Hero Member
  • *****
  • Beiträge: 4108
  • ... wer sät, der erntet ...
Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
« Antwort #98 am: 06 Januar 2021, 20:52:40 »
Nachdem du einen Effekt ausgewählt hast mit dem effect-setter sollten die zwei erwähnten neuen Readings erstellt werden, natürlich musst du FHEMWEB beim ersten mal im Browser aktualisieren, danach sollte sich nach jeder Auswahl eines Effekts das Reading effectname aktualisieren und den aktuell gewählten Effektnamen beinhalten und auch das Reading effectnumber (abhängig von den gesetzten event-* bzw. timestamp.*-Attributen)


Online stefanru

  • Sr. Member
  • ****
  • Beiträge: 760
Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
« Antwort #99 am: 07 Januar 2021, 00:19:34 »
Hi TomLee,

ok jetzt verstehe ich.
Ja wenn ich einen Effekt auswähle kann ich nun Effectnumber und Effectname sehen.

Irgendwas läuft aber schief. Die 2 Readings aktualisieren sich ständig.
Und dann hats mir das Wled Device zerlegt.

Verstehe ich auch nicht, aber ich komm nicht mehr drauf. Neu flashen ging zwar, aber der Fehler dass es hängt und nicht mehr zugreifbar ist bleibt.

Ich werde es mal komplett löschen und neu flashen.
Sehr seltsam. Hatte noch nie solch ein Problem damit.
Dein User Reading kann das ja aber auch nicht gewesen sein.

Ich melde mich wieder wenn ich es wieder laufen habe...

Gruß,
Stefan


Online stefanru

  • Sr. Member
  • ****
  • Beiträge: 760
Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
« Antwort #100 am: 07 Januar 2021, 18:58:13 »
Ok,

habe rausgefunden was los war. Alle Einstellungen waren weg. Sehr seltsam.
@TomLee: Kannst du nochmal schauen ob ich das richtig hatte?
userReadings
effectname:effect.* {my $h="http://192.168.69.38/json";$h=~s/_/-/g; HttpUtils_NonblockingGet( {url=>"$h", callback=>sub($$$) { my ($hash, $err, $data) = @_; $data =~ m,effects..\[([^[]*?)],;my $s=$1;$s=~s/"//g;$s=~ s/\n//g;my @a= split(/,/ , $s);my $i = ReadingsNum($NAME,"effect","1");;my $an=@a;$a=$a[$i];fhem("setreading $NAME effectname $a;setreading $NAME effectnumber $an")} }) }

Hat sich irgendwie seltsam verhalten und ist immer hin und her gepingt.

Gruß,
Stefan

Offline TomLee

  • Hero Member
  • *****
  • Beiträge: 4108
  • ... wer sät, der erntet ...
Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
« Antwort #101 am: 07 Januar 2021, 19:03:02 »
Hier mal meine Definition, hab keine Probleme damit:

defmod MQTT2_WLED_TV MQTT2_DEVICE WLED_538e36
attr MQTT2_WLED_TV userattr lightSceneParamsToSave lightSceneRestoreOnlyIfChanged:1,0
attr MQTT2_WLED_TV IODev MQTT2_Server
attr MQTT2_WLED_TV alexaName streifen
attr MQTT2_WLED_TV comment "http://".InternalVal($NAME,'CID','0')."
attr MQTT2_WLED_TV devStateIcon {Color::devStateIcon( $name, "rgb", "rgb", "brightness", "state" )}
attr MQTT2_WLED_TV event-on-change-reading brightness,effect,intensity,palette,rgb,speed,state,effectname,effectnumber
attr MQTT2_WLED_TV eventMap /effect 0:Solid/effect 2:Breathe/effect 63:Pride/loadPreset 1:Fire/
attr MQTT2_WLED_TV genericDeviceType light
attr MQTT2_WLED_TV group Wohnzimmer
attr MQTT2_WLED_TV homebridgeMapping Brightness=brightness::brightness,maxValue=100,factor=0.39216,delay=true
attr MQTT2_WLED_TV icon hue_filled_iris
attr MQTT2_WLED_TV model wled_controller
attr MQTT2_WLED_TV readingList wled/538e36/status:.* LWT\
  wled/538e36/g:.* brightness\
  wled/538e36/g:.* { $EVENT ? {"state"=>"on"} : {"state"=>"off"} }\
  wled/538e36/c:.* { {"rgb"=>substr("$EVENT",1,6)} }\
  wled/538e36/v:.* api\
  wled/538e36/v:.* { $EVENT =~ m,(?<=<sx>)([\d]+)(?=<\/sx>), ? $1 eq ReadingsVal($NAME,"speed","unknown") ? return : {"speed"=>$1} : return;; }\
  wled/538e36/v:.* {$EVENT =~ m,(?<=<ix>)([\d]+)(?=<\/ix>), ? $1 eq ReadingsVal($NAME,"intensity","unknown") ? return : {"intensity"=>$1} : return }\
  wled/538e36/v:.* {$EVENT =~ m,(?<=<fp>)([\d]+)(?=<\/fp>), ? $1 eq ReadingsVal($NAME,"palette","unknown") ? return : {"palette"=>$1} : return }\
  wled/538e36/v:.* {$EVENT =~ m,(?<=<fx>)([\d]+)(?=<\/fx>), ? $1 eq ReadingsVal($NAME,"effect","unknown") ? return :{"effect"=>"$1"} : return }
attr MQTT2_WLED_TV room MQTT2_DEVICE,Wohnzimmer
attr MQTT2_WLED_TV setList on:noArg wled/538e36 on\
  off:noArg wled/538e36 off\
  toggle:noArg wled/538e36 t\
  rgb:colorpicker,RGB wled/538e36/col #$EVTPART1\
  brightness:colorpicker,BRI,0,1,255 wled/538e36\
  speed:colorpicker,BRI,0,1,255 wled/538e36/api SX=$EVTPART1\
  intensity:colorpicker,BRI,0,1,255 wled/538e36/api IX=$EVTPART1\
  palette:selectnumbers,0,1,46,0,lin wled/538e36/api &T=1FP=$EVTPART1\
  effect:selectnumbers,0,1,115,0,lin wled/538e36/api FX=$EVTPART1\
  loadPreset:selectnumbers,0,1,3,0,lin wled/538e36/api PL=$EVTPART1\
  dimup:noArg wled/538e36/api A=~10\
  dimdown:noArg wled/538e36/api A=~-10\
  flash:noArg {my $v=ReadingsVal($NAME,"rgb","FFA000");;ReadingsVal($NAME,"state","off") eq "on"?fhem("set $NAME rgb FFFFFF;;sleep 0.5;;set $NAME rgb $v"):fhem("set $NAME toggle;;set $NAME rgb FFFFFF;;sleep 0.5;;set $NAME toggle")}
attr MQTT2_WLED_TV setStateList on off toggle effect loadPreset dimdown dimup
attr MQTT2_WLED_TV userReadings effectname:effect.* {my $h="http://192.168.188.52/json";;$h=~s/_/-/g;; HttpUtils_NonblockingGet( {url=>"$h", callback=>sub($$$) { my ($hash, $err, $data) = @_;; $data =~ m,effects..\[([^[]*?)],;;my $s=$1;;$s=~s/"//g;;$s=~ s/\n//g;;my @a= split(/,/ , $s);;my $i = ReadingsNum($NAME,"effect","1");;;;my $an=@a;;$a=$a[$i];;fhem("setreading $NAME effectname $a;;setreading $NAME effectnumber $an")} }) }
attr MQTT2_WLED_TV webCmd rgb:brightness:effect:Solid:Breathe:Pride:Fire:flash

setstate MQTT2_WLED_TV on
setstate MQTT2_WLED_TV 2021-01-07 17:09:29 LWT online
setstate MQTT2_WLED_TV 2021-01-07 17:09:29 api <?xml version="1.0" ?><vs><ac>128</ac><cl>255</cl><cl>160</cl><cl>0</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>45</fx><sx>128</sx><ix>128</ix><fp>0</fp><wv>0</wv><ws>0</ws><ps>1</ps><cy>0</cy><ds>WLED</ds><ss>0</ss></vs>
setstate MQTT2_WLED_TV 2021-01-07 17:09:29 brightness 128
setstate MQTT2_WLED_TV 2021-01-06 00:37:37 effect 45
setstate MQTT2_WLED_TV 2021-01-06 00:37:37 effectname Fire Flicker
setstate MQTT2_WLED_TV 2021-01-06 00:37:37 effectnumber 116
setstate MQTT2_WLED_TV 2021-01-02 20:27:51 intensity 128
setstate MQTT2_WLED_TV 2021-01-02 20:27:51 palette 0
setstate MQTT2_WLED_TV 2021-01-05 19:03:31 pct set
setstate MQTT2_WLED_TV 2021-01-07 17:09:29 rgb FFA000
setstate MQTT2_WLED_TV 2021-01-02 20:27:51 speed 128
setstate MQTT2_WLED_TV 2021-01-07 17:09:29 state on

Offline australien

  • Full Member
  • ***
  • Beiträge: 328
Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
« Antwort #102 am: 29 Juni 2021, 13:13:03 »
wie bringe ich den Status dazu mir den Online Status auch anzuzeigen? Wie bei den anderen MQTT2 auch?
raspberry pi3
signalduino, Shelly1, Shelly2, Sonos, Unifi
Amazon Fire Tablet 7 | Noname Android Tablet 10"

Offline TomLee

  • Hero Member
  • *****
  • Beiträge: 4108
  • ... wer sät, der erntet ...
Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
« Antwort #103 am: 29 Juni 2021, 17:03:52 »
Es gibt doch das LWT-Reading wie in den "anderen" MQTT2-Devices in irgendeiner Form auch.

Die Frage die ich mir dabei stelle ( ohne mir jetzt den Traffic angeschaut zu haben), warum der WLED-Controller kein offline in dem Zweig wled/<cid>/status "meldet", wenn man die Spannungsversorgung oder das WiFi kappt, wie bei den anderen MQTT2-Devices ?

Auf die Schnelle find ich übrigens den status-Pfad gerade gar nicht dokumentiert ?

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 18016
Antw:[Gelöst] MQTT für WLED, rgb reading mit # klappt nicht
« Antwort #104 am: 29 Juni 2021, 17:20:32 »
Es gibt doch das LWT-Reading wie in den "anderen" MQTT2-Devices in irgendeiner Form auch.
Das Problem wäre dann, dass der ESP kein "echtes LWT" sendet...

Zitat
Die Frage die ich mir dabei stelle ( ohne mir jetzt den Traffic angeschaut zu haben), warum der WLED-Controller kein offline in dem Zweig wled/<cid>/status "meldet", wenn man die Spannungsversorgung oder das WiFi kappt, wie bei den anderen MQTT2-Devices ?
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.
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