Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Übergabe von Werten von Smartmeter an cFos Wallbox

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    481

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.6k

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

Übergabe von Werten von Smartmeter an cFos Wallbox

Geplant Angeheftet Gesperrt Verschoben JavaScript
42 Beiträge 11 Kommentatoren 9.1k Aufrufe 11 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • B berlinerbolle

    @euro

    Danke für die schnelle Antwort! Die Werte an sich liegen mir alle vor (Smartmeter und Sungrow Wechselrichter, wird alles per ioBroker eingesammelt - also kein Lesekopf). Ich hatte schon überlegt, ob ich die Werte direkt per Modbus von der cFos auslesen lasse, aber Modbus am Wechselrichter scheint etwas Probleme damit zu haben, wenn mehrere Clients Werte abfragen. Deshalb wollte ich es erstmal mit ioBroker versuchen, da dort eh schon alles vorliegt.

    Welche Werte genau muss ich denn an die cFos liefern? Reicht im Endeffekt also die tatsächliche Leistung, die Stromstärken brauche ich nicht (mehr)? Mich irritiert etwas, dass durch das Script zwei Werte an den virtuellen Zähler der cFos geliefert werden sollen - "Arbeit" und "Leistung". Ich hatte gedacht, dass nur "Leistung" (in meinem Fall vorliegend in Watt) reicht, und ich das als "power_w" übergeben kann. Muss ich zwingend "import_vah" und "export_wh" auch übergeben? Falls ja, was müssen da für Werte rein? Im Beispiel in der cFos Doku scheinen da Fantasiewerte drin zu stehen. Wofür genau werden die genutzt? In der cFos Doku habe ich leider nichts gefunden, wo dokumentiert ist, welcher Wert was genau ist...

    Und ja, das Script wäre super, am besten mit kurzer Anmerkung welche Variable im HTTP request was macht und ob sie überhaupt fürs Überschussladen nötig ist. :)

    Danke Dir!

    Gruß
    Hendrik

    E Offline
    E Offline
    euro
    schrieb am zuletzt editiert von euro
    #23

    @berlinerbolle
    das war Stand Januar

    "wir haben in der Version 1.16 geändert, dass der Charging Manager den Wert für "power_w" unbedingt braucht. Der HTTP Input Zähler bekommt über den HTTP request aber nur power_va.
    Ich habe jetzt eingebaut, dass er power_w, falls fehlend, auf power_va setzt.
    Können Sie bis zur nächsten Version in dem HTTP request kurzerhand power_w setzen"

    nach Update auf version 1.16.6 gehen nun beide Varianten wieder
    Skript liefere ich dir per PN

    mfg
    STefan

    1 Antwort Letzte Antwort
    0
    • M Offline
      M Offline
      march
      schrieb am zuletzt editiert von
      #24

      Hello @euro

      Kannst du mir nochmal Hilfestellung geben? Ich hab einen Hichi IR Lesekopf der auch soweit funktioniert, ich bekomme aktuelle Last bzw. sehe was aktuell Eingespeist wird und versuche den nun als HTTP Input Zähler hinzuzufügen.
      Ich kann aber nirgendes eine IP Adresse eintragen - ist das normal? Bin auf Version 1.18

      cfos_httpinput.png

      Zwar hab ich auch IOBROKER im Einsatz, würde aber gerne den direkten Weg gehen.

      E 1 Antwort Letzte Antwort
      0
      • M march

        Hello @euro

        Kannst du mir nochmal Hilfestellung geben? Ich hab einen Hichi IR Lesekopf der auch soweit funktioniert, ich bekomme aktuelle Last bzw. sehe was aktuell Eingespeist wird und versuche den nun als HTTP Input Zähler hinzuzufügen.
        Ich kann aber nirgendes eine IP Adresse eintragen - ist das normal? Bin auf Version 1.18

        cfos_httpinput.png

        Zwar hab ich auch IOBROKER im Einsatz, würde aber gerne den direkten Weg gehen.

        E Offline
        E Offline
        euro
        schrieb am zuletzt editiert von
        #25

        @march
        Hi und Sorry, hatte die Frage übersehen

        du musst dir hier bei cfos die Vorlagendatei für den Tasmota
        https://www.cfos-emobility.de/files/meter-definitions/tasmota_smartmeter.json

        herunterladen und an deine Umgebung anpassen, bei mir musste ich den Namen anpassen
        im ersten cfos Link ist die Beschreibung, musste auch jeden Satz 2 mal lesen um zu verstehen was alles zu tun ist
        http://ip_lesekopf/cm?cmnd=status%2010
        hiermit bekommst du den Output deines Zählers, mit dem Output passt du dann die Vorlagendatei an

        gehst unter Konfiuration und lädst dort deine angepasste Vorlagendatei als Zählerdefinition hoch
        anschliessend in Screenshot von dir dann den neuen Zähler (statt HTTP Input) auswählen, dann kannst du dort die IP hinterlegen, sieht bei mir so aus (Zählername kannst du in der Vorlage anapassen)

        db312e2a-46b0-45ee-b2bc-0f3f08f0c11a-image.png

        wenn es nicht klappt, am besten mal den output deines Zählers hier posten
        http://ip_lesekopf/cm?cmnd=status%2010

        mfg
        STefan

        P 1 Antwort Letzte Antwort
        0
        • E euro

          @march
          Hi und Sorry, hatte die Frage übersehen

          du musst dir hier bei cfos die Vorlagendatei für den Tasmota
          https://www.cfos-emobility.de/files/meter-definitions/tasmota_smartmeter.json

          herunterladen und an deine Umgebung anpassen, bei mir musste ich den Namen anpassen
          im ersten cfos Link ist die Beschreibung, musste auch jeden Satz 2 mal lesen um zu verstehen was alles zu tun ist
          http://ip_lesekopf/cm?cmnd=status%2010
          hiermit bekommst du den Output deines Zählers, mit dem Output passt du dann die Vorlagendatei an

          gehst unter Konfiuration und lädst dort deine angepasste Vorlagendatei als Zählerdefinition hoch
          anschliessend in Screenshot von dir dann den neuen Zähler (statt HTTP Input) auswählen, dann kannst du dort die IP hinterlegen, sieht bei mir so aus (Zählername kannst du in der Vorlage anapassen)

          db312e2a-46b0-45ee-b2bc-0f3f08f0c11a-image.png

          wenn es nicht klappt, am besten mal den output deines Zählers hier posten
          http://ip_lesekopf/cm?cmnd=status%2010

          mfg
          STefan

          P Offline
          P Offline
          ple
          schrieb am zuletzt editiert von
          #26

          @euro sagte in Übergabe von Werten von Smartmeter an cFos Wallbox:

          os Link ist die Beschreibung, musste auch jeden Satz 2 mal lesen um zu verstehen was alles zu tun ist
          http://ip_lesekopf/cm?cmnd=status%2010
          hiermit bekommst du den Output deines Zählers, mit dem Output passt du dann die Vorlagendatei an
          gehst unter Konfiuration und lädst dort deine angepa

          Du scheinst dich ja gut auszukennen mit der Cfos. Ich habe meine heute bestellt, scheint ja die beste zu sein, die es auf dem Markt gibt. Meine Mennekes ist zum Glück verkauft.

          So, nun muss ich aber der Cfos einige Daten übergeben. Ich habe eine 40,5 kwp PV Anlange von Huawei. Die habe ich per Modbus TCP am iobroker und hole mir alle Daten soweit rein. Nun will ich ja PV Überschuss laden und muss dafür der Cfos einige Daten bereitstellen. Huawei kann aber nur 1 Verbindung, also dachte ich, vielliecht sollte ich die Cfos per MQTT anbinden und die Daten so austauschen zwischen iobroker und Cfos.
          Oder hat vielleicht einer eine bessere Idee?

          Tibber wäre auch noch vorhanden.

          Gruß und Danke für die Unterstützung.

          Intel Nuc + Proxmox

          B 1 Antwort Letzte Antwort
          0
          • P ple

            @euro sagte in Übergabe von Werten von Smartmeter an cFos Wallbox:

            os Link ist die Beschreibung, musste auch jeden Satz 2 mal lesen um zu verstehen was alles zu tun ist
            http://ip_lesekopf/cm?cmnd=status%2010
            hiermit bekommst du den Output deines Zählers, mit dem Output passt du dann die Vorlagendatei an
            gehst unter Konfiuration und lädst dort deine angepa

            Du scheinst dich ja gut auszukennen mit der Cfos. Ich habe meine heute bestellt, scheint ja die beste zu sein, die es auf dem Markt gibt. Meine Mennekes ist zum Glück verkauft.

            So, nun muss ich aber der Cfos einige Daten übergeben. Ich habe eine 40,5 kwp PV Anlange von Huawei. Die habe ich per Modbus TCP am iobroker und hole mir alle Daten soweit rein. Nun will ich ja PV Überschuss laden und muss dafür der Cfos einige Daten bereitstellen. Huawei kann aber nur 1 Verbindung, also dachte ich, vielliecht sollte ich die Cfos per MQTT anbinden und die Daten so austauschen zwischen iobroker und Cfos.
            Oder hat vielleicht einer eine bessere Idee?

            Tibber wäre auch noch vorhanden.

            Gruß und Danke für die Unterstützung.

            B Offline
            B Offline
            berlinerbolle
            schrieb am zuletzt editiert von
            #27

            @ple

            Falls du Erfolg per MQTT hast, schreib mal bitte hier was genau du dafür getan hast. Ich bekomme aktuell keine Daten per MQTT zum in der cFos dafür eingerichteten HTTP Input Zähler.

            Ich hatte bisher nur Erfolg per HTTP (funktioniert ja auch), aber MQTT wäre mir deutlich lieber.

            P 1 Antwort Letzte Antwort
            0
            • B berlinerbolle

              @ple

              Falls du Erfolg per MQTT hast, schreib mal bitte hier was genau du dafür getan hast. Ich bekomme aktuell keine Daten per MQTT zum in der cFos dafür eingerichteten HTTP Input Zähler.

              Ich hatte bisher nur Erfolg per HTTP (funktioniert ja auch), aber MQTT wäre mir deutlich lieber.

              P Offline
              P Offline
              ple
              schrieb am zuletzt editiert von
              #28

              @berlinerbolle
              Mqtt wäre meine erste Wahl. EVCC kann bereits meinen Überschuss lesen, mal schauen ob ich es auch bei der cFos hinbekomme.
              Melde mich dann. Mal schauen wie weit ich komme.

              Intel Nuc + Proxmox

              1 Antwort Letzte Antwort
              0
              • E Offline
                E Offline
                euro
                schrieb am zuletzt editiert von
                #29

                Hi,
                @ple : kenn dein ioBroker den aktuellen Hausbezug?
                Dann käme das Script hier aus dem initialen Topic in Frage, damit bin ich jetzt ein Jahr sehr gut und zuverlässig mit gefahren
                wenn nicht, shop einen Lesekopf für den Hauptzähler und lass die cfos dessen Infos zukommen lassen, wie paar Posts zuvor beschrieben

                den Huawei würde ich nicht direkt mit der cfos koppeln (wenn es überhaupt geht), wenn der nur mit einem Partner kommunzieren kann.
                Dann zum ioBroker und der verteilt/dokumentiert/regelt :)

                P 2 Antworten Letzte Antwort
                0
                • E euro

                  Hi,
                  @ple : kenn dein ioBroker den aktuellen Hausbezug?
                  Dann käme das Script hier aus dem initialen Topic in Frage, damit bin ich jetzt ein Jahr sehr gut und zuverlässig mit gefahren
                  wenn nicht, shop einen Lesekopf für den Hauptzähler und lass die cfos dessen Infos zukommen lassen, wie paar Posts zuvor beschrieben

                  den Huawei würde ich nicht direkt mit der cfos koppeln (wenn es überhaupt geht), wenn der nur mit einem Partner kommunzieren kann.
                  Dann zum ioBroker und der verteilt/dokumentiert/regelt :)

                  P Offline
                  P Offline
                  ple
                  schrieb am zuletzt editiert von
                  #30

                  @euro
                  Zumindest kann huawei nur einen Master bedienen via modbus tcp. Musste auch Umwege über node red machen, der modbusadapter geht leider nicht, warum auch immer.

                  Mein iobroker kennt aber alles von huawei. Wenn ich das richtig verstanden habe müsste ich einen virtuellen Zähler anlegen.
                  Ich teste zunächst, ob es per mqtt geht, da evcc das topic schon abonniert hat und es soweit geht.
                  Falls mqtt scheitert, dann gib ich es per http rüber wie im Script, hab sowas zwar noch nie gemacht, aber sollte wohl klappen.

                  Die Wallbox scheint echt gut zu sein für den Preis, wundert mich das die so unbekannt ist.

                  Intel Nuc + Proxmox

                  1 Antwort Letzte Antwort
                  0
                  • HausmeisterH Offline
                    HausmeisterH Offline
                    Hausmeister
                    schrieb am zuletzt editiert von
                    #31

                    Hallo zusammen,

                    vorab Danke für die tolle vorarbeit.

                    Nichtsdestotrotz habe ich ein problem :/
                    Ich verstehe nicht was hier für ein Passwort eingetragen werden soll.
                    Das Admin Passwort funktioniert nicht. Auch die anpassung Admin:Passwort funktioniert nicht.

                    xhr.setRequestHeader("Authorization", "Basic ***password***");
                    

                    Es kommt immer folgender Fehler.

                    16:53:13.203	info	javascript.0 (1210) script.js.Wallbox.Wallbox_pv_Daten: 401
                    16:53:13.203	info	javascript.0 (1210) script.js.Wallbox.Wallbox_pv_Daten: Unauthorized
                    

                    Wenn ich die Werte per HTTP GET händisch schicke kommen sie auch an.

                    Was mache ich falsch ? :confounded:

                    Beste Grüße
                    Tim

                    B 1 Antwort Letzte Antwort
                    0
                    • HausmeisterH Hausmeister

                      Hallo zusammen,

                      vorab Danke für die tolle vorarbeit.

                      Nichtsdestotrotz habe ich ein problem :/
                      Ich verstehe nicht was hier für ein Passwort eingetragen werden soll.
                      Das Admin Passwort funktioniert nicht. Auch die anpassung Admin:Passwort funktioniert nicht.

                      xhr.setRequestHeader("Authorization", "Basic ***password***");
                      

                      Es kommt immer folgender Fehler.

                      16:53:13.203	info	javascript.0 (1210) script.js.Wallbox.Wallbox_pv_Daten: 401
                      16:53:13.203	info	javascript.0 (1210) script.js.Wallbox.Wallbox_pv_Daten: Unauthorized
                      

                      Wenn ich die Werte per HTTP GET händisch schicke kommen sie auch an.

                      Was mache ich falsch ? :confounded:

                      Beste Grüße
                      Tim

                      B Offline
                      B Offline
                      berlinerbolle
                      schrieb am zuletzt editiert von
                      #32

                      @hausmeister

                      Da muss Nutzername und Passwort in der "üblichen" Kombination name:passwort rein - allerdings Base64 encoded. Wenn Du das von Hand in deinem Browser aufrufst funktioniert es nur deshalb, weil du in dem Browser schon authentifiziert bist (dadurch dass du dich vermutlich im gleichen Browser schon an der Oberfläche der cFos angemeldet hattest).

                      Du kannst dir das online codieren lassen falls Du kein Tool zur Hand hast, zum Beispiel hier: https://www.base64encode.org/

                      Aus "meinnutzername:meinpasswort" wird dann "bWVpbm51dHplcm5hbWU6bWVpbnBhc3N3b3J0" - und das muss dann hinter "Basic" im Script rein:

                      xhr.setRequestHeader("Authorization", "Basic bWVpbm51dHplcm5hbWU6bWVpbnBhc3N3b3J0");
                      

                      Ich hab da auch kurz gestrauchelt, obwohl ich eigentlich vom Fach bin - mache genau sowas aber nicht aller Tage. ;)

                      Gruß

                      HausmeisterH 1 Antwort Letzte Antwort
                      1
                      • B berlinerbolle

                        @hausmeister

                        Da muss Nutzername und Passwort in der "üblichen" Kombination name:passwort rein - allerdings Base64 encoded. Wenn Du das von Hand in deinem Browser aufrufst funktioniert es nur deshalb, weil du in dem Browser schon authentifiziert bist (dadurch dass du dich vermutlich im gleichen Browser schon an der Oberfläche der cFos angemeldet hattest).

                        Du kannst dir das online codieren lassen falls Du kein Tool zur Hand hast, zum Beispiel hier: https://www.base64encode.org/

                        Aus "meinnutzername:meinpasswort" wird dann "bWVpbm51dHplcm5hbWU6bWVpbnBhc3N3b3J0" - und das muss dann hinter "Basic" im Script rein:

                        xhr.setRequestHeader("Authorization", "Basic bWVpbm51dHplcm5hbWU6bWVpbnBhc3N3b3J0");
                        

                        Ich hab da auch kurz gestrauchelt, obwohl ich eigentlich vom Fach bin - mache genau sowas aber nicht aller Tage. ;)

                        Gruß

                        HausmeisterH Offline
                        HausmeisterH Offline
                        Hausmeister
                        schrieb am zuletzt editiert von Hausmeister
                        #33

                        @berlinerbolle
                        Das war die Lösung.
                        Danke dir ! Da hätte ich mir noch die Zähne ausgebissen :D

                        1 Antwort Letzte Antwort
                        0
                        • E euro

                          Hi,
                          @ple : kenn dein ioBroker den aktuellen Hausbezug?
                          Dann käme das Script hier aus dem initialen Topic in Frage, damit bin ich jetzt ein Jahr sehr gut und zuverlässig mit gefahren
                          wenn nicht, shop einen Lesekopf für den Hauptzähler und lass die cfos dessen Infos zukommen lassen, wie paar Posts zuvor beschrieben

                          den Huawei würde ich nicht direkt mit der cfos koppeln (wenn es überhaupt geht), wenn der nur mit einem Partner kommunzieren kann.
                          Dann zum ioBroker und der verteilt/dokumentiert/regelt :)

                          P Offline
                          P Offline
                          ple
                          schrieb am zuletzt editiert von
                          #34

                          @euro sagte in Übergabe von Werten von Smartmeter an cFos Wallbox:

                          Hi,
                          @ple : kenn dein ioBroker den aktuellen Hausbezug?
                          Dann käme das Script hier aus dem initialen Topic in Frage, damit bin ich jetzt ein Jahr sehr gut und zuverlässig mit gefahren
                          wenn nicht, shop einen Lesekopf für den Hauptzähler und lass die cfos dessen Infos zukommen lassen, wie paar Posts zuvor beschrieben

                          den Huawei würde ich nicht direkt mit der cfos koppeln (wenn es überhaupt geht), wenn der nur mit einem Partner kommunzieren kann.
                          Dann zum ioBroker und der verteilt/dokumentiert/regelt :)

                          Sorry, ich muss noch mal kurz nachfragen. Ich hab die Box nun an der Wand und beschäftige mich mit den Zählern. Welche Zähler soll ich denn nun alle anlegen? Ist es richtig, das netzbezug mein Export oder Import ist? Positiv wäre bei mir einspeisen und negativ Bezug.
                          Hätte aber auch noch mehr Werte die ich übermitteln könnte wie die Last vom gesamten Haus.
                          Also kurz gesagt, welche Zähler alle mit welchen Werten?
                          Gruß und Danke

                          Intel Nuc + Proxmox

                          P 1 Antwort Letzte Antwort
                          0
                          • P ple

                            @euro sagte in Übergabe von Werten von Smartmeter an cFos Wallbox:

                            Hi,
                            @ple : kenn dein ioBroker den aktuellen Hausbezug?
                            Dann käme das Script hier aus dem initialen Topic in Frage, damit bin ich jetzt ein Jahr sehr gut und zuverlässig mit gefahren
                            wenn nicht, shop einen Lesekopf für den Hauptzähler und lass die cfos dessen Infos zukommen lassen, wie paar Posts zuvor beschrieben

                            den Huawei würde ich nicht direkt mit der cfos koppeln (wenn es überhaupt geht), wenn der nur mit einem Partner kommunzieren kann.
                            Dann zum ioBroker und der verteilt/dokumentiert/regelt :)

                            Sorry, ich muss noch mal kurz nachfragen. Ich hab die Box nun an der Wand und beschäftige mich mit den Zählern. Welche Zähler soll ich denn nun alle anlegen? Ist es richtig, das netzbezug mein Export oder Import ist? Positiv wäre bei mir einspeisen und negativ Bezug.
                            Hätte aber auch noch mehr Werte die ich übermitteln könnte wie die Last vom gesamten Haus.
                            Also kurz gesagt, welche Zähler alle mit welchen Werten?
                            Gruß und Danke

                            P Offline
                            P Offline
                            ple
                            schrieb am zuletzt editiert von ple
                            #35

                            Hallo zusammen,
                            ich wollte noch mal kurz Rückmeldung geben, vielleicht kann es noch einer gebrauchen.
                            ich habe das Script ein wenig umgeschrieben, was ich so als Laie konnte.
                            Genutzt wird nun "Request", somit ist entfällt das zusätzliche Modul.
                            Ebenso übergebe ich jetzt auch Voltage und Current und lasse mir im Cfos die Leistung als "W" anzeigen.
                            Ip, User und Passwort können als Klartext angegeben werden. Zählernummer muss jeweils in der Funktion geändert werden.
                            Die Ströme und Spannungen vom Wechselrichter fehlen mir noch.
                            Da ich einen Huawei Wechselrichter habe und einen Powersensor, der über Modbus RTU am Wechselrichter angeschlossen ist, wäre es interessant ob ich den direkt per 2 Draht angeschlossen bekomme. Mal schauen wann ich dazu Lust und Zeit habe.

                            vielleicht kann es ja einer gebrauchen.

                            var request = require('request');
                            var ip = "xxx.xxx.xxx.xxx"
                            var username = "xxxxxx"
                            var password = "xxxxx"
                            
                            
                            // Gridmeter Zähler 4
                            on({ id: '0_userdata.0.Huawei.Dongle.Load_power'/*Huawei*/, change: 'any' }, function (obj) {
                               var Zaehler = "4"
                               var Import = parseFloat(getState('0_userdata.0.Huawei.Meter.Energy_Import'/*Energy Import*/).val) * 1000;
                               var Export = parseFloat(getState('0_userdata.0.Huawei.Meter.Energy_Export'/*Energy Export*/).val) * 1000;
                               var Voltage_l1 = getState('0_userdata.0.Huawei.Meter.Grid_Voltage_Phase_1'/*Huawei*/).val
                               var Voltage_l2 = getState('0_userdata.0.Huawei.Meter.Grid_Voltage_Phase_2'/*Huawei*/).val
                               var Voltage_l3 = getState('0_userdata.0.Huawei.Meter.Grid_Voltage_Phase_3'/*Huawei*/).val
                               var Current_l1 = parseFloat(getState('0_userdata.0.Huawei.Meter.Grid_Current_Phase_1'/*Huawei*/).val) * 1000
                               var Current_l2 = parseFloat(getState('0_userdata.0.Huawei.Meter.Grid_Current_Phase_2'/*Huawei*/).val) * 1000
                               var Current_l3 = parseFloat(getState('0_userdata.0.Huawei.Meter.Grid_Current_Phase_3'/*Huawei*/).val) * 1000
                               var Leistung = parseFloat(getState("0_userdata.0.Huawei.Dongle.Grid_power").val) * -1;
                            
                               var Voltage = "[" + Voltage_l1 + ", " + Voltage_l2 + ", " + Voltage_l3 + "]"
                               var Current = "[" + Current_l1 + ", " + Current_l2 + ", " + Current_l3 + "]"
                            
                               var url = "http://" + ip + "/cnf?cmd=set_ajax_meter&dev_id=M" + Zaehler;
                               var data = `{
                                   "voltage": ${Voltage},
                                   "current": ${Current},
                                   "power_va": ${Leistung},
                                   "import_wh": ${Import},
                                   "export_wh": ${Export},
                                   "is_va": false
                               }`;
                               var auth = 'Basic ' + Buffer.from(username + ":" + password).toString('base64');
                               var headers = {
                                   "Authorization": auth,
                                   "Content-Type": "application/json"
                               };
                               request.post({
                                   url: url,
                                   headers: headers,
                                   body: data
                               }, function (error, response, body) {
                                   //console.log('Status Code:' + response.statusCode);
                                   //console.log('Response Body:' + body);
                                   if (response.statusCode !== 200) {
                                       console.error('Authentifizierung fehlgeschlagen');
                                       console.log('Response Body:' + body);
                                   }
                               });
                            });
                            
                            
                            
                            // PV Erzeugung Zähler 5
                            on({ id: '0_userdata.0.Huawei.Dongle.Total_input_power'/*Huawei*/, change: 'any' }, function (obj) {
                               var Zaehler = "5"
                               var Arbeit = parseFloat(getState('0_userdata.0.Huawei.Inverter.Accumulated_Energy_Yield'/*Huawei*//*Energy Import*/).val) * 1000;
                               var Leistung = getState('0_userdata.0.Huawei.Dongle.Total_input_power'/*Huawei*/).val;
                            
                               var url = "http://" + ip + "/cnf?cmd=set_ajax_meter&dev_id=M" + Zaehler;
                               var data = `{
                                   "import_wh": ${Arbeit},
                                   "power_va": ${Leistung},
                                   "is_va": false
                                   }`;
                            
                               var auth = 'Basic ' + Buffer.from(username + ":" + password).toString('base64');
                               var headers = {
                                   "Authorization": auth,
                                   "Content-Type": "application/json"
                               };
                               request.post({
                                   url: url,
                                   headers: headers,
                                   body: data
                               }, function (error, response, body) {
                                   //console.log('Status Code:' + response.statusCode);
                                   //console.log('Response Body:' + body);
                                   if (response.statusCode !== 200) {
                                       console.error('Authentifizierung fehlgeschlagen');
                                       console.log('Response Body:' + body);
                                   }
                               });
                            });
                            

                            Intel Nuc + Proxmox

                            S 1 Antwort Letzte Antwort
                            0
                            • M Offline
                              M Offline
                              manuelk2007
                              schrieb am zuletzt editiert von
                              #36

                              Hallo zusammen,

                              danke für eure hilfreichen Scripte. Ich kann mit dem ioBroker Werte an meine cFos übertragen.
                              Da ich einen E320 Stromzähler habe und nicht an die Ströme komme, errechne ich mir die selber aus der Leistung die der Stromzähler ins Netz leitet.

                              Ich habe im cFos einen HTTP-Zähler angelegt und der hat die Rolle "Netzbezug".
                              Die wichtigsten Zeilen aus dem Skript:

                              var Leistung  = getState("sonoff.0.DVES.E320_Power_in").val;
                              var Bezug  = getState("sonoff.0.DVES.E320_Total_in").val*1000;
                              var Strom = Leistung  / (3 * 230)*1000; //muss in mA angegeben werden
                              ...
                              var data = `{
                                      "power_va": ${Leistung},
                                      "import_vah": ${Bezug},
                                      "current": [${Strom}, ${Strom}, ${Strom}],
                                      "is_va": false
                                      }`;
                              

                              Für was wird der Bezug benötigt (import_vah)?

                              22e2f5af-edd8-4429-ab18-8e2ef8249252-image.png
                              Ist es ok, dass Import und Export immer 0 sind?

                              Nun zu meinem Problem. Das Überschussladen funktioniert nicht.
                              Bedeutet er zeigt eine Leistung an, die er scheinbar dem Fahrzeug geben könnte, es wird aber nichts geladen.
                              Er zeigt mir auch 3 Phasen an, obwohl ich eigentlich nur mit einer Phase laden möchte (keine Ahnung, ob ich das falsch interpretiere). Ich habe die Wallbox mit dem extra Schütz, zur Wahl zwischen 1 und 3 Phasen.

                              Hier ist übrigens der User, der zum Laden verwendet wird: Bildschirmfoto vom 2023-05-09 20-34-47.png
                              Der wird beim Laden auch angezeigt.

                              Ich habe einen weiteren Benutzer, der sich per RFID anmelden kann und dort soll einfach mit voller Leistung geladen werden (egal, wie viel Überschuss es gibt). Das funktioniert problemlos.

                              Habt ihr mir einen Tipp?

                              Ich wäre euch sehr dankbar.

                              Gruß Manuel

                              P 1 Antwort Letzte Antwort
                              0
                              • M manuelk2007

                                Hallo zusammen,

                                danke für eure hilfreichen Scripte. Ich kann mit dem ioBroker Werte an meine cFos übertragen.
                                Da ich einen E320 Stromzähler habe und nicht an die Ströme komme, errechne ich mir die selber aus der Leistung die der Stromzähler ins Netz leitet.

                                Ich habe im cFos einen HTTP-Zähler angelegt und der hat die Rolle "Netzbezug".
                                Die wichtigsten Zeilen aus dem Skript:

                                var Leistung  = getState("sonoff.0.DVES.E320_Power_in").val;
                                var Bezug  = getState("sonoff.0.DVES.E320_Total_in").val*1000;
                                var Strom = Leistung  / (3 * 230)*1000; //muss in mA angegeben werden
                                ...
                                var data = `{
                                        "power_va": ${Leistung},
                                        "import_vah": ${Bezug},
                                        "current": [${Strom}, ${Strom}, ${Strom}],
                                        "is_va": false
                                        }`;
                                

                                Für was wird der Bezug benötigt (import_vah)?

                                22e2f5af-edd8-4429-ab18-8e2ef8249252-image.png
                                Ist es ok, dass Import und Export immer 0 sind?

                                Nun zu meinem Problem. Das Überschussladen funktioniert nicht.
                                Bedeutet er zeigt eine Leistung an, die er scheinbar dem Fahrzeug geben könnte, es wird aber nichts geladen.
                                Er zeigt mir auch 3 Phasen an, obwohl ich eigentlich nur mit einer Phase laden möchte (keine Ahnung, ob ich das falsch interpretiere). Ich habe die Wallbox mit dem extra Schütz, zur Wahl zwischen 1 und 3 Phasen.

                                Hier ist übrigens der User, der zum Laden verwendet wird: Bildschirmfoto vom 2023-05-09 20-34-47.png
                                Der wird beim Laden auch angezeigt.

                                Ich habe einen weiteren Benutzer, der sich per RFID anmelden kann und dort soll einfach mit voller Leistung geladen werden (egal, wie viel Überschuss es gibt). Das funktioniert problemlos.

                                Habt ihr mir einen Tipp?

                                Ich wäre euch sehr dankbar.

                                Gruß Manuel

                                P Offline
                                P Offline
                                ple
                                schrieb am zuletzt editiert von
                                #37

                                @manuelk2007

                                Moin
                                ich bin gerade selber dabei die Cfos irgendwie in Betrieb zu nehmen. So halb klappt es.
                                Was ich sagen kann, worüber ich gestolpert bin ist, dass der http inputzähler bei mir folgende Daten bekommet, in den Scripten und Beschreibungen wird teilweise mit vah gearbeitet, ich habe bei mir wh genommen. Keine Ahnung was die API von CFOS nun wirklich will, aber bis jetzt klappt es.
                                ich schicke also folgendes.

                                var data = `{
                                        "power_va": ${Leistung},
                                        "voltage": ${Voltage}, 
                                        "current": ${Current},
                                        "import_wh": ${Import},
                                        "export_wh": ${Export},
                                        "is_va": false
                                    }`;
                                

                                Der Inhalt ist wie folgt.

                                { "power_va": -14437, "voltage": [232.5, 232.5, 234.1], "current": [-20020, -20370, -21130], "import_wh": 7479640, "export_wh": 49590330, "is_va": false }
                                

                                So, wichtig ist, dass die Werte vom Strom bei Einspeisung negativ sind, positiv würde bedeuten, du importierst den Strom.
                                Zähler muss Netzbezug sein, damit der in 2 Richtungen messen kann. Ich habe noch einen weiteren Inputzähler genommen, der mir die PV Erzeugung anzeigt, wird aber eigentlich nicht benötigt,
                                3 phasig laden klappt soweit.

                                Jetzt ist mir aber folgendes aufgefallen, was ich nicht verstehe.
                                Wenn ich 1 phasig umschalte und auf L1 theoretisch Netzbezug habe wegen Wärmepumpe und L2, L3 Überschuss und in Summe noch 3 KW einspeise, wird das Auto nicht geladen. Ich befürchte, das die Ströme nicht addiert werden und bei 1phasigen Laden halt L1 bestimmt, ob läd oder nicht.

                                Ich glaube auch, dass bei 3phasigen Laden, sobald eine Phase unter 6A kommt beim Überschussladen, der Ladevorgang nach x Zeit abbricht.

                                So ganz bin ich da nicht hintergekommen, aber vielleicht kann mir einer diese Fragen hier beantworten, die Überschussladen bereits am laufen haben.

                                Gruß

                                Intel Nuc + Proxmox

                                E 1 Antwort Letzte Antwort
                                1
                                • P ple

                                  @manuelk2007

                                  Moin
                                  ich bin gerade selber dabei die Cfos irgendwie in Betrieb zu nehmen. So halb klappt es.
                                  Was ich sagen kann, worüber ich gestolpert bin ist, dass der http inputzähler bei mir folgende Daten bekommet, in den Scripten und Beschreibungen wird teilweise mit vah gearbeitet, ich habe bei mir wh genommen. Keine Ahnung was die API von CFOS nun wirklich will, aber bis jetzt klappt es.
                                  ich schicke also folgendes.

                                  var data = `{
                                          "power_va": ${Leistung},
                                          "voltage": ${Voltage}, 
                                          "current": ${Current},
                                          "import_wh": ${Import},
                                          "export_wh": ${Export},
                                          "is_va": false
                                      }`;
                                  

                                  Der Inhalt ist wie folgt.

                                  { "power_va": -14437, "voltage": [232.5, 232.5, 234.1], "current": [-20020, -20370, -21130], "import_wh": 7479640, "export_wh": 49590330, "is_va": false }
                                  

                                  So, wichtig ist, dass die Werte vom Strom bei Einspeisung negativ sind, positiv würde bedeuten, du importierst den Strom.
                                  Zähler muss Netzbezug sein, damit der in 2 Richtungen messen kann. Ich habe noch einen weiteren Inputzähler genommen, der mir die PV Erzeugung anzeigt, wird aber eigentlich nicht benötigt,
                                  3 phasig laden klappt soweit.

                                  Jetzt ist mir aber folgendes aufgefallen, was ich nicht verstehe.
                                  Wenn ich 1 phasig umschalte und auf L1 theoretisch Netzbezug habe wegen Wärmepumpe und L2, L3 Überschuss und in Summe noch 3 KW einspeise, wird das Auto nicht geladen. Ich befürchte, das die Ströme nicht addiert werden und bei 1phasigen Laden halt L1 bestimmt, ob läd oder nicht.

                                  Ich glaube auch, dass bei 3phasigen Laden, sobald eine Phase unter 6A kommt beim Überschussladen, der Ladevorgang nach x Zeit abbricht.

                                  So ganz bin ich da nicht hintergekommen, aber vielleicht kann mir einer diese Fragen hier beantworten, die Überschussladen bereits am laufen haben.

                                  Gruß

                                  E Offline
                                  E Offline
                                  euro
                                  schrieb am zuletzt editiert von
                                  #38

                                  @ple
                                  Hi
                                  bei mir klappte 1 - 2- und 3-phasiges laden bisher problemlos
                                  erst noch über das Skript via ioBroker hier, mittlerweile aber hab ich den hichi tasmota Lesekopf direkt eingebunden an der cfos

                                  wenn du umstellst von1 - auf 3 phasig, stellst du dann wallbox UND Zähler um ?

                                  P 1 Antwort Letzte Antwort
                                  0
                                  • E euro

                                    @ple
                                    Hi
                                    bei mir klappte 1 - 2- und 3-phasiges laden bisher problemlos
                                    erst noch über das Skript via ioBroker hier, mittlerweile aber hab ich den hichi tasmota Lesekopf direkt eingebunden an der cfos

                                    wenn du umstellst von1 - auf 3 phasig, stellst du dann wallbox UND Zähler um ?

                                    P Offline
                                    P Offline
                                    ple
                                    schrieb am zuletzt editiert von
                                    #39

                                    @euro sagte in Übergabe von Werten von Smartmeter an cFos Wallbox:

                                    hichi tasmota Lesekopf

                                    Ja ich habs nun auch am laufen. es lag anscheinend an den Einstellungen, Geotec hatte mich drauf hingewiesen.
                                    de96e081-2aa6-47e7-a211-fc886b863f44-image.png

                                    24755cd8-3fee-4e96-b05e-44b5883c6298-image.png

                                    Es gibt halt eine Menge Einstellmöglichkeiten, leider weiß man noch nicht genau, wie sich welche Auswirken.
                                    Ich muss nächste Woche auch mal die neue Firmware testen, mal gucken was sich da so geändert hat.
                                    oder hat das einer hier schon am laufen?
                                    Gruß

                                    Intel Nuc + Proxmox

                                    1 Antwort Letzte Antwort
                                    0
                                    • P ple

                                      Hallo zusammen,
                                      ich wollte noch mal kurz Rückmeldung geben, vielleicht kann es noch einer gebrauchen.
                                      ich habe das Script ein wenig umgeschrieben, was ich so als Laie konnte.
                                      Genutzt wird nun "Request", somit ist entfällt das zusätzliche Modul.
                                      Ebenso übergebe ich jetzt auch Voltage und Current und lasse mir im Cfos die Leistung als "W" anzeigen.
                                      Ip, User und Passwort können als Klartext angegeben werden. Zählernummer muss jeweils in der Funktion geändert werden.
                                      Die Ströme und Spannungen vom Wechselrichter fehlen mir noch.
                                      Da ich einen Huawei Wechselrichter habe und einen Powersensor, der über Modbus RTU am Wechselrichter angeschlossen ist, wäre es interessant ob ich den direkt per 2 Draht angeschlossen bekomme. Mal schauen wann ich dazu Lust und Zeit habe.

                                      vielleicht kann es ja einer gebrauchen.

                                      var request = require('request');
                                      var ip = "xxx.xxx.xxx.xxx"
                                      var username = "xxxxxx"
                                      var password = "xxxxx"
                                      
                                      
                                      // Gridmeter Zähler 4
                                      on({ id: '0_userdata.0.Huawei.Dongle.Load_power'/*Huawei*/, change: 'any' }, function (obj) {
                                         var Zaehler = "4"
                                         var Import = parseFloat(getState('0_userdata.0.Huawei.Meter.Energy_Import'/*Energy Import*/).val) * 1000;
                                         var Export = parseFloat(getState('0_userdata.0.Huawei.Meter.Energy_Export'/*Energy Export*/).val) * 1000;
                                         var Voltage_l1 = getState('0_userdata.0.Huawei.Meter.Grid_Voltage_Phase_1'/*Huawei*/).val
                                         var Voltage_l2 = getState('0_userdata.0.Huawei.Meter.Grid_Voltage_Phase_2'/*Huawei*/).val
                                         var Voltage_l3 = getState('0_userdata.0.Huawei.Meter.Grid_Voltage_Phase_3'/*Huawei*/).val
                                         var Current_l1 = parseFloat(getState('0_userdata.0.Huawei.Meter.Grid_Current_Phase_1'/*Huawei*/).val) * 1000
                                         var Current_l2 = parseFloat(getState('0_userdata.0.Huawei.Meter.Grid_Current_Phase_2'/*Huawei*/).val) * 1000
                                         var Current_l3 = parseFloat(getState('0_userdata.0.Huawei.Meter.Grid_Current_Phase_3'/*Huawei*/).val) * 1000
                                         var Leistung = parseFloat(getState("0_userdata.0.Huawei.Dongle.Grid_power").val) * -1;
                                      
                                         var Voltage = "[" + Voltage_l1 + ", " + Voltage_l2 + ", " + Voltage_l3 + "]"
                                         var Current = "[" + Current_l1 + ", " + Current_l2 + ", " + Current_l3 + "]"
                                      
                                         var url = "http://" + ip + "/cnf?cmd=set_ajax_meter&dev_id=M" + Zaehler;
                                         var data = `{
                                             "voltage": ${Voltage},
                                             "current": ${Current},
                                             "power_va": ${Leistung},
                                             "import_wh": ${Import},
                                             "export_wh": ${Export},
                                             "is_va": false
                                         }`;
                                         var auth = 'Basic ' + Buffer.from(username + ":" + password).toString('base64');
                                         var headers = {
                                             "Authorization": auth,
                                             "Content-Type": "application/json"
                                         };
                                         request.post({
                                             url: url,
                                             headers: headers,
                                             body: data
                                         }, function (error, response, body) {
                                             //console.log('Status Code:' + response.statusCode);
                                             //console.log('Response Body:' + body);
                                             if (response.statusCode !== 200) {
                                                 console.error('Authentifizierung fehlgeschlagen');
                                                 console.log('Response Body:' + body);
                                             }
                                         });
                                      });
                                      
                                      
                                      
                                      // PV Erzeugung Zähler 5
                                      on({ id: '0_userdata.0.Huawei.Dongle.Total_input_power'/*Huawei*/, change: 'any' }, function (obj) {
                                         var Zaehler = "5"
                                         var Arbeit = parseFloat(getState('0_userdata.0.Huawei.Inverter.Accumulated_Energy_Yield'/*Huawei*//*Energy Import*/).val) * 1000;
                                         var Leistung = getState('0_userdata.0.Huawei.Dongle.Total_input_power'/*Huawei*/).val;
                                      
                                         var url = "http://" + ip + "/cnf?cmd=set_ajax_meter&dev_id=M" + Zaehler;
                                         var data = `{
                                             "import_wh": ${Arbeit},
                                             "power_va": ${Leistung},
                                             "is_va": false
                                             }`;
                                      
                                         var auth = 'Basic ' + Buffer.from(username + ":" + password).toString('base64');
                                         var headers = {
                                             "Authorization": auth,
                                             "Content-Type": "application/json"
                                         };
                                         request.post({
                                             url: url,
                                             headers: headers,
                                             body: data
                                         }, function (error, response, body) {
                                             //console.log('Status Code:' + response.statusCode);
                                             //console.log('Response Body:' + body);
                                             if (response.statusCode !== 200) {
                                                 console.error('Authentifizierung fehlgeschlagen');
                                                 console.log('Response Body:' + body);
                                             }
                                         });
                                      });
                                      

                                      S Online
                                      S Online
                                      Schimi
                                      schrieb am zuletzt editiert von
                                      #40

                                      @ple
                                      Hi, habe das script mal ausprobiert... klappt...

                                      bekomme jedoch im Log eine "warn" meldung "request package is deprecated - please use httpGet (or a stable lib like axios) instead!!"

                                      kannst du das vielleicht entsprechend umbauen? Ich bin da leider "raus" :-(

                                      B 1 Antwort Letzte Antwort
                                      0
                                      • S Schimi

                                        @ple
                                        Hi, habe das script mal ausprobiert... klappt...

                                        bekomme jedoch im Log eine "warn" meldung "request package is deprecated - please use httpGet (or a stable lib like axios) instead!!"

                                        kannst du das vielleicht entsprechend umbauen? Ich bin da leider "raus" :-(

                                        B Offline
                                        B Offline
                                        berlinerbolle
                                        schrieb am zuletzt editiert von
                                        #41

                                        @schimi

                                        Nutze doch MQTT, das ist (bei vorhandenem Broker) einfacher und funktioniert inzwischen auch zuverlässig - und du musst dich nicht um Authentifizierung oder irgendwelche JavaScript Bibliotheken kümmern.

                                        S 1 Antwort Letzte Antwort
                                        0
                                        • B berlinerbolle

                                          @schimi

                                          Nutze doch MQTT, das ist (bei vorhandenem Broker) einfacher und funktioniert inzwischen auch zuverlässig - und du musst dich nicht um Authentifizierung oder irgendwelche JavaScript Bibliotheken kümmern.

                                          S Online
                                          S Online
                                          Schimi
                                          schrieb am zuletzt editiert von
                                          #42

                                          @berlinerbolle
                                          Das läuft seit jahren hier schon in einer Modbus, HTTP kombination....

                                          für MQTT müsste ich mal alles zurücksetzen und neu machen.... (damals gab es noch kein MQTT in der Wallbox)....

                                          Vielleicht wird es mal zeit dafür.....

                                          1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          338

                                          Online

                                          32.5k

                                          Benutzer

                                          81.8k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe