Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Text2Command

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Text2Command

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

      Hallo,

      ich muss gestehen, dass ich das früher auch so gemacht habe und noch immer einige Skripte von meinem text2command per scriptEnabled eingeschaltet werden, damit sie etwas ausführen. Dann schaltet sich das Skript wieder aus.
      261_bildschirmfoto_2018-12-22_um_18.02.24.jpg
      261_bildschirmfoto_2018-12-22_um_18.00.43.jpg
      Ich werde mich zeitnah dran setzen und das umbauen.

      • EIN Skript anlegen. Name zB "Steuerknoepfe_fuer_text2command"

      • darin mit createState() für jede Aufgabe einen State anlegen (role: "button")

      • mit on() jeden dieser States überwachen und bei neuem true (gedrückter Knopf) gewünschte Befehle ausführen

      Vorteile:

      • Alles in einem Skript - übersichtlicher

      • weniger Code, da zB Code für Benachrichtigungen gemeinsam genutzt werden kann

      • Ausführung ggf. schneller, da kein Skript gestartet werden muss

      • keine Probleme mit dem Datenpunkt scriptEnabled

      • keine lange Liste von roten/ausgeschalteten Skript im Skripteditor

      ! Bisher habe ich solche Skripte gehabt, die beim Skriptstart Befehle abarbeiten und sich dann selbst stoppen

      const idRollo1 = "homepilot.0.devices.RolloTronStandard.10000.level_inverted"/*level inverted Rollo SZ links*/;
      const idRollo2 = "homepilot.0.devices.RolloTronStandard.10001.level_inverted"/*level inverted Rollo SZ rechts*/;
      >! function aktion () {
          let ziel = 100;
          setState(idRollo1, ziel);
          setStateDelayed(idRollo2, ziel, 500);
      }
      >! // bei Skriptstart ausführen
      aktion();
      // selbständig Skript wieder anhalten
      setStateDelayed("javascript." + instance +  ".scriptEnabled." + name.slice(10), false, 5*1000);
      >! // Meldung, wenn Skript gestoppt (ioBroker Befehl onStop)
      onStop (function(){ 
          log("Skript: javascript." + instance + ".scriptEnabled." + name.slice(10) + " gestoppt");    
      }, 1000);
      

      Danke für die Anregung, das muss ich dringend ändern.

      Pix

      1 Reply Last reply Reply Quote 0
      • C
        Christian.B last edited by

        Genau so habe ich das bisher gemacht und würde es gerne weiter so machen, da es für uns viele Vorteile hat, über telegram selbst erstellte Szenen auzuführen. Leider ist es seit irgendeinem Adapterupdate nicht mehr möglich, neu geschriebene blockly -Scrypte auzuwählen. Im text2commend werden nur noch die älteren Scrypte angezeigt, die neuen nicht mehr. Kann ich irgendeinen Adapter auf eine vorherige Version zurückstellen, damit das wieder möglich ist? Welcher wäre das und in welche Version hat das zuletzt unterstützt?

        1 Reply Last reply Reply Quote 0
        • Dutchman
          Dutchman Developer Most Active Administrators last edited by

          Nimm dir bitte den Rat von Pix zu gute und erstelle die dazugehörigen Objekte das ist das gleiche wie ihr jetzt auch macht nur halt auch auf die Art wie es sein soll.

          Es gehen dadurch keine Funktionalität verloren wird sogar besser/effizienter realisiert und auch besser verknüpfbar.

          Sent from my iPhone using Tapatalk

          1 Reply Last reply Reply Quote 0
          • C
            Christian.B last edited by

            Ich muss gestehen, ich verstehe im Moment nicht, wie er das genau gemacht hat. Muss mich da erstmal einlesen und informieren.

            Schade, dass ich das nicht mehr so machen kann, wie es lange Zeit gut funktioniert hat.

            1 Reply Last reply Reply Quote 0
            • Dutchman
              Dutchman Developer Most Active Administrators last edited by

              Brauchst ein Beispiel?

              Sent from my iPhone using Tapatalk

              1 Reply Last reply Reply Quote 0
              • C
                Christian.B last edited by

                Ja, das wäre super.

                Im Moment weiß ich nicht, wo ich anfangen soll.

                1 Reply Last reply Reply Quote 0
                • C
                  Christian.B last edited by

                  Ich möchte nochmal zu meinem Anliegen kommen und um Hilfe bitten.

                  Pix’s Lösung, die er oben beschrieben hat mit „createState“ werde ich wohl nicht realisieren können, da ich nicht programmieren kann. Wenn sich etwas mit Blockly nicht lösen lässt, werde ich es mit Java nicht hinbekommen.

                  Soeben habe ich festgestellt, dass seit dem letzten Java-Adapter Update viele, viele Sachen, die ich aufgebaut habe und die lange Zeit, fehlerfrei funktioniert hatten, nicht mehr möglich sind.

                  Zum Beispiel kann die Familie mit Hilfe der Telagram- „Zusatzbuttons“ prüfen, wer zuhause ist oder ob, bzw. welche Fenster geöffnet sind. Auch die Temperatur und Luftfeuchtigkeit der Räume lassen sich auf Telegram senden. Dazu senden wir per Telegram die entsprechenden Begriffe an Iobroker, text2kommand startet den entsprechenden Blockly-Skript, der die angeforderten Informationen werden an Telegramm gesendet.

                  Nach dem letzten Update lassen sich zwar die alten Skripte unter text2command auswählen, neu erstellte jedoch nicht. Als Beispiel habe ich hier den Skript „Check Admin“ kopiert und zu „Check Admin Test“ umbenannt. Auf dem Screenshot sieht man, dass der neue Skript „Check Admin Test“ nicht mehr sichtbar und somit nicht mehr ausgewählt werden kann.

                  Ich weiß nicht, was gegen diese Methode spricht und warum diese Möglichkeit nicht mehr existiert.

                  Nach dem Downgrade des Java Adapters war alles wieder beim Alten. Ich hätte jedoch gerne eine aktuelle Adapterversion und trotzdem die beschriebene Option.
                  7614_screenshot__5__li.jpg
                  7614_screenshot__6__li.jpg
                  7614_screenshot__4__li.jpg

                  1 Reply Last reply Reply Quote 0
                  • FredF
                    FredF Most Active Forum Testing last edited by

                    @Christian.B:

                    Nach dem Downgrade des Java Adapters war alles wieder beim Alten. Ich hätte jedoch gerne eine aktuelle Adapterversion und trotzdem die beschriebene Option. `
                    Na ja…

                    Der javascript Adapter in der Version 4.0.6 ist latest, also Beta Version, da kann sowas sein und wird dann geändert, optimiert usw. bis zur stable version...

                    Da must du schon eine issue auf git anlegen... wenn es nicht schon jemand anders gemacht hat...

                    Und hat übrigens nichts mit dem thema text2command zu tun...

                    1 Reply Last reply Reply Quote 0
                    • dslraser
                      dslraser Forum Testing Most Active last edited by

                      @Christian.B:

                      Ich möchte nochmal zu meinem Anliegen kommen und um Hilfe bitten.

                      Pix’s Lösung, die er oben beschrieben hat mit „createState“ werde ich wohl nicht realisieren können, da ich nicht programmieren kann. Wenn sich etwas mit Blockly nicht lösen lässt, werde ich es mit Java nicht hinbekommen. `

                      Datenpunkte kannst Du auch in Blockly anlegen.

                      Hier mal ein Beispiel als Button.
                      3822_bildschirmfoto_2018-12-28_um_21.35.47.png
                      Und hier der Blockly Export

                      ! ````
                      <xml xmlns="http://www.w3.org/1999/xhtml"><block type="procedures_defcustomnoreturn" id="49kvg:%69IF}@lKJq@(J" x="-337" y="13"><mutation statements="false"><arg name="Name"></arg>
                      <arg name="Initialisierung"></arg>
                      <arg name="Beschreibung"></arg>
                      <arg name="Type"></arg>
                      <arg name="Rolle"></arg></mutation>
                      <field name="NAME">Variablen anlegen</field>
                      <field name="SCRIPT">Y3JlYXRlU3RhdGUoTmFtZSwgSW5pdGlhbGlzaWVydW5nLCB7DQogIG5hbWU6IEJlc2NocmVpYnVuZywNCiAgcmVhZDogdHJ1ZSwgDQogIHdyaXRlOiB0cnVlLCANCiAgdHlwZTogVHlwZSwgDQogIGRlZjogZmFsc2UsDQogIHJvbGU6IFJvbGxlDQp9KTs=</field>
                      <comment pinned="false" h="80" w="160">Hier ist das Javascript drin.</comment></block>
                      <block type="procedures_callcustomnoreturn" id="O45R/5Gw(j@)2M*_xdcB" x="-337" y="62"><mutation name="Variablen anlegen"><arg name="Name"></arg>
                      <arg name="Initialisierung"></arg>
                      <arg name="Beschreibung"></arg>
                      <arg name="Type"></arg>
                      <arg name="Rolle"></arg></mutation>
                      <value name="ARG0"><block type="text" id="nSr7Hq~;DUU2#lB+Yj:}"><field name="TEXT">Eigene_Datenpunkte.OrdnerX.DatenpunktY</field></block></value>
                      <value name="ARG1"><block type="text" id="xlqa55O11o`@{+#@Yj;%"><field name="TEXT">true</field></block></value>
                      <value name="ARG2"><block type="text" id="yEhqZqxh*}Ip8?yzOW7I"><field name="TEXT">neuer Datenpunkt</field></block></value>
                      <value name="ARG3"><block type="text" id="sYAGk@@-Fz^fIDONX!/i"><field name="TEXT">boolean</field></block></value>
                      <value name="ARG4"><block type="text" id="/t]#6;-K%9u+eD1jG09@"><field name="TEXT">button</field></block></value></block></xml>

                      
                      Hier ein Switch
                       ![3822_bildschirmfoto_2018-12-28_um_21.36.54.png](/assets/uploads/files/3822_bildschirmfoto_2018-12-28_um_21.36.54.png) 
                      
                      Blockly Export
                      
                      >! ````
                       <xml xmlns="http://www.w3.org/1999/xhtml"><block type="procedures_defcustomnoreturn" id="49kvg:%69IF}@lKJq@(J" x="-337" y="13"><mutation statements="false"><arg name="Name"></arg>
                            <arg name="Initialisierung"></arg>
                            <arg name="Beschreibung"></arg>
                            <arg name="Type"></arg>
                            <arg name="Rolle"></arg></mutation> 
                          <field name="NAME">Variablen anlegen</field>
                          <field name="SCRIPT">Y3JlYXRlU3RhdGUoTmFtZSwgSW5pdGlhbGlzaWVydW5nLCB7DQogIG5hbWU6IEJlc2NocmVpYnVuZywNCiAgcmVhZDogdHJ1ZSwgDQogIHdyaXRlOiB0cnVlLCANCiAgdHlwZTogVHlwZSwgDQogIGRlZjogZmFsc2UsDQogIHJvbGU6IFJvbGxlDQp9KTs=</field>
                          <comment pinned="false" h="80" w="160">Hier ist das Javascript drin.</comment></block> 
                        <block type="procedures_callcustomnoreturn" id="O45R/5Gw(j@)2M*_xdcB" x="-337" y="62"><mutation name="Variablen anlegen"><arg name="Name"></arg>
                            <arg name="Initialisierung"></arg>
                            <arg name="Beschreibung"></arg>
                            <arg name="Type"></arg>
                            <arg name="Rolle"></arg></mutation> 
                          <value name="ARG0"><block type="text" id="nSr7Hq~;DUU2#lB+Yj:}"><field name="TEXT">Eigene_Datenpunkte.OrdnerXX.DatenpunktYY</field></block></value> 
                          <value name="ARG1"><block type="text" id="xlqa55O11o`@{+#@Yj;%"><field name="TEXT">true</field></block></value> 
                          <value name="ARG2"><block type="text" id="yEhqZqxh*}Ip8?yzOW7I"><field name="TEXT">neuer Datenpunkt</field></block></value> 
                          <value name="ARG3"><block type="text" id="sYAGk@@-Fz^fIDONX!/i"><field name="TEXT">boolean</field></block></value> 
                          <value name="ARG4"><block type="text" id="/t]#6;-K%9u+eD1jG09@"><field name="TEXT">switch</field></block></value></block></xml> 
                      

                      Sieht dann so aus
                      3822_bildschirmfoto_2018-12-28_um_21.38.10.png

                      Andere Datenpunkte gehen auch…

                      PS:

                      Wenn Du Deine eigenen Scripte kopieren willst und es über Deinen Weg nicht geht bzw. diese dann nicht angezeigt werden, dann probiere doch einen Blockly Export Deines eigenen Scripts und erstelle Dir ein neues leeres Blockly und importiere Dein Blockly. Funktioniert das dann ?

                      Also nicht kopieren, sondern ein neues leeres Blockly erstellen und dann importieren.

                      1 Reply Last reply Reply Quote 0
                      • dslraser
                        dslraser Forum Testing Most Active last edited by

                        Vielleicht hilft Dir auch das hier.

                        viewtopic.php?f=20&t=20056&share_tid=20 … are_type=t

                        1 Reply Last reply Reply Quote 0
                        • C
                          Christian.B last edited by

                          @dslraser:

                          PS:

                          Wenn Du Deine eigenen Scripte kopieren willst und es über Deinen Weg nicht geht bzw. diese dann nicht angezeigt werden, dann probiere doch einen Blockly Export Deines eigenen Scripts und erstelle Dir ein neues leeres Blockly und importiere Dein Blockly. Funktioniert das dann ?

                          Also nicht kopieren, sondern ein neues leeres Blockly erstellen und dann importieren. `
                          hallo,

                          Die kopierten Skripte sind unter "Skripte" ´natürlich zu sehen. Problem ist, dass weder die kopierten noch die importierten Skripte unter Text2Command zu sehen sind.

                          Ich habe es jetzt tatsächlich geschafft, dslraser's Vorschlag zu realisieren. Die angelegten Datenpunkte lassen sich mit Text2Command auswählen und mit true oder false beschreiben. Die Skripte werden jetzt ausgeführt, wenn die Datenpunkte den entsprechenden Status besitzen.

                          Keine Ahnung, ob das die reine Programmierlehre ist, es funktioniert aber 😉

                          Vielen Dank.

                          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

                          589
                          Online

                          31.7k
                          Users

                          79.8k
                          Topics

                          1.3m
                          Posts

                          6
                          14
                          2708
                          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