Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. MQTT Datenpunkte automatisch erstellen

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    MQTT Datenpunkte automatisch erstellen

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

      Da ich über 100 Sensoren im Haus verbaut habe, suche ich eine allgemeine Lösung
      wie ich MQTT Datenpunkte automatisch anlegen kann.

      Abstrakt:
      Alle Sensoren melden automatisch die Zustände (Temperatur, Feuchtigkeit,
      Stromverbrauch, Energieproduktion, Wetterdaten, Türkontakte, Bewegungsmeldungen,
      Statusmeldungen) über eigene Services als MQTT Topic an einen MQTT Brocker.

      Diese sehe ich auch beim IOBroker wenn ich den MQTT Adapter installiere.

      Nun zu der Herausforderung:
      Ich müsste über 500 Datenpunkte von Hand über Script anlegen um die Werte
      der einzelen MQTT Payload Attribute der Sensoren zu erhalten. Daher suche
      ich eine Möglichkeit, dies über ein Script oder über einen Modul zu lösen.

      Kennt jemand einen Lösungansatz dafür ?

      ? Homoran 2 Replies Last reply Reply Quote 0
      • ?
        A Former User @zibous last edited by

        @zibous
        Nur Nachfrage; werden die Datenpunkte nicht Automatisch von mqtt.client angelegt ?
        Gut, das dauert manchmal wenn der Sensor nur alle Ewigkeiten mal das Topic sendet.

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

          @zibous sagte in MQTT Datenpunkte automatisch erstellen:

          an einen MQTT Brocker.

          Was ist das für ein Broker?
          published der die Werte auch wieder?

          Was nutzst du im ioBroker?
          MQTT-client oder MQTT?

          Wie konfiguriert.

          Die abonnierten topics müssten automatisch angelegt werden.

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

            @Blechsoldat

            Vielen Dank für die rasche Antwort.

            So wie ich das sehe nicht oder ich mache etwas falsch:

            Bildschirmfoto 2020-12-28 um 09.48.58.png

            Wert (Beispiel)

            "name":"Pokey_S06",
               "state":"ON",
               "unit_of_measurement":"W",
               "attributes":{
                  "etage":"0.EG",
                  "room":"Gang EG",
                  "name":"S06",
                  "id":"digcounter6",
                  "equipment":"Licht,Telefonanlage,WLAN",
                  "sensor":"IF64_DIGCOUNTER6",
                  "state":"ON",
                  "current":10,
                  "total":148.21,
                  "prevdat":148.2,
                  "time":"2020-12-28 09:45:03",
                  "currentkw":0.01
               },
               "current":10,
               "appversion":"1.1.1",
               "nodeversion":"v10.14.2",
            }
            

            Würde Datenpunkte für "current", "total"... brauchen

            1 Reply Last reply Reply Quote 0
            • Z
              zibous @Homoran last edited by

              @Homoran

              Danke,

              Ich möchte die Sensordaten anzeigen.

              Ich möchte MQTT-client (Auswertung) und MQTT (cmd für Gerätesteuerung)

              Die abonnierten topics müssten automatisch angelegt werden.
              

              Ja, aber ich müsste viele Scripte erstellen um an die Payload Attribute zu kommen oder mache ich da einen Denkfehler ?

              arteck Homoran 2 Replies Last reply Reply Quote 0
              • arteck
                arteck Developer Most Active @zibous last edited by

                @zibous wo kommen die werte her ?? von welchem Client ??

                wenn du tatwarhaftig nur die JSON zur verfügung hast dann musst du diese ausinander nehmen

                aber da reicht nur ein script.. der über de MQTT adapter geht und alle Datenpunkte die du brauchst sammelt und

                erstmal nur die Datenpunkte anlegt
                und dann füllt

                oder du baust das so dass wenn der Datenpunkt nicht exisitert dieser angelegt wird und direkt danach gefüllt wird

                Z 1 Reply Last reply Reply Quote 0
                • Z
                  zibous @arteck last edited by

                  @arteck
                  Danke, genau das suche ich, da ich neu bei ioBroker bin, suche ich dafür ein Beispiel wie ich das angehen könnte.

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

                    @zibous sagte in MQTT Datenpunkte automatisch erstellen:

                    aber ich müsste viele Scripte erstellen um an die Payload Attribute zu kommen oder mache ich da einen Denkfehler

                    wie @arteck schon schreibt liegt es an deinen topics.
                    Deine Clients senden sie anscheinend nicht einzeln, sondern als bulk in einem Json.

                    Enweder musst du deinen Clients beibringen, jeden Sensorwert als einzelnes topic zu senden, oder eben bei jedem publish eines Clients muss das JSON geparst und die Inhalte auf weitere States geschrieben werden.

                    Wie ist denn der Inhalt eines solchen Topics?

                    Z 1 Reply Last reply Reply Quote 0
                    • Z
                      zibous @Homoran last edited by

                      @Homoran said in MQTT Datenpunkte automatisch erstellen:

                      Deine Clients senden sie anscheinend nicht einzeln, sondern als bulk in einem Json.
                      Enweder musst du deinen Clients beibringen, jeden Sensorwert als einzelnes topic zu senden, oder eben bei jedem publish eines Clients muss das JSON geparst und die Inhalte auf weitere States geschrieben werden.
                      Wie ist denn der Inhalt eines solchen Topics?

                      Ja so ist es, es werden im Payload immer mehrere Attribute geliefert, bei über 100 Sensoren
                      kann ich nicht jeden Wert als Sensorwert liefern, das wären dann über 1000 MQTT Messages..
                      oder eine Vielzahl von Parser Scripts.

                      Ein weiteres Beispiel:

                      {
                         "name":"Wasserz\u00e4hler Haus",
                         "device":"watermeter",
                         "deviceid":"43430778",
                         "date":"2020-12-28",
                         "time":"13:29:57",
                         "total_m3":213.249,
                         "m3":{
                            "current":0.0,
                            "hour":0.011,
                            "day":0.145,
                            "month":7.208,
                            "year":95.519
                         },
                         "liter":{
                            "current":0.0,
                            "hour":11.0,
                            "day":145.0,
                            "month":7208.0,
                            "year":95519.0
                         },
                         "last_total":{
                            "hour":"13",
                            "hour_m3":213.238,
                            "day":"2020-12-28",
                            "day_m3":213.104,
                            "month":"2020-12",
                            "month_m3":206.041,
                            "year":"2020-01-01",
                            "year_m3":117.73
                         },
                         "alarm":"no_alarm",
                         "last_alarm":"no_alarm",
                         "periode":"2020-12-28",
                         "month":"2020-12",
                         "year":"2020",
                         "timestamp":"2020-12-28T13:29:57Z",
                         "last_update":"2020-12-28 14:29:57.086536",
                         "elapsed_time":"0:00:10",
                         "unit_of_measurement":"\u33a5",
                         "version":"1.0.0"
                      }
                      

                      Daher ist der Ansatz vom @arteck sicher der Beste um an alle Werte aller MQTT Meldungen zu kommen. Aber ich habe noch kein Beispiel oder Modul gefunden wie das geht.

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

                        @zibous sagte in MQTT Datenpunkte automatisch erstellen:

                        Aber ich habe noch kein Beispiel oder Modul gefunden wie das geht.

                        Frag dich mal, warum ich so ein topic sehen wollte!

                        @zibous sagte in MQTT Datenpunkte automatisch erstellen:

                        bei über 100 Sensoren
                        kann ich nicht jeden Wert als Sensorwert liefern, das wären dann über 1000 MQTT Messages.

                        Ja und?
                        Aber du brauchst über 1000 states 😂

                        😱
                        Das Json enthält ja noch mehrere Ebenen!
                        und der Name ist auch noch mit "unleserlichen" Zeichen.
                        "name":"Wasserz\u00e4hler Haus"

                        Da muss jemand anderes ran

                        P 1 Reply Last reply Reply Quote 0
                        • P
                          peterfido @Homoran last edited by peterfido

                          @Homoran Unicode e4 ist demnach ein ä. Seit ich Umlaute und Leerzeichen nicht mehr nutze, programmiert es sich leichter.

                          In deinem Beispiel würde das Teil bei mir WasserzaehlerHaus heißen. Manchmal trenne ich auch mit Unterstrich: Wasserzaehler_Haus. Der Unterstrich lässt sich dann z.b. per Script suchen.

                          Bei mir werden die Datenpunkte der MQTT Clienten (ESP...) automatisch angelegt.

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

                            @peterfido sagte in MQTT Datenpunkte automatisch erstellen:

                            Unicode e4 ist demnach ein ä.

                            Das weiß ich. Ich benutze auch keine Umlaute.

                            @peterfido sagte in MQTT Datenpunkte automatisch erstellen:

                            Bei mir werden die Datenpunkte der MQTT Clienten (ESP...) automatisch angelegt.

                            Bei mir auch!

                            auch beim TE! Aber der hat seine clients so programmiert , dass sie viele Werte In einem JSON liefern.

                            Dieses muss er jetzt zerpflücken .

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

                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            907
                            Online

                            31.8k
                            Users

                            80.0k
                            Topics

                            1.3m
                            Posts

                            javascript template
                            5
                            12
                            1797
                            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