Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Aus Objekt einen Wert in Klammern extrahieren

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Aus Objekt einen Wert in Klammern extrahieren

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

      Hallo zusammen,

      hab schon ein bisschen gesucht aber kein Fall entspricht meinem.

      Hintergrund:
      Ich möchte per Telegram eine Antwort auf einen Request verschicken.
      Das Skript selbst starte ich einfach durch text2command.
      Möchte dann aber die Antwort nur an den Sender des request schicken.

      Wie ich das sehe erwartet der "sendto" Telegram block den Namen des Empfängers und akzeptiert die ChatID nicht.

      Um das zu bekommen will ich den Datenpunkt "request" von telegram verwenden, dieser ist so aufgebaut [NAME]request.
      Da die Namenlänge variiert muss ich die Buchstaben zwischen den Klammern verwenden.
      Das krieg ich aber mit dem Block "zwischen Zeichen" nicht hin weil ich dort die Klammer nicht als Suchwert eintragen kann.

      Falls jemand einen anderen Ansatz hat bin ich auch dankbar!

      Danke und Gruß, Philipp

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

        @Pihero
        Probiere mal

        Bildschirmfoto 2020-03-18 um 13.42.43.png

        <xml xmlns="http://www.w3.org/1999/xhtml">
         <variables>
           <variable type="" id="O[+2UyKK]a:Y?u@kP(V1">Letzter_Absender</variable>
         </variables>
         <block type="on_ext" id="!8B]z7wO)w*bD^7(714W" x="30" y="3560">
           <mutation items="1"></mutation>
           <field name="CONDITION">any</field>
           <field name="ACK_CONDITION"></field>
           <value name="OID0">
             <shadow type="field_oid" id="J=/9IeQnq:FSa`bM5)PG">
               <field name="oid">default</field>
             </shadow>
             <block type="field_oid" id="GDubi_#J2DI7*n0ep|.D">
               <field name="oid">telegram.0.communicate.request</field>
             </block>
           </value>
           <statement name="STATEMENT">
             <block type="variables_set" id="wx1Id^cN]ztTBpbxGq9u">
               <field name="VAR" id="O[+2UyKK]a:Y?u@kP(V1" variabletype="">Letzter_Absender</field>
               <value name="VALUE">
                 <block type="text_getSubstring" id="!{g./8(or54hvEyb1P`f" inline="false">
                   <mutation at1="true" at2="true"></mutation>
                   <field name="WHERE1">FROM_START</field>
                   <field name="WHERE2">FROM_START</field>
                   <value name="STRING">
                     <block type="on_source" id="IH2.D,NF:~A]W/4FHzgx">
                       <field name="ATTR">state.val</field>
                     </block>
                   </value>
                   <value name="AT1">
                     <block type="math_number" id="e3-d;DM::ScEpRh}H!@u">
                       <field name="NUM">2</field>
                     </block>
                   </value>
                   <value name="AT2">
                     <block type="math_arithmetic" id="!6WqqSNO@l{-K;,0UXg-">
                       <field name="OP">MINUS</field>
                       <value name="A">
                         <shadow type="math_number" id="r%ebl4IUX*XWQmsp|?rw">
                           <field name="NUM">1</field>
                         </shadow>
                         <block type="text_indexOf" id="zZ:Zi`joE?XuMOeVt|R6">
                           <field name="END">FIRST</field>
                           <value name="VALUE">
                             <block type="on_source" id="X)hVqhY|6Z+@Cb?r}b4`">
                               <field name="ATTR">state.val</field>
                             </block>
                           </value>
                           <value name="FIND">
                             <shadow type="text" id="53KpH_VzOt@uW50iFuYJ">
                               <field name="TEXT">abc</field>
                             </shadow>
                             <block type="text" id="1]2I2PG:.3LKq!TKaRwq">
                               <field name="TEXT">]</field>
                             </block>
                           </value>
                         </block>
                       </value>
                       <value name="B">
                         <shadow type="math_number" id="+bTY;ti{LICv`mEp;Zjv">
                           <field name="NUM">1</field>
                         </shadow>
                         <block type="math_number" id="eBIB);yoT|)BAtWQsxk%">
                           <field name="NUM">1</field>
                         </block>
                       </value>
                     </block>
                   </value>
                 </block>
               </value>
               <next>
                 <block type="debug" id="0utDl^B#}p3ud;Z*G4v(">
                   <field name="Severity">log</field>
                   <value name="TEXT">
                     <shadow type="text" id="r|ZLPN1Tp0[@!p)F?GUc">
                       <field name="TEXT">test</field>
                     </shadow>
                     <block type="text_join" id="50C@kPZHr=*Q2;.F!5/n">
                       <mutation items="2"></mutation>
                       <value name="ADD0">
                         <block type="text" id="k$_YK-D0OYl)H}nfh4[Z">
                           <field name="TEXT">letzter Absender: </field>
                         </block>
                       </value>
                       <value name="ADD1">
                         <block type="variables_get" id="_mX3U8e6uv}!Bb6QZ#X}">
                           <field name="VAR" id="O[+2UyKK]a:Y?u@kP(V1" variabletype="">Letzter_Absender</field>
                         </block>
                       </value>
                     </block>
                   </value>
                 </block>
               </next>
             </block>
           </statement>
         </block>
        </xml>
        

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

          Danke für die schnelle Antwort...
          leider nicht erfolgreich...

          Schau mal die screenshots:

          Bildschirmfoto 2020-03-18 um 15.37.52.png Bildschirmfoto 2020-03-18 um 15.38.58.png

          Danke vorab und Gruß, Philipp

          dslraser paul53 3 Replies Last reply Reply Quote 0
          • dslraser
            dslraser Forum Testing Most Active @Pihero last edited by dslraser

            @Pihero
            nimm mal 1:1 mein Blockly.
            Bei Dir fehlt auch hier ein Textbaustein.

            Screenshot_20200318-155916_Chrome.jpg

            Bei mir läuft das Blockly und es erscheint bei einer Telegram Anfrage mein Name im LOG.

            1 Reply Last reply Reply Quote 0
            • paul53
              paul53 @Pihero last edited by

              @Pihero sagte:

              Schau mal die screenshots:

              'slice' of undefined deutet darauf hin, dass Wert eine Variable ist und nicht - wie erforderlich - eine Eigenschaft des Trigger-Datenpunktes (Blöcke Trigger).

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

                @Pihero

                Bildschirmfoto 2020-03-18 um 16.06.24.png

                Bildschirmfoto 2020-03-18 um 16.06.33.png

                Wert ist von hier (Objekt ID umstellen auf Wert)

                Bildschirmfoto 2020-03-18 um 16.07.34.png

                siehe LOG

                Bildschirmfoto 2020-03-18 um 16.12.32.png

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

                  Puh...die Details 🙂

                  Danke...ich Versuchs jetzt mal ins eigentliche Programm zu implementieren!

                  Vielen Dank 🙂
                  Philipp

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

                    Eigentlich scheint es zu funktionieren aber Telegram scheint den Empfänger zu ignorieren.
                    Muss man da noch was konvertieren? Ideen?

                    Bildschirmfoto 2020-03-18 um 22.15.56.png

                    Danke und Gruß, Philipp

                    dslraser E 2 Replies Last reply Reply Quote 0
                    • dslraser
                      dslraser Forum Testing Most Active @Pihero last edited by

                      @Pihero sagte in Aus Objekt einen Wert in Klammern extrahieren:

                      Telegram scheint den Empfänger zu ignorieren.

                      wie meinst Du das ? Kommt die Nachricht nicht an ?

                      1 Reply Last reply Reply Quote 0
                      • E
                        e-s @Pihero last edited by

                        @Pihero
                        Kann sie ja auch nicht, der Empfänger wird ja erst im trigger erstellt wenn sich das Objekt geändert hat.

                        Das versenden von der Nachricht wird aber 1 Sekunde nach Start von dem Script gestartet und dann nie wieder.
                        Wenn dann muss der Telegramm block mit in den trigger rein.

                        dslraser 1 Reply Last reply Reply Quote 1
                        • dslraser
                          dslraser Forum Testing Most Active @e-s last edited by

                          @e-s
                          stimmt, habe ich auch übersehen, Telegram ist ja ausserhalb...

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

                            da fehlt mir noch ein bisschen die Erfahrung mit der Logik von Blockly.
                            Hatte gedacht das die Variable vielleicht noch nicht gefüllt ist und daher die Verzögerung rein gemacht...ich probier jetzt den Telegramblock mit in den Träger rein zunehmen.

                            Danke (mal wieder) 🙂

                            Philipp

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

                              Also...finales Feedback:

                              Ich musste weg vom Trigger weil das Skript über einen True-Befehl von Text2command ausgelöst werden soll. Wenn ich es so gelassen hätte werden alle Programme die bei personalisierter Abfrage gestartet werden sollen immer gestartet.

                              Hier nun meine Lösung für Benzin-Preis-Abfrage:

                              Bildschirmfoto 2020-03-19 um 13.04.30.png

                              gleiches Prinzip aber über "System" gemacht 😉

                              Danke für eure Hilfe ohne die hätte es nicht geklappt.

                              PS: ich hoffe es hilft auch anderen die z.B. mehrere Telegram Instanzen haben aber bestimmte Infos bei einer Abfrage nur an den "fragenden" User schicken wollen.

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

                                @Pihero
                                Ich mache das ganze nach dieser Vorlage ohne text2command

                                https://forum.iobroker.net/post/251463

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

                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                448
                                Online

                                32.0k
                                Users

                                80.4k
                                Topics

                                1.3m
                                Posts

                                4
                                14
                                801
                                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