Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. ESPresence - MQTT - JSON? auswerten in Blockly

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.3k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.3k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.6k

ESPresence - MQTT - JSON? auswerten in Blockly

Scheduled Pinned Locked Moved Blockly
10 Posts 4 Posters 1.3k Views 3 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • panikP Offline
    panikP Offline
    panik
    wrote on last edited by panik
    #1

    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 :anguished:
    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?

    paul53P ? 2 Replies Last reply
    0
    • panikP 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 :anguished:
      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?

      paul53P Offline
      paul53P Offline
      paul53
      wrote on last edited by
      #2

      @panik sagte: Gundletgendes Problem das ich nicht sehe

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

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      panikP 1 Reply Last reply
      0
      • panikP 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 :anguished:
        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?

        ? Offline
        ? Offline
        A Former User
        wrote on last edited by
        #3

        @panik Moin Versuch es mal so:

        Screenshot 2022-09-24 at 16.01.22.png

        1 Reply Last reply
        0
        • paul53P paul53

          @panik sagte: Gundletgendes Problem das ich nicht sehe

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

          panikP Offline
          panikP Offline
          panik
          wrote on last edited by panik
          #4

          @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 :confused:

          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
          0
          • panikP 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 :confused:

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

            ? Offline
            ? Offline
            A Former User
            wrote on last edited by A Former User
            #5

            @panik auf welchen Datenpunkt triggerst du denn?

            panikP 1 Reply Last reply
            0
            • ? A Former User

              @panik auf welchen Datenpunkt triggerst du denn?

              panikP Offline
              panikP Offline
              panik
              wrote on last edited by
              #6

              @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 :blush:
              Screenshot 2022-09-24 at 16-15-30 javascript - IOBROKER.png
              Screenshot 2022-09-24 at 16-15-04 logs - IOBROKER.png

              paul53P 1 Reply Last reply
              0
              • panikP panik

                @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 :blush:
                Screenshot 2022-09-24 at 16-15-30 javascript - IOBROKER.png
                Screenshot 2022-09-24 at 16-15-04 logs - IOBROKER.png

                paul53P Offline
                paul53P Offline
                paul53
                wrote on last edited by paul53
                #7

                @panik
                Etwas einfacher:

                Bild_2022-09-24_164809324.png

                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                M 1 Reply Last reply
                0
                • paul53P paul53

                  @panik
                  Etwas einfacher:

                  Bild_2022-09-24_164809324.png

                  M Offline
                  M Offline
                  MP_Trixi
                  wrote on last edited by MP_Trixi
                  #8

                  @paul53
                  Hallo, ich hoffe es ist ok mich hier dranzuhängen :relaxed:
                  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?

                  paul53P 1 Reply Last reply
                  0
                  • M MP_Trixi

                    @paul53
                    Hallo, ich hoffe es ist ok mich hier dranzuhängen :relaxed:
                    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?

                    paul53P Offline
                    paul53P Offline
                    paul53
                    wrote on last edited by
                    #9

                    @mp_trixi sagte: Zurück bekomme ich folgendes:

                    Bild_2022-11-18_135659922.png

                    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                    M 1 Reply Last reply
                    0
                    • paul53P paul53

                      @mp_trixi sagte: Zurück bekomme ich folgendes:

                      Bild_2022-11-18_135659922.png

                      M Offline
                      M Offline
                      MP_Trixi
                      wrote on last edited by MP_Trixi
                      #10

                      @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
                      0
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      677

                      Online

                      32.5k

                      Users

                      81.7k

                      Topics

                      1.3m

                      Posts
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Home
                      • Recent
                      • Tags
                      • Unread 0
                      • Categories
                      • Unreplied
                      • Popular
                      • GitHub
                      • Docu
                      • Hilfe