Skript offene Fenster geht nicht mit optischen Aktoren

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

Antworten
andy1972
Beiträge: 105
Registriert: 21.10.2012, 02:49
Hat sich bedankt: 11 Mal

Skript offene Fenster geht nicht mit optischen Aktoren

Beitrag von andy1972 » 19.02.2017, 16:00

Hallo zusammen,
seit ein paar Jahren werde ich erfolgreich über Prowl informiert, wenn nach Abschließen der Tür (scharf) ein Fenster oder eine Tür geöffnet ist.
Nun musste ich 2 Aktoren in optische Aktoren austauschen. Diese werden leider nicht erkannt. Sie sind Favoriten_Fenster hinterlegt auch im skript ist die entsprechende Info hinterlegt (HM-Sec-SCO). Was habe ich denn dabei falsch gemacht?
Hier mal mein Skript:

Code: Alles auswählen

   integer test = 0;

    !******************************************************
    ! Ab hier Script CODE - Do not change behind this line
    !******************************************************
    if (test == 0) {
      WriteLine("Hello");
    };

    !---- Nachricht ueber Prowl senden ----
    string stdout;
    string stderr;
    string apikey = "xxxxxxxxxxxxx";
    string application = "HomeMatic";
    string message;
    !---- Nachricht ueber Prowl senden ---- Ende

    if (dom.GetObject('Intern Scharf').State() == true) {
      if (test == 0) {
        WriteLine("Geraete abfragen im Favoritenliste");
      };

      ! Alle Geraete in Favoritenliste "Fav_Fenster" abfragen und auswerten.
      var myAssembly = dom.GetObject('Fav_Fenster');
      string itemID;
      integer offen = 0;
          
      foreach(itemID, myAssembly.EnumUsedIDs()) {
        var item = dom.GetObject(itemID);
        if (item.IsTypeOf(OT_CHANNEL)) {
          var device = dom.GetObject(item.Device());

          ! Pruefen, ob Fenster offen
          !    Tuerfensterkontakte                  Fenster-Drehgriffsensoren         
          if ((device.HssType() == "HM-Sec-SC") || (device.HssType() == "HM-Sec-SCO") || (device.HssType() == "HM-Sec-SC-2") || (device.HssType() == "HM-Sec-RHS")) {
            var myChannel = dom.GetObject(item);
            string id;
            foreach(id, myChannel.ChnFunction()) {
              var func = dom.GetObject(id);
              if (func.Name() == "Fenster") {
                if (item.State() > 0) {
                  offen = offen + 1.00;
                  if (offen > 1) {message = message # "%20-%20";}
                  message = message # device.Name();
                }
              }
            }
          }
        }
      }       

      ! Wenn ein Fenster offen ist, dann Meldung senden   
      if (offen > 0) { ! Fenster offen, Meldung senden
        if (test == 1) {
          WriteLine("Anzahl offene Fenster " # offen.ToString() # " - " # message);
        } else {
          !---- Nachricht ueber Prowl senden ----
          message = offen.ToString() # "%20Fenster%20geoeffnet%20-%20" # message;
          system.Exec("wget -q -O /dev/null 'http://prowl.weks.net/publicapi/add?apikey=" # apikey # "&application="# application #"&priority=0\&description="# message #"'", &stdout, &stderr);
          !---- Nachricht ueber Prowl senden ---- Ende
        }
      } else {
        if (test == 1) {
          WriteLine("Keine offenen Fenster vorhanden!");
        }
      }
    } else {
      if (test == 1) {
        WriteLine("Anwesend - keine Prüfung");
      };
    }
Zuletzt geändert von alchy am 19.02.2017, 21:11, insgesamt 1-mal geändert.
Grund: Code in Codetags posten

alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

Re: Skript offene Fenster geht nicht mit optischen Aktoren

Beitrag von alchy » 19.02.2017, 21:19

andy1972 hat geschrieben:Was habe ich denn dabei falsch gemacht?
Hauptsächlich? - Schreibfehler HM-Sec-SCo

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

andy1972
Beiträge: 105
Registriert: 21.10.2012, 02:49
Hat sich bedankt: 11 Mal

Re: Skript offene Fenster geht nicht mit optischen Aktoren

Beitrag von andy1972 » 20.02.2017, 16:51

Hallo alchy, vielen Dank, das war es! Geht alles.


Gesendet von iPad mit Tapatalk

Antworten

Zurück zu „HomeMatic Zentrale (CCU / CCU2 / CCU3 / Charly)“