API - Application Program Interface Description
Diese Solarprognosen API basiert auf HTTP-Anfragen. Die Antworten erfolgen in JSON (JavaScript Object Notation) oder XML.
Wichtig: Um den Datenverkehr und die Serverlast zu reduzieren benützen Sie bitte einen lokalen Zwischenspeicher. Ich empfehle, das Ergebnis mindestens eine Stunde lang zwischenzuspeichern (das Wetter ändert sich ja nicht so schnell).
Solarprognose API
Die HTTP-Anfragen für tägliche oder stündliche Prognose der Erzeugung müssen im folgenden Format erfolgen:
http://www.solarprognose.de/web/solarprediction/api/v1?
access-token=ACCESS-TOKEN
&item=ITEM&id=ID
Alternativ: &item=ITEM&token=TOKEN
&type=hourly|daily
&_format=json|xml
&algorithm=mosmix|own-v1|clearsky
&day=DAY
&start_epoch_time=START_EPOCH_TIME&end_epoch_time=END_EPOCH_TIME
&start_day=START_DAY&end_day=END_DAY
&snomminixml=true # für snom VoIP Telefone
ACCESS-TOKEN
Ihr API Zugriffsschlüssel
ITEM und ID
ITEM
location oder plant oder inverter oder module_field
ID
Die ID ist die eindeutige Nummer von diesem Element.
ITEM und TOKEN
ITEM und TOKEN wird benötigt um auf Elemente zuzugreifen welche nicht öffentlich sind: &item=inverter&token=
Wenn Sie per access-token zugreifen können Sie auf ihre privaten (nicht öffentliche) Elemente zugreifen.
Datums und Intervalle
DAY
Erlaubte Werte: von -2 bis 6
Dann erhalten Sie die Daten vom Tag relativ zu heute. Achtung: Dies kann durch ihren Tarif eingeschränkt sein! Der Fehler "STATUS_ERROR_INVALID_END_DAY" kann auftreten wenn der Wert größer ist als in ihrem Tarif enthalten.
START_DAY
Erlaubte Werte: von -2 bis 6
Zur Abfrage von Daten einer bestimmten Periode. Dies definiert den Start-Tag relativ zu heute. Achtung: Dies kann durch ihren Tarif eingeschränkt sein! Der Fehler "STATUS_ERROR_INVALID_END_DAY" kann auftreten wenn der Wert größer ist als in ihrem Tarif enthalten.
END_DAY
Erlaubte Werte: von -2 bis 6
Zur Abfrage von Daten einer bestimmten Periode. Dies definiert den End-Tag relativ zu heute. Achtung: Dies kann durch ihren Tarif eingeschränkt sein! Der Fehler "STATUS_ERROR_INVALID_END_DAY" kann auftreten wenn der Wert größer ist als in ihrem Tarif enthalten.
START_EPOCH_TIME
zum Beispiel: 1439650241
Zur Abfrage von Daten einer bestimmten Periode. Dies definiert den Start mit der Unixtimestamp. Achtung: Dies kann durch ihren Tarif eingeschränkt sein! Der Fehler "STATUS_ERROR_INVALID_END_DAY" kann auftreten wenn der Wert größer ist als in ihrem Tarif enthalten.
END_EPOCH_TIME
zum Beispiel: 1439650241
Zur Abfrage von Daten einer bestimmten Periode. Dies definiert das Ende mit der Unixtimestamp. Achtung: Dies kann durch ihren Tarif eingeschränkt sein! Der Fehler "STATUS_ERROR_INVALID_END_DAY" kann auftreten wenn der Wert größer ist als in ihrem Tarif enthalten.
Status Codes
Bei Verwendung eines ungültigen API-Schlüssels erscheint der HTTP Status Code 401 Unauthorized.
STATUS_OK = 0;
STATUS_ERROR_INVALID_ACCESS_TOKEN = -2;
STATUS_ERROR_MISSING_PARAMETER_ACCESS_TOKEN = -3;
STATUS_ERROR_EMPTY_PARAMETER_ACCESS_TOKEN = -4;
STATUS_ERROR_INVALID_TYPE = -5;
STATUS_ERROR_MISSING_TYPE = -6;
STATUS_ERROR_INVALID_ID = -7;
STATUS_ERROR_ACCESS_DENIED = -8;
STATUS_ERROR_INVALID_ITEM = -9;
STATUS_ERROR_INVALID_TOKEN = -10;
STATUS_ERROR_NO_SOLAR_DATA_AVAILABLE = -11;
STATUS_ERROR_NO_DATA = -12;
STATUS_ERROR_INTERNAL_ERROR = -13;
STATUS_ERROR_UNKNOWN_ERROR = -14;
STATUS_ERROR_INVALID_START_DAY = -15;
STATUS_ERROR_INVALID_END_DAY = -16;
STATUS_ERROR_INVALID_DAY = -17;
STATUS_ERROR_INVALID_WEATHER_SERVICE_ID = -18;
STATUS_ERROR_DAILY_QUOTA_EXCEEDED = -19;
STATUS_ERROR_INVALID_OR_MISSING_ELEMENT_ITEM = -20;
STATUS_ERROR_NO_PARAMETER = -21;
STATUS_ERROR_INVALID_PERIOD = -22;
STATUS_ERROR_INVALID_START_EPOCH_TIME = -23;
STATUS_ERROR_INVALID_END_EPOCH_TIME = -24;
STATUS_ERROR_ACCESS_DENIED_TO_ITEM_DUE_TO_LIMIT = -25;
STATUS_ERROR_NO_CLEARSKY_VALUES = -26;
STATUS_ERROR_MISSING_INPUT_ID_AND_TOKEN = -27;
Beispiele
Anfrage:
http://www.solarprognose.de/web/solarprediction/api/v1?access-token=454jelfd&item=inverter&id=2&type=hourly
Ergebnis:
{
"status":0,
"iLastPredictionGenerationEpochTime":1576681137,
"datalinename":"Süd",
"data":{
"1576735200":[0,0], // timestamp: kilowatt/kw, accumulated kwh
"1576738800":[0.064,0.064],
"1576742400":[0.606,0.67],
"1576746000":[1.148,1.818],
"1576749600":[1.647,3.465],
"1576753200":[0.295,3.76],
"1576756800":[0.273,4.033],
"1576760400":[1.3,5.333],
"1576764000":[0.305,5.638],
"1576767600":[0.014,5.652],
"1576771200":[0,5.652],
... the other days follow
}
}
Anfrage:
http://www.solarprognose.de/web/solarprediction/api/v1?access-token=454jelfd&item=inverter&id=2&type=daily
Ergebnis:
{
"iLastPredictionGenerationEpochTime":1576686390,
"status": 0,
"datalinename": "SMASB2000TL"
"data": {
"20151212": 1.978, // yyymmdd: kwh per day
"20151213": 1.999,
"20151214": 4.049,
"20151215": 5.567,
"20151216": 1.948,
"20151217": 1.925
},
}
Anfrage:
http://www.solarprognose.de/web/solarprediction/api/v1?_format=json&access-token=454jelfd&item=inverter&id=2&type=hourly&day=1
Ergebnis:
{
"status":0,
"iLastPredictionGenerationEpochTime":1576681137,
"datalinename":"Süd",
"data":{
"1576735200":[0,0],
"1576738800":[0.064,0.064],
"1576742400":[0.606,0.67],
"1576746000":[1.148,1.818],
"1576749600":[1.647,3.465],
"1576753200":[0.295,3.76],
"1576756800":[0.273,4.033],
"1576760400":[1.3,5.333],
"1576764000":[0.305,5.638],
"1576767600":[0.014,5.652],
"1576771200":[0,5.652]
}
}
http://www.solarprognose.de/web/solarprediction/api/v1?access-token=454jelfd&item=inverter&token=DEF&type=hourly
http://www.solarprognose.de/web/solarprediction/api/v1?access-token=454jelfd&item=inverter&token=DEF&type=daily
http://www.solarprognose.de/web/solarprediction/api/v1?access-token=454jelfd&item=inverter&token=DEF&type=hourly&day=-1