PiggyMeter
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.
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.
- Apator Norax 3
- Apator Norax 1
- Apator Norax 1D SML komponenssel
- Pafal 12EA5
- Iskra MT372
- Iskra ME162
- Kastrup 382
- Landis+Gyr E350 ZMF110
- ZPA ZE110.D0
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.
- DLMS/COSEM Esphome modul https://github.com/viric/esphome-ziv
Anyagjegyzék
Alkatrész | Leírás |
---|---|
CPU | Wemos C3 vagy S2 Mini https://www.wemos.cc/en/latest/ |
Optikai interfész | PiggyMeter PCB https://www.tindie.com/products/32082/ |
2×pin header 1×4 | 2,54 mm raszter; a műanyag résznek 8,5 mm magasnak kell lennie |
Gyűrűs mágnes | ⌀30/⌀15×2mm |
Ház | 3D nyomtatott ház https://github.com/aquaticus/piggymeter_case |
Alátét | 3D nyomtatott alátét https://github.com/aquaticus/piggymeter_case |
Fedél | 3D nyomtatott hátlap https://github.com/aquaticus/piggymeter_case |
CPU kártya
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
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.
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.
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.
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
Összeszerelés
Rendezze el az alkatrészeket a házban ebben a sorrendben:
- Mágnes
- Alátét
- Optikai interfész
- CPU kártya
- 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.
Szenzorok
Ez a konfigurációs fájlban meghatározott szenzorok listája.
Ö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.