Avläsa Fronius Json till Domoticz hjälp

classic Classic list List threaded Threaded
89 meddelanden Alternativ
12345
Svara | Threaded
Open this post in threaded view
|

Re: Avläsa Fronius Json till Domoticz hjälp

Davil
Det är heeelt fantastiskt!
Allt funkar!
Och jag tror tom att jag fattar det mesta och det är minsann inte illa hehe.

Volt DC fungerade inte för att jag hade valt fel typ av sensor. Jag hade valt electric för att jag var för snabb och missade att Volt fanns 😊. Nu fungerar även detta

Riktigt fint att jag har koll, och får email/pushbullet om mina strömmar via huvudsäkringarna närmar sig 20A hehe.

Tack till frugan som somnade tidigt i soffan denna kväll så jag fick lite tid till övers.
Tack mina 2 barn för att ni sover.
Men framför allt 1000 tack TommyE för all din hjälp trots att jag har varit trög i skallen

Mvh.David
Fronius Symo 17,5. Fronius Smartmeter. 18,24kW. 32 x 32st JA-Solar 285w paneler 20Gr lutning riktning Öst/Väst i Glanshammar Närke.
https://www.solarweb.com/Home/GuestLogOn?pvSystemid=26a3723a-9023-45ae-9816-b3d81c12c592 
Svara | Threaded
Open this post in threaded view
|

Re: Avläsa Fronius Json till Domoticz hjälp

TommyE
Skoj att höra att det gick till sig
Inte vet jag om du varit speciellt trög, du har lärt dig delar av ett nytt språk på mindre än 80 inlägg - det är inte illa.

Vassegod, bara skoj att kunna ge tillbaks lite av all den hjälpa jag fått genom åren - spec skoj när det fungerar.
6,0kWp: 8st JA-Solar 290W + 13st JA-Solar 285W. Fronius Symo 5.0-3-M + Smart Meter 63A-3, montage system Renusol Metasol+.
Taklutning 45°. Azimut 190° Ort Kiruna.
Produktionsdata: PVOutput
Svara | Threaded
Open this post in threaded view
|

Re: Avläsa Fronius Json till Domoticz hjälp

Davil
Hallåj!

Fungerar suveränt med alla avläsningsvärden!

Nu skulle det sitta fint att även ha med elförbrukningen. Men jag fattar inte riktigt vart jag har detta?
Har du koll på det?

Det är ju smartmeterns data och borde vara något av dessa?:

"EnergyReactive_VArAC_Sum_Consumed" : 4661540,
         "EnergyReactive_VArAC_Sum_Produced" : 893990,
         "EnergyReal_WAC_Minus_Absolute" : 2474832,
         "EnergyReal_WAC_Plus_Absolute" : 1582501,
         "EnergyReal_WAC_Sum_Consumed" : 1582501,
         "EnergyReal_WAC_Sum_Produced" : 2474832,
         "Frequency_Phase_Average" : 50.00000074505806,
         "Meter_Location_Current" : 0,
         "PowerApparent_S_Phase_1" : 156.83701489871589,
         "PowerApparent_S_Phase_2" : 69.418006594356299,
         "PowerApparent_S_Phase_3" : 508.50164830506111,
         "PowerApparent_S_Sum" : 616.99998620897532,

Men får inget av dessa värden att stämma överens när jag jämför med avläsning via solarweb.

Mvh.David
Fronius Symo 17,5. Fronius Smartmeter. 18,24kW. 32 x 32st JA-Solar 285w paneler 20Gr lutning riktning Öst/Väst i Glanshammar Närke.
https://www.solarweb.com/Home/GuestLogOn?pvSystemid=26a3723a-9023-45ae-9816-b3d81c12c592 
Svara | Threaded
Open this post in threaded view
|

Re: Avläsa Fronius Json till Domoticz hjälp

TommyE
Jag har ett skript som räknar ut dagens produktion, dagens import och export. Den skickar sedan upp utfallet till PVoutput.org

<?php
//Read the Fronius inverter and the Smart Meter.
//From https://github.com/b33st/Fronius_PVOutput_Uploader/blob/master/fronius.php
// Configuration Options
$dataManagerIP = "192.168.0.101";
$dataFile = "fronius.data";
$pvOutputApiURL = "http://pvoutput.org/service/r2/addstatus.jsp?";
$pvOutputApiKEY = "DenHärÄrHemlig";
$pvOutputSID = "OcksåHemlig";
// Inverter & Smart Meter API URLs
$inverterDataURL = "http://".$dataManagerIP."/solar_api/v1/GetInverterRealtimeData.cgi?Scope=Device&DeviceID=1&DataCollection=CommonInverterData";
$meterDataURL = "http://".$dataManagerIP."/solar_api/v1/GetMeterRealtimeData.cgi?Scope=Device&DeviceId=0";
// Define Date & Time
date_default_timezone_set("Europe/Stockholm");
$system_time= time();
$date = date('Ymd', time());
$time = date('H:i', time());

// Read Meter Data
do {
    sleep(5);
    $meterJSON = file_get_contents($meterDataURL);
    $meterData = json_decode($meterJSON, true);
    $meterPowerLive = $meterData["Body"]["Data"]["PowerReal_P_Sum"];
    $meterImportTotal = $meterData["Body"]["Data"]["EnergyReal_WAC_Plus_Absolute"];
    $meterExportTotal = $meterData["Body"]["Data"]["EnergyReal_WAC_Minus_Absolute"];
} while (empty($meterPowerLive) || empty($meterImportTotal) || empty($meterExportTotal));
// Read Inverter Data
sleep(5);
$inverterJSON = file_get_contents($inverterDataURL);
$inverterData = json_decode($inverterJSON, true);
$inverterPowerLive = $inverterData["Body"]["Data"]["PAC"]["Value"];
$inverterEnergyDayTotal = $inverterData["Body"]["Data"]["DAY_ENERGY"]["Value"];
$inverterVoltageLive = $inverterData["Body"]["Data"]["UDC"]["Value"];
if (file_exists($dataFile)) {
    echo "Reading data from $dataFile\n";
} else {
    echo "The file $dataFile does not exist, creating... \n";
    $saveData = serialize(array('import' => $meterImportTotal, 'export' => $meterExportTotal));
    file_put_contents($dataFile, $saveData);
}
$readData = unserialize(file_get_contents($dataFile));
$meterImportDayStartTotal = $readData['import'];
$meterExportDayStartTotal = $readData['export'];
// Calculate Day Totals For Meter Data
$meterImportDayTotal = $meterImportTotal - $meterImportDayStartTotal;
$meterExportDayTotal = $meterExportTotal - $meterExportDayStartTotal;
// Calculate Consumption Data
$consumptionPowerLive = $inverterPowerLive + $meterPowerLive;
$consumptionEnergyDayTotal = $inverterEnergyDayTotal + $meterImportDayTotal - $meterExportDayTotal;
// Calculate Live Import/Export Values
if ($meterPowerLive > 0) {
    $meterPowerLiveImport = $meterPowerLive;
    $meterPowerLiveExport = 0;
} else {
    $meterPowerLiveImport = 0;
    $meterPowerLiveExport = $meterPowerLive;
}

//// Push to PVOutput
// Om du inte har PVOutPut så behövs inte de här raderna.
//Gör om så du sparar i Dometics istället. För att spara så här många värden krävs betal versionen av
//PVOutput - Domotics är gratis.

//$pvOutputURL = $pvOutputApiURL
//                . "key=" .  $pvOutputApiKEY
//                . "&sid=" . $pvOutputSID
//                . "&d=" .   $date
//                . "&t=" .   $time
//                . "&v1=" .  $inverterEnergyDayTotal
//                . "&v2=" .  $inverterPowerLive
//                . "&v3=" .  $consumptionEnergyDayTotal
//                . "&v4=" .  $consumptionPowerLive ;
//                if ($inverterTemp !== null && $inverterTemp > 0) {
//                  //Temperaturen uppdateras endast när det produceras energi (API sak)
//                  //Skriver jag ut den som null eller 0 eller "" så sätter pvOutPut den till -1
//                  //Här gör jag så att den inte tas med alls, då blir det "-" i pvOutput.
//                        $pvOutputURL = $pvOutputURL . "&v5=" .  $inverterTemp;
//                }
//                $pvOutputURL = $pvOutputURL . "&v6=" .  $inverterVoltageLive
//                . "&v7=" .  $meterExportDayTotal
//                . "&v8=" .  $meterImportDayTotal
//                . "&v9=" .  $meterPowerLive
//                . "&v10=" . $meterPowerLiveExport
//                . "&v11=" . $meterPowerLiveImport
//                . "&v12=" . $BVPpower;
//file_get_contents(trim($pvOutputURL));
//Print Values to Console
Echo "\n";
Echo "d:datum \t $date\n";
Echo "t:tid \t $time\n";
Echo "v1:Tot energi \t $inverterEnergyDayTotal\n";
Echo "v2:W nu \t $inverterPowerLive\n";
Echo "v3:Tot forb \t $consumptionEnergyDayTotal\n";
Echo "v4:Forb nu \t $consumptionPowerLive\n";
Echo "v5:Invertertemp \t $inverterTemp\n";
Echo "v6:DC V\t $inverterVoltageLive\n";
Echo "v7:DagExport \t $meterExportDayTotal\n";
Echo "v8:DagImport \t $meterImportDayTotal\n";
Echo "v9:W nu \t $meterPowerLive\n";
Echo "v10:Export \t $meterPowerLiveExport\n";
Echo "v11:Import \t $meterPowerLiveImport\n";
//Echo "v12:BVP \t $BVPpower\n";
Echo "\n";
Echo "Unixtime: " . time() . "\n";
Echo "Sending data to PVOutput.org \n";
//Echo "$pvOutputURL \n";
Echo "\n";

//// Update data file with new EOD totals
if ($system_time > strtotime('Today 11:55pm') && $system_time < strtotime('Today 11:59pm')) {
  $saveData = serialize(array('import' => $meterImportTotal, 'export' => $meterExportTotal));
  file_put_contents($dataFile, $saveData);
}
?>

Prova köra den filen, men räkna med att produktion, export och import blir fel, då du inte har några startvärde. Om du kör den var 5e minut tillsammans med det andra skriptet, så kommer den kl 23:55 att spara din totalaproduktion, summan export och summan import i en fil som heter fronius.data, den kommer sedan vara utgångspunkten för att kunna beräkna de övriga siffrorna dagen efter.

Solcellsprod har jag som "Usage / Electric"
Export och Import har jag som "RFXMeters / Counter"

Sen är det bara att skapa sensorer i Domoticz och spara värden på samma sätt som tidigare.

Utfall på skärmen blir cirka så här:
 $ php read_inverter_smart_meter.php
Reading data from fronius.data

d:datum          20180612
t:tid    22:03
v1:Tot energi    17580
v2:W nu          15
v3:Tot forb      15672816
v4:Forb nu       4180.3099068981
v5:Invertertemp          35
v6:DC V  655.8
v7:DagExport     3219844
v8:DagImport     18875080
v9:W nu          4165.3099068981
v10:Export       0
v11:Import       4165.3099068981
v12:BVP          1939

Unixtime: 1528833810
Sending data to PVOutput.org
http://pvoutput.org/service/r2/addstatus.jsp?key= <klippt, det är som sagt lite hemligheter här>
6,0kWp: 8st JA-Solar 290W + 13st JA-Solar 285W. Fronius Symo 5.0-3-M + Smart Meter 63A-3, montage system Renusol Metasol+.
Taklutning 45°. Azimut 190° Ort Kiruna.
Produktionsdata: PVOutput
Svara | Threaded
Open this post in threaded view
|

Re: Avläsa Fronius Json till Domoticz hjälp

Davil
Tack så mycket!

Otroligt häftigt och imponerande script! Det fungerar vid copy & paste.
Jag trodde att jag skulle klara av att föra över till sensorer i Domoticz men som vanligt funkade det inte haha.

Ska klura mer när jag får tid.

mvh.David
Fronius Symo 17,5. Fronius Smartmeter. 18,24kW. 32 x 32st JA-Solar 285w paneler 20Gr lutning riktning Öst/Väst i Glanshammar Närke.
https://www.solarweb.com/Home/GuestLogOn?pvSystemid=26a3723a-9023-45ae-9816-b3d81c12c592 
Svara | Threaded
Open this post in threaded view
|

Re: Avläsa Fronius Json till Domoticz hjälp

Davil
In reply to this post by TommyE
Det var som tusan att jag faktiskt verkar fixa så att det börjar funka

Men jag får inte temp att fungera, trots att invertern producerar och jag har försökt att hitta var den hitta temp i scriptet men fattar inte vart/vad som ger det värdet?
Just detta är ingen big deal men ändå.

och varför får jag minusvärde men inte du på total förbrukning?

pi@raspberrypi:~ $ php JSonfronius.php
Reading data from fronius.data

d:datum          20180617
t:tid    21:20
v1:Tot energi    24191
v2:W nu          166
v3:Tot forb      -88229
v4:Forb nu       1574.749968512
PHP Notice:  Undefined variable: inverterTemp in /home/pi/JSonfronius.php on line 105
v5:Invertertemp
v6:DC V  419.4
v7:DagExport     148477
v8:DagImport     36057
v9:W nu          1408.749968512
v10:Export       0
v11:Import       1408.749968512

Unixtime: 1529263224
Fronius Symo 17,5. Fronius Smartmeter. 18,24kW. 32 x 32st JA-Solar 285w paneler 20Gr lutning riktning Öst/Väst i Glanshammar Närke.
https://www.solarweb.com/Home/GuestLogOn?pvSystemid=26a3723a-9023-45ae-9816-b3d81c12c592 
Svara | Threaded
Open this post in threaded view
|

Re: Avläsa Fronius Json till Domoticz hjälp

TommyEutloggad
Dom har ändrat något i temp loggen, så den fungerar inte längre. Jag har inte orkat ta tag i det, som du säger så är den inte spec viktig.
Har du lagt in i crontab så att även det här skriptet körs var 5e minut?
Vid midnatt, skriver den en textfil med startvärden för bla produktionen, jag har för mig att det inte funkade så bra om den inte fick skriva en ny fil då
Svara | Threaded
Open this post in threaded view
|

Re: Avläsa Fronius Json till Domoticz hjälp

Perwis
Jag försöker få ut temperaturen ur min Fronius Symo, men den skickar inget verkar det som.

Jag testar just nu bara att köra: http://192.168.0.101//solar_api/v1/GetInverterRealtimeData.cgi?Scope=Device&DeviceId=1&DataCollection=3PInverterData

Enligt API-specen så ska temperaturen komma med, men det gör den inte. Fläktarnas hastighet ska också komma med.

Är det någon som lyckats få ut temperaturen ur sin Fronius?
30x275W Amerisolar AS-6P30 Poly, Fronius Symo 6kW växelriktare, Fronius Smart Meter, Schletter montagesystem för falsat plåttak, 5 graders lutning, Orientering NO.
Svara | Threaded
Open this post in threaded view
|

Re: Avläsa Fronius Json till Domoticz hjälp

TommyE
Jag har fått ut temperaturen, men jag hittade den i historiska datat. Nu har jag såklart slarvat bort den filen, så jag kan inte visa exakt hur jag gjorde.
Men du skulle kunna testa:
http://192.168.0.101/solar_api/v1/GetArchiveData.cgi?Scope=System&StartDate=2019-05-01&EndDate=2019-05-01&Channel=Temperature_Powerstage

Då får du ut tempen under 2019-05-01, kolumn 1 är sekunder sedan midnatt och den uppdateras bara när växelriktaren är igång och producerar. Fläkt status har jag inte lyckats hitta alls.

Solarweb wrote
{
        "Body" :
        {
                "Data" :
                {
                        "inverter/1" :
                        {
                                "Data" :
                                {
                                        "Temperature_Powerstage" :
                                        {
                                                "Unit" : "°C",
                                                "Values" :
                                                {
                                                        "0" : 0,
                                                        "10200" : 0,
                                                        "10500" : 0,
                                                        "10800" : 0,
                                                        "11100" : 0,
                                                        "11400" : 0,
                                                        "11700" : 0,
                                                        "1200" : 0,
                                                        "12000" : 0,
                                                        "12300" : 0,
                                                        "12600" : 0,
                                                        "12900" : 0,
                                                        "13200" : 0,
                                                        "13500" : 0,
                                                        "13800" : 0,
                                                        "14100" : 0,
                                                        "14400" : 0,
                                                        "14700" : 0,
                                                        "1500" : 0,
                                                        "15000" : 0,
                                                        "15300" : 0,
                                                        "15600" : 0,
                                                        "15900" : 0,
                                                        "16200" : 0,
                                                        "16500" : 0,
                                                        "16800" : 0,
                                                        "17100" : 0,
                                                        "17400" : 0,
                                                        "17700" : 0,
                                                        "1800" : 0,
                                                        "18000" : 0,
                                                        "18300" : 0,
                                                        "18600" : 0,
                                                        "18900" : 0,
                                                        "19200" : 24,
                                                        "19500" : 25,
6,0kWp: 8st JA-Solar 290W + 13st JA-Solar 285W. Fronius Symo 5.0-3-M + Smart Meter 63A-3, montage system Renusol Metasol+.
Taklutning 45°. Azimut 190° Ort Kiruna.
Produktionsdata: PVOutput
12345