+ Antworten
Ergebnis 1 bis 2 von 2
  1. #1
    Registriert seit
    Nov 2011
    Ort
    Salzburger Land
    Beiträge
    10

    Standard Fehlermeldung bei Script für SMA Sunny Webbox

    Hallo

    Seit dem Update auf IP Symcon 5 habe ich beim SMA Webbox Script Probleme.
    Ich bekomme keine Daten mehr rein, und folgende Fehler werden angezeigt.
    Name:  2018-08-12_18h14_10.png
Hits: 39
Größe:  25.6 KB

    Kann mir da bitte wer helfen?
    Habe schon bei der Migration von 4.3 auf 5 nachgesehen, aber da ich im Programmierennicht
    so bewandert bin und nur diverse Script abändern kann,
    ist mir das einfach zu hoch.


    Vielen Dank im voraus!
    Chris

    Mein Webbox Script

    PHP-Code:
     <?

    //IP der Webbox (SMA hat übrigends eine WebBox zu Demozwecken im Internet)
    $webboxip "192.168.0.168";
    $timeout 15;
    include(
    "JSON.ips.php");
    $json = new Services_JSON();

    //JSON Request im PHP Array Format (wird später umgewandelt durch die in PHP5 vvorhandene json_encode/decode Funktion)

    $GetPlantOverView = array(
        
    'version'=>"1.0",
        
    'proc'=>"GetPlantOverview",
        
    'id'=>"1",
        
    'format'=>"JSON"
        
    );

    $GetDevices = array(
        
    'version'=>"1.0",
        
    'proc'=>"GetDevices",
        
    'id'=>"1",
        
    'format'=>"JSON"
        
    );


    //Wechselrichter SBU 5000 (Device Key SBU500EI:1260025183)
    $device="SBU500EI:1260025183";
    $GetProcessDataWR2 '{
    "version": "1.0",
    "proc": "GetProcessData",
    "id": "1",
    "format": "JSON",
    "params":
    {
    "devices":
    [
    {
    "key": "'
    .$device.'",
    "channels": null
    }
    ]
    }
    }'
    ;

    //Sensorbox (Device Key SENS0710:17671)
    $device="SENS0710:17671";
    $GetProcessDataWR2 '{
    "version": "1.0",
    "proc": "GetProcessData",
    "id": "1",
    "format": "JSON",
    "params":
    {
    "devices":
    [
    {
    "key": "'
    .$device.'",
    "channels": null
    }
    ]
    }
    }'
    ;

    //Aufruf der Funktion REQUEST mit GetPlantInfo
    $requestarray $GetPlantOverView;
    request($webboxip,$requestarray);
    //print_r($response);

    //$zustand=($response->result->overview[3]->value);
    //    SetValue(30309   , $zustand);

    //$meldung=($response->result->overview[4]->value);
    //    if ($meldung == "") $meldung="Keine Nachrichten.";
    //    SetValue(39090 /*[PHOTOVOLTAIK\Meldung]*/ , $meldung);

    //$watt=($response->result->overview[0]->value);
    //if ($watt > 0 or GetValue(15236 /*[PHOTOVOLTAIK\Momentanleistung]*/ )<>0)
    {
    //    Setvalue (15236 /*[PHOTOVOLTAIK\Momentanleistung]*/, $watt);
    }

     
    $tagesertrag=(str_replace("."","$response->result->overview[1]->value));
     
    SetValue(37028 /*[PHOTOVOLTAIK\Gesamter Tagesertrag]*/ $tagesertrag);

     
    $gesamtertrag=(str_replace("."","$response->result->overview[2]->value));
     
    SetValue(51613 /*[PHOTOVOLTAIK\Gesamter Ertrag]*/ $gesamtertrag);


    // Abfrage SBU 5000
        
    $device_WR "SBU500EI:1260025183";
        
    $aw channels_data_all($webboxip,$device_WR,$json);

        
    $value str_replace("."",",($aw->result->devices[0]->channels[3]->value));
        if (
    $value 0$value=0;
        
    SetValue(40580 /*[PHOTOVOLTAIK\SPEICHERSYSTEM\HOPPECKE\Batterie Betriebszustand ]*/  $value); //3 BatChrgOp

        
    $value str_replace("."",",($aw->result->devices[0]->channels[7]->value));
        if (
    $value 0$value=0;
        
    SetValue(47918 /*[PHOTOVOLTAIK\SPEICHERSYSTEM\HOPPECKE\Ladezustand Batterien]*/ $value); // in %

         
    $value str_replace("."",",($aw->result->devices[0]->channels[8]->value));
        if (
    $value 0$value=0;
        
    SetValue(44261 /*[PHOTOVOLTAIK\SPEICHERSYSTEM\HOPPECKE\Geschätzter Fehler des Ladezustands]*/    $value); //8 BatSocErr

        
    $value str_replace("."",",($aw->result->devices[0]->channels[9]->value));
        if (
    $value 0$value=0;
        
    SetValue(27703 /*[PHOTOVOLTAIK\SPEICHERSYSTEM\HOPPECKE\Batterietemperatur]*/  $value); //9 BatTmp

        
    $value str_replace("."",",($aw->result->devices[0]->channels[10]->value));
        if (
    $value 0$value=0;
        
    SetValue(39857 /*[PHOTOVOLTAIK\SPEICHERSYSTEM\HOPPECKE\Batterie Spannung]*/   $value); //10 BatVtg

        
    $value str_replace("."",",($aw->result->devices[0]->channels[11]->value));
        if (
    $value 0$value=0;
        
    SetValue(12081 /*[PHOTOVOLTAIK\SUNNY BACKUP 5000\SUNNY BACKUP 5000\Statusmeldung der SD-Karte]*/     $value); //11 CardStt

    //    $value = str_replace(".", ",",($aw->result->devices[0]->channels[16]->value));
    //    if ($value < 0) $value=0;
    //    SetValue(40862 /*[PHOTOVOLTAIK\SUNNY BACKUP 5000\SUNNY BACKUP 5000\Aufgenommene Energie des Inselnetz-Wechselrichters]*/     , $value); //16 EgyCntIn

    //    $value = str_replace(".", ",",($aw->result->devices[0]->channels[17]->value));
    //    if ($value < 0) $value=0;
    //    SetValue(26696 /*[PHOTOVOLTAIK\SUNNY BACKUP 5000\SUNNY BACKUP 5000\Abgegebene Energie des Inselnetz-Wechselrichters]*/     , $value); //17 EgyCntOut

    //    $value = str_replace(".", ",",($aw->result->devices[0]->channels[35]->value));
    //    if ($value < 0) $value=0;
    //    SetValue(38025 /*[PHOTOVOLTAIK\STROMVERSORGER\STROMVERSORGER\Netz Spannung]*/     , $value); //35 ExtVtg

        
    $value str_replace("."",",($aw->result->devices[0]->channels[43]->value));
        if (
    $value 0$value=0;
        
    SetValue(10420 /*[PHOTOVOLTAIK\SUNNY BACKUP 5000\SUNNY BACKUP 5000\Heutiger Netzbezug]*/       $value); //42 GdCsmpEgyTdy

        
    $value str_replace("."",",($aw->result->devices[0]->channels[44]->value));
        if (
    $value 0$value=0;
        
    SetValue(15972 /*[PHOTOVOLTAIK\STROMVERSORGER\STROMVERSORGER\Aktueller Netzbezug]*/      $value); //44 GdCsmpPwrAt

        
    $value str_replace("."",",($aw->result->devices[0]->channels[46]->value));
        if (
    $value 0$value=0;
        
    SetValue(12758 /*[PHOTOVOLTAIK\STROMVERSORGER\STROMVERSORGER\Netz Einspeisezähler]*/     $value); //46 GdEgyCntIn

        
    $value str_replace("."",",($aw->result->devices[0]->channels[47]->value));
        if (
    $value 0$value=0;
        
    SetValue(44353 /*[PHOTOVOLTAIK\STROMVERSORGER\STROMVERSORGER\Netz Bezugszähler]*/     $value); //47 GdEgyCntOut

        
    $value str_replace("."",",($aw->result->devices[0]->channels[49]->value));
        if (
    $value 0$value=0;
        
    SetValue(51760 /*[PHOTOVOLTAIK\SUNNY BACKUP 5000\SUNNY BACKUP 5000\Heutige Netzeinspeisung]*/       $value); //49 GdFeedEgyTdy

    //    $value = str_replace(".", ",",($aw->result->devices[0]->channels[63]->value));
    //    if ($value < 0) $value=0;
    //    SetValue(28359 /*[PHOTOVOLTAIK\SUNNY BACKUP 5000\SUNNY BACKUP 5000\Strom des Inselnetz-Wechselrichters]*/     , $value); //63 InvCur

        
    $value str_replace("."",",($aw->result->devices[0]->channels[68]->value));
        if (
    $value 0$value=0;
        
    SetValue(20310 /*[PHOTOVOLTAIK\SUNNY BACKUP 5000\SUNNY BACKUP 5000\Betriebszustand]*/   $value); //68 InvOpStt

    //    $value = str_replace(".", ",",($aw->result->devices[0]->channels[80]->value));
    //    if ($value < 0) $value=0;
    //    SetValue(22695 /*[PHOTOVOLTAIK\SUNNY BACKUP 5000\SUNNY BACKUP 5000\AC Spannung Wechselrichter]*/      , $value); //80 InvVtg

        
    $value str_replace("."",",($aw->result->devices[0]->channels[88]->value));
        if (
    $value 0$value=0;
        
    SetValue(58495 /*[PHOTOVOLTAIK\SUNNY BACKUP 5000\SUNNY BACKUP 5000\Mode]*/    $value); //88 Mode

        
    $value str_replace("."",",($aw->result->devices[0]->channels[90]->value));
        if (
    $value 0$value=0;
        
    SetValue(21909 /*[PHOTOVOLTAIK\SUNNY BACKUP 5000\SUNNY BACKUP 5000\Betriebsstunden]*/   $value); //

        
    $value str_replace("."",",($aw->result->devices[0]->channels[95]->value));
        if (
    $value < -5000$value=0;
        
    SetValue(51640 /*[PHOTOVOLTAIK\SUNNY BACKUP 5000\SUNNY BACKUP 5000\Aktuelle Batterie Be u Entladung]*/      $value); //95 GdCsmpPwrAt

        
    $value str_replace("."",",($aw->result->devices[0]->channels[101]->value));
        if (
    $value 0$value=0;
        
    SetValue(41785 /*[PHOTOVOLTAIK\STROMVERSORGER\STROMVERSORGER\Netzversorgung Vorhanden]*/    $value); //101 Rly1Stt

        
    $value str_replace("."",",($aw->result->devices[0]->channels[118]->value));
        if (
    $value 0$value=0;
        
    SetValue(44798 /*[PHOTOVOLTAIK\SUNNY BACKUP 5000\SUNNY BACKUP 5000\Gesamter Eigenverbrauch]*/     $value); //122 SlfCsmpEgy

        
    $value str_replace("."",",($aw->result->devices[0]->channels[119]->value));
        if (
    $value 0$value=0;
        
    SetValue(41352 /*[PHOTOVOLTAIK\SUNNY BACKUP 5000\SUNNY BACKUP 5000\Gesamte Eigenverbrauchsoptimierung]*/     $value); //119 SlfCsmpIncEgy

        
    $value str_replace("."",",($aw->result->devices[0]->channels[131]->value));
        if (
    $value 0$value=0;
        
    SetValue(22797 /*[PHOTOVOLTAIK\SUNNY BACKUP 5000\SUNNY BACKUP 5000\Gesamtverbrauch]*/     $value); //131 TotLodEgyCnt

        
    $value str_replace("."",",($aw->result->devices[0]->channels[133]->value));
        if (
    $value 0$value=0;
        
    SetValue(44452 /*[PHOTOVOLTAIK\STROMVERSORGER\STROMVERSORGER\Aktueller Verbrauch]*/      $value); //133 TotLodPwrAt

        
    $value str_replace("."",",($aw->result->devices[0]->channels[135]->value));
        if (
    $value 0$value=0;
        
    SetValue(45073 /*[PHOTOVOLTAIK\SUNNY BACKUP 5000\SUNNY BACKUP 5000\Momentan Erzeugte PV-Leistung]*/      $value); //140 TotPvPwrAt

    // Abfrage Sensorbox
        
    $device_WR "SENS0710:17671";
        
    $aw channels_data_all($webboxip,$device_WR,$json);

         
    $value str_replace("."",",($aw->result->devices[0]->channels[1]->value));
        if (
    $value 0$value=0;
        
    SetValue(24377 /*[PHOTOVOLTAIK\SMA SENSORBOX\Sonneneinstrahlung]*/  $value); // 2   Watt / m2

        
    $value str_replace("."",",($aw->result->devices[0]->channels[4]->value));
        if (
    $value < -300$value=0;
        
    SetValue(42775 /*[PHOTOVOLTAIK\SMA SENSORBOX\PV Modultemperatur]*/  $value); // 5  in °C

        
    $value str_replace("."",",($aw->result->devices[0]->channels[3]->value));
        if (
    $value < -300$value=0;
        
    SetValue(36405 /*[PHOTOVOLTAIK\SMA SENSORBOX\Umgebungs Temperatur]*/  $value); // 4  in °C

        
    $value str_replace("."",",($aw->result->devices[0]->channels[5]->value));
        if (
    $value 0$value=0;
        
    SetValue(58118 /*[PHOTOVOLTAIK\SMA SENSORBOX\Windeschwindigkeit]*/  $value); //  6 in  m/s



    //$requestarray = $GetDevices;
    //request($webboxip,$requestarray);
    //print_r($response);



    // ANFANG FUNKTION DATEN AUS SUNNY WEBBOX ABRUFEN
    function request($webboxip,$requestarray) {
       Global 
    $timeout;
       Global 
    $response;
        
    //codieren in JSON
        
    $request json_encode($requestarray);

        
    // Hier der JSON request
        
    $request 'RPC='.rawurlencode($request);

        
    $ch=curl_init();
        
    curl_setopt($chCURLOPT_URL"http://".$webboxip."/rpc");
        
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
        
    curl_setopt($chCURLOPT_TIMEOUT$timeout);
        
    curl_setopt($chCURLOPT_FOLLOWLOCATION,1);
        
    curl_setopt($chCURLOPT_HEADER 0);
        
    curl_setopt($chCURLOPT_POST);
        
    curl_setopt($chCURLOPT_POSTFIELDS$request);

        
    // Hier das Ergebnis
        
    $response curl_exec ($ch);

        if (
    curl_errno($ch)) {
            
    $err=1;
             
    $errtext curl_error($ch);
        }

        
    curl_close($ch);

        
    //Decodieren der Antwort
        
    $response json_decode($response);
    }

    function 
    request2($webboxip,$requestarray,$json) {

    $request $json->encode($requestarray);
    $request $requestarray;

    // Hier der JSON request
    $request 'RPC='.rawurlencode($request);

    $timeout=180;
    $ch=curl_init();
    curl_setopt($chCURLOPT_URL"http://".$webboxip."/rpc");
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
    curl_setopt($chCURLOPT_TIMEOUT$timeout);
    curl_setopt($chCURLOPT_FOLLOWLOCATION,0);
    curl_setopt($chCURLOPT_HEADER 0);
    curl_setopt($chCURLOPT_POST);
    curl_setopt($chCURLOPT_POSTFIELDS$request);

    // Hier das Ergebnis
    $response curl_exec ($ch);

    if (
    curl_errno($ch)) {
        
    $err=1;
          
    $errtext curl_error($ch);
    }

    curl_close($ch);

    $response $json->decode($response);

    return(
    $response);
    }
    function 
    channels_data_all($webboxip,$device,$json)
    {

    $requestarray4 '{
    "version": "1.0",
    "proc": "GetProcessData",
    "id": "1",
    "format": "JSON",
    "params":
    {
    "devices":
    [
    {
    "key": "'
    .$device.'",
    "channels": null
    }
    ]
    }
    }'
    ;

    $response4 request2($webboxip,$requestarray4,$json);

    return(
    $response4);
    }
    function 
    channels_data($webboxip,$device,$value,$json)
    {

    $requestarray3 '{
    "version": "1.0",
    "proc": "GetProcessData",
    "id": "1",
    "format": "JSON",
    "params":
    {
    "devices":
    [
    {
    "key": "'
    .$device.'",
    "channels":
    [
    "'
    .$value.'"
    ]
    }
    ]
    }
    }'
    ;

    $response3 request($webboxip,$requestarray3,$json);

    return(
    $response3);
    }
    function 
    channels($webboxip,$device,$json)
    {

    $requestarray2 '{
    "version": "1.0",
    "proc": "GetProcessDataChannels",
    "id": "1",
    "format": "JSON",
    "params":
    {
    "device": "'
    .$device.'"
    }
    }'
    ;

    $response2 request($webboxip,$requestarray2,$json);

    return(
    $response2);
    }

    function 
    getdevice($webboxip,$json)
    {
    $requestarray1 '{
    "version": "1.0",
    "proc": "GetDevices",
    "id": "1",
    "format": "JSON"
    }'
    ;

    $response1 request($webboxip,$requestarray1,$json);

    return(
    $response1);
    }

    function 
    overview($webboxip,$json)
    {
    $requestarray0 '{
    "version": "1.0",
    "proc": "GetPlantOverview",
    "id": "1",
    "format": "JSON"
    }'
    ;


    $response0 request($webboxip,$requestarray0,$json);

    return(
    $response0);
    }


    // ====== ENDE FUNKTION DATEN AUS SUNNY WEBBOX ABRUFEN ======



    ?>

  2. #2
    Registriert seit
    Nov 2011
    Ort
    Salzburger Land
    Beiträge
    10

    Standard Alles wieder in Ordnung!

    Hat sich erledigt, habe es gefunden link

    Chris

Ähnliche Themen

  1. SMA - Sunny Island
    Von thezepter im Forum Haustechnik
    Antworten: 0
    Letzter Beitrag: 03.05.18, 13:28
  2. SMA Webbox
    Von kronos im Forum Haustechnik
    Antworten: 112
    Letzter Beitrag: 17.10.17, 15:34
  3. Script bei Fehlermeldung ausführen
    Von agotthold im Forum Allgemeine Diskussion (2.x/3.x)
    Antworten: 4
    Letzter Beitrag: 22.11.14, 00:03
  4. Sunny Webbox (Photovoltaik)
    Von UVoigi im Forum Allgemeine Diskussion (2.x/3.x)
    Antworten: 3
    Letzter Beitrag: 01.05.11, 18:26
  5. Frage zu JSON unter IPS V1 (für SMA WebBox)
    Von CGastager im Forum Skripte, PHP, SQL
    Antworten: 11
    Letzter Beitrag: 09.07.09, 08:51