Philips Hue

Hallo,

kürzlich hab ich mir Philips Hue LED-Leuchten zugelegt.

Die Steuerbarkeit über App ist ganz nett - nun würde ich gern die Teile über die SPS ansteuern können - Das API ist Dokumentiert Get Started - Philips Hue Developer Program

So wie ich das lese geht der Zugriff über HTTP Aufrufe, die Vorgaben und Antworten sind XML formatiert.

Jetzt hab ich versucht, die notwendigen Bausteine zusammenzuklauben, scheitere allerdings bereits daran, dass ich in der OSCAT nur ein HTTP_GET finde, nicht allerdings das notwendige HTTP_PUT (und das wohl weniger notwendige HTTP_POST und HTTP_DELETE)

Jetzt frage ich, ob es hier im Forum jemanden gibt, der die Hues an der SPS am Laufen hat.

Mit meinen Kenntnissen ist der Weg zu weit - wenn ich nichts finde , muss ich an einem Plan B tüfteln - irgendwas das auf eine der auf der Hue Developer Seite als Library angegebenen Libraries aufbaut und als unabhängiges EXE mit den Hues “redet” und der SPS über einen TCP Port oder ADS zur Verfügung steht…

Bin gespannt …

Danke einstweilen!

Hallo stm,

bist Du bezüglich der Anbindung von Hue an die Wago schon ein bisschen weiter gekommen?
Ich habe zwar noch die Möglichkeit über Xsolution, aber würde auch gerne den Weg über die Wago nehmen.

Gruß
Schwenn

Leider ist das schon ein etwas älteres Thema. Hat jemand schon etwas in dieser Richtung mit HUE gemacht oder schon einen Ansatz.
Ich würde gerne mithelfen etwas zu entwickeln, wenn interesse vorhanden ist.

du kannst dich ja mal etwas ernster damit auseinander setzen

mach mal eine grundsatzanalyse
was kann man damit machen
was wäre für oscat machbar bzw. sinnvoll
sammle möglichst jegliche dokummentation
sammle code-beispiele von anderen programmiersprachen (javascript, vb etc…)

hast du eine philips hue ?
kannst du von verschiedenen befehlen einen wireshark aufzeichnung machen

denn fehlenden HTTP_PUT Befehl können wir ja nachrüsten…

Hallo peewit

Toll dass sich jemand meldet!!
Ich werde mich zuerst einlesen wie das gehen soll und was von “extern” gesteuert werden kann.

Ich würde den Fokus auf Szenen sowie heller und dunkler setzen. Die Bedienung soll im Raum mit Wandtastern erfolgen. Nicht dass die von Phillips Hue genutzt werden müssen. Das Zieh von mir ist es dass im Haus alle Schalter gleich sind und nicht die “speziellen” von Philips Hue verwendet werden müssen.

Unter Get Started - Philips Hue Developer Program denke ich, dass alle Infos zu finden sind. (Anmeldung erforderlich).

melde mich

PS: Hue Set ist bestellt :slight_smile:

Stelle die gesamte dokumenation die die findest hier online

Hallo,

ich habe das Thema seinerzeit nicht weiter verfolgen können, kann evtl. noch von damals beitragen:

Die Hue Steuerung funktioniert über HTTP Kommandos an die Bridge:

HTTP_GET für Stati
HTTP_PUT für Aktionen

und für Nebenfunktionen (Konfigurationsänderungen und andere “Nebenfunktionen” HTTP_POST, HTTP_DELETE).

Die Messages von und zu Bridge sind JSON Format.

Für Ein/Aus, Heller/Dunkler, und Szenenaufrufe sollten es HTTP_GET und HTTP_PUT tun.

Die Bridge hat ein Web-Interface mittels dem die Kommandos getestet werden können.

Von OSCAT Seite hatte mir seinerzeit ein HTTP_PUT Baustein gefehlt …

Hallo!

Die möglichkeite die Phillips Hue Lampen über die SPS zu steuern würde mich auch dringend interessieren.
Nur leider habe ich die notwendigen Kenntnisse sowas selbst zu programieren nicht, aber ich bin lernwillig und würde natürlich bei der Entwicklung so gut wie möglich mithelfen.

Derzeit versuche ich das ganze mit einem Umweg über Modbus und FHEM zu lösen, aber da muss ich mich auch erst mal in MODBUS und FHEM einarbeiten.

Hat eventuell schon jemand HUE via SPS zum laufen gebracht?

Lg
Alex

Moin,

ja mein Beckhoff kann die HUE Bridge ansprechen :slight_smile:
Benötigte LIB: Oscat Basic 333; Oscat Network 1.21; TcpIpServer;
die Struktur ‘URL’ von Oscat Network braucht noch ein: “COMMAND : STRING(STRING_LENGTH);”
Der rest ist als *.exp vorhanden.
→ PN an mich :slight_smile:

Grüße

Hallo, kannst Du bitte den Export zur Verfügung stellen?

I have solution. Its not the best thing can be don but best i have made.
Using this batch and NT_StartProcess you can change on/off, hue, saturation, brightness, and temperature color.
It suport some other things but its not working i my PLC

In ‘KEY’ you need input your oun hue key.
In PATHSTR and DIRNAME input your dir of bath files.

PROGRAM HUE_bat
VAR_INPUT
	lamp2: BOOL;
	lamp3: BOOL;
	on: BOOL;
	hue: DINT;
	saturation: INT;
	brightness: INT;
	color: INT;

END_VAR
VAR
	Key: STRING 		:=	 'key';		(*Insert Hue Key*)
	Start_Process	:	NT_StartProcess :=(	NETID:='',
											PATHSTR:='C:\TwinCAT\PLC\Program\BOX\Bat\hue.bat',
											DIRNAME:='C:\TwinCAT\PLC\Program\BOX\Bat',
											TMOUT:=t#2s);
	Pause			: 	TOF:=(				PT:=t#1s);						(*Wait to execute bat.*)
	Trig: R_TRIG;
	bStart: BOOL;
	CMD: STRING(MAX_STRING_LENGTH);
	CMD_Old: STRING(MAX_STRING_LENGTH);
END_VAR
Start_Process(START:=bStart,
			COMNDLINE:=CMD);
Pause(IN:=Trig.Q);
Trig;

CMD:=CONCAT('-k ',key);
CMD:=CONCAT(CMD, ' -l "');
IF lamp2 THEN
	CMD:=CONCAT(CMD, '2');
END_IF
IF lamp3 THEN
	CMD:=CONCAT(CMD, ' 3');
END_IF
CMD:=CONCAT(CMD, '" ');
CMD:=CONCAT(CMD, '-on ');
IF on=TRUE THEN
	CMD:=CONCAT(CMD, 'true');
ELSIF on=FALSE THEN
	CMD:=CONCAT(CMD, 'false');
END_IF
IF hue>0 THEN
	CMD:=CONCAT(CMD, ' -h ');
	CMD:=CONCAT(CMD,DINT_TO_STRING(hue));
END_IF
IF saturation>0 THEN
	CMD:=CONCAT(CMD, ' -s ');
	CMD:=CONCAT(CMD,INT_TO_STRING(saturation));
END_IF
IF brightness>0 THEN
	CMD:=CONCAT(CMD, ' -b ');
	CMD:=CONCAT(CMD,INT_TO_STRING(brightness));
END_IF
IF color>0 THEN
	CMD:=CONCAT(CMD, ' -c ');
	CMD:=CONCAT(CMD,INT_TO_STRING(color));
END_IF

Hallo Leute,

da ich keine Bibliothek gefunden habe, mit der ich die HUE-Leuchten direkt ansteuern kann, habe ich mit meinen begrenzten Mitteln und meinem begrenztem Wissen eine HUE Bibliotheke gebaut. Damit kannn man ziemlich einfach HUE Lampen steuern. Wer interesse an der Bibliothek hat bitte was schreiben.

hallo

interesse besteht prinzipiell immer

kannst du bitte deine bauteine online stellen und soweit möglich eine beschreibung machen
oder beispielprojekte…

Hallo,

anbei habe ich die Bibliothek hochgeladen.

In Bildern ist ein Funktionierendes Beispiel dargestellt. Es wird ein HUE-GW Baustein gebraucht pro Gateway.
Pro Lampe muss ein HUE_Lampe Baustein indiziert werden.
Über HUE_IO werden alle Bausteine miteinander verbunden.
Bei einer Änderung der Eingänge “bHelligkeit”,“wFarbe”,"wFarbtemperatur"an HUE_Lampe wird der entsprechende Wert ins Gateway gesendet (nur bei Änderung).

Eine steigende Flanke an “xImpuls_EIN” sendet einen Einschaltbefehl;
Eine steigende Flanke an “xImpuls_AUS” sendet einen Ausschaltbefehl;
Eine Statusänderung am “xStatus_EIN_AUS” sendet den Aktuellen Zustand des Eingangs. (0-> 1 EIN | 1-> 0 AUS)
Am Eingang “bLampe” soll die Nummer der Gewünschten Lampe eingestellt werden. (Nummer der Lampe im Gateway)

Wenn mehrere Lampen gleichzeitig geschaltet werden sollen, dann kommt es leider zu einer Verzögerung von mindestens 100 ms.
Die Bibliothek habe ich für mich geschrieben (für meine Bedürfnisse). Wenn jemand eine Funktion vermisst, oder Fehler finden oder insgesamt Fragen hat, dann bitte schreiben.

Die Ausgänge am Baustein “HUE_GW” waren für mich zum Testzweck und brauchen nicht beachtet werden. Es erfolgt im Moment noch keinerlei Rückmeldung ob die Befehle erfolgreich waren oder irgendwelche Fehler aufgetretten sind. Das werde ich irgendwann nachpflegen.

Ansonsten viel Spass damit.

Hallo Sergej,

vielen Dank für deine Hue.lib.

Kannst du eventuell auch das PW für die lib bereitstellen?
Das wäre super von Dir!!

Gruß
Alex

probier mal “sergej123456g” ohne anführungszeichen.. Wenn jemand eine Verbesserung einbaut, würde ich um eine Rückmeldung bitten. Es funktioniert, damit ist es nicht mehr dringend für mich und ich komme wegen Zeitmangel nicht mehr dazu die Bibliothek weiter zu entwickeln.

Hello,

I’ve tried to use the library of Sergej, sadly it is only for Wago.
Any support for Beckhoff?
Or can anyone give me an example how the string should look in the http-get demo?

Hello bartmarchand
Unfortunately, I have no idea what the difference between Wago and Beckhoff is. I have never done anything with Beckhoff.
My library definitely needs the Ethernet.lib.
You can open my library with CodeSys. Password is here in the Thead.
Can you then look at how I did it. Maybe it will help you.

Hi Sergej,

Thank you for the response.
ethernet.lib does not exists in Twincat. I’m stuck I think…

Hi Sergej,

Can You Upload Ethernet.lib.