Tato stránka popisuje, jak mohou registrovaní uživatelé odesílat výrobní data svých OZE instalací (FVE, větrné, vodní nebo geotermální elektrárny) do platformy i-meteo.cz prostřednictvím HTTP API.
Data jsou přijímána přes jednoduché REST-like rozhraní. Stačí pravidelně (např. každých 15 minut nebo jednou denně) spustit skript, který odešle naměřené hodnoty.
API podporuje tři způsoby autentizace. Pro automatické skripty a mobilní aplikace doporučujeme Bearer token — je bezpečnější než heslo a vázán výhradně na konkrétní instalaci.
Každá OZE instalace má unikátní 64znakový token. Najdete ho v detailu instalace v sekci API pro odesílání dat. Token opravňuje výhradně k zápisu dat pro danou instalaci — heslo k účtu zůstává v bezpečí.
Authorization: Bearer <váš-64znakový-token>
Token lze kdykoli vygenerovat znovu (tlačítko v detailu instalace). Starý token okamžitě přestane fungovat.
Alternativa pro skripty — přihlašovací údaje k účtu na platformě v každém požadavku v Base64:
Authorization: Basic <base64(email:heslo)>
Vyžaduje oprávnění „Přidávat data OZE přes API" na vašem účtu.
Přihlaste se na web standardním formulářem a v dalších požadavcích posílejte session cookie. Vhodné pro testování v Postman/Insomnia.
Cookie: SSESS...=<session_id>
X-CSRF-Token: <token z https://www.i-meteo.cz/session/token>
https://www.i-meteo.cz/api/oze/{id}/data
Kde {id} je číselné ID vaší OZE instalace (najdete ho v detailu instalace nebo vám ho sdělí správce).
Content-Type: application/json
Authorization: Bearer <váš-api-token>
Alternativně: Authorization: Basic <base64(email:heslo)>
Seznam svých instalací a jejich ID: GET https://www.i-meteo.cz/api/oze
| Parametr | Typ | Povinný | Popis |
|---|---|---|---|
energie_kwh |
float | ANO |
Množství vyrobené elektrické energie v kWh za sledované období
(od posledního odesílání do teď, nebo denní součet).
Rozsah: 0 – 99 999.
|
vykon_kw |
float | ne | Aktuální výkon v kW v okamžiku odesílání. U FVE typicky aktuální výstupní výkon střídače. |
je_vcera |
bool | ne (výchozí: false) |
Nastavte true pokud odesíláte včerejší denní souhrn
(např. ranní odesílání dat za předchozí den).
Data budou zařazena do fronty a systém je opakovaně zkouší uložit,
dokud se to nepodaří. Zabrání duplicitám při výpadcích.
|
{
"energie_kwh": 12.547,
"vykon_kw": 3.84,
"je_vcera": false
}
Minimální tělo (jen povinný parametr):
{
"energie_kwh": 12.547
}
{
"ok": true,
"zprava": "Data úspěšně uložena.",
"oze_id": 5,
"energie_kwh": 12.547,
"ucinnost": 1.2547
}
Pole ucinnost = energie_kwh / instalovany_vykon (kWh/kWp nebo kWh/kW).
| HTTP kód | Důvod |
|---|---|
| 400 | Chybí povinný parametr energie_kwh, nebo neplatný JSON |
| 401 | Chybí autentizace nebo špatné přihlašovací údaje |
| 403 | Nemáte oprávnění pro tuto instalaci, nebo instalace není aktivní |
| 404 | OZE instalace s daným ID neexistuje |
| 500 | Chyba serveru (viz logy, kontaktujte správce) |
Ve všech příkladech nahraďte VAS_API_TOKEN (64znakový token z detailu instalace)
a ID_INSTALACE číselným ID vaší instalace.
curl -s -X POST \
"https://www.i-meteo.cz/api/oze/ID_INSTALACE/data" \
-H "Authorization: Bearer VAS_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"energie_kwh": 12.547,
"vykon_kw": 3.84
}'
<?php
/**
* Odešle výrobní data FVE do platformy i-meteo.cz
* Spouštět každých 15 minut přes cron:
* */15 * * * * /usr/bin/php /cesta/k/fve_odeslat.php
*/
define('OZE_URL', 'https://www.i-meteo.cz/api/oze/ID_INSTALACE/data');
define('OZE_TOKEN', 'VAS_API_TOKEN'); // z detailu instalace
// === Zde načtěte aktuální data z vašeho střídače / loggeru ===
$energieKwh = nactiEnergiizStridace(); // implementujte podle vašeho HW
$vykonKw = nactiVykonzStridace(); // volitelné
$data = json_encode([
'energie_kwh' => round($energieKwh, 3),
'vykon_kw' => round($vykonKw, 3),
]);
$ch = curl_init(OZE_URL);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $data,
CURLOPT_HTTPHEADER => [
'Content-Type: application/json',
'Authorization: Bearer ' . OZE_TOKEN,
],
CURLOPT_TIMEOUT => 15,
]);
$odpoved = curl_exec($ch);
$httpKod = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpKod === 201) {
echo "OK: Data odeslána.\n";
} else {
file_put_contents('/tmp/fve_chyba.log',
date('Y-m-d H:i:s') . " HTTP $httpKod: $odpoved\n",
FILE_APPEND
);
echo "CHYBA HTTP $httpKod\n";
exit(1);
}
// === Pomocné funkce – příklad čtení z CSV souboru Fronius/SolarEdge ===
function nactiEnergiizStridace(): float {
// Příklad: čtení z lokálního souboru exportovaného střídačem
// $csv = file_get_contents('/var/data/stridac_export.csv');
// return (float) parsujCsv($csv)['energy_kwh'];
return 0.0; // TODO: implementujte
}
function nactiVykonzStridace(): float {
return 0.0; // TODO: implementujte
}
<?php
// Odesílat jednou ráno (např. v 6:00) pro data předchozího dne
$data = json_encode([
'energie_kwh' => 42.350, // celková výroba včera v kWh
'vykon_kw' => null,
'je_vcera' => true, // systém uloží jako včerejší data
]);
// ... zbytek curl kódu stejný jako výše
#!/usr/bin/env python3
"""
Odešle výrobní data FVE do platformy i-meteo.cz
Závislosti: pip install requests
Cron: */15 * * * * python3 /cesta/k/fve_odeslat.py
"""
import requests
import logging
OZE_URL = "https://www.i-meteo.cz/api/oze/ID_INSTALACE/data"
OZE_TOKEN = "VAS_API_TOKEN" # z detailu instalace
logging.basicConfig(filename="/tmp/fve.log", level=logging.INFO,
format="%(asctime)s %(levelname)s %(message)s")
def odeslat_data(energie_kwh: float, vykon_kw: float = None, je_vcera: bool = False):
"""Odešle data na API i-meteo.cz"""
payload = {"energie_kwh": round(energie_kwh, 3)}
if vykon_kw is not None:
payload["vykon_kw"] = round(vykon_kw, 3)
if je_vcera:
payload["je_vcera"] = True
try:
r = requests.post(
OZE_URL,
json=payload,
headers={"Authorization": f"Bearer {OZE_TOKEN}"},
timeout=15,
)
if r.status_code == 201:
logging.info(f"OK – energie={energie_kwh} kWh, odpověď: {r.json()}")
else:
logging.error(f"CHYBA HTTP {r.status_code}: {r.text}")
except requests.RequestException as e:
logging.error(f"Síťová chyba: {e}")
if __name__ == "__main__":
# === Zde načtěte data z vašeho střídače ===
energie = 12.547 # TODO: načíst z API střídače / MQTT / souboru
vykon = 3.840 # TODO: aktuální výkon v kW
odeslat_data(energie, vykon)
import requests
# GoodWe střídač běží na lokální síti a nabízí vlastní API
STRIDAC_IP = "192.168.1.100" # IP vašeho GoodWe střídače na LAN
OZE_URL = "https://www.i-meteo.cz/api/oze/ID_INSTALACE/data"
OZE_TOKEN = "VAS_API_TOKEN"
def cti_goodwe_local():
"""Čte data přímo ze střídače GoodWe přes lokální API (bez cloudu)."""
r = requests.post(f"http://{STRIDAC_IP}/inverter.cgi",
data={"optType": "ReadRealTimeData"}, timeout=5)
d = r.json()
pac_w = d.get("Pac", 0) # aktuální výkon v W
eday = d.get("Eday", 0) # dnešní výroba v kWh
return eday, pac_w / 1000.0
energie, vykon = cti_goodwe_local()
requests.post(OZE_URL,
json={"energie_kwh": energie, "vykon_kw": vykon},
headers={"Authorization": f"Bearer {OZE_TOKEN}"},
timeout=15)
Přidejte do crontabu (crontab -e):
# Odesílání každých 15 minut (průběžná data)
*/15 * * * * /usr/bin/php /home/uzivatel/fve_odeslat.php >> /tmp/fve.log 2>&1
# Nebo Python verze
*/15 * * * * /usr/bin/python3 /home/uzivatel/fve_odeslat.py
# Ranní odesílání včerejšího souhrnu (v 6:00)
0 6 * * * /usr/bin/php /home/uzivatel/fve_souhrn_vcera.php
Pokud máte FVE s měničem GoodWe připojeným na SEMS Portal, může platforma i-meteo.cz stahovat vaše data automaticky — bez nutnosti psát jakýkoli skript.
semsportal.com/PowerStation/PowerStatusSnMin/xxxxxxxx-xxxx-...Přihlaste se na semsportal.com, otevřete svou elektrárnu a zkopírujte ID z URL adresy:
https://www.semsportal.com/PowerStation/PowerStatusSnMin/12345678-abcd-1234-efgh-000000000000
Content-Type: application/json
a tělo je validní JSON (čísla bez uvozovek, čárka jako desetinný oddělovač – ne středník).
Potřebujete pomoc? Napište nám přes kontaktní formulář nebo otevřete detail vaší OZE instalace, kde najdete ukázku API volání pro vaše konkrétní ID.
