Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. ESPresence - MQTT - JSON? auswerten in Blockly

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    ESPresence - MQTT - JSON? auswerten in Blockly

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

      Moin,
      ich versuche nun seit geraumer Zeit etwas mit den Werten anzufangen die mir ESPresence via MQTT an IOBroker schickt. Ich habe die Lösungen und Videos zu der Möglichkeit gelesen den Zeitstempel auszulesen, aber ich hätte es gerne etwas eleganter und würde dabei noch was lernen.
      Wenn ich das bisher richtig verstanden habe ist das Format der Daten die ESPresence mir schickt JSON?!
      Sieht bei mir so aus:

      {
        "id": "7c2f80xxxxxx",
        "idType": 55,
        "rssi@1m": -71,
        "rssi": -50,
        "raw": 0.25,
        "distance": 0.35,
        "speed": -0.01,
        "mac": "7c2f80xxxxxx",
        "interval": 1205
      }
      

      Also könnte ich ja den Wert distance auswerten, der sich häufig ändert.
      Ich habe dann versucht die lösungen hier im Forum die JSON werte von einer URL abrufen für mich umzusetzen aber das klappt garnicht.
      Zuletzt habe ich mit einer Ausgabe im debug log geschaut ob und was überhaupt passiert
      Screenshot 2022-09-24 at 14-17-16 javascript - IOBROKER.png
      Aber da passiert nichts, also habe ich da ein Gundletgendes Problem das ich nicht sehe 😧
      Warum passiert da nichts, der wert ändert sich nahezu sekündlich aber anscheinend triggert das nicht?!?
      Frage wäre also warum nichts passiert und wie ich die Werte so auseinaander genommen bekomme das ich die distance dann in Blockly nutzen kann?

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

        @panik sagte: Gundletgendes Problem das ich nicht sehe

        An den Trigger muss die Datenpunkt-ID übergeben werden - nicht der Wert.

        panik 1 Reply Last reply Reply Quote 0
        • ?
          A Former User @panik last edited by

          @panik Moin Versuch es mal so:

          Screenshot 2022-09-24 at 16.01.22.png

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

            @paul53 Danke das hat mir schon mal bei dem grundlegendem Problem geholfen.
            Ich habe nun auch den Wert den ich brauche aus dem Datenstrom (keine ahnung ob das json ist oder nicht) extrahieren können.
            Habe ein paar sachen die ich hier gelesen hatte probiert, wenn ich den Json objekt konverter nutze werden aus den " zeichen, einfache ' mehr ist mir da nicht aufgefallen.
            Ich denke so kann ich weiter arbeiten, aber es interessiert mich ob ich die werte auch "eleganter" extrahieren und nutzen kann, irgendwie ist meine lösung in meinen augen ein Provisorium 🙂 aber ich kann halt mit RegEx oder javascrit direkt nichts anfangen 😕

            Screenshot 2022-09-24 at 16-00-15 javascript - IOBROKER.png
            Screenshot 2022-09-24 at 15-59-42 logs - IOBROKER.png

            @ciddi89
            Deine Lösung habe ich, glaube ich, zuvor etwas angepasst ausprobiert aber da funktionierte das mit den Triggern nicht, aber vieleicht bekomme ich das damit noch eleganter hin...

            ? 1 Reply Last reply Reply Quote 0
            • ?
              A Former User @panik last edited by A Former User

              @panik auf welchen Datenpunkt triggerst du denn?

              panik 1 Reply Last reply Reply Quote 0
              • panik
                panik @Guest last edited by

                @ciddi89 Ich hatte zu beginn mit dem Wert versucht zu triggern aber da passierte nichts, jetzt triggert die Datenpunkt-ID.
                Habe das Jetzt mal mit deiner lösung umgesetzt, auch das klappt nun wunderbar 😊
                Screenshot 2022-09-24 at 16-15-30 javascript - IOBROKER.png
                Screenshot 2022-09-24 at 16-15-04 logs - IOBROKER.png

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

                  @panik
                  Etwas einfacher:

                  Bild_2022-09-24_164809324.png

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

                    @paul53
                    Hallo, ich hoffe es ist ok mich hier dranzuhängen ☺
                    Ich hole mir im einem Blockly mit exec per curl ein JSON (denke mal das ist eins). Das funktioniert auch:
                    6be41ea3-efe7-4c02-9ff9-32ebcdc49a71-image.png
                    Das ist der vollständige curl den ich verwende:
                    curl --digest -u [USER]:[PASSWORD] -H 'accept: application/json' -H 'content-type: application/json' --compressed '[URL]'

                    Zurück bekomme ich folgendes:
                    {"U19639862":[{"yr":2022,"mon":11,"dom":17,"imp":1346040,"exp":60,"dow":"Thu"},{"yr":2022,"mon":11,"dom":17,"hr":1,"imp":4306560,"exp":180,"dow":"Thu"},{"yr":2022,"mon":11,"dom":17,"hr":2,"imp":2824320,"exp":300,"dow":"Thu"},{"yr":2022,"mon":11,"dom":17,"hr":3,"imp":2531580,"dow":"Thu"},{"yr":2022,"mon":11,"dom":17,"hr":4,"imp":2265540,"dow":"Thu"},{"yr":2022,"mon":11,"dom":17,"hr":5,"imp":5135640,"dow":"Thu"},{"yr":2022,"mon":11,"dom":17,"hr":6,"imp":6107100,"gep":11640,"dow":"Thu"},{"yr":2022,"mon":11,"dom":17,"hr":7,"imp":1843860,"exp":1700280,"gep":3014640,"dow":"Thu"},{"yr":2022,"mon":11,"dom":17,"hr":8,"imp":4287180,"exp":385369,"gep":1468327,"dow":"Thu"},{"yr":2022,"mon":11,"dom":17,"hr":9,"imp":1484160,"exp":290160,"gep":2062320,"dow":"Thu"},{"yr":2022,"mon":11,"dom":17,"hr":10,"imp":223440,"exp":2646660,"gep":4492560,"dow":"Thu"},{"yr":2022,"mon":11,"dom":17,"hr":11,"imp":478620,"exp":7434720,"gep":11400120,"dow":"Thu"},{"yr":2022,"mon":11,"dom":17,"hr":12,"imp":969780,"exp":4711920,"gep":8420280,"dow":"Thu"},{"yr":2022,"mon":11,"dom":17,"hr":13,"imp":4778700,"exp":403560,"gep":7861260,"gen":1680,"dow":"Thu"},{"yr":2022,"mon":11,"dom":17,"hr":14,"imp":854040,"exp":367080,"gep":2401500,"dow":"Thu"},{"yr":2022,"mon":11,"dom":17,"hr":15,"imp":5258700,"exp":60,"gep":138600,"gen":600,"dow":"Thu"},{"yr":2022,"mon":11,"dom":17,"hr":16,"imp":2661059,"dow":"Thu"},{"yr":2022,"mon":11,"dom":17,"hr":17,"imp":7027140,"dow":"Thu"},{"yr":2022,"mon":11,"dom":17,"hr":18,"imp":3920580,"dow":"Thu"},{"yr":2022,"mon":11,"dom":17,"hr":19,"imp":6025500,"dow":"Thu"},{"yr":2022,"mon":11,"dom":17,"hr":20,"imp":2147220,"dow":"Thu"},{"yr":2022,"mon":11,"dom":17,"hr":21,"imp":7385220,"dow":"Thu"},{"yr":2022,"mon":11,"dom":17,"hr":22,"imp":12272700,"h1b":4451100,"h2b":4522740,"h3b":5760,"dow":"Thu"},{"yr":2022,"mon":11,"dom":17,"hr":23,"imp":31262640,"h1b":12451800,"h2b":12618180,"h3b":14460,"dow":"Thu"}]}

                    Hier möchte ich nun alle h1b, h2b und h3b Werte aufaddieren und durch 3600000 teilen (hier nur in den Stunden 22 und 23 vorhanden). Aber ich schaffe es nicht die Felder anzusprechen. Hat mir jemand einen Tipp?

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

                      @mp_trixi sagte: Zurück bekomme ich folgendes:

                      Bild_2022-11-18_135659922.png

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

                        @paul53 Hammer - Danke! Und wie fix.
                        Habs jetzt so:
                        82e191ba-ef03-4d9e-8c7f-ad1a44fa3669-image.png
                        Das will ich täglich in einen Datenpunkt mit history schreiben. Dazu noch zwei Fragen:

                        • ich habe damit die Möglichkeit Werte der Vergangenheit zu ermitteln. Bekomme ich die auch in den Datenpunkt zu dem entsprechenden Datum?
                        • die Daten werden rückwirkend für den Tag zuvor ermittelt. Wie bekomme ich es hin, dass der Wert dann in den Datenpunk mit Datum-1 Tag geschrieben wird (ähnlich wie erste Frage)?
                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        967
                        Online

                        31.7k
                        Users

                        79.6k
                        Topics

                        1.3m
                        Posts

                        4
                        10
                        773
                        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