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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    21
    1
    883

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.4k

FRONIUS Adapter Entwicklung eingestellt?

Scheduled Pinned Locked Moved Entwicklung
fronius
440 Posts 44 Posters 120.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

    @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 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 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 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
                            • qqolliQ qqolli

                              @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 Offline
                              JB_SullivanJ Offline
                              JB_Sullivan
                              wrote on last edited by
                              #209

                              @qqolli

                              das hat jetzt offensichtlich auch nichts mit dem ModBUs zu tun. Mike hat heraus gefunden, wie man die Daten die bestehende API liefert per JavaSkript (das was er oben gepostet hat) als Datenpunkte aufbereiten kann.

                              Offensichtlich liefert der GEN24 schon eine ganze Menge an Datenpunkten, auch ohne das man alles mögliche dafür freischalten muss. Das Problem scheint zu sein, das der "alte" ioB Fronius Adapter vermutliche eine andere Abfrage Struktur verwendet, weshalb die Werte einfach im jetzigen Fronius Adapter nicht dargestellt werden.

                              Vielleicht sollte man mal @Idittmar kontaktieren, denn er hat doch einiges im Homematic Forum zu Thema Fronius beigetragen.

                              ioBroker auf Intel Core i3-5005U NUC und Windwos10 Pro

                              1 Reply Last reply
                              0
                              • qqolliQ qqolli

                                @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 Offline
                                JB_SullivanJ Offline
                                JB_Sullivan
                                wrote on last edited by
                                #210

                                @qqolli

                                Du musst im ioB Admin unter Skripte das Skipt was Mike oben gepostet hat einbauen und starten. Dann werden die DP`s unter 0.javascript selbstständig angelegt.

                                ioBroker auf Intel Core i3-5005U NUC und Windwos10 Pro

                                M qqolliQ 2 Replies Last reply
                                0
                                • JB_SullivanJ JB_Sullivan

                                  @qqolli

                                  Du musst im ioB Admin unter Skripte das Skipt was Mike oben gepostet hat einbauen und starten. Dann werden die DP`s unter 0.javascript selbstständig angelegt.

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

                                  @JB_Sullivan kannst du mir mal die Browserausgabe der 3 API-Aufrufe zukommen lassen ? Dann pflege ich die Datenpunkte noch ein.

                                  JB_SullivanJ 1 Reply Last reply
                                  0
                                  • JB_SullivanJ JB_Sullivan

                                    @qqolli

                                    Du musst im ioB Admin unter Skripte das Skipt was Mike oben gepostet hat einbauen und starten. Dann werden die DP`s unter 0.javascript selbstständig angelegt.

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

                                    @JB_Sullivan

                                    Ja geil! Dem geht. Bin heute ein bisserl begriffsstutzig :-)

                                    @Mike97714 Danke für Dein Skript!

                                    1 Reply Last reply
                                    0
                                    • M Mike97714

                                      @JB_Sullivan kannst du mir mal die Browserausgabe der 3 API-Aufrufe zukommen lassen ? Dann pflege ich die Datenpunkte noch ein.

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

                                      @Mike97714

                                      JO - hier Bitte schön

                                      Seriennummern

                                      {
                                         "Body" : {
                                            "Data" : {
                                               "1" : {
                                                  "DT" : 1,
                                                  "Serial" : "Speicher"
                                               },
                                               "Meter" : {
                                                  "0" : {
                                                     "DT" : -1,
                                                     "Serial" : "Wechselrichter"
                                                  }
                                               },
                                               "Ohmpilot" : {},
                                               "Storage" : {
                                                  "0" : {
                                                     "DT" : -1,
                                                     "Serial" : "Smartmeter vermute ich     "
                                                  }
                                               }
                                            }
                                         },
                                         "Head" : {
                                            "RequestArguments" : {
                                               "DeviceClass" : "System"
                                            },
                                            "Status" : {
                                               "Code" : 0,
                                               "Reason" : "",
                                               "UserMessage" : ""
                                            },
                                            "Timestamp" : "2020-11-18T13:21:49+00:00"
                                         }
                                      }
                                      

                                      powerflow - aber zusätzlich mit BYD Speicher

                                      {
                                         "Body" : {
                                            "Data" : {
                                               "Inverters" : {
                                                  "1" : {
                                                     "Battery_Mode" : "normal",
                                                     "DT" : 1,
                                                     "P" : 532,
                                                     "SOC" : 23.0
                                                  }
                                               },
                                               "Site" : {
                                                  "BackupMode" : false,
                                                  "BatteryStandby" : false,
                                                  "E_Day" : null,
                                                  "E_Total" : null,
                                                  "E_Year" : null,
                                                  "Meter_Location" : "grid",
                                                  "Mode" : "bidirectional",
                                                  "P_Akku" : -2071.77783203125,
                                                  "P_Grid" : -2.6000000000000001,
                                                  "P_Load" : -529.39999999999998,
                                                  "P_PV" : 2648.8490829467773,
                                                  "rel_Autonomy" : 100.0,
                                                  "rel_SelfConsumption" : 99.511278195488714
                                               },
                                               "Version" : "12"
                                            }
                                         },
                                         "Head" : {
                                            "RequestArguments" : {
                                               "Scope" : "System"
                                            },
                                            "Status" : {
                                               "Code" : 0,
                                               "Reason" : "",
                                               "UserMessage" : ""
                                            },
                                            "Timestamp" : "2020-11-18T13:23:19+00:00"
                                         }
                                      }
                                      

                                      .... und hier eher unwichtig aber Nice to Have - Custom Name

                                      {
                                         "Body" : {
                                            "Data" : {
                                               "1" : {
                                                  "CustomName" : "JB_Sullivan",
                                                  "DT" : 1,
                                                  "PVPower" : 0,
                                                  "Show" : 1,
                                                  "StatusCode" : "Running",
                                                  "UniqueID" : "SN Wechselrichter"
                                               }
                                            }
                                         },
                                         "Head" : {
                                            "RequestArguments" : {},
                                            "Status" : {
                                               "Code" : 0,
                                               "Reason" : "",
                                               "UserMessage" : ""
                                            },
                                            "Timestamp" : "2020-11-18T13:24:40+00:00"
                                         }
                                      }
                                      

                                      Ich habe gerade die Doku der Fronius API V1 am Wickel und teste mal alle Aufrufe durch, vielleicht geht ja noch mehr.

                                      ioBroker auf Intel Core i3-5005U NUC und Windwos10 Pro

                                      1 Reply Last reply
                                      0
                                      • JB_SullivanJ Offline
                                        JB_SullivanJ Offline
                                        JB_Sullivan
                                        wrote on last edited by JB_Sullivan
                                        #214

                                        Also die API V1 nimmt in vielen Passagen schon Bezug auf den GEN24 - wenn auch nur mit der Aussage das der Datensatz nicht mehr verfügbar ist, oder einen Error zurück liefert - so z.B. was das auslesen des Akku Hersteller betrifft.

                                        823f63a4-a9df-4645-896d-b0afcf93470f-image.png

                                        50f7b4a7-70ee-42e5-8de3-9cfdded6e550-image.png

                                        Naja am Ende der Doku steht es auch - man sollte sich jetzt nicht zuviel Arbeit machen. Ist alles nur temporär und mit @Mike97714 seinem Skript kommt man für den Übergang schon an allerlei Daten heran.

                                        Müssen wir halt bis Dezember warten bis Fronius tatsächlich eine passende API veröffentlicht die auch für den GEN24 richtig funktioniert.

                                        ioBroker auf Intel Core i3-5005U NUC und Windwos10 Pro

                                        1 Reply Last reply
                                        0
                                        • JB_SullivanJ Offline
                                          JB_SullivanJ Offline
                                          JB_Sullivan
                                          wrote on last edited by
                                          #215

                                          @JB_Sullivan sagte in FRONIUS Adapter Entwicklung eingestellt?:

                                          @Mike97714

                                          So, wieder zu Hause - jetzt hatte ich mal Zeit das Skript genau anzusehen. Also 5 Sekunden Aktualisierung habe ich jetzt erstmal auf 30 Sekunden hoch gesetzt. Ich glaube alle 5 Sekunden soviele Werte ist für den Netzwerk Trafic nicht unbedingt zuträglich - und mal ehrlich, braucht man einen so hohen Aktualisierungsintervall?

                                          ..... aber wo ist der Unterschied zwischen AktiveAbsolutMinus/Plus und AktivProduziert / AktivVerbraucht - sind bei mir bei allen 4 Datenpunkten die gleichen Werte drin. Hatte eigentlich gedacht, das ich auf diese Werte Sourceanalytix ansetzen könnte.

                                          ..... und was sind das für Werte von Reaktiv Produziert / Verbraucht? Ich kann die mit keinen Werten aus meiner History in Zusammenhang bringen.

                                          ioBroker auf Intel Core i3-5005U NUC und Windwos10 Pro

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


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          805

                                          Online

                                          32.5k

                                          Users

                                          81.6k

                                          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