Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Einsteigerfragen
    4. InfluxDB auslesen (Enpal)

    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

    InfluxDB auslesen (Enpal)

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

      das github ding oben hat doch eine Lokale IP Adresse, also muss doch irgendwas verbaut sein, was die Daten speichert. Es gibt ja auch diese Victron Dinger, die quasi ein Raspi mit Victron BS sind. Haben die dir irgendwas smartes noch verbaut ?

      1 Reply Last reply Reply Quote 0
      • Marc Berg
        Marc Berg Most Active @ktsalti last edited by

        @ktsalti sagte in InfluxDB auslesen (Enpal):

        Welche Möglichkeit gibt es eine "fremde" InfluxDB anzuzapfen um die Daten in iobroker zu verwenden?

        Ich habe den Link nur überflogen, ist es so, dass du im Moment die Daten mit NodeRed von der Website ausliest und das jetzt durch eine lokale Lösung ersetzen möchtest? Läuft die Influxdb lokal?
        Wenn du sowieso schon Node Red im Einsatz hast, könntest du die Influx-Nodes verwenden, um die DB abzufragen und die Werte nach ioBroker zu schieben.
        Nachteil der Lösung wird aber bleiben, dass du die Werte nicht in Echtzeit siehst, sondern in regelmäßigen Abständen abfragst. Ich könnte mir vorstellen, dass da keine zu kurzen Intervalle zulässig sind.

        1 Reply Last reply Reply Quote 0
        • K
          ktsalti @berndsolar13 last edited by

          Hi,

          @berndsolar13
          Bezüglich Enpal - der Preis war im Mittefeld und mittlerweile biete Sie die Anlagen als "Kauf auf raten" anstatt der Miete an. Das war für uns schon sehr attraktiv. Außerdem war die Anlage in 7 Wochen auf dem Dach und im Netz.

          Der Wechselrichter ist im Netzwerk und eine eine Stromzange wurde auch verbaut. Diese Daten sehe ich auch über Enpal-App 😕 oder auch die Lokale Website welche ich aktuell über NodeRed abfrage.

          @Marc-Berg
          Ja, die Influxdb läuft lokal in meinen Netzwerk auf der "Enpal-Box". Node Red habe ich auch erst seit 14 Tagen im Einsatz und fuchse mich langsam rein. Danke für den Hinweis mit den Influx-Nodes. Ich werde mich mal in der Richtung einlesen
          Cool wäre natürlich ein fertiger Adapter 🙂

          Viele Grüße
          Marcus

          Marc Berg B 2 Replies Last reply Reply Quote 0
          • Marc Berg
            Marc Berg Most Active @ktsalti last edited by Marc Berg

            @ktsalti sagte in InfluxDB auslesen (Enpal):

            Danke für den Hinweis mit den Influx-Nodes. Ich werde mich mal in der Richtung einlesen

            Im einfachsten Fall reicht so ein Mini-Flow für einen Wert.

            ce2f273f-9592-4350-827b-62e8bec2b4cd-grafik.png

            [
                {
                    "id": "218054e9c754e634",
                    "type": "influxdb in",
                    "z": "b5b89fec99d9c702",
                    "influxdb": "4d3e21e6d3a637e2",
                    "name": "Abfrage",
                    "query": "from(bucket: \"iobroker\")\n  |> range(start: -1d)\n  |> filter(fn: (r) => r[\"_measurement\"] == \"meinMeasurement\")\n  |> filter(fn: (r) => r[\"_field\"] == \"value\")\n  |> last()",
                    "rawOutput": false,
                    "precision": "",
                    "retentionPolicy": "",
                    "org": "home",
                    "x": 280,
                    "y": 200,
                    "wires": [
                        [
                            "fe6e269f2728a0d2"
                        ]
                    ]
                },
                {
                    "id": "a73071c713e247d8",
                    "type": "inject",
                    "z": "b5b89fec99d9c702",
                    "name": "start ->",
                    "props": [
                        {
                            "p": "payload"
                        },
                        {
                            "p": "topic",
                            "vt": "str"
                        }
                    ],
                    "repeat": "",
                    "crontab": "",
                    "once": false,
                    "onceDelay": 0.1,
                    "topic": "",
                    "payload": "",
                    "payloadType": "date",
                    "x": 150,
                    "y": 200,
                    "wires": [
                        [
                            "218054e9c754e634"
                        ]
                    ]
                },
                {
                    "id": "df157695c51645d4",
                    "type": "ioBroker out",
                    "z": "b5b89fec99d9c702",
                    "name": "-> to ioB",
                    "topic": "0_userdata.0.example_state",
                    "ack": "true",
                    "autoCreate": "false",
                    "stateName": "",
                    "role": "",
                    "payloadType": "",
                    "readonly": "",
                    "stateUnit": "",
                    "stateMin": "",
                    "stateMax": "",
                    "x": 620,
                    "y": 200,
                    "wires": []
                },
                {
                    "id": "fe6e269f2728a0d2",
                    "type": "change",
                    "z": "b5b89fec99d9c702",
                    "name": "Value extrahieren",
                    "rules": [
                        {
                            "t": "set",
                            "p": "payload",
                            "pt": "msg",
                            "to": "payload._value",
                            "tot": "jsonata"
                        }
                    ],
                    "action": "",
                    "property": "",
                    "from": "",
                    "to": "",
                    "reg": false,
                    "x": 450,
                    "y": 200,
                    "wires": [
                        [
                            "df157695c51645d4"
                        ]
                    ]
                },
                {
                    "id": "4d3e21e6d3a637e2",
                    "type": "influxdb",
                    "hostname": "127.0.0.1",
                    "port": "8086",
                    "protocol": "http",
                    "database": "database",
                    "name": "influx2",
                    "usetls": false,
                    "tls": "",
                    "influxdbVersion": "2.0",
                    "url": "http://influxdb2:8086",
                    "rejectUnauthorized": false
                }
            ]
            

            Wenn es mehr Werte werden, könnte man diesen Duplizieren oder alternativ mit einer globaleren Abfrage und ein wenig Aufbereitungslogik arbeiten.

            Cool wäre natürlich ein fertiger Adapter

            Den wirst du programmieren müssen ...

            K 2 Replies Last reply Reply Quote 0
            • B
              berndsolar13 @ktsalti last edited by berndsolar13

              @ktsalti sagte in InfluxDB auslesen (Enpal):

              Der Wechselrichter ist im Netzwerk und eine eine Stromzange wurde auch verbaut.

              wenn du den Wechselrichter kennst, brauchst ja nur drauf schauen, und deren IP Adresse hast, siehst du ja in der Fritzbox, dann hast du doch "normal" alles was du brauchst.

              Jetzt musst du nur noch schauen, ob es dafür einen Adapter gibt, oder eine andere Lösung.
              Als erstes würde ich die IP Adresse des Wechselrichters aufrufen.
              Falls Enpal das Standard Passwort nicht geändert hat, solltest du so lokal die Daten abfragen können. Denn irgendwie kommen die ja von deinem Gerät auch zum Enpal Server.

              Also Wechselrichter + IP raus finden, und aufrufen, und dann nach einer Möglichkeit suchen, die Daten in den Iobroker zu bekommen. Lokal ist immer besser, wie der Umweg über die Cloud..

              1 Reply Last reply Reply Quote 0
              • K
                ktsalti @Marc Berg last edited by

                @marc-berg

                Vielen Dank!
                Ich werde es so probieren und wenn alles auch klappt den Eintrag duplizieren. So ist es ja auch bei der aktuellen Abfrage der internen Website. Find es halt nur besser, wenn ich die DB abfrage anstatt eine Website auszulesen. Brauch dafür nur mal ein paar ruhige Stunden ohne Frau im Haus.

                @berndsolar13
                Die DB ist lokal im Netzwerk und ich gehe nicht über die Cloud. Da ich in der DB noch mehr Daten habe (Akku, Wallbox, Wechselrichter, Stromverbrauch) möchte ich gar nicht weiter versuchen direkt auf die Wallbox zu gehen. Außerdem hat Enpal auch das Passwort geändert 😑
                Trotzdem Danke für die Idee - manchmal sieht man ja den Wald vor lauter Bäumen nicht 😉

                1 Reply Last reply Reply Quote 0
                • K
                  ktsalti @Marc Berg last edited by

                  @marc-berg

                  Vielen Dank nochmal - hat ne ganze Weile gedauert eh ich dahinter gestiegen bin, aber es hat jetzt geklappt!
                  Ich habe die ersten 2x Werte aus der influxdb in iobroker und der Rest ist nurnoch Fleißarbeit. Ich muss nur mal sehen, welche Werte ich wirklich brauche, bzw. wie sie in der DB heißen 🙂

                  C 1 Reply Last reply Reply Quote 0
                  • C
                    Conector777 @ktsalti last edited by

                    @ktsalti hey erstmal ich bin auf deinen Post gestoßen und bin auch vor dem selben Problem, kannst du mir evtl. Sagen wie man die influxdb anspricht über ioBroker?

                    Über eine kleine Hilfestellung wäre ich echt dankbar 😉

                    K K 2 Replies Last reply Reply Quote 0
                    • K
                      ktsalti @Conector777 last edited by

                      @conector777

                      Ich habe mein Node-Red-Script einmal exportiert. Schau mal ob du damit klar kommst.
                      Bin da selber kein Profi - aber es funktioniert 🙂

                      flows (2).json

                      1 Reply Last reply Reply Quote 0
                      • C
                        Conector777 last edited by

                        Vielen Dank

                        Werde wahrscheinlich auch die Erweiterung für node installieren müssen oder? Da er bei mir den influx Befehl nicht kennt🙈🙈

                        Aber ich denke ich komme klar damit ansonsten Frage ich noch ein paar Mal doof 🙈🙈

                        Vielen dank

                        K 1 Reply Last reply Reply Quote 0
                        • K
                          ktsalti @Conector777 last edited by

                          @conector777
                          Ja, ich glaub die haben ich damals auch installiert.
                          Wenn man das nur einmal macht und jetzt läuft es einfach so, vergisst man das es wieder 😁

                          1 Reply Last reply Reply Quote 0
                          • K
                            kdtcat @Conector777 last edited by

                            @conector777 Falls Du noch nicht weiter bist, hätte ich noch ein paar Tipps. Ich war jetzt erfolgreich beim Zugriff auf die Influxdb in der Enpal Box.
                            Als erstes habe ich den Influxdb Adapter installiert und für den Zugriff auf Enpal konfiguriert. Alle notwendigen Parameter findet man auf der Webseite Seiner Enpal Box.
                            Als nächstes habe ich ein Javascript mit Blockly gebastelt, um gezielt einzelne Werte zu holen und diese als Iobroker Objekt abzulegen(userdata.0). Dieses Script läuft z.B. alle 3 Minuten und schreibt immer den aktuellen Wert ins Objekt.

                            var result, test1, test2;
                            
                            
                            schedule("*/3 * * * *", async () => {
                              result = 'Anfang';
                              sendTo('influxdb.0', 'query', 'from(bucket: "solar")  |> range(start: -1m) |> filter(fn: (r) => r["_field"] == "Energy.Battery.Charge.Level")', async (result) => {
                                test1 = (await jsonataExpression(result,'*[0]._value '));
                              });
                              setStateDelayed('0_userdata.0.Enpal.BatteryLevel', Math.round(test1 * 100) / 100, true, parseInt(((0) || '').toString(), 10), false);
                              result = !''.length;
                              sendTo('influxdb.0', 'query', 'from(bucket: "solar")  |> range(start: -1m) |> filter(fn: (r) => r["_field"] == "Power.Consumption.Total")', async (result) => {
                                test2 = (await jsonataExpression(result,'*[0]._value '));
                              });
                              console.info("influxdb.0: " + "");
                              setStateDelayed('0_userdata.0.Enpal.PowerConsumptionTotal', test2, true, parseInt(((0) || '').toString(), 10), false);
                            });
                            
                            

                            Um jetzt noch eine anständige Historie zu erhalten, habe ich ein zweites Script gemacht, welches einen Trigger auf Wertänderung des Objekts setzt und bei Änderung das Ganze in eine beliebige Historien Anwendung übernimmt. In meinem Fall eine CCU.

                            on({ id: [].concat(['0_userdata.0.Enpal.BatteryLevel']), change: 'ne' }, async (obj) => {
                              let value = obj.state.val;
                              let oldValue = obj.oldState.val;
                              setStateDelayed('hm-rega.0.13211', getState('0_userdata.0.Enpal.BatteryLevel').val, false, parseInt(((0) || '').toString(), 10), false);
                            });
                            

                            Happy Coding.

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

                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            508
                            Online

                            31.9k
                            Users

                            80.2k
                            Topics

                            1.3m
                            Posts

                            5
                            14
                            3224
                            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