+ Antworten
Seite 1 von 3 1 2 3 LetzteLetzte
Ergebnis 1 bis 10 von 22
  1. #1
    Registriert seit
    Feb 2011
    Ort
    Magdeburg
    Beiträge
    87

    Standard Fronius Wechselrichter mittels JSON in IPS einbinden

    Hallo Zusammen,

    nachdem mir das IPS- Team so großartig weitergeholfen hat, möchte ich "mein Wissen" bezüglich der Einbindung eines Fronius- Wechselrichters weitergeben.

    Ihr benötigt: einen oder mehrere Fronius- Wechselrichter mit mit einer Datamanager- Karte
    HTML-Code:
    http://www.fronius.com/cps/rde/xchg/SID-398C2ED7-69D33E6F/fronius_international/hs.xsl/83_28105_DEU_HTML.htm
    Die Einbindung ist via WLAN und LAN möglich.

    Wenn Ihr den WR mit
    HTML-Code:
    http://192.168.178.181/solar_api/v1/GetInverterRealtimeData.cgi?Scope=Device&DeviceID=1&DataCollection=CommonInverterData
    abfragt, habt ihr die folgende Anzeige
    HTML-Code:
    {
    	"Head" : {
    		"RequestArguments" : {
    			"DataCollection" : "CommonInverterData",
    			"DeviceClass" : "Inverter",
    			"DeviceId" : "1",
    			"Scope" : "Device"
    		},
    		"Status" : {
    			"Code" : 0,
    			"Reason" : "",
    			"UserMessage" : ""
    		},
    		"Timestamp" : "2014-01-07T09:03:22+01:00"
    	},
    	"Body" : {
    		"Data" : {
    			"DAY_ENERGY" : {
    				"Value" : 240,
    				"Unit" : "Wh"
    			},
    			"FAC" : {
    				"Value" : 49.96,
    				"Unit" : "Hz"
    			},
    			"IAC" : {
    				"Value" : 4.39,
    				"Unit" : "A"
    			},
    			"IDC" : {
    				"Value" : 3.63,
    				"Unit" : "A"
    			},
    			"PAC" : {
    				"Value" : 1039,
    				"Unit" : "W"
    			},
    			"TOTAL_ENERGY" : {
    				"Value" : 143212,
    				"Unit" : "Wh"
    			},
    			"UAC" : {
    				"Value" : 230,
    				"Unit" : "V"
    			},
    			"UDC" : {
    				"Value" : 298.2,
    				"Unit" : "V"
    			},
    			"YEAR_ENERGY" : {
    				"Value" : 15994,
    				"Unit" : "Wh"
    			},
    			"DeviceStatus" : {
    				"StatusCode" : 7,
    				"MgmtTimerRemainingTime" : -1,
    				"ErrorCode" : 0,
    				"LEDColor" : 2,
    				"LEDState" : 0,
    				"StateToReset" : false
    			}
    		}
    	}
    }

    Wenn das klappt, dann legt euch fünf Variablen an (Float)
    Day Energy
    Total Energy
    Year Energy
    AC Frequency
    Power

    Wenn ihr mehr abfragen möchtet, dann müsst ihr es entsprechend ergänzen.

    Und nun noch folgendes Skript:


    PHP-Code:
    $content file_get_contents("http://192.168.178.181/solar_api/v1/GetInverterRealtimeData.cgi?Scope=Device&DeviceID=1&DataCollection=CommonInverterData"); // Dies ist die Abfrage. Zu ändern ist die IP und die DeviceID entsprechend eurer Geräte

    if ($content === False){
        echo 
    "Nicht erreichbar";
        
    $pac 0;
        
    $fac 0;
        
    SetValue(57819 /*[Energie\PVAnlage\FRONIUS\Fronius SYMO\Symo Power]*/,$pac);
        
    SetValue(16194 /*[Energie\PVAnlage\FRONIUS\Fronius SYMO\Symo AC Frequency]*/,$fac);
        return;
    // Dies ist die Kontrolle, ob der Wechselrichter erreichbar ist. Wenn nein, dann habe ich Power und Frequency auf null gesetzt, da ich manchmal "Restwerte" von 1 hatte (letzte erreichbare Abfrage war 1W) Die hätte er sonst bis zur nächsten Erreichbarkeit angezeigt.

    }


    $json json_decode($content);


    //Dies ist die eigentliche Wertabfrage und Zuweisung zu den vorne stehenden Variablen
    //Ihr könnt es mit den Werten ergänzen die Ihr wollt
    $day $json->Body->Data->DAY_ENERGY->Value
    $total $json->Body->Data->TOTAL_ENERGY->Value
    $year $json->Body->Data->YEAR_ENERGY->Value;
    $fac $json->Body->Data->FAC->Value;
    $pac $json->Body->Data->PAC->Value;



    $day $day 1000// Umrechnung Watt in Kilowatt
    $total  $total 1000;
    $year $year 1000;

    // Variablenzuweisung mit euren Variablen ändern
    SetValue(23340 /*[Energie\PVAnlage\FRONIUS\Fronius SYMO\Symo Day Energy]*/,$day);  
    SetValue(28828 /*[Energie\PVAnlage\FRONIUS\Fronius SYMO\Symo Total Energy]*/,$total);
    SetValue(44925 /*[Energie\PVAnlage\FRONIUS\Fronius SYMO\Symo Year Energy]*/,$year);
    SetValue(16194 /*[Energie\PVAnlage\FRONIUS\Fronius SYMO\Symo AC Frequency]*/,$fac);
    SetValue(57819 /*[Energie\PVAnlage\FRONIUS\Fronius SYMO\Symo Power]*/,$pac);

    ?> 
    Dann weist ihr dem Skript noch ein zyklisches Ereignis zu (Häufigkeit nach eurem Gusto, ich frage nach je einer Minute ab).
    Dann sollte es laufen.
    Für einen zweiten oder dritten oder... einfach neue Variablen anlegen, ein neues Skript anlegen und dann einfach die IP und die DeviceID ändern.

    Alle Werte die man abfragen kann findet ihr in den Dokumentationen unter:
    HTML-Code:
    http://www.fronius.com/cps/rde/xchg/SID-2658B568-FA0179D1/fronius_international/hs.xsl/83_28911_DEU_HTML.htm#
    Hierfür müsst ihr euch aber anmelden.

    Ich hoffe die Anleitung ist hilfreich.
    Lieschen
    Geändert von Lieschen (07.01.14 um 09:04 Uhr)

  2. #2
    Registriert seit
    Sep 2008
    Beiträge
    53

    Danke, funktioniert einwandfrei (Fronius Symo 5.0-3-M via WLAN).
    IPS 3.0 auf Server 2012 / FHZ 1300 / Allnet4000 / HM Lanadapter / Projektstart 1.9.2013

  3. #3
    Registriert seit
    Feb 2013
    Ort
    Oberösterreich
    Beiträge
    943

    Hallo!
    Danke für das Skript!
    Bekomme immer die Fehlermeldung:


    Notice: Undefined property: stdClass::$FAC in C:\IP-Symcon\scripts\12250.ips.php on line 25

    Notice: Trying to get property of non-object in C:\IP-Symcon\scripts\12250.ips.php on line 25

    Notice: Undefined property: stdClass::$PAC in C:\IP-Symcon\scripts\12250.ips.php on line 26

    Notice: Trying to get property of non-object in C:\IP-Symcon\scripts\12250.ips.php on line 26

    Warning: Cannot auto-convert to Float from Variant. Error: Could not convert variant of type (Null) into type (Double) in C:\IP-Symcon\scripts\12250.ips.php on line 38

    Warning: Cannot auto-convert to Float from Variant. Error: Could not convert variant of type (Null) into type (Double) in C:\IP-Symcon\scripts\12250.ips.php on line 39


    Habe dein Skript auf meine Varis umgeändert:

    PHP-Code:
     $content file_get_contents("http://10.0.0.40/solar_api/v1/GetInverterRealtimeData.cgi?Scope=Device&DeviceID=1&DataCollection=CommonInverterData"); // Dies ist die Abfrage. Zu ändern ist die IP und die DeviceID entsprechend eurer Geräte

    if ($content === False){
        echo 
    "Nicht erreichbar";
        
    $pac 0;
        
    $fac 0;
        
    SetValue(23889 /*[Energie\PVAnlage\FRONIUS\Fronius SYMO\Symo Power]*/,$pac);
        
    SetValue(13329 /*[Energie\PVAnlage\FRONIUS\Fronius SYMO\Symo AC Frequency]*/,$fac);
        return;
    // Dies ist die Kontrolle, ob der Wechselrichter erreichbar ist. Wenn nein, dann habe ich Power und Frequency auf null gesetzt, da ich manchmal "Restwerte" von 1 hatte (letzte erreichbare Abfrage war 1W) Die hätte er sonst bis zur nächsten Erreichbarkeit angezeigt.

    }


    $json json_decode($content);


    //Dies ist die eigentliche Wertabfrage und Zuweisung zu den vorne stehenden Variablen
    //Ihr könnt es mit den Werten ergänzen die Ihr wollt
    $day $json->Body->Data->DAY_ENERGY->Value;
    $total $json->Body->Data->TOTAL_ENERGY->Value;
    $year $json->Body->Data->YEAR_ENERGY->Value;
    $fac $json->Body->Data->FAC->Value;
    $pac $json->Body->Data->PAC->Value;



    $day $day 1000// Umrechnung Watt in Kilowatt
    $total  $total 1000;
    $year $year 1000;

    // Variablenzuweisung mit euren Variablen ändern
    SetValue(28512 /*[Energie\PVAnlage\FRONIUS\Fronius SYMO\Symo Day Energy]*/,$day);
    SetValue(10011 /*[Energie\PVAnlage\FRONIUS\Fronius SYMO\Symo Total Energy]*/,$total);
    SetValue(18033 /*[Energie\PVAnlage\FRONIUS\Fronius SYMO\Symo Year Energy]*/,$year);
    SetValue(13329 /*[Energie\PVAnlage\FRONIUS\Fronius SYMO\Symo AC Frequency]*/,$fac);
    SetValue(23889 /*[Energie\PVAnlage\FRONIUS\Fronius SYMO\Symo Power]*/,$pac); 
    Danke für deine Info!
    Liebe Grüße,
    Michl

    IPS Symbox

  4. #4
    Registriert seit
    Jun 2013
    Beiträge
    107

    Standard Alternative: ModBus

    Mit der neuen Firmware Version der Fronius Datamanager karte kommt eine ModBus schnittstelle. Funktioniert einwandfrei.

  5. #5
    Registriert seit
    Nov 2016
    Beiträge
    223

    Standard Fronius Symo mit S0-Meter

    Moin!

    Ich möchte noch ein Code-Schnipsel beisteuern, falls jemand ein S0-Meter am Symo angeschlossen hat. Das Skipt liest den momentanen Verbrauch aus:

    PHP-Code:
    //zusaätzlich S0-Meter für Verbrauch abfragen und verarbeiten
    $content2 file_get_contents("http://192.168.178.229/solar_api/v1/GetMeterRealtimeData.cgi?Scope=Device&DeviceId=1&DataCollection=MeterRealtimeData"); // Dies ist die Abfrage. Zu ändern ist die IP und die DeviceID entsprechend eurer Geräte
    $json2 json_decode($content2);
    $usage abs($json2->Body->Data->PowerReal_P_Sum);
    SetValue(58516 /*[Solar\SymoMeterPowerNow]*/,$usage); 
    Kann an beliebiger Stelle eingefügt werden.

  6. #6

    Tadaaaaa....Der erste Schnipsel von DrFrank.
    IPS Ninja \\ Webfront auf 15" ELO Touch \\ z-wave \\ IPS-868 \\ FS20 \\ 1-wire \\ Oregon WMRS200 \\ Mediaportal \\ 4x Squeezebox \\ SONOS \\ Denon AVR1912 \\ Kostal Piko 5.5 \\ 7x Vivotek \\ 1x INStar \\ Gardena R40Li mit Robonect HX30
    Mehr auf www.diewuppers.de

  7. #7
    Registriert seit
    Nov 2016
    Beiträge
    223

    Hallo,

    Die erste modifizierte Version des Skripts hat noch zuviel Fehler produziert, da die Strukturen auf die es zugreift nicht immer existieren. Ich habe daher noch ein paar Abfragen eingebaut und es komplett umgestellt. Ausserdem wird jetzt noch der Autarkiegrad berechnet und in eine Variable geschrieben. Das Skript hat heute einen kompletten 24h Zyklus fehlerfrei überstanden :-)

    Falls ihr ein Fronius SmartMeter besitzt könnt ihr das auch abfragen (URL anpassen). Da das SmartMeter Werte wie Netzspannung, Frequenz, usw. auch bereitstellt, wenn der Wechselrichter nicht läuft ist es sogar die bessere (weil 24x7) Datenquelle.

    Eine generelle Doku der API gibt es hier:
    http://www.fronius.com/cps/rde/xbcr/...6_snapshot.pdf
    (auf die jeweils aktuelle Version kann man nach kostenloser Registrierung zugreifen)

    PHP-Code:
    <?
    // Initial Version by Symcon Froum Member: Lieschen, modified by Stefan Frank
    // Doku: http://www.fronius.com/cps/rde/xbcr/SID-A761BF1D-F8F8FEE6/fronius_international/42_0410_2012_318486_snapshot.pdf

     // Inverter Abfrage. Zu ändern ist die IP und die DeviceID entsprechend eurer Geräte:
    $content file_get_contents("http://192.168.178.229/solar_api/v1/GetInverterRealtimeData.cgi?Scope=Device&DeviceId=1&DataCollection=CommonInverterData");
     
    // S0-Meter Abfrage. Zu ändern ist die IP und die DeviceID entsprechend eurer Geräte:
    $content2 file_get_contents("http://192.168.178.229/solar_api/v1/GetMeterRealtimeData.cgi?Scope=Device&DeviceId=1&DataCollection=MeterRealtimeData");

    // Default Werte. Sollen übergeben werden, solange der Inverter nicht produziert.
    $pac 0;
    $fac 50;
    $uac 230;
    $iac 0;
    $udc 0;
    $idc 0;
    $status 11;
    $usage 0;

    if (
    $content !== False){                                            // Inverter erreichbar. Abfrage von content hat ein Ergebnis geliefert.
        
    $json json_decode($content);
        if (
    property_exists($json"Body") === True) {                    // Die Struktur enthält einen Body, wir können also darauf zugreifen
            
    $status $json->Body->Data->DeviceStatus->StatusCode;        // Diese Werte sollten immer im Body vorhanden sein
            
    $day $json->Body->Data->DAY_ENERGY->Value
            
    $total $json->Body->Data->TOTAL_ENERGY->Value
            
    $year $json->Body->Data->YEAR_ENERGY->Value;              
            if (
    $status === 7){                                         // Hier steht der Inverterstatus drin. Einige Objekte existieren nur im Status 7 (running)
                
    $fac $json->Body->Data->FAC->Value;                    // Diese Werte exiistieren nur, wenn der Inverter produziert (7)
                
    $pac $json->Body->Data->PAC->Value;
                
    $udc $json->Body->Data->UDC->Value;
                
    $idc $json->Body->Data->IDC->Value;
                
    $uac $json->Body->Data->UAC->Value;
                
    $iac $json->Body->Data->IAC->Value;
            }
        }


    // zusätzlich S0-Meter für den Eigen-Verbrauch verarbeiten
    // Wenn ihr das Fronuis Smart-Meter besitzt, könnt ihr noch viel mehr Werte abfragen (Details: Siehe API Beschreibung)
    if ($content2 !== False){
        
    $json2 json_decode($content2);
        
    $usage abs($json2->Body->Data->PowerReal_P_Sum);
    }

    // Umrechnung der Summen-Zählerwerte Watt in Kilowatt
    $day $day 1000
    $total  $total 1000;
    $year $year 1000;

    // Autarkiegrad ermitteln
    if ($usage != 0) {
        
    $aut = ($pac $usage) * 100;
    } else {
        
    $aut 0;
        }
    if (
    $aut 100){
        
    $aut=100;
    }


    // Zuweisung der Variablen
    // Hier fuer eure Variablen angepassen:
    SetValue(12821 /*[Solar\SymoStatus]*/,$status);
    SetValue(21217 /*[Solar\SymoDayEnergy]*/,$day);  
    SetValue(56358 /*[Solar\SymoTotalEnergy]*/,$total);
    SetValue(58736 /*[Solar\SymoYearEnergy]*/,$year);
    SetValue(58516 /*[Solar\SymoMeterPowerNow]*/,$usage);
    SetValue(50620 /*[Solar\SymoACFrequency]*/,$fac);
    SetValue(33254 /*[Solar\SymoPowerNow]*/,$pac);
    SetValue(55891 /*[Solar\SymoDCVoltage]*/,$udc);
    SetValue(59778 /*[Solar\SymoDCCurrent]*/,$idc);
    SetValue(58881 /*[Solar\SymoACCurrent]*/,$iac);
    SetValue(50641 /*[Solar\SymoACVoltage]*/,$uac);
    SetValue(53814 /*[Solar\SymoAutarkiegrad]*/,$aut);
    ?>
    Für die Variable "status" kann mein noch ein Profil (Integer) wie folgt erstellen:
    Name:  Unbenannt.JPG
Hits: 2161
Größe:  30.1 KB

  8. #8
    Registriert seit
    Nov 2016
    Beiträge
    223

    Hier mal meine neuste Version. Sie sollte Fehler jetzt weitgehend abfangen. Außerdem habe ich noch weitere Datenklassen hinzugefügt (AC Seite bei 3-phasigen Geräten und MinMax Werte).

    PHP-Code:
    <?
    // Initial Version by Symcon Froum Member: Lieschen, modified by Stefan Frank V2.10
    // Doku: http://www.fronius.com/cps/rde/xbcr/SID-A761BF1D-F8F8FEE6/fronius_international/42_0410_2012_318486_snapshot.pdf
    // Wenn ihr kein S0-Meter habt, müsst ihr alles was mit $content2 zusammenhaengt auskommentieren

    define("baseIP""192.168.xxx.xxx");         // IP Adresse eures Symo's
    define("deviceID""1");                     // Devices ID des Symo's (meist 0 oder 1)

    // Default Werte. Sollen übergeben werden, solange der Inverter nicht produziert.
    $pac 0;
    $fac 50;
    $uac 230;
    $iac 0;
    $iac1 $iac2 $iac3 0;
    $uac1 $uac2 $uac3 230;
    $udc 0;
    $idc 0;
    $status 11;                    // 12: nicht pingbar, 13: CommonINV missing, 14: Meter missing, 15: MinMax missing
    $usage 0;

    // Testen ob der WR Erreichbar ist, sonst abbrechen (mit Status 12: nicht pingbar)
    if (sys_Ping(baseIP100) === False){
        
    SetValue(12821 /*[EigeneProgramme\Solar\SymoStatus]*/,12); 
        return;
    }                                 

    // CommonInverterData Abfrage:
    $content file_get_contents("http://".baseIP."/solar_api/v1/GetInverterRealtimeData.cgi?Scope=Device&DeviceId=".deviceID."&DataCollection=CommonInverterData");
    // S0-Meter Abfrage:
    $content2 file_get_contents("http://".baseIP."/solar_api/v1/GetMeterRealtimeData.cgi?Scope=Device&DeviceId=".deviceID."&DataCollection=MeterRealtimeData");
    // 3PInverterData Abfrage:
    $content3 =  file_get_contents("http://".baseIP."/solar_api/v1/GetInverterRealtimeData.cgi?Scope=Device&DeviceId=".deviceID."&DataCollection=3PInverterData");
    // MinMaxInverterData-Abfrage:
    $content4 =  file_get_contents("http://".baseIP."/solar_api/v1/GetInverterRealtimeData.cgi?Scope=Device&DeviceId=".deviceID."&DataCollection=MinMaxInverterData"); 


    // Block fuer CommonInverterData & 3PInverterData
    // Nur bei Produktion ausfürhren
    if ($content !== False){                                            // Inverter erreichbar. Abfrage von content hat ein Ergebnis geliefert.
        
    $json json_decode($content);
        
    $json3 json_decode($content3);
        if (
    property_exists($json"Body") !== False) {                    // Die Struktur enthält einen Body, wir können also darauf zugreifen
            
    $status $json->Body->Data->DeviceStatus->StatusCode;        // Diese Werte sollten immer im Body vorhanden sein
            
    $day $json->Body->Data->DAY_ENERGY->Value
            
    $total $json->Body->Data->TOTAL_ENERGY->Value
            
    $year $json->Body->Data->YEAR_ENERGY->Value;              
            if (
    $status === 7){                                         // Hier steht der Inverterstatus drin. Einige Objekte existieren nur im Status 7 (running)
                
    $fac $json->Body->Data->FAC->Value;                    // Diese Werte exiistieren nur, wenn der Inverter produziert (7)
                
    $pac $json->Body->Data->PAC->Value;
                
    $udc $json->Body->Data->UDC->Value;
                
    $idc $json->Body->Data->IDC->Value;
                
    $uac $json->Body->Data->UAC->Value;
                
    $iac $json->Body->Data->IAC->Value;
                
    $iac1 $json3->Body->Data->IAC_L1->Value;
                
    $iac2 $json3->Body->Data->IAC_L2->Value;
                
    $iac3 $json3->Body->Data->IAC_L3->Value;
                
    $uac1 $json3->Body->Data->UAC_L1->Value;
                
    $uac2 $json3->Body->Data->UAC_L2->Value;
                
    $uac3 $json3->Body->Data->UAC_L3->Value;
            }
        } else {
    SetValue(12821 /*[EigeneProgramme\Solar\SymoStatus]*/,13); return;}  // Common INVData missing
    } else {SetValue(12821 /*[EigeneProgramme\Solar\SymoStatus]*/,13); return;}


    // Block für MeterRealtimeData
    // zusätzlich S0-Meter für den Eigen-Verbrauch verarbeiten
    // Wenn ihr das Fronuis Smart-Meter besitzt, könnt ihr noch viel mehr Werte abfragen (Details: Siehe API Beschreibung)
    if ($content2 !== False){
        
    $json2 json_decode($content2);
        
    $usage abs($json2->Body->Data->PowerReal_P_Sum);
    } else {
    SetValue(12821 /*[EigeneProgramme\Solar\SymoStatus]*/,14); return;}    // Meter Data missing

    // Block für MinMaxInterverterData
    if ($content4 !== False){
        
    $json4 json_decode($content4);
        
    $dayPmax $json4->Body->Data->DAY_PMAX->Value;
        
    $dayUDCmax $json4->Body->Data->DAY_UDCMAX->Value;
        
    $yearPmax $json4->Body->Data->YEAR_PMAX->Value;
        
    $yearUDCmax $json4->Body->Data->YEAR_UDCMAX->Value;
    } else {
    SetValue(12821 /*[EigeneProgramme\Solar\SymoStatus]*/,15); return;}    // MinMax Data missing

    // Umrechnung der Summen-Zählerwerte Watt in Kilowatt
    $day $day 1000
    $total  $total 1000;
    $year $year 1000;

    // Autarkiegrad berechnen und runden:
    if ($usage != 0) {
        
    $aut = ($pac $usage) * 100;
    } else {
    $aut 0.00;}
    $aut round ($aut2);

    // Ich stelle die 3Phasen Daten in je einer StringVariablen da
    // Die werden hier zusammen gebaut:
    $iac3P $iac1."|".$iac2."|".$iac3." A";
    $uac3P $uac1."|".$uac2."|".$uac3." V";

    // Zuweisung der Variablen
    // Hier fuer eure Variablen angepassen:
    SetValue(12821 /*[EigeneProgramme\Solar\SymoStatus]*/,$status);
    SetValue(21217 /*[EigeneProgramme\Solar\SymoDayEnergy]*/,$day);  
    SetValue(56358 /*[EigeneProgramme\Solar\SymoTotalEnergy]*/,$total);
    SetValue(58736 /*[EigeneProgramme\Solar\SymoYearEnergy]*/,$year);
    SetValue(58516 /*[EigeneProgramme\Solar\SymoMeterPowerNow]*/,$usage);
    SetValue(50620 /*[EigeneProgramme\Solar\SymoACFrequency]*/,$fac);
    SetValue(33254 /*[EigeneProgramme\Solar\SymoPowerNow]*/,$pac);
    SetValue(55891 /*[EigeneProgramme\Solar\SymoDCVoltage]*/,$udc);
    SetValue(59778 /*[EigeneProgramme\Solar\SymoDCCurrent]*/,$idc);
    SetValue(58881 /*[EigeneProgramme\Solar\SymoACCurrent]*/,$iac);
    SetValue(50641 /*[EigeneProgramme\Solar\SymoACVoltage]*/,$uac);
    SetValue(53814 /*[EigeneProgramme\Solar\SymoAutarkiegrad]*/,$aut);
    SetValue(30037 /*[EigeneProgramme\Solar\Symo3Puac]*/,$uac3P);
    SetValue(15438 /*[EigeneProgramme\Solar\Symo3Piac]*/,$iac3P);
    SetValue(18148 /*[EigeneProgramme\Solar\SymoUDCdayMax]*/,$dayUDCmax);
    SetValue(49626 /*[EigeneProgramme\Solar\SymoUDCyearMax]*/,$yearUDCmax);
    SetValue(36322 /*[EigeneProgramme\Solar\SymoPowerDayMax]*/,$dayPmax);
    SetValue(11434 /*[EigeneProgramme\Solar\SymoPowerYearMax]*/,$yearPmax);
    ?>

  9. #9
    Registriert seit
    Apr 2013
    Ort
    Baden-Württemberg
    Beiträge
    1,967

    Danke für die Skripte...
    hat auf Anhieb funktioniert...

    Bei mir hat der Fronius WR die DeviceID 1 und der Fronius SmartMeter die DeviceID 0....

    Hier noch eine kleine Ergänzung wenn man den Fronius Smartmeter näher abfragen möchte...
    Leider darf meine Anlage noch nicht ans Netz... daher spiele ich noch mit den Daten.... Praxiserprobt ist es noch nicht ganz...


    Ich hab mir ein seperates kleines Skript rausgeschnitten, um nur den SmartMeter abzufragen alle x Sekunden.
    Aktuell ist der Stromverbrauch GESAMT, und dann Stromverbrauch von Phase 1 - 3 einzeln, aktueller Ampere Abruf auf Phase 1 - 3.

    PHP-Code:
    <?
    // Initial Version by Symcon Froum Member: Lieschen, modified by Stefan Frank V2.10 
    // Doku: http://www.fronius.com/cps/rde/xbcr/SID-A761BF1D-F8F8FEE6/fronius_international/42_0410_2012_318486_snapshot.pdf 

    define("baseIP""192.168.2.16");      // IP Adresse eures Symo's  
    define("deviceIDSMART""0");         // Devices ID des Symo's Smart Meter 

    // S0-Meter Abfrage: 
    $content2 file_get_contents("http://".baseIP."/solar_api/v1/GetMeterRealtimeData.cgi?Scope=Device&DeviceId=".deviceIDSMART."&DataCollection=MeterRealtimeData"); 
    if (
    $content2 !== False){ 
        
    $json2 json_decode($content2); 
        
    $usage abs($json2->Body->Data->PowerReal_P_Sum);
        
    $PowerReal_P_Phase_1 abs($json2->Body->Data->PowerReal_P_Phase_1);   
        
    $PowerReal_P_Phase_2 abs($json2->Body->Data->PowerReal_P_Phase_2); 
        
    $PowerReal_P_Phase_3 abs($json2->Body->Data->PowerReal_P_Phase_3);
        
    $Current_AC_Phase_1 abs($json2->Body->Data->Current_AC_Phase_1);
        
    $Current_AC_Phase_2 abs($json2->Body->Data->Current_AC_Phase_2);
        
    $Current_AC_Phase_3 abs($json2->Body->Data->Current_AC_Phase_3); 
    } else {
    SetValue(46085 /*[Haus\Photovoltaik\SymoStatus]*/,14); return;}    // Meter Data missing 


    // Hier fuer eure Variablen angepassen:

    SetValue(17707 /*[Haus\Photovoltaik\Aktueller Verbrauch]*/,$usage);
    SetValue(30105 /*[Haus\Photovoltaik\SymoMeterPowerNow]*/,$usage);
    SetValue(35245 /*[Haus\Photovoltaik\SmartMeter\PowerReal_P_Phase_1]*/,$PowerReal_P_Phase_1);
    SetValue(39345 /*[Haus\Photovoltaik\SmartMeter\PowerReal_P_Phase_2]*/$PowerReal_P_Phase_2);
    SetValue(34395 /*[Haus\Photovoltaik\SmartMeter\PowerReal_P_Phase_3]*/,$PowerReal_P_Phase_3);
    SetValue(39935 /*[Haus\Photovoltaik\SmartMeter\Current_AC_Phase_1]*/,$Current_AC_Phase_1);
    SetValue(26585,$Current_AC_Phase_2);
    SetValue(19453,$Current_AC_Phase_3);
    ?>
    Laut Fronius DOKU gibt es für den Smartmeter noch:


    PowerReactive_Q_Sum" : -18.58,
    "PowerReactive_Q_Phase_1" : -18.58,
    30
    "PowerReactive_Q_Phase_2" : 0,
    "PowerReactive_Q_Phase_3" : 0,
    "Voltage_AC_Phase_1" : 232.7 ,
    "Voltage_AC_Phase_2" : 107.9 ,
    "Voltage_AC_Phase_3" : 107.9 ,
    "Voltage_AC_PhaseToPhase_12 " : 301.5 ,
    "Voltage_AC_PhaseToPhase_23 " : 186.9 ,
    "Voltage_AC_PhaseToPhase_31 " : 301.5 ,
    "Frequency_Phase_Average" : 50,
    "PowerApparent_S_Sum" : 236,
    "PowerFactor_Sum" : 0.99,
    "PowerFactor_Phase_1" : 0.99,
    "PowerFactor_Phase_2" : 1,
    "PowerFactor_Phase_3" : 1,
    "EnergyReal_WAC_Sum_Produced " : 0,
    "EnergyReal_WAC_Sum_Consumed " : 10439 ,
    "EnergyReactive_VArAC_Sum_Produced" : 7490,
    "EnergyReactive_VArAC_Sum_Consumed" : 6110,
    "EnergyReal_WAC_Plus_Absolute " : 0,
    "EnergyReal_WAC_Minus_Absolute " : 10439

    Als nicht Elektriker - verstehe ich da leider nur Bahnhof :-)
    • Z-WAVE: Fibaro FGR-221, FGS-211,Aeon Labs Multisensor, Aeon Labs S2, FGK, Greenwave
    • 1-Wire: S0 Counter, Windsensor XS, 1 Wire DS9490R, DS18B20, Luftgütesensor
    • Youless LS110 / Velux Raumluftfühler / Oregon Scientific WMR180A
    • IPS: Razberry PI B+

  10. #10
    Registriert seit
    Aug 2014
    Ort
    Nähe Flensburg
    Beiträge
    217

    Hi,

    die Werte sind recht schnell erklärt... https://www.frag-mutti.de/images/upl...46580/Bier.jpg

    Wie groß ist er denn? x kW

    LG Izack
    Ips 4.1 auf RPI2 / All3500 / 1-Wire Usb Stick / 1-Wire Controller 2 E-Service /
    Symcon Z-Wave + / Ir Kopf von Udo / Synology NAS

Ähnliche Themen

  1. Antworten: 3
    Letzter Beitrag: 03.12.19, 17:54
  2. FRONIUS Wechselrichter
    Von PWC im Forum Haustechnik
    Antworten: 157
    Letzter Beitrag: 01.11.19, 16:58
  3. IPS 3.x mit JSON-RPC Schnittstelle und Mediola
    Von josp666 im Forum Audio & Video, TK-Anlagen, ISDN
    Antworten: 9
    Letzter Beitrag: 29.12.13, 10:16
  4. Fronius Wechselrichter über Netzwerk einbinden
    Von Lieschen im Forum Haustechnik
    Antworten: 1
    Letzter Beitrag: 30.11.13, 18:22
  5. Fronius Wechselrichter
    Von kronos im Forum Haustechnik
    Antworten: 8
    Letzter Beitrag: 04.11.10, 17:13