Milight Led, EasyLed in Mediola steuern

Re: Milight Led, EasyLed in Mediola steuern

Beitragvon derklein » 18. Januar 2015, 17:04

Vielen dank für diese super Anleitung !
Habe mir einen raspberry pi besorgt ,deine Anleitung befolgt und bin begeistert.
Endlich funktioniert die Steuerung der Milight LED´s zuverlässig und sogar mit Rückmeldung.

Habe jetzt 4 Zonen die sich wunderbar per Mediola und auch via Homematic Wandtaster steuern lassen.
(Script für HomematicWandtaster:
string stdout;
string stderr;
system.Exec("wget -O /dev/null -q http://*IP DER PI*/hell2/boardan.php")

Leider bin ich nicht so bewandert in HTML und PHP aber ich werde mich wohl etwas intensiver damit beschäftigen.
Was ich gerne noch umsetzen will ist eine Aktive Gruppe für alle Zonen , damit ich alle Farben gleichzeitig wechseln kann.
Und noch ein php file zum abdimmen auf wert x.
derklein
 
Beiträge: 10
Registriert: 19. Dezember 2014, 12:03

Re: Milight Led, EasyLed in Mediola steuern

Beitragvon zdenko33 » 18. Januar 2015, 18:27

hallo

um alle zonen zu steuern gibt es diesen befehl in milight.php
$milight->setRgbwActiveGroup(0);

du musstest überall wo in php dateien nach active group abgefragt wird, noch diesen code einfügen/ersetzen,

Code: Alles auswählen
if ($_SESSION['active'] == 0 ) {
 $milight->setRgbwActiveGroup(0);
// Get cURL resource
$curl = curl_init();
// Set some options - we are passing in a useragent too here
curl_setopt_array($curl, array(
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_URL => 'http://pi:8080/api/set/22433/?value=1',
    CURLOPT_USERAGENT => 'Codular Sample cURL Request'
));
// Send the request & save response to $resp
$resp = curl_exec($curl);
// Close request to clear up some resources
curl_close($curl);

// Get cURL resource
$curl = curl_init();
// Set some options - we are passing in a useragent too here
curl_setopt_array($curl, array(
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_URL => 'http://pi:8080/api/set/22434/?value=0',
    CURLOPT_USERAGENT => 'Codular Sample cURL Request'
));
// Send the request & save response to $resp
$resp = curl_exec($curl);
// Close request to clear up some resources
curl_close($curl);



$milight->rgbwSetColorHexString($hex_color); // or #FF1254   
file_put_contents("letzte_farbe1.dat", $norm_color);
file_put_contents("letzte_farbe2.dat", $norm_color);
file_put_contents("letzte_farbe3.dat", $norm_color);
file_put_contents("letzte_farbe4.dat", $norm_color);

file_put_contents("globe_an_aus.dat", 1);

// Get cURL resource
$curl = curl_init();
// Set some options - we are passing in a useragent too here
curl_setopt_array($curl, array(
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_URL => 'http://pi:8080/api/set/22394/?value=1',
    CURLOPT_USERAGENT => 'Codular Sample cURL Request'
));
// Send the request & save response to $resp
$resp = curl_exec($curl);
// Close request to clear up some resources
curl_close($curl);






}


wenn du jetzt mehrere lampen hast und schaltest ist wichtig diesen code zu ändern/hinzufügen:
Code: Alles auswählen
file_put_contents("globe_an_aus.dat", 1);
//du hast z.b. eine datei wohnzimmer_lampe.dat, oder mehrere
//dann musst du in die .dat dateien hinter diese zeile weitere zufügen
file_put_contents("deine_datei.dat", 1);
//weil jetzt werden sie alle an sein


dann nimmst du die active_group1.php
kopierst du den inhalt in die active_group0.php
und änderst
Code: Alles auswählen
$_SESSION['active'] = 1;

die 1 auf 0
erstellst einen button für alles activ
und dort http befehl
Code: Alles auswählen
http://pi/active_group0.php


analog zu farbe auch mit helligheit so
die teile wo abgefragt wird active group , den code einfügen /ersetzen
Code: Alles auswählen
if ($_SESSION['active'] == 0) {
 $milight->setRgbwActiveGroup(0);
$milight->rgbwBrightnessPercent($helligheit);
file_put_contents("helligheit1.dat", $helligheit);
file_put_contents("helligheit2.dat", $helligheit);
file_put_contents("helligheit3.dat", $helligheit);
file_put_contents("helligheit4.dat", $helligheit);
//wird in alle .dat dateien der gleiche wert gesetzt um später wieder den wert auszulösen dergesetzt war
}

versuche doch zu spielen
aber davor mach dir eine sicherung deiner funktionierenden einstellungen :D
zdenko33
 
Beiträge: 253
Registriert: 8. Dezember 2014, 20:52

Re: Milight Led, EasyLed in Mediola steuern

Beitragvon derklein » 18. Januar 2015, 19:08

Besten Dank :D

Da habe ich wieder was zu tun.....
derklein
 
Beiträge: 10
Registriert: 19. Dezember 2014, 12:03

Re: Milight Led, EasyLed in Mediola steuern

Beitragvon derklein » 19. Januar 2015, 14:21

So hab es hinbekommen :D
Kann jetzt auch gleichzeitig alle Zonen in Farbe und Helligkeit ändern. Perfekt

Vielleicht hast du noch einen Tipp für das abdimmen auf wert x mittels php aufruf ;)
Würde gerne diverse LED´s automatisch abdimmen wenn der TV oder Beamer läuft ...
derklein
 
Beiträge: 10
Registriert: 19. Dezember 2014, 12:03

Re: Milight Led, EasyLed in Mediola steuern

Beitragvon zdenko33 » 19. Januar 2015, 16:19

Schön :D
also ich gehe davon aus das du das mit einem programm auf der ccu machen möchtest...
dann brauchst du eine php datei hell_manuel.php z.b.
Code: Alles auswählen
<?php
session_start();
require 'Milight.php';

$milight = new Milight('192.168.1.29');


if (!empty($_GET["hell_wert"])) {
   $helligheit = $_GET['hell_wert'];

$active = file_get_contents("active_group.dat");
$_SESSION['active'] = $active;
if ($_SESSION['active'] == 0) {
 $milight->setRgbwActiveGroup(0);
$milight->rgbwBrightnessPercent($helligheit);
file_put_contents("helligheit1.dat", $helligheit);
file_put_contents("helligheit2.dat", $helligheit);
file_put_contents("helligheit3.dat", $helligheit);
file_put_contents("helligheit4.dat", $helligheit);
// alle .dat werden geschrieben weil active gruppe /alle bzw 0
}


elseif ($_SESSION['active'] == 1) {
 $milight->setRgbwActiveGroup(1);
$milight->rgbwBrightnessPercent($helligheit);
file_put_contents("helligheit1.dat", $helligheit);
}
elseif ($_SESSION['active'] == 2) {
 $milight->setRgbwActiveGroup(2);
$milight->rgbwBrightnessPercent($helligheit);
file_put_contents("helligheit2.dat", $helligheit);
}
elseif ($_SESSION['active'] == 3) {
 $milight->setRgbwActiveGroup(3);
$milight->rgbwBrightnessPercent($helligheit);
file_put_contents("helligheit3.dat", $helligheit);
}
 
elseif ($_SESSION['active'] == 4) {
 $milight->setRgbwActiveGroup(4);
$milight->rgbwBrightnessPercent($helligheit);
file_put_contents("helligheit4.dat", $helligheit);
}

}else{ 
  $active = file_get_contents("active_group.dat");
$_SESSION['active'] = $active;
if ($_SESSION['active'] == 1) {
 $helligheit = file_get_contents("helligheit1.dat");

 
}
elseif ($_SESSION['active'] == 2) {
$helligheit = file_get_contents("helligheit2.dat");



}
elseif ($_SESSION['active'] == 3) {
$helligheit = file_get_contents("helligheit3.dat");

}
 
elseif ($_SESSION['active'] == 4) {
 $helligheit = file_get_contents("helligheit4.dat");

}







}




 
 




?>


wenn du jetzt ein programm machst, solltest du wie du gesagt hast deine lampe zuerst mit einem script anschalten
Code: Alles auswählen
string stdout;
string stderr;
system.Exec("wget -O /dev/null -q http://*IP DER PI*/hell2/boardan.php")

danach rufst du wieder mit script diese oben erstellte php datei.
Code: Alles auswählen
string stdout;
string stderr;
system.Exec("wget -O /dev/null -q http://*IP DER PI*/hell2/hell_manuel.php?hell_wert=40")


ich würde lieber cuxd installieren und diese aufrufe mittels cuxd ausführen...

solltest du im programm nicht die gewünschte lampe erstmal einschalten, dann wird letzte aktive lampe an gehen, aber ohne den rückstatus auf mediola, deswegen ist wichtig zuerst einschalten

Wenn du damit vorhast allen gruppen helligheit zu verändern dann müssen wir es etwas anpassen...
man musste dann so machen dass du auch mit dem helligheit wert die aktive gruppe auch sendest (0)
teste erstmal so
unbedingt nach cuxd schauen
zdenko33
 
Beiträge: 253
Registriert: 8. Dezember 2014, 20:52

Re: Milight Led, EasyLed in Mediola steuern

Beitragvon zdenko33 » 19. Januar 2015, 16:34

hier noch wie der aufruf über cuxd aussehen kann
Code: Alles auswählen
var helligheit = "80";
var url = "http://pi/wetter/hell_manuel.php?hell_wert="#helligheit#"";
var cURL="LD_LIBRARY_PATH=/usr/local/addons/cuxd /usr/local/addons/cuxd/curl";
dom.GetObject("CUxD.CUX2801001:2.CMD_EXEC").State(cURL#" -s -m 5 '"#url#"'");

oder direkt
Code: Alles auswählen
var url = "http://pi/wetter/hell_manuel.php?hell_wert="80";
var cURL="LD_LIBRARY_PATH=/usr/local/addons/cuxd /usr/local/addons/cuxd/curl";
dom.GetObject("CUxD.CUX2801001:2.CMD_EXEC").State(cURL#" -s -m 5 '"#url#"'");
zdenko33
 
Beiträge: 253
Registriert: 8. Dezember 2014, 20:52

Re: Milight Led, EasyLed in Mediola steuern

Beitragvon derklein » 21. Januar 2015, 14:25

So , dank deinen hinweisen ist auch dieser Wunsch erfüllt .
Klappt wunderbar , habe ein wenig rumgespielt und das ganze ein wenig kompakter gemacht .
Wenn Tv oder Beamer angeschaltet wird , wird ein Programm auf der CCU2 gestartet welches diverse Homematic Komponenten dimmt oder ausschaltet , und dann mit dem folgendem php aufruf die Milights hinter dem TV abdimmt (aber nur wenn diese an sind).
Code: Alles auswählen
<?php


require 'Milight.php';

$milight = new Milight('192.168.178.49');
$on = file_get_contents("globe_an_aus.dat");
$helligheit = 50;

if ($on == 1) {
$board = 0;

$milight->setRgbwActiveGroup(1);
file_put_contents("active_group.dat", 1);
$milight->rgbwBrightnessPercent($helligheit);
file_put_contents("helligheit1.dat", $helligheit);


}


ASTREIN :D :D :D
derklein
 
Beiträge: 10
Registriert: 19. Dezember 2014, 12:03

Re: Milight Led, EasyLed in Mediola steuern

Beitragvon zdenko33 » 22. Januar 2015, 10:10

Hallo
Wichtig ist dass es klappt und du damit zufrieden bist :D
gruss!
zdenko33
 
Beiträge: 253
Registriert: 8. Dezember 2014, 20:52

Re: Milight Led, EasyLed in Mediola steuern

Beitragvon kawanager » 22. April 2015, 19:35

n'Abend,

bin nu nich so der Webserver Profi.

Hier wird das Ganze mit einem PI realisiert. Eigentlich kann ich das doch auch auf jedem anderen Webserver machen oder? Ich hab eine Synology, die hat sowas ja schon Onboard. Kann ich die Hell2.zip dort auch einfach im www Verzeichnis entpacken und nach den Anpassung der IP und der HTTP Links alles nutzen?

Ich probiere es gerade, blicke aber bei den HTTP Aufrufen nicht durch.

CURLOPT_URL => 'http://store/api/set/22394/?value=0',

store ist die Synology, der Webserver läuft auf Port 80, daher hab ich die Portangabe weggelassen. Aber das Verzeichnis api.... gibt es ja gar nicht???

Oder ist es speziell für den PI? Hab ja die Syno stets am laufen, warum soll ich noch nen PI kaufen, so mein naiver Gedanke.

Die Lösung gefällt mir insgesamt recht gut. Thumbs up

Danke schon mal für Tipps

Gruß

Kawanager
kawanager
 
Beiträge: 4
Registriert: 27. Oktober 2013, 19:00

Vorherige

Zurück zu mediola a.i.o. creator

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste