Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Entwicklung
    4. FRONIUS Adapter Entwicklung eingestellt?

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    FRONIUS Adapter Entwicklung eingestellt?

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

      @Mike97714

      Nein wüsste auch nicht was ich da eintragen soll, bzw. wo ich all die Infos herbekomme.

      Hättest Du einen Vorschlag, was man da eintragen muss?

      JB_Sullivan 1 Reply Last reply Reply Quote 0
      • JB_Sullivan
        JB_Sullivan @qqolli last edited by

        @qqolli Hier bei Beitrag 136 hatte @Mike97714 das schonmal gepostet. Ich habe es auch so probiert, aber der Adapter blieb Gelb - so wie bei dir.

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

        qqolli 1 Reply Last reply Reply Quote 0
        • qqolli
          qqolli @JB_Sullivan last edited by

          @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_Sullivan M 2 Replies Last reply Reply Quote 0
          • JB_Sullivan
            JB_Sullivan @qqolli last edited by

            @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"}]
            
            qqolli 1 Reply Last reply Reply Quote 0
            • qqolli
              qqolli @JB_Sullivan last edited by

              @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 Reply Quote 0
              • M
                Mike97714 @qqolli last edited by

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

                qqolli 1 Reply Last reply Reply Quote 0
                • qqolli
                  qqolli @Mike97714 last edited by

                  @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 Reply Quote 0
                  • M
                    Mike97714 @qqolli last edited by

                    @qqolli
                    in diesem Post

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

                    das erste Bild sind die Modbuseinstellungen vom Wechselrichter

                    qqolli 2 Replies Last reply Reply Quote 0
                    • qqolli
                      qqolli @Mike97714 last edited by

                      @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 Reply Quote 0
                      • qqolli
                        qqolli @Mike97714 last edited by

                        @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 Reply Quote 0
                        • M
                          Mike97714 @qqolli last edited by

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

                          qqolli 1 Reply Last reply Reply Quote 0
                          • qqolli
                            qqolli @Mike97714 last edited by

                            @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 Reply Quote 0
                            • M
                              Mike97714 @qqolli last edited by

                              @qqolli

                              Genau

                              qqolli M 2 Replies Last reply Reply Quote 0
                              • qqolli
                                qqolli @Mike97714 last edited by

                                @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 Reply Quote 0
                                • M
                                  Mike97714 @Mike97714 last edited by

                                  Aber die API-Aufrufe mit Javaskript sollten auch so funktionieren

                                  qqolli JB_Sullivan 2 Replies Last reply Reply Quote 0
                                  • qqolli
                                    qqolli @Mike97714 last edited by

                                    @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 Reply Quote 0
                                    • JB_Sullivan
                                      JB_Sullivan @Mike97714 last edited by

                                      @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.

                                      1 Reply Last reply Reply Quote 0
                                      • M
                                        Mike97714 @qqolli last edited by Negalein

                                        @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_Sullivan 1 Reply Last reply Reply Quote 0
                                        • JB_Sullivan
                                          JB_Sullivan @Mike97714 last edited by JB_Sullivan

                                          @Mike97714

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

                                          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 qqolli 2 Replies Last reply Reply Quote 0
                                          • M
                                            Mike97714 @JB_Sullivan last edited by

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

                                            Gruß Mike

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            803
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            fronius
                                            44
                                            440
                                            86435
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo