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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    15
    1
    415

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

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

Übergabe von Werten von Smartmeter an cFos Wallbox

Geplant Angeheftet Gesperrt Verschoben JavaScript
42 Beiträge 11 Kommentatoren 8.9k 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.
  • M Mr. Moose

    @xenon Danke

    @mr-moose probiere mal

    const http = require("http");
    const path = `http://10.10.10.30/cnf?cmd=set_ajax_meter&dev_id=M5`;
    const result = http.get(path);
    
    console.log(result);
    

    Im Log kommt dann:

    javascript.0 (25313) script.js.PV_/_Strom.Zähler_an_Wallbox: {'_events':{},'_eventsCount':1,'_maxListeners':100,'output':['GET /cnf?cmd=set_ajax_meter&dev_id=M5 HTTP/1.1\r\nHost: 10.10.10.30\r\nConnection: close\r\n\r\n'],'outputEncodings':['latin1'],'outputCallbacks':[null],'outputSize':88,'writable':true,'_last':true,'chunkedEncoding':false,'shouldKeepAlive':false,'useChunkedEncodingByDefault':false,'sendDate':false,'_removedConnection':false,'_removedContLen':false,'_removedTE':false,'_contentLength':0,'_hasBody':true,'_trailer':'','finished':true,'_headerSent':true,'socket':null,'connection':null,'_header':'GET /cnf?cmd=set_ajax_meter&dev_id=M5 HTTP/1.1\r\nHost: 10.10.10.30\r\nConnection: close\r\n\r\n','agent':{'_events':{},'_eventsCount':1,'defaultPort':80,'protocol':'http:','options':{'path':null},'requests':{},'sockets':{'10.10.10.30:80:':[{'connecting':true,'_hadError':false,'_handle':{'reading':false,'onconnection':null},'_parent':null,'_host':null,'_readableState':{'objectMode':false,'highWaterMark':16384,'buffer':{'head':null,'tail':null,'length':0},'length':0,'pipes':null,'pipesCount':0,'flowing':null,'ended':false,'endEmitted':false,'reading':false,'sync':true,'needReadable':false,'emittedReadable':false,'readableListening':false,'resumeScheduled':false,'paused':true,'emitClose':false,'autoDestroy':false,'destroyed':false,'defaultEncoding':'utf8','awaitDrain':0,'readingMore':false,'decoder':null,'encoding':null},'readable':false,'_events':{},'_eventsCount':5,'_maxListeners':100,'_writableState':{'objectMode':false,'highWaterMark':16384,'finalCalled':false,'needDrain':false,'ending':false,'ended':false,'finished':false,'destroyed':false,'decodeStrings':false,'defaultEncoding':'utf8','length':0,'writing':false,'corked':0,'sync':true,'bufferProcessing':false,'writecb':null,'writelen':0,'bufferedRequest':null,'lastBufferedRequest':null,'pendingcb':0,'prefinished':false,'errorEmitted':false,'emitClose':false,'autoDestroy':false,'bufferedRequestCount':0,'corkedRequestsFree':{'next':null,'entry':null}},'writable':true,'allowHalfOpen':false,'_sockname':null,'_pendingData':null,'_pendingEncoding':'','server':null,'_server':null}]},'freeSockets':{},'keepAliveMsecs':1000,'keepAlive':false,'maxSockets':null,'maxFreeSockets':256},'method':'GET','path':'/cnf?cmd=set_ajax_meter&dev_id=M5','_ended':false,'res':null,'timeoutCb':null,'upgradeOrConnect':false,'parser':null,'maxHeadersCount':null}
    

    alternativ das hier: (Dafür musst du aber das Modul "xmlhttprequest" in deiner Javascript Instanz eintragen!!!)

    
    var xmlhttprequest = require("xmlhttprequest").XMLHttpRequest;
    
    let url = "http://10.10.10.30/cnf?cmd=set_ajax_meter&dev_id=M5";
    
    let xhr = new xmlhttprequest();
    xhr.open("POST", url);
    
    xhr.setRequestHeader("Content-Type", "application/json");
    
    xhr.onreadystatechange = () => {
       if (xhr.readyState === 4) {
          console.log(xhr.status);
          console.log(xhr.responseText);
       }};
    
    var data = '{"import_vah" : 10000 , "power_va": 500}';
    
    xhr.send(data);
    

    steht nun was in der Console log Ausgabe bei dir?

    xmlhttprequest habe ich oben bei "zusätzliche NPM-Module" eingetragen.
    Im Log kommt:

    08:34:54.732	info	javascript.0 (18929) script.js.PV_/_Strom.Zähler_an_Wallbox: 401
    08:34:54.733	info	javascript.0 (18929) script.js.PV_/_Strom.Zähler_an_Wallbox: Unauthorized
    
    XenonX Offline
    XenonX Offline
    Xenon
    Forum Testing Developer
    schrieb am zuletzt editiert von Xenon
    #4

    @mr-moose

    beim xml wird auch post gesetzt, also will er wahrscheinlich einen token, passwort oder ähnliches? Du kannst doch bei Reqbin auch Code ausgeben lassen wenn ich da richtig bin ?

    wenn euch mein Beitrag geholfen hat, bewertet ihn bitte unten rechts :)

    M 1 Antwort Letzte Antwort
    1
    • XenonX Xenon

      @mr-moose

      beim xml wird auch post gesetzt, also will er wahrscheinlich einen token, passwort oder ähnliches? Du kannst doch bei Reqbin auch Code ausgeben lassen wenn ich da richtig bin ?

      M Offline
      M Offline
      Mr. Moose
      schrieb am zuletzt editiert von
      #5

      @xenon
      Mit reqbin sende ich ohne Authorization. Wenn ich dort den Javascript/AJAX exportiere erhalte ich das:

      var url = "http://10.10.10.30/cnf?cmd=set_ajax_meter&dev_id=M5";
      
      var xhr = new XMLHttpRequest();
      xhr.open("POST", url);
      
      xhr.setRequestHeader("Content-Type", "application/json");
      
      xhr.onreadystatechange = function () {
         if (xhr.readyState === 4) {
            console.log(xhr.status);
            console.log(xhr.responseText);
         }};
      
      var data = `{ 
      
         "import_vah": 7489627.7,
         "power_va": 416.8
      }`;
      
      xhr.send(data);
      

      Im Log erscheinen folgende Fehler:

      javascript.0	2021-07-09 12:14:42.013	error	(22767) at processImmediate (timers.js:658:5)
      javascript.0	2021-07-09 12:14:42.012	error	(22767) at tryOnImmediate (timers.js:676:5)
      javascript.0	2021-07-09 12:14:42.012	error	(22767) at runCallback (timers.js:705:18)
      javascript.0	2021-07-09 12:14:42.012	error	(22767) at Immediate.setImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:4851:37)
      javascript.0	2021-07-09 12:14:42.012	error	(22767) at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:472:25)
      javascript.0	2021-07-09 12:14:42.012	error	(22767) at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1055:38)
      javascript.0	2021-07-09 12:14:42.012	error	(22767) at Object.<anonymous> (script.js.PV_/_Strom.Zähler_an_Wallbox:4:11)
      javascript.0	2021-07-09 12:14:42.010	error	(22767) Error in callback: ReferenceError: XMLHttpRequest is not defined
      

      xmlhttprequest scheint wohl nicht zu funktionieren, obwohl es im Javascript Adapter eingetragen ist.

      XenonX 1 Antwort Letzte Antwort
      0
      • M Mr. Moose

        @xenon
        Mit reqbin sende ich ohne Authorization. Wenn ich dort den Javascript/AJAX exportiere erhalte ich das:

        var url = "http://10.10.10.30/cnf?cmd=set_ajax_meter&dev_id=M5";
        
        var xhr = new XMLHttpRequest();
        xhr.open("POST", url);
        
        xhr.setRequestHeader("Content-Type", "application/json");
        
        xhr.onreadystatechange = function () {
           if (xhr.readyState === 4) {
              console.log(xhr.status);
              console.log(xhr.responseText);
           }};
        
        var data = `{ 
        
           "import_vah": 7489627.7,
           "power_va": 416.8
        }`;
        
        xhr.send(data);
        

        Im Log erscheinen folgende Fehler:

        javascript.0	2021-07-09 12:14:42.013	error	(22767) at processImmediate (timers.js:658:5)
        javascript.0	2021-07-09 12:14:42.012	error	(22767) at tryOnImmediate (timers.js:676:5)
        javascript.0	2021-07-09 12:14:42.012	error	(22767) at runCallback (timers.js:705:18)
        javascript.0	2021-07-09 12:14:42.012	error	(22767) at Immediate.setImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:4851:37)
        javascript.0	2021-07-09 12:14:42.012	error	(22767) at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:472:25)
        javascript.0	2021-07-09 12:14:42.012	error	(22767) at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1055:38)
        javascript.0	2021-07-09 12:14:42.012	error	(22767) at Object.<anonymous> (script.js.PV_/_Strom.Zähler_an_Wallbox:4:11)
        javascript.0	2021-07-09 12:14:42.010	error	(22767) Error in callback: ReferenceError: XMLHttpRequest is not defined
        

        xmlhttprequest scheint wohl nicht zu funktionieren, obwohl es im Javascript Adapter eingetragen ist.

        XenonX Offline
        XenonX Offline
        Xenon
        Forum Testing Developer
        schrieb am zuletzt editiert von
        #6

        @mr-moose doch, du musst es aber vorher auch importieren, das habe ich in meinem Beispiel ja getan

        wenn euch mein Beitrag geholfen hat, bewertet ihn bitte unten rechts :)

        M 1 Antwort Letzte Antwort
        1
        • XenonX Xenon

          @mr-moose doch, du musst es aber vorher auch importieren, das habe ich in meinem Beispiel ja getan

          M Offline
          M Offline
          Mr. Moose
          schrieb am zuletzt editiert von
          #7

          @xenon
          Es war doch die Authorization. Reqbin konnte nur senden, weil ich in einem anderen Browser-Tab in der Wallbox eingeloggt war.
          Was mir jetzt noch fehlt sind die Variablen Arbeit und Leistung in den Zeilen 24 und 25. So wie es jetzt ist funktioniert es nicht.

          on({id: 'smartmeter.0.1-0:16_7_0__255.value', change: 'any'}, function (obj) {
          var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
          
          Arbeit = getState("smartmeter.0.1-0:1_8_0__255.value").val;
          Arbeit = Arbeit * 1000
          Leistung  = getState("smartmeter.0.1-0:16_7_0__255.value").val;
          console.log(Arbeit);
          console.log(Leistung);
          
          var url = "http://10.10.10.30/cnf?cmd=set_ajax_meter&dev_id=M5";
          
          var xhr = new XMLHttpRequest();
          xhr.open("POST", url);
          
          xhr.setRequestHeader("Authorization", "Basic ***password***");
          xhr.setRequestHeader("Content-Type", "application/json");
          
          xhr.onreadystatechange = function () {
             if (xhr.readyState === 4) {
                console.log(xhr.status);
                console.log(xhr.responseText);
             }};
          var data = `{
             "import_vah": Arbeit,
             "power_va": Leistung
          }`;
          xhr.send(data);
          });
          
          XenonX 1 Antwort Letzte Antwort
          0
          • M Mr. Moose

            @xenon
            Es war doch die Authorization. Reqbin konnte nur senden, weil ich in einem anderen Browser-Tab in der Wallbox eingeloggt war.
            Was mir jetzt noch fehlt sind die Variablen Arbeit und Leistung in den Zeilen 24 und 25. So wie es jetzt ist funktioniert es nicht.

            on({id: 'smartmeter.0.1-0:16_7_0__255.value', change: 'any'}, function (obj) {
            var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
            
            Arbeit = getState("smartmeter.0.1-0:1_8_0__255.value").val;
            Arbeit = Arbeit * 1000
            Leistung  = getState("smartmeter.0.1-0:16_7_0__255.value").val;
            console.log(Arbeit);
            console.log(Leistung);
            
            var url = "http://10.10.10.30/cnf?cmd=set_ajax_meter&dev_id=M5";
            
            var xhr = new XMLHttpRequest();
            xhr.open("POST", url);
            
            xhr.setRequestHeader("Authorization", "Basic ***password***");
            xhr.setRequestHeader("Content-Type", "application/json");
            
            xhr.onreadystatechange = function () {
               if (xhr.readyState === 4) {
                  console.log(xhr.status);
                  console.log(xhr.responseText);
               }};
            var data = `{
               "import_vah": Arbeit,
               "power_va": Leistung
            }`;
            xhr.send(data);
            });
            
            XenonX Offline
            XenonX Offline
            Xenon
            Forum Testing Developer
            schrieb am zuletzt editiert von Xenon
            #8

            @mr-moose aber der authorization Fehler ist weg? Und über reqbin kannst du die Daten senden?

            Bitte gib mal den exakten Code an, womit es bei reqbin funktioniert (falls da Zugangsdaten stehen ersetze sie einfach durch xxxx)

            wenn euch mein Beitrag geholfen hat, bewertet ihn bitte unten rechts :)

            M 1 Antwort Letzte Antwort
            0
            • XenonX Xenon

              @mr-moose aber der authorization Fehler ist weg? Und über reqbin kannst du die Daten senden?

              Bitte gib mal den exakten Code an, womit es bei reqbin funktioniert (falls da Zugangsdaten stehen ersetze sie einfach durch xxxx)

              M Offline
              M Offline
              Mr. Moose
              schrieb am zuletzt editiert von
              #9

              @xenon
              Ja, funktioniert. Auch aus iobroker mit dem Code oben wenn ich da in Zeile 24 und 25 anstatt der Variablen Zahlen einsetze.
              Ich brauche da aber die Variablen Arbeit und Leistung. Wie schreibt man das in JavaScript?

              XenonX 1 Antwort Letzte Antwort
              0
              • M Mr. Moose

                @xenon
                Ja, funktioniert. Auch aus iobroker mit dem Code oben wenn ich da in Zeile 24 und 25 anstatt der Variablen Zahlen einsetze.
                Ich brauche da aber die Variablen Arbeit und Leistung. Wie schreibt man das in JavaScript?

                XenonX Offline
                XenonX Offline
                Xenon
                Forum Testing Developer
                schrieb am zuletzt editiert von Xenon
                #10

                @mr-moose ah okay ich verstehe.

                Setz die Variablen so ein ${variable}

                also ${Arbeit}

                wenn euch mein Beitrag geholfen hat, bewertet ihn bitte unten rechts :)

                M 1 Antwort Letzte Antwort
                1
                • XenonX Xenon

                  @mr-moose ah okay ich verstehe.

                  Setz die Variablen so ein ${variable}

                  also ${Arbeit}

                  M Offline
                  M Offline
                  Mr. Moose
                  schrieb am zuletzt editiert von
                  #11

                  @xenon
                  Super, jetzt geht es. Vielen Dank für deine Hilfe!
                  Hier nochmal die lauffähige Version, falls sie mal einer braucht.

                  on({id: 'smartmeter.0.1-0:16_7_0__255.value', change: 'any'}, function (obj) {
                  var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
                  
                  Arbeit = getState("smartmeter.0.1-0:1_8_0__255.value").val;
                  Arbeit = Arbeit * 1000
                  Leistung  = getState("smartmeter.0.1-0:16_7_0__255.value").val;
                  
                  var url = "http://10.10.10.30/cnf?cmd=set_ajax_meter&dev_id=M5";
                  
                  var xhr = new XMLHttpRequest();
                  xhr.open("POST", url);
                  
                  xhr.setRequestHeader("Authorization", "Basic YWRtaW46MTIzNGFiY2Q=");
                  xhr.setRequestHeader("Content-Type", "application/json");
                  
                  xhr.onreadystatechange = function () {
                     if (xhr.readyState === 4) {
                        console.log(xhr.status);
                        console.log(xhr.responseText);
                     }};
                  var data = `{
                     "import_vah": ${Arbeit},
                     "power_va": ${Leistung}
                  }`;
                  xhr.send(data);
                  });
                  
                  XenonX 1 Antwort Letzte Antwort
                  0
                  • M Mr. Moose

                    @xenon
                    Super, jetzt geht es. Vielen Dank für deine Hilfe!
                    Hier nochmal die lauffähige Version, falls sie mal einer braucht.

                    on({id: 'smartmeter.0.1-0:16_7_0__255.value', change: 'any'}, function (obj) {
                    var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
                    
                    Arbeit = getState("smartmeter.0.1-0:1_8_0__255.value").val;
                    Arbeit = Arbeit * 1000
                    Leistung  = getState("smartmeter.0.1-0:16_7_0__255.value").val;
                    
                    var url = "http://10.10.10.30/cnf?cmd=set_ajax_meter&dev_id=M5";
                    
                    var xhr = new XMLHttpRequest();
                    xhr.open("POST", url);
                    
                    xhr.setRequestHeader("Authorization", "Basic YWRtaW46MTIzNGFiY2Q=");
                    xhr.setRequestHeader("Content-Type", "application/json");
                    
                    xhr.onreadystatechange = function () {
                       if (xhr.readyState === 4) {
                          console.log(xhr.status);
                          console.log(xhr.responseText);
                       }};
                    var data = `{
                       "import_vah": ${Arbeit},
                       "power_va": ${Leistung}
                    }`;
                    xhr.send(data);
                    });
                    
                    XenonX Offline
                    XenonX Offline
                    Xenon
                    Forum Testing Developer
                    schrieb am zuletzt editiert von
                    #12

                    @mr-moose gerne 🙂

                    wenn euch mein Beitrag geholfen hat, bewertet ihn bitte unten rechts :)

                    Rudolf KasperR 1 Antwort Letzte Antwort
                    0
                    • XenonX Xenon

                      @mr-moose gerne 🙂

                      Rudolf KasperR Offline
                      Rudolf KasperR Offline
                      Rudolf Kasper
                      schrieb am zuletzt editiert von
                      #13

                      wäre es nicht gut wenn wir nen adapter dafür hätten?

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

                        Moin
                        ich hab oben gezeigtes Skript versucht einzubinden, um mir einen weiteren Zähler für Überschussladen zu ersparen
                        Allerdings bekomme ich keine Werte in der cfos angezeigt
                        Nutzt noch jemand das Skript, @Mr-Moose war schon länger nicht mehr online - evtl. schaut er ja aber nochmal rein

                        ich hab das Skript wie gepostet übernommen
                        die ID für den Tasmota ESP (sonoff.0.DVES_XXXXXXX._Power_curr und _total_in übernommen )
                        aktuelles Passwort in Klartext übernommen sowie meine IP der cfos eingetragen

                        in der cfos :
                        Zählertest mit HTTP Input
                        IP des IoBroker eingetragen

                        Output sieht dann leider so aus, sprich es kommen keine Werte:

                        Version: 1.12.0 ESP

                        Time: 2022-06-05 07:08:27

                        Device 'meter_ajax': HTTP input

                        Address: meine_ioBroker_IP, Id: 1
                        Config: {}

                        Voltage: 230, 230, 230
                        Current: 0.000000, 0.000000, 0.000000
                        Power: 0 VA
                        Import/Export: 0 Wh, 0 Wh

                        Kann mir jemand Hilfestellung geben?
                        Denke die Zeile 5 im Skript (Arbeit = Arbeit * 1000) kann ich bei mir löschen, der Momentanverbrauch wird direkt in W ausgegeben (??)

                        mfg und schönen Sonntag
                        Stefan

                        E 1 Antwort Letzte Antwort
                        0
                        • E euro

                          Moin
                          ich hab oben gezeigtes Skript versucht einzubinden, um mir einen weiteren Zähler für Überschussladen zu ersparen
                          Allerdings bekomme ich keine Werte in der cfos angezeigt
                          Nutzt noch jemand das Skript, @Mr-Moose war schon länger nicht mehr online - evtl. schaut er ja aber nochmal rein

                          ich hab das Skript wie gepostet übernommen
                          die ID für den Tasmota ESP (sonoff.0.DVES_XXXXXXX._Power_curr und _total_in übernommen )
                          aktuelles Passwort in Klartext übernommen sowie meine IP der cfos eingetragen

                          in der cfos :
                          Zählertest mit HTTP Input
                          IP des IoBroker eingetragen

                          Output sieht dann leider so aus, sprich es kommen keine Werte:

                          Version: 1.12.0 ESP

                          Time: 2022-06-05 07:08:27

                          Device 'meter_ajax': HTTP input

                          Address: meine_ioBroker_IP, Id: 1
                          Config: {}

                          Voltage: 230, 230, 230
                          Current: 0.000000, 0.000000, 0.000000
                          Power: 0 VA
                          Import/Export: 0 Wh, 0 Wh

                          Kann mir jemand Hilfestellung geben?
                          Denke die Zeile 5 im Skript (Arbeit = Arbeit * 1000) kann ich bei mir löschen, der Momentanverbrauch wird direkt in W ausgegeben (??)

                          mfg und schönen Sonntag
                          Stefan

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

                          es geht nun auch bei mir
                          ein deutlicherer Hinweis seitens cfos in deren Hilfe bezüglich ZählerID hätte (mir) geholfen
                          es ist diese hier wenn man den Zähler öffnet (M4 bei mir)

                          und statt Zählertest legt man einfach den HTTPInput Zähler in der cfos an, Feld für Adresse kann leer bleiben, der Zähler nimmt von allen Sendern Werte an (AUth halt)

                          a96b7ca7-4045-437b-8cde-249d2af94293-grafik.png

                          Danke @Mr-Moose für das Teilen des Skripts hier!

                          mfg
                          STefan

                          E 1 Antwort Letzte Antwort
                          0
                          • E euro

                            es geht nun auch bei mir
                            ein deutlicherer Hinweis seitens cfos in deren Hilfe bezüglich ZählerID hätte (mir) geholfen
                            es ist diese hier wenn man den Zähler öffnet (M4 bei mir)

                            und statt Zählertest legt man einfach den HTTPInput Zähler in der cfos an, Feld für Adresse kann leer bleiben, der Zähler nimmt von allen Sendern Werte an (AUth halt)

                            a96b7ca7-4045-437b-8cde-249d2af94293-grafik.png

                            Danke @Mr-Moose für das Teilen des Skripts hier!

                            mfg
                            STefan

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

                            und noch ein Hinweis
                            ich konnte zwar die Leistung an den HTTP Input Zähler übergeben
                            aber das Solarladen funktionierte noch nicht, Ladevorgang startete nicht bzw wenn dann nur mit der voreingestellten Leistung, nicht dynamisch
                            Die cfos benötigt zusätzlich den Strom (A) um den Ladestrom abhängig vom Solarstrom zu regeln (zw 6 und 16A halt)
                            (Einen Dank an den schnellen cfos Support und einem Nutzer aus dem goingelectric Forum)
                            dazu hab ich die Variable wie in der cfos Doku noch übergeben
                            "current": [c1, c2, c3],

                            Skript ergänzt um folgende Zeile (Strom=Leistung x 1000 / 3 x 230)

                            Strom = Leistung / 0.690

                            var data = { "import_vah": ${Arbeit}, "power_va": ${Leistung}, "current": [${Strom}, ${Strom}, ${Strom}] };
                            xhr.send(data);

                            was ich jetzt noch suche, ist wie ich die Daten der Ladekurve ebenfalls in IoB bekomme, um Sie in Grafana auszuwerten
                            Falls mir da jemand auf die Sprünge helfen mag

                            aktuell bekommt die eKiste also wenn möglich nur noch grünen Strom :)

                            Die Zählerdaten in ioBroker kommen über einen Tasmota ESP rein, der mit einem "Hichi" Infrarot Lesekopf ausgestattet ist und per MQTT mit ioB kommuniziert

                            mfg STefan

                            C B 2 Antworten Letzte Antwort
                            0
                            • E euro

                              und noch ein Hinweis
                              ich konnte zwar die Leistung an den HTTP Input Zähler übergeben
                              aber das Solarladen funktionierte noch nicht, Ladevorgang startete nicht bzw wenn dann nur mit der voreingestellten Leistung, nicht dynamisch
                              Die cfos benötigt zusätzlich den Strom (A) um den Ladestrom abhängig vom Solarstrom zu regeln (zw 6 und 16A halt)
                              (Einen Dank an den schnellen cfos Support und einem Nutzer aus dem goingelectric Forum)
                              dazu hab ich die Variable wie in der cfos Doku noch übergeben
                              "current": [c1, c2, c3],

                              Skript ergänzt um folgende Zeile (Strom=Leistung x 1000 / 3 x 230)

                              Strom = Leistung / 0.690

                              var data = { "import_vah": ${Arbeit}, "power_va": ${Leistung}, "current": [${Strom}, ${Strom}, ${Strom}] };
                              xhr.send(data);

                              was ich jetzt noch suche, ist wie ich die Daten der Ladekurve ebenfalls in IoB bekomme, um Sie in Grafana auszuwerten
                              Falls mir da jemand auf die Sprünge helfen mag

                              aktuell bekommt die eKiste also wenn möglich nur noch grünen Strom :)

                              Die Zählerdaten in ioBroker kommen über einen Tasmota ESP rein, der mit einem "Hichi" Infrarot Lesekopf ausgestattet ist und per MQTT mit ioB kommuniziert

                              mfg STefan

                              C Offline
                              C Offline
                              claus1968
                              schrieb am zuletzt editiert von
                              #17

                              @euro
                              Ich habe auch eine cfos-Wallbox (und eine go-e) und lese den Strom mit dem Hichi über Tasmota aus (alle 10s). cfos habe ich per Modbus Adapter im Iobroker.

                              Ich habe 3 Ladeprofile:
                              a) Volle 16A
                              b) min+PV (6A + ggf. PV-Überschuss, wenn mehr da ist)
                              c) NurPV

                              Da ich mit der PV-Übeschussladung im Powerbrain nicht klargekommen bin habe ich mir in Iobroker ein Skript gebastelt.

                              1. Alle 10s ermittle ich den derzeitigen PV-Überschuss:
                                Wert vom Hichi bereinigt um Ladeleistung der Wallbox
                              2. Division des PV-Überschuss / 230.
                                Dadurch habe den PV-Überschuss in Ampere (gerundet).
                              3. Schreibe ich diesen Wert in das passende Register (alle 10s)
                              4. Skript schickt je nach Ladeprofil den passenden Wert (in A) ans cfos.
                              5. Damit es an der Schwelle zu 6A nicht permanent ein- und wieder ausschaltet
                                habe ich eine Trägheit für den Wert < 6A verwendet (gleitender Durchschnitt des PV-Überschusses der letzten 8 Werte). Erst wenn dieser unter 5A geht, sende ich das Stop-Signal.

                              Habe dies so seit einigen Monaten so am laufen.
                              rot: cfos
                              blau: go-e
                              gelb: PV-Überschuss

                              Hier ein Tag:
                              46e48124-b30c-4704-86b5-89a356213cb4-grafik.png
                              Hier ein Teil des selben Tages:
                              fbef3083-4afa-4fae-babc-116abee2749f-grafik.png

                              Dies war der heutige Tag: (war jedoch go-e)
                              bee5592b-f484-4cca-934a-099447d8203d-grafik.png

                              Das Gleiche in größerer Auflösung:
                              c7cc1913-e4e3-4d6b-ab20-1c0b10b0956d-grafik.png

                              Man kann erkennen, dass um 17:15 Uhr nicht mehr genügend Überschuss vorhanden war. Daher wurde die Ladung unterbrochen.

                              Hinweis:
                              Ich lade nur 1-Phasig, da meine PV nur bei optimalen Bedingung 4700W
                              schafft. Da hätte ich ein ständiges Umschalten von 1 auf 3 Phasen.
                              Ausserdem können beide Fahrzeuge nur 1-Phasig laden.

                              Gruß Claus

                              Status: Anfänger im iobroker
                              Proxmox auf Gigabyte Brix i3-7100U; ioBroker im Container

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

                                Hallo Claus,
                                was war denn das Problem bei der cfos Laderegel?
                                oder lag das mehr in der Anbindung des go-e ?

                                ich habe zwar knapp 10kWp, davon allerdings 7 auf Nord
                                weshalb auch selten mal 7 runterkommen. Wenn dann Verbraucher dazukommen, stoppt der 3-phasige Ladevorgang recht schnell, bin daher auch fast nur 1-phasig am laden.
                                Das klappt aber seit der Umsetzung super, konnten eigentlich bei dem tollen Sommer rein mit solar den Akku füllen

                                werde die Lösung nun nochmal bei einem Vater nachbauen, da hab ich grad 8kWp gebaut.
                                ioBroker mit hichi und ne cfos ist dort ebenfalls vorhanden :)

                                mfg
                                STefan

                                1 Antwort Letzte Antwort
                                0
                                • C Offline
                                  C Offline
                                  claus1968
                                  schrieb am zuletzt editiert von
                                  #19

                                  Ich hatte die Steuerung für Go-e sowieso. Daher wollte ich es gleich haben.
                                  Mein ursprüngliches Problem war die Einbindung des Hauszählers mit dem Hitchi+Tasmota.

                                  Status: Anfänger im iobroker
                                  Proxmox auf Gigabyte Brix i3-7100U; ioBroker im Container

                                  1 Antwort Letzte Antwort
                                  0
                                  • E euro

                                    und noch ein Hinweis
                                    ich konnte zwar die Leistung an den HTTP Input Zähler übergeben
                                    aber das Solarladen funktionierte noch nicht, Ladevorgang startete nicht bzw wenn dann nur mit der voreingestellten Leistung, nicht dynamisch
                                    Die cfos benötigt zusätzlich den Strom (A) um den Ladestrom abhängig vom Solarstrom zu regeln (zw 6 und 16A halt)
                                    (Einen Dank an den schnellen cfos Support und einem Nutzer aus dem goingelectric Forum)
                                    dazu hab ich die Variable wie in der cfos Doku noch übergeben
                                    "current": [c1, c2, c3],

                                    Skript ergänzt um folgende Zeile (Strom=Leistung x 1000 / 3 x 230)

                                    Strom = Leistung / 0.690

                                    var data = { "import_vah": ${Arbeit}, "power_va": ${Leistung}, "current": [${Strom}, ${Strom}, ${Strom}] };
                                    xhr.send(data);

                                    was ich jetzt noch suche, ist wie ich die Daten der Ladekurve ebenfalls in IoB bekomme, um Sie in Grafana auszuwerten
                                    Falls mir da jemand auf die Sprünge helfen mag

                                    aktuell bekommt die eKiste also wenn möglich nur noch grünen Strom :)

                                    Die Zählerdaten in ioBroker kommen über einen Tasmota ESP rein, der mit einem "Hichi" Infrarot Lesekopf ausgestattet ist und per MQTT mit ioB kommuniziert

                                    mfg STefan

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

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

                                    und noch ein Hinweis
                                    ich konnte zwar die Leistung an den HTTP Input Zähler übergeben
                                    aber das Solarladen funktionierte noch nicht, Ladevorgang startete nicht bzw wenn dann nur mit der voreingestellten Leistung, nicht dynamisch
                                    Die cfos benötigt zusätzlich den Strom (A) um den Ladestrom abhängig vom Solarstrom zu regeln (zw 6 und 16A halt)
                                    (Einen Dank an den schnellen cfos Support und einem Nutzer aus dem goingelectric Forum)
                                    dazu hab ich die Variable wie in der cfos Doku noch übergeben
                                    "current": [c1, c2, c3],

                                    Skript ergänzt um folgende Zeile (Strom=Leistung x 1000 / 3 x 230)

                                    Strom = Leistung / 0.690

                                    var data = { "import_vah": ${Arbeit}, "power_va": ${Leistung}, "current": [${Strom}, ${Strom}, ${Strom}] };
                                    xhr.send(data);

                                    was ich jetzt noch suche, ist wie ich die Daten der Ladekurve ebenfalls in IoB bekomme, um Sie in Grafana auszuwerten
                                    Falls mir da jemand auf die Sprünge helfen mag

                                    aktuell bekommt die eKiste also wenn möglich nur noch grünen Strom :)

                                    Die Zählerdaten in ioBroker kommen über einen Tasmota ESP rein, der mit einem "Hichi" Infrarot Lesekopf ausgestattet ist und per MQTT mit ioB kommuniziert

                                    mfg STefan

                                    Hallo zusammen,

                                    hätte jemand der Vollständigkeit halber eventuell nochmal das komplette funktionierende Script, inklusive der Anpassung von @euro - und kurzer Erläuterung, welche Variable was ist? Ist "Arbeit" der aufsummierte Import? Wozu braucht man den? Ich wäre jetzt davon ausgegangen, dass man nur die aktuelle Leistung am Hausanschluss übergeben muss (inkl. errechneter Stromstärken anscheinend)? Kann das kurz jemand klarstellen? Danke!

                                    Gruß
                                    Hendrik

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

                                      Hallo Hendrik,
                                      nutzt du einen Lesekopf mit tasmorta am eHz?
                                      ich hab es letzte Woche umgestellt und den "Umweg" über ioBroker entfernt.
                                      die Cfos kann dies mittlerweile selbst, siehe
                                      https://www.cfos-emobility.de/de/cfos-charging-manager/documentation/optical-reader-sml.htm
                                      die Zählervorlage muss man noch auf die eigene Umgebung etwas anpassen

                                      falls uninteressant, kann ich dir gerne mein Skript nochmal zusenden

                                      mit dem letzten Firmwarestand geht Solarladen wieder mit VA und W Lieferung :)
                                      Bei Fragen dazu .. melden

                                      B 1 Antwort Letzte Antwort
                                      0
                                      • E euro

                                        Hallo Hendrik,
                                        nutzt du einen Lesekopf mit tasmorta am eHz?
                                        ich hab es letzte Woche umgestellt und den "Umweg" über ioBroker entfernt.
                                        die Cfos kann dies mittlerweile selbst, siehe
                                        https://www.cfos-emobility.de/de/cfos-charging-manager/documentation/optical-reader-sml.htm
                                        die Zählervorlage muss man noch auf die eigene Umgebung etwas anpassen

                                        falls uninteressant, kann ich dir gerne mein Skript nochmal zusenden

                                        mit dem letzten Firmwarestand geht Solarladen wieder mit VA und W Lieferung :)
                                        Bei Fragen dazu .. melden

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

                                        @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 1 Antwort Letzte Antwort
                                        0
                                        • 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
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          528

                                          Online

                                          32.5k

                                          Benutzer

                                          81.6k

                                          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