Baile Cliste: Tomhaltas Uisce agus Leictreachais i gCúntóir Baile a Chairt

Baile Cliste: Tomhaltas Uisce agus Leictreachais i gCúntóir Baile a Chairt
Gach uair a fhaighim íocaíocht ar leictreachas agus uisce, n’fheadar – an ídíonn mo theaghlach an oiread sin i ndáiríre? Bhuel, tá, tá urlár téite agus coire sa seomra folctha, ach ní oibríonn siad mar fhir dóiteáin an t-am ar fad. Is cosúil go sábhálann muid uisce freisin (cé gur maith linn splashing sa seomra folctha freisin). Roinnt blianta ó shin mé cheana féin méadair uisce nasctha и leictreachas chuig teach cliste, ach seo nuair a chuaigh rudaí i bhfostú. Níl an anailís ar thomhaltas bainte amach ag na lámha ach anois, agus is é sin, i ndáiríre, a bhfuil an t-alt seo faoi.

D’aistrigh mé go Cúntóir Baile le déanaí mar mo chóras baile cliste. Ceann de na cúiseanna a bhí ann ná an cumas bailiúchán mór sonraí a eagrú agus an fhéidearthacht go bhféadfaí cineálacha éagsúla graif a thógáil go háisiúil.

Níl an fhaisnéis a thuairiscítear san Airteagal seo nua, tá na rudaí seo go léir faoi anlainn éagsúla curtha síos cheana féin ar an Idirlíon. Ach déanann gach alt, mar riail, cur síos ar chur chuige nó ar ghné amháin. Bhí orm na cuir chuige seo go léir a chur i gcomparáid agus an ceann is oiriúnaí a roghnú mé féin. Ní sholáthraíonn an t-alt faisnéis uileghabhálach fós maidir le bailiú sonraí, ach is achoimre é ar conas a rinne mé é. Mar sin fáiltítear roimh cháineadh cuiditheach agus moltaí chun feabhais.

An fhadhb a fhoirmiú

Mar sin, is é an sprioc atá le cleachtadh an lae inniu ná graif álainn a fháil ar thomhaltas uisce agus leictreachais:

  • in aghaidh na huaire ar feadh 2 lá
  • Go laethúil ar feadh 2 sheachtain
  • (roghnach) go seachtainiúil agus go míosúil

Tá roinnt deacrachtaí leis seo:

  • Is gnách go mbíonn comhpháirteanna caighdeánacha na cairte sách lag. Ar a fheabhas, is féidir leat líneghraf a thógáil de réir pointí.

    Má chuardaíonn tú go maith, is féidir leat comhpháirteanna tríú páirtí a aimsiú a leathnaíonn cumais na cairte caighdeánach. Maidir le cúntóir baile, i bprionsabal, comhpháirt mhaith agus álainn cárta grafach mion, ach tá sé teoranta freisin:

    • Tá sé deacair paraiméadair an bharrachairt a shocrú ag eatraimh mhóra (socraítear leithead an bharra i gcodáin uair an chloig, rud a chiallaíonn go socrófar eatraimh níos faide ná uair an chloig i gcodánuimhreacha)
    • Ní féidir aonáin éagsúla a chur le graf amháin (mar shampla, teocht agus taise, nó barraghraf a chomhcheangal le líne)
  • Ní hamháin go n-úsáideann an cúntóir baile an bunachar sonraí SQLite is primitive de réir réamhshocraithe (agus níor mháistir mé féin, an fear láimhe, suiteáil MySQL nó Postgres), ní stóráiltear na sonraí ar an mbealach is fearr is féidir. Mar sin, mar shampla, le gach athrú ar gach ceann acu fiú amháin na paraiméadair dhigiteacha is lú de pharaiméadar, scríobhtar json ollmhór timpeall cilibheart i méid chuig an mbunachar sonraí
    {"entity_id": "sensor.water_cold_hourly", "old_state": {"entity_id": "sensor.water_cold_hourly", "state": "3", "attributes": {"source": "sensor.water_meter_cold", "status": "collecting", "last_period": "29", "last_reset": "2020-02-23T21:00:00.022246+02:00", "meter_period": "hourly", "unit_of_measurement": "l", "friendly_name": "water_cold_hourly", "icon": "mdi:counter"}, "last_changed": "2020-02-23T19:05:06.897604+00:00", "last_updated": "2020-02-23T19:05:06.897604+00:00", "context": {"id": "aafc8ca305ba4e49ad4c97f0eddd8893", "parent_id": null, "user_id": null}}, "new_state": {"entity_id": "sensor.water_cold_hourly", "state": "4", "attributes": {"source": "sensor.water_meter_cold", "status": "collecting", "last_period": "29", "last_reset": "2020-02-23T21:00:00.022246+02:00", "meter_period": "hourly", "unit_of_measurement": "l", "friendly_name": "water_cold_hourly", "icon": "mdi:counter"}, "last_changed": "2020-02-23T19:11:11.251545+00:00", "last_updated": "2020-02-23T19:11:11.251545+00:00", "context": {"id": "0de64b8af6f14bb9a419dcf3b200ef56", "parent_id": null, "user_id": null}}}

    Tá go leor braiteoirí agam (braiteoirí teochta i ngach seomra, méadair uisce agus leictreachais), agus gineann cuid acu go leor sonraí freisin. Mar shampla, ní ghineann ach méadar leictreachais SDM220 thart ar dhosaen luachanna gach 10-15 soicind, agus ba mhaith liom 8 méadar den sórt sin a shuiteáil.Agus tá sraith iomlán paraiméadair ann freisin a ríomhtar bunaithe ar braiteoirí eile. Sin. is féidir leis na luachanna seo go léir inflate go héasca ar an mbunachar sonraí faoi 100-200 MB laethúil. I gceann seachtaine, is ar éigean a bheidh an córas ag caitheamh agus ag casadh, agus i mí beidh an tiomáint flash bás (i gcás suiteála cúntóir baile tipiciúil ar sú craobh PI), agus ní féidir aon cheist a bheith ann maidir le stóráil sonraí ar feadh bliana ar fad.

  • Má tá an t-ádh leat, is féidir le do mhéadar féin tomhaltas a chomhaireamh. Féadfaidh tú teagmháil a dhéanamh leis an méadar ag am ar bith agus fiafraí cén t-am atá an luach tomhaltais carntha. De ghnáth, cuireann gach méadar leictreachais a bhfuil comhéadan digiteach acu (RS232/RS485/Modbus/Zigbee) deis den sórt sin ar fáil.

    Níos measa ná sin, más féidir leis an bhfeiste roinnt paraiméadar meandarach a thomhas go simplí (mar shampla, cumhacht mheandarach nó sruth), nó go simplí bíoga a ghiniúint gach X bhata-uaire nó lítear. Ansin ní mór duit smaoineamh ar conas agus le cad atá le comhtháthú agus nuair a luach a charnadh. Tá an baol ann go gcaillfear an chéad tuairisc eile ar chúis ar bith, agus ardaíonn cruinneas an chórais ina iomláine ceisteanna. Is féidir leat, ar ndóigh, é seo go léir a chur ar iontaoibh córas baile cliste cosúil le cúntóir baile, ach níl aon duine tar éis an pointe faoi líon na n-iontrálacha sa bhunachar sonraí a chealú, agus ní oibreoidh braiteoirí vótaíochta níos mó ná uair amháin sa soicind (teorannú an ailtireacht cúntóir baile).

Cur Chuige 1

Ar dtús, déanaimis a fheiceáil cén cúntóir baile a chuirtear ar fáil as an mbosca. Feidhmiúlacht a iarrtar go mór is ea tomhaltas a thomhas thar thréimhse. Ar ndóigh, cuireadh i bhfeidhm é i bhfad ó shin mar chomhpháirt speisialaithe - utility_meter.

Is é croílár an chomhpháirte ná go dtosaíonn sé an athróg current_accumulated_value taobh istigh agus go n-athshocraíonn sé é tar éis tréimhse sonraithe (uair / seachtain / mí). Déanann an chomhpháirt féin monatóireacht ar an athróg atá ag teacht isteach (luach braiteoir de chineál éigin), síníonn sé le hathruithe ar an luach féin - ní bhfaighidh tú ach an toradh críochnaithe. Déantar cur síos ar an rud seo i gcúpla líne sa chomhad cumraíochta

utility_meter:
  water_cold_hour_um:
    source: sensor.water_meter_cold
    cycle: hourly
  water_cold_day_um:
    source: sensor.water_meter_cold
    cycle: daily

Anseo is é sensor.water_meter_cold luach reatha an mhéadair i lítear a gheobhaidh mé go díreach ón iarann ag mqtt. Cruthaíonn an dearadh 2 braiteoir nua water_cold_hour_um agus water_cold_day_um, a charnadh léamh in aghaidh na huaire agus laethúil, agus iad a athshocrú go nialas tar éis tréimhse. Seo graf den chadhnra uair an chloig ar feadh leath lae.

Baile Cliste: Tomhaltas Uisce agus Leictreachais i gCúntóir Baile a Chairt

Breathnaíonn an cód cairte in aghaidh na huaire agus laethúil le haghaidh lovelace-UI mar seo:

      - type: history-graph
        title: 'Hourly water consumption using vars'
        hours_to_show: 48
        entities:
          - sensor.water_hour

      - type: history-graph
        title: 'Daily water consumption using vars'
        hours_to_show: 360
        entities:
          - sensor.water_day

I ndáiríre, sa algartam luíonn fadhb an chur chuige seo. Mar a luaigh mé cheana, do gach luach isteach (an léamh méadair reatha do gach lítear eile), gintear 1kb de thaifead sa bhunachar sonraí. Gineann gach méadar fóntais luach nua freisin, a chuirtear leis an mbonn freisin. Más mian liom léamha uaire/laethúla/seachtainiúla/míosúla a bhailiú, tá, le haghaidh roinnt risers uisce, agus fiú pacáiste méadar leictreacha a chur leis, beidh go leor sonraí ann. Bhuel, níos cruinne, níl mórán sonraí ann, ach ós rud é go scríobhann an cúntóir baile bunch faisnéise neamhriachtanach chuig an mbunachar sonraí, fásfaidh méid an bhunachair sonraí de réir a chéile. Tá eagla orm fiú meastachán a dhéanamh ar mhéid an bhoinn le haghaidh cairteacha seachtainiúla agus míosúla.

Ina theannta sin, ní réitíonn an méadar fóntais féin an fhadhb. Is feidhm mhéadaithe monotonach é plota an mhéadair áirgiúlachta a athshocraíonn go 0 gach uair an chloig. Teastaíonn sceideal tomhaltais so-úsáidte uainn freisin, cé mhéad lítear a itheadh ​​le linn na tréimhse. Ní dhéanann an chomhpháirt chaighdeánach ghraif staire é seo, ach is féidir leis an gcomhpháirt sheachtrach mionchárta graif cabhrú linn.

Seo é cód an chárta do lovelace-UI:

      - aggregate_func: max
        entities:
          - color: var(--primary-color)
            entity: sensor.water_cold_hour_um
        group_by: hour
        hours_to_show: 48
        name: "Hourly water consumption aggregated by utility meter"
        points_per_hour: 1
        show:
          graph: bar
        type: 'custom:mini-graph-card'

Chomh maith leis na socruithe caighdeánacha ar nós an t-ainm braiteora, cineál graf, dath (níor thaitin an oráiste caighdeánach liom), tá sé tábhachtach 3 shocrú a thabhairt faoi deara anseo:

  • group_by:hour - ginfear an chairt le colúin ailínithe le tús na huaire
  • points_per_hour: 1 - barra amháin in aghaidh na huaire
  • Agus is tábhachtaí fós, aggregate_func: uas an luach uasta a ghlacadh laistigh de gach uair an chloig. Is é an paraiméadar seo a iompaíonn an chairt sábh fiacail ina barraí.

Baile Cliste: Tomhaltas Uisce agus Leictreachais i gCúntóir Baile a Chairt

Ná tabhair aird ar an tsraith colún ar an taobh clé - is é seo iompar caighdeánach an chomhpháirt mura bhfuil aon sonraí ann. Ach ní raibh aon sonraí ann - níor chas mé ach ar bhailiú sonraí ag baint úsáide as an méadar fóntais cúpla uair an chloig ó shin díreach ar mhaithe leis an alt seo (cuirfidh mé síos ar mo chur chuige reatha beagán níos ísle).

Sa phictiúr seo, bhí mé ag iarraidh a thaispeáint go n-oibríonn an taispeáint sonraí uaireanta fiú, agus go léiríonn na barraí na luachanna cearta i ndáiríre. Ach ní hé sin go léir. Ar chúis éigin, taispeánann an colún aibhsithe don tréimhse ó 11 am go 12 rn 19 lítear, cé go bhfuil ar an ngraf toothy beagán níos airde don tréimhse chéanna ón braiteoir céanna feicimid tomhaltas de 62 lítear. Ceachtar fabht nó lámha atá cam. Ach ní thuigim fós cén fáth ar bhris na sonraí ar dheis - bhí an tomhaltas gnáth ann, atá le feiceáil freisin ón ngraf fiacaile.

Go ginearálta, theip orm inchreidteacht an chur chuige seo a bhaint amach - léiríonn an graf beagnach i gcónaí heresy de chineál éigin.

Cód cosúil leis an braiteoir lae.

      - aggregate_func: max
        entities:
          - color: var(--primary-color)
            entity: sensor.water_cold_day_um
        group_by: interval
        hours_to_show: 360
        name: "Daily water consumption aggregated by utility meter"
        points_per_hour: 0.0416666666
        show:
          graph: bar
        type: 'custom:mini-graph-card'

Tabhair faoi deara go bhfuil an paraiméadar group_by socraithe mar eatramh, agus rialaíonn an paraiméadar points_per_hour gach rud. Agus is fadhb eile é seo leis an gcomhpháirt seo - oibríonn points_per_hour go maith ar chairteacha uair an chloig nó níos lú, ach go scanrúil ar eatraimh níos mó. Mar sin chun colún amháin a fháil in aon lá amháin, bhí orm an luach 1/24=0.04166666 a chur isteach. Níl mé ag caint faoi chairteacha seachtainiúla agus míosúla.

Cur Chuige 2

Agus an cúntóir baile á fhiosrú agam fós, tháinig mé trasna ar an bhfíseán seo:


Bailíonn an comrade sonraí tomhaltais ó roinnt cineálacha de soicéid Xiaomi. Is é a tasc beagán níos simplí - a thaispeáint ach an luach tomhaltais don lá atá inniu ann, inné agus don mhí. Níl gá le cairteacha.

Fágaimis na hargóintí faoi chomhtháthú láimhe luachanna cumhachta meandracha ar leataobh - scríobh mé cheana faoi “chruinneas” an chur chuige seo thuas. Níl sé soiléir cén fáth nár úsáid sé na luachanna tomhaltais carntha, atá bailithe cheana féin ag an asraon céanna. Is é mo thuairim go n-oibreoidh comhtháthú taobh istigh den phíosa iarainn níos fearr.

Ón físeán, tabharfaimid an smaoineamh ar thomhaltas a chomhaireamh de láimh ar feadh tréimhse. Maidir le fear, ní mheastar ach na luachanna don lá atá inniu ann agus don lá inné, ach rachaimid níos faide agus déanfaimid iarracht graf a tharraingt. Is é seo a leanas croílár an mhodha atá beartaithe i mo chás.

Cruthóimid luach athraitheach_at_the_beginning_of_hour, ina scríobhfaimid na léamha cuntair reatha
De réir an lasc ama ag deireadh na huaire (nó ag tús an chéad cheann eile), ríomhaimid an difríocht idir an léamh reatha agus an ceann atá stóráilte ag tús na huaire. Is é an difríocht seo an tomhaltas don uair reatha - sábhálfaimid an luach don braiteoir, agus sa todhchaí tógfaimid graf bunaithe ar an luach seo.
Ní mór duit freisin an luach athraitheach_at_beginning_of_hour a “athshocrú” trí luach reatha an chuntar a scríobh ansin.

Is féidir é seo ar fad a dhéanamh go maith ... tríd an gcúntóir baile féin.

Beidh ort beagán níos mó cód a scríobh ná mar a bhí sa chur chuige roimhe seo. Let tús leis na "athróga". As an mbosca, níl an t-aonán “inathraithe” againn, ach is féidir leat seirbhísí bróicéir mqtt a úsáid. Seolfaimid luachanna ansin leis an bhfíor-bhratach coinneála - sábhálfaidh sé seo an luach taobh istigh den bhróicéir, agus is féidir é a tharraingt amach ag am ar bith, fiú nuair a atosófar an cúntóir baile. Rinne mé cuntair uair an chloig agus laethúil ag an am céanna.

- platform: mqtt
  state_topic: "test/water/hour"
  name: water_hour
  unit_of_measurement: l

- platform: mqtt
  state_topic: "test/water/hour_begin"
  name: water_hour_begin
  unit_of_measurement: l

- platform: mqtt
  state_topic: "test/water/day"
  name: water_day
  unit_of_measurement: l

- platform: mqtt
  state_topic: "test/water/day_begin"
  name: water_day_begin
  unit_of_measurement: l

Tarlaíonn an draíocht go léir san uathoibriú, a ritheann gach uair an chloig agus gach oíche, faoi seach.

- id: water_new_hour
  alias: water_new_hour
  initial_state: true
  trigger:
    - platform: time_pattern
      minutes: 0
  action:
    - service: mqtt.publish
      data:
        topic: "test/water/hour"
        payload_template: >
          {{ (states.sensor.water_meter_cold.state|int) - (states.sensor.water_hour_begin.state|int) }}
        retain: true
    - service: mqtt.publish
      data:
        topic: "test/water/hour_begin"
        payload_template: >
          {{ states.sensor.water_meter_cold.state }}
        retain: true

- id: water_new_day
  alias: water_new_day
  initial_state: true
  trigger:
    - platform: time
      at: "00:00:00"
  action:
    - service: mqtt.publish
      data:
        topic: "test/water/day"
        payload_template: >
          {{ (states.sensor.water_meter_cold.state|int) - (states.sensor.water_day_begin.state|int) }}
        retain: true
    - service: mqtt.publish
      data:
        topic: "test/water/day_begin"
        payload_template: >
          {{ states.sensor.water_meter_cold.state }}
        retain: true

Déanann an dá uathoibriú 2 rud:

  • Ríomh an luach in aghaidh an eatraimh mar an difríocht idir an luach tosaigh agus an luach deiridh
  • Nuashonraigh an bunluach don chéad eatramh eile

Réitítear tógáil graif sa chás seo leis an ngnáthghraf staire:

      - type: history-graph
        title: 'Hourly water consumption using vars'
        hours_to_show: 48
        entities:
          - sensor.water_hour

      - type: history-graph
        title: 'Daily water consumption using vars'
        hours_to_show: 360
        entities:
          - sensor.water_day

Tá an chuma air mar seo:

Baile Cliste: Tomhaltas Uisce agus Leictreachais i gCúntóir Baile a Chairt

I bprionsabal, is é seo an méid atá uait cheana féin. Is é an buntáiste a bhaineann leis an modh seo ná go ngintear na sonraí uair amháin in aghaidh an eatramh. Iad siúd. iomlán de 24 iontráil in aghaidh an lae don chairt in aghaidh na huaire.

Ar an drochuair, ní réitíonn sé seo fós an fhadhb ghinearálta a bhaineann le bonn atá ag fás. Más mian liom graf tomhaltas míosúil, beidh orm sonraí a stóráil ar feadh bliana ar a laghad. Agus ós rud é nach soláthraíonn an cúntóir baile ach socrú ama stórála amháin don bhunachar sonraí iomlán, ciallaíonn sé seo go gcaithfear GACH sonraí sa chóras a stóráil ar feadh bliana iomlán. Mar shampla, i mbliain ídíonn mé 200 méadar ciúbach uisce, rud a chiallaíonn 200000 iontráil sa bhunachar sonraí. Agus má chuireann tú braiteoirí eile san áireamh, ansin déantar an figiúr go ginearálta mígheanasach.

Cur Chuige 3

Go fortunately, tá an fhadhb seo réitithe ag daoine cliste cheana féin trí bhunachar sonraí InfluxDB a scríobh. Tá an bunachar sonraí seo optamaithe go speisialta chun sonraí ambhunaithe a stóráil agus tá sé oiriúnach chun luachanna braiteoirí éagsúla a stóráil. Soláthraíonn an córas teanga ceist cosúil le SQL freisin a ligeann duit luachanna a bhaint as an mbunachar sonraí agus ansin iad a chomhiomlánú ar bhealaí éagsúla. Ar deireadh, is féidir sonraí éagsúla a stóráil le haghaidh amanna éagsúla. Mar shampla, ní féidir léamha a athraíonn go minic mar theocht nó taise a stóráil ach ar feadh cúpla seachtain, agus is féidir léamha laethúla ar thomhaltas uisce a stóráil ar feadh bliana ar fad.

Chomh maith le InfluxDB, chruthaigh daoine cliste Grafana freisin, córas chun graif a tharraingt ó shonraí ó InfluxDB. Is féidir le Grafana cineálacha éagsúla cairteacha a tharraingt, iad a shaincheapadh go mion, agus, níos tábhachtaí fós, is féidir na cairteacha seo a “phlugáil” isteach sa chúntóir baile lovelace-UI.

a spreagadh anseo и anseo. Déanann na hailt cur síos go mion ar an bpróiseas chun InfluxDB agus Grafana a shuiteáil agus a nascadh le cúntóir baile. Díreoidh mé ar mo fhadhb shonrach a réiteach.

Mar sin, ar an gcéad dul síos, déanaimis tús a chur leis an gcuntar luach in influxDB. Píosa de chumraíocht cúntóir baile (sa sampla seo, beidh spraoi agam ní hamháin le fuar, ach freisin le huisce te):

influxdb:
  host: localhost
  max_retries: 3
  default_measurement: state
  database: homeassistant
  include:
    entities:
      - sensor.water_meter_hot
      - sensor.water_meter_cold

Déanaimis sábháil na sonraí céanna i mbunachar sonraí inmheánach na gcúntóirí baile a dhíchumasú, ionas nach n-ardóidh sé arís:

recorder:
  purge_keep_days: 10
  purge_interval: 1
  exclude:
    entities:
      - sensor.water_meter_hot
      - sensor.water_meter_cold

Rachaimid anois chuig consól InfluxDB agus socraigh ár mbunachar sonraí. Go háirithe, ní mór duit a chumrú cé chomh fada agus a stórálfar sonraí áirithe. Tá sé seo á rialú ag an mar a thugtar air. polasaí coinneála - tá sé seo cosúil le bunachair shonraí laistigh den phríomhbhunachar sonraí, agus tá a socruithe féin ag gach bunachar sonraí inmheánach. De réir réamhshocraithe, cuirtear na sonraí go léir leis an bpolasaí coinneála ar a dtugtar autogen, stórálfar na sonraí seo ar feadh seachtaine. Ba mhaith liom go ndéanfaí sonraí in aghaidh na huaire a stóráil ar feadh míosa, sonraí seachtainiúla ar feadh bliana, agus nach scriosfaí sonraí míosúla ar chor ar bith. Cruthóimid polasaithe coinneála cuí

CREATE RETENTION POLICY "month" ON "homeassistant" DURATION 30d REPLICATION 1
CREATE RETENTION POLICY "year" ON "homeassistant" DURATION 52w REPLICATION 1
CREATE RETENTION POLICY "infinite" ON "homeassistant" DURATION INF REPLICATION 1

Anois, i ndáiríre, is é an príomh-chleas comhiomlánú sonraí ag baint úsáide as fiosrú leanúnach. Meicníocht é seo a sheolann ceist go huathoibríoch ag eatraimh shonraithe, a chomhiomlánaíonn na sonraí don cheist seo, agus a chuireann an toradh le luach nua. Breathnaímis ar shampla (scríobhaim i gcolún ar mhaithe le hinléiteacht, ach i ndáiríre bhí orm an t-ordú seo a chur isteach ar líne amháin)

CREATE CONTINUOUS QUERY cq_water_hourly ON homeassistant 
BEGIN 
  SELECT max(value) AS value 
  INTO homeassistant.month.water_meter_hour 
  FROM homeassistant.autogen.l 
  GROUP BY time(1h), entity_id fill(previous) 
END

An t-ordú seo:

  • Cruthaíonn sé ceist leanúnach darb ainm cq_water_cold_hourly sa bhunachar sonraí cúntóirí tí
  • Déanfar an cheist gach uair an chloig (am(1h))
  • Bainfidh an cheist amach na sonraí go léir ó thomhas'a homeassistant.autogen.l (lítear), lena n-áirítear léamha d'uisce fuar agus te
  • Déanfar sonraí comhiomlánaithe a ghrúpáil de réir eintiteas_id, rud a chruthóidh luachanna ar leith d’uisce fuar agus te.
  • Ós rud é gur seicheamh monatonach méadaitheach é an cuntar lítear laistigh de gach uair an chloig, beidh ort an t-uasluach a ghlacadh, mar sin déanfar an comhiomlánú de réir na feidhme uas(luach)
  • Scríobhfar an luach nua chuig homeassistant.month.water_meter_hour áit arb é mí an t-ainm atá ar an bpolasaí coinneála le tréimhse choinneála de mhí amháin. Thairis sin, scaipfear sonraí ar uisce fuar agus te i dtaifid ar leith leis an eintiteas_id comhfhreagrach agus an luach sa réimse luacha

San oíche nó nuair nach mbíonn aon duine sa bhaile, níl aon tomhaltas uisce ann, agus dá réir sin níl aon taifid nua in homeassistant.autogen.l ach an oiread. Chun luachanna in easnamh a sheachaint i ngnáthcheisteanna, is féidir leat fill (roimhe seo) a úsáid. Cuirfidh sé seo iallach ar InfluxDB an luach uair an chloig caite a úsáid.

Ar an drochuair, tá sainiúlacht ag baint le fiosrúchán leanúnach: ní oibríonn an cleas líonta (roimhe seo) agus ní chruthaítear taifid. Thairis sin, tá sé seo de shaghas éigin fadhb dosháraithe, a pléadh le breis agus bliain. Déileálfaimid leis an bhfadhb seo níos déanaí, agus cuirfimid ceist leanúnach (roimhe seo) ann - ní chuireann sé isteach.

Déanaimis seiceáil cad a tharla (ar ndóigh, ní mór duit fanacht cúpla uair an chloig):

> select * from homeassistant.month.water_meter_hour group by entity_id
...
name: water_meter_hour
tags: entity_id=water_meter_cold
time                 value
----                 -----
...
2020-03-08T01:00:00Z 370511
2020-03-08T02:00:00Z 370513
2020-03-08T05:00:00Z 370527
2020-03-08T06:00:00Z 370605
2020-03-08T07:00:00Z 370635
2020-03-08T08:00:00Z 370699
2020-03-08T09:00:00Z 370761
2020-03-08T10:00:00Z 370767
2020-03-08T11:00:00Z 370810
2020-03-08T12:00:00Z 370818
2020-03-08T13:00:00Z 370827
2020-03-08T14:00:00Z 370849
2020-03-08T15:00:00Z 370921

Tabhair faoi deara go bhfuil na luachanna sa bhunachar sonraí stóráilte i UTC, mar sin tá difríocht idir an liosta seo ag 3 uair an chloig - na luachanna 7am san aschur InfluxDB mheaitseáil leis na luachanna 10am sna cairteacha thuas. Tabhair faoi deara freisin nach bhfuil ach taifid ar bith idir 2 agus 5 ar maidin - is é seo an ghné an-an cheist leanúnach.

Mar a fheiceann tú, is seicheamh méadaithe monotonach é an luach comhiomlán freisin, ní bhíonn ach na hiontrálacha chomh minic - uair san uair. Ach ní fadhb é seo - is féidir linn ceist eile a scríobh a bhainfidh na sonraí cearta don chairt.

SELECT difference(max(value)) 
FROM homeassistant.month.water_meter_hour 
WHERE entity_id='water_meter_cold' and time >= now() -24h 
GROUP BY time(1h), entity_id 
fill(previous)

Déanfaidh mé amach:

  • Ón mbunachar sonraí homeassistant.month.water_meter_hour, tarraingeoimid sonraí don eintiteas_id='water_meter_cold' don lá deiridh (am >= anois() -24h).
  • Mar a luaigh mé, d'fhéadfadh go mbeadh roinnt iontrálacha ar iarraidh ón seicheamh homeassistant.month.water_meter_hour. Déanfaimid na sonraí seo a athghiniúint tríd an gceist a rith le GROUP BY time(1h). An uair seo, oibreoidh fill(roimhe seo) i gceart, ag giniúint na sonraí atá in easnamh (tógfaidh an fheidhm an luach roimhe seo)
  • Is é an rud is tábhachtaí sa cheist seo ná an fheidhm difríochta, a ríomhfaidh an difríocht idir na marcanna uair an chloig. Leis féin, ní oibríonn sé agus éilíonn sé feidhm chomhiomlánaithe. Bíodh seo mar an uas() a úsáideadh roimhe seo.

Breathnaíonn an toradh forghníomhaithe mar seo

name: water_meter_hour
tags: entity_id=water_meter_cold
time                 difference
----                 ----------
...
2020-03-08T02:00:00Z 2
2020-03-08T03:00:00Z 0
2020-03-08T04:00:00Z 0
2020-03-08T05:00:00Z 14
2020-03-08T06:00:00Z 78
2020-03-08T07:00:00Z 30
2020-03-08T08:00:00Z 64
2020-03-08T09:00:00Z 62
2020-03-08T10:00:00Z 6
2020-03-08T11:00:00Z 43
2020-03-08T12:00:00Z 8
2020-03-08T13:00:00Z 9
2020-03-08T14:00:00Z 22
2020-03-08T15:00:00Z 72

Ó 2 am go 5 am (UTC) ní raibh aon tomhaltas. Mar sin féin, gheobhaidh an cheist an luach tomhaltais céanna a bhuíochas leis an líonadh (roimhe seo), agus bainfidh an fheidhm difríochta an luach seo uaidh féin agus gheobhaidh sé 0 ag an aschur, atá ag teastáil i ndáiríre.

Is é an t-aon rud atá fágtha le déanamh ná graf a thógáil. Chun seo a dhéanamh, oscail Grafana, oscail roinnt deais atá ann cheana féin (nó cruthaigh nua), cruthaigh painéal nua. Beidh socruithe na cairte mar seo a leanas.

Baile Cliste: Tomhaltas Uisce agus Leictreachais i gCúntóir Baile a Chairt

Taispeánfaidh mé sonraí uisce fuar agus uisce te ar an ngraf céanna. Tá an t-iarratas díreach mar an gcéanna agus a chuir mé síos thuas.

Socraítear paraiméadair taispeána mar seo a leanas. Maidir liom féin beidh sé ina ghraf le línte (línte), a théann i gcéimeanna (staighre). Míneofar paraiméadar an Stack thíos. Tá cúpla rogha taispeána níos mó thíos, ach níl siad chomh suimiúil.

Baile Cliste: Tomhaltas Uisce agus Leictreachais i gCúntóir Baile a Chairt

Chun an graf mar thoradh air a chur leis an gcúntóir baile, ní mór duit:

  • scoir an modh eagarthóireachta cairte. Ar chúis éigin, ní thairgtear na socruithe cearta roinnte cairte ach ó leathanach an deais
  • Cliceáil ar an triantán in aice le hainm na cairte, roghnaigh sciar ón roghchlár
  • Sa fhuinneog a osclaíonn, téigh go dtí an cluaisín leabú
  • Díthiceáil an raon ama reatha - socróimid an raon ama trí URL
  • Roghnaigh an topaic riachtanach. I mo chás tá sé éadrom
  • Cóipeáil an URL mar thoradh air chuig an gcárta socruithe lovelace-UI

      - type: iframe
        id: graf_water_hourly
        url: "http://192.168.10.200:3000/d-solo/rZARemQWk/water?orgId=1&panelId=2&from=now-2d&to=now&theme=light"

Tabhair faoi deara le do thoil go bhfuil an raon ama (an 2 lá dheireanacha) socraithe anseo, agus ní i socruithe an deais.

Breathnaíonn an chairt mar seo. Níor úsáid mé uisce te le 2 lá anuas, mar sin ní tharraingítear ach graf uisce fuar.

Baile Cliste: Tomhaltas Uisce agus Leictreachais i gCúntóir Baile a Chairt

Níl cinneadh déanta agam dom féin cén chairt is fearr liom, céimlíne nó barraí réadacha. Dá bhrí sin, ní thabharfaidh mé ach sampla de sceideal tomhaltais laethúil, ach an uair seo i barraí. Tógtar fiosrúcháin ar an mbealach céanna a thuairiscítear thuas. Is iad na roghanna taispeána ná:

Baile Cliste: Tomhaltas Uisce agus Leictreachais i gCúntóir Baile a Chairt

Breathnaíonn an chairt seo mar seo:

Baile Cliste: Tomhaltas Uisce agus Leictreachais i gCúntóir Baile a Chairt

Mar sin, faoi pharaiméadar Stack. Sa ghraf seo, tarraingítear barra uisce fuar ar bharr barra te. Freagraíonn an airde iomlán le tomhaltas iomlán uisce fuar agus te don tréimhse.

Tá gach graif a thaispeántar dinimiciúil. Is féidir leat an luch a bhogadh thar an bpointe spéise agus na sonraí agus an luach a fheiceáil ag pointe áirithe.

Ar an drochuair, ní raibh sé gan cúpla eitilt san ointment. Ar bharrachairt (murab ionann agus an graf le línte céim), níl lár an bharra i lár an lae, ach ag 00:00. Iad siúd. tarraingítear an leath clé den bharra in ionad an lae roimhe sin. Mar sin tarraingítear na cairteacha don Satharn agus don Domhnach beagán ar an taobh clé den chrios gormach. Go dtí gur thuig mé conas é a bhuachan.

Fadhb eile is ea an neamhábaltacht oibriú i gceart le tréimhsí míosúla. Is é an fírinne go bhfuil fad na huaire / lá / seachtaine socraithe, ach tá fad na míosa difriúil gach uair. Ní féidir le InfluxDB oibriú ach le hamanna comhionanna. Go dtí seo, tá mo brains leor a shocrú eatramh seasta de 30 lá. Sea, beidh an chairt ar snámh beagán i rith na bliana agus ní bheidh na barraí ag freagairt go díreach do na míonna. Ach ós rud é go bhfuil an rud seo suimiúil domsa díreach mar mhéadar taispeána, tá mé ceart go leor leis seo.

Feicim ar a laghad dhá réiteach:

  • Chun scór a fháil ar chairteacha míosúla agus teorainn leat féin chuig na cinn sheachtainiúla. Tá cuma mhaith ar 52 barra seachtainiúla in aghaidh na bliana
  • Smaoinigh ar an tomhaltas míosúil féin mar mhodh Uimh. 2, agus bain úsáid as na grafana ach amháin le haghaidh graif álainn. Is réiteach cruinn go leor é. Is féidir leat cairteacha don bhliain seo caite a fhorleagan fiú chun comparáid a dhéanamh - is féidir le grafana é sin a dhéanamh.

Conclúid

Níl a fhios agam cén fáth, ach is breá liom cairteacha den chineál seo. Léiríonn siad go bhfuil an saol faoi lán seoil agus go bhfuil gach rud ag athrú. Inné bhí go leor, inniu níl mórán, amárach beidh rud éigin eile. Tá sé fós a bheith ag obair le teaghlaigh ar an ábhar tomhaltais. Ach fiú le goil reatha, níl ach figiúr mór agus dothuigthe sa bhille ag iompú isteach i bpictiúr sách intuigthe den tomhaltas cheana féin.

In ainneoin mo ghairmréime beagnach 20 bliain mar ríomhchláraitheoir, ní raibh mé ag trasnú bunachair shonraí. Dá bhrí sin, ba chosúil gur rud abstruse agus dothuigthe é bunachar sonraí seachtrach a shuiteáil. Tá gach rud athraithe an t-alt thuas - d'éirigh sé amach go ndéantar uirlis oiriúnach a scriú i gceann cúpla cad a tharlaíonn, agus le huirlis speisialaithe, déantar an tasc a bhreacadh beagán níos éasca.

Sa teideal, luaigh mé tomhaltas leictreachais. Ar an drochuair, faoi láthair ní féidir liom graf ar bith a sholáthar. Tá méadar SDM120 amháin marbh, agus bugaí an ceann eile nuair a dhéantar rochtain air trí Modbus. Mar sin féin, ní chuireann sé seo isteach ar ábhar an ailt seo ar bhealach ar bith - tógfar na graif ar an mbealach céanna le huisce.

San Airteagal seo, thug mé na cineálacha cur chuige sin a ndearna mé iarracht mé féin. Cinnte tá roinnt bealaí eile ann chun bailiú agus léirshamhlú sonraí a eagrú nach bhfuil a fhios agam fúthu. Inis dom faoi seo sna tuairimí, beidh suim mhór agam. Beidh áthas orm cáineadh cuiditheach agus smaointe nua. Tá súil agam go gcuideoidh an t-ábhar thuas le duine éigin freisin.

Foinse: will.com

Add a comment