ESP RGBWW Wifi Led Controller - fhem - Modul

Begonnen von pjakobs, 28 Juni 2016, 10:31:13

Vorheriges Thema - Nächstes Thema

vbs


pjakobs

aber hast Du ne Idee, warum mein zweites Beispiel (mit ramp=0 und pause 1) nicht auf den -vbs Dingern funktioniert? Im Log hab ich nichts erkennen können.

vbs

Zitat von: pjakobs am 15 März 2018, 17:15:48
aber hast Du ne Idee, warum mein zweites Beispiel (mit ramp=0 und pause 1) nicht auf den -vbs Dingern funktioniert? Im Log hab ich nichts erkennen können.
Ich denke, dass das 'pause'-Kommando nicht das macht, was du wünscht:
https://github.com/verybadsoldier/esp_rgbww_firmware/wiki#channel-animation-control

Probiert mal sowas, das müsste gehen (kann natürlich entsprechend abgewandelt werden, aber das Prinzip sollte klar werden):

set wz_lightLedCouch on 0;
set wz_lightLedCouch on 2 q;
set wz_lightLedCouch off 0 q;
set wz_lightLedCouch off 2 q;
set wz_lightLedCouch on 0 q;
set wz_lightLedCouch on 2 q


Man bräuchte in der FW am besten einen Befehl "stay" oder ähnlich, der das macht, was du dir mit "pause" gewünscht hast. Damit könnte man es noch etwas vereinfachen.

vbs

Ach, ich Trottel. Geht sogar jetzt schon pippi-einfach mit solid-Flag...  ::)

set wz_lightLedCouch on 0;
set wz_lightLedCouch on 2 sq;
set wz_lightLedCouch off 2 sq;
set wz_lightLedCouch on 2 sq;
set wz_lightLedCouch off 2 sq;


vbs

Anstelle eines dedizierten Kommandos "stay", kann man einfach ein relatives Kommando zusammen mit solid-Flag nutzen. Ist zugegebenermaßen nicht ganz so elegant wie ein eigener Befehl.  :-[

Hält die (dann) aktuelle Farbe für 5 Sekunden:

set wz_lightLedCouch hsv +0,+0,+0 5 sq;


Wie bei allen Befehlen, kann man den Befehl auch nur auf bestimmte Kanäle beziehen.
Das würde nur den Hue-Kanal anhalten:

set wz_lightLedCouch hsv +0,, 5 sq;


Beispiel:

set wz_lightLedCouch hsv 180,100,100 5 q;
set wz_lightLedCouch hsv +0,+0,+0 8 sq;
set wz_lightLedCouch hsv 0,30,30 q;


Fade vom aktuellen Zustand mit einer Ramp von 5-Sek zu 180,100,100. Dann für 8 Sek. den Status halten und dann zu 0,30,30 switchen.

vbs

Konntet ihr das schonmal testen? Klappt das jetzt bei euch bzw. verhält es sich erwartungsgemäß? Würde es gerne beheben andernfalls.

Frank_Huber

Tag zusammen,

Nachdem ich mit der Suche, auf den ersten Seiten des Thread und im Github nichts gefunden habe frage ich doch mal nach.

Wie kann ich denn das FHEM Modul installieren?

Danke & Grüße
Frank


EDIT: kaum gepostet hab ichs gefunden. im Firmware Thread... :)

pjakobs

Zitat von: Frank_Huber am 26 April 2018, 16:12:10
EDIT: kaum gepostet hab ichs gefunden. im Firmware Thread... :)

Moin Frank,

ja, ich glaube, die Doku könnte noch besser werden. Aktuell gibt es zwei Firmware Versionen, die originale, die im Firmware Thread verlinkt ist und die von @vbs, die neben Bugfixes einige Verbesserungen enthält. Für beide brauchst Du auch unterschiedliche fhem-Module, sonst funktioniert es nicht. Ich hoffe, wir können das in Zukunft zusammenführen.

Grüße

pj

Frank_Huber

Dann hatte ich wohl Glück, die zwei Controller (HW 1.5) die ich über den Marktplatz erstanden habe kommunizieren mit dem FHEM Modul.

woran erkenne ich denn als RGBWW Laie welc der FW Versionen drauf ist?

Blauhorn

Wenn Du die Adresse des Controllers aufrufst, kommst du auf die WEB-GUI. Da gibt es ganz rechts einen Reiter "System-Settings", und dort eine Abteilung "Firmware". Da steht alles drin.

Gruß vom Blauhorn
1xBananaPi; 1x FB7490; 1xCUL433; 1x CC2530+CC2591; OpenMiLight-Gateway; 1xHMUART; HM-LC-Sw4-DR; Sonoff* mit TASMOTA, LEDController; MySensors; zigbee2mqtt;

kadettilac89

Hallo vbs,

darf ich dich um eine Prüfung bei dir und ggf. Korrektur im Modul bitten?

Es geht um meinen Post im Firmware-Thread ... https://forum.fhem.de/index.php/topic,70738.msg796458.html#msg796458

Ich habe etwas analysiert und getestet. Die Aussage "geht nicht" lautet nun konkreter, Fading dauert viel zu lange :)

Aufruf "set hue +359 l 5" ... ganzer Farbkreis (-1) dauert 5 Sekunden. Log sagt das hier aus

2018.04.27 15:29:29.835 5: LED3_new setting HUE to +359
2018.04.27 15:29:29.835 5: LED3_new: encoded json data: {"hsv":{"h":"+359"},"cmd":"fade","t":5000,"d":0,"q":"single"}
2018.04.27 15:29:29.836 5: LED3_new: set HSV color request: {"hsv":{"h":"+359"},"cmd":"fade","t":5000,"d":0,"q":"single"}


Selber Aufruf mit zusätzlichem Parameter "r" für Re-Queue (set hue +359 l 5 r)

2018.04.27 15:36:16.479 5: LED3_new setting HUE to +359
2018.04.27 15:36:16.480 5: LED3_new: encoded json data: {"hsv":{"h":"+359"},"cmd":"fade","t":5000,"q":"single","d":1,"r":"true"}
2018.04.27 15:36:16.480 5: LED3_new: set HSV color request: {"hsv":{"h":"+359"},"cmd":"fade","t":5000,"q":"single","d":1,"r":"true"}


--> Warum ist ... "d":1 ... gesetzt? Es sollte der Wert 0 sein.

Dieses wird in sub EspLedController_ArgsHelper gesetzt. Habe eine kleine Korrektur gemacht und es sieht so aus, als würde es damit richtig funktionieren.


Zeile 1329ff

      $requeue = 'true' if ( $flags =~ m/r/i );
      #$d = ( $flags =~ m/l/ ) ? 0 : 1;         <--- dein Code
  $d = 0 if ( $flags =~ m/l/i );            <--- mein Test
      $transitionType = 'solid' if ( $flags =~ m/s/i );


Wenn die Prüfung auf das r-Flag erfolgreich war, wird das d-Flag zurückgesetzt, warum auch immer. Habe nicht weiter analysiert, auf den ersten Blick komisch, es ist kein continue, exit o. ä. drin das die weitere Verarbeitung abbricht. Ohne r-Flag passt es ja.

Mein Setup:
- R3 mit Raspbian stretch
- Perl .... perl5 (revision 5 version 24 subversion 1)

danke dir!

kadettilac89

Noch eine Frage:

Kann ich diese Meldungen unterdrücken? Verbose ist global 1


2018.04.28 17:14:25.342 1: 192.168.0.60:9090 disconnected, waiting to reappear (LED2)
2018.04.28 17:13:05.327 1: 192.168.0.60:9090 reappeared (LED2)
2018.04.28 17:13:05.315 1: 192.168.0.60:9090 disconnected, waiting to reappear (LED2)
2018.04.28 17:13:04.611 1: 192.168.0.60:9090 reappeared (LED2)
2018.04.28 17:13:04.590 1: 192.168.0.60:9090 disconnected, waiting to reappear (LED2)
2018.04.28 17:12:59.916 1: 192.168.0.60:9090 reappeared (LED2)
2018.04.28 17:12:59.896 1: 192.168.0.60:9090 disconnected, waiting to reappear (LED2)
2018.04.28 17:12:54.709 1: 192.168.0.60:9090 reappeared (LED2)
2018.04.28 17:12:54.689 1: 192.168.0.60:9090 disconnected, waiting to reappear (LED2)
2018.04.28 17:12:49.512 1: 192.168.0.60:9090 reappeared (LED2)
2018.04.28 17:12:49.491 1: 192.168.0.60:9090 disconnected, waiting to reappear (LED2)
2018.04.28 17:12:46.376 1: 192.168.0.60:9090 reappeared (LED2)
2018.04.28 17:12:46.355 1: 192.168.0.60:9090 disconnected, waiting to reappear (LED2)
2018.04.28 17:12:43.809 1: 192.168.0.60:9090 reappeared (LED2)
2018.04.28 17:12:43.784 1: 192.168.0.60:9090 disconnected, waiting to reappear (LED2)
2018.04.28 17:12:39.730 1: 192.168.0.60:9090 reappeared (LED2)
2018.04.28 17:12:38.368 1: 192.168.0.60:9090 disconnected, waiting to reappear (LED2)
2018.04.28 17:12:18.211 1: 192.168.0.60:9090 reappeared (LED2)
2018.04.28 17:12:18.184 1: 192.168.0.60:9090 disconnected, waiting to reappear (LED2)
2018.04.28 17:11:47.670 1: 192.168.0.60:9090 reappeared (LED2)
2018.04.28 17:11:47.649 1: 192.168.0.60:9090 disconnected, waiting to reappear (LED2)
2018.04.28 17:11:29.679 1: 192.168.0.60:9090 reappeared (LED2)
2018.04.28 17:11:29.653 1: 192.168.0.60:9090 disconnected, waiting to reappear (LED2)
2018.04.28 17:11:18.235 1: 192.168.0.60:9090 reappeared (LED2)
2018.04.28 17:11:18.185 1: 192.168.0.60:9090 disconnected, waiting to reappear (LED2)
2018.04.28 17:11:01.669 1: 192.168.0.60:9090 reappeared (LED2)
2018.04.28 17:11:01.649 1: 192.168.0.60:9090 disconnected, waiting to reappear (LED2)
2018.04.28 17:10:18.211 1: 192.168.0.60:9090 reappeared (LED2)
2018.04.28 17:10:18.184 1: 192.168.0.60:9090 disconnected, waiting to reappear (LED2)
2018.04.28 17:10:10.944 1: 192.168.0.60:9090 reappeared (LED2)
2018.04.28 17:10:10.923 1: 192.168.0.60:9090 disconnected, waiting to reappear (LED2)
2018.04.28 17:09:40.495 1: 192.168.0.60:9090 reappeared (LED2)
2018.04.28 17:09:40.474 1: 192.168.0.60:9090 disconnected, waiting to reappear (LED2)
2018.04.28 17:09:27.688 1: 192.168.0.60:9090 reappeared (LED2)
2018.04.28 17:09:27.667 1: 192.168.0.60:9090 disconnected, waiting to reappear (LED2)
2018.04.28 17:09:18.218 1: 192.168.0.60:9090 reappeared (LED2)
2018.04.28 17:09:18.184 1: 192.168.0.60:9090 disconnected, waiting to reappear (LED2)
2018.04.28 17:08:49.652 1: 192.168.0.60:9090 reappeared (LED2)
2018.04.28 17:08:49.632 1: 192.168.0.60:9090 disconnected, waiting to reappear (LED2)
2018.04.28 17:08:18.223 1: 192.168.0.60:9090 reappeared (LED2)
2018.04.28 17:08:18.186 1: 192.168.0.60:9090 disconnected, waiting to reappear (LED2)
2018.04.28 17:07:58.937 1: 192.168.0.60:9090 reappeared (LED2)
2018.04.28 17:07:58.914 1: 192.168.0.60:9090 disconnected, waiting to reappear (LED2)
2018.04.28 17:07:52.013 1: 192.168.0.60:9090 reappeared (LED2)

vbs

Geht es um die vbs-Variante oder um das Original-Modul? Wenn vbs, dann lass uns das lieber in dem vbs-Thread besprechen, sonst kriegt Peter bestimmt hier ne Krise, wenn wir ihn mit meinen Problemen belästigen  ;)

Hatte dir ja neulich schonmal geantwortet (https://forum.fhem.de/index.php/topic,70738.msg796026.html#msg796026), dass ich vermute, dass deine Installation irgendwie in einem komisch Zustand ist. Hast du da etwas rausfinden können? Alle anderen Effekte könnten dann einfach Folgefehler sein.

Tom71

#343
Hallo,
ich bin mir nicht sicher, ob mein Problem mit dem fhem-Modul oder dem Controller zu tun hat.
Ich verwende einen Bewegungssensor mit Helligkeit um abhängig von der Tageszeit den LED-Controller zu schalten. Das hat bis vor ca. 2 Wochen monatelang funktioniert. Nach einem Update von Fhem und dem LED-Controller (vbs32) aber nicht mehr. Das Notify kommt zwar im Controller an, schaltet den Controller aber nicht mehr an.
Das notify:

defmod Bewegungsmelder_Bad_On notify HM_Bad_Motion:motion:.on.*  {  \
\
my $brightness = ReadingsVal("HM_Bad_Motion", "brightness", "0");;\
my $rgb = ReadingsVal("Bad_Led_Dummy", "RGB", "3D4018");;\
Log 1, "brightness - $brightness : $rgb";;\
Log 1, "hour - $hour";;\
\
if ($brightness < 130 ){\
    if($hour < 5)\
    {\
        fhem("set LedController2 hsv 13.02,100,7.04");;\
        fhem("set LedController3 hsv 13.02,100,7.04");;\
    }else {\
        fhem("set LedController2 hsv 42.00,96.00,97.00");;  \
        fhem("set LedController3 hsv 42.00,96.00,97.00");;\
   }\
}\
\
fhem("delete LedControllerBad_Off");;\
fhem("define LedControllerBad_Off at +00:10:00 set LedController2 off;;;; set LedController3 off");;\
}


Im Log-File sehe ich aber nur noch:

2018.05.09 00:26:40 5: Triggering Bewegungsmelder_Bad_On
2018.05.09 00:26:40 4: Bewegungsmelder_Bad_On exec {

my $brightness = ReadingsVal("HM_Bad_Motion", "brightness", "0");;
my $rgb = ReadingsVal("Bad_Led_Dummy", "RGB", "3D4018");;
Log 1, "brightness - $brightness : $rgb";;
Log 1, "hour - $hour";;

if ($brightness < 130 ){
    if($hour < 5)
    {
        fhem("set LedController2 hsv 13.02,100,7.04");;
        fhem("set LedController3 hsv 13.02,100,7.04");;
    }else {
        fhem("set LedController2 hsv 42.00,96.00,97.00");;
        fhem("set LedController3 hsv 42.00,96.00,97.00");;
   }
}

fhem("delete LedControllerBad_Off");;
fhem("define LedControllerBad_Off at +00:10:00 set LedController2 off;;;; set LedController3 off");;
}
2018.05.09 00:26:40 1: brightness - 71 : F7B00A
2018.05.09 00:26:40 1: hour - 0
2018.05.09 00:26:42 2: LedController2: EspLedController_ParseBoolResult error: http://ledcontroller2.fritz.box/color: empty answer received
2018.05.09 00:26:44 2: LedController2: EspLedController_ParseBoolResult error: http://ledcontroller2.fritz.box/color: empty answer received
2018.05.09 00:26:44 3: LedController2: EspLedController_RGB2HSV: 990.905882352941 - 706.070588235294 - 40.1176470588235
2018.05.09 00:30:30 3: LedController2: EspLedController_RGB2HSV: 990.905882352941 - 706.070588235294 - 40.1176470588235


Den Fehler EspLedController_ParseBoolResult verstehe ich nicht, es geht:

pi@fhem /opt/fhem/log $ curl http://ledcontroller2.fritz.box/color
{"raw":{"r":72,"g":15,"b":0,"ww":0,"cw":0},"hsv":{"h":13.02,"s":100.00,"v":7.04,"ct":2700}}


Setze ich den Befehl:
set LedController2 hsv 13.02,100,7.04 in fhem direkt ab, schaltet der LED-Controller ganz normal.

Mir fällt gerade auf, dass es das gleiche Verhalten ist, wenn ich den Befehl 2x hintereinander ausführe. Könnte es wirklich sein, dass der Controller auf http://ledcontroller2.fritz.box/color zuerst nichts bekommt und daher auch nicht schaltet?

Vielleicht DNS Problem?

Update: Kann ich ausschliessen:
2018.05.09 09:00:15 2: LedController2: EspLedController_ParseBoolResult error: http://192.168.0.25/color: empty answer received

Update: verbose 5

2018.05.09 09:10:22 5: LedController2 raw: F7B00A, r: 247, g: 176, b: 10
2018.05.09 09:10:22 3: LedController2: EspLedController_RGB2HSV: 990.905882352941 - 706.070588235294 - 40.1176470588235
2018.05.09 09:10:22 5: LedController2: called SetHSVColor
2018.05.09 09:10:22 5: LedController2: encoded json data: {"t":"1000","hsv":{"v":97,"s":96,"h":42},"q":"single","cmd":"fade","d":"1"}
2018.05.09 09:10:22 5: LedController2: set HSV color request: {"t":"1000","hsv":{"v":97,"s":96,"h":42},"q":"single","cmd":"fade","d":"1"}
2018.05.09 09:10:23 5: LedController2: EspLedController_ParseBoolResult
2018.05.09 09:10:23 2: LedController2: EspLedController_ParseBoolResult error: http://192.168.0.25/color: empty answer received


Noch ein Update: curl von Hand geht auch:
curl --header "Content-Type: application/json" --request POST --data '{"t":"1000","hsv":{"v":97,"s":96,"h":42},"q":"single","cmd":"fade","d":"1"}' http://192.168.0.25/color
{"success":true}


Ich werde daraus nicht schlau. :-/

VG Thomas
Homematic | RaspberryMatic

vbs

Zitat von: Tom71 am 09 Mai 2018, 08:48:34

defmod Bewegungsmelder_Bad_On notify HM_Bad_Motion:motion:.on.*  {  \
\
my $brightness = ReadingsVal("HM_Bad_Motion", "brightness", "0");;\
my $rgb = ReadingsVal("Bad_Led_Dummy", "RGB", "3D4018");;\
Log 1, "brightness - $brightness : $rgb";;\
Log 1, "hour - $hour";;\
\
if ($brightness < 130 ){\
    if($hour < 5)\
    {\
        fhem("set LedController2 hsv 13.02,100,7.04");;\
        fhem("set LedController3 hsv 13.02,100,7.04");;\
    }else {\
        fhem("set LedController2 hsv 42.00,96.00,97.00");;  \
        fhem("set LedController3 hsv 42.00,96.00,97.00");;\
   }\
}\
\
fhem("delete LedControllerBad_Off");;\
fhem("define LedControllerBad_Off at +00:10:00 set LedController2 off;;;; set LedController3 off");;\
}

Ist das so, dass du das Device ständig löscht und neu anlegst? Und dann direkt nach dem Anlegen den set-Befehl absetzt? Kann mir gut vorstellen, dass das nicht klappt, da direkt nach dem Anlegen erstmal 2 oder 3 Befehle hin- und her gehen, mit denen die Config usw. eingelesen wird. Warum das aber in "empty answer received" resultieren sollte, ist mir unklar.