Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Entwicklung
  4. FRONIUS Adapter Entwicklung eingestellt?

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.6k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.0k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.3k

FRONIUS Adapter Entwicklung eingestellt?

Scheduled Pinned Locked Moved Entwicklung
fronius
440 Posts 44 Posters 125.3k Views 45 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • qqolliQ qqolli

    @JB_Sullivan

    Habe ich gerade mal probiert, genau wie bei Dir die gleiche Fehlermeldung wie vorher. Adapter bleibt auf gelb.

    @Mike97714 Wie genau hast Du das bewerkstelligt, ohne Technican Passwort, bzw. Zugriff auf die Fronius Modbus-Einstellungen?

    JB_SullivanJ Offline
    JB_SullivanJ Offline
    JB_Sullivan
    wrote on last edited by
    #189

    @qqolli

    Ich habe jetzt zusätzlich nochmal den Port 502 in der Fritzbox freigegeben und zwei Holding Registers angelegt. Adapter bleibt aber Gelb

    cdf4be41-8ef4-46df-b878-1a382f90c436-image.png

    Das Einzige was ich jetzt "mehr" zu sehen bekomme, nachdem ich den Port 502 freigegeben habe, ist die ModBus DEBUG Antwort über gefundene Ports (auch USB).

    COM1 ist der deconz2 USB Zigbee Stick
    COM2 ist RFLink
    und COM ist der Chipsatz der Wlan Karte des BYD Solar Speicher (wch.cn)

    2020-11-17 20:14:08.600 - info: modbus.0 (7608) List of port: [{"path":"COM3","manufacturer":"wch.cn","serialNumber":"xxxxxxxx","pnpId":"USB\\VID_1A86&PID_7523\\5&912F20F&0&2","locationId":"Port_#0002.Hub_#0002","vendorId":"1A86","productId":"7523"},{"path":"COM4","manufacturer":"Microsoft","serialNumber":"xxxxxx","pnpId":"USB\\VID_1CF1&PID_0030\\DE2129022","locationId":"Port_#0001.Hub_#0002","vendorId":"1CF1","productId":"0030"},{"path":"COM1","manufacturer":"Wiesemann & Theis GmbH","pnpId":"ROOT\\PORTS\\0000"}]
    

    ioBroker (since 2018) auf Intel Core i3-5005U NUC und Windwos10 Pro

    qqolliQ 1 Reply Last reply
    0
    • JB_SullivanJ JB_Sullivan

      @qqolli

      Ich habe jetzt zusätzlich nochmal den Port 502 in der Fritzbox freigegeben und zwei Holding Registers angelegt. Adapter bleibt aber Gelb

      cdf4be41-8ef4-46df-b878-1a382f90c436-image.png

      Das Einzige was ich jetzt "mehr" zu sehen bekomme, nachdem ich den Port 502 freigegeben habe, ist die ModBus DEBUG Antwort über gefundene Ports (auch USB).

      COM1 ist der deconz2 USB Zigbee Stick
      COM2 ist RFLink
      und COM ist der Chipsatz der Wlan Karte des BYD Solar Speicher (wch.cn)

      2020-11-17 20:14:08.600 - info: modbus.0 (7608) List of port: [{"path":"COM3","manufacturer":"wch.cn","serialNumber":"xxxxxxxx","pnpId":"USB\\VID_1A86&PID_7523\\5&912F20F&0&2","locationId":"Port_#0002.Hub_#0002","vendorId":"1A86","productId":"7523"},{"path":"COM4","manufacturer":"Microsoft","serialNumber":"xxxxxx","pnpId":"USB\\VID_1CF1&PID_0030\\DE2129022","locationId":"Port_#0001.Hub_#0002","vendorId":"1CF1","productId":"0030"},{"path":"COM1","manufacturer":"Wiesemann & Theis GmbH","pnpId":"ROOT\\PORTS\\0000"}]
      
      qqolliQ Offline
      qqolliQ Offline
      qqolli
      wrote on last edited by
      #190

      @JB_Sullivan

      Habe ich auch gerade versucht, ist ähnlich wie bei Dir, außer dem BYD response, da die noch geliefert wird :-)

      1 Reply Last reply
      0
      • qqolliQ qqolli

        @JB_Sullivan

        Habe ich gerade mal probiert, genau wie bei Dir die gleiche Fehlermeldung wie vorher. Adapter bleibt auf gelb.

        @Mike97714 Wie genau hast Du das bewerkstelligt, ohne Technican Passwort, bzw. Zugriff auf die Fronius Modbus-Einstellungen?

        M Offline
        M Offline
        Mike97714
        wrote on last edited by
        #191

        @qqolli
        Wer hat gesagt das ich nicht das Technican Passwort habe ? :innocent:

        qqolliQ 1 Reply Last reply
        0
        • M Mike97714

          @qqolli
          Wer hat gesagt das ich nicht das Technican Passwort habe ? :innocent:

          qqolliQ Offline
          qqolliQ Offline
          qqolli
          wrote on last edited by
          #192

          @Mike97714

          Du alter Schlawiner :-) Gibt es etwas im Modbus-Menü (als Technican) das man verändern/umschalten oder setzen muss damit es funktioniert? Wenn ja, lass ich das dann meinen Solateur machen wenn die das nächste mal kommen und die Batterie bringen.

          M 1 Reply Last reply
          0
          • qqolliQ qqolli

            @Mike97714

            Du alter Schlawiner :-) Gibt es etwas im Modbus-Menü (als Technican) das man verändern/umschalten oder setzen muss damit es funktioniert? Wenn ja, lass ich das dann meinen Solateur machen wenn die das nächste mal kommen und die Batterie bringen.

            M Offline
            M Offline
            Mike97714
            wrote on last edited by
            #193

            @qqolli
            in diesem Post

            https://forum.iobroker.net/topic/33809/fronius-adapter-entwicklung-eingestellt/136

            das erste Bild sind die Modbuseinstellungen vom Wechselrichter

            qqolliQ 2 Replies Last reply
            0
            • M Mike97714

              @qqolli
              in diesem Post

              https://forum.iobroker.net/topic/33809/fronius-adapter-entwicklung-eingestellt/136

              das erste Bild sind die Modbuseinstellungen vom Wechselrichter

              qqolliQ Offline
              qqolliQ Offline
              qqolli
              wrote on last edited by
              #194

              @Mike97714

              Hallo Mike,

              danke für die Info. Wenn der Solarteur wieder da ist schauen wir mal rein ob das bei mir so eingestellt ist; wenn nicht, stellen wir es so ein wie bei Dir angegeben :-)

              1 Reply Last reply
              0
              • M Mike97714

                @qqolli
                in diesem Post

                https://forum.iobroker.net/topic/33809/fronius-adapter-entwicklung-eingestellt/136

                das erste Bild sind die Modbuseinstellungen vom Wechselrichter

                qqolliQ Offline
                qqolliQ Offline
                qqolli
                wrote on last edited by
                #195

                @Mike97714

                Noch was vergessen. Du hast den Modbus im WR auf Master gesetzt, ebenso im ioBroker Modbus-Adapter. Ist das OK wenn beide Master sind?

                M 1 Reply Last reply
                0
                • qqolliQ qqolli

                  @Mike97714

                  Noch was vergessen. Du hast den Modbus im WR auf Master gesetzt, ebenso im ioBroker Modbus-Adapter. Ist das OK wenn beide Master sind?

                  M Offline
                  M Offline
                  Mike97714
                  wrote on last edited by
                  #196

                  @qqolli
                  Modbus tcp ist im WR Slave
                  Modbus RTU sind beide Master

                  qqolliQ 1 Reply Last reply
                  0
                  • M Mike97714

                    @qqolli
                    Modbus tcp ist im WR Slave
                    Modbus RTU sind beide Master

                    qqolliQ Offline
                    qqolliQ Offline
                    qqolli
                    wrote on last edited by
                    #197

                    @Mike97714

                    Super, Danke. D. h., wenn ich meine Einstellungen so einstellen lasse:

                    902f2356-d9c4-4924-8e80-d982b5bf1f04-image.png

                    sollte es wie bei Dir auch funktionieren, richtig?

                    M 1 Reply Last reply
                    0
                    • qqolliQ qqolli

                      @Mike97714

                      Super, Danke. D. h., wenn ich meine Einstellungen so einstellen lasse:

                      902f2356-d9c4-4924-8e80-d982b5bf1f04-image.png

                      sollte es wie bei Dir auch funktionieren, richtig?

                      M Offline
                      M Offline
                      Mike97714
                      wrote on last edited by
                      #198

                      @qqolli

                      Genau

                      qqolliQ M 2 Replies Last reply
                      0
                      • M Mike97714

                        @qqolli

                        Genau

                        qqolliQ Offline
                        qqolliQ Offline
                        qqolli
                        wrote on last edited by
                        #199

                        @Mike97714

                        Na, dann werde ich das mal dem Herren Solarteur weiterleiten, evtl. kann er das ja per Fernwartung so einstellen. Spätestens aber wenn sie die Batterie bringen :-) Bin ich mal gespannt.

                        1 Reply Last reply
                        0
                        • M Mike97714

                          @qqolli

                          Genau

                          M Offline
                          M Offline
                          Mike97714
                          wrote on last edited by
                          #200

                          Aber die API-Aufrufe mit Javaskript sollten auch so funktionieren

                          qqolliQ JB_SullivanJ 2 Replies Last reply
                          0
                          • M Mike97714

                            Aber die API-Aufrufe mit Javaskript sollten auch so funktionieren

                            qqolliQ Offline
                            qqolliQ Offline
                            qqolli
                            wrote on last edited by
                            #201

                            @Mike97714

                            Leider nicht, ebenso bei @JB_Sullivan (s. vorherige Posts). :-(

                            Daher die Hoffnung, das es mit den Modbus-Einstellungen zusammenhängt.

                            M 1 Reply Last reply
                            0
                            • M Mike97714

                              Aber die API-Aufrufe mit Javaskript sollten auch so funktionieren

                              JB_SullivanJ Offline
                              JB_SullivanJ Offline
                              JB_Sullivan
                              wrote on last edited by
                              #202

                              @Mike97714

                              Welches JavaSkript hast du dir denn gebastelt? Ich habe leider keine Ahnung davon. Die Browser Aufrufe die oben so gepostet wurden liefern alle irgendwelche Werte zurück.

                              Leider bin ich weit davon entfernt mit JavaSkript irgend etwas sinnvolles damit anzustellen.

                              ioBroker (since 2018) auf Intel Core i3-5005U NUC und Windwos10 Pro

                              1 Reply Last reply
                              0
                              • qqolliQ qqolli

                                @Mike97714

                                Leider nicht, ebenso bei @JB_Sullivan (s. vorherige Posts). :-(

                                Daher die Hoffnung, das es mit den Modbus-Einstellungen zusammenhängt.

                                M Offline
                                M Offline
                                Mike97714
                                wrote on last edited by Negalein
                                #203

                                @qqolli
                                Ne hier mal das Java Skript (IP musst du in den ersten 2 Zeilen anpassen)

                                var urlInverter = 'http://10.6.9.57/solar_api/v1/GetInverterRealtimeData.cgi?Scope=Device&DeviceID=1&DataCollection=CommonInverterData';
                                var urlMeter = 'http://10.6.9.57/solar_api/v1/GetMeterRealtimeData.cgi?Scope=Device&DeviceId=0';
                                var path = "FroniusSymoGEN24.";
                                var pathInverter = "inverter.";
                                var pathMeter = "meter.";
                                
                                var idInverter = path + pathInverter + "Inverter";
                                var idIAC = path + pathInverter + "IAC";
                                var idIAC_L1 = path + pathInverter + "IACL1";
                                var idIAC_L2 = path + pathInverter + "IACL2";
                                var idIAC_L3 = path + pathInverter + "IACL3";
                                var idPAC = path + pathInverter + "PAC";
                                var idSAC = path + pathInverter + "SAC";
                                var idUAC = path + pathInverter + "UAC";
                                var idUDC_1 = path + pathInverter + "UDC1";
                                var idUDC_2 = path + pathInverter + "UDC2";
                                var idIDC_1 = path + pathInverter + "IDC1";
                                var idIDC_2 = path + pathInverter + "IDC2";
                                var idPDC_1 = path + pathInverter + "PDC1";
                                var idPDC_2 = path + pathInverter + "PDC2";
                                
                                var idMIAC_1 = path + pathMeter + "IAC_1";
                                var idMIAC_2 = path + pathMeter + "IAC_2";
                                var idMIAC_3 = path + pathMeter + "IAC_3";
                                var idMIAC_S = path + pathMeter + "IAC_S";
                                var idMUAC_12 = path + pathMeter + "UAC_12";
                                var idMUAC_23 = path + pathMeter + "UAC_23";
                                var idMUAC_31 = path + pathMeter + "UAC_31";
                                var idModel = path + pathMeter + "Model";
                                var idSerial = path + pathMeter + "Serial";
                                var idFrequenz = path + pathMeter + "Frequenz";
                                var idActiveAbsolutminus = path + pathMeter + "ActiveAbsolutminus";
                                var idActiveAbsolutplus = path + pathMeter + "ActiveAbsolutplus";
                                var idActiveVerbraucht = path + pathMeter + "ActiveVerbraucht";
                                var idActiveProduziert = path + pathMeter + "ActiveProduziert";
                                var idReactiveVerbraucht = path + pathMeter + "ReactiveVerbraucht";
                                var idReactiveProduziert = path + pathMeter + "ReactiveProduziert";
                                
                                
                                createState(idInverter, 0, {
                                name: 'Wechselrichter Status',
                                type: 'string',
                                role: 'value',
                                unit: ' '
                                });
                                createState(idIAC, 0, {
                                name: 'AC Ausgangsstrom',
                                type: 'number',
                                role: 'value',
                                unit: 'A'
                                });
                                createState(idIAC_L1, 0, {
                                name: 'AC Ausgangsstrom L1',
                                type: 'number',
                                role: 'value',
                                unit: 'A'
                                });
                                createState(idIAC_L2, 0, {
                                name: 'AC Ausgangsstrom L2',
                                type: 'number',
                                role: 'value',
                                unit: 'A'
                                });
                                createState(idIAC_L3, 0, {
                                name: 'AC Ausgangsstrom L3',
                                type: 'number',
                                role: 'value',
                                unit: 'A'
                                });
                                createState(idPAC, 0, {
                                name: 'AC Ausgangsleistung',
                                type: 'number',
                                role: 'value',
                                unit: 'W'
                                });
                                createState(idSAC, 0, {
                                name: 'AC Scheinleistung',
                                type: 'number',
                                role: 'value',
                                unit: 'VA'
                                });
                                createState(idUAC, 0, {
                                name: 'AC Ausgangsspannung',
                                type: 'number',
                                role: 'value',
                                unit: 'V'
                                });
                                createState(idUDC_1, 0, {
                                name: 'DC Eingangsspannung 1',
                                type: 'number',
                                role: 'value',
                                unit: 'V'
                                });
                                createState(idUDC_2, 0, {
                                name: 'DC Eingangsspannung 2',
                                type: 'number',
                                role: 'value',
                                unit: 'V'
                                });
                                createState(idIDC_1, 0, {
                                name: 'DC Eingangsstrom 1',
                                type: 'number',
                                role: 'value',
                                unit: 'A'
                                });
                                createState(idIDC_2, 0, {
                                name: 'DC Eingangsstrom 2',
                                type: 'number',
                                role: 'value',
                                unit: 'A'
                                });
                                createState(idPDC_1, 0, {
                                name: 'DC Eingangsleistung 1',
                                type: 'number',
                                role: 'value',
                                unit: 'W'
                                });
                                createState(idPDC_2, 0, {
                                name: 'DC Eingangsleistung 2',
                                type: 'number',
                                role: 'value',
                                unit: 'W'
                                });
                                
                                createState(idMIAC_1, 0, {
                                name: 'AC Strom L1',
                                type: 'number',
                                role: 'value',
                                unit: 'A'
                                });
                                createState(idMIAC_2, 0, {
                                name: 'AC Strom L2',
                                type: 'number',
                                role: 'value',
                                unit: 'A'
                                });
                                createState(idMIAC_3, 0, {
                                name: 'AC Strom L3',
                                type: 'number',
                                role: 'value',
                                unit: 'A'
                                });
                                createState(idMIAC_S, 0, {
                                name: 'AC Strom Summe',
                                type: 'number',
                                role: 'value',
                                unit: 'A'
                                });
                                createState(idMUAC_12, 0, {
                                name: 'AC Spannung L1-L2',
                                type: 'number',
                                role: 'value',
                                unit: 'V'
                                });
                                createState(idMUAC_23, 0, {
                                name: 'AC Spannung L2-L3',
                                type: 'number',
                                role: 'value',
                                unit: 'V'
                                });
                                createState(idMUAC_31, 0, {
                                name: 'AC Spannung L3-L1',
                                type: 'number',
                                role: 'value',
                                unit: 'V'
                                });
                                createState(idModel, 0, {
                                name: 'Model Smartmeter',
                                type: 'string',
                                role: 'value'
                                });
                                createState(idSerial, 0, {
                                name: 'SerienNr. Smartmeter',
                                type: 'string',
                                role: 'value'
                                });
                                createState(idFrequenz, 0, {
                                name: 'Netzfrequenz',
                                type: 'number',
                                role: 'value',
                                unit: 'Hz'
                                });
                                createState(idActiveAbsolutminus, 0, {
                                name: '',
                                type: 'number',
                                role: 'value',
                                unit: 'Wh'
                                });
                                createState(idActiveAbsolutplus, 0, {
                                name: '',
                                type: 'number',
                                role: 'value',
                                unit: 'Wh'
                                });
                                createState(idActiveVerbraucht, 0, {
                                name: '',
                                type: 'number',
                                role: 'value',
                                unit: 'Wh'
                                });
                                createState(idActiveProduziert, 0, {
                                name: '',
                                type: 'number',
                                role: 'value',
                                unit: 'Wh'
                                });
                                createState(idReactiveVerbraucht, 0, {
                                name: '',
                                type: 'number',
                                role: 'value',
                                unit: 'Wh'
                                });
                                createState(idReactiveProduziert, 0, {
                                name: '',
                                type: 'number',
                                role: 'value',
                                unit: 'Wh'
                                });
                                
                                
                                var request = require("request");
                                var myJson = {};
                                
                                function parseJson(text) {
                                if (text === "") return {};
                                try {
                                json = JSON.parse(text);
                                } catch (ex) {
                                json = {};
                                }
                                if(!json) json = {};
                                return json;
                                }
                                
                                function readJson(url, callback) {
                                request(url, function (err, state, body){
                                if (body) {
                                var json = parseJson(body);
                                callback(null, json);
                                } else {
                                var error = "(" + err + ") ERROR request from: " + url;
                                log(error, "warn");
                                callback(error, null);
                                }
                                });
                                }
                                
                                function main() {
                                readJson(urlInverter, function(err,json) {
                                if(!err) {
                                myJson = json;
                                //log( myJson.Body.Data.DeviceStatus.InverterState);
                                setState(idInverter ,myJson.Body.Data.DeviceStatus.InverterState);
                                setState(idIAC ,parseFloat(myJson.Body.Data.IAC.Value));
                                setState(idIAC_L1 ,parseFloat(myJson.Body.Data.IAC_L1.Value));
                                setState(idIAC_L2 ,parseFloat(myJson.Body.Data.IAC_L2.Value));
                                setState(idIAC_L3 ,parseFloat(myJson.Body.Data.IAC_L3.Value));
                                setState(idPAC ,parseFloat(myJson.Body.Data.PAC.Value));
                                setState(idSAC ,parseFloat(myJson.Body.Data.SAC.Value));
                                setState(idUAC ,parseFloat(myJson.Body.Data.UAC.Value));
                                setState(idIDC_1 ,parseFloat(myJson.Body.Data.IDC.Value));
                                setState(idIDC_2 ,parseFloat(myJson.Body.Data.IDC_2.Value));
                                setState(idUDC_1 ,parseFloat(myJson.Body.Data.UDC.Value));
                                setState(idUDC_2 ,parseFloat(myJson.Body.Data.UDC_2.Value));
                                setState(idPDC_1 ,(parseFloat(myJson.Body.Data.IDC.Value) * parseFloat(myJson.Body.Data.UDC.Value)));
                                setState(idPDC_2 ,(parseFloat(myJson.Body.Data.IDC_2.Value) * parseFloat(myJson.Body.Data.UDC_2.Value)));
                                
                                } else {
                                log("Error reading JSON from Fronius Wechselrichter. No data!","warn");
                                myJson = {};
                                }
                                });
                                
                                readJson(urlMeter, function(err,json) {
                                if(!err) {
                                myJson = json;
                                //log( myJson.Body.Data.Details.Model);
                                setState(idMIAC_1 ,parseFloat(myJson.Body.Data.ACBRIDGE_CURRENT_ACTIVE_MEAN_01_F32));
                                setState(idMIAC_2 ,parseFloat(myJson.Body.Data.ACBRIDGE_CURRENT_ACTIVE_MEAN_02_F32));
                                setState(idMIAC_3 ,parseFloat(myJson.Body.Data.ACBRIDGE_CURRENT_ACTIVE_MEAN_03_F32));
                                setState(idMIAC_S ,parseFloat(myJson.Body.Data.ACBRIDGE_CURRENT_AC_SUM_NOW_F64));
                                setState(idMUAC_12 ,parseFloat(myJson.Body.Data.ACBRIDGE_VOLTAGE_MEAN_12_F32));
                                setState(idMUAC_23 ,parseFloat(myJson.Body.Data.ACBRIDGE_VOLTAGE_MEAN_23_F32));
                                setState(idMUAC_31 ,parseFloat(myJson.Body.Data.ACBRIDGE_VOLTAGE_MEAN_31_F32));
                                setState(idModel ,myJson.Body.Data.Details.Model);
                                setState(idSerial ,myJson.Body.Data.Details.Serial);
                                setState(idFrequenz ,parseFloat(myJson.Body.Data.GRID_FREQUENCY_MEAN_F32));
                                setState(idActiveAbsolutminus ,parseFloat(myJson.Body.Data.SMARTMETER_ENERGYACTIVE_ABSOLUT_MINUS_F64));
                                setState(idActiveAbsolutplus ,parseFloat(myJson.Body.Data.SMARTMETER_ENERGYACTIVE_ABSOLUT_PLUS_F64));
                                setState(idActiveVerbraucht ,parseFloat(myJson.Body.Data.SMARTMETER_ENERGYACTIVE_CONSUMED_SUM_F64));
                                setState(idActiveProduziert ,parseFloat(myJson.Body.Data.SMARTMETER_ENERGYACTIVE_PRODUCED_SUM_F64));
                                setState(idReactiveVerbraucht ,parseFloat(myJson.Body.Data.SMARTMETER_ENERGYREACTIVE_CONSUMED_SUM_F64));
                                setState(idReactiveProduziert ,parseFloat(myJson.Body.Data.SMARTMETER_ENERGYREACTIVE_PRODUCED_SUM_F64));
                                
                                
                                } else {
                                log("Error reading JSON from Fronius SmartMeter. No data!","warn");
                                myJson = {};
                                }
                                });
                                
                                }
                                
                                schedule("*/5 * * * * *", function () { // poll every 5 sec
                                main();
                                });
                                
                                // poll values at startup
                                setTimeout(main,1000);
                                

                                Mod-Edit: Code/Log in Code Tags gepackt. Bitte benutzt die Code Tags Funktion -> </>
                                Hier gehts zur Hilfe.

                                JB_SullivanJ 1 Reply Last reply
                                0
                                • M Mike97714

                                  @qqolli
                                  Ne hier mal das Java Skript (IP musst du in den ersten 2 Zeilen anpassen)

                                  var urlInverter = 'http://10.6.9.57/solar_api/v1/GetInverterRealtimeData.cgi?Scope=Device&DeviceID=1&DataCollection=CommonInverterData';
                                  var urlMeter = 'http://10.6.9.57/solar_api/v1/GetMeterRealtimeData.cgi?Scope=Device&DeviceId=0';
                                  var path = "FroniusSymoGEN24.";
                                  var pathInverter = "inverter.";
                                  var pathMeter = "meter.";
                                  
                                  var idInverter = path + pathInverter + "Inverter";
                                  var idIAC = path + pathInverter + "IAC";
                                  var idIAC_L1 = path + pathInverter + "IACL1";
                                  var idIAC_L2 = path + pathInverter + "IACL2";
                                  var idIAC_L3 = path + pathInverter + "IACL3";
                                  var idPAC = path + pathInverter + "PAC";
                                  var idSAC = path + pathInverter + "SAC";
                                  var idUAC = path + pathInverter + "UAC";
                                  var idUDC_1 = path + pathInverter + "UDC1";
                                  var idUDC_2 = path + pathInverter + "UDC2";
                                  var idIDC_1 = path + pathInverter + "IDC1";
                                  var idIDC_2 = path + pathInverter + "IDC2";
                                  var idPDC_1 = path + pathInverter + "PDC1";
                                  var idPDC_2 = path + pathInverter + "PDC2";
                                  
                                  var idMIAC_1 = path + pathMeter + "IAC_1";
                                  var idMIAC_2 = path + pathMeter + "IAC_2";
                                  var idMIAC_3 = path + pathMeter + "IAC_3";
                                  var idMIAC_S = path + pathMeter + "IAC_S";
                                  var idMUAC_12 = path + pathMeter + "UAC_12";
                                  var idMUAC_23 = path + pathMeter + "UAC_23";
                                  var idMUAC_31 = path + pathMeter + "UAC_31";
                                  var idModel = path + pathMeter + "Model";
                                  var idSerial = path + pathMeter + "Serial";
                                  var idFrequenz = path + pathMeter + "Frequenz";
                                  var idActiveAbsolutminus = path + pathMeter + "ActiveAbsolutminus";
                                  var idActiveAbsolutplus = path + pathMeter + "ActiveAbsolutplus";
                                  var idActiveVerbraucht = path + pathMeter + "ActiveVerbraucht";
                                  var idActiveProduziert = path + pathMeter + "ActiveProduziert";
                                  var idReactiveVerbraucht = path + pathMeter + "ReactiveVerbraucht";
                                  var idReactiveProduziert = path + pathMeter + "ReactiveProduziert";
                                  
                                  
                                  createState(idInverter, 0, {
                                  name: 'Wechselrichter Status',
                                  type: 'string',
                                  role: 'value',
                                  unit: ' '
                                  });
                                  createState(idIAC, 0, {
                                  name: 'AC Ausgangsstrom',
                                  type: 'number',
                                  role: 'value',
                                  unit: 'A'
                                  });
                                  createState(idIAC_L1, 0, {
                                  name: 'AC Ausgangsstrom L1',
                                  type: 'number',
                                  role: 'value',
                                  unit: 'A'
                                  });
                                  createState(idIAC_L2, 0, {
                                  name: 'AC Ausgangsstrom L2',
                                  type: 'number',
                                  role: 'value',
                                  unit: 'A'
                                  });
                                  createState(idIAC_L3, 0, {
                                  name: 'AC Ausgangsstrom L3',
                                  type: 'number',
                                  role: 'value',
                                  unit: 'A'
                                  });
                                  createState(idPAC, 0, {
                                  name: 'AC Ausgangsleistung',
                                  type: 'number',
                                  role: 'value',
                                  unit: 'W'
                                  });
                                  createState(idSAC, 0, {
                                  name: 'AC Scheinleistung',
                                  type: 'number',
                                  role: 'value',
                                  unit: 'VA'
                                  });
                                  createState(idUAC, 0, {
                                  name: 'AC Ausgangsspannung',
                                  type: 'number',
                                  role: 'value',
                                  unit: 'V'
                                  });
                                  createState(idUDC_1, 0, {
                                  name: 'DC Eingangsspannung 1',
                                  type: 'number',
                                  role: 'value',
                                  unit: 'V'
                                  });
                                  createState(idUDC_2, 0, {
                                  name: 'DC Eingangsspannung 2',
                                  type: 'number',
                                  role: 'value',
                                  unit: 'V'
                                  });
                                  createState(idIDC_1, 0, {
                                  name: 'DC Eingangsstrom 1',
                                  type: 'number',
                                  role: 'value',
                                  unit: 'A'
                                  });
                                  createState(idIDC_2, 0, {
                                  name: 'DC Eingangsstrom 2',
                                  type: 'number',
                                  role: 'value',
                                  unit: 'A'
                                  });
                                  createState(idPDC_1, 0, {
                                  name: 'DC Eingangsleistung 1',
                                  type: 'number',
                                  role: 'value',
                                  unit: 'W'
                                  });
                                  createState(idPDC_2, 0, {
                                  name: 'DC Eingangsleistung 2',
                                  type: 'number',
                                  role: 'value',
                                  unit: 'W'
                                  });
                                  
                                  createState(idMIAC_1, 0, {
                                  name: 'AC Strom L1',
                                  type: 'number',
                                  role: 'value',
                                  unit: 'A'
                                  });
                                  createState(idMIAC_2, 0, {
                                  name: 'AC Strom L2',
                                  type: 'number',
                                  role: 'value',
                                  unit: 'A'
                                  });
                                  createState(idMIAC_3, 0, {
                                  name: 'AC Strom L3',
                                  type: 'number',
                                  role: 'value',
                                  unit: 'A'
                                  });
                                  createState(idMIAC_S, 0, {
                                  name: 'AC Strom Summe',
                                  type: 'number',
                                  role: 'value',
                                  unit: 'A'
                                  });
                                  createState(idMUAC_12, 0, {
                                  name: 'AC Spannung L1-L2',
                                  type: 'number',
                                  role: 'value',
                                  unit: 'V'
                                  });
                                  createState(idMUAC_23, 0, {
                                  name: 'AC Spannung L2-L3',
                                  type: 'number',
                                  role: 'value',
                                  unit: 'V'
                                  });
                                  createState(idMUAC_31, 0, {
                                  name: 'AC Spannung L3-L1',
                                  type: 'number',
                                  role: 'value',
                                  unit: 'V'
                                  });
                                  createState(idModel, 0, {
                                  name: 'Model Smartmeter',
                                  type: 'string',
                                  role: 'value'
                                  });
                                  createState(idSerial, 0, {
                                  name: 'SerienNr. Smartmeter',
                                  type: 'string',
                                  role: 'value'
                                  });
                                  createState(idFrequenz, 0, {
                                  name: 'Netzfrequenz',
                                  type: 'number',
                                  role: 'value',
                                  unit: 'Hz'
                                  });
                                  createState(idActiveAbsolutminus, 0, {
                                  name: '',
                                  type: 'number',
                                  role: 'value',
                                  unit: 'Wh'
                                  });
                                  createState(idActiveAbsolutplus, 0, {
                                  name: '',
                                  type: 'number',
                                  role: 'value',
                                  unit: 'Wh'
                                  });
                                  createState(idActiveVerbraucht, 0, {
                                  name: '',
                                  type: 'number',
                                  role: 'value',
                                  unit: 'Wh'
                                  });
                                  createState(idActiveProduziert, 0, {
                                  name: '',
                                  type: 'number',
                                  role: 'value',
                                  unit: 'Wh'
                                  });
                                  createState(idReactiveVerbraucht, 0, {
                                  name: '',
                                  type: 'number',
                                  role: 'value',
                                  unit: 'Wh'
                                  });
                                  createState(idReactiveProduziert, 0, {
                                  name: '',
                                  type: 'number',
                                  role: 'value',
                                  unit: 'Wh'
                                  });
                                  
                                  
                                  var request = require("request");
                                  var myJson = {};
                                  
                                  function parseJson(text) {
                                  if (text === "") return {};
                                  try {
                                  json = JSON.parse(text);
                                  } catch (ex) {
                                  json = {};
                                  }
                                  if(!json) json = {};
                                  return json;
                                  }
                                  
                                  function readJson(url, callback) {
                                  request(url, function (err, state, body){
                                  if (body) {
                                  var json = parseJson(body);
                                  callback(null, json);
                                  } else {
                                  var error = "(" + err + ") ERROR request from: " + url;
                                  log(error, "warn");
                                  callback(error, null);
                                  }
                                  });
                                  }
                                  
                                  function main() {
                                  readJson(urlInverter, function(err,json) {
                                  if(!err) {
                                  myJson = json;
                                  //log( myJson.Body.Data.DeviceStatus.InverterState);
                                  setState(idInverter ,myJson.Body.Data.DeviceStatus.InverterState);
                                  setState(idIAC ,parseFloat(myJson.Body.Data.IAC.Value));
                                  setState(idIAC_L1 ,parseFloat(myJson.Body.Data.IAC_L1.Value));
                                  setState(idIAC_L2 ,parseFloat(myJson.Body.Data.IAC_L2.Value));
                                  setState(idIAC_L3 ,parseFloat(myJson.Body.Data.IAC_L3.Value));
                                  setState(idPAC ,parseFloat(myJson.Body.Data.PAC.Value));
                                  setState(idSAC ,parseFloat(myJson.Body.Data.SAC.Value));
                                  setState(idUAC ,parseFloat(myJson.Body.Data.UAC.Value));
                                  setState(idIDC_1 ,parseFloat(myJson.Body.Data.IDC.Value));
                                  setState(idIDC_2 ,parseFloat(myJson.Body.Data.IDC_2.Value));
                                  setState(idUDC_1 ,parseFloat(myJson.Body.Data.UDC.Value));
                                  setState(idUDC_2 ,parseFloat(myJson.Body.Data.UDC_2.Value));
                                  setState(idPDC_1 ,(parseFloat(myJson.Body.Data.IDC.Value) * parseFloat(myJson.Body.Data.UDC.Value)));
                                  setState(idPDC_2 ,(parseFloat(myJson.Body.Data.IDC_2.Value) * parseFloat(myJson.Body.Data.UDC_2.Value)));
                                  
                                  } else {
                                  log("Error reading JSON from Fronius Wechselrichter. No data!","warn");
                                  myJson = {};
                                  }
                                  });
                                  
                                  readJson(urlMeter, function(err,json) {
                                  if(!err) {
                                  myJson = json;
                                  //log( myJson.Body.Data.Details.Model);
                                  setState(idMIAC_1 ,parseFloat(myJson.Body.Data.ACBRIDGE_CURRENT_ACTIVE_MEAN_01_F32));
                                  setState(idMIAC_2 ,parseFloat(myJson.Body.Data.ACBRIDGE_CURRENT_ACTIVE_MEAN_02_F32));
                                  setState(idMIAC_3 ,parseFloat(myJson.Body.Data.ACBRIDGE_CURRENT_ACTIVE_MEAN_03_F32));
                                  setState(idMIAC_S ,parseFloat(myJson.Body.Data.ACBRIDGE_CURRENT_AC_SUM_NOW_F64));
                                  setState(idMUAC_12 ,parseFloat(myJson.Body.Data.ACBRIDGE_VOLTAGE_MEAN_12_F32));
                                  setState(idMUAC_23 ,parseFloat(myJson.Body.Data.ACBRIDGE_VOLTAGE_MEAN_23_F32));
                                  setState(idMUAC_31 ,parseFloat(myJson.Body.Data.ACBRIDGE_VOLTAGE_MEAN_31_F32));
                                  setState(idModel ,myJson.Body.Data.Details.Model);
                                  setState(idSerial ,myJson.Body.Data.Details.Serial);
                                  setState(idFrequenz ,parseFloat(myJson.Body.Data.GRID_FREQUENCY_MEAN_F32));
                                  setState(idActiveAbsolutminus ,parseFloat(myJson.Body.Data.SMARTMETER_ENERGYACTIVE_ABSOLUT_MINUS_F64));
                                  setState(idActiveAbsolutplus ,parseFloat(myJson.Body.Data.SMARTMETER_ENERGYACTIVE_ABSOLUT_PLUS_F64));
                                  setState(idActiveVerbraucht ,parseFloat(myJson.Body.Data.SMARTMETER_ENERGYACTIVE_CONSUMED_SUM_F64));
                                  setState(idActiveProduziert ,parseFloat(myJson.Body.Data.SMARTMETER_ENERGYACTIVE_PRODUCED_SUM_F64));
                                  setState(idReactiveVerbraucht ,parseFloat(myJson.Body.Data.SMARTMETER_ENERGYREACTIVE_CONSUMED_SUM_F64));
                                  setState(idReactiveProduziert ,parseFloat(myJson.Body.Data.SMARTMETER_ENERGYREACTIVE_PRODUCED_SUM_F64));
                                  
                                  
                                  } else {
                                  log("Error reading JSON from Fronius SmartMeter. No data!","warn");
                                  myJson = {};
                                  }
                                  });
                                  
                                  }
                                  
                                  schedule("*/5 * * * * *", function () { // poll every 5 sec
                                  main();
                                  });
                                  
                                  // poll values at startup
                                  setTimeout(main,1000);
                                  

                                  Mod-Edit: Code/Log in Code Tags gepackt. Bitte benutzt die Code Tags Funktion -> </>
                                  Hier gehts zur Hilfe.

                                  JB_SullivanJ Offline
                                  JB_SullivanJ Offline
                                  JB_Sullivan
                                  wrote on last edited by JB_Sullivan
                                  #204

                                  @Mike97714

                                  Perfekt - läuft !!!! Ist ja witzig bei den IP Adressen - ich habe vorne auch 10. und hinten auch .57 :grin: :grin: :grin:

                                  3be6522c-4785-4840-b0c7-a3e7fbb46057-image.png

                                  PS: Kann man den API aufrufen die in Beitrag 63 alle genannt wurden ggf. noch mehr per JavaSkript aus dem WR heraus holen? Wenn ich die dort genannten URL`s in die BrowserZeile eingebe, bekomme ich auch entsprechende (für mich kryptische) Rückmeldungen.

                                  https://forum.iobroker.net/topic/33809/fronius-adapter-entwicklung-eingestellt/67

                                  z.B. so:

                                  {
                                     "Body" : {
                                        "Data" : {
                                           "Inverters" : {
                                              "1" : {
                                                 "Battery_Mode" : "normal",
                                                 "DT" : 1,
                                                 "P" : 620,
                                                 "SOC" : 9.5
                                              }
                                           },
                                           "Site" : {
                                              "BackupMode" : false,
                                              "BatteryStandby" : false,
                                              "E_Day" : null,
                                              "E_Total" : null,
                                              "E_Year" : null,
                                              "Meter_Location" : "grid",
                                              "Mode" : "bidirectional",
                                              "P_Akku" : -256.51113891601562,
                                              "P_Grid" : -5.7000000000000002,
                                              "P_Load" : -614.29999999999995,
                                              "P_PV" : 921.45986938476562,
                                              "rel_Autonomy" : 100.0,
                                              "rel_SelfConsumption" : 99.08064516129032
                                           },
                                           "Version" : "12"
                                        }
                                     },
                                     "Head" : {
                                        "RequestArguments" : {
                                           "Scope" : "System"
                                        },
                                        "Status" : {
                                           "Code" : 0,
                                           "Reason" : "",
                                           "UserMessage" : ""
                                        },
                                        "Timestamp" : "2020-11-18T11:59:15+00:00"
                                     }
                                  }
                                  

                                  ioBroker (since 2018) auf Intel Core i3-5005U NUC und Windwos10 Pro

                                  M qqolliQ 2 Replies Last reply
                                  0
                                  • JB_SullivanJ JB_Sullivan

                                    @Mike97714

                                    Perfekt - läuft !!!! Ist ja witzig bei den IP Adressen - ich habe vorne auch 10. und hinten auch .57 :grin: :grin: :grin:

                                    3be6522c-4785-4840-b0c7-a3e7fbb46057-image.png

                                    PS: Kann man den API aufrufen die in Beitrag 63 alle genannt wurden ggf. noch mehr per JavaSkript aus dem WR heraus holen? Wenn ich die dort genannten URL`s in die BrowserZeile eingebe, bekomme ich auch entsprechende (für mich kryptische) Rückmeldungen.

                                    https://forum.iobroker.net/topic/33809/fronius-adapter-entwicklung-eingestellt/67

                                    z.B. so:

                                    {
                                       "Body" : {
                                          "Data" : {
                                             "Inverters" : {
                                                "1" : {
                                                   "Battery_Mode" : "normal",
                                                   "DT" : 1,
                                                   "P" : 620,
                                                   "SOC" : 9.5
                                                }
                                             },
                                             "Site" : {
                                                "BackupMode" : false,
                                                "BatteryStandby" : false,
                                                "E_Day" : null,
                                                "E_Total" : null,
                                                "E_Year" : null,
                                                "Meter_Location" : "grid",
                                                "Mode" : "bidirectional",
                                                "P_Akku" : -256.51113891601562,
                                                "P_Grid" : -5.7000000000000002,
                                                "P_Load" : -614.29999999999995,
                                                "P_PV" : 921.45986938476562,
                                                "rel_Autonomy" : 100.0,
                                                "rel_SelfConsumption" : 99.08064516129032
                                             },
                                             "Version" : "12"
                                          }
                                       },
                                       "Head" : {
                                          "RequestArguments" : {
                                             "Scope" : "System"
                                          },
                                          "Status" : {
                                             "Code" : 0,
                                             "Reason" : "",
                                             "UserMessage" : ""
                                          },
                                          "Timestamp" : "2020-11-18T11:59:15+00:00"
                                       }
                                    }
                                    
                                    M Offline
                                    M Offline
                                    Mike97714
                                    wrote on last edited by
                                    #205

                                    @JB_Sullivan
                                    Welche benötigst du noch ?
                                    Ich habe (noch) keinen Akku und die Akkudaten deshalb noch nicht ausgelesen.

                                    Gruß Mike

                                    JB_SullivanJ 1 Reply Last reply
                                    0
                                    • JB_SullivanJ JB_Sullivan

                                      @Mike97714

                                      Perfekt - läuft !!!! Ist ja witzig bei den IP Adressen - ich habe vorne auch 10. und hinten auch .57 :grin: :grin: :grin:

                                      3be6522c-4785-4840-b0c7-a3e7fbb46057-image.png

                                      PS: Kann man den API aufrufen die in Beitrag 63 alle genannt wurden ggf. noch mehr per JavaSkript aus dem WR heraus holen? Wenn ich die dort genannten URL`s in die BrowserZeile eingebe, bekomme ich auch entsprechende (für mich kryptische) Rückmeldungen.

                                      https://forum.iobroker.net/topic/33809/fronius-adapter-entwicklung-eingestellt/67

                                      z.B. so:

                                      {
                                         "Body" : {
                                            "Data" : {
                                               "Inverters" : {
                                                  "1" : {
                                                     "Battery_Mode" : "normal",
                                                     "DT" : 1,
                                                     "P" : 620,
                                                     "SOC" : 9.5
                                                  }
                                               },
                                               "Site" : {
                                                  "BackupMode" : false,
                                                  "BatteryStandby" : false,
                                                  "E_Day" : null,
                                                  "E_Total" : null,
                                                  "E_Year" : null,
                                                  "Meter_Location" : "grid",
                                                  "Mode" : "bidirectional",
                                                  "P_Akku" : -256.51113891601562,
                                                  "P_Grid" : -5.7000000000000002,
                                                  "P_Load" : -614.29999999999995,
                                                  "P_PV" : 921.45986938476562,
                                                  "rel_Autonomy" : 100.0,
                                                  "rel_SelfConsumption" : 99.08064516129032
                                               },
                                               "Version" : "12"
                                            }
                                         },
                                         "Head" : {
                                            "RequestArguments" : {
                                               "Scope" : "System"
                                            },
                                            "Status" : {
                                               "Code" : 0,
                                               "Reason" : "",
                                               "UserMessage" : ""
                                            },
                                            "Timestamp" : "2020-11-18T11:59:15+00:00"
                                         }
                                      }
                                      
                                      qqolliQ Offline
                                      qqolliQ Offline
                                      qqolli
                                      wrote on last edited by
                                      #206

                                      @JB_Sullivan

                                      ?!?, jetzt habt ihr mich komplett abgehängt. Ich dachte das das mit den Holding-Registern zumindest bei mir und bei Dir nicht ging. Die API-Aufrufe gehen, aber im Modbus-Adapter mit den geposteten Holding-Registern geht nicht (s. Fehlermeldungen weiter oben im Post). Wie hast Du es hinbekommen, das es jetzt bei Dir geht? Dachte die IP ist dieselbe wie die vom Dashboard?

                                      JB_SullivanJ 1 Reply Last reply
                                      0
                                      • M Mike97714

                                        @JB_Sullivan
                                        Welche benötigst du noch ?
                                        Ich habe (noch) keinen Akku und die Akkudaten deshalb noch nicht ausgelesen.

                                        Gruß Mike

                                        JB_SullivanJ Offline
                                        JB_SullivanJ Offline
                                        JB_Sullivan
                                        wrote on last edited by
                                        #207

                                        @Mike97714

                                        Einmal die Seriennummern der Geräte

                                        IP/solar_api/v1/GetActiveDeviceInfo.cgi?DeviceClass=System

                                        den Akku mit dem SoC

                                        IP/solar_api/v1/GetPowerFlowRealtimeData.fcgi?Scope=System

                                        Hier wäre noch der Custom Name drin

                                        IP/solar_api/v1/GetInverterInfo.cgi

                                        ioBroker (since 2018) auf Intel Core i3-5005U NUC und Windwos10 Pro

                                        qqolliQ 1 Reply Last reply
                                        0
                                        • JB_SullivanJ JB_Sullivan

                                          @Mike97714

                                          Einmal die Seriennummern der Geräte

                                          IP/solar_api/v1/GetActiveDeviceInfo.cgi?DeviceClass=System

                                          den Akku mit dem SoC

                                          IP/solar_api/v1/GetPowerFlowRealtimeData.fcgi?Scope=System

                                          Hier wäre noch der Custom Name drin

                                          IP/solar_api/v1/GetInverterInfo.cgi

                                          qqolliQ Offline
                                          qqolliQ Offline
                                          qqolli
                                          wrote on last edited by
                                          #208

                                          @JB_Sullivan

                                          Ja, weiss ich und wenn ich es im Browser eingebe bekomme ich auch eine Rückmeldung. Aber wie bekommst Du es in die DP ohne das der Modbusadapter grün ist?

                                          DP für Inverter und Meter sind bei mir leer :-(

                                          JB_SullivanJ 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          314

                                          Online

                                          32.6k

                                          Users

                                          82.3k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe