Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Yahka Konfiguration für Garagentor mit Licht

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Yahka Konfiguration für Garagentor mit Licht

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

      @Vossi80:

      In HK tut sich nichts wenn ich das Tor manuel fahre auch bleibt bei den Datenpunkten immer die 1 dahinter… `
      Irgendetwas scheint da generell faul zu sein. Ich habe in mein Skript mal Log Ausgaben eingefügt. Bitte mal die Log-Ausgaben posten.

      ! ````
      // Skript zum Steuern eines Garagentores mit Homekit und per Taster
      //
      // Voraussetzung:
      // Das Tor hat nur einen Taster (kurzer Impuls für 1sec) für hoch und runten. (true für 1sec, danach wieder false)
      // D.b. z.B. Tor offen, Tast-Aktor ansteuern -> Tor geht zu, Tast-Aktor erneut an steuern -> Tor stoppt, Tast-Aktor erneut an steuern -> Tor fährt wieder zu, …
      //
      // ChangeLog:
      // V1.1 (28.03.2018): Status des Sensors bei Garagentor geschlossen kann nun per Variable definiert werden.
      ! //Die folgenden Variablen müssen an die eigene Umgebung angepasst werden.
      var Schalter = 'hm-rpc.0.BidCoS-RF.8.PRESS_SHORT',
      Sensor = 'hm-rpc.0.KEQ0905365.1.STATE',
      SensorStatusTor_geschlossen = false; // Status des Aktors wenn das Tor geschlossen ist
      ///

      var schalteGaragentor = 'javascript.0.virtualDevices.Garagentor.schalteGaragentor_HK',
      LageGaragentor = 'javascript.0.virtualDevices.Garagentor.LageGaragentor_HK',
      TimeoutHKSetzen = 5000,
      timeout;

      ! createState(LageGaragentor, {
      type: 'number',
      name: 'Lage des Garagentors (HK)',
      min: 0,
      max: 1,
      def: 1,
      role: 'value'
      });
      ! createState(schalteGaragentor, {
      type: 'number',
      name: 'Schalte das Garagentor (HK)',
      min: 0,
      max: 1,
      def: 1,
      role: 'value'
      });
      ! // Folgender Abschnitt sorgt für die korrekte Darstellung in HK beim Schalten
      on({id: Schalter, change: "ne"}, function (obj) {
      var value = obj.state.val;

      var StatusSchalter = value,
      	StatusSchalteGaragentor = getState(schalteGaragentor).val;
      
      console.log('Taster wurde betätigt.');
      
      if (StatusSchalteGaragentor === 1) {
          // Tor geschlossen
          if (StatusSchalter === true) {
              // Öffne das Tor
              console.log('Taster wurde betätigt: Setze HK auf "wird geöffnet..."');
              setState(schalteGaragentor , 0);
          }
      } else if (StatusSchalteGaragentor === 0) {
          // Tor offen
          if (StatusSchalter === true) {
              // Schließe das Tor
              console.log('Taster wurde betätigt: Setze HK auf "wird geschlossen..."');
              setState(schalteGaragentor, 1);
              // Tor wird geschlossen
          }
      }
      

      });

      ! // Folgender Abschnitt sorgt für die Steuerung des Homematic-Aktors aus HK heraus
      on({id: schalteGaragentor, change: "ne"}, function (obj) {
      var value = obj.state.val;
      var StatusLageGaragentor = value,
      StatusSchalteGaragentor = getState(schalteGaragentor).val;

      console.log('schalteGaragentor (HK)');
      
      if (StatusLageGaragentor === 1) {
          // Tor geschlossen
          if (StatusSchalteGaragentor === 0) {
              // Öffne das Tor
              console.log('schalteGaragentor (HK): Tor wird geöffnet');
              setState(Schalter, true);
          }
      } else if (StatusLageGaragentor === 0) {
          // Tor offen
          if (StatusSchalteGaragentor === 1) {
              // Schließe das Tor
              console.log('schalteGaragentor (HK): Tor wird geschlossen');
              setState(Schalter, true);
          }
      }
      

      });

      ! // Bei einer manuellen Öffnen/Schließen des Garagentors, muss die Anzeige in Homekit wieder korrekt gesetzt werden.
      on({id: Sensor, change: "ne"}, function (obj) {
      var value = obj.state.val;
      var StatusSensor = value;

      console.log('Manuelle Tor Betätigung (Sensor).');
      
      timeout = setTimeout(function () {
          if (StatusSensor === SensorStatusTor_geschlossen) {
              console.log('Manuelle Tor Betätigung (Sensor): Setze Tor in HK als geschlossen.');
              // Definiere Tor für HK als geschlossen
      	    setState(LageGaragentor, 1);
      	    setState(schalteGaragentor, 1);
          } else {
      	    console.log('Manuelle Tor Betätigung (Sensor): Setze Tor in HK als offen.');
      	    // Definiere Tor für HK als offen
              setState(LageGaragentor, 0);
              setState(schalteGaragentor, 0);
          }
      }, TimeoutHKSetzen);
      

      });

      1 Reply Last reply Reply Quote 0
      • V
        Vossi80 last edited by

        undefined2018-03-28 22:15:07.014 - info: javascript.0 script.js.Intern.garagetest22: schalteGaragentor (HK)
        2018-03-28 22:15:27.932 - info: javascript.0 script.js.Intern.garagetest22: schalteGaragentor (HK)
        2018-03-28 22:15:43.346 - info: javascript.0 script.js.Intern.garagetest22: schalteGaragentor (HK)
        2018-03-28 22:15:46.287 - info: javascript.0 script.js.Intern.garagetest22: schalteGaragentor (HK)
        

        Bei jedem drücken im HK kommt das…..

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

          Öffne und schließe mal manuell das Tor und poste die Log Ausgaben…

          1 Reply Last reply Reply Quote 0
          • V
            Vossi80 last edited by

            @eumats:

            Öffne und schließe mal manuell das Tor und poste die Log Ausgaben… `

            Es wird bei manuellen öffnen/schließen nichts im Log geschrieben

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

              Dann wird der Status vom Sensor nicht aktualisiert. Ändert sich denn der Wert des Sensors bei Tor offen und Tor geschossen?

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

                NACHTRAG:

                Und Du hast im Skript wirklich die Variablen Schalter und Sensor durch Deine eigenen Sensoren ersetzt? Denn bei manueller Betätigung des Tors sollten mindesten die Ausgaben "Taster wurde betätigt." und "Manuelle Tor Betätigung (Sensor)." im Log erscheinen.

                Schalter = 'hm-rpc.0.BidCoS-RF.8.PRESS_SHORT',

                Sensor = 'hm-rpc.0.KEQ0905365.1.STATE',

                Am besten Du geht mal einen Schritt zurück und schaust mal was Dein Sensor und der Tast-Aktor in iobroker machen. Erst wenn die korrekt funktionieren macht es Sinn bei der Homekitanbindung / bei dem Skript weiter zu schauen…

                1 Reply Last reply Reply Quote 0
                • V
                  Vossi80 last edited by

                  @eumats:

                  NACHTRAG:

                  Und Du hast im Skript wirklich die Variablen Schalter und Sensor durch Deine eigenen Sensoren ersetzt? Denn bei manueller Betätigung des Tors sollten mindesten die Ausgaben "Taster wurde betätigt." und "Manuelle Tor Betätigung (Sensor)." im Log erscheinen.

                  Schalter = 'hm-rpc.0.BidCoS-RF.8.PRESS_SHORT',

                  Sensor = 'hm-rpc.0.KEQ0905365.1.STATE',

                  Am besten Du geht mal einen Schritt zurück und schaust mal was Dein Sensor und der Tast-Aktor in iobroker machen. Erst wenn die korrekt funktionieren macht es Sinn bei der Homekitanbindung / bei dem Skript weiter zu schauen… `

                  Also der Sensor ändert sich im iobroker von true auf false.

                  Der Aktor allerdings bleibt immer auf true stehen. Egal ob ich kurz oder lang drücke :roll:

                  Ja die Geräte habe ich im Script auf meine geändert

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

                    @Vossi80:

                    Also der Sensor ändert sich im iobroker von true auf false. `

                    Dann hast Du wohl den Sensor im Skript nicht korrekt eingetragen. Denn sonst sollte bei einer true/false Änderung oder anders herum mindesten "Manuelle Tor Betätigung (Sensor)." im Log stehen.

                    Fangen wir mal von vorne an und gucken, ob wir Deinen Sensor korrekt eingebunden kriegen. Im folgendes Blocky bei "Falls Objekt" Deinen Garagentorsensor eintragen. Dann das Tor öffnen und schließen und das Log posten.

                    Wie Du deinen Autor so konfigurierst das er von true auf false geht nach 1sec kann ich Dir nicht sagen, da ich keine HM Geräte habe. Ich meine aber das ich sowas schon mal hier im Forum gelesen habe…

                    Blocky Export:

                    ! ````
                    <xml xmlns="http://www.w3.org/1999/xhtml"><block type="comment" id=",9B(+H]0A=#saLI8lGU]" x="-587" y="-863"><field name="COMMENT">Hier den Garagentor Sensor eintragen</field>
                    <next><block type="on_ext" id="Jt?nkA%L`4r|gps=/t!h"><mutation items="1"></mutation>
                    <field name="CONDITION">ne</field>

                        <value name="OID0"><shadow type="field_oid" id="?o4|07e}rblTO?!Z`wTY"><field name="oid">default</field></shadow></value> 
                        <statement name="STATEMENT"><block type="controls_if" id="*4-nikoG-SxhK!NN`g]T"><mutation else="1"></mutation>
                            <value name="IF0"><block type="logic_compare" id="[klT`5rn{*K0hvhR*HHZ"><field name="OP">EQ</field>
                                <value name="A"><block type="variables_get" id="#XwYg.iM6a`XbD/gf9t8"><field name="VAR">value</field></block></value> 
                                <value name="B"><block type="logic_boolean" id="*#bo1?J,{x`x.y}#.#Dc"><field name="BOOL">FALSE</field></block></value></block></value> 
                            <statement name="DO0"><block type="debug" id=")UG-n60srg?}dS7AL}yF"><field name="Severity">log</field>
                                <value name="TEXT"><shadow type="text" id="(2pLEtC1qwQ@#Oov6=G["><field name="TEXT">Sensor Garagentor = false (offen)</field></shadow></value></block></statement> 
                            <statement name="ELSE"><block type="debug" id="FWG?uc[DrX},[_6p9#.C"><field name="Severity">log</field>
                                <value name="TEXT"><shadow type="text" id="K~A/S5DCJ]H6lk}t?*N]"><field name="TEXT">Sensor Garagentor = true (geschlossen)</field></shadow></value></block></statement></block></statement></block></next></block> 
                    

                    <block type="on_ext" id="O@7b`I1WXkNV%v%wDjAH" x="-313" y="163"><mutation items="1"></mutation>
                    <field name="CONDITION">true</field>

                    <value name="OID0"><shadow type="field_oid" id="l?Ule;.VxJC1Xn!J_L[;"><field name="oid">default</field></shadow></value></block> 
                    

                    <block type="controls_if" id="ojQd;po+_z|tIhSEVou~" x="-462" y="338"><value name="IF0"><block type="time_compare_ex" id="Hmua^Lg6=]mxv:MA6s48"><mutation end_time="true" actual_time="true"></mutation>
                    <field name="USE_ACTUAL_TIME">TRUE</field>
                    <field name="OPTION">not between</field>
                    <value name="START_TIME"><shadow type="text" id="b-!UNutJrGrV)pLsDWAV"><field name="TEXT">04:00</field></shadow></value>
                    <value name="END_TIME"><shadow type="text" id="mAT:?eD7gWS+JU(yh]fm"><field name="TEXT">07:00</field></shadow></value></block></value></block></xml>

                    [3610_bildschirmfoto_2018-03-29_um_11.53.07.jpg](/assets/uploads/files/3610_bildschirmfoto_2018-03-29_um_11.53.07.jpg)
                    1 Reply Last reply Reply Quote 0
                    • V
                      Vossi80 last edited by

                      Mein Gott was hast du eine Geduld mit mir 😛

                      Also…. hier mal der Log von deinem Blocky.....

                      undefined2018-03-29 13:01:29.173 - info: javascript.0 script.js.Intern.garagetest22: Manuelle Tor Betätigung (Sensor).
                      2018-03-29 13:01:29.176 - info: javascript.0 script.js.aaaa: Sensor Garagentor = true (geschlossen)
                      2018-03-29 13:01:34.179 - info: javascript.0 script.js.Intern.garagetest22: Manuelle Tor Betätigung (Sensor): Setze Tor in HK als geschlossen.
                      2018-03-29 13:01:53.745 - info: javascript.0 script.js.Intern.garagetest22: Manuelle Tor Betätigung (Sensor).
                      2018-03-29 13:01:53.749 - info: javascript.0 script.js.aaaa: Sensor Garagentor = false (offen)
                      2018-03-29 13:01:58.749 - info: javascript.0 script.js.Intern.garagetest22: Manuelle Tor Betätigung (Sensor): Setze Tor in HK als offen.
                      2018-03-29 13:01:58.757 - info: javascript.0 script.js.Intern.garagetest22: schalteGaragentor (HK)
                      

                      und komischerweise was vielleicht auch dran liegt das ich mal CCU und iobroker neugestartet habe kommt bei manueller Öffnung im Log jetzt das hier

                      undefined2018-03-29 13:13:16.464 - info: javascript.0 script.js.Intern.garagetest22: Manuelle Tor Betätigung (Sensor).
                      2018-03-29 13:13:21.466 - info: javascript.0 script.js.Intern.garagetest22: Manuelle Tor Betätigung (Sensor): Setze Tor in HK als offen.
                      

                      auch kommt jetzt bei HK die Meldung das Tor offen oder zu ist, nur steuern lässt es sich noch nicht

                      1 Reply Last reply Reply Quote 0
                      • V
                        Vossi80 last edited by

                        Bei den Datenpunkten steht jetzt bei offen bei beiden 0 und bei zu die 1 6387_bildschirmfoto_2018-03-29_um_13.25.02.png

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

                          Na dann musst du es ja nur noch hinbekommen, das dein Taster true/false anzeigt…

                          1 Reply Last reply Reply Quote 0
                          • V
                            Vossi80 last edited by

                            Ok wenn ich das richtig verstehe benötige ich ein Taster dir dauerhaft auf false steht und nur beim drücken kurz auf true und dann direkt wieder auf false. Das macht mein Homematictaster leider nicht. Der Aktor der zum schalten des Tores verbaut ist steht dauerhaft auf false und brauch auch nur den kurzen Impuls mit true. Habe dann im Script bei Schalter direkt den Aktor eingetragen jedoch auch ohne Erfolg. Dann habe ich ein Xiaomi Taster der auch dauerhaft auf false steht und beim druck kurz auf true geht genau wie es sein soll genommen. Hab ihn mit dem Garagenaktor per Script verknüpft und das Tor reagiert auch wie gewollt auf den Schalter. Schalter ID im Script eingetragen und mit HK versucht doch wieder tut sich nichts 😞

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

                              Was steht im Log?

                              1 Reply Last reply Reply Quote 0
                              • V
                                Vossi80 last edited by

                                Leider garnichts wenn ich mit HK öffne. Nur manuell schreibt er …..

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

                                  Komisch. Dann nimm dich mal das Blocky und fügen anstelle des Sensors deinen Taster ein und passe den Text im Debug etwas an…

                                  Dann 2-3x den Taster drücken und Log posten...

                                  1 Reply Last reply Reply Quote 0
                                  • V
                                    Vossi80 last edited by

                                    @Vossi80:

                                    Leider garnichts wenn ich mit HK öffne. Nur manuell schreibt er ….. `

                                    Grade nochmal probiert, warum auch immer schreibt er jetzt beim betätigen durch HK folgendes im Log….
                                    6387_bildschirmfoto_2018-03-30_um_22.14.40.png

                                    bei deinem Blocky hab ich mal den Aktor am Garagentor eingetragen, da kommt folgender Log…

                                    6387_bildschirmfoto_2018-03-30_um_22.18.27.png

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

                                      Die Log Ausgaben "Taster wurde betätigt.", "Taster wurde betätigt: Setze HK auf "wird geöffnet…" und "Taster wurde betätigt: Setze HK auf "wird geschlossen..." sollten mit Deinen Xiaomi Taster auch im Log zu finden sein. Korrekt?

                                      Ich habe das Skript mal um zzgl. Log-Ausgaben erweitert...

                                      ! ````
                                      // Skript zum Steuern eines Garagentores mit Homekit und per Taster
                                      //
                                      // Voraussetzung:
                                      // Das Tor hat nur einen Taster (kurzer Impuls für 1sec) für hoch und runten. (true für 1sec, danach wieder false)
                                      // D.b. z.B. Tor offen, Tast-Aktor ansteuern -> Tor geht zu, Tast-Aktor erneut an steuern -> Tor stoppt, Tast-Aktor erneut an steuern -> Tor fährt wieder zu, …
                                      //
                                      // ChangeLog:
                                      // V1.1 (28.03.2018): Status des Sensors bei Garagentor geschlossen kann nun per Variable definiert werden.
                                      // V1.2 (30.03.2018): zzgl. Log-Ausgaben eingebaut
                                      ! //Die folgenden Variablen müssen an die eigene Umgebung angepasst werden.
                                      var Schalter = 'hm-rpc.0.BidCoS-RF.8.PRESS_SHORT',
                                      Sensor = 'hm-rpc.0.KEQ0905365.1.STATE',
                                      SensorStatusTor_geschlossen = false; // Status des Aktors wenn das Tor geschlossen ist
                                      ///

                                      var schalteGaragentor = 'javascript.0.virtualDevices.Garagentor.schalteGaragentor_HK',
                                      LageGaragentor = 'javascript.0.virtualDevices.Garagentor.LageGaragentor_HK',
                                      TimeoutHKSetzen = 5000,
                                      timeout;

                                      ! createState(LageGaragentor, {
                                      type: 'number',
                                      name: 'Lage des Garagentors (HK)',
                                      min: 0,
                                      max: 1,
                                      def: 1,
                                      role: 'value'
                                      });
                                      ! createState(schalteGaragentor, {
                                      type: 'number',
                                      name: 'Schalte das Garagentor (HK)',
                                      min: 0,
                                      max: 1,
                                      def: 1,
                                      role: 'value'
                                      });
                                      ! // Folgender Abschnitt sorgt für die korrekte Darstellung in HK beim Schalten
                                      on({id: Schalter, change: "ne"}, function (obj) {
                                      var value = obj.state.val;

                                      var StatusSchalter = value,
                                      	StatusSchalteGaragentor = getState(schalteGaragentor).val;
                                      
                                      console.log('Taster wurde betätigt.');
                                      
                                      if (StatusSchalteGaragentor === 1) {
                                          // Tor geschlossen
                                          if (StatusSchalter === true) {
                                              // Öffne das Tor
                                              console.log('Taster wurde betätigt: Setze HK auf "wird geöffnet..."');
                                              setState(schalteGaragentor , 0);
                                          }
                                      } else if (StatusSchalteGaragentor === 0) {
                                          // Tor offen
                                          if (StatusSchalter === true) {
                                              // Schließe das Tor
                                              console.log('Taster wurde betätigt: Setze HK auf "wird geschlossen..."');
                                              setState(schalteGaragentor, 1);
                                              // Tor wird geschlossen
                                          }
                                      }
                                      

                                      });

                                      ! // Folgender Abschnitt sorgt für die Steuerung des Homematic-Aktors aus HK heraus
                                      on({id: schalteGaragentor, change: "ne"}, function (obj) {
                                      var value = obj.state.val;
                                      var StatusLageGaragentor = value,
                                      StatusSchalteGaragentor = getState(schalteGaragentor).val;

                                      console.log('schalteGaragentor (HK)');
                                      console.log('StatusLageGaragentor = ' + StatusLageGaragentor);
                                      console.log('StatusSchalteGaragentor = ' + StatusSchalteGaragentor);
                                      
                                      if (StatusLageGaragentor === 1) {
                                          // Tor geschlossen
                                          if (StatusSchalteGaragentor === 0) {
                                              // Öffne das Tor
                                              console.log('schalteGaragentor (HK): Tor wird geöffnet');
                                              setState(Schalter, true);
                                          }
                                      } else if (StatusLageGaragentor === 0) {
                                          // Tor offen
                                          if (StatusSchalteGaragentor === 1) {
                                              // Schließe das Tor
                                              console.log('schalteGaragentor (HK): Tor wird geschlossen');
                                              setState(Schalter, true);
                                          }
                                      }
                                      

                                      });

                                      ! // Bei einer manuellen Öffnen/Schließen des Garagentors, muss die Anzeige in Homekit wieder korrekt gesetzt werden.
                                      on({id: Sensor, change: "ne"}, function (obj) {
                                      var value = obj.state.val;
                                      var StatusSensor = value;

                                      console.log('Manuelle Tor Betätigung (Sensor).');
                                      
                                      timeout = setTimeout(function () {
                                          if (StatusSensor === SensorStatusTor_geschlossen) {
                                              console.log('Manuelle Tor Betätigung (Sensor): Setze Tor in HK als geschlossen.');
                                              // Definiere Tor für HK als geschlossen
                                      	    setState(LageGaragentor, 1);
                                      	    setState(schalteGaragentor, 1);
                                          } else {
                                      	    console.log('Manuelle Tor Betätigung (Sensor): Setze Tor in HK als offen.');
                                      	    // Definiere Tor für HK als offen
                                              setState(LageGaragentor, 0);
                                              setState(schalteGaragentor, 0);
                                          }
                                      }, TimeoutHKSetzen);
                                      

                                      });

                                      1 Reply Last reply Reply Quote 0
                                      • V
                                        Vossi80 last edited by

                                        Hier das Log mit deinem neuen Script wenn ich den Xiaomi Taster manuell betätige(Tor reagiert auch wie gewünscht und zeigt im HK auch richtigen Zustand an)

                                        undefined2018-03-31 09:27:29.037 - info: javascript.0 script.js.Intern.GarageHK: Taster wurde betätigt.
                                        2018-03-31 09:27:29.038 - info: javascript.0 script.js.Intern.GarageHK: Taster wurde betätigt: Setze HK auf "wird geöffnet..."
                                        2018-03-31 09:27:29.045 - info: javascript.0 script.js.Intern.GarageHK: schalteGaragentor (HK)
                                        2018-03-31 09:27:29.046 - info: javascript.0 script.js.Intern.GarageHK: StatusLageGaragentor = 0
                                        2018-03-31 09:27:29.047 - info: javascript.0 script.js.Intern.GarageHK: StatusSchalteGaragentor = 0
                                        2018-03-31 09:27:29.335 - info: javascript.0 script.js.Intern.GarageHK: Taster wurde betätigt.
                                        2018-03-31 09:27:31.310 - info: javascript.0 script.js.Intern.GarageHK: Manuelle Tor Betätigung (Sensor).
                                        2018-03-31 09:27:36.312 - info: javascript.0 script.js.Intern.GarageHK: Manuelle Tor Betätigung (Sensor): Setze Tor in HK als offen.
                                        

                                        Hier der Log wenn ich über HK steuern will, 4x dedrückt(Tor reagiert nicht, im HK wird der Zustand angezeigt als ob sich Tor öffnet)

                                        undefined2018-03-31 09:31:50.573 - info: javascript.0 script.js.Intern.GarageHK: schalteGaragentor (HK)
                                        2018-03-31 09:31:50.574 - info: javascript.0 script.js.Intern.GarageHK: StatusLageGaragentor = 1
                                        2018-03-31 09:31:50.574 - info: javascript.0 script.js.Intern.GarageHK: StatusSchalteGaragentor = 1
                                        2018-03-31 09:32:09.728 - info: javascript.0 script.js.Intern.GarageHK: schalteGaragentor (HK)
                                        2018-03-31 09:32:09.729 - info: javascript.0 script.js.Intern.GarageHK: StatusLageGaragentor = 0
                                        2018-03-31 09:32:09.730 - info: javascript.0 script.js.Intern.GarageHK: StatusSchalteGaragentor = 0
                                        2018-03-31 09:32:22.542 - info: javascript.0 script.js.Intern.GarageHK: schalteGaragentor (HK)
                                        2018-03-31 09:32:22.543 - info: javascript.0 script.js.Intern.GarageHK: StatusLageGaragentor = 1
                                        2018-03-31 09:32:22.543 - info: javascript.0 script.js.Intern.GarageHK: StatusSchalteGaragentor = 1
                                        2018-03-31 09:32:32.031 - info: javascript.0 script.js.Intern.GarageHK: schalteGaragentor (HK)
                                        2018-03-31 09:32:32.032 - info: javascript.0 script.js.Intern.GarageHK: StatusLageGaragentor = 0
                                        2018-03-31 09:32:32.032 - info: javascript.0 script.js.Intern.GarageHK: StatusSchalteGaragentor = 0
                                        

                                        Hoffe das reicht dir so um was raus lesen zu können

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

                                          Ist ein Fehler in meinem Skript. Ich schauen es mir mal an…

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

                                            Hier nun eine funktionierende Version des Skripts…

                                            Wenn es funktioniert, kannst Du die "console.log" Zeilen auskommentieren oder löschen.

                                            <u>V1.3 (aktuelle Version) des Skripts:</u>

                                            ! ````
                                            // Skript zum Steuern eines Garagentores mit Homekit und per Taster
                                            //
                                            // Voraussetzung:
                                            // Das Tor hat nur einen Taster (kurzer Impuls für 1sec) für hoch und runten. (true für 1sec, danach wieder false)
                                            // D.b. z.B. Tor offen, Tast-Aktor ansteuern -> Tor geht zu, Tast-Aktor erneut an steuern -> Tor stoppt, Tast-Aktor erneut an steuern -> Tor fährt wieder zu, …
                                            //
                                            // ChangeLog:
                                            // V1.3 (01.04.2018): Fehlerkorrekturen
                                            // V1.2 (30.03.2018): zzgl. Log-Ausgaben eingebaut
                                            // V1.1 (28.03.2018): Status des Sensors bei Garagentor geschlossen kann nun per Variable definiert werden.
                                            ! //Die folgenden Variablen müssen an die eigene Umgebung angepasst werden.
                                            var Schalter = 'zwave.0.NODE4.SWITCH_BINARY.Switch_1',
                                            Sensor = 'zwave.0.NODE2.SENSOR_BINARY.Sensor_1',
                                            SensorStatusTor_geschlossen = false; // Status des Aktors wenn das Tor geschlossen ist
                                            ///

                                            var schalteGaragentor = 'javascript.0.virtualDevices.Garagentor.schalteGaragentor_HK',
                                            LageGaragentor = 'javascript.0.virtualDevices.Garagentor.LageGaragentor_HK',
                                            TimeoutHKSetzen = 5000,
                                            timeout;

                                            ! createState(LageGaragentor, {
                                            type: 'number',
                                            name: 'Lage des Garagentors (HK)',
                                            min: 0,
                                            max: 1,
                                            def: 1,
                                            role: 'value'
                                            });
                                            ! createState(schalteGaragentor, {
                                            type: 'number',
                                            name: 'Schalte das Garagentor (HK)',
                                            min: 0,
                                            max: 1,
                                            def: 1,
                                            role: 'value'
                                            });
                                            ! // Folgender Abschnitt sorgt für die korrekte Darstellung in HK beim Schalten
                                            on({id: Schalter, change: "ne"}, function (obj) {
                                            var value = obj.state.val;

                                            var StatusSchalter = value,
                                            	StatusLageGaragentor = getState(LageGaragentor).val;
                                            
                                            console.log('Taster wurde betätigt.');
                                            
                                            if (StatusLageGaragentor === 1) {
                                                // Tor geschlossen
                                                if (StatusSchalter === true) {
                                                    // Öffne das Tor
                                                    console.log('Taster wurde betätigt: Setze HK auf "wird geöffnet..."');
                                                    setState(schalteGaragentor , 0);
                                                }
                                            } else if (StatusLageGaragentor === 0) {
                                                // Tor offen
                                                if (StatusSchalter === true) {
                                                    // Schließe das Tor
                                                    console.log('Taster wurde betätigt: Setze HK auf "wird geschlossen..."');
                                                    setState(schalteGaragentor, 1);
                                                    // Tor wird geschlossen
                                                }
                                            }
                                            

                                            });

                                            ! // Folgender Abschnitt sorgt für die Steuerung des Homematic-Aktors aus HK heraus
                                            on({id: schalteGaragentor, change: "ne"}, function (obj) {
                                            var value = obj.state.val;
                                            var StatusLageGaragentor = getState(LageGaragentor).val,
                                            StatusSchalteGaragentor = value;

                                            console.log('schalteGaragentor (HK)');
                                            console.log('StatusLageGaragentor = ' + StatusLageGaragentor);
                                            console.log('StatusSchalteGaragentor = ' + StatusSchalteGaragentor);
                                            
                                            if (StatusLageGaragentor === 1) {
                                                // Tor geschlossen
                                                if (StatusSchalteGaragentor === 0) {
                                                    // Öffne das Tor
                                                    console.log('schalteGaragentor (HK): Tor wird geöffnet');
                                                    setState(Schalter, true);
                                                }
                                            } else if (StatusLageGaragentor === 0) {
                                                // Tor offen
                                                if (StatusSchalteGaragentor === 1) {
                                                    // Schließe das Tor
                                                    console.log('schalteGaragentor (HK): Tor wird geschlossen');
                                                    setState(Schalter, true);
                                                }
                                            }
                                            

                                            });

                                            ! // Bei einer manuellen Öffnen/Schließen des Garagentors, muss die Anzeige in Homekit wieder korrekt gesetzt werden.
                                            on({id: Sensor, change: "ne"}, function (obj) {
                                            var value = obj.state.val;
                                            var StatusSensor = value;

                                            console.log('Manuelle Tor Betätigung (Sensor).');
                                            
                                            timeout = setTimeout(function () {
                                                if (StatusSensor === SensorStatusTor_geschlossen) {
                                                    console.log('Manuelle Tor Betätigung (Sensor): Setze Tor in HK als geschlossen.');
                                                    // Definiere Tor für HK als geschlossen
                                            	    setState(LageGaragentor, 1);
                                            	    setState(schalteGaragentor, 1);
                                                } else {
                                            	    console.log('Manuelle Tor Betätigung (Sensor): Setze Tor in HK als offen.');
                                            	    // Definiere Tor für HK als offen
                                                    setState(LageGaragentor, 0);
                                                    setState(schalteGaragentor, 0);
                                                }
                                            }, TimeoutHKSetzen);
                                            

                                            });

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            900
                                            Online

                                            31.8k
                                            Users

                                            79.9k
                                            Topics

                                            1.3m
                                            Posts

                                            11
                                            144
                                            17223
                                            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