Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Szene Kino / Prüfung ob gerät gebootet ist

    NEWS

    • Neues Video "KI im Smart Home" - ioBroker plus n8n

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    • Wir empfehlen: Node.js 22.x

    Szene Kino / Prüfung ob gerät gebootet ist

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

      Hallo Leute habe eine Szene / Script geschrieben, welches meinen Kinoabend einleitet.

      Es funktioniert und macht was es soll, möchte es aber etwas stabiler bzw. professioneller laufen lassen.

      Speziell geht es um die Prüfschleife . Der nächste schritt wäre sich mal mit der Funktion 'for' auseinander zu setzen.

      Aktuel prüfe ich nur ob nach einer Zeit X mein Multimediaplayer eingeschaltet ist und wenn nicht sende ioch das Signal nocheinmal.

      Schöne fände ich es wenn ich die Prüfung nun in einer Schleife durchlaufen lasse, bis das Gerät eingeschaltet ist.

      Der Knackpunkt ist, dass mein Multimediagerät nach dem es mit Strom versorgt wird direkt bootet und wenn niemand die Fernbedienung nach dem first boot bedient nach 15 Sekunden wieder runter fährt. diesen Zeitpunkt habe ich abgepasst und lasse das nach einer Zeit X wieder überprüfen und schalte nochmal ein, wenn es nicht geklappt hat…

      Das geht bestimm auch schöner...

      Jemand ne Idee? Oder ist irgendwo das 'for' erklärt?

      //Scene Kino Wohnzimmer
      createState('javascript.0.Szenen.Multimedia.Kino', {def: 'false', type: 'boolean', name: 'Kino'});
      createState('javascript.0.Szenen.Multimedia.Kino_PruefHDD', {def: 'false', type: 'boolean', name: 'Pruefung ob HDD an'});
      
      var logging = true;
      
      const id1 = 'javascript.0.Szenen.Multimedia.Kino'; //Szene Start Stop
      const id2 = 'javascript.0.Status.Brandmelder.Anzahl_melden_Brand'; // Brand
      const id3 = 'javascript.0.alarm.out.alarm_strobe'; // Alarm
      const id5 = 'hm-rpc.0.PEQ0196501.1.STATE';//Licht Couch
      const id7 = 'wiffi-wz.0.root.192_168_1_52.w_lux';// Helligkeit
      const id8 = 'javascript.0.Rolladen.Couch.Automatik';// Automatik Rolladen Couch
      const id9 = 'hm-rpc.0.OEQ1299123.1.LEVEL';//Behanghöhe
      const id10 = 'sonoff.0.Multimedia_4CH_Wohnzimmer.POWER1';//TV
      const id11 = 'sonoff.0.Multimedia_4CH_Wohnzimmer.POWER3';//Receiver
      const id12 = 'sonoff.0.Multimedia_4CH_Wohnzimmer.POWER4';//HDD Player
      const id13 = 'sonoff.0.Multimedia_4CH_Wohnzimmer.POWER2';//DVB-T
      const id14 = 'harmony.0.Harmony Hub.Samsung TV.PowerOn';//TVon Harmony
      const id15 = 'harmony.0.Harmony Hub.Samsung TV.InputHdmi2';//TVKanal Harmony
      const id16 = 'harmony.0.Harmony Hub.Samsung TV.PowerOff';//TVoff Harmony
      const id17 = 'harmony.0.Harmony Hub.Samsung TV.VolumeDown';//TV leiser Harmony
      const id18 = 'harmony.0.Harmony Hub.Onkyo AV-Empfänger.PowerOn';//Receiver on Harmony
      const id19 = 'harmony.0.Harmony Hub.Onkyo AV-Empfänger.PowerOff';//Receiver off Harmony
      const id20 = 'harmony.0.Harmony Hub.Onkyo AV-Empfänger.InputTv/Cd';//Receiver Input TV/CD Harmony
      const id21 = 'harmony.0.Harmony Hub.Xtreamer Multimedia-Player.PowerToggle';//HDD on off Harmony
      const id22 = 'harmony.0.Harmony Hub.Xtreamer Multimedia-Player.Menu';//HDD Menue Button
      const id23 = 'ping.1.tinkerboard.192_168_1_39';//ping Prüfung ob an
      const id24 = 'javascript.0.Szenen.Multimedia.Kino_PruefHDD';// Prüfung
      
      // Licht aus Block
      function KinoLicht() { 
          var Szene = getState(id1).val;
          var Brand = getState (id2).val;
          var Alarm = getState (id3).val;
          var LichtCouch = getState(id5).val;
      		 if(Szene === true && Brand === 0 && Alarm === false){
      			if(LichtCouch)setStateDelayed(id5, false, 2*1000); //Licht Couchtisch Wohnzimmer
      			if(logging)log('Szene Kino aktiv Licht aus');
          }
      }
      
      // Rolladen runter Block
      function KinoRollo() { 
          var Szene = getState(id1).val;
          var Brand = getState (id2).val;
          var Alarm = getState (id3).val;
          var Helligkeit = getState(id7).val;
          var BehanghoeheCouch = getState(id9).val;
              if(Szene === true && Brand === 0 && Alarm === false && Helligkeit >1500){
              setState(id8,false);//Rollo Couch Automatik
              if(BehanghoeheCouch >0)setStateDelayed(id9, 0 , 4*1000);
              if(logging)log('Szene Kino aktiv Rollo Couch Automatik deaktiviert und geschlossen');
              }else{
                  if(Szene===false){
                  setState(id8,true);//Rollo Couch Automatik
                  if(logging)log('Szene Kino inaktiv/deaktiviert Rollo Couch wieder auf Automatik ');
              }
          }    
      }  
      // Multimedia Geräte ein Block
      function KinoMedia() {     
       var Szene = getState(id1).val;
       if(Szene===true){
           setStateDelayed(id12,true,5*1000);//HDD Player Power  ein
           setStateDelayed(id11,true,6*1000);//Receiver Power ein
           setStateDelayed(id10,true,7*1000);//TV Power ein
           setStateDelayed(id18,200,9*1000);//Receiver on Harmony
           setStateDelayed(id20,200,14*1000);//Receiver Input TV/CD Harmony
           setStateDelayed(id22,1000,112*1000);// HDD Menue button um Neustart zu verhindern
           setStateDelayed(id24,true,180*1000);// State zum prüfen
           if(logging)log('Szene Kino aktiv Multimedia Geräte ein');
           sendTo("paw.0",'all',{send:  'say', text:  'Szene Kino wird eingeschaltet. Bitte warten bis die Geräte hochgefahren sind'});
       }else{
          setStateDelayed(id16,200,1*1000);//TV Power off Harmony
          setStateDelayed(id19,200,2*1000);//Receiver Power off Harmony
          setStateDelayed(id21,200,3*1000);//HDD Power off Harmony 
          setStateDelayed(id10,false,6*1000);//TV Power off
          setStateDelayed(id11,false,9*1000);//Receiver Power off
          setStateDelayed(id12,false,29*1000);//HDD Power 0ff
          setState(id24,false);// State zum prüfen
      
          if(logging)log('Szene Kino inaktiv/deaktiviert Multimedia Geräte aus');
          sendTo("paw.0",'all',{send:  'say', text:  ' Szene Kino wird ausgeschaltet.'});
      
              }
          }
      
      function Pruef() {     
       var ping = getState(id23).val;
       if(ping===true){
       if(logging)log ('HDD Player nach dem booten eingeschaltet geblieben');
       }else{
         setStateDelayed(id21,2000,60*1000);  
         if(logging)log ('HDD Player wurde nach dem booten erneut eingeschaltet da er heruntergefahren war');
             }
         }
      
      function TV() {
          var pingHDD = getState(id23).val;
          var SzeneHDD = getState(id1).val;
          if (pingHDD === true && SzeneHDD === true){
           setState(id14,200);//TV on Harmony 
           setStateDelayed(id15,200,10*1000);//TV umschalten auf HDMI 2 Harmony
           setStateDelayed(id17,4000,12*1000);// TV leise Harmony  
           setStateDelayed(id13,false,14*1000);//DVB-T Power aus
           if(logging)log ('TV ein und umgeschaltet nachdem der HDD Player hochgefahren ist');
             }
         }
      
      //Szene Trigger
      on(id1, function(dp) {
         KinoLicht();
         KinoRollo();
         KinoMedia();
      });  
      //Prüf Trigger on HDD an
      on(id24, function(dp) {
         Pruef();
      }); 
      //TV Trigger wenn HDD an
      on(id23, function(dp) {
         TV();
      }); 
      
      
      1 Reply Last reply Reply Quote 0
      • arteck
        arteck Developer Most Active last edited by

        > Es funktioniert und macht was es soll, möchte es aber etwas stabiler bzw. professioneller laufen lassen.

        ist ne Aussage.. 😉 😉

        https://wiki.selfhtml.org/wiki/JavaScript/Schleife

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

          @arteck:

          > Es funktioniert und macht was es soll, möchte es aber etwas stabiler bzw. professioneller laufen lassen.

          ist ne Aussage.. 😉 😉

          https://wiki.selfhtml.org/wiki/JavaScript/Schleife `

          Ja wenn ich so drüber nachdenke, liest es sich bescheuert. stimmt…

          ich möchte halt versuchen das automatische runter fahren des HDD Player nach der Spannungszufuhr und die Programmierte Kontrolle ob gebootet, etwas stabiler realisieren. Wenn es aus irgendeinem Grund mal etwas läger dauert oder das IR signal der Harmony mal nicht durchkommt, weil der Hund gerade mal wieder davor steht usw..Dann klappt es halt eben nicht wie programmiert..

          Deshalb die Frage ob das mit ner Schleife stabiler zu programmieren ist...

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

          Support us

          ioBroker
          Community Adapters
          Donate

          987
          Online

          32.1k
          Users

          80.7k
          Topics

          1.3m
          Posts

          2
          3
          572
          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