Wifilight.pm

Begonnen von herrmannj, 18 Januar 2014, 04:10:07

Vorheriges Thema - Nächstes Thema

noice

Zitat von: herrmannj am 06 November 2015, 00:22:05
Hi,

ramp:
Dieser Parameter steuert einen weichen Übergang zwischen zwei Zuständen und wird in Sekunden angegeben.
Beispiel:
set <name> on : schaltet die LED sofort an.
set <name> on 20 : Die LED wird über einen Zeitraum von 20 Sekunden weich hoch-gedimmt.

queue:
Angenommen das Modul arbeitet gerade intern eine Transition, also dem weichen Übergang zu einem anderen Zustand (siehe ramp), ab. Der user setzt während der Transition einen weiteren Befehl für die LED ab.

Ohne den Parameter "q" wird die laufende Transition sofort unterbrochen und der neue Befehl wird ausgeführt.
Mit dem Parameter "q" wird der neue Befehl in eine interne Queue geschrieben und erst bearbeitet nachdem die laufende Transition, und alle vorher in die Queue geschriebenen Befehle, abgearbeitet wurden.

Dadurch wird es möglich das mit einem Befehl mehrere ganz unterschiedliche Farb- oder Helligkeitswechsel an das modul übergibt die dann nacheinander abgearbeitet werden.

direction:
Im HSV Farbraum entsprechen die Farben einem Winkel (0° Rot, 120° Grün, 240° Blau). Der weiche Übergang von einer Farbe zu einer anderen wird Standardmäßig auf dem "kürzesten Weg" durchlaufen. Der Wechsel von Grün auf Rot sieht also so aus: 120°, 119°, 118°, ... 2°, 1°, 0°.  Das entspricht der default direction "s" für "short" - dem kürzesten Weg.

Mit dem Flag "l" für "long" (langer Weg) wird die gleiche Transition jetzt mit dem "Umweg" über Blau ausgeführt, also so: 120°, 121°, 122°, ... 358°, 359°, 360° ( = 0°).

Für "event" gibt es einen guten Post, den muss ich suchen. "event" benötigt man allerdings selten, da geht es um die Synchronisation mit anderen Prozessen und der Möglichkeit komplexe Farbwechsel programmieren und unbegrenzt wiederholen zu können.

vg
joerg
Super erklärt. .. danke dafür

:-*

Mobil erstellt daher kurz gehalten

BananaPI, RaspberryPi+AddonBoard,HMLAN,  miniCUL 433,nanoCUL 433,nanoCUL868,FHEMduino 433, Jeelink clone diverse Homematic, FS20, MAX, TFA und IT Komponenten.
10" Tablet mit andFhem, Daitem D14000

pula

Danke für die super Erklärung!
Da dem eigentlich nicht wirklich viel hinzuzufügen ist, habe ich mir erlaubt, Deinen Text 1:1 ins Wiki zu geben, ich hoffe das passt.
Sobald Du was zu den events hast, werde ich das auch noch eintragen...

Danke nochmal!

Cheers,

Pula
fhem (debian auf proxmox), HM-LAN und wired, MySensors, FritzBoxes, Kodi, vdr, Onkyo, squeezeplayers, nanoCUL, wifilight (Ethernet-Bridge), Heizungssteuerung (python/vncdotool), doorpi, ESP/Arduinos/MQTT, Alexa, HomeConnect, Sonoff/Tasmota, espRGBWW, esphome, Telegram

AxelSchweiss

Ich habe mein Problem jetzt mal einer "LD-Scene-Inspection" unterzogen  8)

Ursächlich scheint ein Disconnect der WLAN Verbindung zu sein. Anscheinend schwankt an dem Aufstellort des UFOs die Signalstärke sehr stark.
(Obwohl das keine 10 Meter vom WLAN-Router entfernt ist ... nun ja ... HF-Technik eben)

Auf jeden Fall steht bei FHEM noch die Connection ... auch wenn das UFO gar nicht mehr erreichbar ist ... für mindestens 30 Minuten.
tcp        0      1 fhem.cyberdyne.de:56652 LD382.cyberdyne.de:5577 LAST_ACK
Während dieser Zeit kann ich da Kommandos aus FHEM senden ohne das es einen Fehler gibt.

Das gilt übrigens auch wenn das UFO schon wieder erreichbar (Ping) ist. Also vor den 30 Minuten.
Dann sieht der netstat so aus:
tcp        0      0 fhem.cyberdyne.de:57241 LD382.cyberdyne.de:5577 ESTABLISHED
tcp        0      1 fhem.cyberdyne.de:56652 LD382.cyberdyne.de:5577 LAST_ACK


In Summe scheint das ganze Problem an dem kaputten TCP-Stack im UFO zu liegen.
(Wenn Alien's so ihre UFO's bauen brauchen wir uns um bösen Besuch keine Sorgen zu machen.)

Die Lösung für das Problem stellt sich .... in der uneleganten Variante .... so dar.
Warten bis keine Connection mehr angezeigt wird und dann erst ein Kommando auslösen.

Das ist natürlich unschick. Daher eine Bitte ( kriech, winsel, sabber)
Kann man in das Modul ein "MaxAge" für die Connection einrichten damit nach erreichen diese Werts die Connection terminiert und wieder neu aufgebaut wird?
Auch eine Möglichkeit wäre das die Connection bei erreichen von MaxAge abgebaut wird und erst wieder bei Bedarf aufgebaut wird.

Noch eine Erfahrung:
Es scheint auch so zu sein das das UFO kein Reconnect bei einer verloren gegangenen WLAN-Verbindung macht.

Übrigens habe ich diese neuere ... Non-Gui Version des UFOs ... leider



herrmannj

Lass mich mal drüber grübeln. Das mit MaxAge könnte man - ist aber irgendwie uncool.

Wenn ich aus der connection die Info "LAST_ACK" vs. "ESTABLISHED" raus bekomme würde ich das doch Deiner Beobachtung nach messen können ? Solange das Ding auf "ESTABLISHED" steht ist alles grün, bei "LAST_ACK" muss ich die connection umbringen :-D und 'ne neue aufbauen ? Oder ?

Fragt sich nur wie man da (os übergreifend ?) rankommt ....

vg
joerg

herrmannj

Übrigens, Danke für die Untersuchung !

Das mit "WLAN doof" war auch mein Verdacht..

Magst Du testweise mal dort: (list hier ab Zeile 3217...) was einsetzen:

  # TCP LW12
  if ($ledDevice->{PROTO})
  {
    Log3 ("LED-TEST", 1,  getpeername($ledDevice->{helper}->{SOCKET})) if ($ledDevice->{helper}->{SOCKET});
    if (!$ledDevice->{helper}->{SOCKET} || ($ledDevice->{helper}->{SELECT}->can_read(0.0001) && !$ledDevice->{helper}->{SOCKET}->recv(my $data, 512)))
    {
      Log3 ($ledDevice, 4, "$ledDevice->{NAME} low level cmd queue send $dbgStr, qlen ".@{$ledDevice->{helper}->{llCmdQueue}}." connection refused: trying to reconnect");

      $ledDevice->{helper}->{SOCKET}->close() if $ledDevice->{helper}->{SOCKET};

Achtung, ist ungetestet !!! Mach ein backup ;-)

Wenns geht ist die Frage ob im log ein Unterschied an der Stelle sichtbar ist. Mit dem trick könnte es gehen.

vg
joerg

pula

Hi,

hmm.... habe jetzt noch folgendes Problemchen...
Wenn ich in fhemweb auf das icon klicke, das bei einer wifilight-lampe angezeigt wird (glühbirne), bekomme ich:
unknown command (toggle): choose one of on off dim dimup dimdown HSV RGB sync pair unpair

Hätte eigentlich erwartet, daß die lampe dann aus/ein-schaltet. ich weiß, daß wifilight kein toggle kennt, aber weiß jemand, wie man das umstellt?

Cheers,

Pula
fhem (debian auf proxmox), HM-LAN und wired, MySensors, FritzBoxes, Kodi, vdr, Onkyo, squeezeplayers, nanoCUL, wifilight (Ethernet-Bridge), Heizungssteuerung (python/vncdotool), doorpi, ESP/Arduinos/MQTT, Alexa, HomeConnect, Sonoff/Tasmota, espRGBWW, esphome, Telegram

AxelSchweiss

Zitat von: herrmannj am 06 November 2015, 23:08:18
    Log3 ("LED-TEST", 1,  getpeername($ledDevice->{helper}->{SOCKET})) if ($ledDevice->{helper}->{SOCKET});

Klar mach ich .
Ich möchte aber vorher noch einem Verdacht nachgehen.
Es kann sein das DIE eine Stromsparfunktion eingebaut haben. Das würde auch das gezackte Bild des Stromverbrauchs in Ruhe erklären.
Mich würde dann nicht wundern wenn das UFO schlicht einfach nicht mehr aufwacht.
Habe jetzt mal alle 5 Minuten einen ping laufen ... mal sehen ob das UFO bis morgen überlebt.

Dann baue ich deinen Code mal ein  ...

Danke noch für dein Engagement und die Hilfe.

herrmannj

Ja probier mal. Halte das aber in dieser Konstellation für wenig wahrscheinlich. Die App muss das Dings ja auch an bekommen. Der Unterschied zur App ist das die App die Verbindung immer neu aufbaut (das geht bei Transitions nicht, way tooo slow ;-) ). Wenn der komplett schläft kommt die app ja auch nicht mehr rauf.

vg
joerg

herrmannj

Zitat von: pula am 06 November 2015, 21:48:59
Danke für die super Erklärung!
Da dem eigentlich nicht wirklich viel hinzuzufügen ist, habe ich mir erlaubt, Deinen Text 1:1 ins Wiki zu geben, ich hoffe das passt.
Sobald Du was zu den events hast, werde ich das auch noch eintragen...

Danke nochmal!

Cheers,

Pula

Super, Danke!

herrmannj

Zitat von: pula am 06 November 2015, 23:10:47
Hi,

hmm.... habe jetzt noch folgendes Problemchen...
Wenn ich in fhemweb auf das icon klicke, das bei einer wifilight-lampe angezeigt wird (glühbirne), bekomme ich:
unknown command (toggle): choose one of on off dim dimup dimdown HSV RGB sync pair unpair

Hätte eigentlich erwartet, daß die lampe dann aus/ein-schaltet. ich weiß, daß wifilight kein toggle kennt, aber weiß jemand, wie man das umstellt?

Cheers,

Pula

Mal so probiert :
attr <name> webCmd RGB
attr <name> widgetOverride RGB:colorpicker,RGB

vg
joerg

hawkeyexp

Zitat von: budy am 05 November 2015, 21:07:27
Kleiner Pythonserver für den LD382A mit RGBW

Moin,

so - auf mehrfachen Wunsch hänge ich mal mein aktuelles Python-Script an, welches ich verwende, um auf dem LD382A vernüftige Transitions zu bekommen, da die Transitions von Wifilight, zumindest mit dem LD382A, nicht so toll gehen. Die Benutzung ist denkbar einfach...es gibt nur zwei Modes:

- single shot Mode: benötigt die Adresse des Controllers und ein HSI Triplet (HUE,SAT,INT)
- server Mode: benötigt nur die Controller-Adresse, z.B. so: ./ld382a_0.2.3.py -C [IP]

Der Server öffnet dann einen Socket auf Port 5382 und wartet dort darauf, dass jemand mit ihm spricht. Das muss nicht FHEM sein, aber Sinn machte das natürlich schon. ;) Man kann dem Teil aber auch mal zwischendurch ganz simpel direkt über die Shell was zu tun geben. Z.B. so:

# Einen HSI-Wert direkt setzen:
echo "s,120,0,100" > /dev/tcp/127.0.0.1/5832
# Eine Transition lin 4s von Aus/rot nach Voll/grün laufen lassen:
echo "t,0,0,0,120,0,100,4" > /dev/tcp/127.0.0.1/5832
# Einen RGBW-Set direkt setzen, wie z.B. "All-On":
echo "r,255,255,255,255" > /dev/tcp/127.0.0.1/5832
# Last but not least: Effekt starten
echo "e,fire,5" > /dev/tcp/127.0.0.1/5832


Ich habe mir für die einzelnen Kommandos jeweils kleine Subs in der 99_myUtils.pm gemacht, welche ich dann entsprechend aufrufe. Das einzige, woran ich ein wenig knacken musste, war der Feuer-Effekt und das aus folgendem Grund:
der Effekt selber darf nicht zu lange laufen, weil der Server ja unabhängig vom FHEM läuft und man ggf. nicht 30s warten möchte, wenn man den Effekt abschalten will. Von daher benutze in den INTERNALTIMER, wenn ich das Feuer starte

Der Server selber arbeitet über einen Ringpuffer mit 16 Slots (kann man aber leicht im Skript ändern), schiebt man mehr Kommandos rein, dann wird er Puffer von hinten überschrieben... Für meine Zwecke reicht das erst mal... und ich suche noch nach einer Möglichkeit ggf. alle Kommandos zu löschen... Irgendwie habe ich neulich, den Contoller mit meiner Feuer-Simulation überfordert und er wollte gar nicht mehr aufhören, obwohl der Server selbst gar keine Daten mehr an den Controller gesendet hat.
Irgendwie hat dann allerdings die iOS App es dennoch geschafft den Controller zu bändigen, da muss ich ggf. noch mal in LAN mitsniffen.

Weiterer wichtiger Punkt betrifft die Farbkorrektur. Bei meinem Gespann ist Rot im Vergleich zu Grünm und Blau deutlich weniger hell. Ich habe mich bei der Kalibration am Vorgehen orientiert, wie es auch am Anfang dieses Threads von Jörg empfohlen wurde. Gelb einstellen und sehen, wie weit man bei Grün runterdrehen muss, damit es auch einigermaßen Gelb wird. Dasselbe bei Magenta...

Die Werte für die Korrektur habe ich als Parameter in der Funktion hsi2rgbw über die Variablen rFactor,gFactor,bFactor eingegeben und da muss ggf. jeweils angepasst werden, aber das sieht man dann ja.

Tja, dann mal viel Spaß und bei Fragen/Problemen werde ich tun, was ich kann. Ach ja... und Verbesserungs-Vorschläge werden gerne genommen, denn Python ist nicht meine Muttersprache... ;)

Gruß,
Stephan

Hi Stephan,

zwei Tage mal busy und schon kommt da der Knaller schlechthin! - Ich kann nur sagen genial bei den ersten Tests! Die Übergänge sind mal mehr als Butterweich - einfach Megaklasse.

Ich halt mich heute erstmal etwas kurz und muss etwas spielen gehen :-)

PS: In den Beispielen haste nen Tippfehler drin - Port 5382 wurde zu 5832 :-) Führte zu einer Millisekunde Frust :-)

pula

Zitat von: herrmannj am 07 November 2015, 00:13:54
Mal so probiert :
attr <name> webCmd RGB
attr <name> widgetOverride RGB:colorpicker,RGB

vg
joerg

Ja, ist eigentlich so eingestellt:

define wz_led_wand WifiLight RGBW2 bridge-V3:192.168.1.28
attr wz_led_wand devStateIcon {Color_devStateIcon(ReadingsVal($name,"RGB","000000"))}
attr wz_led_wand room Beleuchtung,kueche
attr wz_led_wand webCmd on:off:RGB
attr wz_led_wand widgetOverride RGB:colorpicker,RGB


Trotzdem ist da das Icon (die Glühbirne) und wenn ich draufdrücke bekomm ich den toggle-Fehler....
fhem (debian auf proxmox), HM-LAN und wired, MySensors, FritzBoxes, Kodi, vdr, Onkyo, squeezeplayers, nanoCUL, wifilight (Ethernet-Bridge), Heizungssteuerung (python/vncdotool), doorpi, ESP/Arduinos/MQTT, Alexa, HomeConnect, Sonoff/Tasmota, espRGBWW, esphome, Telegram

budy

#1632
Moin,

Zitat von: hawkeyexp am 07 November 2015, 04:22:20
Hi Stephan,

zwei Tage mal busy und schon kommt da der Knaller schlechthin! - Ich kann nur sagen genial bei den ersten Tests! Die Übergänge sind mal mehr als Butterweich - einfach Megaklasse.

Ich halt mich heute erstmal etwas kurz und muss etwas spielen gehen :-)

Ach herrjeh... ;) Da ich bin ja froh, dass es bei dir auch so gut läuft, wie bei mir.

Zitat von: hawkeyexp am 07 November 2015, 04:22:20PS: In den Beispielen haste nen Tippfehler drin - Port 5382 wurde zu 5832 :-) Führte zu einer Millisekunde Frust :-)

Arghh... danke - das habe ich eben korrigiert.

Vorgestern Abend hat mit der Feuer-Effekt wieder den LD oder den FHEM lahm gelegt, so genau weiß ich das nicht, aber auf alle Fälle konnte ich den Effekt nicht wieder beenden. Für den Fall, dass du mal den Server in Hintergrund beobachten willst, was ganz praktisch sein kann, starte den über screen in einem virtuellen Terminal, dann kannst du dir die Ausgaben ansehen.

Gruß,
Stephan
Debian stretch, FHEM 5.9.
HM-CC-RT-DN, HM-ES-PMSw1-Pl, HM-LC-Dim1TPBU-FM, HMUARTLGW, HMLAN, HM-SEC-KEY, HM-SEC-RHS, HM-SEC-SC-2, HM-SEC-SCo, HM-SEC-SD-2, HM-OU-CFM-TW, div. HUEs, Wifilight, Ring Video Pro

anfichtn

Genial. Jetzt muss ich fhem nur noch davon überzeugen beide parallel zu akzeptieren.
FHEM 5.6 + Pilight + Pimatic auf BananaPro mit Bananian 15.04 r01
FB7270 v2 & FB7412
LDA382A mit WifiLight
MAX-Cube (aculfw), 6 Fensterkonstakte, 5 HK-Thermostate, 3 WandThermostate
[...]

budy

Zitat von: anfichtn am 07 November 2015, 19:09:01
Genial. Jetzt muss ich fhem nur noch davon überzeugen beide parallel zu akzeptieren.

Ich verstehe nicht, worauf beziehst du dich?
Debian stretch, FHEM 5.9.
HM-CC-RT-DN, HM-ES-PMSw1-Pl, HM-LC-Dim1TPBU-FM, HMUARTLGW, HMLAN, HM-SEC-KEY, HM-SEC-RHS, HM-SEC-SC-2, HM-SEC-SCo, HM-SEC-SD-2, HM-OU-CFM-TW, div. HUEs, Wifilight, Ring Video Pro