Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - Auswerten Luxwertes, Wandlung Datentyp 9.004

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • twinturbo
    antwortet
    Hi, ich habe mal den relevanten Part rausgekramt und Dir etwas abgespeckt hier aufbereitet.

    Wichtig ist, dass Du die GA im Wiregate auch korrekt angelegt hast.
    EIB/KNX Buszugriff (eibd) --> KNX Gruppenadressen bearbeiten:

    Neuen Eintrag für die GA erzeugen, bei mir ist die für den Luxwert wie folgt angelegt:

    GA: 4/4/2
    Name: Carport Luxwert
    Datentyp: 9.004

    Code:
    #Variablen
    my $ga_luxwert = "4/4/2";
    my $Luxwert = 0;
    my $Schaltschwelle = 5;
    
    #Plugin auf einer GA anmelden
    $plugin_subscribe{$ga_luxwert}{$plugname} = 1;
    plugin_log($plugname,sprintf("Per subscribe auf Gruppenadresse %s angemeldet.", $ga_luxwert));
    
    #Auswerten ob angemeldete GA aufgerufen wurden
    if ($msg{'apci'} eq "A_GroupValue_Write" && $msg{'dst'} eq $ga_luxwert)
       {
        $Luxwert = $msg{'value'};
        plugin_log($plugname, sprintf("Expliziter Aufruf, aktueller Luxwert: %4.2f, vorgegebene Schaltschwelle ist %d Lux.", $Luxwert, $Schaltschwelle) );
    
         if ($Luxwert <= $Schaltschwelle )
            {
             # MACH HIER IRGENDWAS!
            }
        }
    Angehängte Dateien

    Einen Kommentar schreiben:


  • devilchris
    antwortet
    @twinturbo
    Kannst du den kompletten Code zur verfügung stellen?
    Ich wollte mit dem Code probieren Datentyp 1.001 in 16.001 zu wandeln.

    Einen Kommentar schreiben:


  • twinturbo
    antwortet
    Kaum macht man`s richtig schon funktionierts

    2013-04-05 14:37:22.766,Fasadenlicht,Aktueller Luxwert: 737.92

    Danke Euch, und mein Häuschen kann nun heute Abend von allein das Außenlicht anschalten

    Einen Kommentar schreiben:


  • JuMi2006
    antwortet
    Warum $msg{'data'} und nicht $msg{'value'}?

    A_GroupValue_Write,1.1.4,4/4/2,34 EC,806.4,,9.004,0,low,5,T_DATA_XXX_REQ,0

    $msg{'data'} = 34 EC
    $msg{'value'} = 806.4

    Sollte so sein. Die GA muss lediglich im WireGate eingetragen/importiert sein.

    Einen Kommentar schreiben:


  • StefanW
    antwortet
    Ok,

    bitte erstmal die Variable richtig initialisieren, weil ein Komma ist hier ein Separator. Und dann den bereits interpretierten Wert vom Bus lesen, also '
    value' anstatt die uninterpretierte Variante mit 'msg':

    my $Luxwert = 0
    $Luxwert = $msg{'value'};
    plugin_log($plugname, sprintf("Aktueller Luxwert: %4.2f", $Luxwert) );


    lg

    Stefan

    Einen Kommentar schreiben:


  • - √ - Auswerten Luxwertes, Wandlung Datentyp 9.004

    Hallo,

    ich bräuchte mal die Hilfe von einem Perl-Profi.

    Möchte in einem Plugin einen Luxwert vom PM auswerten und damit eine
    Dämmerungsschaltung ansteuern. Irgendwie bekomme ich den
    Datentyp aber nicht richtig gewandelt.

    Code Fragment:

    my $Luxwert = 0,0;
    $Luxwert = $msg{'data'};
    plugin_log($plugname, sprintf("Aktueller Luxwert: %4.2f", $Luxwert) );


    Aus so einer Nachricht
    A_GroupValue_Write,1.1.4,4/4/2,34 EC,806.4,,9.004,0,low,5,T_DATA_XXX_REQ,0

    Wird Logeintrag:
    2013-04-05 13:16:25.273,Fasadenlicht,Aktueller Luxwert: 35.00

    Wie muss ich das richtig wandeln ?
Lädt...
X