Tag,
durch erfolgreiches zusammenkopieren..habe ich dieses kleine Plugin erstellt..
Hintergrund: Meine Dali-GW`s können den Status einer Gruppe entweder in Byte oder nur in Bit liefern.
Für die Visu zur korrekten Anzeige der Slider benötige ich die Rückmeldung in Byte, für einen Switch in der Visu, oder für die Rückmeldung in einem normalen Taster z.B. zur LED-Anzeige (MDT-Glastaster) brauche ich das 1/0 Bit.
Falls es wer brauchen kann der noch weniger Programmierahnung hat als ich..
Falls man das Besser machen kann - Infos gerne hier posten.
Dankeschön!
durch erfolgreiches zusammenkopieren..habe ich dieses kleine Plugin erstellt..
Hintergrund: Meine Dali-GW`s können den Status einer Gruppe entweder in Byte oder nur in Bit liefern.
Für die Visu zur korrekten Anzeige der Slider benötige ich die Rückmeldung in Byte, für einen Switch in der Visu, oder für die Rückmeldung in einem normalen Taster z.B. zur LED-Anzeige (MDT-Glastaster) brauche ich das 1/0 Bit.
Falls es wer brauchen kann der noch weniger Programmierahnung hat als ich..

Falls man das Besser machen kann - Infos gerne hier posten.
Dankeschön!
PHP-Code:
#Plugin zur Ausgabe einer 1/0 auf die GA-Bit bei Eingang eines Bytes gößer-gleich 1.
#Dadurch lassen sich Wert-Rückmeldungen für Eingangsobjekte von Tastern oder eine Visu als 1Bit-Größen nutzen.
#Name: frei wählbar zur eigenen Identifizierung der GA`s
#GA_Byte: GA des Statusobjektes eines Aktors
#GA_Bit: GA des Eingangsobjektes von Tastern oder für eine Visu.
my @ByteGA;
#Hier Anpassunen vornehmen:
push @ByteGA, { Name => "Garage_Durchgang", GA_Byte => "1/4/3" , GA_Bit => "1/4/4",};
push @ByteGA, { Name => "Garage_Unterschlag_vorne", GA_Byte => "1/4/14", GA_Bit => "1/4/15",};
#push @ByteGA, { Name => "Garage_Unterschlag_vorne", GA_Byte => "1/4/14", GA_Bit => "1/4/15",};
#push @ByteGA, { Name => "Garage_Unterschlag_vorne", GA_Byte => "1/4/14", GA_Bit => "1/4/15",};
#push @ByteGA, { Name => "Garage_Unterschlag_vorne", GA_Byte => "1/4/14", GA_Bit => "1/4/15",};
#Ab hier nix ändern sonst...
## Plugin nur bei Telegramm aufrufen
$plugin_info{$plugname.'_cycle'} = 0; # Plugin nur bei Telegramm aufrufen, daher =0
##Ausführen des Codes je definierter ByteGA
foreach my $element (@ByteGA)
{
$plugin_subscribe{$element->{GA_Byte}}{$plugname} = 1; #Anmeldung an Gruppenadresse der Byte-GA`s
#Bei einem Eintreffen eines Telegrammes auf die angemeldete GA_Byte werden die Bedingungsprüfungen abgearbeitet:
if ($msg{'apci'} eq "A_GroupValue_Write" and ($msg{'dst'} eq $element->{GA_Byte})) #wenn ein Befehl daher kommt und dieser was auf die GA_Byte schreibt, dann
{
my $Bytestatus = knx_read($element->{GA_Byte}, 300,
5.001); #Zuweisung des Wertes der "GA_Byte" der Hilfs-Variablen "$Bytestatus"
if ($Bytestatus >= 1) {knx_write($element->{GA_Bit},1,1); #Bedingung, wenn der Wert in der Variablen $Bytestatus" größer oder gleich 1 ist, dann Schreibe "eins" auf die GA_Bit.
return "Bit_on_gesetzt" };
if ($Bytestatus == 0) {knx_write($element->{GA_Bit},0,1);
return "Bit_off_gesetzt" };
}
}
return "Warte_auf_Byteänderungen"; #Rückgabewert falls noch kein Telegramm eingetroffen ist
Kommentar