Skip to content

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.

An comhéadan ar mhéadar. Fáinne miotail do mhaighnéad agus dhá eilimint optúla istigh.

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=uisce
  • B - cainéal, 0=gan cainéal ar fáil
  • C - 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 de
  • F - 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:

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í.

Toisí tástálaí optúil

Cumraíocht

Chun sonraí méadair a fheiceáil i Home Assistant ní mór duit a sensorsensor 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. Cuireann never 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 é go 0. Ar an mbealach sin is féidir leat an ráta baud is mó is féidir de 19200 a úsáid má thacaíonn an méadar leis. Maidir le ESP8266 bain úsáid as an UART bogearraí socraithe go 4800 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 seachas am_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 as 2400 7E19600 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 go 1. Má shocraítear é go 0, tuairiscítear an taifead sonraí iomlán lena n-áirítear cód OBIS. Tuairiscíonn 1 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.

Féach freisin