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.
    • C
      Christian.B last edited by

      Mit dem Text2Command aktiviere ich meine eigenen Scripte um z.B mit einem Kommando aus dem Telagram mehrere Sonofs oder Osram SmartPlugs ein oder auszuschalten. Seit einiger Zeit finde ich aber unter text2command die neu erstellten Scripte nicht mehr. Unter Scripte sind sie natürlich sichtbar. Auch wenn ich einen, mit Text2Command in der Vergangenheit verbundenen und funktionierenden Script kopiere und ihm einen neuen Namen verpasse, ist er unter Text2Command unsichtbar. In dem angehängten Beispiel würde ich gerne den Script "Gartenbeleuchtung" auswählen. Der ist aber unter Text2Command nicht sichtbar. Ich habe schon IOBroker mehrfach neu gestartet und auch die entsprechenden Adapter neugestartet.

      Wo muss ich den Fehler suchen?

      Danke und Grüße

      Christian

      7614_screenshot_2018-12-22_15.42.29.png

      7614_screenshot_2018-12-22_15.42.08.png

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

        Das ist formal kein Fehler, sondern Absicht. Es war niemandem bewusst das user so arbeiten.

        Daher mal die frage: Wie funktionieren die Skripte denn? Schalten die sich selbst wieder aus? Weil wenn Sie laufen dann kann man Sie ja nicht nochmal starten, oder doch?

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

          Die Scripte schalten mehrere wlan und Zigbee Steckdosen gleichzeitig ein oder aus und geben mir auch per Text über Telegram über die Änderung feedback.

          Bis jetzt bin ich damit immer gut gefahren, jetzt weiß ich nicht, wie ich das lösen kann.

          1 Reply Last reply Reply Quote 0
          • 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

                                733
                                Online

                                31.7k
                                Users

                                79.8k
                                Topics

                                1.3m
                                Posts

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