Comhpháirt ESPHome IEC 62056-21
Is caighdeán idirnáisiúnta é IEC 62056-21 do phrótacal chun sonraí a mhalartú le méadair fóntais. Den chuid is mó le haghaidh leictreachais ach freisin uisce, teirmeach agus méadair eile. Bhí sé ar a dtugtaí roimhe seo IEC 61107.
Ligeann an comhpháirt iec62056
duit sonraí a léamh ó aon mhéadar comhoiriúnach. Éilíonn sé calafort sraitheach agus comhéadan optúil seachtrach. Úsáideann malartú sonraí cainéal optúil infridhearg. Tá méadair chomhoiriúnacha feistithe le pláta miotail cruinn tréith le dhá eilimint opto istigh. D'fhéadfaí an prótacal a úsáid le sraitheanna iompair eile, m.sh. lúb reatha ach níor tástáladh an comhpháirt ach leis an gcomhéadan optúil.
Tacaíonn sé le 4 mhodh de IEC 62056-21: A, B, C, agus D. Níl tacaíocht ag Modh E.
Níl tacaíocht ag an gcomhpháirt do chlárú. Éilíonn socrú paraiméadair chumraíochta méadair pasfhocal rúnda a fhágann nach féidir le gnáthúsáideoirí é a úsáid.
Tá caighdeáin méadar cliste eile ann a úsáideann an comhéadan optúil céanna. Cé go roinneann siad roinnt coincheapa coitianta níl siad comhoiriúnach.
Suiteáil
Cuir an cód seo a leanas le comhad cumraíochta YAML ESPHome chun tagairt a dhéanamh don chomhpháirt sheachtrach.
yaml
external_components:
# Comhpháirt IEC62056
- source: github://aquaticus/esphome-iec62056
Teoiric oibríochta
Oibríonn an chomhpháirt i 2 phríomh-mhodh:
- Cumarsáid dhá-threorach le méadar. Sa mhodh seo, seolann méadar sonraí ach amháin nuair a iarrtar é. Éilíonn sé glacadóir IR agus tarchuradóir. Is é seo modh A, B agus C de réir IEC 62056-21.
- Cumarsáid aontreorach, áit a seolann méadar sonraí chuig probe ó am go ham. Ní éilíonn sé ach glacadóir IR. I dtéarmaíocht IEC 62056-21 is é modh D é.
Modhanna A, B, C
Léann an chomhpháirt sonraí don chéad uair 15 soicind tar éis tosaithe. Ar dtús, seolann sé iarratas aitheantais ag 300 bps. Filleann an méadar an ráta baud uasta is féidir leis a láimhseáil. Ina dhiaidh sin, athraítear ráta baud an chalafoirt sraitheach go dtí an luach a sholáthraíonn an méadar nó a chumraítear de réir rogha baud_rate_max
. Tarchuireann an méadar cláir sonraí le cóid OBIS gaolmhara.
Má theipeann ar an tarchur (seicshuíomh mícheart nó formáid neamhbhailí), déanfaidh an comhpháirt iarracht sonraí a léamh arís ach an uair seo ag úsáid luas tarchuir níos moille. Laghdaítear an luas le gach iarracht arís. Is féidir líon na n-iarrachtaí agus na moilleanna a chumrú.
Má tá an méadar faoi thiomáint ceallraí, is féidir seicheamh speisialta múscailte a chur i bhfeidhm. Tarlaíonn sé seo ach amháin nuair a bhíonn battery_meter
socraithe go True
.
Mód D
Maidir le méadair atá ag feidhmiú i mód D, ní gá ach glacadóir IR mar nach dtacaítear le tarchur chuig méadar. Sa mhód seo, seolann an méadar sonraí gach cúpla soicind gan aon iarratas. Ba cheart duit an calafort sraitheach a chumrú chun formáid tarchuir an mhéadair a mheaitseáil. Murab ionann agus modhanna A, B, agus C a bhraitear go huathoibríoch, ní mór Mód D a chumasú de láimh trí mode_d=True
a shocrú sa chumraíocht ardáin.
Mód E
Níl tacaíocht ar fáil don mhód seo. Úsáideann Mód E ionchódú dénártha thar nasc HDLC.
Déanann an comhpháirt iarracht mód C a úsáid do mhéadair a thuairiscíonn mód E. Ba cheart go n-oibreodh sé seo má thacaíonn an méadar le modhanna E agus C araon. Maidir le méadair a thacaíonn le léamh amach mód E amháin, níl sé indéanta.
Cóid OBIS
Aithníonn an cód OBIS (Córas Aitheantais Réada) na léamha éagsúla ó mhéadar. Tá suas le 6 fho-aitheantóir grúpa sa chód. Tá an cód formáidithe mar seo: A-B:C.D.E*F
, áit a bhfuil:
A
- meán: 0=réada teibí, 1=leictreachas, 6=teas, 7=gás, 8=uisceB
- cainéal, 0=gan cainéal ar fáilC
- luach fisiceach, mar shampla sruth, voltas, teocht.D
- cineál tomhais,E
- taraif, 0=iomlán, 1=taraif #1, 2=taraif #2 agus mar sin deF
- tréimhse billeála
Is féidir A
, B
, agus F
a fhágáil ar lár. Is féidir le cóid úsáid a bhaint as digití heicsidheachúlacha, mar shampla, d'fhéadfaí an cód 15.8.0
a léiriú mar F.8.0
.
Tá na cóid caighdeánaithe ach seolann feistí líon éagsúil cóid. Chun liosta de na cóid a thacaíonn do mhéadar a fháil, cumasaigh logáil DEBUG
don chomhpháirt iec62056
agus breathnaigh ar aschur an loga. Sampla aschuir:
log
[10:50:12][D][iec62056.component:416]: Data: '1-0:15.8.1(00000009999.567*kWh)'
[10:50:12][D][iec62056.component:416]: Data: '1-0:15.8.2(00000000000.000*kWh)'
[10:50:12][D][iec62056.component:416]: Data: '1-0:15.8.3(00000000000.000*kWh)'
[10:50:12][D][iec62056.component:416]: Data: '1-0:15.8.4(00000000000.000*kWh)'
TIP
Caithfidh cód OBIS an bhraiteora a mheaitseáil go díreach leis an méid atá á tharchur ó mhéadar. Is é seo an chuid roimh an chéad lúibín (
.
Má tá cód OBIS ach dhá dhigit, ba cheart duit comharthaí athfhriotail a úsáid sa chomhad cumraíochta; mar shampla, "1.2"
in ionad 1.2
amháin.
Chun liosta de chódanna OBIS do mhéadair leictreacha a fháil, is féidir leat cuairt a thabhairt ar:
- https://www.promotic.eu/en/pmdoc/Subsystems/Comm/PmDrivers/IEC62056_OBIS.htm
- https://onemeter.com/docs/device/obis/#index
Crua-earraí
Chun cumarsáid a dhéanamh le méadar ní mór duit comhéadan optúil a cheangal leis an bport sraitheach. Tá LED infridhearg agus fóta-thrasraitheoir sa chomhéadan. Ina theannta sin, ní mór don fheiste a bheith feistithe le maighnéad fáinne chun é a choinneáil ailínithe leis an méadar.
Má oibríonn an méadar i mód aon-treorach D, níl ach fóta-thrasraitheoir IR ag teastáil.
Tástálaí
Sainmhíníonn an caighdeán na toisí uasta den tástálaí is féidir a cheangal le méadar. Ní mór é a bheith feistithe le maighnéad mar is é an t-aon bhealach é a choinneáil i suíomh cobhsaí.
Cumraíocht
Chun sonraí méadair a fheiceáil i Home Assistant ní mór duit a sensor nó sensor téacs a shainiú leis an gcód OBIS cuí. Tabhair faoi deara go dtacaíonn méadair le tacair éagsúla de chódanna OBIS. De réir réamhshocraithe, ní shainmhíníonn an comhpháirt aon braiteoirí.
Port sraitheach
Éilíonn an comhpháirt bus UART. Caithfidh an sraith a bheith cumraithe mar 7E1 sa chuid is mó de na cásanna. Nuair a bhíonn mode_d=True
caithfidh ráta baud a bheith socraithe go luach a thacaíonn an méadar leis. De ghnáth 2400 nó 9600 bps. Do mhóid eile (mode_d=False
) déantar an luas tarchurtha a chaibidil le méadar. Déantar neamhaird ar baud_rate
agus is féidir é a bheith ina aon luach.
yaml
# Example UART configuration entry
uart:
rx_pin: GPIO21
tx_pin: GPIO22
baud_rate: 9600
data_bits: 7
parity: EVEN
stop_bits: 1
WARNING
Maidir le ESP8266 moltar go mór UART crua-earraí a úsáid. Ní féidir le UART bogearraí tarchurtha níos tapúla ná 4800 bps a láimhseáil.
B'fhéidir go mbeidh ort logáil a dhíchumasú má tá an tástálaí optúil ceangailte leis an bport sraitheach a úsáideann an comhpháirt logálaí.
yaml
# Socraigh baud_rate go 0 chun logáil a dhíchumasú trí UART.
logger:
baud_rate: 0
Ardán
Chun an comhpháirt a úsáid ní mór duit rannán ardán iec62056
a shainiú sa chomhad cumraíochta. Tá sé comhdhéanta de shocruithe bunúsacha.
Athróga cumraíochta
- eatramh_nuashonraithe (Roghnach, Time): An eatramh chun sonraí a léamh ó mhéadar. Réamhshocraithe go
15min
. Cuireannnever
nuashonruithe ar ceal. Sa chás sin, ba chóir lasc a úsáid chun léamh a spreagadh. Chun léamha leanúnacha a fháil bain úsáid as luach beag cosúil le 1s. - uasráta_baud (Roghnach, int): Cuireann teorainn leis an uasluas tarchuir go dtí an luach sonraithe. De réir réamhshocraithe, socraítear é go
9600
mar go soláthraíonn sé nasc cobhsaí. Chun é a dhíchumasú, socraigh é go0
. Ar an mbealach sin is féidir leat an ráta baud is mó is féidir de19200
a úsáid má thacaíonn an méadar leis. Maidir le ESP8266 bain úsáid as an UART bogearraí socraithe go4800
nó níos ísle. - am_fáilteach (Roghnach, Time): An t-am uasta a fhanann an comhpháirt le sonraí ó mhéadar sula dtuairiscítear earráid tarchuir. Réamhshocraithe go
3s
. - méadar_ceallraí (Roghnach, boolean): Socraigh go fíor má tá méadar faoi thiomáint ceallraí. Ar an mbealach sin úsáidfear seicheamh speisialta cumhachta suas.
- moill_athiarraidh (Roghnach, Time): I gcás teip tarchuir, an t-am le fanacht sula ndéantar iarracht tarchuir arís. Réamhshocraithe go
15s
. - uasmhéadar_athiarraidh (Roghnach, int): I gcás teip tarchuir, an líon uasta iarrachtaí. Réamhshocraithe go
2
. - id_uart (Roghnach, ID: Sonraigh de láimh ID an Comhpháirt UART más mian leat úsáid a bhaint as busanna UART iolracha.
- modh_d (Roghnach, boolean): Socraigh go
True
má sheolann méadar sonraí gach cúpla soicind. Cuireann sé seo iallach ar an gcomhpháirt oibriú i modh D. Sa mhodh seo ní sheoltar sonraí riamh chuig méadar. Má shocraítear é, déantar neamhaird ar aon socruithe eile seachasam_fáilteach
. Ná déan dearmad ráta baud UART a shocrú atá á úsáid ag an méadar. Mura bhfuil tú cinnte bain triail as2400 7E1
nó9600 7E1
.
WARNING
De ghnáth, cuireann méadair a oibríonn ar chadhnraí teorainn ar líon na léamha chun fuinneamh a chaomhnú, m.sh. go 4 léamh in aghaidh an lae. Mura gcuireann méadar an teorainn i bhfeidhm, d'fhéadfadh léamha minic saolré na cadhnraí a laghdú go suntasach.
Braiteoir
Tuairiscíonn an braiteoir an chéad luach idir lúibíní ón taifead. Maidir leis na sonraí seo a leanas
log
1-0:15.6.0(00000006000.385*kW)(2000-01-01 20:10:30)
is é luach an bhraiteora 6000.385
. Chun an dara luach a fháil (dáta/am sa sampla seo) bain úsáid as Braiteoir Téacs.
Ní thacaíonn an braiteoir ach le luachanna deachúlacha. Má tá sonraí sa taifead i bhformáid eile caithfidh tú Braiteoir Téacs a úsáid agus roghnach lambda chun é a thiontú go huimhir.
yaml
# Example sensor configuration entries
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
- platform: iec62056
name: Instantaneous current in phase L1
obis: 1-0:31.7.0
unit_of_measurement: A
accuracy_decimals: 2
device_class: current
state_class: measurement
- platform: iec62056
name: Instantaneous voltage in phase L1
obis: 1-0:32.7.0
unit_of_measurement: V
accuracy_decimals: 1
device_class: voltage
state_class: measurement
- platform: iec62056
name: Absolute active instantaneous power
obis: 1-0:15.7.0
unit_of_measurement: kW
accuracy_decimals: 3
device_class: energy
state_class: measurement
Athróga cumraíochta
- obis (Riachtanach): Cód OBIS.
- Gach rogha eile ó Braiteoir.
Braiteoir Téacs
Soláthraíonn an braiteoir téacs sonraí léamha mar théacs. Murab ionann agus Braiteoir, is féidir leat a roghnú cén chuid den léamh a thuairiscítear agus fiú an taifead sonraí iomlán a sheoladh ar ais chuig Home Assistant.
yaml
# Sample text sensor configuration
# Data record:
# 1-0:15.6.0(00000006000.385*kW)(2000-01-01 20:10:30)
text_sensor:
- platform: iec62056
obis: 1-0:15.6.0
group: 2 # "2000-01-01 20:10:30"
name: Date time
- platform: iec62056
obis: 1-0:15.6.0
group: 1 # "00000006000.385"
name: Value
- platform: iec62056
obis: 1-0:15.6.0
group: 0 # "1-0:15.6.0(00000006000.385*kW)(2000-01-01 20:10:30)"
name: The entire record
Athróga cumraíochta
- obis (Riachtanach): Cód OBIS. Féadfaidh tú braiteoirí téacs iolracha a shainiú leis an OBIS céanna ach le grúpa difriúil.
- grúpa (Roghnach, int): Grúpa luacha,
0
,1
, nó2
. Réamhshocraithe go1
. Má shocraítear é go0
, tuairiscítear an taifead sonraí iomlán lena n-áirítear cód OBIS. Tuairiscíonn1
an chéad luach,2
an dara ceann. - Gach rogha eile ó Braiteoir Téacs.
Comhshó sonraí
Má thuairiscíonn méadar sonraí mar luach neamh-dheachúlach is féidir leat é a thiontú go huathoibríoch ag úsáid braiteoir teimpléid agus lambda. Glacaimis leis go seolann an méadar taifead cosúil leis an gceann seo a leanas le sonraí ionchódaithe heics:
text
0-0:96.8.0*255(ABCDEF00)
Ar dtús, cruthaigh braiteoir teimpléid a fhoilseoidh sonraí mar luach deachúlach.
yaml
sensor:
- platform: template
id: hex_to_dec_sensor
name: "Converted hexadecimal number"
Anois cruthaigh braiteoir téacs a gheobhaidh sonraí mar shreang, a thiontóidh go deachúlach agus a fhoilseoidh.
yaml
text_sensor:
- platform: iec62056
id: hex_sensor
obis: 0-0:96.8.0*255
name: Hex content
internal: True
on_value:
lambda: |-
std::string hex_str = id(hex_sensor).state;
uint32_t dec=std::stoul(hex_str, nullptr, 16);
ESP_LOGI("iec62056.component", "Converted HEX '%s' to %u decimal", hex_str.c_str(), dec);
id(hex_to_dec_sensor).publish_state((float)dec);
Gach uair a fhaigheann an braiteoir téacs luach nua, tiontaíonn sé é go deachúil agus foilsíonn sé é ag úsáid an braiteora leis an id hex_to_dec_sensor
. Cuireann an bhratach internal
cosc ar an braiteoir a bheith le feiceáil i Home Assistant. Sa loga ba chóir duit a fheiceáil:
log
[I][iec62056.component:127]: Tiontaíodh HEX 'ABCDEF00' go 2882400000 deachúil
Is féidir na torthaí céanna a fháil ag úsáid lambdas Home Assistant. Sa chás seo, foilsíonn an braiteoir téacs luach heicsidheachúlach agus déanann braiteoir teimpléid Home Assistant an tiontú.
Athraigh
Soláthraíonn an lasc an cumas chun léamh a spreagadh ar iarratas. Nuair a athraítear an stát ó OFF
go ON
tosaíonn an comhpháirt tarchur sonraí ó mhéadar. Is féidir leat an lasc a úsáid in uathoibriú.
Is féidir athróg cumraíochta ó Switch a úsáid.
yaml
# Sample switch configuration
switch:
- platform: iec62056
name: 'Readout Trigger'
Ní féidir leat léamh a spreagadh i mód D.
Braiteoir dénártha
Socraigh go ON
nuair a thosaíonn tarchur chuig méadar. OFF
nuair a chríochnaíonn an tarchur.
Is féidir leat na hathróga cumraíochta go léir ó Binary Sensor a úsáid.
yaml
# Sample automation to turn LED on when data read from a meter
switch:
- platform: gpio
pin: GPIO2
name: Internal LED
id: led_switch
internal: True
binary_sensor:
- platform: iec62056
id: meter_status
name: Meter Connection Status
on_press:
then:
- switch.turn_on: led_switch
on_release:
then:
- switch.turn_off: led_switch
Fabhtcheartú
- Déan cinnte go bhfuil an tsonda ailínithe i gceart leis na heilimintí optúla ar an méadar.
- De ghnáth bíonn méadair suiteáilte i gceantair nach bhfuil an-ghlan. B'fhéidir go mbeidh ort deannach a bhaint den chomhéadan optúil ó am go ham.
- Má thagann tú ar earráidí tarchurtha agus seiceasuma BCC laghdaigh an ráta baud ag úsáid an socrú
baud_rate_max
. - Má láimhseálann do ghléas braiteoirí iolracha a chaitheann a lán ama sa lúb nuashonraithe b'fhéidir go mbeidh ort méid an mhaolán calafoirt sraitheach a mhéadú. Go háirithe má thugann tú faoi deara fadhbanna tarchurtha nuair a bhíonn braiteoirí breise cumasaithe ach nach bhfuil nuair a bhíonn siad díchumasaithe.