Entso-e has a problem with its data provider (jao.eu) to share the day-ahead prices through their API again. The Energyforecast API is still able to deliver the market data. Looking forward to receive the 48h data through this binding.
For no apparent reason, I have not been receiving any data via the channels since at least yesterday, Friday. Energyforecast has always been NULL. However, the API with the key token via the web API. Since at least yesterday, the day-ahead price has also been NULL. I have recreated the thing several times, changed the values, but nothing has changed.
I have anonymized the token.Does anyone have any ideas about what might be going wrong? The day-ahead price via ENTSO-E is working.
I noticed the same behaviour a couple of days ago.
What i did:
In the OpenHab console:
bundle:list for getting the start ID number
bundle:stop ID-nr
bundle:start ID-nr
Of course this does not address why it stopped working, but at least i got it going again.
Edit: today it stopped working again and i needed to restart the binding.
No, restarting did not solve the issue.I still canāt get any values via the channel.
Letās make a small reset. In the previous version I added 2 services into one binding which caused too much confusion regarding day-ahead and forecast pricing.
Now binding relies only on https://www.energyforecast.de/. New things are needed.
Donāt know whatās happening there, I was more focused to clean things up.
First please switch to this updated binding. It has a new name so please check if cleanup really took place - old completely removed, new one istalled.
Now at each refreshInterval the response is printed to check if updates are coming regular. Enabling TRACE level will also help in further analyzing.
At least for me itās running stable since Thursday.
Nein, sorry, ich bekomme keine Werte.
Ich habe die Items und die Verlinkungen gelƶscht. Habe das Add-on entfernt und erneut installiert.
Ich habe die Werte in die neue Maske eingetragen. Auch einen neuen API Key erstellt.
Which persistence is attached to these items?
Rrd4j cannot handle future values. If you donāt have any other you can use inmemory
Hi Bernd,
thanks for the update, that is great! I remove the old version and Things and created new Things. Now I get what I need ![]()
There is one small issue, the āEnergy Forecast Fix Costā now needs to be entered in EUR/kWh, not in ct/kWh as stated in the description.
And one more thing - the format of the Price Origin channel is currently a Number which stays NULL. I guess that shall be a String, no?
Thatās true, itās a bug.
Fixed now, should work without creating new things/items.
No, itās a number but with a human readable mapping - see readme.
Regarding NULL - Iām also struggeling with timeseries first time setup every time! Item stays NULL until the next value update. In this case next full hour or 15 minutes. I still donāt know why the items doesnāt get filled immediately.
Hi Bernd,
yeah, I saw the readme meanwhile. Is there any particular reason why you go with a Number and not a String to show the origin directly? In the JSON I can see the origin as a String when pulling from the API Webpage.
Regarding NULL - Iām also struggeling with timeseries first time setup every time! Item stays NULL until the next value update. In this case next full hour or 15 minutes. I still donāt know why the items doesnāt get filled immediately.
I opened a separate topic for the time series issues - here: A few issue with time series. No response yet and not sure whom from the Maintainers to ping..
Several small reasons
- not easy to compare - ignore case sensitive, typos, ā¦
- standard
rrd4jdatabase cannot store Strings - with the
state options mappingsdescribed in readme a translation is possible - you can see it in a chart where
day-aheadends andforecastbegins
Hm curious, I never observed that. And Iāve several test things for tibber, entsoe, solar forecast, ⦠running, disbaled for weeks and after enabling it works fine. Only this described setup issue is bugging me
How can I attach a persistence service to an item? I can only set a default persistence service. When I change the service, all my values are gone. I have RRD4j as default. I can also use In Memory, MapDB and JDBC.
Can I set a specific persistence service for an item? If so, how?
Create /etc/openhab/persistence/inmemory.persist to persist all items of group memPersist
(I bet it can be done in UI, too)
// persistence strategies have a name and a definition and are referred to in the "Items" section
Strategies {
}
/*
* Each line in this section defines for which item(s) which strategy(ies) should be applied.
* You can list single items, use "*" for all items or "groupitem*" for all members of a group
* item (excl. the group item itself).
*/
Items {
memPersist* : strategy = everyChange, forecast
}
Thank you. Iām fairly new to openHAB, and everything being in English is also exhausting. Sorry if Iām asking strange questions. And even if inMemory is not the default persistence service, are the values still displayed?
I put the items from the binding into a group under Models and set the group in inMemory as described.
If you want to chart an item that is part of multiple persistence services and you donāt want the default one, you have to specify it as service: inmemory on the chart page.
Iām sorry to hear that renewable shares was removed. It was the thing I was most interested in⦠![]()
Hello everyone,
For those who simply want to write the 48-hour forecast in an item, here is a simple automation rule that does this for you without binding:
const { rules, triggers, actions, items, time } = require("openhab");
const PersistenceExtensions = Java.type("org.openhab.core.persistence.extensions.PersistenceExtensions");
const QuantityType = Java.type("org.openhab.core.library.types.QuantityType");
const ZonedDateTime = Java.type("java.time.ZonedDateTime");
const ITEM_NAME = "Strompreis_Forecast";
const API_URL = "https://www.energyforecast.de/api/v1/predictions/next_48_hours?token=MY_API_TOKEN";
rules.JSRule({
name: "Stündlicher Strompreis-Forecast",
description: "Holt die Preise und pusht sie in die InMemory-Datenbank",
triggers: [
triggers.GenericCronTrigger("0 0 * * * ?")
],
execute: (event) => {
console.info("Starte Strompreis-Abruf von EnergyForecast...");
let response = actions.HTTP.sendHttpGetRequest(API_URL);
if (response) {
try {
let jsonArray = JSON.parse(response);
let currentPriceState = null;
let now = time.ZonedDateTime.now();
let rawItem = items.getItem(ITEM_NAME).rawItem;
jsonArray.forEach(entry => {
let preis = parseFloat(entry.price);
let finalState = preis.toFixed(4) + " EUR/kWh";
let javaZDT = ZonedDateTime.parse(entry.start);
PersistenceExtensions.persist(rawItem, javaZDT, QuantityType.valueOf(finalState), "inmemory");
let startZDT = time.toZDT(entry.start);
let endZDT = time.toZDT(entry.end);
if ((now.isAfter(startZDT) || now.isEqual(startZDT)) && now.isBefore(endZDT)) {
currentPriceState = finalState;
}
});
if (currentPriceState !== null) {
items.getItem(ITEM_NAME).postUpdate(currentPriceState);
}
console.info("Forecast in InMemory geschrieben! Anzahl DatensƤtze: " + jsonArray.length);
} catch (e) {
console.error("Fehler beim Verarbeiten der Strompreis-Daten: " + e);
}
} else {
console.error("Fehler: Konnte keine Daten abrufen.");
}
}
});
That works great for me, but thank you anyway for the binding. Without it, I would never have come up with the idea or realized the possibility!
Iām sorry, but Iām not getting any values via the binding. Even when I change the database. Iāll deactivate it for now and try again later.
Sure this works but this is nearly the same the binding is doing plus some error handling and so on.
Do you also have problems with setup?
Ok, letās see if we can figure out the problem:
Please provide me 2 screenshots similar to mine attached as example:
- How does your item look like?
In UI clickSettings - Items, search your item and click on it.
Result shall be similar to Pic 1) - How is your persistence configured?
In UI clickSettings - Persistence - Configure Persistence Policies - In Memory
Result shall be similiar to Pic 2)
Pic 1
Pic 2
Please donāt worry, itās my fault to mix up Energy Forecast future AI energy prices with Energy Chatrs Info day-ahead prices and more.
As discussed before Iāll prepare 2 bindigs
- this one with AI price forecast and some metrics
- another one, not published yet, with free access to day-ahead prices plus renewable shares, ā¦








