Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Einsteigerfragen
    4. Voraussetzungen Installation systeminfo Adapter

    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

    Voraussetzungen Installation systeminfo Adapter

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

      Hallo @wolfi913
      Ja das habe ich schon hinbekommen. Danke.
      Da ist das JSON zu sehen.

      Ich bin jetzt auf der Suche nach dem passen Puzzlestein der den "Debug Output" Baustein ablöst.
      Da scheint es ja auch schon fertige JSON-Konvertierungs-Logiken zu geben.

      W 1 Reply Last reply Reply Quote 0
      • W
        wolfi913 @hru last edited by wolfi913

        @hru
        Du könntest das JSON entweder direkt im Blockly zerlegen, [Edit:] würde mit der neuen Version des javascript-Adapters dann deutlich einfacher funktionieren. Da gibt's jetzt extra spezielle Blöcke. Mit der bei dir momentan installierten Version müsste es mit dem Block JSONata-Ausdruck bei den Konvertierungen aber auch klappen.
        Eine andere Variante wäre das JSON komplett in einen Datenpunkt zu schreiben und von dort die gewünschten Teile über einen Alias über die Lesekonvertierung weiterzuverwenden.
        Und damit das regelmäßig aktualisiert wird müsstest Du das ganze natürlich noch in einen Zeitplan-Trigger packen und dort einstellen wie oft das JSON geholt werden soll.

        hru haus-automatisierung 2 Replies Last reply Reply Quote 0
        • hru
          hru @wolfi913 last edited by

          @wolfi913
          Vielen Dank für Deine Hilfe.
          Da habe ich erstmal Futter;-)
          Ich melde mich, wenn ich Ergebnisse habe.
          Gute Nacht;-)

          W 1 Reply Last reply Reply Quote 0
          • W
            wolfi913 @hru last edited by

            @hru
            Kopier evtl. mal das JSON aus dem Log {...} und stell's mal in Codetags </> rein. Wenn der Aufbau des JSON klar ist kann Dir sicher jemand weiterhelfen wie der Aufbau ausschauen müsste, damit Du die Werte extrahieren kannst.

            hru 1 Reply Last reply Reply Quote 0
            • hru
              hru @wolfi913 last edited by

              @wolfi913
              Ich habe jetzt mal ein paar Werte rausgeholt
              d9f9dad8-f592-47d8-8b75-6b3ff6d93d02-image.png

              Diese Werte kommen jetzt im Debug raus.
              Wie schreibe ich die Werte weg?
              (Ziel soll letztendlich das schreiben in eine Influx DB sein)

              Das komplette JSON sieht so aus.

              {
              "device":"AC ELWA 2",
              "fwversion":"e0000901",
              "psversion":"ep105",
              "coversion":"ec103",
              "fsetup":0,
              "p1_s":240,
              "p1_v":"0000500",
              "p2_s":240,
              "p2_v":"0000901",
              "p_co_s":240,
              "p_co_v":"ec103",
              "p_ps_s":240,
              "p_ps_v":"ep105",
              "power_system":null,
              "screen_mode_flag":0,
              "power_elwa2":0,
              "power_solar":0,
              "power_grid":0,
              "power1_solar":0,
              "power1_grid":0,
              "power2_solar":0,
              "power2_grid":0,
              "power3_solar":0,
              "power3_grid":0,
              "rel1_out":0,
              "rel_selv":0,
              "temp1":481,
              "temp2":0,
              "boostactive":0,
              "legboostnext":"null",
              "date":"12.05.24",
              "loctime":"01:11:40",
              "unixtime":1715469100,
              "uptime":421,
              "ctrlstate":"Conn. to Adj.Modbus. P=3",
              "blockactive":0,
              "meter1_id":null,
              "meter1_ip":"null",
              "meter2_id":null,
              "meter2_ip":"null",
              "meter3_id":null,
              "meter3_ip":"null",
              "meter4_id":null,
              "meter4_ip":"null",
              "meter5_id":null,
              "meter5_ip":"null",
              "meter6_id":null,
              "meter6_ip":"null",
              "meter_ss":null,
              "meter_ssid":"null",
              "surplus":-3,
              "m0sum":-3,
              "m0l1":null,
              "m0l2":null,
              "m0l3":null,
              "m0bat":null,
              "m1sum":null,
              "m1l1":null,
              "m1l2":null,
              "m1l3":null,
              "m1devstate":null,
              "m2sum":null,
              "m2l1":null,
              "m2l2":null,
              "m2l3":null,
              "m2soc":null,
              "m2state":null,
              "m2devstate":null,
              "m3sum":null,
              "m3l1":null,
              "m3l2":null,
              "m3l3":null,
              "m3soc":null,
              "m3devstate":null,
              "m4sum":null,
              "m4l1":null,
              "m4l2":null,
              "m4l3":null,
              "m4devstate":null,
              "ecarstate":"null",
              "ecarboostctr":null,
              "mss2":"null",
              "mss3":"null",
              "mss4":"null",
              "mss5":"null",
              "mss6":"null",
              "mss7":"null",
              "mss8":"null",
              "mss9":"null",
              "mss10":"null",
              "mss11":"null",
              "volt_mains":227,
              "volt_aux":5,
              "freq":50032,
              "temp_ps":307,
              "fan_speed":0,
              "ps_state":0,
              "ctrl_errors":0,
              "warnings":0,
              "fwversionlatest":"e0000901",
              "coversionlatest":"ec103",
              "psversionlatest":"ep106",
              "upd_state":0,
              "ps_upd_state":1,
              "co_upd_state":0,
              "cur_eth_mode":0,
              "wifi_signal":0,
              "wifi_list":[{"ssid":"","signal":0},{"ssid":"","signal":0},{"ssid":"","signal":0},{"ssid":"","signal":0},{"ssid":"","signal":0},{"ssid":"","signal":0},{"ssid":"","signal":0},{"ssid":"","signal":0},{"ssid":"","signal":0},{"ssid":"","signal":0},{"ssid":"","signal":0},{"ssid":"","signal":0},{"ssid":"","signal":0},{"ssid":"","signal":0},{"ssid":"","signal":0},{"ssid":"","signal":0}],
              "cur_ip":"192.168.178.43",
              "cur_sn":"255.255.255.0",
              "cur_gw":"192.168.178.1",
              "cur_dns":"192.168.178.1",
              "cloudstate":4,
              "debug_ip":"0.0.0.0"
              }
              

              Ich werde aber nicht alle Keys/Values benötigen, denke ich.

              W 1 Reply Last reply Reply Quote 0
              • W
                wolfi913 @hru last edited by

                @hru
                So würde das Extrahieren z.B. gehen.
                Screenshot 2024-05-12 012001.png
                Liefert hier den Wert für p1_s zurück
                Screenshot 2024-05-12 012053.png
                Anstelle des debug output dann einfach in einen selbst erstellten Datenpunkt unter 0_userdata.0 speichern.
                Screenshot 2024-05-12 012507.png

                hru 2 Replies Last reply Reply Quote 0
                • hru
                  hru @wolfi913 last edited by

                  @wolfi913
                  Vielen Dank.
                  Ich werde das dann morgen mal versuchen.
                  Für heute soll es mal reichen;-)
                  Gute Nacht.

                  1 Reply Last reply Reply Quote 0
                  • haus-automatisierung
                    haus-automatisierung Developer Most Active @wolfi913 last edited by

                    @wolfi913 sagte in Voraussetzungen Installation systeminfo Adapter:

                    @hru
                    Du könntest das JSON entweder direkt im Blockly zerlegen, würde mit der neuen Version des javascript-Adapters dann deutlich einfacher funktionieren. Da gibt's jetzt extra spezielle Blöcke.

                    Die neuen Blöcke sind dafür da, um neue Objekte zu erstellen oder welche zu verändern. JSON parsen und Attribute extrahieren geht schon ewig mit Blockly.

                    W 1 Reply Last reply Reply Quote 0
                    • W
                      wolfi913 @haus-automatisierung last edited by

                      @haus-automatisierung sagte in Voraussetzungen Installation systeminfo Adapter:

                      Die neuen Blöcke sind dafür da, um neue Objekte zu erstellen oder welche zu verändern. JSON parsen und Attribute extrahieren geht schon ewig mit Blockly.

                      Sorry, stimmt natürlich👍 . Hab die fehlerhafte Passage im obigen Post kenntlich gemacht. War schon etwas spät und bin mit der vorherigen Erklärung wie @hru an das JSON kommt total an der Richtung verrutscht, was er damit machen will. 🙃

                      1 Reply Last reply Reply Quote 0
                      • hru
                        hru @wolfi913 last edited by

                        @wolfi913 said in Voraussetzungen Installation systeminfo Adapter:

                        @hru
                        So würde das Extrahieren z.B. gehen.
                        Screenshot 2024-05-12 012001.png
                        Liefert hier den Wert für p1_s zurück
                        Screenshot 2024-05-12 012053.png
                        Anstelle des debug output dann einfach in einen selbst erstellten Datenpunkt unter 0_userdata.0 speichern.
                        Screenshot 2024-05-12 012507.png

                        Hallo Wolfi,
                        kannst Du mir bitte nochmal helfen?
                        Ich bin auf der Suche nach einer Erklärung, welcher Unterpunkt bei der Erstellung eines Datenpunktes was bedeutet?
                        1c4f5ee1-1e8c-4291-9ade-18236a9e9417-image.png

                        Die ersten drei hören sich nach Datentypen für den Datenpunkt an.
                        Aber was bedeuten die anderen 4 (Zustand, Kanal, Gerät, Ordner)?
                        Ich bin in der Doku des ioBrokers am Suchen, finde aber die Stelle nicht.

                        Ich möchte ja mehrere Werte aus dem JSON auslesen.
                        Lege ich dann ein Gerät "AC_ELWA_2" an , um die einzelnen Werte zu "bündeln",
                        oder besser einen Kanal oder einen Ordner?

                        Mir fehlt noch etwas das Verständnis für die einzelnen Optionen.

                        Danke und Gruß

                        Hartmut

                        1 Reply Last reply Reply Quote 0
                        • hru
                          hru last edited by

                          Ich habe es jetzt so gemacht

                          Datenpunkte:
                          e9465978-647b-4ec5-be50-56b10b448893-image.png

                          Blockly-Script:
                          c7cac1ce-ad33-47cb-a8c1-32a6b5e05635-image.png

                          Diese Datenpunkte werden auch sauber beschrieben.

                          Kannst ja mal sagen, ob das so in Ordnung ist.

                          Danke und Gruß

                          Hartmut

                          W 1 Reply Last reply Reply Quote 0
                          • W
                            wolfi913 @hru last edited by wolfi913

                            @hru
                            Bin momentan leider unterwegs. Aber die Ordnerstruktur scheint schon zu passen. Evtl müsste aber noch was umgerechnet werden. Temp mit über 700 scheint doch etwas hoch. Wie hoch sollte der den eigentlich sein? Und über Unit könntest Du (ist aber nur ne optische Sache) in Datenpunkt z.B W oder °C noch ergänzen.

                            Edit (wieder zuhause): Schaut doch schon ganz gut aus. Die Werte sollten alle 5 Minuten neu geholt werden. Nur der Wert bei temp1 schaut mit 746 aus meiner Sicht komisch aus. Wie vorher schon geschrieben wäre mal ein Abgleich mit der Weboberfläche (die hat dieser Heizstab ja vermutlich) welcher Wert hier eigentlich ankommen soll. Denke es könnte sein, dass es 74,6 °C sind. Dann könntest Du über Berechnungen (hier dann :10) den Stand schon korrekt in den Datenpunkt schreiben.
                            Screenshot 2024-05-12 135840.png
                            Screenshot 2024-05-12 135928.png

                            1 Reply Last reply Reply Quote 0
                            • hru
                              hru last edited by hru

                              aktueller Stand (nur noch zwei Werte aus dem JSON, power_solar [Watt] und temp1/10 [°C])

                              77906449-3f75-42df-a576-a52c39d1dddc-image.png

                              Hier die Variablen (mit Einheiten):
                              2bb3a330-9b1b-46a3-9334-9c59970f043a-image.png

                              Die Werte sollen alle 5 Sekunden gelesen werden.

                              Gruß Hartmut

                              W 1 Reply Last reply Reply Quote 0
                              • W
                                wolfi913 @hru last edited by

                                @hru sagte in Voraussetzungen Installation systeminfo Adapter:

                                Die Werte sollen alle 5 Sekunden gelesen werden.

                                Müsste eigentlich so passen */5 * * * * * [hatte da ein *-chen überlesen, brauch dringend ne bessere Brille 😊 ]
                                Schaut doch sehr gut aus. 👍

                                1 Reply Last reply Reply Quote 0
                                • hru
                                  hru last edited by

                                  eine Frage habe ich doch noch:
                                  Das Auslesen des JSON soll alle 5 Sekunden passieren.
                                  Heißt das, dass ioBroker immer nur den Wert des letzten Auslesevorgangs hat?
                                  Oder werden die Werte irgendwie gepuffert?

                                  Hintergrund:
                                  ich lasse die Werte in eine Influx DB schreiben und überlege wie oft geschrieben werden muss.

                                  In den Einstellungen des Adapters bzw. der Instanz des Adapters wird das Schreibintervall festgelegt. Steht aktuell auf 60 Sekunden. Das macht aber nur Sinn, wenn ioBroker die alten Werte mindestens 60 Sekunden puffert.

                                  8b3befc4-bd5e-4237-a03d-4f7d8444c6ec-image.png

                                  Danke und Gruß

                                  Hartmut

                                  W 1 Reply Last reply Reply Quote 0
                                  • W
                                    wolfi913 @hru last edited by

                                    @hru
                                    Im Datenpunkt steht (meines Wissens nach) immer nur der aktuelle Wert. Der wird nirgends im iobroker irgendwo gepuffert. Für eine Historie der Änderungen hast Du ja verschiedene Varianten (z.B. history, influxdb, sql). Ich schätze aber die würden dann irgendwo über den Influx-Adapter gepuffert, kann ich Dir aber nicht 100% sicher beantworten. Bei mir stehen da z.B. 600 Sekunden. Entscheidend hierfür dürfte aber die Spalte links davon (und natürlich die Einstellungen im Datenpunkt selbst für die Speicherung in influxdb) sein, in der die Speichervorgänge zusammengefasst werden. Da steht bei Dir ja, wie bei mir auch, eine 0. Bei mir kommen alle Werte, trotz der eingestellten 600 Sekunden, sofort an.

                                    hru 1 Reply Last reply Reply Quote 0
                                    • hru
                                      hru last edited by

                                      Hallo,
                                      ich würde gerne den Zeitplan anpassen.
                                      Anstatt alle 5 Sekunden das JSON auszuwerten, würde ich gerne nur im Zeitraum Sonnenaufgang bis zum Sonnenuntergang alle 5 Sekunden das JSON auslesen.

                                      Ich habe bei den Triggern das hier gefunden:
                                      8b9d4eda-8f8b-4944-86b3-ce74c778135c-image.png
                                      Wie stelle ich dort das Ende des Zeitraums ein?

                                      Danke vorab für jeden Tipp.

                                      Gruß Hartmut

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

                                        @hru sagte in Voraussetzungen Installation systeminfo Adapter:

                                        Wie stelle ich dort das Ende des Zeitraums ein?

                                        gar nicht!
                                        Der gezeigte Astrotrigger triggert nur einmalig bei Sonnenaufgang

                                        @hru sagte in Voraussetzungen Installation systeminfo Adapter:

                                        würde ich gerne nur im Zeitraum Sonnenaufgang bis zum Sonnenuntergang alle 5 Sekunden das JSON auslesen.

                                        dann bleib beim Cron und prüfe anschließend
                                        falls aktuelle Zeit ist zwischen Sonnenaufgang und Sonnenuntergang

                                        hru 1 Reply Last reply Reply Quote 1
                                        • hru
                                          hru @Homoran last edited by

                                          @homoran said in Voraussetzungen Installation systeminfo Adapter:

                                          @hru sagte in Voraussetzungen Installation systeminfo Adapter:

                                          Wie stelle ich dort das Ende des Zeitraums ein?

                                          gar nicht!
                                          Der gezeigte Astrotrigger triggert nur einmalig bei Sonnenaufgang

                                          @hru sagte in Voraussetzungen Installation systeminfo Adapter:

                                          würde ich gerne nur im Zeitraum Sonnenaufgang bis zum Sonnenuntergang alle 5 Sekunden das JSON auslesen.

                                          dann bleib beim Cron und prüfe anschließend
                                          falls aktuelle Zeit ist zwischen Sonnenaufgang und Sonnenuntergang

                                          Hallo,

                                          super so habe ich es gemacht.
                                          1cf6e316-3a4d-4e6e-bc64-5130dde47b0f-image.png
                                          Vielen Dank.

                                          Gruß Hartmut

                                          1 Reply Last reply Reply Quote 0
                                          • hru
                                            hru @wolfi913 last edited by

                                            @wolfi913 Hallo Wolfi

                                            ja Du hast Recht, ich lese das JSON alle 5 Sekunden aus, schreibe aber per Influx-Adapter nur alle 60 Sekunden die Werte weg.
                                            Trotzdem landen die 5-Sekunden-Werte in der Influx-DB.
                                            D.h. der Influx-Adapter scheint das zu puffern.
                                            Nur zur Info.

                                            Gruß Hartmut

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            529
                                            Online

                                            31.9k
                                            Users

                                            80.3k
                                            Topics

                                            1.3m
                                            Posts

                                            8
                                            37
                                            1667
                                            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