Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Werte aus JSON Array in Datenpunkt übernehmen

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Werte aus JSON Array in Datenpunkt übernehmen

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

      Hallo zusammen!

      Das Thema wurde schon des Öfteren behandelt aber die Lösungen die ich finden konnte passen nicht auf mein Problem. Ich bekomme z.B. alle 10 Sekunden diese Werte geliefert:

      [{"datapoints":[[50.016175,"2025-01-04 16:04:04"],[50.01663,"2025-01-04 16:04:05"],[50.01737,"2025-01-04 16:04:06"],[50.018305,"2025-01-04 16:04:07"],[50.019495,"2025-01-04 16:04:08"],[50.02051,"2025-01-04 16:04:09"],[50.02156,"2025-01-04 16:04:10"],[50.02212,"2025-01-04 16:04:11"],[50.023085,"2025-01-04 16:04:12"],[50.023975,"2025-01-04 16:04:13"]],"target":"median_frequency"}]
      

      Diese Werte möchte ich in einen Datenpunkt umwandeln, der dann die einzelnen Werte auflistet wie in diesem Beispiel:

      modbushz.jpg

      Kann mir jemand bitte ein Tipp geben ob und wie ich das mit Blockly umsetzen kann?

      Ist die Umwandlung überhaupt sinnvoll oder sollte/kann man das auch direkt in Grafana visualisieren sofern das möglich ist? Das hatte ich auch versucht aber bin leider auch gescheitert.

      Schonmal vielen Dank für einen Denkanstoß und viele Grüße

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

        @chief42 sagte: Datenpunkt umwandeln, der dann die einzelnen Werte auflistet wie in diesem Beispiel:

        Also eine JSON-Liste für Vis? Dann versuche es mal so:

        Blockly_temp.JPG

        C 1 Reply Last reply Reply Quote 1
        • C
          Chief42 @paul53 last edited by

          @paul53, vielen Dank für die schnelle Rückmeldung! Als Ergebnis bekomme ich:

          ergebnis.JPG

          Das Ergebnis wird, wie Du geschrieben hast, in einer JSON-Liste dargestellt. Ich bräuchte das aber als einzelne Werte. Die einzelnen Werte müssten als Einzelwerte in den Datenpunkt geschrieben werden. Also pro Zeile ein Wert wobei die Uhrzeit aus der Liste übernommen werden müsste. D.h. als Timestamp die Uhrzeit und als Wert der Wert der Frequenz so als wenn es als einzelner Wert von einem Sensor kommen würde. Ich hoffe ich habe mich verständlich ausgedrückt. Das ist zumindest meine naive Vorstellung wie ich das umsetzen würde.

          Ziel ist es, die Freqenz aus dem JASON Array in Gafana mit Werten, die mir ein anderer Sensor liefert, zu vergleichen.

          Vermutlich führen auch andere Wege zum Ergebnis. Könnte man die JSON-Liste, so wie sie im Datenpunkt vorliegt, direkt mit Grafana in einem Diagramm darstellen? Wenn ja, hast Du ein Stichwort wo ich das nachlesen kann? Das würde ich dann versuchen umzusetzen. Wenn das ginge wäre das vermutlich auch etwas eleganter.

          paul53 2 Replies Last reply Reply Quote 0
          • paul53
            paul53 @Chief42 last edited by

            @chief42 sagte: mit Grafana in einem Diagramm darstellen?

            Mit Grafana kenne ich mich nicht aus.

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

              @paul53 Gibt es eine Möglichkeit das Array in einzelne Werte, so wie beschrieben, umzuwandeln?

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

                @chief42 sagte: als Timestamp die Uhrzeit

                In Blockly benötigt man dafür eine Javascript-Funktion:

                setState(id, {val: val, ts: ts, lc: ts, ack: true});
                

                Blockly_temp.JPG

                Ich habe aber keine Ahnung, ob die Historisierung den Timestamp übernimmt.

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

                  @paul53 Cool, die Werte werden jetzt in Einzelwerte aufgeteilt:

                  scriptlog.JPG

                  Die 10 Werte pro Datensatz "rasseln" auch in der Anzeige durch, das kann man sehen wie sie sich ändern

                  datenpunkt.JPG

                  aber im Verlauf werden die nicht aufgeführt:

                  db-verlauf.JPG

                  Scheinbar wird der Timestamp nicht übernommen. Könnte das am Format der Daten liegen (2025-01-05 15:42:38) die man erst noch umwandeln (5.1.20225 16:16:25.636) müsste?

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

                    @chief42 sagte. Könnte das am Format der Daten liegen (2025-01-05 15:42:38)

                    Das Format wird richtig in ms seit 1.1.1970 umgewandelt.

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

                      @paul53 Ja, die ms sind dabei, aber das Datum passt nicht.

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

                        @chief42 sagte: das Datum passt nicht.

                        ?? "5.1.2025 15:01:40.000" passt doch.
                        Mit diesem Format als Quelle kann Javascript nicht umgehen, jedoch mit "YYYY-MM-DD hh:mm:ss".

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

                          @paul53 Ich meinte, die Formatierung die vorliegt entspricht nicht der, die im Datenpunkt bei anderen Werten erscheint. Das war ja auch nur eine Vermutung von mir. Woran könnte es denn liegen das die Daten nicht übernommen werden?

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

                            @chief42 sagte in Werte aus JSON Array in Datenpunkt übernehmen:

                            die Formatierung die vorliegt entspricht nicht der, die im Datenpunkt bei anderen Werten erscheint

                            bist du sicher?

                            wenn du die Anzeige im Admin unter Objekte meinst, kann und wird es sein dass der Admin den Wert nur ander formatiert darstellt, aber auch in Unixtime speichert

                            Was genau meinst du?

                            C 1 Reply Last reply Reply Quote 0
                            • C
                              Chief42 @Homoran last edited by

                              @homoran Ich bin nicht so tief in dem Thema drin um beurteilen zu können wie die Daten intern abgespeichert werden. Wenn Du sagst, dass es nur anders dargestellt wird aber intern richtig übernommen wird, wird es stimmen. Das war nur eine Idee von mir woran es evtl. liegen könnte da die Anzeige im Objekt abweicht. Das kann man dann wohl als Grund dafür, dass es nicht funktioniert, ausschließen.

                              MartinP 1 Reply Last reply Reply Quote 0
                              • MartinP
                                MartinP @Chief42 last edited by

                                @chief42 Man kann in der Influxdb schon Einträge für in der Vergangenheit liegende Zeitpunkte nachträglich einfügen. Deshalb vermute ich eher, dass die Problematik im Influx Adapter liegt.
                                Entweder also am Influx Adapter vorbei direkt in die Datenbank schreiben, oder mit einem Zeitversatz leben, und die zehn Werte im Sekundentakt nacheinander in den Datenpunkt schreiben.

                                C 1 Reply Last reply Reply Quote 0
                                • C
                                  Chief42 @MartinP last edited by

                                  Schade das es hier keine Lösung gibt. Trotzdem Danke für die Tips und Hilfe!

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

                                    @chief42 sagte in Werte aus JSON Array in Datenpunkt übernehmen:

                                    Schade das es hier keine Lösung gibt. Trotzdem Danke für die Tips und Hilfe!

                                    Na die Lösung ist, wie @MartinP schreibt. Schreib selbst in Datenbank.

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

                                    Support us

                                    ioBroker
                                    Community Adapters
                                    Donate

                                    539
                                    Online

                                    31.6k
                                    Users

                                    79.6k
                                    Topics

                                    1.3m
                                    Posts

                                    5
                                    16
                                    497
                                    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