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.
    • 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
                                  • Homoran
                                    Homoran Global Moderator Administrators @MBM1982 0 last edited by

                                    @mbm1982-0 sagte in Wert aus Satz auslesen:

                                    Der Datenpunkt ist wie folgt aufgebaut:

                                    ist im Moment nicht so wichtig! Danke!

                                    @mbm1982-0 sagte in Wert aus Satz auslesen:

                                    Die Anmerkung, ob sich der Antworttext ändert zielt eher auf die Launen der Programmierer hin. Da gibt es ja eine Menge variablen.

                                    Die wären interessant um die eben genannte Extraktion allgemeingültig formulieten zu können

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

                                      @homoran sagte in Wert aus Satz auslesen:

                                      @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.

                                      Ein Punkt für Dich 👍 - allerdings sollte man dann nicht bei den "umständlichen" Einzelschritten verharren, sondern einen Weg aufzeigen, wie man das Gelernte dann elegant umsetzt 😉 und ggf. zu schätzen weiß, wieviel Arbeit einem diese Bibliotheken und Funktionen einem Abnehmen. Du programmierst ja heute auch nicht mehr die Pixel einzeln auf dem Bildschirm, sondern verlässt Dich auf die Kompetenz und Arbeit der Programmierer der letzten Dekaden.

                                      Mal abgesehen davon, dass Du heute auch nicht mehr in Maschinensprache mit Registern programmierst, um zu verstehen, welche umständlichen Einzelschritte für eine Addition erforderlich sind.

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

                                        @homoran said in Wert aus Satz auslesen:

                                        Die wären interessant um die eben genannte Extraktion allgemeingültig formulieten zu können

                                        Also was da so verzapft wird... manchmal denk ich, dass ist alles noch in der Beta-Phase und es wird im laufenden Betrieb am Code gearbeitet. Spätestens wenn Amazon KI einführen wird, wird es noch schwieriger.

                                        Selbst wenn ich sie gezielt nach dem "Wert von Pooltemperatur" oder "Wert Pool" frage kommt der obige Satz.
                                        Wenn irgendwer denkt sie muss freundlicher klingen, dann werden da Parameter geändert und schon klinkt der Satz anders.

                                        Deshalb bin ich etwas genervt, dass der Skill die Daten nicht mehr weitergibt. Jetzt Frage ich sie 1x in der Stunde über mein Tablet, welches für die VIS an der Wand hängt, nach der Temperatur. Durch das Mute bekomme ich die Antwort zum Glück nicht mit. Zur Not werde ich das Gerät flashen, aber geht leider nicht OTA.

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

                                          @mbm1982-0 sagte in Wert aus Satz auslesen:

                                          Die Temperatur von Pool ist 3,1 Grad.

                                          Nur mal als weiterer Denkansatz.
                                          Wenn die Struktur des satzes immer gleich ist und an den gleichen Stellen der Ort und die Temperatur steht, könnte man das auch mit Regex lösen um die individuellen Parameter herauszufinden

                                          /Die Temperatur von (\w+) ist ([\d,\.]+) Grad/gm
                                          

                                          Ergebnis wäre dann einmal Pool und 3,1
                                          um aus 3,1 eine Zahl zu machen müsste man das Komma dann noch in Punkt umwandeln und in einen Datentyp Zahl konvertieren
                                          bei regex101 sieht das dann ungefähr so aus.
                                          https://regex101.com/r/iQwbzo/1

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

                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate
                                          FAQ Cloud / IOT
                                          HowTo: Node.js-Update
                                          HowTo: Backup/Restore
                                          Downloads
                                          BLOG

                                          734
                                          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