Skip to content

PiggyMeter

PiggyMeter csatlakoztatva az elektromos mérőhöz

Ez a cikk bemutatja, hogyan építhetünk egy eszközt, amely távolról olvassa le az adatokat egy elektromos mérőről (vagy bármilyen kompatibilis interfésszel rendelkező eszközről).

Széles körben elérhető alkatrészeket, nyílt forráskódú szoftvert használ, és kompatibilis a népszerű otthoni automatizálási szoftverrel, a Home Assistant-tal.

INFO

Egy működőképes eszköz összeszereléséhez szükséges készlet megvásárolható a Tindie-n: PiggyMeter KIT.

Jellemzők

  • Támogatja az IEC62056-21 alapú protokollokat
  • Támogatja a passzív SML protokollt az ESPHome natív komponensével
  • Többféle mérő: energia, víz, hő és még sok más
  • Nyílt forráskódú ESPHome használata
  • Vezeték nélküli kommunikáció Wi-Fi-n keresztül
  • Integrálható a Home Assistanttal
  • Opcionális webszerver
  • Olcsó hardver: ESP32-C3 vagy ESP32-S2
  • 3D nyomtatáshoz elérhető házterv

Támogatja az IEC62056-21 szabvánnyal kompatibilis mérőket, amelyek A, B, C, D módban működnek (de nem E-ben). Részletekért lásd az IEC 62056-21 komponenst.

Vegye figyelembe, hogy a protokollnak számos változata létezik. Bár a mérő ugyanazt az optikai interfészt használhatja, az adatkeret formátuma eltérő lehet.

Ezenkívül támogatja az SML (Smart Message Language) protokollt használó mérőket az ESPHome SML komponensével.

WARNING

A szoftver nem támogatja a DLMS, M-Bus és ANSI C12.18/19 szabványokat.

Hogyan ellenőrizhető, hogy a mérő támogatott-e?

Az IEC 62056-21 kifejezés több protokollra vonatkozik (ugyanazzal a hardverréteggel, de eltérő adat kódolással). Az eszköz támogatja azokat a mérőket, amelyek ASCII-kódolt adatokat szolgáltatnak, valahogy így:

console
1-0:15.8.1(00000009999.567*kWh)
1-0:15.8.2(00000000000.000*kWh)
1-0:15.8.3(00000000000.000*kWh)
1-0:15.8.4(00000000000.000*kWh)

A mérőnek kompatibilisnek kell lennie az International Standard IEC 62056-21:2002 szabvánnyal.

Jellemző fémgyűrű és optikai interfész középen.

Az SML protokoll esetében keresse az SML logót a mérőn vagy ellenőrizze a kézikönyvet. Az ESPHome komponens csak passzív módot támogat, nem küld kéréseket a mérőnek. Ebben a módban a mérő néhány másodpercenként küld adatokat.

Működőképes mérők a PiggyMeterrel

A lista a felhasználók jelentései alapján készült. Nem garantáljuk, hogy pontos.

INFO

Nyugodtan küldjön e-mailt az info@aquaticus.info címre, ha ismer olyan mérőt, amely működik a PiggyMeterrel, de nincs felsorolva fent.

Alternatív szoftver

A PiggyMeter hardver számos különböző mérővel működhet, amelyek optikai interfészt használnak. Azonban a szoftver jelenleg csak egy szabványt támogat, ami gyakorlatilag korlátozza a támogatott mérők körét.

Megpróbálhat alternatív szoftvert használni, amely támogatást nyújthat különböző mérőkhöz. Fontos megjegyezni, hogy nincs garancia arra, hogy zökkenőmentesen fog működni a PiggyMeterrel. Támogatásért kérjük, forduljon az eredeti szerzőhöz.

Anyagjegyzék

AlkatrészLeírás
CPUWemos C3 vagy S2 Mini https://www.wemos.cc/en/latest/
Optikai interfészPiggyMeter PCB https://www.tindie.com/products/32082/
2×pin header 1×42,54 mm raszter; a műanyag résznek 8,5 mm magasnak kell lennie
Gyűrűs mágnes⌀30/⌀15×2mm
Ház3D nyomtatott ház https://github.com/aquaticus/piggymeter_case
Alátét3D nyomtatott alátét https://github.com/aquaticus/piggymeter_case
Fedél3D nyomtatott hátlap https://github.com/aquaticus/piggymeter_case

CPU kártya

CPU

Szükséged van egy Espressif chippel ellátott és Wemos/Lolin lábkiosztással kompatibilis kártyára. A kulcsfontosságú tényező a 4 láb elhelyezkedése: GND, VCC, TX és RX.

A nyomtatott áramköri lap mérete is kritikus. A 3D nyomtatott tok csak az alábbiakban felsorolt kártyákhoz (vagy azok klónjaihoz) illeszkedik:

  • Lolin/Wemos S2 mini
  • Lolin/Wemos C3 mini

Elméletileg bármilyen más CPU kártyát is használhatsz kompatibilis lábkiosztással, például az ESP32 és ESP8266 D1 mini. De ebben az esetben saját tokot kell tervezned, és kicsit módosítanod kell a konfigurációs fájlokat (kártya típusa és soros port lábak).

Optikai interfész

Optikai interfész

A mérő egy IEC62056-21 szabvánnyal kompatibilis optikai interfészt alkalmaz, amely egy infravörös dióda és egy fototranszformátor segítségével kommunikál a szondával.

Az interfész a CPU kártya egyik soros portjához csatlakozik. Természetesen szükséged van VCC-re és GND-re is.

Optikai interfész és CPU
kártya

Forrassz fel 2 tüskesor csatlakozót. 8,5 mm magasságú tüskesor csatlakozót kell használnod. A tok kialakítása ezt a magasságot fogadja el, biztosítva a megfelelő illeszkedést. Ha a magasság meghaladja ezt a méretet, a fedél lezárása nehézségekbe ütközhet.

INFO

Összeszerelt interfészt vásárolhatsz a Tindie-n. Buy on Tindie

Tok

Töltsd le a 3D nyomtatóhoz szükséges fájlokat innen: https://github.com/aquaticus/piggymeter_case. Használd az V5 verziót a legújabb tervezéshez.

Tok

A tok három részből áll:

  • a fő tok,
  • egy alátét,
  • és egy fedél.

Három különálló STL fájl érhető el minden egyes komponenshez, vagy alternatívaként egyetlen 3fm fájl, amely mindhárom elemet tartalmazza.

A ház megfelel az IEC62056-21 szabvány optikai szonda követelményeinek.

INFO

A háznak van egy kis retesze. A záráshoz vagy nyitáshoz némi erő szükséges.

Ajánlott 3D nyomtatási beállítások

  • Anyag: PLA
  • Réteg: 0,2 mm
  • Nincs támasz

3d print

Összeszerelés

Assembly

Rendezze el az alkatrészeket a házban ebben a sorrendben:

  1. Mágnes
  2. Alátét
  3. Optikai interfész
  4. CPU kártya
  5. Fedél

INFO

Nézze meg az összeszerelést a Youtube-on https://youtu.be/fM2LyJJWQHA?si=dyY4r7zMSMfbwQtm

Programozás IEC62056-21 mérőkhöz

Kezdje az ESPHome telepítésével.

A CPU kártyája alapján válassza ki a megfelelő konfigurációs fájlt. Ezenkívül végezzen kézi beállításokat bizonyos paramétereken, például a WiFi jelszón.

Konfigurációs fájlok beszerzése

Klónozza a konfigurációs fájlokat tartalmazó git tárolót:

bash
git clone https://github.com/aquaticus/piggymeter_esphome_yaml

secrets.yaml fájl létrehozása

Hozzon létre egy secrets.yaml fájlt abban a könyvtárban, ahol a konfigurációs fájlok találhatók. Ez a fájl fogja tartalmazni a WiFi hálózat nevét és a hozzá tartozó jelszót.

yaml
# Home Assistant API encryption key
api_key: my_home_assistant_encryption_key

# OTA password
ota_pass: my_ota_password

# WiFi network name
wifi_ssid: my_network

# WiFi network password
wifi_pass: my_password

Projekt konfiguráció módosítása

A konfiguráció előre beállított szabványos adatpontokkal érkezik egy villanyóra számára.

Nyugodtan módosítsa a listát, különösen, ha az ön mérője eltér a villanyóra típusától. További információért tekintse meg az IEC 62056-21 komponenst.

yaml
sensor:
   - platform: iec62056
       obis: 1-0:15.8.0
       name: Absolute active energy total
       unit_of_measurement: kWh
       accuracy_decimals: 3
       device_class: energy
       state_class: total_increasing

Firmware építése és feltöltése

bash
esphome run piggymeter-s2-iec62056-21.yaml

A fenti parancs feltölti a firmware-t és megjeleníti a monitor kimenetét. Alapértelmezés szerint az interfész 1 percenként olvas adatokat a mérőről.

TIP

Az ESP32-S2 kártyához nyomja meg a BOOT gombot, majd a RESET gombot a PCB-n, hogy belépjen a programozási módba. Ezenkívül a feltöltés után hibaüzenet jelenhet meg -- ezt hagyja figyelmen kívül.

log
[12:21:27][D][iec62056.component:232]: Connection start
[12:21:27][D][binary_sensor:036]: 'Meter Connection Status': Sending state ON
[12:21:28][D][switch:013]: 'Internal LED' Turning ON.
[12:21:28][D][switch:056]: 'Internal LED': Sending state ON
[12:21:28][D][iec62056.component:174]: Meter identification: '/XXX6\2YYYYY'
[12:21:28][D][iec62056.component:407]: Meter reported protocol: C
[12:21:28][D][iec62056.component:410]: Meter reported max baud rate: 19200 bps ('6')
[12:21:28][D][iec62056.component:438]: Using negotiated baud rate 9600 bps.
[12:21:29][D][iec62056.component:470]: Switching to new baud rate 9600 bps ('5')
[12:21:29][D][iec62056.component:482]: Meter started readout transmission
[12:21:29][D][iec62056.component:524]: Data: 0-0:C.1.0(12345678)
[12:21:29][D][iec62056.component:524]: Data: 0-0:1.0.0(2000-01-01 20:10:30)
[12:21:29][D][iec62056.component:524]: Data: 1-0:15.8.0(00000001000.657*kWh)
[12:21:29][D][iec62056.component:620]: Set sensor 'Absolute active energy total' for OBIS '1-0:15.8.0'. Value: 1000.656982
[12:21:29][D][iec62056.component:524]: Data: 1-0:15.8.1(00000002000.657*kWh)
[12:21:29][D][iec62056.component:524]: Data: 1-0:15.8.2(00000003000.000*kWh)
[12:21:29][D][iec62056.component:524]: Data: 1-0:15.8.3(00000004000.000*kWh)
[12:21:29][D][iec62056.component:524]: Data: 1-0:15.8.4(00000005000.000*kWh)
[12:21:29][D][iec62056.component:524]: Data: 1-0:15.6.0(00000006000.385*kW)(2000-01-01 20:10:01)

Programozás SML mérőkhöz

Az első lépések megegyeznek az IEC62056-21 mérőkhöz szükséges lépésekkel.

A tároló klónozása és a secrets.yaml fájl létrehozása után használja az SML mérőkhöz készült konfigurációs fájlokat.

bash
esphome run piggymeter-s2-sml.yaml

Valószínűleg módosítania kell a konfigurációs fájlt, hogy az megfeleljen a mérő által továbbított adatpontoknak. Érdemes ellenőrizni a soros port adatátviteli sebességét és adatbitjeit is.

Home Assistant

A készüléket automatikusan fel kell ismernie a Home Assistantnak. Ha nem, manuálisan is hozzáadhatja az Integráció hozzáadása gombra kattintva, majd az ESPHome integráció kiválasztásával.

A PiggyMeter három csoportba sorolt elemeket tesz elérhetővé:

Olvasási Trigger

Ez a trigger kényszeríti a PiggyMeter-t, hogy az ütemezésen kívül adatokat olvasson a mérőről.

Mérőkapcsolat Állapota

A $1 állapot azt jelzi, hogy az interfész adatokat cserél a mérővel.

Kapcsolat Állapota

Szenzorok

Ez a konfigurációs fájlban meghatározott szenzorok listája.

Szenzorok

Önálló mód

A PiggyMeter függetlenül is működhet a Home Assistanttól, lehetőséget kínálva egy webszerver aktiválására. Ez a szerver közvetlenül egy webböngészőben jeleníti meg az adatokat, és egyszerű REST API-t kínál.

A webszerver aktiválásához vegye fel a következő sorokat a konfigurációs fájlba:

yaml
web_server:
  port: 80

További információ a webszerverről az ESPHome dokumentációban található.

Módosítások

Alapértelmezés szerint a készülék percenként gyűjt adatokat, és a belső LED világít az átvitel során.

Csak korlátozott számú OBIS kód van meghatározva a konfigurációs yaml fájlban. Erősen ajánlott a szenzorok listájának módosítása a mérőhöz való igazításhoz.

Bár az OBIS kódok szabványosítottak, a mérők eltérő számú kódot továbbíthatnak. A mérő által támogatott kódok megállapításához engedélyezze a DEBUG naplózást az IEC62056-21 komponens komponensnél, és elemezze a napló kimenetét.

Diagnosztika és Problémák IEC62056-21

Ez a szakasz csak az IEC62056-21 mérőkre vonatkozik (nem SML).

A firmware villogtatása után a készülék körülbelül 15 másodperc elteltével megpróbál adatokat olvasni a mérőről. Ha az átvitel sikertelen, kétszer próbálkozik újra 15 másodpercenként.

A megfelelő tokenek konfigurálásával beállíthatja ezeket a paramétereket. További részletekért tekintse meg az IEC62056-21 komponens dokumentációját.

Javasolt a naplózási szintet DEBUG-ról INFO-ra váltani, miután a készülék helyes működése megerősítést nyert.

Az alábbiakban gyakori problémák és azok megoldásai találhatók.

TIP

Győződjön meg róla, hogy a szonda biztonságosan csatlakozik a mérőhöz, és a szondán lévő nyíl felfelé mutat.

Nincs átvitel a mérőtől

log
[E][iec62056.component:268]: No transmission from meter.

Ez jelezheti:

  • Leggyakrabban az interfész nincs csatlakoztatva a mérőhöz.
  • Az interfész nincs megfelelően igazítva a mérő optikai interfészéhez.
  • A mérő nem kompatibilis.

Győződjön meg róla, hogy az optikai interfész párhuzamosan helyezkedik el a ház elülső felületével. Ha a készülék működik, amikor a mérőhöz van csatlakoztatva ház nélkül, de nem működik, miután a házba helyezték, ez lehet a probléma. Ilyen esetben fontolóra veheti a ház két lyukának nagyítását is.

Nem minden érzékelő kapott adatot

log
[E][iec62056.component:644]: Not all sensors received data from the meter. The first one: OBIS '1-0:72.7.0'. Verify sensor is defined with valid OBIS code.

Ez két problémát jelezhet:

  • A mérő nem támogatja az OBIS kódot, amelyet a yaml fájlban konfigurált. Egyszerűen távolítsa el a konfigurációból az adott OBIS kóddal rendelkező érzékelőt.
  • Lehet, hogy elírás vagy helytelen OBIS kód meghatározás van az érzékelő konfigurációs fájljában. Ellenőrizze a kódot.

A mérő automatikusan továbbít adatokat, de a készülék nem kap semmit

Ez azt jelzi, hogy a mérő támogatja az IEC62056-21 D módját. Ebben a módban a mérő néhány másodpercenként önállóan továbbít adatokat anélkül, hogy külön kérésre lenne szükség. Győződjön meg róla, hogy a soros port úgy van konfigurálva, hogy igazodjon a mérő átvitel formátumához, amelyet általában 9600 7E1 vagy 2400 7E1 értékre állítanak a legtöbb esetben.

yaml
# 9600bps for mode D
uart:
    rx_pin: GPIO21
    tx_pin: GPIO22
    baud_rate: 9600
    data_bits: 7
    parity: EVEN
    stop_bits: 1

Ezenkívül a D módot manuálisan kell aktiválni a mode_d=True beállításával a platform konfigurációjában.

yaml
# D mód engedélyezése
iec62056:
  mode_d: True

Ellenőrzőösszeg hibák

log
[E][iec62056.component:504]: BCC ellenőrzés sikertelen. Várt 0x6b, kapott 0x14

Ez a hiba átvitel problémákra utal.

Általában az átvitel sebessége túl magas. A maximális baud ráta csökkentése segíthet.

yaml
iec62056:
  baud_rate_max : 4800

Mérő azonosító fogadva, de nincs átvitel

log
[D][iec62056.component:174]: Mérő azonosító: '/XXX6\2YYYYYYY'
[D][iec62056.component:252]: A mérő E módot jelez, amely nem támogatott. C mód próbálkozás. Ez működni fog az E és C módot is támogató mérőknél.
[E][iec62056.component:268]: Nincs átvitel a mérőtől.

A mérő azonosító karakterlánc sikeresen fogadva, de nincs adatátvitel. Ezenkívül a napló egy üzenetet jelenít meg, amely szerint "A mérő E módot jelez."

A mérő kizárólag E módban működik, amelyet a PiggyMeter nem támogat. Következésképpen a szoftver megpróbálja a mérőt C módba kapcsolni, de ez a próbálkozás sikertelen.

Ha egy mérő mind E, mind C módot támogat, a rendszernek helyesen kell működnie.