-
-
Notifications
You must be signed in to change notification settings - Fork 3.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[linky] Fixes for change in Enedis API on 2024 December 20 #17945
base: main
Are you sure you want to change the base?
Conversation
- URL for data is now mes-mesures-prm and not mes-mesures. - Dto format have changed : mainly merge data & date, field renaming, and moving. - Some changes on date format. Signed-off-by: Laurent ARNAL <[email protected]>
Thank you @lo92fr , I will review and test. |
I still have Java 17 and Java 21 on my dev PC so it should be easy to build a JAR for Java 17. |
@lolodomo Hopefully it is just:
https://community.openhab.org/t/openhab-5-x-snapshot-requires-java-21/160890/5 |
@lo92fr : does not work for me => Error requesting 'https://alex.microapplications.enedis.fr/mes-mesures-prm/api/private/v1/personnes/xxxxx/prms/yyyyy/donnees-energetiques?mesuresTypeCode=ENERGIE&mesuresCorrigees=false&typeDonnees=CONS&dateDebut=2023-01-01': {"message":"Internal server error. Please try again","code":"INTERNAL_SERVER_ERROR"} Will see if it work in next tries (next hours). |
It still work on my side, strange. Laurent. |
3 letters then 3 numbers and then 3 letters. |
Yes, I have the same page on their website. |
Now the binding is working! Even after I disconnect from the website in my browser. |
updateState(PEAK_TIMESTAMP, new DateTimeType( | ||
days.datas.get(days.datas.size() - 1).dateDebut.atZone(this.timeZoneProvider.getTimeZone()))); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This was changed very recently, just before releasing 4.3. We don't need to pass a ZonedDateTipe; DateTimeType just needs an Instant as parameter. So you do not need TimeZoneProvider .
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hello @lolodomo,
I'm not sure to understant. Do you say to use the DateTimeType constructor that take an instant, something like this.
updateState(PEAK_TIMESTAMP,
new DateTimeType(days.datas.get(days.datas.size() - 1).dateDebut.toInstant(zoneOffset)));
The matter is that I still need to find a zoneOffset in this case.
The Enedis API return a LocalDateTime at offset of the current zone.
The DateTimeType if I undestand correctly want a universal time.
So somewhere we need to convert from local to universal using a timezone ?
Laurent.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jlaur is our specialist with date. Please advice.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If days.datas.get(days.datas.size() - 1).dateDebut
is a LocalDateTime
, the implementation is already correct. If it is an Instant
there is no need to convert to ZonedDateTime
.
The fix fails for me. |
Fixes for Linky Enedis December web site change
This pull request is about fixing the linky addon after the change that was made on Enedis side to the Web Site.
This is linked to issue:
#17936
Description
Mainly, changes are :
- URL for data is now mes-mesures-prm and not mes-mesures.
- Dto format have changed : mainly merge data & date, field renaming, and moving.
- Some changes on date format.