HiDiHo01 / home-assistant-frank_energie

Custom Component voor Home Assistant Frank Energie prijsinformatie
1 stars 1 forks source link

Are you busy with updated Frank Energie integration #5

Open RienduPre opened 3 weeks ago

RienduPre commented 3 weeks ago

Hi,

Ik ga er van uit dat je ook Nederlands bent. Het lijkt erop dat je bezig bent om de Frank Energie integratie aan het updaten bent, met nieuwe functies etc. Klopt dit? Zo ja kan ik helpen met testen etc?

Alvast bedankt voor je antwoord.

Groetjes,

Rien du Pre

HiDiHo01 commented 3 weeks ago

Hallo,

Ja dat klopt. De originele integratie wordt niet langer onderhouden. Ik heb veel toegevoegd in mijn fork en het werkt prima maar de code is soms wat rommelig.

Hulp is altijd welkom.

Gr Roy

Op zo 10 nov 2024 13:59 schreef RdP @.***>:

Hi,

Ik ga er van uit dat je ook Nederlands bent. Het lijkt erop dat je bezig bent om de Frank Energie integratie aan het updaten bent, met nieuwe functies etc. Klopt dit? Zo ja kan ik helpen met testen etc?

Alvast bedankt voor je antwoord.

Groetjes,

Rien du Pre

— Reply to this email directly, view it on GitHub https://github.com/HiDiHo01/home-assistant-frank_energie/issues/5, or unsubscribe https://github.com/notifications/unsubscribe-auth/AXDM26YDMFHTYFMJCSMYXJDZ75KCNAVCNFSM6AAAAABRQGB6R2VHI2DSMVQWIX3LMV43ASLTON2WKOZSGY2DOMRQGQ2TEOA . You are receiving this because you are subscribed to this thread.Message ID: @.***>

RienduPre commented 3 weeks ago

Hi Roy,

Mooi dat jij hier mee aan de gang bent gegaan. Krijg alleen de volgende als ik de integratie wil toevoegen aan de aangepaste repositories Toch zie ik de manifest.json gewoon staan in je repository Scherm­afbeelding 2024-11-10 om 14 40 26

HiDiHo01 commented 3 weeks ago

Hi Roy,

Mooi dat jij hier mee aan de gang bent gegaan. Krijg alleen de volgende foutmelding Toch zie ik de manifest.json gewoon staan in je repository Scherm­afbeelding 2024-11-10 om 14 40 26

manifest folder klopt niet zo te zien. In HA zoekt ie in custom_components\frank_energie\manifest.json volgens mij.

HiDiHo01 commented 3 weeks ago

Het is gewoon een aangepaste fork van het origineel dus het zou hetzelfde moeten werken. Het enige verschil is dat ik ook mijn eigen fork van de python package gebruik die ook in mijn github staat.

Zelf heb ik gewoon de files gekopieerd en in mijn eigen HA overschreven.

HiDiHo01 commented 3 weeks ago

Het kan best zijn dat er iets niet klopt hoor. Ik ben vrij nieuw met github en ben nog een beetje aan het leren.

HiDiHo01 commented 3 weeks ago

Hi Roy,

Mooi dat jij hier mee aan de gang bent gegaan. Krijg alleen de volgende als ik de integratie wil toevoegen aan de aangepaste repositories Toch zie ik de manifest.json gewoon staan in je repository !

I have fixed it. it seems i had a .github folder in custom_components

RienduPre commented 2 weeks ago

Hi Roy,

Het installeren van de integratie gaat nu goed, maar als ik hem toe wil voegen krijg ik deze foutmelding: Scherm­afbeelding 2024-11-11 om 20 30 56

In de log zie je dan dit: Logger: homeassistant.util.package Bron: util/package.py:152 Eerst voorgekomen: 20:30:28 (3 gebeurtenissen) Laatst gelogd: 20:30:29

Unable to install package python-frank-energie==6.0.1: × No solution found when resolving dependencies: ╰─▶ Because there is no version of python-frank-energie==6.0.1 and you require python-frank-energie==6.0.1, we can conclude that your requirements are unsatisfiable.

HiDiHo01 commented 2 weeks ago

Hi Roy,

Het installeren van de integratie gaat nu goed, maar als ik hem toe wil voegen krijg ik deze foutmelding: Scherm­afbeelding 2024-11-11 om 20 30 56

In de log zie je dan dit: Logger: homeassistant.util.package Bron: util/package.py:152 Eerst voorgekomen: 20:30:28 (3 gebeurtenissen) Laatst gelogd: 20:30:29

Unable to install package python-frank-energie==6.0.1: × No solution found when resolving dependencies: ╰─▶ Because there is no version of python-frank-energie==6.0.1 and you require python-frank-energie==6.0.1, we can conclude that your requirements are unsatisfiable.

Ik zal er even naar kijken....ik had mijn package eerst versie 6.0.1 gegeven maar ik ben nu overgegaan op veries met de aanduiding 2024.11.10. Dus ergens moet nog de oude versie in staan.

RienduPre commented 2 weeks ago

Hoi Roy,

Al iets kunnen vinden?

RienduPre commented 1 week ago

Ik heb het nu denk ik opgelost, maar krijg een nieuwe fout. Ik weet zeker dat mijn password klopt !!

Deze fout is ontstaan door een aangepaste integratie.

Logger: custom_components.frank_energie.config_flow Bron: custom_components/frank_energie/config_flow.py:271 integratie: Frank Energie Nederland (documentatie, problemen) Eerst voorgekomen: 16:47:09 (2 gebeurtenissen) Laatst gelogd: 16:51:03

Error during login Traceback (most recent call last): File "/config/custom_components/frank_energie/config_flow.py", line 271, in _authenticate return await api.login(user_input[CONF_USERNAME], user_input[CONF_PASSWORD]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/python_frank_energie/frank_energie.py", line 326, in login raise error File "/usr/local/lib/python3.12/site-packages/python_frank_energie/frank_energie.py", line 311, in login response = await self._query(query) ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/python_frank_energie/frank_energie.py", line 109, in _query raise error File "/usr/local/lib/python3.12/site-packages/python_frank_energie/frank_energie.py", line 95, in _query self._handle_errors(response) File "/usr/local/lib/python3.12/site-packages/python_frank_energie/frank_energie.py", line 134, in _handle_errors raise AuthException("Invalid password") python_frank_energie.exceptions.AuthException: Invalid password

HiDiHo01 commented 1 week ago

Ik ga er even naar kijken. Lukt het wel om gegevens op te halen zonder account gegevens?

Op wo 20 nov 2024 16:54 schreef RdP @.***>:

Ik heb het nu denk ik opgelost, maar krijg een nieuwe fout. Ik weet zeker dat mijn password klopt !!

Deze fout is ontstaan door een aangepaste integratie.

Logger: custom_components.frank_energie.config_flow Bron: custom_components/frank_energie/config_flow.py:271 integratie: Frank Energie Nederland (documentatie, problemen) Eerst voorgekomen: 16:47:09 (2 gebeurtenissen) Laatst gelogd: 16:51:03

Error during login Traceback (most recent call last): File "/config/custom_components/frank_energie/config_flow.py", line 271, in _authenticate return await api.login(user_input[CONF_USERNAME], user_input[CONF_PASSWORD]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/python_frank_energie/frank_energie.py", line 326, in login raise error File "/usr/local/lib/python3.12/site-packages/python_frank_energie/frank_energie.py", line 311, in login response = await self._query(query) ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/python_frank_energie/frank_energie.py", line 109, in _query raise error File "/usr/local/lib/python3.12/site-packages/python_frank_energie/frank_energie.py", line 95, in _query self._handle_errors(response) File "/usr/local/lib/python3.12/site-packages/python_frank_energie/frank_energie.py", line 134, in _handle_errors raise AuthException("Invalid password") python_frank_energie.exceptions.AuthException: Invalid password

— Reply to this email directly, view it on GitHub https://github.com/HiDiHo01/home-assistant-frank_energie/issues/5#issuecomment-2488958210, or unsubscribe https://github.com/notifications/unsubscribe-auth/AXDM266OR7T6LLLARYXU4K32BSWEZAVCNFSM6AAAAABRQGB6R2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIOBYHE2TQMRRGA . You are receiving this because you commented.Message ID: @.***>

RienduPre commented 1 week ago

Ja dat gaat goed!!

HiDiHo01 commented 1 week ago

Ok. Ik heb wel wat wijzigingen in de authenticatie gedaan inderdaad maar de werking zou hetzelfde moeten zijn. Ik ga het even uitgebreid testen. Bij mij lijkt het goed te werken maar ik zal eens alles verwijderen en opnieuw frank toevoegen. Ik laat het weten als ik iets gevonden heb.

Op wo 20 nov 2024 19:54 schreef RdP @.***>:

Ja dat gaat goed!!

— Reply to this email directly, view it on GitHub https://github.com/HiDiHo01/home-assistant-frank_energie/issues/5#issuecomment-2489324599, or unsubscribe https://github.com/notifications/unsubscribe-auth/AXDM264JYVCZUB5764ZU35L2BTLEXAVCNFSM6AAAAABRQGB6R2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIOBZGMZDINJZHE . You are receiving this because you commented.Message ID: @.***>

HiDiHo01 commented 1 week ago

De fout is erin gekomen door een bot (vanwege een beveiliging issue) https://github.com/HiDiHo01/python-frank-energie/security/code-scanning/1

Ik heb de _query functie teruggezet zodat het weer goed werkt. Ik moet de code nog wel aanpassen omdat ik deze versie eigenlijk alleen zelf gebruikte en daarom wat debug data logde. De bot zag dat ik login data logde en had daarom de code aangepast.. De code logt nu nog(weer) (lokaal in je log) de login gegevens. Dit maakt verder weinig uit je moet alleen niet je log delen met anderen.

Het volgende bestand is aangepast: https://github.com/HiDiHo01/python-frank-energie/blob/main/python_frank_energie/frank_energie.py kopieer deze code naar /usr/local/lib/python3.12/site-packages/python_frank_energie/frank_energie.py

of

Download de zip file https://github.com/HiDiHo01/python-frank-energie/archive/refs/heads/main.zip en pak frank_energie.py uit naar /usr/local/lib/python3.12/site-packages/python_frank_energie

RienduPre commented 1 week ago

Hi Roy,

Dankjewel voor je hulp. Helaas zie ik geen folder "/usr/local/lib/python3.12/site-packages/python_frank_energie"

Hoe kom ik daar ?

HiDiHo01 commented 1 week ago

Volgens mij kun je hem ook opnieuw downloaden met HACS

Op do 21 nov 2024 13:03 schreef RdP @.***>:

Hi Roy,

Dankjewel voor je hulp. Helaas zie ik geen folder "/usr/local/lib/python3.12/site-packages/python_frank_energie"

Hoe kom ik daar ?

— Reply to this email directly, view it on GitHub https://github.com/HiDiHo01/home-assistant-frank_energie/issues/5#issuecomment-2490954415, or unsubscribe https://github.com/notifications/unsubscribe-auth/AXDM267AOL74QJ57WCCBAPD2BXD2RAVCNFSM6AAAAABRQGB6R2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIOJQHE2TINBRGU . You are receiving this because you commented.Message ID: @.***>

RienduPre commented 1 week ago

Volgens mij kun je hem ook opnieuw downloaden met HACS Op do 21 nov 2024 13:03 schreef RdP @.***>:

Helaas, dat werkt niet.

Ik denk dat je een nieuwe release moet deployen.

RienduPre commented 1 week ago

Inmiddels gelukt !!! Ben blij met al die extra sensors, ben net overgestapt van Tibber en zie veel meer info via deze integratie. Volgens mij heb jij die allemaal toegevoegd in deze release toch?

Heb ook een Thuisaccu en 2 elektrische auto's met slim laden en slim handelen. Is de informatie van de auto's en thuis accu ook via de API op te halen en beschikbaar als entiteiten?

Groetjes, Rien

HiDiHo01 commented 1 week ago

Ah mooi. Ik heb alle data van de api omgezet in sensors. Ik heb ook België en thuisbatterij toegevoegd. Deze code heb ik overgenomen van anderen. Aangezien ik zelf geen Belgisch account of thuisbatterij en geen slim laden en slim handelen heb kan ik dat niet toevoegen en/of testen. Ook heb ik geen zonnepanelen en lever niet terug dus die data heb ik niet.

Op do 21 nov 2024 19:55 schreef RdP @.***>:

Inmiddels gelukt !!! Ben blij met al die extra sensors, ben net overgestapt van Tibber en zie veel meer info via deze integratie. Volgens mij heb jij die allemaal toegevoegd in deze release toch?

Heb ook een Thuisaccu en 2 elektrische auto's met slim laden en slim handelen. Is de informatie van de auto's en thuis accu ook via de API op te halen en beschikbaar als entiteiten?

Groetjes, Rien

— Reply to this email directly, view it on GitHub https://github.com/HiDiHo01/home-assistant-frank_energie/issues/5#issuecomment-2492023486, or unsubscribe https://github.com/notifications/unsubscribe-auth/AXDM26ZWNZLB2CSWCIXHVTL2BYUBLAVCNFSM6AAAAABRQGB6R2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIOJSGAZDGNBYGY . You are receiving this because you commented.Message ID: @.***>

RienduPre commented 1 week ago

Hoi Roy,

Ik heb die data wel (zie onder van de auto's bijvoorbeeld) Kunnen we hier samen wat mee?

Ik ben (nog niet zo'n python programmeur, maar kan wel helpen deze data op de juiste plek in de code te plaatsen als ik maar weet hoe. Data is verkregen via de app "Charles"

{ "data": { "enodeVehicles": [{ "canSmartCharge": true, "chargeSettings": { "calculatedDeadline": "2024-11-22T06:00:00.000Z", "deadline": null, "hourFriday": 420, "hourMonday": 420, "hourSaturday": 420, "hourSunday": 420, "hourThursday": 420, "hourTuesday": 420, "hourWednesday": 420, "id": "cm3r6dh451o8wcbl6q0dwqcw3", "isSmartChargingEnabled": true, "isSolarChargingEnabled": false, "maxChargeLimit": 100, "minChargeLimit": 50 }, "chargeState": { "batteryCapacity": 28.9, "batteryLevel": 100, "chargeLimit": 100, "chargeRate": null, "chargeTimeRemaining": null, "isCharging": false, "isFullyCharged": true, "isPluggedIn": false, "lastUpdated": "2024-11-21T16:59:11.000Z", "powerDeliveryState": "UNPLUGGED", "range": 150 }, "id": "cm3r6dh451o8wcbl6q0dwqcw3", "information": { "brand": "MINI", "model": "Cooper SE", "vin": "WMW11DJ0702S08837", "year": 2021 }, "interventions": [], "isReachable": true, "lastSeen": "2024-11-21T19:29:16.447Z" }, { "canSmartCharge": true, "chargeSettings": { "calculatedDeadline": "2024-11-22T06:00:00.000Z", "deadline": null, "hourFriday": 420, "hourMonday": 420, "hourSaturday": 420, "hourSunday": 420, "hourThursday": 420, "hourTuesday": 420, "hourWednesday": 420, "id": "cm3qyjqcf1f2ccbl60t42wv9j", "isSmartChargingEnabled": true, "isSolarChargingEnabled": false, "maxChargeLimit": 80, "minChargeLimit": 30 }, "chargeState": { "batteryCapacity": 64.7, "batteryLevel": 62, "chargeLimit": 100, "chargeRate": null, "chargeTimeRemaining": null, "isCharging": false, "isFullyCharged": false, "isPluggedIn": false, "lastUpdated": "2024-11-21T17:41:08.000Z", "powerDeliveryState": "UNPLUGGED", "range": 185 }, "id": "cm3qyjqcf1f2ccbl60t42wv9j", "information": { "brand": "Audi", "model": "e-tron", "vin": "", "year": 2023 }, "interventions": [], "isReachable": true, "lastSeen": "2024-11-21T19:25:56.759Z" }] } }

HiDiHo01 commented 1 week ago

Hé Rien,

Ik ken Charles niet en zie die ook niet in de Google play store. De door jou geleverde data komt van een andere api af dus daar kan ik niet veel mee in de Frank Energie integratie. Dit zou dan een nieuwe integratie voor Home Assistant moeten worden als die nog niet bestaat. Ik kan daar wel mee helpen maar dat is erg lastig omdat ik die data niet zelf binnen kan halen en dus ook de integratie niet kan testen en debuggen.

Gr Roy

Op do 21 nov 2024 20:44 schreef RdP @.***>:

Hoi Roy,

Ik heb die data wel (zie onder van de auto's bijvoorbeeld) Kunnen we hier samen wat mee?

Ik ben (nog niet zo'n python programmeur, maar kan wel helpen deze data op de juiste plek in de code te plaatsen als ik maar weet hoe. Data is verkregen via de app "Charles"

{ "data": { "enodeVehicles": [{ "canSmartCharge": true, "chargeSettings": { "calculatedDeadline": "2024-11-22T06:00:00.000Z", "deadline": null, "hourFriday": 420, "hourMonday": 420, "hourSaturday": 420, "hourSunday": 420, "hourThursday": 420, "hourTuesday": 420, "hourWednesday": 420, "id": "cm3r6dh451o8wcbl6q0dwqcw3", "isSmartChargingEnabled": true, "isSolarChargingEnabled": false, "maxChargeLimit": 100, "minChargeLimit": 50 }, "chargeState": { "batteryCapacity": 28.9, "batteryLevel": 100, "chargeLimit": 100, "chargeRate": null, "chargeTimeRemaining": null, "isCharging": false, "isFullyCharged": true, "isPluggedIn": false, "lastUpdated": "2024-11-21T16:59:11.000Z", "powerDeliveryState": "UNPLUGGED", "range": 150 }, "id": "cm3r6dh451o8wcbl6q0dwqcw3", "information": { "brand": "MINI", "model": "Cooper SE", "vin": "WMW11DJ0702S08837", "year": 2021 }, "interventions": [], "isReachable": true, "lastSeen": "2024-11-21T19:29:16.447Z" }, { "canSmartCharge": true, "chargeSettings": { "calculatedDeadline": "2024-11-22T06:00:00.000Z", "deadline": null, "hourFriday": 420, "hourMonday": 420, "hourSaturday": 420, "hourSunday": 420, "hourThursday": 420, "hourTuesday": 420, "hourWednesday": 420, "id": "cm3qyjqcf1f2ccbl60t42wv9j", "isSmartChargingEnabled": true, "isSolarChargingEnabled": false, "maxChargeLimit": 80, "minChargeLimit": 30 }, "chargeState": { "batteryCapacity": 64.7, "batteryLevel": 62, "chargeLimit": 100, "chargeRate": null, "chargeTimeRemaining": null, "isCharging": false, "isFullyCharged": false, "isPluggedIn": false, "lastUpdated": "2024-11-21T17:41:08.000Z", "powerDeliveryState": "UNPLUGGED", "range": 185 }, "id": "cm3qyjqcf1f2ccbl60t42wv9j", "information": { "brand": "Audi", "model": "e-tron", "vin": "WAUZZZGE9PB016244", "year": 2023 }, "interventions": [], "isReachable": true, "lastSeen": "2024-11-21T19:25:56.759Z" }] } }

— Reply to this email directly, view it on GitHub https://github.com/HiDiHo01/home-assistant-frank_energie/issues/5#issuecomment-2492115650, or unsubscribe https://github.com/notifications/unsubscribe-auth/AXDM26Z3CDSUON4YSLRIG7L2BYZZLAVCNFSM6AAAAABRQGB6R2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIOJSGEYTKNRVGA . You are receiving this because you commented.Message ID: @.***>

RienduPre commented 1 week ago

Hoi Roy,

Je hebt me al heel erg geholpen :-)

Ik gebruik de app Charles op mijn Mac om de data die de frank app die ook op mijn Mac draait te spoofen (reverse engineering) en zie dan dit soort data voorbij komen.

Als je mij kan uitleggen waar het uitlezen van de api gebeurd en tevens waar er een entiteit van een Frank variable wordt gemaakt, dan ga ik proberen om dit voor elkaar te krijgen. Is voor mij meteen een goede oefening, maar ik heb iemand nodig die me op weg helpt en afentoe hulp kan bieden als ik vast loop.

Ik zou het ook begrijpen als je hier geen zin of tijd voor hebt, maar zou het fantastisch vinden als je me op weg zou kunnen helpen.

Alvast bedankt.

Groetjes, Rien

HiDiHo01 commented 1 week ago

Ik zie het...Charles is een proxy om een man-in-the-middle mee te doen. Zoek uit welke URL/Endpoint je aanroept en wat de payload is (de data in de POST request) Tevens raad ik je aan om ChatGPT te gebruiken, die kan je veel antwoorden geven.

Mogelijke Integratie in Home Assistant Als je deze data wilt gebruiken voor een integratie, kun je de volgende stappen overwegen:

Endpoints Bestuderen:

Welke API-endpoints roep je aan in de app? Analyseer welke specifieke calls worden gemaakt. Noteer eventuele authenticatieheaders of parameters die nodig zijn.

ps: Hou er rekening mee dat deze chat/issue openbaar is (ivm eventueel gevoelige data)

code om de data die je gaf te parsen:

import json
from datetime import datetime, timezone

def parse_vehicle_data(json_data: str):
    data = json.loads(json_data)
    vehicles = data.get("data", {}).get("enodeVehicles", [])

    parsed_data = []
    for vehicle in vehicles:
        info = vehicle.get("information", {})
        charge_state = vehicle.get("chargeState", {})
        charge_settings = vehicle.get("chargeSettings", {})

        parsed_data.append({
            "brand": info.get("brand"),
            "model": info.get("model"),
            "year": info.get("year"),
            "battery_level": charge_state.get("batteryLevel"),
            "range_km": charge_state.get("range"),
            "is_charging": charge_state.get("isCharging"),
            "is_fully_charged": charge_state.get("isFullyCharged"),
            "last_updated": charge_state.get("lastUpdated"),
            "smart_charging_enabled": charge_settings.get("isSmartChargingEnabled"),
        })
    return parsed_data

# JSON-invoer (bijvoorbeeld je JSON hierboven)
vehicle_data = """{ ... }"""  # Voeg hier je JSON in als string
vehicles = parse_vehicle_data(vehicle_data)
for v in vehicles:
    print(v)