2023. április 2., vasárnap

Gázfogyasztás mérése Home Assistant-ban

Szolgáltatói hozzáállás

Először is ide rakok egy konkrét levelet, amelyet a szolgáltatómtól (OPUS-TIGÁZ Zrt.) kaptam:

A gázmérők a Felhasználóink által mágneses elven működő jeladóval/jelvevővel semmilyen módon nem elláthatók. A gázmérő optikai jeladója (tükör/silver dot) felhasználható a gázfogyasztással arányos jel képzésére, de csak olyan módon, hogy a gázmérőre, illetve annak számlálószerkezetére semmilyen külső eszköz nem kerül felszerelésre, és a gázmérő számlálószerkezetének leolvashatósága biztosított. A gázmérőbe, illetve annak számlálószerkezetébe bármiféle beavatkozás megtörténte mérőrongálásnak, illetve szabálytalan beavatkozásnak minősülhet, ennek alapján az említett műanyag burkolat kitöréséhez semmi módon nem járulunk hozzá.

Üzletszabályzatunk alapján továbbá: Igény esetén Társaságunk ellátja a felhasználási helyet digitális adatrögzítéssel rendelkező fogyasztásmérővel a felhasználó költségére. A digitális adatrögzítő felszerelésre vonatkozó igényt írásban kell jelezni Társaságunk felé. A digitális adatrögzítő felszerelését megelőzően Társaságunk felmérést végez, hogy a felhasználási helyen a digitális adatrögzítő és - igény esetén - távleolvasó berendezés felszerelésének műszaki feltételei teljesülnek-e. A felmérés alapján írásban tájékoztatjuk a felhasználót a digitális adatrögzítő és - igény esetén - távleolvasó berendezés felszerelésének költségeiről és a feltételek elfogadása esetén a felszerelés időpontjáról. A felmérés díját a felhasználó köteles megfizetni, melynek összegét Társaságunk árközleménye tartalmazza.

A felhasználó köteles megfizetni továbbá a digitális adatrögzítéssel történő ellátás kialakításának illetve üzemeltetésének díját. A digitális adatrögzítéssel történő ellátás kialakítás díjának fedezetet kell nyújtania a beszerelésre kerülő eszközök, gázmérő (amennyiben a meglévő gázmérő nem alkalmas digitális adatrögzítésre), digitális adatrögzítő, távleolvasó berendezés), a mérőkör átalakításhoz kapcsolódó (felhasználási hely felmérése; gázmérő, digitális adatrögzítő, távleolvasó berendezés felszerelése) költségekre. A kialakítás és az üzemeltetés díjait a Földgázelosztó árközleménye tartalmazza. A felszerelésre kerülő gázmérő, adatrögzítő, távleolvasó berendezés a Földgázelosztó tulajdona. A felhasználó a digitális adatrögzítő és távleolvasó rendszer felhagyására irányuló igényét írásban kell, hogy jelezze a Földgázelosztó felé. A Földgázelosztó a digitális adatrögzítő és távleolvasó berendezés leszerelésének költségeiről és a leszerelés időpontjáról írásban tájékoztatja a felhasználót.

Ezek alapján tehát:
  • számíthatunk arra, hogy az órában nincsen mágnes - legalább is OPUS-Tigáz területen
  • az optikai leolvasás engedélyezett, de elvileg nem rögzíthetjük a leolvasót az órára.
Ez utóbbihoz annyit tennék hozzá, hogy nálam már látta a megoldásomat a cég gázóra leolvasója, aki nem szólt rá semmit.

Alapok

Nem én találtam ki az egészet, a teljes alap innen indul. Ezt mindenki fussa át, én csak az eltéréseket/kiegészítéseket írnám itt le. Az ott megtalálható kapcsolási rajzokat azért ide is átmentem, nehogy elvesszen, ha a linkkel gond lenne.

Lehet, váltasztani, ki melyiket készíti el, én az 5V-os verziót választottam. Így meg lehet táplálni az áramkörön keresztül majd az ESP-t is, ha valaki nem akarja az USB portját erre használni.

Építés

Áramkör

A legfontosabb dolog, hogy az eredeti kapcsolási rajz szerinti OPB732WZ optikai érzékelő Magyarországon beszerezhetetlen. Helyette nyugodtan lehet használni a TCRT5000 érzékelőt. Az analóg teszt ponton mérhetjük, hogy az Schmitt trigger erősítője éppen milyen feszültséget lát a bemenetén, kicsit érdemes kitapasztalni, hogy az érzékelő elé rakott dolgok hogyan befolyásolják az értéket. Ja igen, az OPA344PA erősítőt érdemes foglaltba rakni, én először elfelejtettem, aztán szívtam is a fogamat, amikor valamilyen véletlen mozdulat miatt tönkretettem a beforrasztott példányt. A 470Ohm-os potméterrel természetesen az IR LED fényerejét tudjuk állítani (a legtöbb digitális kamerán keresztül (telefonén is) lehet ellenőrzini a LED fényerejének változását), míg a 20kOhm-ossal az a küszöbérték módosítható, amelynél a Schmitt trigger átbillen. (Ennek a lényege, hogy a kimeneti jele kap egy hiszterézist, így megakadályozza, hogy a végső kimenő jel prellegjen.) Az áramkörből természetesen nekünk a 3V Digital Out a lényeg, ezt kell majd az ESP egyik digitális bemenetére bekötni. (Én a GPIO13-at választottam, de a lényeg talán csak annyi, hogy mivel az áramkör már tartalmaz egy 10kOhm-os lehúzó ellenállást, ne a GPIO15-re tegyük, ami szintén tartalmaz egyet.)

Optikai érzékelő

A lényeg, hogy valahogyan stabilan és pontosan rögzíteni tudjuk az optikai érzékelőt a tükörrel rendelkező számjegy előtt. Erre a mai világban adja magát a 3D nyomtatás, készítettem is egy ilyen tartót. Azonban a különböző típusú gázórákhoz különböző tartó kell, de kiindulás alapnak jó lehet ez is. Nekem BK-G4T mérőm van, ehhez tuti jó. Az objektumot itt találjátok. Fontos, hogy ha saját tartót készítetek, úgy készüljön el, hogy az érzékelő ne legyen közelebb az óra üvegéhez, mint 15mm.  (Inkább legyen távolabb.) Ellenkező esetben az a tapsztalatom, hogy az üvegről túl sok fény verődik vissza, ami lehetetlenné teszi a kalibrációt. Emellett érdemes az óra ezen területét majd lefedni az érzékelővel együtt, főleg abban az esetben, ha közvetlen napsugárzás is érheti a számlapot. A Nap fényét a tesztelés közben is vegyük figyelembe, ha a munkaasztalunkra odatűz a Nap, az nagyban befolyásolja az érzékelő működését. Ha kész az áramkör és a tartó is, akkor az áramkör megtáplálásával már el lehet kezdeni megpróbálni bekalibrálni az érzékelőt a két potméter állításával. A cél természetesen az, hogy az áramkör "végén" lévő LED felvillanjon, amikor a tükröt tartalmazó számjegy az érzékelő elé kerül és kialudjon, amikor továbbfordul. Ez utóbbi nem evidens a hiszterézis miatt. Vagyis előállhat olyan beállítás, hogy amíg nincs a tükör az érzékelő előtt, akkor nem világít a LED, amikor előtte van, akkor világít, azonban a tükör továbbfordulása után is úgy marad. Ilyenkor további hangolásra van még szükség. Ha ez kész, jöhet az ESP.

ESP

Én WEMOS ESP D1 mini-t használok (próbáltam V3.0-val és V4.0-val is), gond nélkül működik vele. Ha az 5V-os áramkört építettük meg, akkor használhatjuk az ESP megtáplálására az áramköri 5V-ot, egyébként pedig az USB csatlakozón keresztül tehetjük meg. (Figyeljünk arra, hogy V3.x, vagy V4 verziót használunk, mert míg a V3.x microUSB-s, a V4.0 már USB-C-s!) Ahogy már említettem, az áramkör 3V Digital Out pontját (a 6k8/1k ellenállás és a 10k-s ellenállás közötti pontot) kössük a GPIO13-ra, és konfiguráljuk be az ESP-t a következő módon:
sensor:
  - platform: pulse_meter
    pin: 13
    unit_of_measurement: 'm³/h'
    name: "Gázfogyasztás"
    device_class: "gas"
    state_class: "measurement"
    internal_filter: 300ms
    timeout: 2min
    filters:
      - multiply: 0.6
    total:
      name: "Elhasznált gáz"
      unit_of_measurement: "m³"
      accuracy_decimals: 2
      device_class: "gas"
      state_class: "total_increasing"
      filters:
        - multiply: 0.01
Természetesen  ezekkel a paraméterekkel akkor lesz jó a mérés, ha a tükrös számjegy az ezred helyiértéken található, de normál otthoni felhasználóknál ez így szokott lenni.
A timeout érték azt határozza meg, hogy az utolsó impulzus után mennyi idő elteltével nullázza a  periódusidőből számított pillanatnyi fogyasztás értéket. Túl nagy érték esetén ennyi ideig akkor is a legutóbbi számított fogyasztásértéket fogjuk látni, amikor már megállt a fogyasztás, túl kicsi érték esetén pedig használat közben is nullázódhat a pillanatnyi fogyasztásérték. (Kisebb fogyasztás esetén.)
Ha ezzel megvagyunk, a Home Assistantban vegyük fel az új ESP modulunkat, aminél meg is kell jelennie a két entitásnak: Elhasznált gáz és Gázfogyasztás. Innentől csak HA ismeretek kellenek a használathoz. Egy tippet azért leírok: az Elhasznált gáz érzékelőt felhasználva készítsünk egy Utility Meter (magyarul Közüzemi fogyasztásmérő) segédentitást, mert az ESP által adott érték nullázodik, amikor az ESP elveszti a tápot. Emellett a Fejlesztő eszközök / Szolgáltatások menüpontban a Közüzemi fogyasztásmérő: Calibrate funkcóval beállíthatjuk a HA-ban a m3 értéket pontosan arra, amit az óra mutat. (Tizedespontot kell használni!)

Néhány kép