WLAN RGB Controller einbinden

Hi.

ich habe eine Frage zur API des WLAN Controllers 3.0.

Habe das mit der 3.0 am laufen, muss es nur noch hübsch machen. Ich wollte eigentlich noch auf eine Umrechnungstabelle der Farbwerte warten und versuchen das normale RGB-Steuerelement von IPS einzubinden. Habe da aber noch keine Auskunft bekommen.

Hallo,

danke für Eure Antworten.

@pberndro

Beim Koppeln der Lampen an den Controller muss man nach dem einschalten der Lampen innerhalb von 2 Sekunden die Gruppen Taste auf der App bzw. der Fernbedienung drücken. Dann sollte das ohne Probleme gehen.

@Kronos

wie hast du denn das Dimmen hinbekommen. Die Hex Codes von der Limitedled/dev Seite arbeiten bei mir nicht.
Farbwerte Disco Mode usw. lassen sich ansteuern zwar noch nicht per Slider sondern per fest eingestellter werte aber die Wifi Bridge steuert die Lampen an.

mfg
Marcel

Die Doku ist meiner Ansicht nach teilweise falsch. Nachdem es den Controller aber in ichweissnichtwievielenVariationen gibt wären Unterschiede in den Firmwareständen alles andere als verwunderlich.

Probiere mal Dezimalwerte zwischen 2 und 28 für die Helligkeit. Die funktionieren zumindest bei mir.

z.b.

"\x4e".chr(25)."\x55"

Hallo Kronos,

danke für den Tipp.

Die Doku scheint wirklich recht mau zu sein. Ich habe gerade mall alle möglichen Zahlenwerte zwischen 0 und 256 ausprobiert. Bei mir schalten die werte von 256 runter bis 198. Soweit kann ich nun die Werte zumindest fest ansteuern und das Dimmen auch mehre Prozent Tasten legen.

Mit freundlichen Grüßen

Marcel

Hi,

wenn ich das richtig sehe redet Ihr über die RGBW,
denn das ist die einzige, die ein direktes Setzen von Werten erlaubt;
bei allen anderen (Mi und die alte, jetzt ausgelaufene RGB) geht es nur rauf oder runter.

Bei meiner ist es (wie bei Kronos)
x02 für minimal, x00 und x01 werden als Befehl ignoriert,
x3B für maximal, auch hier werden Werte darüber ignoriert und er macht einfach: … NIX … ,
wars´te bei 02, also dunkel, so bleibt er bei dunkel (könnte ja auch auf den Maximalwert fahren),
aber so sind sie halt, die heisse Nadel Progger der WegWerf Firm- und Hardware.

Der chinesische Hersteller FutLight glänzt nicht durch Support,
bzw. fachlich brauchbare Vertriebsmitarbeiter,
die werden angeblich auch nicht aktiv bei Umsätzen bei denen man über containerweise Abnahmemengen plauscht;
wie es LimitlessLED geschafft hat überhaupt an diese Informationen zu gelangen ist mir bis heute ein Rätsel.
Vermutlich nur durch ReverseEngeneering und eigene, technische Spitzenleute.
Obwohl der simple Aufbau derer Homepage das nicht gerade offenbart.

Ich hab hier noch einen WiFi Controler der ersten Stunde liegen und würde ihn gerne auf die V3.0 updaten,
lt. Aussage das Vertriebes von FutLight nicht möglich.

Hat evtl. schon einer eine Updatedatei??
(ich wäre sehr überrascht, die alten Controler bis V2.0 bieten das ja an, aber in die Finger bekommen hab ich bis heute nicht eine einzige Firmwaredatei).

Die Firmenphilosophie ist halt die typische aus dieser Region:
was schert mich mein Dreck von gestern,
Support für frühere Modelle sucht man vergeblich,
der einzige vorgegebene Weg ist:
Kauf Dir jetzt und sofort das was wir produzieren,
in der nächsten Woche ist das dann vermutlich schon wieder Schrott
(weil es was viel besseres gibt, aber wer weiss schon wie lange das dann hält).

mfg

BerndJ

So, nun ist das Skript hübscher - ich habe es mit dem Farbrad von IPS verheiratet.

Folgende Arbeitsschritte:

  1. Dummy-Instanz anlegen. Die erzeugten Objekte in Punkt 2-6 in dieser Instanz ablegen.

  2. Integer-Variable mit Namen „HexColor“ und Profil HexColor anlegen.

  3. Integer-Variable mit Namen „Hue (Farbton)“ ohne Profil anlegen.

  4. Integer-Variable mit Namen „Luminance (Helligkeit)“ und Profil ~Intensity.255 anlegen.

  5. Integer-Variable mit Namen "Saturation (Sättigung) ohne Profil anlegen.

  6. Skript mit folgendem Inhalt erstellen:


<?

/*
http://www.limitlessled.com/dev/
LimitlessLED v3.0 OpenSource API
Wifi Bridge Router Web Config: http://10.10.100.254/home.html Username: admin Password: admin

All UDP Commands are 3 Bytes. First byte is from the list below, plus a fixed 2 byte suffix of 0x00 (decimal: 0) and 0x55 (decimal: 85)
i.e. to turn all RGBW COLOR LimitlessLED Smart lights to ON then send the TCP/IP UDP packet of: 0x42 0x00 0x55

Hexidecimal (byte) Decimal (integer)
RGBW COLOR LED ALL OFF 0x41 65
RGBW COLOR LED ALL ON 0x42 66
DISCO SPEED SLOWER 0x43 67
DISCO SPEED FASTER 0x44 68
GROUP 1 ALL ON 0x45 69 (SYNC/PAIR RGB+W Bulb within 2 seconds of Wall Switch Power being turned ON)
GROUP 1 ALL OFF 0x46 70
GROUP 2 ALL ON 0x47 71 (SYNC/PAIR RGB+W Bulb within 2 seconds of Wall Switch Power being turned ON)
GROUP 2 ALL OFF 0x48 72
GROUP 3 ALL ON 0x49 73 (SYNC/PAIR RGB+W Bulb within 2 seconds of Wall Switch Power being turned ON)
GROUP 3 ALL OFF 0x4A 74
GROUP 4 ALL ON 0x4B 75 (SYNC/PAIR RGB+W Bulb within 2 seconds of Wall Switch Power being turned ON)
GROUP 4 ALL OFF 0x4C 76
DISCO MODE 0x4D 77
SET COLOR TO WHITE (GROUP ALL) 0x42 100ms followed by: 0xC2
SET COLOR TO WHITE (GROUP 1) 0x45 100ms followed by: 0xC5
SET COLOR TO WHITE (GROUP 2) 0x47 100ms followed by: 0xC7
SET COLOR TO WHITE (GROUP 3) 0x49 100ms followed by: 0xC9
SET COLOR TO WHITE (GROUP 4) 0x4B 100ms followed by: 0xCB

LIMITLESSLED RGBW DIRECTLY SETTING THE BRIGHTNESS is by a 3BYTE COMMAND: (First send the Group ON for the group you want to set the brightness for. You send the group ON command 100ms before sending the 4E 1B 55)
Byte1: 0x4E (decimal: 78)
Byte2: 0×02 to 0x1B (decimal range: 2 to 27) full brightness 0x1B (decimal 27)
Byte3: Always 0×55 (decimal: 85)

LIMITLESSLED RGBW COLOR SETTING is by a 3BYTE COMMAND: (First send the Group ON for the group you want to set the colour for. You send the group ON command 100ms before sending the 40)
Byte1: 0×40 (decimal: 64)
Byte2: 0×00 to 0xFF (255 colors) See Color Matrix Chart for the different values below.
Byte3: Always 0×55 (decimal: 85)

Byte2: Color Matrix Chart: (thanks Stephan Schaade, http://knx-user-forum.de http://mknx.github.io/smarthome/)
    0x00 Violet
    0x10 Royal_Blue
    0x20 Baby_Blue
    0x30 Aqua
    0x40 Mint
    0x50 Seafoam_Green
    0x60 Green
    0x70 Lime_Green
    0x80 Yellow
    0x90 Yellow_Orange
    0xA0 Orange
    0xB0 Red
    0xC0 Pink
    0xD0 Fusia
    0xE0 Lilac
    0xF0 Lavendar
*/

// Trigger-Variable setzen
	SetValue ($_IPS['VARIABLE'], $_IPS['VALUE']);

// Variablen-IDs, RGB-Gruppe und Controller-Instanz definieren
	$id_rgb      = xxxxx /*[RGBW-WLAN1 Erdgeschoss]*/; // [RGBW-WLAN1 Erdgeschoss
	$Gruppe      = 1; // Gruppennummer RGB-Leuchtmittel
	$HexColorID  = IPS_GetObjectIDByName("HexColor", IPS_GetParent($_IPS['SELF']));
	$LuminanceID = IPS_GetObjectIDByName("Luminance (Helligkeit)", IPS_GetParent($_IPS['SELF']));


// =====================================================================================
// AB HIER NICHTS MEHR ÄNDERN !!
// =====================================================================================

// Gruppen Steuercodes festlegen

   switch ($Gruppe) {
		case 1: // Gruppe 1
			$GruppeAN    = "\x45";
			$GruppeAUS   = "\x46";
			$GruppeWeiss = "\xc5";
      	break;
    	case 2: // Gruppe 2
			$GruppeAN    = "\x47";
			$GruppeAUS   = "\x48";
			$GruppeWeiss = "\xc7";
      	break;
    	case 3: // Gruppe 3
			$GruppeAN    = "\x49";
			$GruppeAUS   = "\xa";
			$GruppeWeiss = "\xc9";
      	break;
    	case 4: // Gruppe 4
			$GruppeAN    = "\x4b";
			$GruppeAUS   = "\x4c";
			$GruppeWeiss = "\xcb";
      	break;
	}

// Werte aus HEXCOLOR übernehmen und aufteilen
	$ValueDEC = $_IPS['VALUE'];
	$ValueHEX = dechex($_IPS['VALUE']);
	$ValueHEX = substr("000000", 0, 6 - strlen($ValueHEX)).$ValueHEX;
	$rotHex   = substr($ValueHEX, 4, 2);
	$rotDec   = round(hexdec($rotHex));
	$gruenHex = substr($ValueHEX, 2, 2);
	$gruenDec = round(hexdec($gruenHex));
	$blauHex  = substr($ValueHEX, 0, 2);
	$blauDec  = round(hexdec($blauHex));

// Array für Funktion rgb2hsl befüllen
	$rgb[0] = $rotDec;
	$rgb[1] = $gruenDec;
	$rgb[2] = $blauDec;

// Umrechnung anstossen und in Array und Ergebnisvariablen ablegen
	$ValueHSL = rgb2hsl ($rgb);
	$Hue        = $ValueHSL['Hue'];
	$Saturation = $ValueHSL['Saturation'];
	$Luminance  = $ValueHSL['Luminance'];

// Werte an RGB-WLAN-Controller ausgeben

	// UDP RGB Socket öffnen
	CSCK_SetOpen($id_rgb, true);
	IPS_ApplyChanges($id_rgb);

	// RGB Einstellungen übertragen
	if ($_IPS['VARIABLE'] == $HexColorID and $Luminance >= 2) {
		// Farbwerte senden
		   USCK_SendText($id_rgb, $GruppeAN."\x00\x55"); // Sende Gruppe xyz AN
		   ips_sleep(110);
		   $Output = "\x40".chr($Hue)."\x55";
			USCK_SendText($id_rgb, $Output); // Sende Farbwert an Gruppe xyz
		   ips_sleep(110);
		// Helligkeit senden
			// Anpassung an den zulässigen Wertebereich 2-27 Dezimal
				$Luminance2 = round(($Luminance / 9.44), 0);
				if ($Luminance2 <  2) $Luminance2 =  2;
				if ($Luminance2 > 27) $Luminance2 = 27;
		   USCK_SendText($id_rgb, $GruppeAN."\x00\x55"); // Sende Gruppe xyz AN
		   ips_sleep(110);
		   $Output = "\x4e".chr($Luminance2)."\x55";
			USCK_SendText($id_rgb, $Output); // Sende Helligkeit an Gruppe xyz
		// Wert in Variable Helligkeit schreiben
		SetValue($LuminanceID, $Luminance);
		return;
		}
		
	// "Weisse" Einstellungen übertragen
	if ($_IPS['VARIABLE'] == $LuminanceID and $Luminance >= 2) {
		// Gruppe auf Modus "Weiss" schalten
		   USCK_SendText($id_rgb, $GruppeAN."\x00\x55"); // Sende Gruppe xyz AN
		   ips_sleep(110);
			USCK_SendText($id_rgb, $GruppeWeiss."\x00\x55"); // Sende "Weiss" an Gruppe xyz
		   ips_sleep(110);
		// Helligkeit senden
			// Anpassung an den zulässigen Wertebereich 2-27 Dezimal
				$Luminance2 = round(($Luminance / 9.44), 0);
				if ($Luminance2 <  2) $Luminance2 =  2;
				if ($Luminance2 > 27) $Luminance2 = 27;
		   $Output = "\x4e".chr($Luminance2)."\x55";
		   USCK_SendText($id_rgb, $GruppeAN."\x00\x55"); // Sende Gruppe xyz AN
		   ips_sleep(110);
			USCK_SendText($id_rgb, $Output); // Sende Helligkeit an Gruppe xyz
		// Wert in Variable HexColor schreiben
		SetValue($HexColorID, "000000");
		return;
		}
		
	// Gruppe ausschalten
		if ($Luminance < 2) {
			USCK_SendText($id_rgb, $GruppeAUS."\x00\x55"); // Sende Gruppe xyz AUS
			// Wert in Variable Helligkeit schreiben
				SetValue($LuminanceID, $Luminance);
			// Wert in Variable HexColor schreiben
				SetValue($HexColorID, "000000");
		}
		
	//UDP RGP Socket wieder schließen
	//CSCK_SetOpen($id_rgb, false);
	//IPS_ApplyChanges($id_rgb);


// Funktion übernommen von www.php.net und an eigene Bedürfnisse angepasst
// Convert RGB colors array into HSL array
// @param array $ RGB colors set, each color component with range 0 to 255
// @return array HSL set, each color component with range 0 to 1
	function rgb2hsl($rgb){
	    $clrR = ($rgb[0]);
	    $clrG = ($rgb[1]);
	    $clrB = ($rgb[2]);

	    $clrMin = min($clrR, $clrG, $clrB);
	    $clrMax = max($clrR, $clrG, $clrB);
	    $deltaMax = $clrMax - $clrMin;

	    $L = ($clrMax + $clrMin) / 510;

	    if (0 == $deltaMax){
	        $H = 0;
	        $S = 0;
	    }
	    else{
	        if (0.5 > $L){
	            $S = $deltaMax / ($clrMax + $clrMin);
	        }
	        else{
	            $S = $deltaMax / (510 - $clrMax - $clrMin);
	        }

	        if ($clrMax == $clrR) {
	            $H = ($clrG - $clrB) / (6.0 * $deltaMax);
	        }
	        else if ($clrMax == $clrG) {
	            $H = 1/3 + ($clrB - $clrR) / (6.0 * $deltaMax);
	        }
	        else {
	            $H = 2 / 3 + ($clrR - $clrG) / (6.0 * $deltaMax);
	        }

	        if (0 > $H) $H += 1;
	        if (1 < $H) $H -= 1;
	    }

	 	$H = round(($H * 255), 0);
	 	$S = round(($S * 255), 0);
	 	$L = round(($L * 255), 0);

      $HSLColor = array( 'Hue' => $H, 'Saturation' => $S, 'Luminance' => $L );

      return $HSLColor;
}
// Funktion Ende

?>

  1. Dieses Skript den Variablen von Punkt 2 und 4 als Actionskript zuordnen.

  2. UDP-Socket anlegen mit Sende-/Empfangsport 8899. Sende-Host ist die IP des Wifi-Controller, Empfangs-Host ist egal - ich habe da die IP des IPS-Rechners eingetragen.

  3. Im Skript die ID des UDP-Sockets eintragen.

  4. Im Webfront zwei Links auf die Variablen aus Punkt 2 und 4 anlegen. Beschriftung nach Geschmack.

  5. Hoffen, dass ich nichts vergessen habe und es Licht werden lassen.

Die Bedienung des Farbrades ist glaube ich klar, der zweite Link steuert die Farbe Weiss und deren Helligkeit.
Das Ganze funktioniert bei mir mit Firmware 3.x des Controllers - die neue 4.x habe ich nicht zur Verfügung.

Hallo zusammen,
gestattet mir (für euch wahrscheinlich eine blöde Frage) folgende Frage zu stellen:
Kann ich diese Lampen auch ohne die IP-Symcon-Software zum laufen bringen ?

Ich habe mir hier dieses Set bestellt http://www.wifiledlamp.com/applamp-wifi-kit-full-color-rgb-9w-led-bulb.html
Soweit funktioniert alles (FB, Steuerung per iphone APP)

Jetzt wollte ich daran gehen und den Versuch unternehmen, die Lampen mit der CCU1 zu vernetzen.
Was ich bisher versucht habe ist, auf der CCU „socat“(was immer das ist) zum laufen zu bringen. Angeblich könnte man dadurch und durch bestimmte Befehle die Lampen ansprechen. Daran scheitert es aber schon. Ich kann dieses socat auf meiner CCU nicht installieren.

Kann mir evtl. jemand weitere Tipps geben ?

Grüße
mike

Da bist Du hier nur bedingt im richtigen Forum. Wenn Du diesen Controller nicht über IPS sondern über die CCU ansteuern willst solltest Du einmal im diesemForum vorbei schauen. Da wurde das wohl auch über die CCU gelöst.

Abgesehen davon unterscheidet sich der Controller optisch leicht von meiner Version. Das kann heissen, dass er eine andere Firmware hat und daher auch eventuell anders angesteuert werden muss. Kann sein - muss es aber nicht.

So nach sehr langen raten, wie ich den RGB Controller an die brige anlerne, funktioniert endlich alles.

Man muss echt innerhalb von 1 Sec nach einschalten des RGB Controllers auf den On Taste der Gruppe drücken, in Anleitung steht was ganz anderes…

Dafür funktioniert das Script auf anhieb…

Hat einer rausbekommen wie man die verschiedenen Programme ansteuern kann ?

Die Programme hatte ich mir angesehen aber ich habe sie nicht als so furchtbar toll empfunden. Genauer gesagt scheint es nur einen Farbwechsel mit unterschiedlichen Geschwindigkeiten zu geben.

Da die notwendigen Befehle in der Dokumentation bei Limitless enthalten sind, liesse sich das bei Bedarf sicher nachrüsten.

Hi wer ein 4er Set haben möchte, ich verkaufe gerade meine…

http://www.ip-symcon.de/forum/threads/24185-Mi-Light-RGBW-LED-Controller-4-zone-Wireless-RF-Touch-Screen-Remote-WiFi-Controller

Hallo,

ich habe zu dem MiLight Lampen, also dem WLAN Controller und den TreibernFragen, und hoffe mir kann jemand weiter helfen.

Habe ich es richtig verstanden, dass der WLAN Controller (http://www.milight.com/milight-wifi-box) das Gateway darstellt. Er kann also aus dem eigenen WLAN per APP oder per Script aus IPS angesprochen werden. Dieser Controller sendet dann per WLAN seine Befehle an die Empfänger, und das können RGB, RGBW Controller oder eben direkt deren RGB Lampen sein?

Es ist keine direkte Kabelverbindung zwischen WLAN Controller und den RGB(W) Controllern notwendig?

Ich kann parallel eine oder mehrere der Fernbedienungen verwenden? Wenn nicht, kann man mehrere WLAN Controller einsetzen und dann die FB´s koppeln, oder kommen die sich ins Gehege.

Welche Erfahrung habt Ihr mit dem System, seit Ihr zufrieden, ist es zuverlässig?

Gruß
Christian

Hallo Christian,

Jo

auch richtig.

Nein.

Stell Dir vor es ist eine per WLAN steuerbare Fernbedienung die Ihre Signale dann im 2,4 GHz (hat nichts mehr mit TCP/IP zu tun) Bereich sendet.

Jeder Empfänger kann maximal mit 4 Sendern gepaart werden, hierüber werden dann auch Gruppenbefehle möglich.

jo, es fehlt in der Auflistung noch die weisse Mi-Light (WW stufenlos bis CW)

korrekt, u.a. fehlen ja auch die Stecker.

soviel Du willst.

dito

gekoppelt werden die Fernbedienungen und Gateways auf der einen Seite mit den Controlern und Lampen auf der anderen Seite.

Es ist wie üblich mit dem Billiggelumpe:
kostet nix,
kann nix (nur one way Kommunikation, sehr grobes Raster bei den Programmiermöglichkeiten),
Support gleich null (versuch doch mal für nen älteren Controler nen Firmwareupdate zu kriegen)
Zuverlässigkeit wie bei FS20 (geht, geht noch mal, geht nicht, geht)
Fazit: dem Preise entsprechend. Reduced to the max (für wen auch immer, auf keinen Fall für den Kunden).

mfg

BerndJ

Hallo Bernd,

danke für die Info.
Hm, meine DMX Anbindung läuft lieder auch nicht so stabil. Leider steigt mein DMX Gatewy immer wieder aus, und ich kann nicht parallel DMX und Funkfernbedienung mit meinen Controllern.

Ich überlege, ob ich das umbaue.

Vielleicht gibt es ja noch weitere Rückmeldungen zu den Erfahrungen.

Gruß
Christian

Hallo,

so die HW ist da, und auch schon eingebunden, zumindest ein RGB Modul. Jetzt teste ich mal, wie stabil das ganze läuft.

@kronos:
Vielen Dank für Dein Script, funktioniert wunder bar. Super Anleitung.

Gruß
Christian

Prima wenn es klappt.

Die Übertragung ist bei mir übrigens sehr zuverlässig. Kann mich da bisher nicht beklagen.

hätte den hier noch mal einer das gesamte script für mich? (:

Bitte schau Dir Post #26 an.

Ich hänge an dem Punkt:

// Trigger-Variable setzen
SetValue ($_IPS[‚VARIABLE‘], $_IPS[‚VALUE‘]);

Was muss ich hier tun ? (:
Danke für deine Hilfe vorab.

@cooljack: …ohne jetzt weiter zu lesen, rate ich mal, dass du den wohl am meisten geschriebenen Code-Schnipsel suchst :slight_smile:

if ($IPS_SENDER == "WebFront")  {
	SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);
}

…das muss im Aktion-Skript der Variable stehen, wenn du im WebFront was drückst und darüber einer Variable gesetzt/geschaltet werden soll…

Grüße,
Chris