Ansteuern aller LED Status anzeigen mit einem Befehl

Es ist möglich mit dem folgenden Befehl alle 16 LED`s der Statusanzeige gleichzeitig anzusteuern :

@HM_WriteValueString(45368 /*[Physical Devices\Displays\D1]*/,"ALL_LEDS","0");

schaltet z.b. alle LED`s aus. Es gibt auf der Homematic Inside Webseite das folgende Excel Spreadsheet mit dem man den Code berechnen kann der benötigt wird um ein bestimmtes „Muster“ zu erzeugen : HomeMatic-INSIDE - LED-Statusanzeige (16fach) Konfigurator

ACHTUNG das funktioniert NUR wenn eine CCU eingesetzt wird !!!

Das folgende Script erlaubt die Übergabe eines Arrays in dem die Zustände der LED`s (Wertebereich = „Rot“,„Grün“,„Orange“,„Aus“) definiert werden. Die Position definiert die LED Nr. (erster Eintrag steuert die erste LED und so weiter).

<?

$LED_Matrix = ["Rot","Aus","Aus","Aus","Aus","Aus","Aus","Grün","Aus","Aus","Aus","Aus","Orange","Aus","Aus","Aus"];
$Sequenz = 0;
foreach ($LED_Matrix as $key => $color)
{
	$LED_Nr = $key+1;
        Calculate_LED_Control_Number ($LED_Nr,$Results);
	$Sequenz = $Sequenz + $Results[$color];
}

@HM_WriteValueString(45368,"ALL_LEDS",$Sequenz);



function Calculate_LED_Control_Number ($LED_NR,&$Results)
{

	$Bereich = $LED_NR * 2;
	$Rot_exp = $Bereich - 2;
	$Gruen_exp = $Bereich - 1;
	$Results["Rot"] = pow(2,$Rot_exp);
	$Results["Grün"] = pow(2,$Gruen_exp);
	$Results["Orange"] = $Results["Rot"]+$Results["Grün"];
	$Results["Aus"] = 0;

}



?>

Viel Spass

Hallo BestEx,

habe gerade mal dein Script ausprobiert.
Hier tut sich leider nix.

Habe nur die Instance ID der ersten LED hier eingetragen, oder muss ich noch was anderes ändern?

Danke u. Gruß,
Doc

Hmmm verstehe ich nicht, dass müsste eigentlich funktionieren. Zur Sicherheit hier noch mal ein Bild : meine Instanz ist wie folgt konfiguriert

instanzled.JPG

So sieht es bei mir auch aus.

Könntest du zur Sicherheit nochmal dein Script hier in PHP Tags hier rein kopieren, nicht das wir hier ein C&P Problem haben?

Mein FW ist übrigens 1.1

Danke u. Gruß,
Doc

Gerade auch mal probiert … ausser, daß leuchtende LEDs abgeschaltet werden tut sich bei meiner Anzeige auch nix.

Gruß
Bruno

Ja genau das Verhalten habe ich auch.
Ob BestEx das Script selber in Verwendung hat?
Ich wollte mir eigentlich das Anlegen der ganzen Instancen ersparen und die LEDs über Variablen schalten.
Deshalb wäre das mit dem Script gerade zu perfekt gewesen.
Kann daran aber auch leider keinen Fehler feststellen, der zuvor genannte Link zu homematic-inside existiert leider nicht mehr.

Grüße,
Doc

Na ja, manchmal muss man eben kurz suchen, da sich auch Foren verändern :wink:
http://www.homematic-inside.de/software/download/item/led16cfg-resource-excel

Ja habe ich doch schon gefunden.

Die Sequenz wird im Script auch richtig berechnet verglichen mit dem der Excel.

Das Problem schein hier zu liegen.

HM_WriteValueString(59943 /*[HomeMatic\LED Display Flur\LED 01]*/,"ALL_LEDS",$Sequenz);

Wenn ich hier direkt den Wert eintrage, passiert auch nichts.

HM_WriteValueString(59943 /*[HomeMatic\LED Display Flur\LED 01]*/,"ALL_LEDS","50364417");

oder

HM_WriteValueString(59943 /*[HomeMatic\LED Display Flur\LED 01]*/,"ALL_LEDS",50364417);

Die Sequenz soll aber als String übergeben werden.

Ich habe das Script an 2 LED Paneln in Verwendung. Es funktioniert tadellos und wird mehrfach täglich angesteuert (Ich zeige an welche Türen bzw. Fenster offen/Zu sind und in welchen Räumen es Bewegung gibt.)

Hier das ganze nochmal in PHP Tags :

<?

$LED_Matrix = ["Rot","Rot","Aus","Aus","Grün","Aus","Aus","Aus","Aus","Aus","Aus","Aus","Aus","Aus","Aus","Aus"];
control_led_status_display($LED_Matrix);

function control_led_status_display($LED_Matrix)
{

$Sequenz = 0;
foreach ($LED_Matrix as $key => $color)
{
	$LED_Nr = $key+1;
   Calculate_LED_Control_Number ($LED_Nr,$Results);
	$Sequenz = $Sequenz + $Results[$color];
}

@HM_WriteValueString(45368 /*[Physical Devices\Displays\LED Eingang]*/,"ALL_LEDS",$Sequenz);

}

function Calculate_LED_Control_Number ($LED_NR,&$Results)
{

	$Bereich = $LED_NR * 2;
	$Rot_exp = $Bereich - 2;
	$Gruen_exp = $Bereich - 1;
	$Results["Rot"] = pow(2,$Rot_exp);
	$Results["Grün"] = pow(2,$Gruen_exp);
	$Results["Orange"] = $Results["Rot"]+$Results["Grün"];
	$Results["Aus"] = 0;

}



?>

Das ist jetzt sicher eine überflüssige Frage aber ich gehe mal auf Nummer sicher : Ihr habt doch bestimmt das Array entsprechend geändert oder ???

Die folgende Belegung würde die ersten beiden LED`s auf Rot und die fünfte auf Grün schalten(der Rest ist aus) :

$LED_Matrix = ["Rot","Rot","Aus","Aus","Grün","Aus","Aus","Aus","Aus","Aus","Aus","Aus","Aus","Aus","Aus","Aus"];

Nein,

Array habe ich nicht geändert. Warum auch.

Das Display sollte sich doch so verhalten, wie im Array angegeben?

Auch mit deinem Beispiel jetzt nur mit deinen zwei ersten LEDs ändert sich da nichts.
Die Sequenz wird ja auch richtig berechnet, nur mit dem HM_Write Befehl nicht richtig übergeben.

Hast du das so im Einsatz?

Danke u. Gruß,
Doc

Ja das funktioniert einwandfrei bei mir …

Dann poste doch bitte nochmal dein Script in PHP Tags komplett.

Also wenn du das hier ausführst, gehen die 3 LEDs wie im Array an?

$LED_Matrix = ["Rot","Rot","Aus","Aus","Grün","Aus","Aus","Aus","Aus","Aus","Aus","Aus","Aus","Aus","Aus","Aus"];
$Sequenz = 0;
foreach ($LED_Matrix as $key => $color)
{
	$LED_Nr = $key+1;
        Calculate_LED_Control_Number ($LED_Nr,$Results);
	$Sequenz = $Sequenz + $Results[$color];
}

HM_WriteValueString(59943 /*[HomeMatic\LED Display Flur\LED 01]*/,"ALL_LEDS",$Sequenz);

echo $Sequenz;

function Calculate_LED_Control_Number ($LED_NR,&$Results)
{

	$Bereich = $LED_NR * 2;
	$Rot_exp = $Bereich - 2;
	$Gruen_exp = $Bereich - 1;
	$Results["Rot"] = pow(2,$Rot_exp);
	$Results["Grün"] = pow(2,$Gruen_exp);
	$Results["Orange"] = $Results["Rot"]+$Results["Grün"];
	$Results["Aus"] = 0;

}

Vermute mal eher einen Fehler im BidCos bzw. daß es nur mit CCU geht

Da bin ich auch gerade bei.

Habe noch den BidCos 1.506 drauf, finde aber auch nichts neueres bei eq-3.

@BestEx,
benutzt du die CCU?

Gruß,
Doc

In seiner „Fussleiste“ steht „2x Homematic 1.507“, somit ja.

Neue Sw für den LAN-Adapter soll im August kommen.

Ja hatte ich gesehen und als HM- Lan Adapter interpretiert.
Wer nutzt denn schon 2 CCUs :confused:

Richtig ich setze 2 CCU`s ein plus 3 LAN Adapter die allerdings an der CCU hängen und nicht selbständig sind.Demnächst kommt noch ein RaspberryPi dazu auf dem die CCU2 FW läuft :slight_smile:

Cool das Projekt war mir neu, hab da grad mal im Forum gelesen.
Dann werd ich mir doch mal so eine kleine Himbeere zulegen muessen…
Danke fuer die Info.