IUNGO Forum

Het Forum is voor IUNGO gebruikers en wordt ook vooral beantwoord door andere IUNGO gebruikers.

IUNGO maakt zelf beperkt gebruik van het Forum.

Specifieke vragen of storingen dus graag melden via de mail naar ons info adres.

pattern second
historische product...
 
Meldingen
Alles wissen

historische productie zonnepanelen uitlezen via API, waarde voor 'prop'?

New Member
Deelgenomen: 1 jaar geleden
Berichten: 2
Topic starter  

Mijn historische productie van de zonnepanelen wil ik graag uitlezen. Daarna op mijn laptop analyseren. Daarmee wil ik een beslissing maken over de aanschaf van extra zonnepanelen. Alles via Python, want daarmee ben ik bekend

De eerste stap is om de historische meterstanden van de slimme meterstanden uit te lezen. Dat lukt. Dank aan de posts op het forum. Heb dus de `oids` achterhaald via het CURL commando.

curl -X POST -d "{""seq"":1,""method"":""objmgr_list_objects""}"  http://192.168.1.251/iungo/api_request 

Via Python kan ik zo data van de slimme meter ophalen en plotten.

oid = '538d72d9'  # engergy-dsmr4

t_request_from = str(int(time.mktime(datetime.datetime(2023, 8, 21, 2,  0, 0).timetuple())))
t_request_till = str(int(time.mktime(datetime.datetime(2023, 8, 22, 1, 55, 0).timetuple())))

all_t = []

for prop in ['T1', 'T2']:
    data_req = '{"seq":1,"method":"datalog_get","arguments":{"t1": ' + t_request_from + ',"t2":' + t_request_till + ',"oid":"' + oid +'", "prop": "' + prop + '"}}'
    respons = requests.post(url, data=data_req, verify = cafile).json()
    data = respons['rv']['data']
    
    df_data = pd.DataFrame(respons['rv']['data'], columns=['time_in_sec', prop])
    df_data['date_time'] = pd.to_datetime(df_data.time_in_sec, unit='s')
    df_data.pop('time_in_sec')
    df_data.set_index('date_time', inplace=True)
    all_t.append(df_data)
    
df_T = pd.concat(all_t, axis=1)
delta_T1 = df_T.T1.iloc[-1] - df_T.T1.iloc[0]
delta_T2 = df_T.T2.iloc[-1] - df_T.T2.iloc[0]

for col in df_T.columns:
    df_T[f'{col}_delta'] = df_T[col] - df_T[col].iloc[0]
    
df_T[f'T_delta'] = df_T.T1_delta + df_T.T2_delta

fig, ax = plt.subplots(1)
df_T.plot(y='T1_delta',
          ax=ax,
          label=f'T1 delta:{df_T.T1_delta.iloc[-1]:0.2f}')
df_T.plot(y='T2_delta',
          ax=ax,
          label=f'T2 delta:{df_T.T2_delta.iloc[-1]:0.2f}')
df_T.plot(y='T_delta',
          ax=ax,
          label=f'T delta:{df_T.T_delta.iloc[-1]:0.2f}')

De tweede stap is om de historische productie van de zonnepalen uit te lezen. Ik heb in de meterkast een bruto productiemeter geïnstalleerd. De `oid` heb ik. Mijn vraag: Wat vul ik in bij `prop`? Ik heb goed gezocht, maar kan de documentatie van de API nergens vinden. Heb daarom wat geprobeerd: 'T', '' of None. Maar dat werkt niet.

oid_sun = 'bef04aef'  # zon
prop = 'T'

data_req = '{"seq":1,"method":"datalog_get","arguments":{"t1": ' + t_request_from + ',"t2":' + t_request_till + ',"oid":"' + oid_sun +'", "prop": "' + prop + '"}}'
respons = requests.post(url, data=data_req, verify = cafile).json()

   
Citeren
Estimable Member
Deelgenomen: 9 jaar geleden
Berichten: 88
 

Volgens mij moet je "export" gebruiken.


   
BeantwoordenCiteren
New Member
Deelgenomen: 1 jaar geleden
Berichten: 2
Topic starter  

Bedankt voor je reactie. Ik krijg met 'import' nu het beste resultaat. Kwestie van proberen.

Waar komt de screenshot eigenlijk vandaan? Ik zoek nog steeds naar de handleiding van de API.


   
BeantwoordenCiteren
Estimable Member
Deelgenomen: 9 jaar geleden
Berichten: 88
 

Hi Hendrik

Via de control pagina kun je alle info vinden.
Voor jou is de link 🙂
http://192.168.1.251/iungo/control

Links boven staat een tab API

Import of export is maar net hoe je bruto productie meter is aangesloten. Vaak worden de kWh meters verkeerd aangesloten en dan is import de opbrengst van je zonnepanelen


   
BeantwoordenCiteren