Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Entwicklung
    4. Idee Scene Adapter

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Idee Scene Adapter

    This topic has been deleted. Only users with topic management privileges can see it.
    • P
      Pman last edited by

      Der Scene Adapter kann echt praktisch sein und viele Skripte ersetzen. Allerdings ist mir bei der Nutzung eine Situation aufgefallen, welcher regelmäßig dazu führt, dass ich doch ein Skript schreiben muss.

      Ich hatte schon häufiger den Fall, dass ich bei Szenen und Gruppen, je nach Situation, nicht alle Zustände schalten möchte.

      Beispiel:

      Ich habe eine virtuelle Gruppe mit allen Wohnzimmerlampen, um diese gleichzeitig dimmen zu können. Nun möchte ich aber, dass dies nur auf Lampen angewendet wird, welche schon eingeschaltet sind. Lampen die aus sind, sollen auch aus bleiben.

      Idee:

      Man kann für jeden Datenpunkt eine Vorbedingung definieren. Der Zustand wird dann nur erfüllt, wenn diese Bedingung erfüllt ist. Bei dem Beispiel wäre das dann: lampe.level > 0 (ID Bedingung Wert)
      422_scene1.png
      bzw. bei aktiviertem "set on false":
      422_scene2.png

      Problem:

      Jetzt gibt es natürlich den Fall, dass keine Lampe an ist (Gruppenzustand 0). In diesem Fall wäre es toll, wenn wieder alle Lampen angesteuert würden, es würde aber keine Lampe angesteuert. Man müsste also Bedingungen verketten können, das gilt allerdings auch schon für die trigger zum Starten und Stoppen der Szenen, wo ich manchmal gerne mehr als eine Bedingung verwenden würde.

      1 Reply Last reply Reply Quote 0
      • Bluefox
        Bluefox last edited by

        Jetzt habe dein Einsatz verstanden.

        Da jetzt SzenenAdapter sowieso zu Komplex ist, da muss man was an der Bedienung machen.

        Und wenn man noch jetzt mit so eine Einstellung kommt, dann wird man komplett verloren.

        Das ist meine Meinung. Du bist aber selbst ein guter Programmierer. Mach mal ein gutes Bedienkonzept 🙂 Mit Pull Request :lol:

        1 Reply Last reply Reply Quote 0
        • H
          Heinzelmaennchen last edited by

          Hallo pman, Hallo Bluefox,

          Ich bin zwar so gar kein Programmierer, nutze aber dennoch den Szenenadapter sehr intensiv und kann das Problem von pman sehr gut nachvollziehen. Daher würde ich gerne ein paar Gedanken einstreuen.

          Zum Hintergrund. Bei mir laufen derzeit zwei Instanzen des Adapters je für:

          Lichtsteuerung (~35 Hue Leuchten)

          und (mangels funktionierendem occ Adapter)

          Heizungssteuerung(~ 10 Zimmersteuerungen mit je Wandthermostat und zugehörigen Heizkörperthermostaten in Gruppen zusammengefasst) Die Szenen werden über cron-Trigger abgearbeitet.

          Entscheidungen, wie sie pman beschreibt, treffen zu können wäre schlichtweg genial.

          Ich sehe hier drei Szenarien:

          Entscheidungen, die VOR dem Ausführen einer Szene entscheiden, ob überhaupt und wenn ja welche Szene gestartet werden soll

          Entscheidungen INNERHALB einer Szene

          Entscheidungen NACH dem Abarbeiten einer Szene oder einer (auch im Fehlerfall) nicht ausgeführten Szene getroffen werden.

          Kurzum. Ich würde gerne meine Mitarbeit bei der Sache anbieten.

          1 Reply Last reply Reply Quote 0
          • M
            miggedy last edited by

            Ich habe auch noch solch einer Lösung gesucht und wollte kurz mein Workaround hierfür mit euch teilen:

            Mein Beamer ist nicht "smart", daher steuer ich diesen mit einer Broadlink Fernbedienung. Das Problem ist, dass um ihn auszuschalten man die Power-Taste zwei mal drücken muss. Das bedeutet, dass wenn der Beamer gerade gar nicht an ist, zwei mal die Power-Taste den Beamer anschalten würde (anstatt ihn ausgeschaltet zu lassen).

            Den obigen Vorschlag hätte ich daher hierfür nutzen können. In einer Variable speichere ich ob der Beamer an ist (wenn ich den Beamer mit einer Scene starte). Starte ich nun die Szene die den Beamer ausschalten soll, setze ich für die Ausschalt-Aktion die Bedingung, dass der Beamer nur ausgeschaltet werden soll wenn das System meint das er überhaupt an ist.

            Da es diese Funktion (noch) nicht gibt, habe ich mir ein Script geschrieben, dass dies für mich überprüft:

            const root = "javascript." + instance  + ".myObjects.";
            const beamerIsOn = root + "beamerIsOn";
            const beamerTurnOff = root + "beamerTurnOff";
            const beamerPowerButton = "broadlink.0.learnedSignals.CODE_...";
            
            on(beamerTurnOff, function (obj) {
                if (!obj.state.ack && obj.state.val) {
                    turnOffBeanerIfNotOn();
                }
            });
            
            function turnOffBeanerIfNotOn() {
                if (!getState(beamerIsOn).val) {
                    // beamer is not on
                    return;
                }
                // press power button twice to turn off
                setState(beamerPowerButton, true);
                setTimeout(function() {
                    setState(beamerPowerButton, true);
                }, 2000);
                setState(beamerIsOn, false);
                setState(beamerTurnOff, false);
            }
            
            

            In meiner Szene starte ich nun dieses Script (anstatt den Beamer direkt auszuschalten) indem ich den "beamerTurnOff"-Wert auf true setze.

            Hoffe das bietet Leuten mit ähnlichen Anforderungen einen Gedanken-Anstoß.

            1 Reply Last reply Reply Quote 0
            • First post
              Last post

            Support us

            ioBroker
            Community Adapters
            Donate

            766
            Online

            31.7k
            Users

            79.8k
            Topics

            1.3m
            Posts

            4
            4
            2240
            Loading More Posts
            • Oldest to Newest
            • Newest to Oldest
            • Most Votes
            Reply
            • Reply as topic
            Log in to reply
            Community
            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
            The ioBroker Community 2014-2023
            logo