Antrac1t / HomeAssistant-EGDdistribuce

EGD Distribuce - HDO
23 stars 8 forks source link

Smart elektroměr #8

Open jansams opened 1 year ago

jansams commented 1 year ago

Dobrý den, ahoj, měl jsem klasické HDO - vše bez problémů fungovalo. Teď mě vyměnili elektroměr za nějaký smart a ten má integrované HDO. Příkaz HDO je teď Acd56. Půjde to nějak nastavit ?

Antrac1t commented 1 year ago

Ahoj, je potřeba přepsat addon i pro smart elektroměry, bohužel časove s k žádné úpravě nedostanu.

S474N commented 1 year ago

Stejny problem, mam kod CD56.

Tedy zadna uprava tohoto pluginu nebude? Neexistuje nejaky jiny plugin, co funguje?

LubosKovar commented 1 year ago

pls jak máte přesně zápis v Configuration.yaml? Me to proste pořád hází chybu.... Invalid config for [binary_sensor.egddistribuce]: [ode_a] is an invalid option for [binary_sensor.egddistribuce]. Check: binary_sensor.egddistribuce->ode_a. (See ?, line ?).

Antrac1t commented 1 year ago

pls jak máte přesně zápis v Configuration.yaml? Me to proste pořád hází chybu.... Invalid config for [binary_sensor.egddistribuce]: [ode_a] is an invalid option for [binary_sensor.egddistribuce]. Check: binary_sensor.egddistribuce->ode_a. (See ?, line ?).

napiste prosim Vas config. Vypada to, ze mate spatne zapsany "code_a"

Antrac1t commented 1 year ago

Stejny problem, mam kod CD56.

Tedy zadna uprava tohoto pluginu nebude? Neexistuje nejaky jiny plugin, co funguje?

Upravu pluginu pro nove elektromery neplanuji.

S474N commented 1 year ago

Skoda, dival jsem se, ze to stahuje soubor hdoZaznam.json z https://hdo.distribuce24.cz/casy a ty smartmetery tam jsou uvedeny (vubec se tam neresi PSC, je to pro celou lokalitu):

image

Umet python, tak bych to udelal, ale bohuzel mimo me schopnosti.

BWT jinak Lubos uz je vyresen.

Antrac1t commented 1 year ago

Skoda, dival jsem se, ze to stahuje soubor hdoZaznam.json z https://hdo.distribuce24.cz/casy a ty smartmetery tam jsou uvedeny (vubec se tam neresi PSC, je to pro celou lokalitu):

image

Umet python, tak bych to udelal, ale bohuzel mimo me schopnosti.

BWT jinak Lubos uz je vyresen.

nasel jsem chvilku casu zkuste stahnout a prepsat v HA binary_sensor.py a downloader.py + upravit config na psc: SM code_a: "AD57" code_b: "0" code_dp: "0"

a otocit HM ... dejte vedet jestli to neco najde

S474N commented 1 year ago

Hlasi mi to HDO vypnuto.

Jen teda ja nemam tarif D57, ale D56, respektive kod je Cd56.

Antrac1t commented 1 year ago

Hlasi mi to HDO vypnuto.

Jen teda ja nemam tarif D57, ale D56, respektive kod je Cd56.

tak zadat svuj vlastni kod tedy Cd56

S474N commented 1 year ago

Zatim to zkousim a nevypada to, ze by to vracelo spravne data, protoze mezi 12-13 ma byt NT.

image

S474N commented 1 year ago

Je tu jeste nekdo jiny se smartmeterem, kdo muze overit/potvrdit funkcnost?

S474N commented 1 year ago

Tak bohuzel zadna zmena.

Zapis v config.yaml:

binary_sensor:
  - platform: egddistribuce
    name: HDO
    psc: SM
    code_a: "Cd56"
    code_b: "0"
    code_dp: "0"

Jeden den zkouseno i:

binary_sensor:
  - platform: egddistribuce
    name: HDO
    psc: "SM"
    code_a: "Cd56"
    code_b: "0"
    code_dp: "0"

image

LubosKovar commented 1 year ago

Potvrzuji jen chování, co popisují kolegové. Staré HDO se načítá ok, nové s výše uvedenými zápisy nikoliv.

WikiHA commented 1 year ago

Smart elektroměry mají v datovém souboru u platnosti "od" a "do" uveden rok "9999" a časy jsou tedy asi platné stále. Vyřešil jsem to nahrazením řádek 47-49 v downloader.py tímto kódem.

    for itemData in output_hdo_dict:
        current_year = datetime.datetime.now().year
        if int(itemData['od']['rok']) == 9999:
            if int(itemData['od']['mesic']) < int(itemData['do']['mesic']):
                year = current_year
            else:
                year = current_year + 1
        else:
            year = itemData['od']['rok']
        str_date_time_od = f"{current_year}-{itemData['od']['mesic']}-{itemData['od']['den']}"
        str_date_time_do = f"{year}-{itemData['do']['mesic']}-{itemData['do']['den']}"

A kód regionu u smart elektroměru nemusí být jen na 2 znaky, ale třeba já mám kód "TOU" (výše je zobrazen taky). Asi by bylo lepší v podmínce testovat zda psc je číslo nebo text, třeba takto:

if psc.isnumeric():
    # kod pro bezne elektromery
else:
    # kod pro smart elektromery
S474N commented 1 year ago

Tak jsem si v logu vsiml tohoto: image

Antrac1t commented 1 year ago

jedine upravit odkazy z https na http, zalezi jakou mate verzi HA, a co tam menili, ja popravde pres 1.5 roku neprovadel aktualizaci ...

S474N commented 1 year ago

Jedu komplet na vsem nejnovejsim, zkusim to upravit.

pmisak commented 1 year ago

Díky za tu úpravu. Funguje mi následující yaml:

binary_sensor:
  - platform: egddistribuce
    name: HDO_nizky_tarif
    psc: SM
    code_a: "ACD25"
    code_b: "0"
    code_dp: "0"
Antrac1t commented 1 year ago

Díky za tu úpravu. Funguje mi následující yaml:

binary_sensor:
  - platform: egddistribuce
    name: HDO_nizky_tarif
    psc: SM
    code_a: "ACD25"
    code_b: "0"
    code_dp: "0"

takze kod pro smart meter jiz mam brat jako funkcni a uzavrit tiket? Otazka co [S474N]

WikiHA commented 1 year ago

Jak jsem psal výše: Kód regionu u smart elektroměru nemusí být jen na 2 znaky, ale třeba je tam i kód "TOU". Navíc člověk bez znalosti json nemá žádnou šanci jej někde najít. Na stránkách eg.d se to nikde nezobrazuje. V případě smart metru bych (po zběžné analýze dat) úplně filtraci na kód regionu vypustil a hledal data jen podle code_a. Takto jsem si to v kódu upravil a funguje mi to.

Antrac1t commented 1 year ago

Jak jsem psal výše: Kód regionu u smart elektroměru nemusí být jen na 2 znaky, ale třeba je tam i kód "TOU". Navíc člověk bez znalosti json nemá žádnou šanci jej někde najít. Na stránkách eg.d se to nikde nezobrazuje. V případě smart metru bych (po zběžné analýze dat) úplně filtraci na kód regionu vypustil a hledal data jen podle code_a. Takto jsem si to v kódu upravil a funguje mi to.

ano, bohuzel nemam cas vyhrazeny na ladeni addonu, prvotne byl udelan jen pro me ucely a pouze jsem ho gitnul a kdo chce muze ho nainstalovat, popr forknout a upravit ...

S474N commented 1 year ago

Bohuzel moje Cd56 ma VT az po pulnoci, takze drive to overit nemohu :D

WikiHA commented 1 year ago

@Antrac1t : Chápu, nikdo času nemá nazbyt. S gitem si zatím moc nerozumím, tak jsem si skripty upravil přímo na HA. Přikládám je níže, třeba to někomu pomůže. S mým kódem elektroměru to funguje. V configu je pak definován takto:

binary_sensor:
  - platform: egddistribuce
    name: HDO_nizky_tarif
    psc: "smart"         # "smart" pro chytre elektromery, jinak PSC
    code_a: "Cd2526_2"   # kod smart elektromeru

egd.zip

S474N commented 1 year ago

@WikiHA po tve uprave jiz vse jede!

image

cleveHEX commented 1 year ago

Dnes u nás nainstalovali smart meter, nemohl jsem na něm najít jiný kód než d57. EGD ho v JSONu má, ale je u něj region TOU a předpokládám, že z toho důvodu ani výše zmíněný archiv nefunguje, je to tak? Jak vidím, archiv zde byl nahrán, ale není implementován v repozitáři, hodilo by se někomu, abych otevřel PR a kód byl v HACS?

        "region": "TOU",
        "skupinaPovelu": "MO-EV",
        "kodHdo_A": "d57",
        "kodHdo_B": "A0B0DP0",
        "kodHdo_C": "0B0DP0",
        "kodHdo_D": "0B0P0",
        "kodHdo_E": "A0B0P0",
        "A": "0",
        "B": "0",
        "DP": "00",
S474N commented 1 year ago

Vsak to je ten stejny pripad jako u me, ne?

binary_sensor:
  - platform: egddistribuce
    name: HDO_nizky_tarif
    psc: "smart"         # "smart" pro chytre elektromery, jinak PSC
    code_a: "Cd57"   # kod smart elektromeru
    code_b: "0"   # kod smart elektromeru
    code_dp: "0"   # kod smart elektromeru
cleveHEX commented 1 year ago

Jo, pardon, měl jsem tam typo, díky.

rattkin commented 1 year ago

co zavřít issue? Už to podle mne funguje, aspoň mě a ještě jedniomu člověku. Případně se pak udělá další issue