Aquarium-Licht-Steuerung Juwel Helialux

Anbindung von FS20-Komponenten, ELV-Wetterstationen, EnOcean und DMX an HomeMatic

Moderator: Co-Administratoren

Antworten
Germa
Beiträge: 169
Registriert: 15.12.2019, 12:26
System: CCU
Hat sich bedankt: 30 Mal
Danksagung erhalten: 19 Mal

Aquarium-Licht-Steuerung Juwel Helialux

Beitrag von Germa » 22.02.2020, 15:46

Hallo zusammen,

auf https://www.homematic-inside.de/blog/sm ... light=cuxd
ist die Steuerung der Helialux-LED-Lichtleiste über CuxD beschrieben.
Die Windows Powershell-Befehle dafür sollen sein:
...den manuellen Modus einschalten:
Invoke-WebRequest -Uri "http://<IP_ADRESSE>/stat" -Method "POST" -Body "action=14&ch5=843&tswi=false&ttime=01:00&cswi=true&ctime=00:01"
...und eine eigene Farbe setzen:
Invoke-WebRequest -Uri "http://<IP_ADRESSE>/color" -Method "POST" -Body "action=3&ch1=0&ch2=0&ch3=0&ch4=100"

Syntax für ein Homematic-Script mit CuxD:
string request;
request = "/usr/local/addons/cuxd/curl -X POST -k -H \"Content-Type: application/x-www-form-urlencoded\" -d \"<Body>" # "\" <Uri>";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State(request);

Ich bekomme das aber einfach nicht in der CCU3 hin. Mit was muss ich die CuxD-Syntax ergänzen/erweitern, damit das aus dem Homematic-Script heraus gesteuert werden kann?

Meine Frau, die Programmiererin ist, hat es so umgeschrieben, damit man mit dem http Befehl den manuellen Modus aktiviert bekommt:
http://<IP_ADRESSE>/stat?action=14&ch5=843&tswi=false&ttime=01:00&cswi=true&ctime=00:05

Das Modifizieren der LED-Farben will aber auch per http einfach nicht funktionieren:
http://<IP_ADRESSE>/color?action=3&ch1=0&ch2=0&ch3=0&ch4=100

<IP_ADRESSE> wurde natürlich mit der des Gerätes ersetzt.

Kann jemand helfen?
wenn wir uns alle gegenseitig helfen, ist allen geholfen :wink:
_______________________________________________
CCU3 seit 2018, 103 Geräte, 202 Programme, 222 sysvar
Projekte: Wettersensor viewtopic.php?t=65631

Benutzeravatar
uwe111
Beiträge: 4807
Registriert: 26.02.2011, 22:22
Hat sich bedankt: 3 Mal
Danksagung erhalten: 240 Mal
Kontaktdaten:

Re: Aquarium-Licht-Steuerung Juwel Helialux

Beitrag von uwe111 » 23.02.2020, 17:15

Germa hat geschrieben:
22.02.2020, 15:46
Ich bekomme das aber einfach nicht in der CCU3 hin. Mit was muss ich die CuxD-Syntax ergänzen/erweitern, damit das aus dem Homematic-Script heraus gesteuert werden kann?
Funktioniert Deine Curl Befehlszeile, wenn Du Dich per Putty auf der Console der CCU3 anmeldest und sie dann direkt aufrufst?
Wenn ja, hast Du zuvor ein CUxD System.Exec Gerät mit der Seriennummer 1 angelegt?

Viele Grüße

Uwe
Alle sagten: Das geht nicht. Dann kam einer, der wußte das nicht und hat's einfach gemacht.
SPENDEN :wink: Download: CUxD 2.11, SSH KeyDir

Germa
Beiträge: 169
Registriert: 15.12.2019, 12:26
System: CCU
Hat sich bedankt: 30 Mal
Danksagung erhalten: 19 Mal

Re: Aquarium-Licht-Steuerung Juwel Helialux

Beitrag von Germa » 25.02.2020, 20:44

Hallo guten Abend,
inzwischen haben wir das mit Putty erfolgreich aufgerufen. Dort haben wir einen curl Befehl eingerichtet, in dem wir auf einige Parameter verzichtet haben. Wir verwenden ausschließlich die Url sowie die nötige Parameter des JSON Scripts (mit -d) und -X POST. Allerdings würden wir gern diesem Aufruf ebenso direkt als REST Befehl per Browser machen können, und dafür haben wir den Aufruf wie üblicherweise bei PHP Skripten. Und das klappt nur bei "stat" aber nicht bei "color".
wenn wir uns alle gegenseitig helfen, ist allen geholfen :wink:
_______________________________________________
CCU3 seit 2018, 103 Geräte, 202 Programme, 222 sysvar
Projekte: Wettersensor viewtopic.php?t=65631

Germa
Beiträge: 169
Registriert: 15.12.2019, 12:26
System: CCU
Hat sich bedankt: 30 Mal
Danksagung erhalten: 19 Mal

Re: Aquarium-Licht-Steuerung Juwel Helialux

Beitrag von Germa » 15.01.2022, 22:15

ich beantworte mir die Frage einfach mal selber, da wir es nun hinbekommen haben - und natürlich auch für Euch:

Wie gesagt, die Vorgaben sind folgende:
Invoke-WebRequest -Uri "http://<IP_ADRESSE>/stat" -Method "POST" -Body "action=14&ch5=843&tswi=false&ttime=01:00&cswi=true&ctime=00:01";
Helialux eigene Farben setzen
Invoke-WebRequest -Uri "http://<IP_ADRESSE>/color" -Method "POST" -Body "action=3&ch1=0&ch2=0&ch3=0&ch4=100";

Befehle für Windows Powershell
Invoke-WebRequest -Uri "http://<IP der Helialux>/stat" -Method "POST" -Body "action=14&ch5=843&tswi=false&ttime=02:00&cswi=true&ctime=00:01"
Invoke-WebRequest -Uri "http://<IP der Helialux>/color" -Method "POST" -Body "action=3&ch1=100&ch2=100&ch3=50&ch4=75"
action Durchzuführende Aktion (14 = manueller Modus, 3 = Farbwert setzen)
ttime Manuelle Tageszeitsimulation Lichtprofil des aktuellen Wochentags im Zeitraffer simulieren
ctime Zeit der manuellen Farbsimulation
ch1 Farbwert weiss in Prozent (0-100)
ch2 Farbwert blau in Prozent (0-100)
ch3 Farbwert grün in Prozent (0-100)
ch4 Farbwert rot in Prozent (0-100)

so funktioniert es:
manuell = "/usr/local/addons/cuxd/curl -X POST -k -H \"Content-Type: application/x-www-form-urlencoded\" -d \"action=14&ch5=843&tswi=false&ttime=01:00&cswi=true&ctime=00:02" # "\" <IP der Helialux>/stat";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State(manuell);

Daraus ergibt sich folgendes Script, mit dem man die Zeit definiert, für die die eigene Einstellung gelten soll und die vier Farbwerte:

Code: Alles auswählen

!hier bei state die gewünschten Werte eintragen
dom.GetObject("AQ_weiss").State(100);
dom.GetObject("AQ_blau").State(100);
dom.GetObject("AQ_gruen").State(75);
dom.GetObject("AQ_rot").State(75);
dom.GetObject("AQ_Licht_hour").State(1);
dom.GetObject("AQ_Licht_min").State(30);
!-----------------------------------------
var weiss= dom.GetObject("AQ_weiss").Value().ToInteger();
var blau = dom.GetObject("AQ_blau").Value().ToInteger();
var gruen = dom.GetObject("AQ_gruen").Value().ToInteger();
var rot = dom.GetObject("AQ_rot").Value().ToInteger();
var Stunden= dom.GetObject("AQ_Licht_hour").Value().ToInteger();
var Minuten= dom.GetObject("AQ_Licht_min").Value().ToInteger();
!-----------------------------------------
string bodyRequest = "action=14&ch5=843&tswi=false&ttime=01:00&cswi=true&ctime=" # Stunden # ":" # Minuten;
string bodyColor = "action=3&ch1=" # weiss.ToString() # "&ch2=" # blau.ToString() # "&ch3=" # gruen.ToString() # "&ch4=" # rot.ToString();
string manuell;
string farben;
!-----------------------------------------
manuell ="/usr/local/addons/cuxd/curl -X POST -k -H \"Content-Type: application/x-www-form-urlencoded\" -d \"" # bodyRequest # "\" http://192.168.178.74/stat";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State(manuell);
farben = "/usr/local/addons/cuxd/curl -X POST -k -H \"Content-Type: application/x-www-form-urlencoded\" -d \"" # bodyColor # "\" http://192.168.178.74/color";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State(farben);
Hier wird also für 1 Stunde 30 Minuten die Farbkombination 100-100-75-75 eingestellt. Danach kehrt die Helialux selbstständig wieder in den Automatikmodus zurück.

Beim Aufrufen des Scripts darf die Helialux-Webseite nicht geöffnet sein, da sonst der Modus nicht verändert wird.
wenn wir uns alle gegenseitig helfen, ist allen geholfen :wink:
_______________________________________________
CCU3 seit 2018, 103 Geräte, 202 Programme, 222 sysvar
Projekte: Wettersensor viewtopic.php?t=65631

Antworten

Zurück zu „CUxD“