Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

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

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Solax Photovoltaik Portal in ioBroker

NEWS

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

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

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.1k

Solax Photovoltaik Portal in ioBroker

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
22 Beiträge 14 Kommentatoren 8.3k Aufrufe 14 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • F Offline
    F Offline
    fastsonic
    schrieb am zuletzt editiert von fastsonic
    #3

    Hallo@all
    Ich habe noch etwas gesucht und das Script bei symcom mal näher angeschaut. Würde das Script im Parser plugin laufen wenn ich es versuche anzupassen?
    Für Tips wäre ich echt dankbar.

    [Back]
    
    <? 
    //Username Solax portal 
    define('USERNAME', '********'); 
      
    //Passwort the Solax portal. 
    define('PASSWORD', '************'); 
    
    //ID des Wechselrichters - kann man im Portal sehen
    $Solax_ID = "*******"; 
      
      
    // Ab hier sollte nichts mehr geändert werden.
    //********************************************
      
    //URL of the login form (Mobile Portal of Solax) - 2 Stufiger Anmeldeprozess
    define('LOGIN_FORM_URL', 'http://www.solax-portal.com/m/home/login'); 
    //Login action URL - Sendet die Anmeldung 
    define('LOGIN_ACTION_URL', 'http://www.solax-portal.com/m/home/loginpost'); 
    
    //CURL Config for authentication 
    
    define('USER_AGENT', 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.2309.372 Safari/537.36');
    define('COOKIE_FILE', 'cookie.txt'); 
    $postValues = array( 
        'username' => USERNAME, 
        'password' => PASSWORD 
    ); 
     $curl = curl_init(); 
    curl_setopt($curl, CURLOPT_URL, LOGIN_ACTION_URL);
    curl_setopt($curl, CURLOPT_POST, true); 
    curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($postValues));
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($curl, CURLOPT_COOKIEJAR, COOKIE_FILE);
    curl_setopt($curl, CURLOPT_USERAGENT, USER_AGENT);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_REFERER, LOGIN_FORM_URL);
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
    curl_exec($curl); 
    //echo curl_exec($curl); //test area in case we want to check what happens
    if(curl_errno($curl)){ 
        throw new Exception(curl_error($curl));
    } 
    
    $Zu_Loeschende_Werte = array("W","A","KW","kWH","kH","V","K","°","â");
    
    
    // Aufrufen der Übersichtsseite um diese zu parsen
    curl_setopt($curl, CURLOPT_URL, 'http://www.solax-portal.com/m/user/overview/'.$Solax_ID); 
    curl_setopt($curl, CURLOPT_COOKIEJAR, COOKIE_FILE);
    curl_setopt($curl, CURLOPT_USERAGENT, USER_AGENT);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    
    $overview_website = curl_exec($curl); 
    //echo $overview_website; 
    
    $dom_overview = new DOMDocument(); 
      
    $dom_overview->loadHTML($overview_website); 
    $tablerows = $dom_overview->getElementsByTagName('tr'); 
    foreach ($tablerows as $tablerow) 
    { 
        $Power_Now = stripos($tablerow->nodeValue, "Power Now"); 
        if($Power_Now !== false) 
        { 
            $trimmed = trim($tablerow->nodeValue); 
            $Power_Now = str_replace($Zu_Loeschende_Werte,"",substr($trimmed, -6));
            echo "Aktueller Stromverbrauch: ",$Power_Now,PHP_EOL;
             
            $ID_Power_Now = @IPS_GetVariableIDByName("Aktueller Stromverbrauch", $_IPS['SELF']);
            if($ID_Power_Now === false) 
        { 
            $ID_Power_Now = IPS_CreateVariable(2);
            IPS_SetName($ID_Power_Now, "Aktueller Stromverbrauch");
            IPS_SetParent($ID_Power_Now, $_IPS['SELF']);
        } 
        SetValue($ID_Power_Now,$Power_Now); 
        } 
    
    
        $Todays_Energy = stripos($tablerow->nodeValue, "Today's Energy"); 
        if($Todays_Energy !== false) 
        { 
            $trimmed = trim($tablerow->nodeValue); 
            $Todays_Energy = str_replace($Zu_Loeschende_Werte,"",substr($trimmed, -6));
            echo "Ertrag Heute: ",$Todays_Energy, PHP_EOL;
    
            $ID_Todays_Energy = @IPS_GetVariableIDByName("Ertrag Heute", $_IPS['SELF']);
            if($ID_Todays_Energy === false) 
        { 
            $ID_Todays_Energy = IPS_CreateVariable(2);
            IPS_SetName($ID_Todays_Energy, "Ertrag Heute");
            IPS_SetParent($ID_Todays_Energy, $_IPS['SELF']);
        } 
        SetValue($ID_Todays_Energy,$Todays_Energy);
        } 
         
         
                 
        $Monthly_Yield = stripos($tablerow->nodeValue, "Monthly Yield"); 
        if($Monthly_Yield !== false) 
        { 
            $trimmed = trim($tablerow->nodeValue); 
            $Monthly_Yield = str_replace($Zu_Loeschende_Werte,"",substr($trimmed, -13));
            echo "Ertrag Monat: ",$Monthly_Yield, PHP_EOL;
             
            $ID_Monthly_Yield = @IPS_GetVariableIDByName("Ertrag Monat", $_IPS['SELF']);
            if($ID_Monthly_Yield === false) 
        { 
            $ID_Monthly_Yield = IPS_CreateVariable(2);
            IPS_SetName($ID_Monthly_Yield, "Ertrag Monat");
            IPS_SetParent($ID_Monthly_Yield, $_IPS['SELF']);
        } 
        SetValue($ID_Monthly_Yield,$Monthly_Yield);
        } 
         
         
        $Yearly_Yield = stripos($tablerow->nodeValue, "Yearly Yield"); 
        if($Yearly_Yield !== false) 
        { 
            $trimmed = trim($tablerow->nodeValue); 
            $Yearly_Yield = str_replace($Zu_Loeschende_Werte,"",substr($trimmed, -13));
            echo "Ertrag Jahr: ",$Yearly_Yield, PHP_EOL;
             
            $ID_Yearly_Yield = @IPS_GetVariableIDByName("Ertrag Jahr", $_IPS['SELF']);
            if($ID_Yearly_Yield === false) 
        { 
            $ID_Yearly_Yield = IPS_CreateVariable(2);
            IPS_SetName($ID_Yearly_Yield, "Ertrag Jahr");
            IPS_SetParent($ID_Yearly_Yield, $_IPS['SELF']);
        } 
        SetValue($ID_Yearly_Yield,$Yearly_Yield);
        } 
         
         
        $Total_Energy = stripos($tablerow->nodeValue, "Total Energy"); 
        if($Total_Energy !== false) 
        { 
            $trimmed = trim($tablerow->nodeValue); 
            $Total_Energy = str_replace($Zu_Loeschende_Werte,"",substr($trimmed, -13));
            echo "Ertrag Gesamt: ",$Total_Energy, PHP_EOL;
    
            $ID_Total_Energy = @IPS_GetVariableIDByName("Ertrag Gesamt", $_IPS['SELF']);
            if($ID_Total_Energy === false) 
        { 
            $ID_Total_Energy = IPS_CreateVariable(2);
            IPS_SetName($ID_Total_Energy, "Ertrag Gesamt");
            IPS_SetParent($ID_Total_Energy, $_IPS['SELF']);
        } 
        SetValue($ID_Total_Energy,$Total_Energy);
        } 
         
    }   
    
    
    // Aufrufen der Statusseite mit Echtzeitdaten um diese zu parsen
    curl_setopt($curl, CURLOPT_URL, 'http://www.solax-portal.com/m/User/status/'.$Solax_ID); 
    curl_setopt($curl, CURLOPT_COOKIEJAR, COOKIE_FILE);
    curl_setopt($curl, CURLOPT_USERAGENT, USER_AGENT);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    
    $overview_website = curl_exec($curl); 
    //echo $overview_website; 
    
    $dom_realtime = new DOMDocument(); 
      
    $dom_realtime->loadHTML($overview_website); 
    $tablerows = $dom_realtime->getElementsByTagName('tr'); 
    foreach ($tablerows as $tablerow) 
    { 
        $PV1_Current = stripos($tablerow->nodeValue, "PV1 Current"); 
        if($PV1_Current !== false) 
        { 
            $trimmed = trim($tablerow->nodeValue); 
            $PV1_Current = str_replace($Zu_Loeschende_Werte,"",substr($trimmed, -6));
            echo "PV1 Strang Leistung Aktuell: ",$PV1_Current, PHP_EOL;
    
            $ID_PV1_Current = @IPS_GetVariableIDByName("PV1 Strang Leistung Aktuell", $_IPS['SELF']);
            if($ID_PV1_Current === false) 
        { 
            $ID_PV1_Current = IPS_CreateVariable(2);
            IPS_SetName($ID_PV1_Current, "PV1 Strang Leistung Aktuell");
            IPS_SetParent($ID_PV1_Current, $_IPS['SELF']);
        } 
        SetValue($ID_PV1_Current,$PV1_Current);
        } 
    
    
        
        $PV2_Current = stripos($tablerow->nodeValue, "PV2 Current"); 
        if($PV2_Current !== false) 
        { 
            $trimmed = trim($tablerow->nodeValue); 
            $PV2_Current = str_replace($Zu_Loeschende_Werte,"",substr($trimmed, -6));
            echo "PV2 Strang Leistung Aktuell: ",$PV2_Current, PHP_EOL;
    
            $ID_PV2_Current = @IPS_GetVariableIDByName("PV2 Strang Leistung Aktuell", $_IPS['SELF']);
            if($ID_PV2_Current === false) 
        { 
            $ID_PV2_Current = IPS_CreateVariable(2);
            IPS_SetName($ID_PV2_Current, "PV2 Strang Leistung Aktuell");
            IPS_SetParent($ID_PV2_Current, $_IPS['SELF']);
        } 
        SetValue($ID_PV2_Current,$PV2_Current);
        } 
    
    
         
        $PV1_Voltage = stripos($tablerow->nodeValue, "PV1 Voltage"); 
        if($PV1_Voltage !== false) 
        { 
            $trimmed = trim($tablerow->nodeValue); 
            $PV1_Voltage = str_replace($Zu_Loeschende_Werte,"",substr($trimmed, -13));
            echo "PV1 Strang Spannung Aktuell: ",$PV1_Voltage, PHP_EOL;
    
            $ID_PV1_Voltage = @IPS_GetVariableIDByName("PV1 Strang Spannung Aktuell", $_IPS['SELF']);
            if($ID_PV1_Voltage === false) 
        { 
            $ID_PV1_Voltage = IPS_CreateVariable(2);
            IPS_SetName($ID_PV1_Voltage, "PV1 Strang Spannung Aktuell");
            IPS_SetParent($ID_PV1_Voltage, $_IPS['SELF']);
        } 
        SetValue($ID_PV1_Voltage,$PV1_Voltage);
        } 
    
    
         
        $PV2_Voltage = stripos($tablerow->nodeValue, "PV2 Voltage"); 
        if($PV2_Voltage !== false) 
        { 
            $trimmed = trim($tablerow->nodeValue); 
            $PV2_Voltage = str_replace($Zu_Loeschende_Werte,"",substr($trimmed, -13));
            echo "PV2 Strang Spannung Aktuell: ",$PV2_Voltage, PHP_EOL;
    
            $ID_PV2_Voltage = @IPS_GetVariableIDByName("PV2 Strang Spannung Aktuell", $_IPS['SELF']);
            if($ID_PV2_Voltage === false) 
        { 
            $ID_PV2_Voltage = IPS_CreateVariable(2);
            IPS_SetName($ID_PV2_Voltage, "PV2 Strang Spannung Aktuell");
            IPS_SetParent($ID_PV2_Voltage, $_IPS['SELF']);
        } 
        SetValue($ID_PV2_Voltage,$PV2_Voltage);
        } 
    
    
         
        $Output_Current = stripos($tablerow->nodeValue, "Output Current"); 
        if($Output_Current !== false) 
        { 
            $trimmed = trim($tablerow->nodeValue); 
            $Output_Current = str_replace($Zu_Loeschende_Werte,"",substr($trimmed, -13));
            echo "Aktuelle Ausgangsleistung: ",$Output_Current, PHP_EOL;
    
            $ID_Output_Current = @IPS_GetVariableIDByName("Aktuelle Ausgangsleistung", $_IPS['SELF']);
            if($ID_Output_Current === false) 
        { 
            $ID_Output_Current = IPS_CreateVariable(2);
            IPS_SetName($ID_Output_Current, "Aktuelle Ausgangsleistung");
            IPS_SetParent($ID_Output_Current, $_IPS['SELF']);
        } 
        SetValue($ID_Output_Current,$Output_Current);
        } 
    
    
         
        $Network_Voltage = stripos($tablerow->nodeValue, "Network Voltage"); 
        if($Network_Voltage !== false) 
        { 
            $trimmed = trim($tablerow->nodeValue); 
            $Network_Voltage = str_replace($Zu_Loeschende_Werte,"",substr($trimmed, -6));
            echo "Spannung Stromnetz: ",$Network_Voltage, PHP_EOL;
    
            $ID_Network_Voltage = @IPS_GetVariableIDByName("Spannung Stromnetz", $_IPS['SELF']);
            if($ID_Network_Voltage === false) 
        { 
            $ID_Network_Voltage = IPS_CreateVariable(2);
            IPS_SetName($ID_Network_Voltage, "Spannung Stromnetz");
            IPS_SetParent($ID_Network_Voltage, $_IPS['SELF']);
        } 
        SetValue($ID_Network_Voltage,$Network_Voltage);
        } 
         
        
        $PV1_Input_Power = stripos($tablerow->nodeValue, "PV1 Input Power"); 
        if($PV1_Input_Power !== false) 
        { 
            $trimmed = trim($tablerow->nodeValue); 
            $PV1_Input_Power = str_replace($Zu_Loeschende_Werte,"",substr($trimmed, -6));
            echo "PV1 Strang Eingangsleistung: ",$PV1_Input_Power, PHP_EOL;
    
            $ID_PV1_Input_Power = @IPS_GetVariableIDByName("PV1 Strang Eingangsleistung", $_IPS['SELF']);
            if($ID_PV1_Input_Power === false) 
        { 
            $ID_PV1_Input_Power = IPS_CreateVariable(2);
            IPS_SetName($ID_PV1_Input_Power, "PV1 Strang Eingangsleistung");
            IPS_SetParent($ID_PV1_Input_Power, $_IPS['SELF']);
        } 
        SetValue($ID_PV1_Input_Power,$PV1_Input_Power);
        } 
         
         
        $PV2_Input_Power = stripos($tablerow->nodeValue, "PV2 Input Power"); 
        if($PV2_Input_Power !== false) 
        { 
            $trimmed = trim($tablerow->nodeValue); 
            $PV2_Input_Power = str_replace($Zu_Loeschende_Werte,"",substr($trimmed, -13));
            echo "PV2 Strang Eingangsleistung: ",$PV2_Input_Power, PHP_EOL;
    
            $ID_PV2_Input_Power = @IPS_GetVariableIDByName("PV2 Strang Eingangsleistung", $_IPS['SELF']);
            if($ID_PV2_Input_Power === false) 
        { 
            $ID_PV2_Input_Power = IPS_CreateVariable(2);
            IPS_SetName($ID_PV2_Input_Power, "PV2 Strang Eingangsleistung");
            IPS_SetParent($ID_PV2_Input_Power, $_IPS['SELF']);
        } 
        SetValue($ID_PV2_Input_Power,$PV2_Input_Power);
        } 
         
         
        $Power_Now = stripos($tablerow->nodeValue, "Power Now"); 
        if($Power_Now !== false) 
        { 
            $trimmed = trim($tablerow->nodeValue); 
            $Power_Now = str_replace($Zu_Loeschende_Werte,"",substr($trimmed, -13));
            echo "Aktuelle Leistung PV W: ",$Power_Now, PHP_EOL;
    
            $ID_Power_Now = @IPS_GetVariableIDByName("Aktuelle Leistung PV W", $_IPS['SELF']);
            if($ID_Power_Now === false) 
        { 
            $ID_Power_Now = IPS_CreateVariable(2);
            IPS_SetName($ID_Power_Now, "Aktuelle Leistung PV W");
            IPS_SetParent($ID_Power_Now, $_IPS['SELF']);
        } 
        SetValue($ID_Power_Now,$Power_Now); 
        } 
         
    
        $Output_Current = stripos($tablerow->nodeValue, "Output Current"); 
        if($Output_Current !== false) 
        { 
            $trimmed = trim($tablerow->nodeValue); 
            $Output_Current = str_replace($Zu_Loeschende_Werte,"",substr($trimmed, -13));
            echo "Aktuelle Leistung PV : ",$Output_Current, PHP_EOL;
    
            $ID_Output_Current = @IPS_GetVariableIDByName("Aktuelle Leistung PV A", $_IPS['SELF']);
            if($ID_Output_Current === false) 
        { 
            $ID_Output_Current = IPS_CreateVariable(2);
            IPS_SetName($ID_Output_Current, "Aktuelle Leistung PV A");
            IPS_SetParent($ID_Output_Current, $_IPS['SELF']);
        } 
        SetValue($ID_Output_Current,$Output_Current);
        } 
         
    }   
    
    
    // Aufrufen der Batterieseite um diese zu parsen
    curl_setopt($curl, CURLOPT_URL, 'http://www.solax-portal.com/m/User/battery/'.$Solax_ID); 
    curl_setopt($curl, CURLOPT_COOKIEJAR, COOKIE_FILE);
    curl_setopt($curl, CURLOPT_USERAGENT, USER_AGENT);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    
    $overview_website = curl_exec($curl); 
    //echo $overview_website; 
    
    $dom_battery = new DOMDocument(); 
      
    $dom_battery->loadHTML($overview_website);
    $tablerows = $dom_battery->getElementsByTagName('tr'); 
    foreach ($tablerows as $tablerow) 
    { 
        $Batterie_Charge = stripos($tablerow->nodeValue, "Battery 1"); 
        if($Batterie_Charge !== false) 
        { 
            $trimmed = trim($tablerow->nodeValue); 
            $Batterie_Charge = str_replace($Zu_Loeschende_Werte,"",substr($trimmed, -6));
            echo "Batterie Ladung: ",$Batterie_Charge, PHP_EOL;
    
            $ID_Batterie_Charge = @IPS_GetVariableIDByName("Batterie Ladung", $_IPS['SELF']);
            if($ID_Batterie_Charge === false) 
        { 
            $ID_Batterie_Charge = IPS_CreateVariable(2);
            IPS_SetName($ID_Batterie_Charge, "Batterie Ladung");
            IPS_SetParent($ID_Batterie_Charge, $_IPS['SELF']);
        } 
        SetValue($ID_Batterie_Charge,$Batterie_Charge);
        } 
        
        $Battery_V = stripos($tablerow->nodeValue, "Battery V."); 
        if($Battery_V !== false) 
        { 
            $trimmed = trim($tablerow->nodeValue); 
            $Battery_V = str_replace($Zu_Loeschende_Werte,"",substr($trimmed, -6));
            echo "Batterie Spannung: ",$Battery_V, PHP_EOL;
    
            $ID_Battery_V = @IPS_GetVariableIDByName("Batterie Spannung", $_IPS['SELF']);
            if($ID_Battery_V === false) 
        { 
            $ID_Battery_V = IPS_CreateVariable(2);
            IPS_SetName($ID_Battery_V, "Batterie Spannung");
            IPS_SetParent($ID_Battery_V, $_IPS['SELF']);
        } 
        SetValue($ID_Battery_V,$Battery_V); 
        } 
         
        $Battery_I = stripos($tablerow->nodeValue, "Battery I."); 
        if($Battery_I !== false) 
        { 
            $trimmed = trim($tablerow->nodeValue); 
            $Battery_I = str_replace($Zu_Loeschende_Werte,"",substr($trimmed, -13));
            echo "Battery P: ",$Battery_I, PHP_EOL;
    
            $ID_Battery_I = @IPS_GetVariableIDByName("Batterie Strom", $_IPS['SELF']);
            if($ID_Battery_I === false) 
        { 
            $ID_Battery_I = IPS_CreateVariable(2);
            IPS_SetName($ID_Battery_I, "Batterie Strom");
            IPS_SetParent($ID_Battery_I, $_IPS['SELF']);
        } 
        SetValue($ID_Battery_I,$Battery_I); 
        } 
         
        $Battery_P = stripos($tablerow->nodeValue, "Battery P."); 
        if($Battery_P !== false) 
        { 
            $trimmed = trim($tablerow->nodeValue); 
            $Battery_P = str_replace($Zu_Loeschende_Werte,"",substr($trimmed, -13));
            echo "Batterie Leistung: ",$Battery_P, PHP_EOL;
    
            $ID_Battery_P = @IPS_GetVariableIDByName("Batterie Leistung", $_IPS['SELF']);
            if($ID_Battery_P === false) 
        { 
            $ID_Battery_P = IPS_CreateVariable(2);
            IPS_SetName($ID_Battery_P, "Batterie Leistung");
            IPS_SetParent($ID_Battery_P, $_IPS['SELF']);
        } 
        SetValue($ID_Battery_P,$Battery_P); 
        } 
    
        $Inner_T = stripos($tablerow->nodeValue, "Inner T."); 
        if($Inner_T !== false) 
        { 
            $trimmed = trim($tablerow->nodeValue); 
            $Inner_T = str_replace($Zu_Loeschende_Werte,"",substr($trimmed, -13));
            echo "Batterie Temperatur: ",$Inner_T, PHP_EOL;
    
            $ID_Inner_T = @IPS_GetVariableIDByName("Batterie Temperatur", $_IPS['SELF']);
            if($ID_Inner_T === false) 
        { 
            $ID_Inner_T = IPS_CreateVariable(2);
            IPS_SetName($ID_Inner_T, "Batterie Temperatur");
            IPS_SetParent($ID_Inner_T, $_IPS['SELF']);
        } 
        SetValue($ID_Inner_T,floatval($Inner_T));
        }     
         
    }   
    
    
    ?>
    

    Gruß
    Fastsonic

    1 Antwort Letzte Antwort
    0
    • F Offline
      F Offline
      fastsonic
      schrieb am zuletzt editiert von
      #4

      Hi@all
      Falls es jemanden interessiert ;)
      Ich versuche mal einen MBUS zu WIFI Adapter und das ganze per Modbus anzubinden.
      Hab das Teil bei Ali für 10 euro bestellt.
      Wenn ich getestet habe, melde ich mich nochmal. Wäre vieleicht auch für andere Sensoren interessant.

      Gruß
      Fastsonic

      S 1 Antwort Letzte Antwort
      0
      • H Offline
        H Offline
        huettmaster
        schrieb am zuletzt editiert von
        #5

        Hallo,

        darf man erfahren, ob das Ganze funktioniert hat? Wenn ja, wie? Stehe vor dem selben Problem.

        1 Antwort Letzte Antwort
        0
        • K Offline
          K Offline
          kekleini
          schrieb am zuletzt editiert von kekleini
          #6

          Es ist toll. Die Lösung ist ziemlich gut. Ich habe die Community sehr genossen. roadrunner email Vielen Dank.

          1 Antwort Letzte Antwort
          0
          • F fastsonic

            Hi@all
            Falls es jemanden interessiert ;)
            Ich versuche mal einen MBUS zu WIFI Adapter und das ganze per Modbus anzubinden.
            Hab das Teil bei Ali für 10 euro bestellt.
            Wenn ich getestet habe, melde ich mich nochmal. Wäre vieleicht auch für andere Sensoren interessant.

            Gruß
            Fastsonic

            S Offline
            S Offline
            samot13
            schrieb am zuletzt editiert von
            #7

            @fastsonic Hallo, hast du mittlerweile eine Lösung gefunden die Daten vom Solax auszulesen?

            Gruß
            samot13

            1 Antwort Letzte Antwort
            0
            • K Offline
              K Offline
              kgw
              schrieb am zuletzt editiert von
              #8

              moin,
              falls noch SOLAX Bedarf bestehen sollte:
              ich arbeite gerade an einer Lösung via iobroker.parser.
              Die ersten Versuche sehen schon mal vielversprechend aus.

              Gruß
              Thomas

              S 1 Antwort Letzte Antwort
              0
              • K kgw

                moin,
                falls noch SOLAX Bedarf bestehen sollte:
                ich arbeite gerade an einer Lösung via iobroker.parser.
                Die ersten Versuche sehen schon mal vielversprechend aus.

                Gruß
                Thomas

                S Offline
                S Offline
                samot13
                schrieb am zuletzt editiert von
                #9

                @kgw Ja ich habe noch Bedarf. Super das du da was machst!

                Gruß
                samot13

                1 Antwort Letzte Antwort
                0
                • K Offline
                  K Offline
                  kgw
                  schrieb am zuletzt editiert von
                  #10

                  moin, Beispiel: Wechselrichter: SOLAX SK-SU5000E,
                  im iobroker den Adapter parser installieren.

                  unter Instanzen/parser div. neue (Regeln) Datenpunkte anlegen:
                  B: 1:
                  Name: pv1_Curr
                  Url: http://xxx.xxx.xxx.xx/api/realTimeData.htm
                  RegEx: [+-]?([0-9]+([.][0-9]*)?|[.][0-9]+)
                  Num: 5

                  Im Testtext erscheint nach der url:
                  {"method":"uploadsn","version":"Solax_SI_CH_2nd_20160810_DE03","type":"AL_SE","SN":"DEC88A12","Data":[3.6,3.2,369.7,275.6,8.8,228.9,1986,30,12.8,14485.9,1774,1330,881,0.00,0.00,0,5,0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,11311.50,6468.50,,,,,,,,50.05,,,0.0,0.0,0,0.00,0,0,0,0.00,0,8,0,0,0.00,0,8],"Status":"2"}

                  mit der o.a. num = 5 ergibt sich der aktuelle Current! bei iobroker.objects.parser.n.pv1_Curr!

                  mit der RegEx habe ich länger "herumgedoktort", da ich kein Experte bin!

                  Bei der Feed_In_Power gibt es auch noch ein Vorzeichen/int/float Problem, welches noch gelöst werden muss.

                  Konstanten s. https://community.home-assistant.io/t/solax-solar-inverter-setup-guide/48008
                  Live datastream

                  Viel Spaß und Erfolg
                  Thomas

                  S S 2 Antworten Letzte Antwort
                  0
                  • K Offline
                    K Offline
                    kgw
                    schrieb am zuletzt editiert von kgw
                    #11

                    hier noch eine akt. vis Implementation:
                    solax.PNG

                    1 Antwort Letzte Antwort
                    0
                    • Amnesia1211A Offline
                      Amnesia1211A Offline
                      Amnesia1211
                      schrieb am zuletzt editiert von
                      #12

                      Stehe vor dem selben Problem, leider habe ich nicht wirklich verstanden wie das ganze Funktionieren soll.
                      Vielleicht hat ja jemand eine Anleitung wie das ganze klappt in iobroker zu integrieren.


                      Man muss nicht alles wissen, nur wissen wo es steht.
                      Fragen schadet aber auch nicht :spock-hand:


                      S 1 Antwort Letzte Antwort
                      0
                      • Amnesia1211A Amnesia1211

                        Stehe vor dem selben Problem, leider habe ich nicht wirklich verstanden wie das ganze Funktionieren soll.
                        Vielleicht hat ja jemand eine Anleitung wie das ganze klappt in iobroker zu integrieren.

                        S Offline
                        S Offline
                        Sweatchuck
                        schrieb am zuletzt editiert von
                        #13

                        Hätte ebenfalls Interesse daran. Habe den Solax x1 mini.

                        Grüße

                        1 Antwort Letzte Antwort
                        0
                        • S Offline
                          S Offline
                          Skywalker110
                          schrieb am zuletzt editiert von
                          #14

                          Hallo zusammen

                          Hätte auch Interesse.

                          Ich komme bei mir nicht weiter desweiteren ist mein Wechselrichter nicht erreichbar und der IP Adresse was ich habe

                          Wenn ich die API verwende kommt token invalid obwohl ich einen generiert habe in meiner solax cloud.

                          Grüße Holger

                          1 Antwort Letzte Antwort
                          0
                          • K kgw

                            moin, Beispiel: Wechselrichter: SOLAX SK-SU5000E,
                            im iobroker den Adapter parser installieren.

                            unter Instanzen/parser div. neue (Regeln) Datenpunkte anlegen:
                            B: 1:
                            Name: pv1_Curr
                            Url: http://xxx.xxx.xxx.xx/api/realTimeData.htm
                            RegEx: [+-]?([0-9]+([.][0-9]*)?|[.][0-9]+)
                            Num: 5

                            Im Testtext erscheint nach der url:
                            {"method":"uploadsn","version":"Solax_SI_CH_2nd_20160810_DE03","type":"AL_SE","SN":"DEC88A12","Data":[3.6,3.2,369.7,275.6,8.8,228.9,1986,30,12.8,14485.9,1774,1330,881,0.00,0.00,0,5,0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,11311.50,6468.50,,,,,,,,50.05,,,0.0,0.0,0,0.00,0,0,0,0.00,0,8,0,0,0.00,0,8],"Status":"2"}

                            mit der o.a. num = 5 ergibt sich der aktuelle Current! bei iobroker.objects.parser.n.pv1_Curr!

                            mit der RegEx habe ich länger "herumgedoktort", da ich kein Experte bin!

                            Bei der Feed_In_Power gibt es auch noch ein Vorzeichen/int/float Problem, welches noch gelöst werden muss.

                            Konstanten s. https://community.home-assistant.io/t/solax-solar-inverter-setup-guide/48008
                            Live datastream

                            Viel Spaß und Erfolg
                            Thomas

                            S Offline
                            S Offline
                            Schello805
                            schrieb am zuletzt editiert von
                            #15

                            @kgw said in Solax Photovoltaik Portal in ioBroker:

                            https://community.home-assistant.io/t/solax-solar-inverter-setup-guide/48008

                            Hi, geht das bei dir noch? Seit einigen Wochen erreiche ich die API nicht mehr. Gabs da ein Update, bei dem die API abgeschalten wurden?

                            1 Antwort Letzte Antwort
                            0
                            • L Offline
                              L Offline
                              laola
                              schrieb am zuletzt editiert von
                              #16

                              Hallo - auch ich nutze seit gestern Solax X1 mini. Funktioniert es (noch) mit dem Parser ? Gibt es irgendwo ein etwas detailllierte Anleitung, wie die Daten in ioBroker kommen können ?

                              Dsanke für eure Hilfe
                              laola

                              K 1 Antwort Letzte Antwort
                              0
                              • L laola

                                Hallo - auch ich nutze seit gestern Solax X1 mini. Funktioniert es (noch) mit dem Parser ? Gibt es irgendwo ein etwas detailllierte Anleitung, wie die Daten in ioBroker kommen können ?

                                Dsanke für eure Hilfe
                                laola

                                K Offline
                                K Offline
                                kunigunde
                                schrieb am zuletzt editiert von
                                #17

                                @laola

                                Hallo, vielleicht hilft dir das weiter.

                                Ich habe einen X1-Boost/Air/Mini.
                                Da die Cloud Verbindung bei mir demnächst gekappt wird, musste ich auch einen Weg finden die Daten lokal zu bekommen.
                                Solax hat an dem Pocket-Wifi einen offenen Wlan-Zugang, welcher jedoch 1. nur einen Teilnehmer zulässt und nicht in meinem lokalen Netz ist.

                                Ich habe jetzt einen einfachen kleinen ESP-01 genommen, der verbindet sich mit dem Solax Wlan, holt Daten ab, verbindet sich danach mit meinem lokalen Wlan und sendet die Daten an meinen MQTT Broker.

                                und wieder von vorn.....

                                hier ist der Arduino Code (P.S. im Online Editor kann ich nicht übersetzen, kommen Fehler, Lokal geht es):
                                https://create.arduino.cc/editor/kunigunde/19dce021-7701-4557-96cc-153a5e1f9bee/preview?F=ESP_SOLAX_MQTT.ino

                                1 Antwort Letzte Antwort
                                0
                                • L Offline
                                  L Offline
                                  laola
                                  schrieb am zuletzt editiert von
                                  #18

                                  mittlerweile gibt es einen Adapter für Solax (https://github.com/simatec/ioBroker.solax)... :-)

                                  1 Antwort Letzte Antwort
                                  0
                                  • K kgw

                                    moin, Beispiel: Wechselrichter: SOLAX SK-SU5000E,
                                    im iobroker den Adapter parser installieren.

                                    unter Instanzen/parser div. neue (Regeln) Datenpunkte anlegen:
                                    B: 1:
                                    Name: pv1_Curr
                                    Url: http://xxx.xxx.xxx.xx/api/realTimeData.htm
                                    RegEx: [+-]?([0-9]+([.][0-9]*)?|[.][0-9]+)
                                    Num: 5

                                    Im Testtext erscheint nach der url:
                                    {"method":"uploadsn","version":"Solax_SI_CH_2nd_20160810_DE03","type":"AL_SE","SN":"DEC88A12","Data":[3.6,3.2,369.7,275.6,8.8,228.9,1986,30,12.8,14485.9,1774,1330,881,0.00,0.00,0,5,0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,11311.50,6468.50,,,,,,,,50.05,,,0.0,0.0,0,0.00,0,0,0,0.00,0,8,0,0,0.00,0,8],"Status":"2"}

                                    mit der o.a. num = 5 ergibt sich der aktuelle Current! bei iobroker.objects.parser.n.pv1_Curr!

                                    mit der RegEx habe ich länger "herumgedoktort", da ich kein Experte bin!

                                    Bei der Feed_In_Power gibt es auch noch ein Vorzeichen/int/float Problem, welches noch gelöst werden muss.

                                    Konstanten s. https://community.home-assistant.io/t/solax-solar-inverter-setup-guide/48008
                                    Live datastream

                                    Viel Spaß und Erfolg
                                    Thomas

                                    S Offline
                                    S Offline
                                    skorpion_inka
                                    schrieb am zuletzt editiert von
                                    #19

                                    @kgw sagte in Solax Photovoltaik Portal in ioBroker:

                                    Bei der Feed_In_Power gibt es auch noch ein Vorzeichen/int/float Problem, welches noch gelöst werden muss.

                                    Hallo, hast du eine Lösung für das Vorzeichen?

                                    K 1 Antwort Letzte Antwort
                                    0
                                    • S skorpion_inka

                                      @kgw sagte in Solax Photovoltaik Portal in ioBroker:

                                      Bei der Feed_In_Power gibt es auch noch ein Vorzeichen/int/float Problem, welches noch gelöst werden muss.

                                      Hallo, hast du eine Lösung für das Vorzeichen?

                                      K Offline
                                      K Offline
                                      kgw
                                      schrieb am zuletzt editiert von kgw
                                      #20

                                      @skorpion_inka
                                      leider noch nicht weiter dran gewerkelt.

                                      Aber du bist ja mit deinem thread
                                      "Parser auslesen von XML - Vorzeichen fehlt" vom 27.10.21 offensichtlich weitergekommen und kannst uns hier deine Antwort bzw. Lösung posten, damit alle etwas davon haben!

                                      K 1 Antwort Letzte Antwort
                                      0
                                      • K kgw

                                        @skorpion_inka
                                        leider noch nicht weiter dran gewerkelt.

                                        Aber du bist ja mit deinem thread
                                        "Parser auslesen von XML - Vorzeichen fehlt" vom 27.10.21 offensichtlich weitergekommen und kannst uns hier deine Antwort bzw. Lösung posten, damit alle etwas davon haben!

                                        K Offline
                                        K Offline
                                        kunigunde
                                        schrieb am zuletzt editiert von
                                        #21

                                        Hier hat jemand die Firmware von dem Solax WIFI abgeändert.
                                        Mit dieser verbindet er sich mit dem lokalen Netz und es sind keine Umwege mehr nötig:

                                        https://blog.chrisoft.io/2021/02/14/firmwares-modificados-para-solax-pocket-wifi-v2/

                                        1 Antwort Letzte Antwort
                                        0
                                        • O Offline
                                          O Offline
                                          OKTP
                                          schrieb am zuletzt editiert von
                                          #22

                                          Hallo in die Runde. Hat es schon jemand mit einem x3 hybrid WR der 4. Generation hin bekommen die Daten lokal auszulesen? Ich habe es mit dem Adapter von Simatec nicht hin. Über die cloud funktioniert es, aber ich hätte es lieber local.

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


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate
                                          FAQ Cloud / IOT
                                          HowTo: Node.js-Update
                                          HowTo: Backup/Restore
                                          Downloads
                                          BLOG

                                          565

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          Themen

                                          1.3m

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

                                          • Du hast noch kein Konto? Registrieren

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