Navigation

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

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Wert aus Satz auslesen

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

      Hallo!

      Gibt es eine Möglichkeit einen Zahlenwert aus einem Satz auszulesen?

      Hintergrund: Ich habe einen Datenpunkt von Alexa, welcher nach einem Update des Skills nicht mehr bedient wird und so nicht im IoBroker auftaucht.
      Nun ist meine Idee, Alexa durch eine Routine oder ähnliches den Wert ausgeben zu lassen. Nun bekomme ich einen Satz "Die Temperatur von ... ist 4,6 Grad." Kann ich mir diesen Wert ausgeben lassen?

      Ich habe es jetzt über den Block "nimm Teil ab "--" bis "--" gelöst, allerdings wenn die Zahlen in den negativen oder zweistelligen positiven Bereich rutschen, haut das mit den Positionen nicht mehr richtig hin.

      Ich hoffe da gibt es eine elegante Lösung.

      Grüße!

      mickym paul53 OliverIO 3 Replies Last reply Reply Quote 0
      • mickym
        mickym Most Active @MBM1982 0 last edited by

        @mbm1982-0 Auch in der Stringverarbeitung ist Puzzeln schlecht. Nimm JSONATA und einen regulären Ausdruck.

        M Homoran 2 Replies Last reply Reply Quote 1
        • M
          MBM1982 0 @mickym last edited by

          @mickym

          Danke!
          Okay, da bin ich wissenstechnisch jetzt raus. Muss ich erstmal schnell autodidaktisch aktiv werden.

          mickym 1 Reply Last reply Reply Quote 0
          • mickym
            mickym Most Active @MBM1982 0 last edited by

            @mbm1982-0

            7d9f8336-fd18-4569-9633-4a34008883c4-image.png

            <xml xmlns="https://developers.google.com/blockly/xml">
             <block type="debug" id="$mUXBli_e}bd4hA?t2Ls" x="-1312" y="-937">
               <field name="Severity">log</field>
               <value name="TEXT">
                 <shadow type="text" id="+:$J:sSMpe_Z8M4p0YYN">
                   <field name="TEXT">test</field>
                 </shadow>
                 <block type="convert_jsonata" id="xz5ijXAFL3gB`SY##:zK">
                   <value name="EXPRESSION">
                     <shadow type="text" id="JZ*(!0?Y2d1j]_jS^.(W">
                       <field name="TEXT">($ ~&gt; /-?\d+,\d/).match~&gt;$replace(',','.')~&gt;$number</field>
                     </shadow>
                   </value>
                   <value name="TARGET">
                     <block type="text" id="g=?.U|g3!nPIM8!Okui4">
                       <field name="TEXT">"Die Temperatur von ... ist 4,6 Grad."</field>
                     </block>
                   </value>
                 </block>
               </value>
             </block>
            </xml>
            

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

              @mbm1982-0 sagte: wenn die Zahlen in den negativen oder zweistelligen positiven Bereich rutschen, haut das mit den Positionen nicht mehr richtig hin.

              Wandle nach Zahl von "nimm Teil ab "--" bis letztes.

              1 Reply Last reply Reply Quote 1
              • Homoran
                Homoran Global Moderator Administrators @mickym last edited by Homoran

                @mickym sagte in Wert aus Satz auslesen:

                Auch in der Stringverarbeitung ist Puzzeln schlecht

                ehrlich?
                selbst ohne JSONATA in paar Zeilen
                Screenshot_20240104-150003_Firefox.jpg

                mickym 1 Reply Last reply Reply Quote 2
                • mickym
                  mickym Most Active @Homoran last edited by mickym

                  @homoran Erstens ist das nur oberflächlich und ich habe meine Zahl auch noch in eine Zahl gewandelt. Also nicht Birnen mit halbfertigen Äpfeln vergleichen. Und wenn Du 2-stellige Minus Gradzahlen hast bist Du mit Deinen fixen Positionen ganz schnell aufgeschmissen.

                  Und paar Zeilen ist ja bei diesem Puzzle schon wieder untertrieben. 😉
                  Und ein JSONATA Ausdruck mit ein paar Funktionen ist ja wohl übersichtlicher, also dieses Puzzle. 😁 - Alleine dass es bis heute noch kein SUCHEN - ERSETZEN Puzzle gibt, ist in meinen Augen eine Katastrophe für Puzzle-Freunde.

                  Nur Text rauslesen (wie mit dem halbfertigen Apfel und fixen Aufbau) und ohne fixe Positionen zu arbeiten, reduziert sich der JSONATA Ausdruck auf

                  ($ ~> /-?\d+,\d/).match
                  

                  kürzer geht es wohl nicht.

                  Ich bin sicher kein Puzzleprofi - aber hab mir das nun schon lange genug angesehen, um zu wissen, dass für solche Aufgaben diese Teilchen nur umständlich sind.

                  Homoran 1 Reply Last reply Reply Quote 0
                  • Homoran
                    Homoran Global Moderator Administrators @mickym last edited by Homoran

                    @mickym sagte in Wert aus Satz auslesen:

                    bist Du mit Deinen fixen Positionen ganz schnell aufgeschmissen.

                    fix ist nur das Ende, und das bleibt Grad

                    @mickym sagte in Wert aus Satz auslesen:

                    Und ein JSONATA Ausdruck mit ein paar Funktionen ist ja wohl übersichtlicher, also dieses Puzzle.

                    der geht mit puzzle auch, wie du ja zeigst.
                    Aber nur weil er optisch kürzer ist, ist er noch lange nicht einfacher zu erstellen.

                    ich will ja auch nicht streiten, aber durch ständiges wiederholen wird es immer noch nicht fix

                    und das es "soooo viele Zeilen" hat liegt daran, dass ich Alexa subsituieren muss und noch zwei debugs aus der "Entwicklung" drin habe sonst wären es 2 (zwei) Zeilen

                    mickym 1 Reply Last reply Reply Quote 0
                    • mickym
                      mickym Most Active @Homoran last edited by mickym

                      @homoran Es geht mir auch nicht, um das Streiten - aber ich weise halt auf Schwachstellen hin - und wie gesagt - ich bin davon ausgegangen, dass er einen Zahlenwert und keinen Text extrahieren will.

                      Im Übrigen dachte ich eigentlich, dass es OK ist, wenn ich meine Meinung trotzdem über diese Puzzleteilchen kund tue und Alternativen wie NodeRed oder JSONATA mal gelegentlich einfließen lasse. - Ich dachte gestern war jemand da auch ganz froh drüber. (s. https://forum.iobroker.net/topic/71629/gelöst-blockly-json-mit-regex-aus-variable-auslesen)

                      Man muss es ja nicht nutzen. Nur wenn man verschiedene Lösungen einander gegenüberstellt, dann sollten sie auch das Gleiche leisten.

                      Und hier in dem Thread kann sich der Threadersteller ja entscheiden. Und wenn Du mich zitierst, dass die Stringverarbeitung ein Katastrophe ist,

                      JA: weil es nicht mal eine Suchen und Ersetzen Funktion gibt usw. (das haben meines Erachtens auch andere schon erkannt und ich dachte, dass soll in Kürze erweitert werden) und es auch keine Funktion für reguläre Ausdrücke gibt (zum Glück in JSONATA aber schon).
                      Auch das Verketten von Textteilen - mag ja für den Anfänger schön sein, aber alleine was das Platz auf dem Bildschirm braucht, ist schon atemberaubend. 😉 . Konstruiere mal einen JSON aus 2 Variablen - da wird Dir schwindelig. 🙄
                      Und reguläre Ausdrücke, man mag sie mögen oder nicht, aber wenn man es einigermaßen verstanden hat (und ich hab sie auch nicht bis ins Letzte verstanden) - dann sind die einfach für solche Aufgaben ideal.

                      Und zuletzt: Wenn ihr nicht wollt, dass man die JSONATA Bibliothek beim Puzzeln nutzen soll, dann nehmt es halt wieder aus dem Javascript Adapter raus. - Ich dachte, dass sich die Entwickler schon was dabei gedacht haben. Man kann auch regulären Javascript Code in die Puzzleteilchen einbinden, wenn es zu komplex wird, nur das ist natürlich was anderes (ist ja keine Bibliothek).

                      paul53 Homoran 2 Replies Last reply Reply Quote 1
                      • OliverIO
                        OliverIO @MBM1982 0 last edited by

                        @mbm1982-0

                        Kommt von Alexa da wirklich ein kompletter Satz?
                        Ich dachte immer man erhält immer nur etwas was Alexa denkt erkannt zu haben in einem
                        Geräte/Dienste orientierten Schema.

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

                          @mickym sagte: weil es nicht mal eine Suchen und Ersetzen Funktion gibt

                          Gibt es jetzt (JS 7.5.0).

                          Blockly_temp.JPG

                          mickym 1 Reply Last reply Reply Quote 0
                          • mickym
                            mickym Most Active @paul53 last edited by mickym

                            @paul53 Ja danke - hatte so was gelesen. 👍 👍 👍

                            Als nächstes wie gesagt, wäre so ein Puzzleteil mit dem man Objekte/JSON erstellen kann, als Puzzler auf der Wunschliste.

                            1 Reply Last reply Reply Quote 0
                            • M
                              MBM1982 0 last edited by

                              @oliverio

                              Wie gesagt, ich bekomme keinen Datenpunkt im Alexa-Adapter im IoBroker. Ich kann das nur über den summary-datenpunkt machen. Bzw. über den answertext. Wenn ich Alexa frage, "wie warm ist ...?", kommt immer ein ganzer Satz als Antwort. Selbst wenn ich ihr sage, "Nenne mir den Wert von Temperatur ..."

                              1 Reply Last reply Reply Quote 0
                              • Homoran
                                Homoran Global Moderator Administrators @mickym last edited by Homoran

                                @mickym sagte in Wert aus Satz auslesen:

                                Und zuletzt: Wenn ihr nicht wollt, dass man die JSONATA Bibliothek beim Puzzeln nutzen soll, dann nehmt es halt wieder aus dem Javascript Adapter raus. - Ich dachte, dass sich die Entwickler schon was dabei gedacht haben. Man kann auch regulären Javascript Code in die Puzzleteilchen einbinden, wenn es zu komplex wird, nur das ist natürlich was anderes (ist ja keine Bibliothek).

                                nein!
                                ich wollte nur darauf hinweisen dass JSONATA eine weitere "Programmiersprache" ist, die man dann begerrschen muss um es zu nutzen.
                                Das selbe Problem hatte ich als ich 2014/15 mit node-red begonnen hatte und daran gescheitert bin, dass es damals deutlich weniger nodes gab, als heute und man sehr viel über function nodes abwickeln musste, was wiederum plain js Kenntnisse erforderte, die ich nicht besitze.

                                Blockly ist ja vornehmlich für Logik-Einsteiger gedacht, auch wenn es da inzwischen Expertenbausteine gibt.
                                Hier hatte ich mal angeregt diese zu kennzeichnen oder/und nur im Expertenmodus anzuzeigen.

                                Der JSONATA Block gehört da dann vielleicht auch zu.

                                mickym 1 Reply Last reply Reply Quote 0
                                • mickym
                                  mickym Most Active @Homoran last edited by mickym

                                  @homoran sagte in Wert aus Satz auslesen:

                                  Blockly ist ja vornehmlich für Logik-Einsteiger gedacht, auch wenn es da inzwischen Expertenbausteine gibt.
                                  Hier hatte ich mal angeregt diese zu kennzeichnen oder/und nur im Expertenmodus anzuzeigen.

                                  Warum das denn? - Das ist doch schon wieder ein Hürde. Anstelle die Leute zu ermutigen, diese Bibliothek auszuprobieren, sagt man ihnen, dass ist nichts für Dich, sondern nur was für Experten?

                                  Es ist doch keiner gezwungen diese Teile als Einsteiger zu nutzen - man sollte aber sie auch nicht um Teufel komm raus vermeiden, nur weil jemand nichts Neues lernen will oder es kompliziert erscheint. Dachte ich am Anfang auch - heute finde ich diese Bibliothek genial. Ich finde eben eher, man sollte auf die Möglichkeiten damit eher hinweisen, als sie zu vermeiden.

                                  Die meisten Anwender wissen eh nicht, dass es JSONATA beim Puzzeln gibt, dann muss man es nicht auch noch verstecken.

                                  Der EINZIGE Grund Dinge im Expertenmodus zu verstecken ist in meinen Augen, wenn man damit Dinge anstellen kann, die das System insgesamt negativ beeinflussen können.

                                  1 Reply Last reply Reply Quote 0
                                  • M
                                    MBM1982 0 last edited by MBM1982 0

                                    @mickym @OliverIO @paul53

                                    Viele Dank für eure Hilfe! Ich wollte hier keinen Streit entfachen 😇
                                    Die Sache mit JSONATA werde ich mir mal in Ruhe anschauen. Das Gesuche im Text funktioniert ja solange, bis Alexa ihre Ansage ändert 😬

                                    Homoran mickym 2 Replies Last reply Reply Quote 0
                                    • Homoran
                                      Homoran Global Moderator Administrators @MBM1982 0 last edited by

                                      @mbm1982-0 sagte in Wert aus Satz auslesen:

                                      bis Alexa ihre Ansage ändert

                                      ich habe diese Dame nicht im Haus!
                                      was kommt denn dann?
                                      bitte mal echte Inhalte des DP in code-tags posten.

                                      wenn so etwas allgemeingültig funktionieren soll, muss man auch alle Eventualitäten kennen

                                      M 1 Reply Last reply Reply Quote 0
                                      • mickym
                                        mickym Most Active @MBM1982 0 last edited by

                                        @mbm1982-0 sagte in Wert aus Satz auslesen:

                                        @mickym @OliverIO @paul53

                                        Viele Dank für eure Hilfe! Ich wollte hier keine Streit entfachen 😇
                                        Die Sache mit JSONATA werde ich mir mal in Ruhe anschauen. Das Gesuche im Text funktioniert ja solange, bis Alexa ihre Ansage ändert 😬

                                        Keine Sorge - @Homoran kennt meine Meinung zu diesen Themen ausführlich und führen gerne einen gepflegten Disput, wenn sich der andere mit gegenteiliger Meinung zu sehr provoziert fühlt. Solche Sätze, dass puzzeln bei diesem oder jenem nicht unbedingt das Gelbe vom Ei sind, provozieren manchmal, auch wenn sie dann später indirekt mit solchen Aussagen, wie

                                        ist ja nur Logik für Einsteiger

                                        wieder etwas entschärft werden und man quasi eingestehen muss, dass manche vermeintlich einfachen Aufgaben, sich doch als schwieriger entpuppen. 😁

                                        Homoran 1 Reply Last reply Reply Quote 1
                                        • M
                                          MBM1982 0 @Homoran last edited by

                                          @Homoran

                                          Der Datenpunkt ist wie folgt aufgebaut:

                                          {
                                            "common": {
                                              "role": "text",
                                              "write": false,
                                              "type": "string",
                                              "read": true,
                                              "name": "answerText"
                                            },
                                            "type": "state",
                                            "native": {},
                                            "from": "system.adapter.alexa2.0",
                                            "user": "system.user.admin",
                                            "ts": 043717448,
                                            "_id": "alexa2.0.History.answerText",
                                            "acl": {
                                              "object": 1636,
                                              "state": 1636,
                                              "owner": "system.user.admin",
                                              "ownerGroup": "system.group.administrator"
                                            }
                                          }
                                          

                                          Der Text im Datenpunkt ist bei der Anfrage nach der Pooltemperatur:

                                          Die Temperatur von Pool ist 3,1 Grad.
                                          

                                          Die Anmerkung, ob sich der Antworttext ändert zielt eher auf die Launen der Programmierer hin. Da gibt es ja eine Menge variablen. Egal wie ich sie nach der Temperatur frage, kommt momentan immer der obige Satz.

                                          Homoran OliverIO 2 Replies Last reply Reply Quote 0
                                          • Homoran
                                            Homoran Global Moderator Administrators @mickym last edited by

                                            @mickym Einen hab ich noch 😀

                                            Wenn man mit Blockly die Extraktion von wasauchimmer aus woherauchimmer in "umständlichen" Einzelschritten erledigt, kernt man aber auchvdas strukturierte Denken um diesen Extraktionsvorgang.

                                            Das wiederum hilft um JSONATA und RegEx leichter verstehen zu können.

                                            mickym 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

                                            825
                                            Online

                                            32.0k
                                            Users

                                            80.5k
                                            Topics

                                            1.3m
                                            Posts

                                            5
                                            24
                                            690
                                            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