Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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. Fernsehautomatik (Licht dimmen)

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    660

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

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

Fernsehautomatik (Licht dimmen)

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
3 Beiträge 2 Kommentatoren 921 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
    schittl
    schrieb am zuletzt editiert von
    #1

    Hi,

    ich versuche folgendes CCU-Programm auf den ioBroker zu transferieren
    3116_tv_dimmen.png
    Was soll erreicht werden? Wenn TV an ist und ich schalte meinen Dimmer ein soll er automatisch auf 50% leveln. Sobald ich den TV wieder ausschalte soll er wieder auf 100% leveln. Ist die Reihenfolge unterschiedlich ist (erst Licht anschließend TV) soll das ebenfalls funktionieren. Dabei habe dabei folgendes Ansatz unternommen:

    var night = false;   // ab Sonnenuntergang bis Sonnenaufgang
    var dimmen = false;  // Dimmen
    var fernseh = false; // Fernseher Aus/Ein
    
    function lampe() {
        if (night) {
            if(dimmen && fernseh)) { 
                log("Licht nachts bei TV an dimmen");
                setState("hm-rpc.0.ABCDEFGHI.1.LEVEL", 50);      //Lampe dimmen
            } else { 
                log("Licht nachts bei TV aus erhöhen");
                setState("hm-rpc.0.ABCDEFGHI.1.LEVEL", 100);     //Lampe dimmen auf 100%
            }
        }
    }
    
    schedule({astro:"sunset"}, function () {
        night = true;
        lampe();
    });
    schedule({astro:"sunrise"}, function () {
        night = false;
        lampe();
    });
    
    on("hm-rpc.0.ABCDEFGHI.1.LEVEL", function(obj) {
        if (obj.newState.val > 99 && obj.newState.val != 50) dimmen = true;
        else                                                  dimmen = false;
        lampe();
    });
    
    on("hm-rpc.0.XYZ7654321.2.POWER", function(obj) {
        if (obj.newState.val > 3) fernseh = true;
        else                      fernseh = false; 
        lampe();
    });
    
    

    Ist das der richtige Ansatz oder geht das viel einfacher? Würde es gerne über Skript abbilden und nicht per Szene-Adapter.

    Zusatzinfo: Skript ist nur ein Ansatz ohne jegliche Prüfung auf Funktion. Teste ich aber noch.

    mfg

    Falk

    HW: Lenovo M920q (Proxmox, ioBroker, RaspMatic & Z2M), QNAP (Docker, Influx), Arduino Mega 2560 R3 (I2C DS18B20 + LED)

    SW: CT IoBroker, VM RaspMatic(v3.79.6.20241122)

    1 Antwort Letzte Antwort
    0
    • AlCalzoneA Offline
      AlCalzoneA Offline
      AlCalzone
      Developer
      schrieb am zuletzt editiert von
      #2

      Sieht auf den ersten Blick gut und logisch sauber aus.

      Das einzige Problem könnte bei einem Neustart des Skripts, Adapters, ioBroker auftreten. Da die Nacht-Variable nirgends gespeichert ist, weiß das Skript bis zum nächsten Nachtbeginn nicht, dass es Nacht ist. Wenn du diesen Trigger + Variable durch einen Vergleich der Uhrzeit in Licht() ersetzt, kannst du das Problem umgehen.

      ==> https://github.com/iobroker/iobroker.ja … omparetime

      Das gleiche gilt natürlich auch für die anderen States, wobei die schneller aktualisiert werden. Mit getState in Licht() den aktuellen Wert zu prüfen, macht das ganze Skript zuverlässiger.

      Edit: Diese Abfrage ist irgendwie quatsch:

      obj.newState.val > 99 && obj.newState.val != 50
      

      wenn val > 99, dann gilt immer val != 50

      Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

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

        Danke erstmal für die rasche Rückmeldung. Dann bin ich erstmal nicht soweit entfernt ;)

        Edit: Diese Abfrage ist irgendwie quatsch:
        Code:
        
        obj.newState.val > 99 && obj.newState.val != 50
        
        

        Hast Du vollkommen recht. Wollte damit nur abbilden, dass wenn man den Fernseher wieder ausschaltet die Lampe wieder auf 100% levelt. Geht eventuell auch so etwas, welche den Workaround einfacher gestalten?

        on({id: "hm-rpc.0.XYZ7654321.2.POWER", valLt: 3, oldValGe: 50}, function() {
            setState("hm-rpc.0.ABCDEFGHI.1.LEVEL", 100);     //Lampe dimmen auf 100%
            fernseh = false;
        }
        on({id: "hm-rpc.0.ABCDEFGHI.1.LEVEL", valLt: 100, oldValGe: 0}, function() {
            if (night && fernseh) setState("hm-rpc.0.ABCDEFGHI.1.LEVEL", 50);     //Lampe dimmen auf 50%
            dimmen = false;
        }
        
        

        HW: Lenovo M920q (Proxmox, ioBroker, RaspMatic & Z2M), QNAP (Docker, Influx), Arduino Mega 2560 R3 (I2C DS18B20 + LED)

        SW: CT IoBroker, VM RaspMatic(v3.79.6.20241122)

        1 Antwort Letzte Antwort
        0

        Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

        Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

        Mit deinem Input könnte dieser Beitrag noch besser werden 💗

        Registrieren Anmelden
        Antworten
        • In einem neuen Thema antworten
        Anmelden zum Antworten
        • Älteste zuerst
        • Neuste zuerst
        • Meiste Stimmen


        Support us

        ioBroker
        Community Adapters
        Donate

        541

        Online

        32.7k

        Benutzer

        82.6k

        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