ESP RGBWW Wifi Led Controller - Hinweise zu Sammelbestellung 2.5

Begonnen von mrpj, 07 Februar 2016, 17:53:42

Vorheriges Thema - Nächstes Thema

pjakobs

Hi Jörg,

danke für Deine Arbeit, nach allem, was ich sehe passt das jetzt.

attr LED_Sc defaultRamp 0;
set LED_Sc hsv 0,100,100 ;set LED_Sc off 1 q;
set LED_Sc rotate 30 q;set LED_Sc val 100 q;set LED_Sc off 1 q;
set LED_Sc rotate 30 q;set LED_Sc val 100 q;set LED_Sc off 1 q;
set LED_Sc rotate 30 q;set LED_Sc val 100 q;set LED_Sc off 1 q;
set LED_Sc rotate 30 q;set LED_Sc val 100 q;set LED_Sc off 1 q;
set LED_Sc rotate 30 q;set LED_Sc val 100 q;set LED_Sc off 1 q;
set LED_Sc rotate 30 q;set LED_Sc val 100 q;set LED_Sc off 1 q

führt zu 7x blinken - passt.

Was mich wundert ist: das Pause command funktioniert immer noch nicht, wenn es in einer Befehlsfolge auftaucht scheint die Abarbeitung danach zu enden.

set LED_Sc on q;set LED_Sc pause 1 q;set LED_Sc off q;set LED_Sc pause 2 q;


führt zu


2016.06.27 09:39:43 5: LED_Sc (Set) called with on, busy flag is 0
name is LED_Sc, args $VAR1 = 'q';
2016.06.27 09:39:43 3: LED_Sc (Set) called with on, busy flag is 0
2016.06.27 09:39:43 5: LED_Sc defaultColor: 60,100,50
2016.06.27 09:39:43 5: LED_Sc setting VAL to 50, SAT to 100 and HUE 60
2016.06.27 09:39:43 5: LED_Sc args[0] = q, args[1] =
2016.06.27 09:39:43 5: LED_Sc extended args raw: a=q, b=
2016.06.27 09:39:43 5: LED_Sc t= 0
2016.06.27 09:39:43 5: LED_Sc extended args: t = 0, q = true, d = 1
2016.06.27 09:39:43 5: LED_Sc: called SetHSVColor 60, 100, 50, 2700, 0, solid, true, 1)
2016.06.27 09:39:43 4: LED_Sc: encoded json data: {"t":"0","q":"true","hsv":{"s":"100","v":"50","ct":"2700","h":"60"},"cmd":"solid","d":"1"}
2016.06.27 09:39:43 4: LED_Sc: set HSV color request
2016.06.27 09:39:43 5: LED_Sc send API Call $VAR1 = {
    'NAME' => 'LED_Sc',
    'NTFY_ORDER' => '50-LED_Sc',
2016.06.27 09:39:43 5: LED_Sc: calculated RGB as 808000
2016.06.27 09:39:43 4: LED_Sc: begin Readings Update
2016.06.27 09:39:43 5: LED_Sc (Set) called with pause, busy flag is 1
name is LED_Sc, args $VAR1 = '1';
2016.06.27 09:39:43 3: LED_Sc (Set) called with pause, busy flag is 1
2016.06.27 09:39:43 5: LED_Sc extended args raw: a=1, b=q
2016.06.27 09:39:43 5: LED_Sc t= 0
2016.06.27 09:39:43 5: LED_Sc a is numeric (1), t= 1000
2016.06.27 09:39:43 5: LED_Sc extended args: t = 1000, q = true, d = 1
2016.06.27 09:39:43 5: LED_Sc: called SetHSVColor 60, 100, 50, 2700, 1000, solid, true, 1)
2016.06.27 09:39:43 4: LED_Sc: encoded json data: {"hsv":{"h":"60","ct":"2700","s":"100","v":"50"},"q":"true","t":"1000","d":"1","cmd":"solid"}
2016.06.27 09:39:43 4: LED_Sc: set HSV color request
2016.06.27 09:39:43 5: LED_Sc: calculated RGB as 808000
2016.06.27 09:39:43 4: LED_Sc: begin Readings Update
2016.06.27 09:39:44 5: LED_Sc (Set) called with off, busy flag is 1
name is LED_Sc, args $VAR1 = 'q';
2016.06.27 09:39:44 3: LED_Sc (Set) called with off, busy flag is 1
2016.06.27 09:39:44 5: LED_Sc setting VAL to 0, keeping HUE 60 and SAT 100
2016.06.27 09:39:44 5: LED_Sc extended args raw: a=q, b=
2016.06.27 09:39:44 5: LED_Sc t= 0
2016.06.27 09:39:44 5: LED_Sc extended args: t = 0, q = true, d = 1
2016.06.27 09:39:44 5: LED_Sc: called SetHSVColor 60, 100, 0, 2700, 0, solid, true, 1)
2016.06.27 09:39:44 4: LED_Sc: encoded json data: {"cmd":"solid","d":"1","q":"true","t":"0","hsv":{"h":"60","ct":"2700","s":"100","v":"0"}}
2016.06.27 09:39:44 4: LED_Sc: set HSV color request
2016.06.27 09:39:44 5: LED_Sc: calculated RGB as 000000
2016.06.27 09:39:44 4: LED_Sc: begin Readings Update
2016.06.27 09:39:44 5: LED_Sc (Set) called with pause, busy flag is 1
name is LED_Sc, args $VAR1 = '2';
2016.06.27 09:39:44 3: LED_Sc (Set) called with pause, busy flag is 1
2016.06.27 09:39:44 5: LED_Sc extended args raw: a=2, b=q
2016.06.27 09:39:44 5: LED_Sc t= 0
2016.06.27 09:39:44 5: LED_Sc a is numeric (2), t= 2000
2016.06.27 09:39:44 5: LED_Sc extended args: t = 2000, q = true, d = 1
2016.06.27 09:39:44 5: LED_Sc: called SetHSVColor 60, 100, 0, 2700, 2000, solid, true, 1)
2016.06.27 09:39:44 4: LED_Sc: encoded json data: {"cmd":"solid","d":"1","t":"2000","q":"true","hsv":{"s":"100","v":"0","ct":"2700","h":"60"}}
2016.06.27 09:39:44 4: LED_Sc: set HSV color request
2016.06.27 09:39:44 5: LED_Sc: calculated RGB as 000000
2016.06.27 09:39:44 4: LED_Sc: begin Readings Update
2016.06.27 09:39:44 4: LED_Sc: got HSV color response
2016.06.27 09:39:44 5: LED_Sc: HSV color response data {"success":true}
2016.06.27 09:39:44 5: LED_Sc send API Call $VAR1 = {
    'NAME' => 'LED_Sc',
    'NTFY_ORDER' => '50-LED_Sc',
2016.06.27 09:39:44 4: LED_Sc: got HSV color response
2016.06.27 09:39:44 5: LED_Sc: HSV color response data {"success":true}
2016.06.27 09:39:44 5: LED_Sc send API Call $VAR1 = {
    'NAME' => 'LED_Sc',
    'NTFY_ORDER' => '50-LED_Sc',
2016.06.27 09:39:44 4: LED_Sc: got HSV color response
2016.06.27 09:39:44 5: LED_Sc: HSV color response data {"success":true}
2016.06.27 09:39:44 5: LED_Sc send API Call $VAR1 = {
    'NAME' => 'LED_Sc',
    'NTFY_ORDER' => '50-LED_Sc',
2016.06.27 09:39:44 4: LED_Sc: got HSV color response
2016.06.27 09:39:44 5: LED_Sc: HSV color response data {"success":true}


der API Call sieht, meines Erachtens, korrekt aus, aber da schau ich nachher nochmal drauf.
Ich hab das neue Modul noch ein bisschen aufgeräumt (zwei helper functions in den Block unten verschoben) und in dev-pj-queue gepushed

pj

pjakobs

so, nach einigem Testen scheint mir, dass so alles funktioniert.
Danke nochmal Jörg, ich fürchte, ich hätte übleren Code dafür gebaut ;-)

@mrpj - sag mal, ist das der korrekte Debug output?

ApplicationWebserver::onColor HSV  H 60. S 100. V 0. CT 2700
APPLedCtrl::led_callback
APPLedCtrl::save_color
ApplicationWebserver::onColor HSV  H 60. S 100. V 50. CT 2700
APPLedCtrl::led_callback
APPLedCtrl::save_color
ApplicationWebserver::onColor HSV  H 60. S 100. V 0. CT 2700
APPLedCtrl::led_callback
APPLedCtrl::save_color
ApplicationWebserver::onColor HSV  H 10. S 80. V 80. CT 2700
APPLedCtrl::led_callback
APPLedCtrl::save_color
ApplicationWebserver::onColor HSV  H 10. S 80. V 0. CT 2700
APPLedCtrl::led_callback
APPLedCtrl::save_color
ApplicationWebserver::onColor HSV  H 10. S 80. V 80. CT 2700
APPLedCtrl::led_callback
APPLedCtrl::save_color
ApplicationWebserver::onColor HSV  H 10. S 80. V 80. CT 2700
ApplicationWebserver::onColor HSV  H 10. S 80. V 0. CT 2700
ApplicationWebserver::onColor HSV  H 10. S 80. V 0. CT 2700
APPLedCtrl::led_callback
APPLedCtrl::save_color
ApplicationWebserver::onColor HSV  H 10. S 80. V 80. CT 2700
APPLedCtrl::led_callback
APPLedCtrl::save_color
ApplicationWebserver::onColor HSV  H 10. S 80. V 80. CT 2700
APPLedCtrl::led_callback
APPLedCtrl::save_color
ApplicationWebserver::onColor HSV  H 10. S 80. V 0. CT 2700
APPLedCtrl::led_callback
APPLedCtrl::save_color
ApplicationWebserver::onColor HSV  H 10. S 80. V 80. CT 2700
APPLedCtrl::led_callback
APPLedCtrl::save_color
ApplicationWebserver::onColor HSV  H 10. S 80. V 0. CT 2700
APPLedCtrl::led_callback
APPLedCtrl::save_color
ApplicationWebserver::onColor HSV  H 10. S 80. V 80. CT 2700
APPLedCtrl::led_callback
APPLedCtrl::save_color
ApplicationWebserver::onColor HSV  H 10. S 80. V 0. CT 2700
APPLedCtrl::led_callback
APPLedCtrl::save_color
ApplicationWebserver::onColor HSV  H 10. S 80. V 80. CT 2700
APPLedCtrl::led_callback
APPLedCtrl::save_color
ApplicationWebserver::onColor HSV  H 10. S 80. V 0. CT 2700
APPLedCtrl::led_callback
APPLedCtrl::save_color
ApplicationWebserver::onColor HSV  H 10. S 80. V 80. CT 2700
APPLedCtrl::led_callback
APPLedCtrl::save_color
ApplicationWebserver::onColor HSV  H 10. S 80. V 80. CT 2700
ApplicationWebserver::onColor HSV  H 10. S 80. V 0. CT 2700

ich hab das rom0_debug an die gleiche Adresse wie das bisherige rom_0 geflasht und es gab keine Fehlermeldung.

Wie dem auch sei, alle "fade" Kommandos funktionieren, "solid" scheint zum abbruch der Queue zu führen. Vielleicht magst Du da nochmal drauf sehen.

Grüße

pj

herrmannj

sehr gern.

Ich glaube das mit solid können wir im modul dirket abfangen. Das ist doch auch nur ein fade - also technisch gesehen ?
Pause hatte ich mir nicht angesehen, brauchen wir das ? Persönlich finde ich den durchgängigen Syntyx (set HSV) schöner. Das ist natürlich subjektiv ..., zugegeben.

vg
joerg

pjakobs

#723
Zitat von: herrmannj am 27 Juni 2016, 14:04:42
sehr gern.

Ich glaube das mit solid können wir im modul dirket abfangen. Das ist doch auch nur ein fade - also technisch gesehen ?
Pause hatte ich mir nicht angesehen, brauchen wir das ? Persönlich finde ich den durchgängigen Syntyx (set HSV) schöner. Das ist natürlich subjektiv ..., zugegeben.

vg
joerg

war ja mein erster Gedanke, ein fade von (h1, s1, v1) nach (h1, s1, v1) über t Sekunden - den "optimiert" der Controller aber weg.
Als Workaround habe ich jetzt in der Pause Funktion einen fade von (h1, s1, v1) nach (h1, s1, v1-0.1) eingebaut - sofern v1-0.1 >0 ist. Das funktioniert prima als pause, ändert aber eben den v Wert - wenn auch nur minimal.
Einen Fade ohne Veränderung der Komponenten gibt es nicht, und im solid scheint sich, meines Erachtens, ein Bug eingeschlichen zu haben, denn nach einem Solid wird die Queue nicht weiterverarbeitet.

Was mich auch erstaunt: der Effekt auf dem Controller beginnt jetzt erst, wenn die gesamte Queue übertragen ist - dafür gibt es eigentlich keinen Grund. Man könnte als Vorteil heranziehen, dass so der ganze Effekt als ein Block abläuft und eventuelle Verzögerungen im API ihn nicht verändern - aber eigentlich wäre mir wichtiger, dass der Nutzer sofort sieht, es geschieht etwas, wenn er den Knopf drückt. Die Übertragung einer längeren Animation (20 Schritte) kann schonmal ein paar Sekunden dauern, das ist blöd für's IU.

Grüße

pj

herrmannj

ah, ich verstehe.

Dann wäre das imho ein fw bug und sollte dort gelöst werden.

@mprj
Benötigst Du weitere Infos oder ist der bugreport deutlich ?

a - fade ohne änderung von hsv wird ignoriert
b - solid mit Zeit und q löscht q
c - Wenn mehrere fades übertragen werden startet der controller erst bei wenn komplett übertragen. Verdacht: der http server springt nicht in den Hauptthread zurück solange weitere request anliegen.

bei c könnte man einen workaround im modul implementieren, zb 100ms pause bevor der nächste api call abgesetzt wird. Wäre aber unschön.

Danke vg
Joerg


mrpj

Zitat von: herrmannj am 27 Juni 2016, 14:31:30
@mprj
Benötigst Du weitere Infos oder ist der bugreport deutlich ?

a - fade ohne änderung von hsv wird ignoriert
b - solid mit Zeit und q löscht q
c - Wenn mehrere fades übertragen werden startet der controller erst bei wenn komplett übertragen. Verdacht: der http server springt nicht in den Hauptthread zurück solange weitere request anliegen.

a) ein Änderung ohne HSV wäre direkt eine Änderung um 360 grad. Siehe dem Unterschied zwischen fade und solid

b) das ist definitiv ein Bug - werde ich mir bei Gelegenheit mal anschauen

c)
Es gibt beim Espressif (nonos) SDK keine Threads - die Behandlung ist Interrupt gesteuert. Die Abarbeitung der Farb cmds ist mit einem Interrupt timer versehen.

Könnt ihr das getrennt von FHEM testen? Ich habe eher die Vermutung dass dies ein Problem in der Implementierung eurer Queue ist

mrpj

#726
Zitat von: pjakobs am 27 Juni 2016, 13:58:46
@mrpj - sag mal, ist das der korrekte Debug output?

ich hab das rom0_debug an die gleiche Adresse wie das bisherige rom_0 geflasht und es gab keine Fehlermeldung.

Da fehlt einiges - bist du dir sicher genau diese Version geflasht zu haben? Kannst du bitte mal die Versionsnummern aus dem Controller mit geben?

Falls du die korrekte Version geflasht hast, kannst du auch nochmals manuell den Debug Mode einschalten:
https://github.com/patrickjahns/esp_rgbww_firmware/wiki/2.1-JSON-API-reference#post-system



herrmannj

Danke mrpj!

Zitat von: mrpj am 27 Juni 2016, 15:02:34
a) ein Änderung ohne HSV wäre direkt eine Änderung um 360 grad. Siehe dem Unterschied zwischen fade und solid
Wieso eigentlich ? Default ist doch der "kurze" Weg ? Eigentlich sollte hier doch rot einfach bleiben. Wobei es nicht gravierend ist - wenn Du b beseitigst dann können wir das im lösen machen.

Zitat
b) das ist definitiv ein Bug - werde ich mir bei Gelegenheit mal anschauen
Das wäre super. Davon ist abhängig wie wir mit a umgehen können. Danke
Zitat
c)
Es gibt beim Espressif (nonos) SDK keine Threads - die Behandlung ist Interrupt gesteuert. Die Abarbeitung der Farb cmds ist mit einem Interrupt timer versehen.

Könnt ihr das getrennt von FHEM testen? Ich habe eher die Vermutung dass dies ein Problem in der Implementierung eurer Queue ist
Ne, die implementierung der Q ist es nicht.

Da wird
1. ein api call gesendet
2. auf das resultat gewartet
3. wenn das da ist der nächste call geschickt.

Ich vermute das der controller zwischen 2. und 3. nicht genug "pause" hat um mit dem abarbeiten der Q zu beginnen. Der wird das in die Q schreiben, sein OK schicken und wenn er das grad raus hat liegt schon der nächste API Call auf dem Tisch.

Ich schaue mir das an. Man kann, seitens des fhem moduls, wischen 2. und 3. einige msec Pause einbauen.
Was schätzt Du denn was der controller braucht.
Eher so in Richtung 10 msec oder eher 100 msec ... ?

vg
joerg

mrpj

#728
Zitat von: herrmannj am 27 Juni 2016, 15:13:49

Da wird
1. ein api call gesendet
2. auf das resultat gewartet
3. wenn das da ist der nächste call geschickt.

Ich vermute das der controller zwischen 2. und 3. nicht genug "pause" hat um mit dem abarbeiten der Q zu beginnen. Der wird das in die Q schreiben, sein OK schicken und wenn er das grad raus hat liegt schon der nächste API Call auf dem Tisch.

Ich schaue mir das an. Man kann, seitens des fhem moduls, wischen 2. und 3. einige msec Pause einbauen.
Was schätzt Du denn was der controller braucht.
Eher so in Richtung 10 msec oder eher 100 msec ... ?

Das python script von mir funktioniert doch auch ohne dass die Q schon übermittelt wurde. Wenn man das auf 45 Befehle ausweitet fängt der Controller an mit dem faden bevor das script fertig ist  ;)

Nachtrag:

Was deutlich erkennbar ist, dass bei 45 Befehlen der Controller bei den ersten 1-2 Fades etwas "laggt" (während der Datentransfer an ist) - daher macht es Sinn später bei mehreren gleichzeitigen Befehlen "animationset" zu nutzen. (Sobald ich es schaffe zu implementieren).

mrpj

#729
Sammelbestellung v. 2

Bevor ich direkt etwas über die Sammelbestellung schreibe, ein paar Hintergrundinformationen, warum ich bisher etwas zögerlich vorgegangen bin.
Bei mir im Umfeld stehen einige Änderungen an:
- ich werde mit meinem Studium fertig
- wechsel von Selbständigkeit in ein Angestelltenverhältnis

Deshalb bin ich zum einen gerade damit beschäftigt, Bewerbungsunterlagen zu erstellen und mein Portfolio aufzuarbeiten.
Zeitgleich nutze ich einige "Software Trainingstools" (firecode.io , stockfighter.io ) um mich auf Interviews vorzubereiten. (Es ist definitiv etwas anderes mit einem Kunden oder einem Personaler zu reden  ;) ).

Daraus gibt es eine gewisse Unsicherheit - zum einen würde ich gerne hier wohnen bleiben - bin jedoch auch offen für andere Städte (die mehrzahl der Angebote die ich bekommen habe, ist leider bei München  :-\ ) - zum anderen kann es schon ab August soweit sein, dass ich nochmals weniger Zeit habe als sonst auch  ;).
Daher habe ich mich im Moment etwas bedeckt gehalten und versucht einen Lösung für die aktuelle Situation zu finden.




So nun aber zu der Sammelbestellung und meinem aktuellen anliegen:
Ich würde gerne Feedback von euch bekommen, inwiefern der folgende Vorschlag für euch valide/okay ist - oder ober ihr es anders gehandhabt werden soll.


Durch die Ungewissheit wäre es mir erstmal Recht, nur Bausätze zur Verfügung zu stellen, denn die fertigen Controller haben sehr viel Zeit und Aufwand für mich bedeutet.

Der zweite Punkt ist der Preis des Bausatzes:

Aufschlüsselung der Kosten:




























Bauteil (Anzahl)Preis (Stück) Total Lieferant
Platine* (1x)0,79€ 0,79€* Elecrow
ESP8266 (ESP-12) (1x)2,00€2,00€* AliExpress
XM1584 DC-DC Wandler (1x)         0,55€0,55€* AliExpress
IRLZ44N (5x)0,38€ 1,90€ TME
470 µF Elko RM3.5 (1x)0,07€  0,07€  TME
100 µF Elko RM2.5 (1x)0,05€0,05€  TME
100n KerKo SMD0805 (1x)0,01€0,01€  TME
3er Terminal (1x)0,27€  0,27€  TME
2er Terminal (3x) 0,21€ 0,63€ TME
10k SMD 0805 (10x)0,01€ 0,10€ TME
1k SMD 0805 (1x)0,01€ 0,01€ TME
4er Stiftleiste (1x)0,04€ 0,04€ TME
3er Stiftleiste (1x)0,04€ 0,04€ TME
SMD Tactswitch (2x)0,07€ 0,14€ AliExpress

*) Beinhaltet Versandkosten (CN->DE) und anfallende Mehrwersteuer

Gesamt: 6,6€

Ich würde die Bausätze für 8€ anbieten. Die 1,4€ als Aufwandsentschädigung ansehen - es ist insgesamt doch eine Menge Zeit die investiert wurde/wird um Preislisten zu vergleichen, Bestellliste zu pflegen, Bauteile zu sortieren, verpacken und verschicken.

Ich werde im Google Formular noch eine Option einfügen: "Spende für die Firmware" - wer möchte kann dort einen Betrag eingeben und dieser wird dann später automatisch in die Berechnung des Endbetrags mit eingerechnet.

Warum das ganze?
Mich haben einige Nutzer gefragt wie/ob man mich für das Projekt unterstützen kann. Ich denke in den letzten Beiträgen bei dem die Integration von FHEM und dem Controller besprochen wird, wird auch deutlich sichtbar wieviel Arbeitszeit in die Firmware des Controllers schon geflossen ist  ;)



Ein weiterer Punkt ist die Stückzahl:
Um die oben genannten Preise zu erreichen, werden mindestens 100 Stück benötigt - danach können wir die Menge in 50er Schritte skalieren. Der Mengenrabatt nach den 100 Stück ist marginal - wenn die Menge aber massiv höher sein sollte, kann ich nochmals mit den Händlern (TME und Aliexpress Händler) in Kontakt treten und verhandeln

Zum Zeitplan
- Sammlung der Teilnehmer an der Sammelbestellung bis Mitte/Ende Juli (per google Formular)
- Danach 10 Tage zur Abwicklung der Bezahlung
- Gegen ende August kommen die Bauteile an
- Mitte/Ende September Versand der Bausätze


Last but not least:
Die Platine erhält ein paar Veränderungen:
- Silkscreen anpassen
- Lötpunkte "freundlicher" gestalten (Thermals)
- Jumper für externe Stromversorgung bzw. trennen des ESPs
- Layoutoptimierung

Eventuell (falls möglich)
- freie IOs werden an eine Pinleiste gelegt
- ADC wird wieder freigegeben

Bei konkreten Vorschlägen bin ich offen. Es wird vorerst keine Version 2.0 geben - denn die Veränderung der PINs (sodass i2c/spi frei wird) bricht erstmal die kompatibilität mit der Firmware. Im Moment möchte ich keine zwei Firmware Versionen pflegen.

Über eure Meinung/Feedback zum vorgehen bei Sammelbestellung 2 wäre ich euch sehr dankbar. In den nächsten Tage werde ich dann die ersten Posts im Thread "aufräumen" um wieder Übersichtlichkeit zu schaffen und dann kann es auch mit Sammelbestellung 2 losgehen

pjakobs

Zitat von: mrpj am 27 Juni 2016, 15:02:34

c)
Es gibt beim Espressif (nonos) SDK keine Threads - die Behandlung ist Interrupt gesteuert. Die Abarbeitung der Farb cmds ist mit einem Interrupt timer versehen.

Könnt ihr das getrennt von FHEM testen? Ich habe eher die Vermutung dass dies ein Problem in der Implementierung eurer Queue ist

Ich habe gerade mal die serielle Konsole vom Controller und das Log nebeineinander offen:


set LED_Sc hsv 240,10,100 q;set LED_Sc hsv 240,30,80 100 q;set LED_Sc hsv 3.9,97.7,65.9 600 q;set LED_Sc  hsv 3.9,97.7,0 900 q



ApplicationWebserver::onColor HSV  H 3.900000095 S 97.699996948 V 0. CT 2700
APPLedCtrl::led_callback
APPLedCtrl::save_color
ApplicationWebserver::onColor HSV  H 240. S 10. V 100. CT 2700
APPLedCtrl::led_callback
APPLedCtrl::save_color
ApplicationWebserver::onColor HSV  H 240. S 30. V 80. CT 2700
ApplicationWebserver::onColor HSV  H 3.900000095 S 97.699996948 V 65.900001526 CT 2700
ApplicationWebserver::onColor HSV  H 3.900000095 S 97.699996948 V 0. CT 2700



2016.06.27 15:18:01 3: LED_Sc (Set) called with off, busy flag is 0
2016.06.27 15:18:01 5: LED_Sc setting VAL to 0, keeping HUE 3.9 and SAT 97.7
2016.06.27 15:18:01 5: LED_Sc extended args raw: a=, b=
2016.06.27 15:18:01 5: LED_Sc t= 0
2016.06.27 15:18:01 5: LED_Sc extended args: t = 0, q = false, d = 1
2016.06.27 15:18:01 5: LED_Sc: called SetHSVColor 3.9, 97.7, 0, 2700, 0, solid, false, 1)
2016.06.27 15:18:01 4: LED_Sc: encoded json data: {"hsv":{"ct":"2700","h":"3.9","s":"97.7","v":"0"},"q":"false","t":"0","d":"1","cmd":"solid"}
2016.06.27 15:18:01 4: LED_Sc: set HSV color request
2016.06.27 15:18:01 5: LED_Sc send API Call $VAR1 = {
    'NAME' => 'LED_Sc',
    'NTFY_ORDER' => '50-LED_Sc',
2016.06.27 15:18:01 5: LED_Sc: calculated RGB as 000000
2016.06.27 15:18:01 4: LED_Sc: begin Readings Update
2016.06.27 15:18:01 5: LED_Sc (Set) called with hsv, busy flag is 1
name is LED_Sc, args $VAR1 = '240,10,100';
2016.06.27 15:18:01 3: LED_Sc (Set) called with hsv, busy flag is 1
2016.06.27 15:18:01 5: LED_Sc extended args raw: a=q, b=
2016.06.27 15:18:01 5: LED_Sc t= 0
2016.06.27 15:18:01 5: LED_Sc extended args: t = 0, q = true, d = 1
2016.06.27 15:18:01 5: LED_Sc: called SetHSVColor 240, 10, 100, 2700, 0, solid, true, 1)
2016.06.27 15:18:01 4: LED_Sc: encoded json data: {"q":"true","t":"0","hsv":{"h":"240","ct":"2700","s":"10","v":"100"},"d":"1","cmd":"solid"}
2016.06.27 15:18:01 4: LED_Sc: set HSV color request
2016.06.27 15:18:01 5: LED_Sc: calculated RGB as e6e6ff
2016.06.27 15:18:01 4: LED_Sc: begin Readings Update
2016.06.27 15:18:02 5: LED_Sc (Set) called with hsv, busy flag is 1
name is LED_Sc, args $VAR1 = '240,30,80';
2016.06.27 15:18:02 3: LED_Sc (Set) called with hsv, busy flag is 1
2016.06.27 15:18:02 5: LED_Sc extended args raw: a=100, b=q
2016.06.27 15:18:02 5: LED_Sc t= 0
2016.06.27 15:18:02 5: LED_Sc a is numeric (100), t= 100000
2016.06.27 15:18:02 5: LED_Sc extended args: t = 100000, q = true, d = 1
2016.06.27 15:18:02 5: LED_Sc: called SetHSVColor 240, 30, 80, 2700, 100000, fade, true, 1)
2016.06.27 15:18:02 4: LED_Sc: encoded json data: {"hsv":{"h":"240","ct":"2700","s":"30","v":"80"},"q":"true","t":"100000","d":"1","cmd":"fade"}
2016.06.27 15:18:02 4: LED_Sc: set HSV color request
2016.06.27 15:18:02 5: LED_Sc: calculated RGB as 8f8fcc
2016.06.27 15:18:02 4: LED_Sc: begin Readings Update
2016.06.27 15:18:02 5: LED_Sc (Set) called with hsv, busy flag is 1
name is LED_Sc, args $VAR1 = '3.9,97.7,65.9';
2016.06.27 15:18:02 3: LED_Sc (Set) called with hsv, busy flag is 1
2016.06.27 15:18:02 5: LED_Sc extended args raw: a=600, b=q
2016.06.27 15:18:02 5: LED_Sc t= 0
2016.06.27 15:18:02 5: LED_Sc a is numeric (600), t= 600000
2016.06.27 15:18:02 5: LED_Sc extended args: t = 600000, q = true, d = 1
2016.06.27 15:18:02 5: LED_Sc: called SetHSVColor 3.9, 97.7, 65.9, 2700, 600000, fade, true, 1)
2016.06.27 15:18:02 4: LED_Sc: encoded json data: {"hsv":{"ct":"2700","h":"3.9","s":"97.7","v":"65.9"},"t":"600000","q":"true","d":"1","cmd":"fade"}
2016.06.27 15:18:02 4: LED_Sc: set HSV color request
2016.06.27 15:18:02 5: LED_Sc: calculated RGB as a80c04
2016.06.27 15:18:02 4: LED_Sc: begin Readings Update
2016.06.27 15:18:02 5: LED_Sc (Set) called with hsv, busy flag is 1
name is LED_Sc, args $VAR1 = '3.9,97.7,0';
2016.06.27 15:18:02 3: LED_Sc (Set) called with hsv, busy flag is 1
2016.06.27 15:18:02 5: LED_Sc extended args raw: a=900, b=q
2016.06.27 15:18:02 5: LED_Sc t= 0
2016.06.27 15:18:02 5: LED_Sc a is numeric (900), t= 900000
2016.06.27 15:18:02 5: LED_Sc extended args: t = 900000, q = true, d = 1
2016.06.27 15:18:02 5: LED_Sc: called SetHSVColor 3.9, 97.7, 0, 2700, 900000, fade, true, 1)
2016.06.27 15:18:02 4: LED_Sc: encoded json data: {"t":"900000","q":"true","hsv":{"v":"0","s":"97.7","ct":"2700","h":"3.9"},"d":"1","cmd":"fade"}
2016.06.27 15:18:02 4: LED_Sc: set HSV color request
2016.06.27 15:18:02 5: LED_Sc: calculated RGB as 000000
2016.06.27 15:18:02 4: LED_Sc: begin Readings Update
2016.06.27 15:18:02 4: LED_Sc: got HSV color response
2016.06.27 15:18:02 5: LED_Sc: HSV color response data {"success":true}
2016.06.27 15:18:02 5: LED_Sc send API Call $VAR1 = {
    'NAME' => 'LED_Sc',
    'NTFY_ORDER' => '50-LED_Sc',
2016.06.27 15:18:02 4: LED_Sc: got HSV color response
2016.06.27 15:18:02 5: LED_Sc: HSV color response data {"success":true}
2016.06.27 15:18:02 5: LED_Sc send API Call $VAR1 = {
    'NAME' => 'LED_Sc',
    'NTFY_ORDER' => '50-LED_Sc',
2016.06.27 15:18:02 4: LED_Sc: got HSV color response
2016.06.27 15:18:02 5: LED_Sc: HSV color response data {"success":true}
2016.06.27 15:18:02 5: LED_Sc send API Call $VAR1 = {
    'NAME' => 'LED_Sc',
    'NTFY_ORDER' => '50-LED_Sc',
2016.06.27 15:18:02 4: LED_Sc: got HSV color response
2016.06.27 15:18:02 5: LED_Sc: HSV color response data {"success":true}
2016.06.27 15:18:02 5: LED_Sc send API Call $VAR1 = {
    'NAME' => 'LED_Sc',
    'NTFY_ORDER' => '50-LED_Sc',
2016.06.27 15:18:02 4: LED_Sc: got HSV color response
2016.06.27 15:18:02 5: LED_Sc: HSV color response data {"success":true}


Was passiert ist: das Log läuft relativ langsam bis etwa zum ersten "got HSV color response", von dort geht's deutlich flotter und erst dann werden die Calls auch im debug sichtbar.
Das gleiche gilt für sehr viel längere command-strings: die erste "response" wird erst verarbeitet, wenn der letzte Request gequeued ist.

Patrick scheint also recht zu haben, dass es auf der perl Seite liegt, denn am Anfang bekommt der Controller ja nur einen Request. 2ms warten vor jedem Request verändert das Verhalten nicht.

grüße

pj

pjakobs

Zitat von: mrpj am 27 Juni 2016, 15:28:41
Sammelbestellung v. 2

Bevor ich direkt etwas über die Sammelbestellung schreibe, ein paar Hintergrundinformationen, warum ich bisher etwas zögerlich vorgegangen bin.
Bei mir im Umfeld stehen einige Änderungen an:
- ich werde mit meinem Studium fertig
Glückwunsch!
Zitat von: mrpj am 27 Juni 2016, 15:28:41
- wechsel von Selbständigkeit in ein Angestelltenverhältnis
such Dir gut aus, wem Du Deine Arbeitskraft verkaufst und tu das nicht unter Preis  :)
Ich wünsch Dir viel Erfolg dabei!


Zitat von: mrpj am 27 Juni 2016, 15:28:41
Deshalb bin ich zum einen gerade damit beschäftigt, Bewerbungsunterlagen zu erstellen und mein Portfolio aufzuarbeiten.
Zeitgleich nutze ich einige "Software Trainingstools" (firecode.io , stockfighter.io ) um mich auf Interviews vorzubereiten. (Es ist definitiv etwas anderes mit einem Kunden oder einem Personaler zu reden  ;) ).

Daraus gibt es eine gewisse Unsicherheit - zum einen würde ich gerne hier wohnen bleiben - bin jedoch auch offen für andere Städte (die mehrzahl der Angebote die ich bekommen habe, ist leider bei München  :-\ ) - zum anderen kann es schon ab August soweit sein, dass ich nochmals weniger Zeit habe als sonst auch  ;).
das mit München kenn ich - ich hab selbst 12 Jahre dort gelebt und danach immer versucht, es nicht wieder zu müssen, nicht, dass die Region schlecht wäre, im Gegenteil, für den Segelflieger & Motorradfahrer in mir bietet sie viel, aber der mit normalem Gehalt erreichbare Lebensstandard ist geringer als hier im Norden.
Zitat von: mrpj am 27 Juni 2016, 15:28:41
Daher habe ich mich im Moment etwas bedeckt gehalten und versucht einen Lösung für die aktuelle Situation zu finden.




So nun aber zu der Sammelbestellung und meinem aktuellen anliegen:
Ich würde gerne Feedback von euch bekommen, inwiefern der folgende Vorschlag für euch valide/okay ist - oder ober ihr es anders gehandhabt werden soll.

Durch die Ungewissheit wäre es mir erstmal Recht, nur Bausätze zur Verfügung zu stellen, denn die fertigen Controller haben sehr viel Zeit und Aufwand für mich bedeutet.
find ich völlig in Ordnung, der Aufbau ist nicht übermäßig aufwendig.
Zitat von: mrpj am 27 Juni 2016, 15:28:41
Der zweite Punkt ist der Preis des Bausatzes:

Aufschlüsselung der Kosten:




























Bauteil (Anzahl)Preis (Stück) Total Lieferant
Platine* (1x)0,79€ 0,79€* Elecrow
ESP8266 (ESP-12) (1x)2,00€2,00€* AliExpress
XM1584 DC-DC Wandler (1x)         0,55€0,55€* AliExpress
IRLZ44N (5x)0,38€ 1,90€ TME
470 µF Elko RM3.5 (1x)0,07€  0,07€  TME
100 µF Elko RM2.5 (1x)0,05€0,05€  TME
100n KerKo SMD0805 (1x)0,01€0,01€  TME
3er Terminal (1x)0,27€  0,27€  TME
2er Terminal (3x) 0,21€ 0,63€ TME
10k SMD 0805 (10x)0,01€ 0,10€ TME
1k SMD 0805 (1x)0,01€ 0,01€ TME
4er Stiftleiste (1x)0,04€ 0,04€ TME
3er Stiftleiste (1x)0,04€ 0,04€ TME
SMD Tactswitch (2x)0,07€ 0,14€ AliExpress

*) Beinhaltet Versandkosten (CN->DE) und anfallende Mehrwersteuer

Gesamt: 6,6€

Ich würde die Bausätze für 8€ anbieten. Die 1,4€ als Aufwandsentschädigung ansehen - es ist insgesamt doch eine Menge Zeit die investiert wurde/wird um Preislisten zu vergleichen, Bestellliste zu pflegen, Bauteile zu sortieren, verpacken und verschicken.
Du hast, wenn ich das richtig sehe, den Versand in D nicht eingerechnet, den, nehme ich an, rechnest Du dann pro Paket drauf.
Ich finde den Preis für den Käufer mehr als nur fair, wenn Du mit den 1,40 Deinen Aufwand gedeckt siehst, gut. Von mir aus darfst Du auch nochmal was drauf legen, das ganze Projekt hat professionelle Qualität zum Bastlerpreis ;-)
Zitat von: mrpj am 27 Juni 2016, 15:28:41
Ich werde im Google Formular noch eine Option einfügen: "Spende für die Firmware" - wer möchte kann dort einen Betrag eingeben und dieser wird dann später automatisch in die Berechnung des Endbetrags mit eingerechnet.
das werd ich gerne nutzen.
Zitat von: mrpj am 27 Juni 2016, 15:28:41
Warum das ganze?
Mich haben einige Nutzer gefragt wie/ob man mich für das Projekt unterstützen kann. Ich denke in den letzten Beiträgen bei dem die Integration von FHEM und dem Controller besprochen wird, wird auch deutlich sichtbar wieviel Arbeitszeit in die Firmware des Controllers schon geflossen ist  ;)
und, wie oben gesagt, das Ergebnis kann sich sehen lassen.
Zitat von: mrpj am 27 Juni 2016, 15:28:41
Ein weiterer Punkt ist die Stückzahl:
Hier breche ich das Zitat mal ab: ich nehme 35% der angepeilten Mindeststückzahl ab. Sprich: 35 Stück.

Grüße

pj

herrmannj

Zitat von: pjakobs am 27 Juni 2016, 15:35:54
Ich habe gerade mal die serielle Konsole vom Controller und das Log nebeineinander offen:

Patrick scheint also recht zu haben, dass es auf der perl Seite liegt, denn am Anfang bekommt der Controller ja nur einen Request. 2ms warten vor jedem Request verändert das Verhalten nicht.
Hast recht, möglich, Sag nie nie und so.

Mangst Du das msec für das log setzen ? Ausserdem fehlt viel vom Dumper output - Da würde man sehen was er in der Q hat.
Ich kann das mit "dauert lange" so nicht so richtig sehen. Bei mir dauert der erste call auch sehr lange. Mal schauen ob es da gemeinsamkeiten gibt. Das mit dem response in Deiner Mail habe ich nicht ganz verstanden. Ich muss mir das später nochmal in Ruhe durchlesen :)

vg
joerg

pjakobs

#733
hier mit msec log


set LED_Sc off;set LED_Sc hsv 240,50,0 q;set LED_Sc val 100 1 q;set LED_Sc val 0 1 q;set LED_Sc val 100   1 q;set LED_Sc val 0 1 q;set LED_Sc val 100 1 q;set LED_Sc val 0 1 q;set LED_Sc val 100 1 q;set LED_Sc    val 0 1 q;set LED_Sc val 100 1 q;set LED_Sc val 0 1 q;set LED_Sc val 100 1 q;set LED_Sc val 0 1 q;set     LED_Sc val 100 1 q;set LED_Sc val 0 1 q;set LED_Sc val 100 1 q;set LED_Sc val 0 1 q;set LED_Sc val 100 1  q;set LED_Sc val 0 1 q;set LED_Sc val 100 1 q;set LED_Sc val 0 1 q;set LED_Sc
val 100 1 q;set LED_Sc val 0 1 q;


debug zu groß, daher im Anhang:

mrpj

Etwas Offtopic:

Zitat von: pjakobs am 27 Juni 2016, 15:57:14
Glückwunsch!
such Dir gut aus, wem Du Deine Arbeitskraft verkaufst und tu das nicht unter Preis  :)
Ich wünsch Dir viel Erfolg dabei!

Hat alles seine Vor- und Nachteile. Die Selbständigkeit neben dem Studium hat mir viel Flexibilität erlaubt und ich habe einiges gelernt. Gerade suche ich etwas mehr "Beständigkeit" - das Projektgeschäft ist spannend und gut bezahlt - nur nicht immer so gut vorherzusagen  ;). Merke das ein anderer Abschnitt ansteht - wird aber nicht umbedingt einfach den Wunschjob zu finden (Ich hätte gernen einen gewissen Anteil meiner Arbeitszeit um entweder "eigene Projekte im Unternehmen" zu verwirklichen und/oder für Weiterbildung (auch nicht umbedingt direkt in dem aktuellen Arbeitsbereich).

Zitat von: pjakobs am 27 Juni 2016, 15:57:14
das mit München kenn ich - ich hab selbst 12 Jahre dort gelebt und danach immer versucht, es nicht wieder zu müssen, nicht, dass die Region schlecht wäre, im Gegenteil, für den Segelflieger & Motorradfahrer in mir bietet sie viel, aber der mit normalem Gehalt erreichbare Lebensstandard ist geringer als hier im Norden.

München und Umland sind eine schöne Gegend, aber wie du schon geschrieben hast, finde ich auch den allgemeinen Lebensstandard geringer (auch wenn die Gehälter höher sind). Ich würde daher gerne in der Region um Nürnberg bleiben - auch wenn die Franken "ein eigenes Volk" sind und in nördlicheren Bereichen die Menschen zugänglicher sind  ;)





Zitat von: pjakobs am 27 Juni 2016, 15:57:14
Ich finde den Preis für den Käufer mehr als nur fair, wenn Du mit den 1,40 Deinen Aufwand gedeckt siehst, gut. Von mir aus darfst Du auch nochmal was drauf legen, das ganze Projekt hat professionelle Qualität zum Bastlerpreis ;-)

Na dann frage ich einfach mal: was ist deiner Meinung nach ein gerechtfertigter Preis? (Bei der letzten Sammelbestellung war der Preis für "Nachzügler" 8,5 Euro, da ich einiges in Vorleistung gegangen bin)
Alternative Möglichkeit: Mindestpreis von X Euro und man kann selbst seinen Wunschpreis angeben? (Wobei ich diesen Faktor in dem Punkt "Firmwarespende" gesehen hatte)


Zitat von: pjakobs am 27 Juni 2016, 15:57:14ich nehme 35% der angepeilten Mindeststückzahl ab. Sprich: 35 Stück.

:o - was hast du denn vor mit sovielen Controllern?

Ich habe jetzt wirklich mal überlegt was man mit sovielen machen kann  ;)
- die Nachbarschaft mit der eigenen Beleuchtung erblinden (wie diese Ominösen "american style" Weihnachtsbeleuchtungen)
- den Keller in eine Discothek verwandeln
- eine Statue von seiner Ikone in unterschiedlichsten Farbmischungen beleuchten
- ein Lebensgroßes Modell vom Start Trek Cockpit bauen und die Controller für die Beleuchtungseffekte nutzen
... to be continued  ;)