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. Skripten / Logik
  4. Rolladensteuerung

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.2k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    949

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Rolladensteuerung

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
4 Beiträge 4 Kommentatoren 1.2k Aufrufe 4 Watching
  • Ä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.
  • T Offline
    T Offline
    threedee
    schrieb am zuletzt editiert von
    #1

    Hallo zusammen,

    ich habe ein script geschrieben um meine Rolladen zu steuern. Aktuell hat es nur ein paar Funktionen für unterschiedliche Zeiten. Ich finde aber die Möglichkeiten um schnell verschiedene Rollos per Schedule oder Event recht gut. Durch die Filterfunktion lassen sich schnell nur die benötigten Rollos selektieren.

    Vielleicht kann das ja auch noch wer anders gebrauchen.

    let rollos = [];
    
    rollos.push({
        name: "Schlafzimmer",
        id: "javascript.0.virtualDevice.Rollaeden.Schlafzimmer.LevelRollo",
        delayedOpen: true,
        closingLevel: 20,
    });
    rollos.push({
        name: "Ankleide",
        id: "javascript.0.virtualDevice.Rollaeden.Ankleide.LevelRollo",
        delayedOpen: true,
        closingLevel: 0,
    });
    rollos.push({
        name: "Ole Schlafzimmer",
        id: "javascript.0.virtualDevice.Rollaeden.Ole Schlafzimmer.LevelRollo",
        delayedOpen: true,
        closingLevel: 20,
    });
    rollos.push({
        name: "Ole Spielzimmer",
        id: "javascript.0.virtualDevice.Rollaeden.Ole Spielzimmer.LevelRollo",
        delayedOpen: true,
        closingLevel: 0,
    });
    rollos.push({
        name: "Esszimmer",
        id: "javascript.0.virtualDevice.Rollaeden.Esszimmer.LevelRollo",
        test: true,
        closingLevel: 0,
    });
    rollos.push({
        name: "Terasse",
        id: "javascript.0.virtualDevice.Rollaeden.Terasse.LevelRollo",
        closingLevel: 0,
    });
    rollos.push({
        name: "Arbeitszimmer",
        id: "javascript.0.virtualDevice.Rollaeden.Arbeitszimmer.LevelRollo",
        test: true,
        closingLevel: 0,
    });
    rollos.push({
        name: "Gästebad",
        id: "javascript.0.virtualDevice.Rollaeden.Gästebad.LevelRollo",
        closingLevel: 0,
    });
    rollos.push({
        name: "Garderobe",
        id: "javascript.0.virtualDevice.Rollaeden.Garderobe.LevelRollo",
        closingLevel: 0,
    });
    rollos.push({
        name: "Küche Garten",
        id: "javascript.0.virtualDevice.Rollaeden.Küche Garten.LevelRollo",
        closingLevel: 0,
        earlyOpen: 65,
    });
    rollos.push({
        name: "Küche Strasse",
        id: "javascript.0.virtualDevice.Rollaeden.Küche Strasse.LevelRollo",
        closingLevel: 0,
        earlyOpen: 100,
    });
    rollos.push({
        name: "Wohnzimmer Strasse",
        id: "javascript.0.virtualDevice.Rollaeden.Wohnzimmer Strasse.LevelRollo",
        closingLevel: 0,
    });
    rollos.push({
        name: "Wohnzimmer Hinten",
        id: "javascript.0.virtualDevice.Rollaeden.Wohnzimmer hinten.LevelRollo",
        closingLevel: 0,
    });
    
    function filter(array, test) {
        let passed = [];
        for (let element of array) {
            if (test(element)) {
                passed.push(element);
            }
        }
        return passed;
    }
    
    // Sonnenuntergang
    schedule({astro: "sunset", shift: 15}, () => {
        for (let rollo of rollos) {
            setState(rollo.id, rollo.closingLevel);
        }
    });
    
    // Sonnenaufgang
    schedule({astro: "sunrise", shift: -15}, () => {
        for (let rollo of filter(rollos, r => !r.delayedOpen)) {
            setState(rollo.id, 100);
        }
    });
    
    // Spätes öffnen
    schedule({hour: 8, minute: 0}, () => {
        for (let rollo of filter(rollos, r => r.delayedOpen)) {
            setState(rollo.id, 100);
        }
    });
    
    // frühes öffnen
    schedule({hour: 5, minute:0}, () =>{
        for (let rollo of filter(rollos, r => r.earlyOpen)) {
            setState(rollo.id, rollo.earlyOpen);
        }
    });
    
    
    1 Antwort Letzte Antwort
    0
    • P Offline
      P Offline
      pix
      schrieb am zuletzt editiert von
      #2

      Hallo,

      gefällt mir gut. Werde mal sehen, ob ich es verbauen kann. Meine Rollladen-Steuerung wird mit der Zeit immer komplizierter

      • Beschattung mit Sonnensensor und Aussentemperaturabhängig,

      • Nicht bewegen oder nur begrenzt bei geöffneten Fenstern,

      • Bewegung, wenn zu und Fenster wird geöffnet oder gekippt

      • erste Öffnung morgens per Zeit (nur Spalt)

      • zweite Öffnung morgens per Zeit (ganz)

      • Schließen abends per Astro

      • Automatiksperre (keine Automatikfahrten für eine Stunde), wenn von Hand (nicht per Skript) ein Rollladen bewegt wurde.

      • Kind schläft im Raum -> Automatiksperre

      • und schließlich noch Steuerung über Alexa und GoogleHome.
        Natürlich sind alle Parameter per VIS einstellbar (zB wie weit soll der Rollladen öffnen, wenn geschlossen und Fenster wird gekippt, etc…). Deshalb sind mir die Abstrahierungen im Code wichtig. Ich dupliziere ein Skript dann für jeden Raum.

      Gruß

      Pix

      ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

      A 1 Antwort Letzte Antwort
      0
      • M Offline
        M Offline
        MartyBr
        schrieb am zuletzt editiert von
        #3

        @pix:

        Hallo,

        gefällt mir gut. Werde mal sehen, ob ich es verbauen kann. Meine Rollladen-Steuerung wird mit der Zeit immer komplizierter

        • Beschattung mit Sonnensensor und Aussentemperaturabhängig,

        • Nicht bewegen oder nur begrenzt bei geöffneten Fenstern,

        • Bewegung, wenn zu und Fenster wird geöffnet oder gekippt

        • erste Öffnung morgens per Zeit (nur Spalt)

        • zweite Öffnung morgens per Zeit (ganz)

        • Schließen abends per Astro

        • Automatiksperre (keine Automatikfahrten für eine Stunde), wenn von Hand (nicht per Skript) ein Rollladen bewegt wurde.

        • Kind schläft im Raum -> Automatiksperre

        • und schließlich noch Steuerung über Alexa und GoogleHome.
          Natürlich sind alle Parameter per VIS einstellbar (zB wie weit soll der Rollladen öffnen, wenn geschlossen und Fenster wird gekippt, etc…). Deshalb sind mir die Abstrahierungen im Code wichtig. Ich dupliziere ein Skript dann für jeden Raum.

        Gruß

        Pix `

        Hallo Pix,

        meine Rolladensteuerung ist noch komplett in der CCU. Ich suche gerade Beispiele, wie ich die Programme auf den ioBroker übertragen kann. Ich habe den Weatherman mit dem Temp.-Diff.Sensor für die Beschattung integriert. Weiterhin nutze ich die Innentemperaturen für eine "Energiegewinnung" in kälteren Jahreszeiten. Alles wie gesagt in der Homematic. Bei geöffneten Terrassentüren bleiben die Rollos oben (Aussperrschutz).

        Ich bin sehr an ein Beispiel deiner Lösung interessiert. Hast du auch den Sonnenstand integriert?

        Gruß

        Martin

        Gruß
        Martin


        Intel NUCs mit Proxmox / Iobroker als VM unter Debian
        Raspeberry mit USB Leseköpfen für Smartmeter
        Homematic und Homematic IP

        1 Antwort Letzte Antwort
        0
        • P pix

          Hallo,

          gefällt mir gut. Werde mal sehen, ob ich es verbauen kann. Meine Rollladen-Steuerung wird mit der Zeit immer komplizierter

          • Beschattung mit Sonnensensor und Aussentemperaturabhängig,

          • Nicht bewegen oder nur begrenzt bei geöffneten Fenstern,

          • Bewegung, wenn zu und Fenster wird geöffnet oder gekippt

          • erste Öffnung morgens per Zeit (nur Spalt)

          • zweite Öffnung morgens per Zeit (ganz)

          • Schließen abends per Astro

          • Automatiksperre (keine Automatikfahrten für eine Stunde), wenn von Hand (nicht per Skript) ein Rollladen bewegt wurde.

          • Kind schläft im Raum -> Automatiksperre

          • und schließlich noch Steuerung über Alexa und GoogleHome.
            Natürlich sind alle Parameter per VIS einstellbar (zB wie weit soll der Rollladen öffnen, wenn geschlossen und Fenster wird gekippt, etc…). Deshalb sind mir die Abstrahierungen im Code wichtig. Ich dupliziere ein Skript dann für jeden Raum.

          Gruß

          Pix

          A Offline
          A Offline
          ahfreezer
          schrieb am zuletzt editiert von
          #4

          @pix
          Hi Pix: ich hol das Thema nochmal hoch. Wäre es dir möglich dein Skript und deine Visu dafür zu veröffentlich.

          Deine Umsetzung klingt sehr interessant und ist für mich bestimmt ein Skript zum dazulernen 😁👍🏻

          VG

          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

          639

          Online

          32.6k

          Benutzer

          82.2k

          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