+ Antworten
Ergebnis 1 bis 5 von 5
  1. #1
    Registriert seit
    Apr 2007
    Ort
    Linz, Austria
    Beiträge
    216

    Standard EINE Variable von mehreren anderen Variablen "triggern" - Logikbaustein nachbilden

    Hallo,
    mir fehlt ein bisschen die Idee deshalb beschreibe ich was ich machen möchte.
    Es gibt mehrere Stockwerke in welchen mittels KNX-Aktor das Licht eingeschaltet wird. Eine dazugehörige Instanz mit Variable habe ich.

    Nun möchte ich eine "Sammelvariable" welche solange auf TRUE ist als in einem beliebigen Stockwerk das Licht eingeschalten ist.
    Erst wenn nirgendwo mehr Licht leuchtet - also alle KNX-Aktoren bzw. deren Variablen auf FALSE sind soll auch diese Sammelvarialbe (alle Stockwerke) auf FALSE gehen.

    Normalerweise realisiert man so was mit einem Logikbaustein.

    Muss ich das in einem Script "hardcoded" ausprogrammieren oder gibts da Schnipsel welche ich übernehmen könnte ?

  2. #2
    Registriert seit
    May 2006
    Ort
    Hannover
    Beiträge
    3,609

    Ich nutze folgendes Script, das über ein jeweiliges Ereignis der gewünschten Leuchten getriggert wird und die "Sammelvariable" (29692) setzt.

    PHP-Code:
    <?

    $debug 
    false;
    $Events IPS_GetScriptEventList($_IPS['SELF']);
    if (
    $debug)
      
    print_r($Events);

    for (
    $number0;$number count($Events);$number++) {
      foreach(
    IPS_GetEvent($Events[$number]) as $key => $element) {
        if (
    $key == 'TriggerVariableID') {
          
    $type IPS_GetVariable($element)['VariableType'];
          switch (
    $type) {
            case 
    "0"$result GetValueBoolean($element);        break; // Boolean
            
    case "1"$result GetValueInteger($element);        break; // Integer
          
    }
          if (
    $debug)
              echo 
    "Event: ".$key." -> ".$element ." : " $result "\n";
          if (
    $result) {
            
    SetValueBoolean(29692 True);
            return;
          }
        }
      }
    }
    SetValueBoolean(29692 False);
    MfG Ralf

  3. #3
    Registriert seit
    Jun 2012
    Ort
    House of Dragons @ Lübeck
    Beiträge
    10,761

    Und hier fast plug'n'play. Und kann sogar global ausschalten
    Etagenlicht
    Michael
    on Win10VM (ESXi): I7, 32GB RAM, HW-RAID5, 2xSat | HW: pivccu + ca.130 Geräte (ca.550ch), EM1000, CUL, 1Wire, FritzBox Cable, Android Phone + Tablet, Onkyo NR| SW: IPS, Apache2(mod_ssl/PHP), MySQL, hMailServer, PRTG, RoundCube, Win2016 Ess., MediaPortal, Kodi

  4. #4
    Registriert seit
    Apr 2007
    Ort
    Linz, Austria
    Beiträge
    216

    Die beiden Beispiele waren genau was ich gesucht habe.
    Ein großes Dankeschön an beide Helferlein. Was wäre die Welt nur ohne euch
    Ohne besondere Hintergedanken habe ich mich dann doch für die "Etagenlicht" Lösung entschieden.
    Es funktioniert einwandfrei.

  5. #5
    Registriert seit
    Nov 2009
    Ort
    Essen
    Beiträge
    2,658

    Auch wenn Du schon eine Lösung hast, hier noch eine weitere Möglichkeit:

    Ich suche mit IPS_GetInstanceListByModuleID("{F3058AB2-AFDC-4479-A053-5F4599DF6F5B}") alle entsprechenden Instanzen und werte entsprechend aus.
    Deutschlandweite Dienstleistungen rund um und mit IP-Symcon. Systemintegrator im Bereich KNX. ekey Partner. Infos unter https://schrader-it.net

Ähnliche Themen

  1. Antworten: 12
    Letzter Beitrag: 30.09.19, 12:09
  2. Antworten: 2
    Letzter Beitrag: 25.06.16, 18:58
  3. Klick auf eine Boolean Variable "simulieren"
    Von disaster123 im Forum Skripte, PHP, SQL
    Antworten: 0
    Letzter Beitrag: 20.11.15, 18:26
  4. Antworten: 2
    Letzter Beitrag: 10.11.14, 08:56
  5. manuelles triggern von "extern"
    Von Tonic1024 im Forum Allgemeine Diskussion
    Antworten: 14
    Letzter Beitrag: 21.10.05, 07:39