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
 $result = file_get_contents("http://" .$domoticzIp. ":8080/json.htm?type=command¶m=udevice&idx=" .$IACid. "&nvalue=0&svalue=".$inverterProduction); //Ner hit


Skall det verkligen vara " innan http:// ?

Tänker om det istället ska vara :

 $result = file_get_contents(http://" .$domoticzIp. ":8080/json.htm?type=command¶m=udevice&idx=" .$IACid. "&nvalue=0&svalue=".$inverterProduction); //Ner hit

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
Ja datorer är aldrig förlåtande mot ett enda litet fel tyvärr

Stort tack för allt idag!
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
In reply to this post by Davil
Jo den bygger ihop en textsträng
"http://192.168.1.31:8080/osv"
När vi blandar in variabler så lägger vi till variabeln med .$variabel.
"http://" . $DomoticzIP . ":8080/osv"
Jag brukar sätta ett mellanslag mellan . Och $variabel Men det fungerar utan.
Svara | Threaded
Open this post in threaded view
|

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

TommyEutloggad
Jag tror att jag kom på det. Du kan stänga av imloggningen för dina privata ipnr 127.0.0.1 och 192.168.1.* i Domoticz, beskriver bättre i morgon.
Nu kan jag sova lungt
Svara | Threaded
Open this post in threaded view
|

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

TommyE
Gå in i Domoticz och välj inställningar och inställningar. Skriv in dina ipnr i rutan för lokala nätverk 127.0.0.*; 192.168.1.* separera med ";" När det är gjort så ska du inte få err 401 när du kör php skriptet (håller tummarna).

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

TommyE
just ja. Om du lägger in 192.168.1.* i "Lokala nätverk" så kommer du inte behöva logga in från någon av dina datorer/telefoner hemma. Om du vill fortsätta logga in så skriv in den exakta ipadressen till Domoticz
"127.0.0.*; 192.168.1.41"
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
In reply to this post by TommyE
Nu jäklar!!

Det funkar! Den uppdaterar som den skall!
Superb!

Så... Hur går jag vidare till nästa steg?
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
Bara göra mer av samma

För att hämta per fas så måste du fråga smart metern istället för invertern, invertern har bara summorna över alla faser.
För att komma åt smartmetern så använder du
http://192.168.1.39/solar_api/v1/GetMeterRealtimeData.cgi?Scope=Device&DeviceId=0
Då bör du få en lista som påminner om den här:
SmartMeterAPI wrote
{
Body: {
Data: {
Current_AC_Phase_1: 1.0830000514397398,
Current_AC_Phase_2: 0.9780000464525074,
Current_AC_Phase_3: 0.45500002161134034,
Details: {
Manufacturer: "Fronius",
Model: "Smart Meter 63A",
Serial: "XXXX"
},
Enable: 1,
EnergyReactive_VArAC_Sum_Consumed: 93662530,
EnergyReactive_VArAC_Sum_Produced: 35645830,
EnergyReal_WAC_Minus_Absolute: 3663527,
EnergyReal_WAC_Plus_Absolute: 24796649,
EnergyReal_WAC_Sum_Consumed: 24796649,
EnergyReal_WAC_Sum_Produced: 3663527,
Frequency_Phase_Average: 50.00000074505806,
Meter_Location_Current: 0,
PowerApparent_S_Phase_1: 252.3390239709193,
PowerApparent_S_Phase_2: 226.50482151680194,
PowerApparent_S_Phase_3: 104.7865099541836,
PowerApparent_S_Sum: 373.99999164044857,
PowerFactor_Phase_1: -0.9299999792128801,
PowerFactor_Phase_2: -0.6899999845772982,
PowerFactor_Phase_3: -0.36999999172985554,
PowerFactor_Sum: -0.7099999841302633,
PowerReactive_Q_Phase_1: -35.77999920025468,
PowerReactive_Q_Phase_2: -153.5199965685606,
PowerReactive_Q_Phase_3: -72.00999839045107,
PowerReactive_Q_Sum: -261.30999415926635,
PowerReal_P_Phase_1: -88.3599980250001,
PowerReal_P_Phase_2: -150.97999662533402,
PowerReal_P_Phase_3: -29.209999347105622,
PowerReal_P_Sum: -268.54999399743974,
TimeStamp: 1527699821,
Visible: 1,
Voltage_AC_PhaseToPhase_12: 402.4000191129744,
Voltage_AC_PhaseToPhase_23: 400.0000189989805,
Voltage_AC_PhaseToPhase_31: 401.20001905597746,
Voltage_AC_Phase_1: 233.00001106690615,
Voltage_AC_Phase_2: 231.60001100040972,
Voltage_AC_Phase_3: 230.30001093866304
}
},
Head: {
RequestArguments: {
DeviceClass: "Meter",
DeviceId: "0",
Scope: "Device"
},
Status: {
Code: 0,
Reason: "",
UserMessage: ""
},
Timestamp: "2018-05-30T19:03:42+02:00"
}
}
Så då blir frågan, vilka värden vill du spara på?
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
Aha... Till och med jag börjar eventuellt få upp ett ljus och förstå snart tror jag

Till att börja med så är det "Current_AC_Phase_1" och 2 och 3 som är högintresanta för mig för att hålla koll på ström-peakar .

"PowerApparent_S_Sum" är antagligen produktionen "just nu" ?
Skulle vilja ha produktionen totalt "idag" och "totalt" också om det går?

Effektförbrukning "just nu" och "totalt idag" och "totalt" hade varit trevligt om det går?
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
Jag gjorde ett försök enligt följande:

<?php
$dataManagerIP = "192.168.1.39";
$domoticzIp = "192.168.1.41"; //Jag förutsätter port 8080
$IACid ="685"; //Domotics ID för IAC

// Inverter URL (allt på samma rad)
$inverterDataURL = "http://"192.168.1.39/solar_api/v1/GetMeterRealtimeData.cgi?Scope=Device&DeviceId=0"; //Till hit.

//Hämta IAC
//sleep(5);
//äs in json filen från invertern
$inverterJSON = file_get_contents($inverterDataURL);
//Gör om den så php förstår att det är json
$inverterData = json_decode($inverterJSON, true);
//Hämta intressant värde, du känner igen taggarna inom ["Tagg"] om du tittar direkt i filen
$inverterProduction = $inverterData["Body"]["Data"]["Current_AC_Phase_1"]["Value"];

// ta bort kommentarerna om du har problem med null värden i Domotics.
//if ($inverterPoduction == null) {
//  $inverterProduction = 0;
//}

//Spara till domoticz
//Solcels produktionen
//Se till att allt ligger på samma rad och ta bort mellanslag mellan & param.
    $result = file_get_contents("http://" .$domoticzIp. ":8080/json.htm?type=command¶m=udevice&idx=" .$IACid. "&nvalue=0&svalue=".$inverterProduction); //Ner hit

//Om det blir fel så ta bort // på nästa rad så får du en utskrift på skärmen, ge den till mig.
//Även den här raden ska vara på samma rad. och & param ska vara ihop
//echo ("http://" .$domoticzIp. ":8080/json.htm?type=command¶m=udevice&idx=" .$IACid. "&nvalue=0&svalue=".$inverterProduction"); //Till hit
?>


Detta blev påföljden:

pi@raspberrypi:~ $ nano JSonIAC_L1.php
pi@raspberrypi:~ $ php JSonIAC_L1.php
PHP Parse error:  syntax error, unexpected '192.168' (T_DNUMBER) in /home/pi/JSonIAC_L1.php on line 7
pi@raspberrypi:~ $


Behöver sova nu också suck. Skulle behöva ta semester så man hann med detta mer hehe.
Nya försök imorgon.
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
Gode gott, jag håller på och leker med min nya navigator.

PHP säger att något är fel på rad 7
1. <?php
2. $dataManagerIP = "192.168.1.39";
3. $domoticzIp = "192.168.1.41"; //Jag förutsätter port 8080
4. $IACid ="685"; //Domotics ID för IAC
5.
6. // Inverter URL (allt på samma rad)
7. $inverterDataURL = "http://"192.168.1.39/solar_api/v1/GetMeterRealtimeData.cgi
        Scope=Device&DeviceId=0"; //Till hit.


Någonting på den raden är fel, den klagar på ditt ip nummer syntax error, unexpected '192.168' (T_DNUMBER)
Det är alltså något vid ip numret som inte blivit helt rätt. Ser du vad det är?
Du har för många ", du har bytt ut $variabeln till fast ip och då ska du inte bygga en ny textsträng, utan du skriver allt inom samma "citat"
$inverterDataURL = "http://"192.168.1.39/solar_api/v1/GetMeterRealtimeData.cgi
        Scope=Device&DeviceId=0";
Ska nu vara
$inverterDataURL = "http://192.168.1.39/solar_api/v1/GetMeterRealtimeData.cgi
        Scope=Device&DeviceId=0";
Dvs utan " efter http://
Det här är också ett helt korrekt sätt att göra, att jag valde att sätta in variabler, var för att du bara skulle behöva ändra på ett ställe och minska risken att du missar något ställe.
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
Ok! Tack för finfint svar!

Din kunskapsnivå ligger på en mycket mycket högre nivå än min men du förklarar så pass bra att jag tror att jag förstår

Jag hade kunnat skriva : "http://".$dataManagerIP."/solar_api/v1/GetMeterRealtimeData.cgi?Scope=Device&DeviceId=0

Nu får jag inga error, men min sensor visar aldrig något värde?!
Sensorn är inte "röd-markerad" men den visar endast 0
pi@raspberrypi:~ $ php JSonIAC_L1.php
pi@raspberrypi:~ $

Vad kan vara fel då tro?
Jag har skapat en Virtuell sensor "Ampere (1-Fas)"

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
This post was updated on .
Du är nästan där igen. Men värdet som du letar efter finns inte under rubriken ["Value"].
Jag klipper in från min fil igen.
Body: {
  Data: {
    Current_AC_Phase_1: 1.6160000767558813,
    Current_AC_Phase_2: 0.7430000352906063,
    Current_AC_Phase_3: 1.398000066401437,
Den här filen har inte Value med. Om vi tittar på överskrifterna i filen, så har vi först Body.
["Body"]
Efter Body hittar vi Data, alltså
["Body"]["Data"]
Nästa steg ner är Current_AC_Phase_1 och efter den kommer själva värdet (1.616 osv)
Alltså finns det värde vi söker under taggen (heter på programeringsspråka Array)
L1 = ["Body"]["Data"]["Current_AC_Phase_1"]
L2 = ["Body"]["Data"]["Current_AC_Phase_2"]
L3 = ["Body"]["Data"]["Current_AC_Phase_3"]

Watten per fas ligger under PowerReal_P_Phase_1 (det är iaf den jag läser från).

Nu borde du inte göra en fil för varje värde utan försöka baka ihop allt i samma fil, det blir lättare att hålla ordning på dom och det blir färre anrop till växelriktaren.

I övrigt ser det rätt ut i mina ögon - men jag tittade bara lite snabbt. Jag är för trött idag :-)

Ledsen men jag orkar inte titta mer på det här idag, jag stiger upp tidigt och lägger mig sent, så i slutet av veckan brukar jag vara lite sliten.

Davil wrote
Jag hade kunnat skriva : "http://".$dataManagerIP."/solar_api/v1/GetMeterRealtimeData.cgi?Scope=Device&DeviceId=0
Det stämmer :-)
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
Ah.. Såklart! Jag tittade inte tillräckligt noga men nu fattar jag ju vad som gjorde att det inte fungerade.

Riktigt kul att jag förstår lite mer, det går åt rätt håll iaf

Hur gör man så att jag bakar in L1 L2 och L3 i samma fil?

Är det ok att köra tätare uppdateringsintervall på crontab, tex 2min eller blir Raspberry för hårt belastad då?

Jag uppskattar verkligen all din hjälp!
Du får absolut inte känna dig stressad att behöva svara så snabbt på mina frågor .

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
Hm. Fredagsnöjet består av strul

Vill få ut Volt DC (UDC) men det vill sig inte.

Så här ser php ut:

<?php
$dataManagerIP = "192.168.1.39";
$domoticzIp = "192.168.1.41"; //Jag förutsätter port 8080
$IACid ="692"; //Domotics ID för IAC

// Inverter URL (allt på samma rad)
$inverterDataURL = "http://".$dataManagerIP."/solar_api/v1/GetInverterRealtimeData.cgi?Scope=Device&DeviceID=1&DataCollection=CommonInverterData"; //Till hit.

//Hämta IAC
//sleep(5);
//äs in json filen från invertern
$inverterJSON = file_get_contents($inverterDataURL);
//Gör om den så php förstår att det är json
$inverterData = json_decode($inverterJSON, true);
//Hämta intressant värde, du känner igen taggarna inom ["Tagg"] om du tittar direkt i filen
$inverterProduction = $inverterData["Body"]["Data"]["UDC"]["Value"];

// ta bort kommentarerna om du har problem med null värden i Domotics.
//if ($inverterPoduction == null) {
//  $inverterProduction = 0;
//}

//Spara till domoticz
//Solcels produktionen
//Se till att allt ligger på samma rad och ta bort mellanslag mellan & param.
    $result = file_get_contents("http://" .$domoticzIp. ":8080/json.htm?type=command¶m=udevice&idx=" .$IACid. "&nvalue=0&svalue=".$inverterProduction); //Ner hit

//Om det blir fel så ta bort // på nästa rad så får du en utskrift på skärmen, ge den till mig.
//Även den här raden ska vara på samma rad. och & param ska vara ihop
//echo ("http://" .$domoticzIp. ":8080/json.htm?type=command¶m=udevice&idx=" .$IACid. "&nvalue=0&svalue=".$inverterProduction); //Till hit
?>

Och detta error blir det:

pi@raspberrypi:~ $ php JSonVolt_DC.php

PHP Warning:  file_get_contents(http://192.168.1.41:8080/json.htm?type=command¶m=udevice&idx=692&nvalue=0&svalue=417): failed to open stream: Connection refused in /home/pi/JSonVolt_DC.php on line 27
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
This post was updated on .
In reply to this post by Davil
God måndag.
Jag skrev en liten i fredags, men tydligen lyckades jag missa att skicka iväg det.
För att läsa in fler parametrar i samma php fil så behöver du bara göra fler anrop. Alla värden som finns i inverterData blir tillgängliga när du läst in den, samma med smartMeterData

<?php
//Läs in JSON filen
$dataManagerIP = "192.168.1.39";
$domoticzIp = "192.168.1.41"; //Jag förutsätter port 8080

// Inverter URL (allt på samma rad)
$inverterDataURL  = "http://".$dataManagerIP."/solar_api/v1/GetInverterRealtimeData.cgi?Scope=Device&DeviceID=1&DataCollection=CommonInverterData";
//Till hit.
// Ny rad
//SmartMeterns URL
$smartMeterDataURL = "http://" . $dataManagerIP . "/solar_api/v1/GetMeterRealtimeData.cgi?Scope=Device&DeviceId=0
//Till hit

//Läs in json filen från invertern
$inverterJSON = file_get_contents($inverterDataURL);
sleep(5); // Ge datorn 5 sek att vänta på datat
//Läs in json filen från Smart Metern
$smartMeterJSON = file_get_contents($smartMeterDataURL);

//Läs in båda filerna som JSON filer.
$inverterData = json_decode($inverterJSON, true);
$smartMeterData = json_decode($smartMeterJSON, true);

När du gjort det här så har du tillgång till allt som finns i invertern och i smartmetern. Du hämtar värdet på samma sätt som tidigare.
ex:
$UDC = $inverterData["Body"]["Data"]["UDC"]["Value"];
//Sen plockar vi amp per fas från smartmetern.
$A_L1 = $smartMeterData["Body"]["Data"]["Current_AC_Phase_1"];
$A_L2 = $smartMeterData["Body"]["Data"]["Current_AC_Phase_2"];
$A_L3 = $smartMeterData["Body"]["Data"]["Current_AC_Phase_3"];

Namnge $variablerna så att dom påminner om det värde dom ska lagra, så blir det mycket mycket lättare att i framtiden förstå vad du menade när du gjorde skriptet. Kommentera även vad du vill att skriptet ska göra, en text som kommer efter // behandlas som en kommentar, så du kan skriva den som en överskrift

//En kommentar
kod
kod
kod

Eller så kan du skriva in den på samma rad som koden.
kod kod // kommentar

Slutligen sparas värdena i Domoticz, även här gör du helt enkelt fler anrop. Här kan du ha variabler för varje sensorid eller så kan du skriva in dom direkt här.
$result = file_get_contents("http://" .$domoticzIp. ":8080/json.htm?type=command& param=udevice&idx=12345&nvalue=0&svalue=".$UDC);
sleep(1); //Ge 1 sekunds rast
$result = file_get_contents("http://" .$domoticzIp. ":8080/json.htm?type=command& param=udevice&idx=" . $A_L1id . "&nvalue=0&svalue=".$A_L1);
sleep(1);
Repetera med så många värden du vill. Ge gärna en sleep(x) där x är valfritt antal sekunder mellan anropen till Domoticz och växelriktaren. Vet inte om det behövs, men det känns bra att ge raspberryn lite tid att göra klart innan nästa anrop kommer.

Jag har ett minne av att Domoticz ibland vill ha nvalue=värde och ibland vill den ha värdet som svalue, har inte listat ut när eller varför den vill ha det ena eller det andra, funkar inte det ena så prova det andra har varit min taktik.

Varför du får connection refused, vet jag inte - vad jag kan se så ser anropet rätt ut. Kan det vara så att Domoticz har stannat?

Hur ofta du kan köra skriptet vet jag inte heller, jag är nöjd med var 5e minut. Men det är bara att prova, kör skriptet och se hur lång tid det tar, så har du en minimum tid iaf.



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
God Måndag!! ...och strax sovdags igen

Hann bara försöka en enda gång som hastigast och...det ville sig självklart inte haha.

Så här ser mitt försök ut:

<?php
//Läs in JSON filen
$dataManagerIP = "192.168.1.39";
$domoticzIp = "192.168.1.41"; //Jag förutsätter port 8080
$A_L1id ="685"; //Domotics ID för A_L1
$A_L2id ="686"; //Domotics ID för A_L2
$A_L3id ="687"; //Domotics ID för A_L3

// Inverter URL (allt på samma rad)
$inverterDataURL  = "http://".$dataManagerIP."/solar_api/v1/GetInverterRealtimeData.cgi?Scope=Device&DeviceID=1&DataCollection=CommonInverterData"; //Till hit.
// Ny rad
//SmartMeterns URL
$smartMeterDataURL = "http://" . $dataManagerIP . "/solar_api/v1/GetMeterRealtimeData.cgi?Scope=Device&DeviceId=0 //Till hit

//Läs in json filen från invertern
$inverterJSON = file_get_contents($inverterDataURL);
sleep(5); // Ge datorn 5 sek att vänta på datat
//Läs in json filen från Smart Metern
$smartMeterJSON = file_get_contents($smartMeterDataURL);

//Läs in båda filerna som JSON filer.
$inverterData = json_decode($inverterJSON, true);
$smartMeterData = json_decode($smartMeterJSON, true);

När du gjort det här så har du tillgång till allt som finns i invertern och i smartmetern. Du hämtar värdet på samma sätt som tidigare.
ex: Om UDC finns under Value, då jag är på jobbet kan jag inte titta på det.

Sen plockar vi amp per fas från smartmetern.
$A_L1 = $smartMeterData["Body"]["Data"]["Current_AC_Phase_1"];
$A_L2 = $smartMeterData["Body"]["Data"]["Current_AC_Phase_2"];
$A_L3 = $smartMeterData["Body"]["Data"]["Current_AC_Phase_3"];

$result = file_get_contents("http://" .$domoticzIp. ":8080/json.htm?type=command¶m=udevice&idx=" . 685 . "&nvalue=0&svalue=".$A_L1);
sleep(1); //Ge 1 sekunds rast
$result = file_get_contents("http://" .$domoticzIp. ":8080/json.htm?type=command¶m=udevice&idx=" . 686 . "&nvalue=0&svalue=".$A_L2);
sleep(1); //Ge 1 sekunds rast
$result = file_get_contents("http://" .$domoticzIp. ":8080/json.htm?type=command¶m=udevice&idx=" . 687 . "&nvalue=0&svalue=".$A_L3);
sleep(1); //Ge 1 sekunds rast

och det ger följande resultat:

pi@raspberrypi:~ $ php JSonIAC.php
PHP Parse error:  syntax error, unexpected '"', expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in /home/pi/JSonIAC.php on line 29
pi@raspberrypi:~ $

Måste verkligen sova men ska klura vidare imorgon förhoppningsvis.
Detta börjar ju faktiskt bli riktigt kul!

Tack återigen!!

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
Det senaste var inte ett färdigt skript, det var delar som passar i ursprungsskriptet, det börjar närma sig examen så nu blir det lite klurigare :-)
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
Nu är det mörker igen och jag fattar inte vad jag har missat för dumt.

<?php
//Läs in JSON filen
$dataManagerIP = "192.168.1.39";
$domoticzIp = "192.168.1.41"; //Jag förutsätter port 8080
$A_L1id ="685"; //Domotics ID för A_L1
$A_L2id ="686"; //Domotics ID för A_L2
$A_L3id ="687"; //Domotics ID för A_L3

// Inverter URL (allt på samma rad)
$inverterDataURL  = "http://".$dataManagerIP."/solar_api/v1/GetInverterRealtimeData.cgi?Scope=Device&DeviceID=1&DataCollection=CommonInverterData"; //Till hit.
// Ny rad
//SmartMeterns URL
$smartMeterDataURL = "http://".$dataManagerIP."/solar_api/v1/GetMeterRealtimeData.cgi?Scope=Device&DeviceId=0 //Till hit

//Läs in json filen från invertern
$inverterJSON = file_get_contents($inverterDataURL);
sleep(5); // Ge datorn 5 sek att vänta på datat
//Läs in json filen från Smart Metern
$smartMeterJSON = file_get_contents($smartMeterDataURL);

//Läs in båda filerna som JSON filer.
$inverterData = json_decode($inverterJSON, true);
$smartMeterData = json_decode($smartMeterJSON, true);

//När du gjort det här så har du tillgång till allt som finns i invertern och i smartmetern. Du hämtar värdet på samma sätt som tidigare.

//Sen plockar vi amp per fas från smartmetern.
$A_L1 = $smartMeterData["Body"]["Data"]["Current_AC_Phase_1"];
$A_L2 = $smartMeterData["Body"]["Data"]["Current_AC_Phase_2"];
$A_L3 = $smartMeterData["Body"]["Data"]["Current_AC_Phase_3"];

$result = file_get_contents("http://" .$domoticzIp. ":8080/json.htm?type=command¶m=udevice&idx=" . $A_L1id . "&nvalue=0&svalue=".$A_L1);
sleep(1); //Ge 1 sekunds rast
$result = file_get_contents("http://" .$domoticzIp. ":8080/json.htm?type=command¶m=udevice&idx=" . $A_L2id . "&nvalue=0&svalue=".$A_L2);
sleep(1); //Ge 1 sekunds rast
$result = file_get_contents("http://" .$domoticzIp. ":8080/json.htm?type=command¶m=udevice&idx=" . $A_L3id . "&nvalue=0&svalue=".$A_L3);
sleep(1); //Ge 1 sekunds rast

//Om det blir fel så ta bort // på nästa rad så får du en utskrift på skärmen, ge den till mig.
//Även den här raden ska vara på samma rad. och & param ska vara ihop
//echo ("http://" .$domoticzIp. ":8080/json.htm?type=command& param=udevice&idx=" .$IACid. "&nvalue=0&svalue=".$inverterProduction");
//Till hit
?>


Vad är det som saknas i denna php fil?

Jag får error:
pi@raspberrypi:~ $ php JSonIAC.php
PHP Parse error:  syntax error, unexpected '"', expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in /home/pi/JSonIAC.php on line 28
pi@raspberrypi:~ $
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
Hej.

Eg bara en liten liten sak, eller två.
//SmartMeterns URL
$smartMeterDataURL = "http://".$dataManagerIP."/solar_api/v1/GetMeterRealtimeData.cgi?Scope=Device&DeviceId=0 //Till hit

på den raden har vi missat slut citat och ;
$smartMeterDataURL = "http://".$dataManagerIP."/solar_api/v1/GetMeterRealtimeData.cgi?Scope=Device&DeviceId=0"; //Till hit

Tror att vi kan ta bort //Till hit nu
$smartMeterDataURL = "http://".$dataManagerIP."/solar_api/v1/GetMeterRealtimeData.cgi?Scope=Device&DeviceId=0";

Den var faktiskt ganska svår att hitta då php klagade på rad nr 28 (on line 28), det här är rad nr 13. Lättaste sättet att få fram vilken rad du står på i nano är att trycka ctrl+c
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