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. Bei Filmstart Tradfri runterdimmer

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Bei Filmstart Tradfri runterdimmer

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
25 Beiträge 4 Kommentatoren 4.7k 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.
  • M Offline
    M Offline
    Marcel85
    schrieb am zuletzt editiert von
    #5

    Ich habe mir eine Szene FilmStart angelegt und dort 2 Zustände hinzugefügt.

    • kodi.0.state (Play, stop or pause)

    • tradfri.0.***.lightbulb.brightness (254-0)

    Wie funktioniert das ganze nun das wenn beim state "Play" erkannt wird, dass brightness auf 0 gestellt wird und bei "stop oder pause" auf 254.

    Bei "Setzen bei False" habe ich den Haken gesetzt.

    Ich bin da noch nicht ganz durchgestiegen.
    3473_iobroker.png

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

      Ne so wird das nix. Die Szene schaltet die hinterlegten Zustände, wenn der State der Szene (scene.0.szenenname) auf true/false gesetzt wird. Dein Auslöser ist komplizierter, d.h. du brauchst ein Skript. Ist aber nicht schwer, keine Sorge, bitte nur mal die Schreibweisen (groß/klein, etc…) überprüfen!

      on("kodi.0.state", function (obj) {
      	switch (obj.state.val) {
      		case "play":
      			setState("tradfri.0.***.lightbulb.brightness", 0);
      			break;
      
      		case "pause":
      		case "stop":
      			setState("tradfri.0.***.lightbulb.brightness", 254);
      			break;		
      	}
      });
      
      

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

      1 Antwort Letzte Antwort
      0
      • M Offline
        M Offline
        Marcel85
        schrieb am zuletzt editiert von
        #7

        Ich habe das Skript angelegt und nach meinem ermessen abgeändert.

        Leider funktioniert es nicht.

        on("kodi.0.state", function (obj) {
           switch (obj.state.val) {
              case "Play":
                 setState("tradfri.0.L-65537.lightbulb.brightness", 0);
                 break;
        
              case "pause":
              case "stop":
                 setState("tradfri.0.L-65537.lightbulb.brightness", 254);
                 break;      
           }
        });
        
        1 Antwort Letzte Antwort
        0
        • AlCalzoneA Offline
          AlCalzoneA Offline
          AlCalzone
          Developer
          schrieb am zuletzt editiert von
          #8

          @Marcel85:

          Leider funktioniert es nicht. `
          Meine Lieblings-Fehlermeldung :|

          Gibts nen Fehler im Log? Hast du das Skript auch nicht unter global abgelegt?

          Ansonsten füge mal ein paar Logs ein, um zu sehen ob es überhaupt richtig ausgeführt wird:

          on("kodi.0.state", function (obj) {
          	log("State geändert: " + obj.state.val);
          	switch (obj.state.val) {
          		case "Play":
          			log("Video läuft, schalte Licht aus...");
          			setState("tradfri.0.L-65537.lightbulb.brightness", 0);
          			break;
          
          		case "pause":
          		case "stop":
          			log("Video läuft nicht, schalte Licht an...");
          			setState("tradfri.0.L-65537.lightbulb.brightness", 254);
          			break;
          	}
          });
          

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

          1 Antwort Letzte Antwort
          0
          • M Offline
            M Offline
            Marcel85
            schrieb am zuletzt editiert von
            #9

            Das Skript ist nicht unter "Global" abgelegt. Es hat auch keinen eigenen Ordner.

            Das einzige was im Log steht ist folgendes:

            19:29:59.394	[info]	javascript.0 Start javascript script.js.Filmstart_dimmen
            19:29:59.395	[info]	javascript.0 script.js.Filmstart_dimmen: subscribe: {"pattern":{"id":"kodi.0.state","change":"ne"},"name":"script.js.Filmstart_dimmen"}
            19:29:59.395	[info]	javascript.0 script.js.Filmstart_dimmen: subscribe: {"pattern":{"id":"kodi.0.state","change":"ne"},"name":"script.js.Filmstart_dimmen"}
            19:29:59.395	[info]	javascript.0 script.js.Filmstart_dimmen: registered 2 subscriptions and 0 schedules
            

            Tut mir leid, ich habe wirklich keine Ahnung vom Programmieren.

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

              @Marcel85:

              19:29:59.395 [info] javascript.0 script.js.Filmstart_dimmen: subscribe: {"pattern":{"id":"kodi.0.state","change":"ne"},"name":"script.js.Filmstart_dimmen"}

              19:29:59.395 [info] javascript.0 script.js.Filmstart_dimmen: subscribe: {"pattern":{"id":"kodi.0.state","change":"ne"},"name":"script.js.Filmstart_dimmen"} `
              Hast du jetzt beide Funktionen drin? Die letzte sollte reichen.

              Dass da sonst nix im Log passiert, lässt mich vermuten dass der Trigger nicht ausgelöst wird. Magste mal nen Screenshot von den Objekten unter "kodi.0" machen? Am besten mal, wenn ein Video läuft und wenn nicht.

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

              1 Antwort Letzte Antwort
              0
              • M Offline
                M Offline
                Marcel85
                schrieb am zuletzt editiert von
                #11

                Ich habe jetzt mal ein wenig rumprobiert und jetzt funktioniert es.

                Allerdings kann ich die Lampen nur ein- und ausschalten.

                So funktioniert es erstmal:

                on("kodi.0.state", function (obj) {
                   log("State geändert: " + obj.state.val);
                   switch (obj.state.val) {
                      case "play":
                         log("Video läuft, schalte Licht aus...");
                         setState("tradfri.0.L-65537.lightbulb.state"/*on/off*/, false);
                         break;
                
                      case "pause":
                      case "stop":
                         log("Video läuft nicht, schalte Licht an...");
                         setState("tradfri.0.L-65537.lightbulb.state"/*on/off*/, true);
                         break;
                   }
                });
                

                Die Lampen faden ja zum Glück etwas. Schöner wäre es natürlich wenn man den Dimmvorgang schön langsam einstellen könnte.

                Kann man auch noch eine Variable einbauen, wo erkannt wird ob die Lampe vorher eingeschaltet war oder nicht?

                Gruß Marcel

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

                  @Marcel85:

                  Die Lampen faden ja zum Glück etwas. Schöner wäre es natürlich wenn man den Dimmvorgang schön langsam einstellen könnte. `
                  Werde ich demnächst mal einbauen.

                  @Marcel85:

                  Allerdings kann ich die Lampen nur ein- und ausschalten. `
                  Das ist komisch, brightness > 0 sollte eigentlich auch anschalten.

                  @Marcel85:

                  Kann man auch noch eine Variable einbauen, wo erkannt wird ob die Lampe vorher eingeschaltet war oder nicht? `
                  Bin zwar nicht ganz sicher, ob das das ist was du damit bezwecken willst, aber probiers mal so:

                  var idStatus = "tradfri.0.L-65537.lightbulb.state";
                  
                  // Auf Status der Lampe lauschen
                  var status = getState(idStatus);
                  on(idStatus, function (obj) { status = obj.state.val });
                  
                  on("kodi.0.state", function (obj) {
                      log("State geändert: " + obj.state.val);
                      switch (obj.state.val) {
                          case "play":
                              if (status) {
                                  log("Video läuft, schalte Licht aus...");
                                  setState(idStatus, false);
                              } else {
                                  log("Video läuft, Licht ist bereits aus");
                              }
                              break;
                  
                          case "pause":
                          case "stop":
                              if (!status) {
                                  log("Video läuft nicht, schalte Licht an...");
                                  setState(idStatus, true);
                              } else {
                                  log("Video läuft nicht, Licht ist bereits an");
                              }
                              break;
                      }
                  });
                  
                  

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

                  1 Antwort Letzte Antwort
                  0
                  • M Offline
                    M Offline
                    Marcel85
                    schrieb am zuletzt editiert von
                    #13

                    Das ganze soll bezwecken, dass wenn die Lampe bei Filmstart aus war, die Lampe nach Filmende dann nicht eingeschaltet wird.

                    Vielen Dank für deine Mühe und das du sogar auf meine Wünsche eingehst und diese mit einbauen willst!

                    Ich probiere das neue Skript morgen mal aus und werde dann berichten.

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

                      @Marcel85:

                      Das ganze soll bezwecken, dass wenn die Lampe bei Filmstart aus war, die Lampe nach Filmende dann nicht eingeschaltet wird. `
                      Aaah, dann muss das anders lauten.

                      var idStatus = "tradfri.0.L-65537.lightbulb.state";
                      
                      var statusBeiStart;
                      
                      on("kodi.0.state", function (obj) {
                          log("State geändert: " + obj.state.val);
                          switch (obj.state.val) {
                              case "play":
                                  statusBeiStart = getState(idStatus).val;
                                  log("Video läuft, schalte Licht aus...");
                                  setState(idStatus, false);      
                                  break;
                      
                              case "pause":
                              case "stop":
                                  log("Video läuft nicht mehr, stelle Status wieder her...");
                                  setState(idStatus, statusBeiStart);
                                  break;
                          }
                      });
                      

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

                      1 Antwort Letzte Antwort
                      0
                      • M Offline
                        M Offline
                        Marcel85
                        schrieb am zuletzt editiert von
                        #15

                        Ich bin leider erst gestern Abend zum testen gekommen.

                        Aber es funktioniert fast so wie ich es mir vorstelle.

                        Wenn man jetzt noch die Dimmgeschwindigkeit regeln könnte, wäre es absolut perfekt.

                        Danke!!!

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

                          @Marcel85:

                          Wenn man jetzt noch die Dimmgeschwindigkeit regeln könnte, wäre es absolut perfekt. `
                          Steht auf der TODO-Liste, kommt in Kürze:

                          transitionTime: 5, // TODO: <- make this configurable
                          

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

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

                            Geht jetzt auch (teilweise): http://forum.iobroker.net/viewtopic.php?p=86551#p86551

                            Nur scheint on/off den Wert zu ignorieren. Du könntest jedoch schummeln:

                            an: transitionTime => Wunschdauer, Brightness => 254

                            aus: transitionTime => Wunschdauer X, Brightness => 1. nach X sekunden: on/off => false

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

                            1 Antwort Letzte Antwort
                            0
                            • M Offline
                              M Offline
                              Marcel85
                              schrieb am zuletzt editiert von
                              #18

                              Ich habe heute Mittag das Skript nochmal getestet.

                              Die Lampe schaltet sich nach dem Film ein obwohl der Status vorher aus war.

                              Wie genau muss das Skript denn mit der transitiontime aussehen?

                              Ich weiß leider nicht wo ich das einbauen muss.

                              Danke fürs helfen und dafür das du die transitiontime mit einprogrammiert hast.

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

                                @Marcel85:

                                Die Lampe schaltet sich nach dem Film ein obwohl der Status vorher aus war. `
                                Habe die Logausgabe mal ergänzt, was zeigt der Log an bei folgendem Skript?

                                ! ````
                                var idStatus = "tradfri.0.L-65537.lightbulb.state";
                                ! var statusBeiStart;
                                ! on("kodi.0.state", function (obj) {
                                log("State geändert: " + obj.state.val);
                                switch (obj.state.val) {
                                case "play":
                                statusBeiStart = getState(idStatus).val;
                                log("Video läuft, schalte Licht aus... Licht war " + (statusBeiStart ? "an" : "aus"));
                                setState(idStatus, false);
                                break;
                                ! case "pause":
                                case "stop":
                                log("Video läuft nicht mehr, stelle Status <" + (statusBeiStart ? "an" : "aus") + "> wieder her...");
                                setState(idStatus, statusBeiStart);
                                break;
                                }
                                });

                                
                                Ein Versuch mit TransitionTime könnte wie folgt aussehen (ungetestet):
                                
                                >! ````
                                var idStatus = "tradfri.0.L-65537.lightbulb.state";
                                var idTime = "tradfri.0.L-65537.lightbulb.transitionDuration";
                                var idBrightness = "tradfri.0.L-65537.lightbulb.brightness";
                                >! var transitionTime = 2; // Zeit in Sekunden
                                >! var statusBeiStart;
                                >! function an() {
                                    setState(idTime, transitionTime); // Dimm-Dauer festlegen
                                    setState(idBrightness, 254);      // maximale Helligkeit ansteuern
                                }
                                function aus() {
                                    setState(idTime, transitionTime); // Dimm-Dauer festlegen
                                    setState(idBrightness, 1);      // minimale Helligkeit ansteuern
                                    setStateDelayed(idStatus, false, transitionTime*1000) // <transitiontime>sek später komplett abschalten
                                }
                                >! on("kodi.0.state", function (obj) {
                                    log("State geändert: " + obj.state.val);
                                    switch (obj.state.val) {
                                        case "play":
                                            statusBeiStart = getState(idStatus).val;
                                            log("Video läuft, schalte Licht aus... Licht war " + (statusBeiStart ? "an" : "aus"));
                                            if (statusBeiStart) aus();
                                            break;
                                >!         case "pause":
                                        case "stop":
                                            log("Video läuft nicht mehr, stelle Status <" + (statusBeiStart ? "an" : "aus") + "> wieder her...");
                                >!             if (statusBeiStart) an();
                                            else aus();
                                >!             break;
                                    }
                                });</transitiontime> 
                                

                                Edit: Fehlerkorrektur

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

                                1 Antwort Letzte Antwort
                                0
                                • N Offline
                                  N Offline
                                  nelzon
                                  schrieb am zuletzt editiert von
                                  #20

                                  Und..erfolgreich getestet??

                                  1 Antwort Letzte Antwort
                                  0
                                  • M Offline
                                    M Offline
                                    Marcel85
                                    schrieb am zuletzt editiert von
                                    #21

                                    Ich werde es heute Abend mal testen.

                                    1 Antwort Letzte Antwort
                                    0
                                    • M Offline
                                      M Offline
                                      Marcel85
                                      schrieb am zuletzt editiert von
                                      #22

                                      Funktioniert!

                                      Ich musste nur von transitionTime auf transitionDuration ändern.

                                      Dies wurde mal im Adapter geändert.

                                      Was man vielleicht noch ändern könnte, wenn die Lampen nicht eingeschaltet sind und man einen Film startet, dann schalten die Lampen einmal ein und dann direkt wieder aus.

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

                                        @Marcel85:

                                        Was man vielleicht noch ändern könnte, wenn die Lampen nicht eingeschaltet sind und man einen Film startet, dann schalten die Lampen einmal ein und dann direkt wieder aus. `
                                        Macht Sinn. Dazu muss dieser Abschnitt angepasst werden:

                                                case "play":
                                                    statusBeiStart = getState(idStatus).val;
                                                    log("Video läuft, schalte Licht aus... Licht war " + (statusBeiStart ? "an" : "aus"));
                                                    aus();
                                                    break;
                                        

                                        zu

                                                case "play":
                                                    statusBeiStart = getState(idStatus).val;
                                                    log("Video läuft, schalte Licht aus... Licht war " + (statusBeiStart ? "an" : "aus"));
                                                    if (statusBeiStart) aus();
                                                    break;
                                        

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

                                        1 Antwort Letzte Antwort
                                        0
                                        • M Offline
                                          M Offline
                                          Marcel85
                                          schrieb am zuletzt editiert von
                                          #24

                                          Das sieht sehr gut aus!!!

                                          Vielen Dank!

                                          edit: Leider etwas zu früh gefreut. Die Lampe schaltet sich bei Filmende (Stop, Pause) wieder kurz ein und danach wieder aus. (Lampe war aus)

                                          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

                                          741

                                          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