Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. [gelöst] Frage zum entprellen von Schaltern

    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

    [gelöst] Frage zum entprellen von Schaltern

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

      Hallo,

      da mich mein Hersteller der Multimediasteuerung durch Konkurs im Stich gelassen hat, bin ich nun dabei die Steuerung selbst zu erstellen.

      Die Hardware ist ein WIFI to IR Interface, bei welchem ich einzelne Befehle mittels URL ansteuern kann.

      Habe mal folgende Steuerungsoberfläche gebastelt.
      1180_iobroker_1.jpg

      Die einzelnen Tasten bestehen aus dem Bulb on/off Widget, welche beim Druck einem Datenpunkt einen Wert zuweist. (Taste 1 –> 1, Taste 2 --> 2...)

      Im Script sende ich dann den jeweiligen Befehle.
      1180_iobroker_2.jpg

      Leider passiert es regelmäßig, dass ein Befehl mehrmals gesendet wird. Wenn ich wirklich nur ganz kurz antippe dann passt es. Bei einem normalen Druck kommt der Befehl mehrmals..

      Hat nun jemand eine Idee, wie ich diese Tasten "entprellen" kann?. Also das er wenn einmal einen Druck registriert hat die nächsten paar Millisekunden nichts mehr annimmt?

      Lg

      Günther

      PS: VIS = 0.12.4

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

        Hallo Jeeper.at

        Bau doch im Blockly einen "Stopper" ein.
        147_stopper.png

        Blockly Import

        ! ````
        <xml xmlns="http://www.w3.org/1999/xhtml"><block type="on" id="@t_e}|]DG/O07f-(v-5k" x="-412" y="13"><field name="OID">Object ID</field>
        <field name="CONDITION">ne</field>

        <statement name="STATEMENT"><block type="controls_if" id="-e%9|p7+YNm0%uCfc;1c"><value name="IF0"><block type="logic_compare" id="0(pbF/wL;)wA^adaD}5N"><field name="OP">EQ</field>
                <value name="A"><block type="variables_get" id=")+dV=k:UX|*M*G*6J7xy"><field name="VAR">Stopper</field></block></value> 
                <value name="B"><block type="logic_boolean" id="nDHW`OiN~!.jTXS9`!vn"><field name="BOOL">FALSE</field></block></value></block></value> 
            <statement name="DO0"><block type="variables_set" id=",#s5,-:Y-8np@n}R%1-9"><field name="VAR">Stopper</field>
                <value name="VALUE"><block type="logic_boolean" id="M=}8M~Ph[@d..E8^:#jV"><field name="BOOL">TRUE</field></block></value> 
                <next><block type="controls_if" id=".[7:8o*AKo~IhEP?q*d!"><mutation elseif="3"></mutation>
                    <value name="IF0"><block type="get_value" id="^C`J/-voGg?9|ocLE((w"><field name="ATTR">val</field>
                        <field name="OID">ID auswählen</field></block></value> 
                    <statement name="DO0"><block type="procedures_callnoreturn" id="An)MH:k)u6M](gspJ|Is"><mutation name="Ausgabe"><arg name="x"></arg></mutation> 
                        <value name="ARG0"><block type="text" id="s3~#v8VWFJwcNzP,_yFw"><field name="TEXT">http://...........</field></block></value></block></statement> 
                    <value name="IF1"><block type="get_value" id="DM@P=DU~2S5EaGxbreJJ"><field name="ATTR">val</field>
                        <field name="OID">ID auswählen</field></block></value> 
                    <statement name="DO1"><block type="procedures_callnoreturn" id="!uHgp}q~IkJaT,WytRO/"><mutation name="Ausgabe"><arg name="x"></arg></mutation> 
                        <value name="ARG0"><block type="text" id="TGNW_CliFue-Y1:2F-])"><field name="TEXT">http://...........</field></block></value></block></statement> 
                    <value name="IF2"><block type="get_value" id="bHX1*l`q[t)lLHS!%{oj"><field name="ATTR">val</field>
                        <field name="OID">ID auswählen</field></block></value> 
                    <statement name="DO2"><block type="procedures_callnoreturn" id="T1xel!oRR8`2+f!a,UTW"><mutation name="Ausgabe"><arg name="x"></arg></mutation> 
                        <value name="ARG0"><block type="text" id="WIg5NU^u:pT+h_8k`3jX"><field name="TEXT">http://...........</field></block></value></block></statement> 
                    <value name="IF3"><block type="get_value" id="Mp?A*/:X6Gx2i{PYa4{T"><field name="ATTR">val</field>
                        <field name="OID">ID auswählen</field></block></value> 
                    <statement name="DO3"><block type="procedures_callnoreturn" id="U(,X/EsEx?|T:kWL)~jS"><mutation name="Ausgabe"><arg name="x"></arg></mutation> 
                        <value name="ARG0"><block type="text" id="Magg|;a[TjL`8_C;bq`G"><field name="TEXT">http://...........</field></block></value></block></statement></block></next></block></statement></block></statement></block> 
        

        <block type="procedures_defnoreturn" id="d6=F=/SszHt#PIQ%Ix?:" x="113" y="163"><mutation><arg name="x"></arg></mutation>
        <field name="NAME">Ausgabe</field>
        <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
        <statement name="STACK"><block type="request" id="bJ+WLjndL@uq-N@Q{W?5"><mutation with_statement="false"></mutation>
        <field name="WITH_STATEMENT">FALSE</field>

            <value name="URL"><shadow type="text" id="[TUMszpJT#pk{Lt`m#;C"><field name="TEXT">text</field></shadow> 
              <block type="variables_get" id="^*)XmRGq1nm_4]3vz{0o"><field name="VAR">x</field></block></value> 
            <next><block type="variables_set" id="YEe7dE-T!fu#WP0=naU="><field name="VAR">Stopper</field>
                <value name="VALUE"><block type="logic_boolean" id="H:W}n[Qu1aTE2lRObL6J"><field name="BOOL">FALSE</field></block></value></block></next></block></statement></block></xml> 
        

        ! ````

        So könnte es funktionieren.

        Grüße

        1 Reply Last reply Reply Quote 0
        • P
          pix last edited by

          Hallo,

          in Blockly kann ich das leider nicht. Aber zum Entprellen kannst du setTimeout verwenden:

          var idTaste = "......";
          var tastendruck;
          on(idTaste}, function (obj) {
              if (!tastendruck) {
                  tastendruck = true;
                  setTimeout(function () {
                      tastendruck = undefined;
                  }, 500);
                  // Aktion mit URL
              }
          });
          
          

          Gruß

          Pix

          1 Reply Last reply Reply Quote 0
          • Jeeper.at
            Jeeper.at last edited by

            Danke erstmal für die Tipps.

            Da ich die Multimedianlage gerade an Games of Thrones und meine Frau verloren habe kann ich erst morgen testen.

            rofl

            Lg

            Günther

            1 Reply Last reply Reply Quote 0
            • Jeeper.at
              Jeeper.at last edited by

              So, die Tests sind leider nicht erfolgreich abgeschlossen.

              Allerdings können die Lösungsvorschläge nichts dafür. Ich habe sie umgesetzt, ändert allerdings nichts am Ergebnis. Nach dem einschalten des Loggings kam das Drama zum Vorschein. Der URL Befehl wird eh nur einmal gesendet. Das bedeutet, das ich ein Problem mit meiner Hardware habe warum die manchmal mehrmals sendet.

              IOBroker kann da nichts dafür.

              Aber immerhin habe ich etwas in Blockly gelernt, nämlich wie man diese Anforderung mit Ausgabe und einer Variable deutlich besser gestaltet als ich das getan habe.

              Also war es nicht ganz umsonst.

              Vielen dank für die Infos.

              lg

              Günther

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

                Immer wieder gerne.

                Danke für die Rückmeldung.

                Grüße

                1 Reply Last reply Reply Quote 0
                • Y
                  ykuendig last edited by

                  Vielleicht ist das IR Kommando schon ^zu lang^ eingelernt…

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

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  564
                  Online

                  31.9k
                  Users

                  80.3k
                  Topics

                  1.3m
                  Posts

                  4
                  7
                  1959
                  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