Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Praktische Anwendungen (Showcase)
  4. Custom Skill Fensterkontakte - Fenster offen Abfrage

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    336

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.6k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.5k

Custom Skill Fensterkontakte - Fenster offen Abfrage

Geplant Angeheftet Gesperrt Verschoben Praktische Anwendungen (Showcase)
4 Beiträge 2 Kommentatoren 1.2k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • S Offline
    S Offline
    steinejo_io
    schrieb am zuletzt editiert von
    #1

    Hallo Leute,

    habe mich über die Weihnachtsfeiertage mit dem Thema Custom Skill und Fensterkontakte auseinandergesetzt und möchte meine Erfahrungen ein wenig teilen.

    Der Custom Skill macht eigentlich nichts anderes als ein per text2command hinterlegtes Kommando auszführen - in dem Fall die Frage nach Fenster offen!? - gibt den Variableninhalt eines per Skript generierten Textes aus.

    5006_screentext2command.png

    Dann habe ich ein Script mit dem Zusammenstoppeln des Strings (eigener Datenpunkt) angelegt - das ganze mache ich zyklisch - könnte man natürlich schöner mit Eventtriggern machen aber sei es drum.

    Im Normalfall sind alle Fenster geschlossen.

    Sobald ein Fenster geöffnet wird schreibt das Script wo es geöffnet ist - (vorsicht hab eine Mischlung aus HMIP (rpc1) und HM Fensterkontakten (rpc0)

    Am Ende des Skript baue ich noch bei mehreren Fenstern ein und vor dem letzten Fenster ein und schon plappert mir Alexa auf die Frage ob Fenster offen sind eine Antwort.

    Aus "legacy" Gründen ist das Script eigentlich ein globales in dem eine Function definiert ist - theoretisch könnte man das ganze natürlich gleich in einen Cron einbauen.

    
    function PruefeFenster() {
      var FensterStatus = "Alle Fenster sind geschlossen";
      var FensterStatusOffenWo = "";
      var FensterOffenCount = 0;
      var lastDelimiter = 0;
    
      if (getState("hm-rpc.1.BLA1.1.STATE"/*HmIP-SWDM BLA1:1.STATE*/).val === 1) {
        FensterStatusOffenWo += "in der Küche, ";
        FensterOffenCount += 1;
    
      }
    
        if (getState("hm-rpc.1.BLA2.1.STATE"/*HmIP-SWDM BLA2:1.STATE*/).val === 1) {
    
        FensterStatusOffenWo += "im Ankleidezimmer, ";
        FensterOffenCount += 1;
      }
    
        if (getState("hm-rpc.1.BLA3.1.STATE"/*HmIP-SWDM BLA3:1.STATE*/).val === 1) {
    
        FensterStatusOffenWo += "im Schlafzimmer, ";
        FensterOffenCount += 1;
    
      }
    
          if (getState("hm-rpc.0.BLA4.1.STATE"/*HmIP-SWDM BLA4:1.STATE*/).val === true) {
    
        FensterStatusOffenWo += "in Christas Arbeitszimmer, ";
        FensterOffenCount += 1;
    
      }
    
          if (getState("hm-rpc.0.BLA5.1.STATE"/*HmIP-SWDM BLA5:1.STATE*/).val === true) {
    
        FensterStatusOffenWo += "im Wohnzimmer, ";
        FensterOffenCount += 1;
    
      }
    
          if (getState("hm-rpc.0.BLA6.1.STATE"/*BLA6.STATE*/).val === true) {
    
        FensterStatusOffenWo += "in Jörgs Arbeitszimmer, ";
        FensterOffenCount += 1;
    
      }
    
       if (FensterOffenCount > 0) {
           FensterStatus = "Fenster ";
    
         //wenn mehrere Fenster offen sind will ich grammatikalisch Richtig ein und einfügen.
            if (FensterOffenCount > 1) {
               lastDelimiter =  FensterStatusOffenWo.lastIndexOf(",");
    
               lastDelimiter =   FensterStatusOffenWo.substr(0, lastDelimiter).lastIndexOf(",");
    
               var replacement = " und ";
    
              FensterStatusOffenWo = FensterStatusOffenWo.substr(0, lastDelimiter) + " und " + FensterStatusOffenWo.substr(lastDelimiter + 1, FensterStatusOffenWo.length) ;
    
            }   
    
             FensterStatus += FensterStatusOffenWo;
             FensterStatus += " offen" ;
       }
       setState("javascript.0.FensterOffenTextAntwort"/*FensterOffenTextAntwort*/, FensterStatus);
    
    }
    
    1 Antwort Letzte Antwort
    0
    • haselchenH Offline
      haselchenH Offline
      haselchen
      Most Active
      schrieb am zuletzt editiert von
      #2

      Huhu…ich möchte Deine Arbeit in keinster Weise schmälern.

      Der User dslraser hat die Anfrage eigentlich schon perfektioniert.

      Meiner Meinung nach auch etwas einfacher und ebenfalls über Alexa steuerbar.

      Wie gesagt, keine Kritik, nur ein Hinweis, dass es das schon gibt.

      Synology DS218+ & 2 x Fujitsu Esprimo (VM/Container) + FritzBox7590 + 2 AVM 3000 Repeater & Homematic & HUE & Osram & Xiaomi, NPM 10.9.4, Nodejs 22.21.0 ,JS Controller 7.0.7 ,Admin 7.7.19

      1 Antwort Letzte Antwort
      0
      • S Offline
        S Offline
        steinejo_io
        schrieb am zuletzt editiert von
        #3

        Verlinkst du evtl. den zugehörigen Thread - viele Wege führen nach Rom - und so viel Arbeit wars jetzt auch nicht ;)

        1 Antwort Letzte Antwort
        0
        • haselchenH Offline
          haselchenH Offline
          haselchen
          Most Active
          schrieb am zuletzt editiert von
          #4

          Ab hier geht es los mit dem Lichtabfragescript und geht über zur Fensterabfrage.

          viewtopic.php?f=21&t=15722

          Synology DS218+ & 2 x Fujitsu Esprimo (VM/Container) + FritzBox7590 + 2 AVM 3000 Repeater & Homematic & HUE & Osram & Xiaomi, NPM 10.9.4, Nodejs 22.21.0 ,JS Controller 7.0.7 ,Admin 7.7.19

          1 Antwort Letzte Antwort
          0
          Antworten
          • In einem neuen Thema antworten
          Anmelden zum Antworten
          • Älteste zuerst
          • Neuste zuerst
          • Meiste Stimmen


          Support us

          ioBroker
          Community Adapters
          Donate

          655

          Online

          32.5k

          Benutzer

          81.7k

          Themen

          1.3m

          Beiträge
          Community
          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
          ioBroker Community 2014-2025
          logo
          • Anmelden

          • Du hast noch kein Konto? Registrieren

          • Anmelden oder registrieren, um zu suchen
          • Erster Beitrag
            Letzter Beitrag
          0
          • Home
          • Aktuell
          • Tags
          • Ungelesen 0
          • Kategorien
          • Unreplied
          • Beliebt
          • GitHub
          • Docu
          • Hilfe