Wifilight mit Bewegungsmelder

Begonnen von daniel2311, 17 Dezember 2015, 23:30:26

Vorheriges Thema - Nächstes Thema

daniel2311

Hallo zusammen,
ich habe ein kleines Problem, was ich nicht zu lösen weiß. Ich habe zwei Magic-UFOs mit RGBW-LEDs und im Flur einen Bewegungsmelder. Sobald dieser auslöst, sollen die LEDs für eine gewisse Zeit angehen. Leider gehen sie recht häufig einfach nicht an. Warum keine Ahnung

Zum Setup:

Das Device wurde mit dev RGBW LD382A:192.168.178.186 angelegt.

Der Bewegungsmelder wie folgt:
MD_Treppe:motion set pushmsg msg 'Bewegung';set LED_Treppe,LED_FLUR HSV 180,100,100;sleep 35.0;set LED_Treppe,LED_FLUR HSV 0,0,0

Die Pushmsg habe nur eingebaut, um zu überprüfen, ob der Bewegungsmelder auslöst. Das tut er meistens. Das Licht aber sporadisch an oder nicht.

Kann hier jemand helfen? Kann ich irgendetwas loggen oder ähnliches, was hilfreich wäre? Manuell lassen sich die LED-Leisten problemlos anmachen.

herrmannj

Hi

ja, schau mal im log, die beiden led auf verbose 4 oder 5 setzen. Dann sieht man das/ob die set HSV Befehle an das Wifilight modul gehen.

vg
joerg

daniel2311

Hi Joerg,

vielen Dank für deine Hilfe - folgendes steht im Log - LED_Treppe ist nicht angesprungen LED_Flur allerdings schon:

2015.12.18 00:34:45 5: LED_Treppe prepare start hsv transition (is actual) hsv 0, 0, 0, 1450395285.34863
2015.12.18 00:34:45 4: LED_Treppe current HSV 0, 0, 0
2015.12.18 00:34:45 3: LED_Treppe set HSV 180, 100, 100 with ramp: 0, flags:
2015.12.18 00:34:45 4: LED_Treppe hsv transition without ramp routed to direct settings, hsv 180, 100, 100
2015.12.18 00:34:45 4: LED_Treppe high level cmd queue add hsv/ctrl 180, 100, 100, ctrl , targetTime 1450395285.34863, qlen 1
2015.12.18 00:34:45 5: LED_Treppe high level cmd queue exec dropper delay: -0.000446796417236328
2015.12.18 00:34:45 4: LED_Treppe high level cmd queue exec hsv 180, 100, 100, delay 100, hl qlen 1, ll qlen 0, lock 0
2015.12.18 00:34:45 4: LED_Treppe RGBW LD382A set h:180, s:100, v:100
2015.12.18 00:34:45 5: LED_Treppe low level cmd queue add 3100ff9500000fd4, qlen 1
2015.12.18 00:34:45 5: LED_Treppe low level cmd queue qlen 1, send 3100ff9500000fd4
2015.12.18 00:34:45 5: LED_Treppe low level cmd queue add 00, qlen 2
2015.12.18 00:34:45 4: LED_Treppe high level cmd queue ask next 1450395285.45272
2015.12.18 00:34:45 5: LED_FLUR prepare start hsv transition (is actual) hsv 180, 100, 0, 1450395285.35328
2015.12.18 00:34:45 4: LED_FLUR current HSV 180, 100, 0
2015.12.18 00:34:45 3: LED_FLUR set HSV 180, 100, 100 with ramp: 0, flags:
2015.12.18 00:34:45 4: LED_FLUR hsv transition without ramp routed to direct settings, hsv 180, 100, 100
2015.12.18 00:34:45 4: LED_FLUR high level cmd queue add hsv/ctrl 180, 100, 100, ctrl , targetTime 1450395285.35328, qlen 1
2015.12.18 00:34:45 5: LED_FLUR high level cmd queue exec dropper delay: -0.000509977340698242
2015.12.18 00:34:45 4: LED_FLUR high level cmd queue exec hsv 180, 100, 100, delay 100, hl qlen 1, ll qlen 0, lock 0
2015.12.18 00:34:45 4: LED_FLUR RGBW LD382A set h:180, s:100, v:100
2015.12.18 00:34:45 5: LED_FLUR low level cmd queue add 3100ff9500000fd4, qlen 1
2015.12.18 00:34:45 5: LED_FLUR low level cmd queue qlen 1, send 3100ff9500000fd4
2015.12.18 00:34:45 4: LED_FLUR low level cmd queue send 3100ff9500000fd4, qlen 1 connection refused: trying to reconnect
2015.12.18 00:34:45 5: LED_FLUR low level cmd queue add 00, qlen 2
2015.12.18 00:34:45 4: LED_FLUR high level cmd queue ask next 1450395285.60892
2015.12.18 00:34:45 5: LED_Treppe | LED_Treppe unlock queue 0
2015.12.18 00:34:46 5: LED_FLUR | LED_FLUR unlock queue 0



Unterschied: 2015.12.18 00:34:45 4: LED_FLUR low level cmd queue send 3100ff9500000fd4, qlen 1 connection refused: trying to reconnect
Verrückterweise hat es, obwohl hier der Fehler aufgetreten ist, das connection refused und der anschließende reconnect offensichtlich geholfen?

daniel2311

Test 2 - verrückterweise ist jetzt das LED_Treppe angegangen und Flur ausgeblieben:

2015.12.18 00:40:44 5: LED_Treppe prepare start hsv transition (is actual) hsv 0, 0, 0, 1450395644.19577
2015.12.18 00:40:44 4: LED_Treppe current HSV 0, 0, 0
2015.12.18 00:40:44 3: LED_Treppe set HSV 180, 100, 100 with ramp: 0, flags:
2015.12.18 00:40:44 4: LED_Treppe hsv transition without ramp routed to direct settings, hsv 180, 100, 100
2015.12.18 00:40:44 4: LED_Treppe high level cmd queue add hsv/ctrl 180, 100, 100, ctrl , targetTime 1450395644.19577, qlen 1
2015.12.18 00:40:44 5: LED_Treppe high level cmd queue exec dropper delay: -0.000446081161499023
2015.12.18 00:40:44 4: LED_Treppe high level cmd queue exec hsv 180, 100, 100, delay 100, hl qlen 1, ll qlen 0, lock 0
2015.12.18 00:40:44 4: LED_Treppe RGBW LD382A set h:180, s:100, v:100
2015.12.18 00:40:44 5: LED_Treppe low level cmd queue add 3100ff9500000fd4, qlen 1
2015.12.18 00:40:44 5: LED_Treppe low level cmd queue qlen 1, send 3100ff9500000fd4
2015.12.18 00:40:44 4: LED_Treppe low level cmd queue send 3100ff9500000fd4, qlen 1 connection refused: trying to reconnect
2015.12.18 00:40:44 5: LED_Treppe low level cmd queue add 00, qlen 2
2015.12.18 00:40:44 4: LED_Treppe high level cmd queue ask next 1450395644.45512
2015.12.18 00:40:44 5: LED_FLUR prepare start hsv transition (is actual) hsv 0, 0, 0, 1450395644.35553
2015.12.18 00:40:44 4: LED_FLUR current HSV 0, 0, 0
2015.12.18 00:40:44 3: LED_FLUR set HSV 180, 100, 100 with ramp: 0, flags:
2015.12.18 00:40:44 4: LED_FLUR hsv transition without ramp routed to direct settings, hsv 180, 100, 100
2015.12.18 00:40:44 4: LED_FLUR high level cmd queue add hsv/ctrl 180, 100, 100, ctrl , targetTime 1450395644.35553, qlen 1
2015.12.18 00:40:44 5: LED_FLUR high level cmd queue exec dropper delay: -0.000365972518920898
2015.12.18 00:40:44 4: LED_FLUR high level cmd queue exec hsv 180, 100, 100, delay 100, hl qlen 1, ll qlen 0, lock 0
2015.12.18 00:40:44 4: LED_FLUR RGBW LD382A set h:180, s:100, v:100
2015.12.18 00:40:44 5: LED_FLUR low level cmd queue add 3100ff9500000fd4, qlen 1
2015.12.18 00:40:44 5: LED_FLUR low level cmd queue qlen 1, send 3100ff9500000fd4
2015.12.18 00:40:44 5: LED_FLUR low level cmd queue add 00, qlen 2
2015.12.18 00:40:44 4: LED_FLUR high level cmd queue ask next 1450395644.45953
2015.12.18 00:40:44 5: LED_Treppe | LED_Treppe unlock queue 0
2015.12.18 00:40:44 5: LED_FLUR | LED_FLUR unlock queue 0


Und wieder das Connection refused und der reconnect: 2015.12.18 00:40:44 4: LED_Treppe low level cmd queue send 3100ff9500000fd4, qlen 1 connection refused: trying to reconnect

herrmannj

das sind "Störungen" im WLAN, vielleicht schlechter Empfang.

Das re-connect ist daher gut. Wifilight erfährt vom OS das die Verbindung weg ist, baut sie neu auf und dann geht es (wieder). Leider merkt auch das OS nicht in alles Fällen das die Verbindung weg war - das sind die Fälle wo ins Nirvana gesendet wird.

Warum das "sonst" geht und in dieser Konstellation (Bewegungsmelder) nicht - da kam man nur spekulieren. Bau doch mal leichte delays ein (1 sec oder so), einmal nach pushmail und dann ein zweites zwischen dem ersten und dem zweiten ld382. Vielleicht hilft das ja.

vg
joerg

daniel2311

Hi Joerg,

das ist nicht so gut. Ist auch noch Windows. Vllt. gibt es da noch mal mehr Probleme. Ich habe jetzt mal probiert nur einen LD382 anzusprechen, aber das hat nichts gebracht.
Jetzt habe ich mal 0,5 s Pause eingebaut und sende einfach erneut den Befehl.

Ich melde mich, wenn ich was neues weiß.

herrmannj

Hi

ich kann mir nicht vorstellen das es was mit Windows zu tun hat. Schau halt mal ob die 0,5s das verändern. Die pushmsg könntest DU auch testweise entfernen.

vg
joerg

daniel2311

Die Pushmsg war ja ursprünglich nur, um zu gucken, ob der Bewegungsmelder es tatsächlich tut. Da war ich mir nämlich nicht so sicher.
Was spricht eigentlich dagegen nach jedem Command den Socket zu schließen und wieder neu zu öffnen?

daniel2311

Also die 0,5s haben nichts geändert!
Ich habe jetzt das Modul umprogrammiert und er macht jetzt jedes mal ein Socket auf. Jetzt funktioniert es tadellos, zumindest für meinen Anwendungsfall funktioniert das prima.

herrmannj

na denn. Bei fades geht die Geschwindigkeit halt runter. Vielleicht finden wir ja noch einen Weg den tcp state (WAIT_ACK) auszulesen. Das sollte ein Indiz sein. Aber so ist ja erstmal ok

vg
joerg

daniel2311

Hi Joerg,

das kann ich auch mir noch mal anschauen, was wirklich über die Leitung geht mit einem Sniffer. Ich muss sagen, ich bin nicht ganz firm in Perl-Socket-Programmierung bzw. sogar in Perl, aber ist ja auch kein Hexenwerk.
2 Variante, die vllt. ein wenig schmutzig ist, aber möglicherweise Funktional, man merkt sich einfach, wann zuletzt auf den Socket geschrieben wurde, ist dies Länger als 5 sek oder so her, dann erstellt man einen neuen Socket. Dann hätte man zumindest das Problem bei fades nicht, weil dann ja regelmäßig geschrieben wird.

daniel2311

Hallo Joerg,

ich habe etwas interessantes hier gelesen. http://forum.fhem.de/index.php/topic,41567.msg338073.html#msg338073

Wie macht man es denn richtig?

Eigentlich sollte es bei mir so aussehen: Schalte ich WifiLight manuell an, dann soll es halt an bleiben. Wobei mir das nicht ganz wichtig wäre. Sonst sollte es bei Bewegung an x Sekunden wieder ausgehen. Ich habe einmal Bewegungsmelder und auch so Türsensoren. Aktuell mache ich es über ein Sleep. Nachteil ist. Das funktioniert bei einer Bewegung gut. Ich gehe die Treppe runter und das Licht geht an. Kommt 30 sek später noch jemand runter, wird das Licht zwar theoretisch noch einmal eingeschaltet, aber anschließend kommt das off vom ersten Signal und schon steht man im Dunkeln da.
Mit einem set on-for-timer könnte man so etwas einfacher lösen. Der würde die Zeit immer wieder nach oben setzen. War auch schon am überlegen, ob ich so etwas einbaue. Aber ich dachte, ich frage erst einmal den Experten.

herrmannj

Zitatich habe etwas interessantes hier gelesen.
ganz was anderes, das ist ein Entwickler Ding. Da gehts um die rekursion und damian hat was eingebaut.

Das mit dem Bewegungsmelder löst Du am besten mit einem DOIF. DOIF ist sehr mächtig, schau Dir mal die cmd ref an.

vg
joerg


daniel2311

Okay, dann habe ich das missverstanden ;)

DOIF ist ein guter Hinweis. Habe auch schon etwas diesbzgl. gefunden, was ich nur mal an meine Bedürfnisse anpassen muss!

Erneut vielen Dank!