Skip to content
  • 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
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Solax Photovoltaik Portal in ioBroker

NEWS

  • Wartung am 15.11. – Forum ab 22:00 Uhr nicht erreichbar
    BluefoxB
    Bluefox
    11
    2
    204

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

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

Solax Photovoltaik Portal in ioBroker

Solax Photovoltaik Portal in ioBroker

Scheduled Pinned Locked Moved ioBroker Allgemein
22 Posts 14 Posters 8.2k Views 14 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.
  • F Offline
    F Offline
    fastsonic
    wrote on last edited by 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 Reply Last reply
    0
    • F Offline
      F Offline
      fastsonic
      wrote on last edited by
      #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 Reply Last reply
      0
      • H Offline
        H Offline
        huettmaster
        wrote on last edited by
        #5

        Hallo,

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

        1 Reply Last reply
        0
        • K Offline
          K Offline
          kekleini
          wrote on last edited by kekleini
          #6

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

          1 Reply Last reply
          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
            wrote on last edited by
            #7

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

            Gruß
            samot13

            1 Reply Last reply
            0
            • K Offline
              K Offline
              kgw
              wrote on last edited by
              #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 Reply Last reply
              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
                wrote on last edited by
                #9

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

                Gruß
                samot13

                1 Reply Last reply
                0
                • K Offline
                  K Offline
                  kgw
                  wrote on last edited by
                  #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 Replies Last reply
                  0
                  • K Offline
                    K Offline
                    kgw
                    wrote on last edited by kgw
                    #11

                    hier noch eine akt. vis Implementation:
                    solax.PNG

                    1 Reply Last reply
                    0
                    • Amnesia1211A Offline
                      Amnesia1211A Offline
                      Amnesia1211
                      wrote on last edited by
                      #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 Reply Last reply
                      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
                        wrote on last edited by
                        #13

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

                        Grüße

                        1 Reply Last reply
                        0
                        • S Offline
                          S Offline
                          Skywalker110
                          wrote on last edited by
                          #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 Reply Last reply
                          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
                            wrote on last edited by
                            #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 Reply Last reply
                            0
                            • L Offline
                              L Offline
                              laola
                              wrote on last edited by
                              #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 Reply Last reply
                              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
                                wrote on last edited by
                                #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 Reply Last reply
                                0
                                • L Offline
                                  L Offline
                                  laola
                                  wrote on last edited by
                                  #18

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

                                  1 Reply Last reply
                                  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
                                    wrote on last edited by
                                    #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 Reply Last reply
                                    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
                                      wrote on last edited by 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 Reply Last reply
                                      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
                                        wrote on last edited by
                                        #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 Reply Last reply
                                        0
                                        • O Offline
                                          O Offline
                                          OKTP
                                          wrote on last edited by
                                          #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 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

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

                                          124

                                          Online

                                          32.4k

                                          Users

                                          81.3k

                                          Topics

                                          1.3m

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

                                          • Don't have an account? Register

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