Add entity-based dynamic cost pricing (usecase: tempo) - #159
Conversation
Extended the cost calculator to support dynamic pricing from Home Assistant entities in addition to static prices. Prices are fetched from entity history and matched by timestamp, with automatic unit conversion (c€/kWh, EUR/MWh, etc). Key changes: - Added entity_id field to CostConfig (alternative to static price) - Implemented getEntityHistory() to fetch price data via WebSocket API - Added automatic price unit conversion (cents, EUR/MWh → €/kWh) - Supports time-based filters (after/before/weekday/dates) for both modes - Comprehensive test coverage (21 tests passing)
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #159 +/- ##
==========================================
+ Coverage 39.57% 41.55% +1.98%
==========================================
Files 8 8
Lines 791 1013 +222
Branches 85 118 +33
==========================================
+ Hits 313 421 +108
- Misses 475 589 +114
Partials 3 3 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
@bokub je me permets un rappel pour cette PR, merci ! |
|
@vinzd Oula oui merci tu as bien fait ! |
|
Il y a un truc que je n'arrive pas trop à comprendre: Quand le lis la documentation et dans le parsing de la configuration, j'ai l'impression que tu autorises de mettre à la fois un Au début je m'attendais à ce que le prix statique soit un fallback, mais en fait pas du tout, le if (matchingCostConfig.entity_id && entityHistory) {
price = findPriceFromEntityHistory(point, matchingCostConfig.entity_id, entityHistory);
if (price === null) {
continue;
}Pourrais-tu choisir soit l'une soit l'autre des deux approches ?
|
|
En effet, ça prête à confusion. J’ai modifié pour n’accepter que l’un ou l’autre, ça devrait être plus clair |
|
Bonjour,tres interressé par cette PR ! |
bokub
left a comment
There was a problem hiding this comment.
Hello @vinzd !
Désolé pour les délais, je suis enfin rentré de vacances et j'ai pu prendre un peu de temps pour tester ta PR. Tout a l'air de bien fonctionner, c'est OK pour moi!
Je n'ai pas les droits en édition, peux-tu régler ces 3 derniers détails, ensuite on pourra merger et je ferai une release
Merci et bonne soirée !
|
Bonsoir Boris, merci d’avoir pris le temps de regarder ! J’ai annulé les changements mentionnés 👍🏻 |
|
Merci @vinzd ! C'est mergé et publié sous le numéro de version 1.7.0 En faisant des tests je me suis posé une question: Pourquoi empêcher l'utilisation de filtres horaires dans une tarification dynamique ? On pourrait très bien avoir une entité Y a-t-il un blocage technique que je n'ai pas saisi ? J'ai l'impression que ça rend la doc (et le code) compliqués pour rien, mais encore une fois j'ai peut-être loupé un truc Merci encore |
Extended the cost calculator to support dynamic pricing from Home Assistant entities in addition to static prices. Prices are fetched from entity history and matched by timestamp, with automatic unit conversion (c€/kWh, EUR/MWh, etc).
Key changes: