Home Naauao: Hoʻopili i ka wai a me ka hoʻohana ʻana i ka uila ma ke kōkua home

Home Naauao: Hoʻopili i ka wai a me ka hoʻohana ʻana i ka uila ma ke kōkua home
I kēlā me kēia manawa e loaʻa iaʻu kahi uku no ka uila a me ka wai, manaʻo wau - ua ʻai nui anei koʻu ʻohana? ʻAe, ʻae, aia kahi papahele wela a me kahi paila i loko o ka lumi ʻauʻau, akā ʻaʻole lākou e hana ma ke ʻano he poʻe ahi i nā manawa a pau. Me he mea lā e mālama mākou i ka wai (ʻoiai makemake mākou i ka pipi ʻana i loko o ka lumi ʻauʻau). He mau makahiki i hala aku nei au nā mika wai pili и uila i kahi home akamai, akā ma kēia kahi i paʻa ai nā mea. Ua hōʻea nā lima i ka nānā ʻana o ka ʻai i kēia manawa wale nō, ʻo ia ka mea e pili ana i kēia ʻatikala.

Ua hoʻololi au i ka Home Assistant ma koʻu ʻōnaehana home akamai. ʻO kekahi o nā kumu, ʻo ia wale nō ka hiki ke hoʻonohonoho i ka hōʻiliʻili ʻana i ka nui o ka ʻikepili me ka hiki ke hana maʻalahi i nā ʻano kiʻi like ʻole.

ʻAʻole hou ka ʻike i wehewehe ʻia ma kēia ʻatikala, ua wehewehe mua ʻia kēia mau mea āpau ma lalo o nā kīʻaha like ʻole ma ka Pūnaewele. Akā ʻo kēlā me kēia ʻatikala, ma ke ʻano he lula, e wehewehe i hoʻokahi ala a i ʻole kahi ʻano. Pono wau e hoʻohālikelike i kēia mau ala āpau a koho i ka mea kūpono loa iaʻu iho. ʻAʻole hāʻawi ka ʻatikala i ka ʻike piha i ka hōʻiliʻili ʻikepili, akā he ʻano hōʻuluʻulu o kaʻu hana ʻana. No laila, mahalo ʻia nā ʻōlelo hoʻohewa kūpono a me nā manaʻo no ka hoʻomaikaʻi ʻana.

Ka hoʻokumu ʻana i ka pilikia

No laila, ʻo ka pahuhopu o ka hoʻomaʻamaʻa o kēia lā, ʻo ia ka loaʻa ʻana o nā kiʻi nani o ka wai a me ka hoʻohana uila:

  • I kēlā me kēia hola no nā lā 2
  • I kēlā me kēia lā no 2 pule
  • (koho) i kēlā me kēia pule a me kēlā me kēia mahina

Aia kekahi mau pilikia ma kēia:

  • ʻAʻole maikaʻi nā ʻāpana pakuhi maʻamau. I ka maikaʻi, hiki iā ʻoe ke kūkulu i ka pakuhi laina ma nā kiko.

    Inā ʻimi maikaʻi ʻoe, hiki iā ʻoe ke loaʻa nā ʻāpana ʻaoʻao ʻekolu e hoʻonui i nā mana o ka pakuhi maʻamau. No ke kōkua home, ma ke kumu, he mea maikaʻi a nani kāleka kiʻi liʻiliʻi, akā, ua kaupalena ʻia nō hoʻi:

    • He paʻakikī ka hoʻonohonoho ʻana i nā ʻāpana o ka pakuhi pahu i nā manawa nui (ua hoʻonohonoho ʻia ka laulā o ka pā i nā hakina o hoʻokahi hola, ʻo ia hoʻi, e hoʻonohonoho ʻia nā wā lōʻihi ma mua o hoʻokahi hola i nā helu hakina)
    • ʻAʻole hiki iā ʻoe ke hoʻohui i nā mea like ʻole i ka pakuhi hoʻokahi (e laʻa, ka mahana a me ka haʻahaʻa, a i ʻole e hui pū i kahi pakuhi pahu me kahi laina)
  • ʻAʻole wale ka mea kōkua home e hoʻohana i ka ʻikepili SQLite mua loa ma ke ʻano (a ʻo wau, ka mea lima, ʻaʻole i haku i ka hoʻonohonoho ʻana o MySQL a i ʻole Postgres), ʻaʻole mālama ʻia ka ʻikepili i ke ala maikaʻi loa. No laila, no ka laʻana, me kēlā me kēia hoʻololi ʻana o kēlā me kēia ʻāpana kikohoʻe liʻiliʻi liʻiliʻi o kahi ʻāpana, ua kākau ʻia kahi json nui e pili ana i kahi kilobyte ka nui i ka waihona.
    {"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}}}

    He liʻiliʻi kaʻu mau mea ʻike (nā mea ʻike wela i kēlā me kēia lumi, ka wai a me nā mika uila), a hoʻopuka kekahi i nā ʻikepili he nui. No ka laʻana, ʻo ka mīkini uila SDM220 wale nō e hoʻopuka i kahi mau kumukūʻai i kēlā me kēia 10-15 kekona, a makemake wau e hoʻokomo i ia mau mika 8. A aia pū kekahi pūʻulu o nā ʻāpana i helu ʻia e pili ana i nā sensor ʻē aʻe. ʻO kēlā. Hiki i kēia mau waiwai āpau ke hoʻonui maʻalahi i ka waihona e 100-200 MB i kēlā me kēia lā. I loko o hoʻokahi pule, ʻaʻole e hoʻolei a huli ka ʻōnaehana, a i loko o hoʻokahi mahina e make ka flash drive (i ke ʻano o kahi hoʻonohonoho maʻamau o ke kōkua home ma ka raspberry PI), a ʻaʻole hiki ke kamaʻilio e pili ana i ka mālama ʻana i ka ʻikepili no hoʻokahi makahiki. .

  • Inā laki ʻoe, hiki i kāu mita ponoʻī ke helu i ka hoʻohana. Hiki iā ʻoe ke hoʻokaʻaʻike i ka mika i kēlā me kēia manawa a nīnau i ka manawa hea ka waiwai hoʻohana i hōʻiliʻili ʻia. Ma ke ʻano maʻamau, hāʻawi nā mika uila āpau i loaʻa kahi kikowaena kikohoʻe (RS232/RS485/Modbus/Zigbee) i kēlā manawa.

    ʻOi aku ka maikaʻi, inā hiki i ka hāmeʻa ke ana wale i kekahi mau ʻāpana hikiwawe (e laʻana, ka mana koke a i ʻole ka manawa), a i ʻole e hoʻohua i nā pulse i kēlā me kēia X watt-hola a i ʻole lita. A laila pono ʻoe e noʻonoʻo pehea a me ka mea e hoʻohui ai a me kahi e hōʻiliʻili ai i ka waiwai. Aia ka pilikia o ka nalo ʻana i ka hōʻike aʻe no kekahi kumu, a ʻo ka pololei o ka ʻōnaehana holoʻokoʻa e hāpai i nā nīnau. Hiki iā ʻoe, ʻoiaʻiʻo, ke hāʻawi i kēia mau mea a pau i kahi ʻōnaehana home akamai e like me ke kōkua home, akā ʻaʻohe mea i kāpae i ka helu e pili ana i ka helu o nā mea i hoʻokomo ʻia i loko o ka waihona, a ʻaʻole e hana nā mea koho balota ʻoi aku ma mua o hoʻokahi manawa kekona (kahi palena o ka hale hana kōkua hale).

Ke ala 1

ʻO ka mea mua, e ʻike kākou i ka mea kōkua home i hāʻawi ʻia ma waho o ka pahu. ʻO ke ana ʻana i ka hoʻohana ʻana i kekahi manawa he hana i noi nui ʻia. ʻOiaʻiʻo, ua hoʻokō ʻia i kahi manawa lōʻihi ma ke ʻano he mea kūikawā - utility_meter.

ʻO ke kumu o ka ʻāpana ʻo ia ka hoʻomaka ʻana i ka current_accumulated_value variable i loko a hoʻihoʻi hou iā ia ma hope o kahi manawa i ʻōlelo ʻia (hola / pule / mahina). ʻO ka ʻāpana ponoʻī e nānā i ka hoʻololi e hiki mai ana (ka waiwai o kekahi ʻano sensor), kau inoa i nā loli i ka waiwai ponoʻī - loaʻa wale iā ʻoe ka hopena. Ua wehewehe ʻia kēia mea ma nā laina liʻiliʻi i ka faila hoʻonohonoho

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

Eia ka sensor.water_meter_cold ka waiwai o kēia manawa o ka mika i nā lita i loaʻa iaʻu pololei mai ka hao na mqtt. Hoʻokumu ka hoʻolālā i 2 mau mea ʻike hou water_cold_hour_um a me water_cold_day_um, e hōʻiliʻili i ka heluhelu ʻana i kēlā me kēia hola a me kēlā me kēia lā, e hoʻihoʻi iā lākou i ka zero ma hope o kahi manawa. Eia ka pakuhi o ka pākahi hola no ka hapalua lā.

Home Naauao: Hoʻopili i ka wai a me ka hoʻohana ʻana i ka uila ma ke kōkua home

ʻO ka helu helu hola a me kēlā me kēia lā no lovelace-UI e like me kēia:

      - 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

ʻOiaʻiʻo, aia ma kēia algorithm ka pilikia o kēia ala. E like me kaʻu i haʻi mua ai, no kēlā me kēia waiwai e hiki mai ana (ka heluhelu mika o kēia manawa no kēlā me kēia lita e hiki mai ana), 1kb o kahi moʻolelo i hana ʻia ma ka waihona. Hoʻopuka pū ʻia kēlā me kēia mīkini hana i kahi waiwai hou, i hoʻohui pū ʻia i ke kumu. Inā makemake au e hōʻiliʻili i ka heluhelu ʻana i kēlā me kēia hola / kēlā me kēia / pule / mahina, ʻae, no kekahi mau mea hoʻāla wai, a hoʻohui pū i kahi pūʻulu mika uila, he nui kēia o ka ʻikepili. ʻAe, ʻoi aku ka pololei, ʻaʻole nui ka ʻikepili, akā ma muli o ke kākau ʻana o ka mea kōkua home i kahi pūʻulu o nā ʻike pono ʻole i ka waihona, e ulu ka nui o ka waihona ma ka lele a me nā palena. Makaʻu nō hoʻi au i ka helu ʻana i ka nui o ke kumu no nā pakuhi pule a me nā mahina.

Eia kekahi, ʻaʻole hoʻoponopono ka mīkini pono pono i ka pilikia. He hana monotonically ka hoʻonui ʻana o ka ʻāpana mika pono e hoʻihoʻi i ka 0 i kēlā me kēia hola. Pono pū mākou i kahi papa hoʻohana hoʻohana, ehia mau lita i ʻai ʻia i ka wā. ʻAʻole hiki i ka ʻāpana mōʻaukala-graph maʻamau ke hana i kēia, akā hiki ke kōkua i ka ʻāpana mini-graph-card waho iā mākou.

ʻO kēia ke code kāleka no 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'

Ma waho aʻe o nā hoʻonohonoho maʻamau e like me ka inoa sensor, ke ʻano kiʻi, ke kala (ʻaʻole wau makemake i ka ʻalani maʻamau), he mea nui e nānā i nā hoʻonohonoho 3 ma aneʻi:

  • group_by:hour - e hana ʻia ka pakuhi me nā kolamu e pili ana i ka hoʻomaka o ka hola
  • points_per_hour: 1 - hoʻokahi pā i kēlā me kēia hola
  • A ʻo ka mea nui loa, aggregate_func: max ka lawe ʻana i ka waiwai nui i loko o kēlā me kēia hola. ʻO kēia ʻāpana ka mea e hoʻohuli ai i ka pakuhi sawtooth i mau kaola.

Home Naauao: Hoʻopili i ka wai a me ka hoʻohana ʻana i ka uila ma ke kōkua home

Mai hoʻolohe i ka lālani o nā kolamu ma ka hema - ʻo ia ke ʻano maʻamau o ka ʻāpana inā ʻaʻohe ʻikepili. Akā ʻaʻohe ʻikepili - ua hoʻohuli wale wau i ka hōʻiliʻili ʻikepili me ka hoʻohana ʻana i ka mīkini pono i ʻelua mau hola i hala aku nei no ka pono o kēia ʻatikala (e wehewehe wau i kaʻu ala i kēia manawa i lalo iki).

Ma kēia kiʻi, makemake wau e hōʻike i kekahi manawa e hana ana ka hōʻike ʻikepili, a ʻike maoli nā pahu i nā waiwai kūpono. Akā ʻaʻole ʻo ia wale nō. No kekahi kumu, ʻo ke kolamu i hōʻike ʻia no ka manawa mai 11 am a 12 am e hōʻike ana i 19 lita, ʻoiai ma ka pakuhi niho i ʻoi aʻe ka kiʻekiʻe no ka manawa like mai ka sensor like mākou e ʻike ai i ka ʻai ʻana o 62 lita. ʻO ka ʻōpala a i ʻole nā ​​lima ke kekee. Akā ʻaʻole maopopo iaʻu ke kumu i haki ai ka ʻikepili ma ka ʻaoʻao ʻākau - maʻamau ka hoʻohana ʻana ma laila, ʻike ʻia hoʻi ma ka pakuhi niho.

Ma ka laulā, ʻaʻole hiki iaʻu ke hoʻokō i ka plausibility o kēia ala - ʻaneʻane e hōʻike mau ana ka pakuhi i kekahi ʻano heresy.

Kāhea like no ka mea ʻike lā.

      - 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'

E ʻoluʻolu e hoʻomaopopo ʻia ua hoʻonohonoho ʻia ka ʻāpana group_by i ka waena, a ua hoʻoponopono nā ʻāpana points_per_hour i nā mea āpau. A ʻo kēia kekahi pilikia me kēia ʻāpana - hana maikaʻi nā points_per_hour ma nā pakuhi o hoʻokahi hola a i ʻole ka liʻiliʻi, akā hoʻopailua ʻia i nā wā nui. No ka loaʻa ʻana o hoʻokahi kolamu i ka lā hoʻokahi, pono wau e hoʻokomo i ka waiwai 1/24=0.04166666. ʻAʻole wau e kamaʻilio e pili ana i nā pakuhi pule a me nā mahina.

Ke ala 2

ʻOiai e noʻonoʻo ana i ke kōkua home, ʻike wau i kēia wikiō:


E hōʻiliʻili ka hoa i ka ʻikepili hoʻohana mai kekahi mau ʻano o nā kumu Xiaomi. ʻOi aku ka maʻalahi o kāna hana - e hōʻike wale i ka waiwai o ka ʻai no kēia lā, i nehinei a me ka mahina. ʻAʻole pono nā pakuhi.

E haʻalele kākou i nā manaʻo hoʻopaʻapaʻa e pili ana i ka hoʻohui lima o nā waiwai mana koke - ua kākau mua wau e pili ana i ka "pololei" o kēia ala ma luna. ʻAʻole maopopo i ke kumu ʻaʻole ʻo ia i hoʻohana i nā waiwai hoʻohana i hōʻiliʻili ʻia, i hōʻiliʻili ʻia e ka puka like. I koʻu manaʻo, ʻoi aku ka maikaʻi o ka hoʻohui ʻana i loko o ka ʻāpana hao.

Mai ke wikiō, e lawe mākou i ka manaʻo o ka helu ʻana i ka hoʻohana ʻana no kahi manawa. No ke kanaka, e noʻonoʻo ʻia nā waiwai no kēia lā a me nehinei, akā e hele hou mākou a hoʻāʻo e kaha kiʻi. ʻO ke kumu o ke ʻano i manaʻo ʻia i koʻu hihia penei.

E hana mākou i kahi waiwai hoʻololi_at_the_beginning_of_hour, kahi e kākau ai mākou i nā heluhelu counter o kēia manawa
E like me ka manawa ma ka hopena o ka hola (a i ʻole ma ka hoʻomaka o ka mea aʻe), helu mākou i ka ʻokoʻa ma waena o ka heluhelu o kēia manawa a me ka mea i mālama ʻia i ka hoʻomaka o ka hola. ʻO kēia ʻokoʻa ka hoʻohana ʻana no ka hola o kēia manawa - e mālama mākou i ka waiwai i ka sensor, a i ka wā e hiki mai ana e kūkulu mākou i kahi pakuhi e pili ana i kēia waiwai.
Pono ʻoe e "hōʻano hou" i ka waiwai hoʻololi_at_beginning_of_hour ma ke kākau ʻana i ka waiwai o kēia manawa o ka counter ma laila.

Hiki ke hana maikaʻi ʻia kēia mau mea a pau ... ma o ke kōkua home ponoʻī.

Pono ʻoe e kākau i kahi code hou aʻe ma mua o ke ala mua. E hoʻomaka kākou me kēia mau "mea hoʻololi". Ma waho o ka pahu, ʻaʻohe o mākou "hoʻololi", akā hiki iā ʻoe ke hoʻohana i nā lawelawe a kahi mea hoʻolaha mqtt. E hoʻouna mākou i nā waiwai ma laila me ka paʻa = hae maoli - e mālama kēia i ka waiwai i loko o ka mea hoʻolimalima, a hiki ke huki ʻia i kēlā me kēia manawa, ʻoiai ke hoʻomaka hou ʻia ke kōkua home. Ua hana au i nā helu helu i kēlā me kēia lā a me kēlā me kēia lā.

- 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

Loaʻa nā mea kilokilo a pau i ka automation, e holo ana i kēlā me kēia hola a me kēlā me kēia pō.

- 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

Hana nā automation ʻelua i 2 mau mea:

  • E helu i ka waiwai no kēlā me kēia wā e like me ka ʻokoʻa ma waena o ka waiwai hoʻomaka a me ka hope
  • Hoʻohou i ka waiwai kumu no ka wā aʻe

Hoʻoholo ʻia ke kūkulu ʻana i nā kiʻi ma kēia hihia e ka mōʻaukala maʻamau-graph:

      - 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

Ua like me keia:

Home Naauao: Hoʻopili i ka wai a me ka hoʻohana ʻana i ka uila ma ke kōkua home

Ma ke kumu, ʻo kēia ka mea āu e pono ai. ʻO ka pōmaikaʻi o kēia ʻano hana ʻo ia ka hana ʻana o ka ʻikepili i hoʻokahi manawa i kēlā me kēia manawa. ʻO kēlā mau. ka huina o 24 mau helu i ka lā no ka pakuhi hola.

ʻO ka mea pōʻino, ʻaʻole i hoʻopau kēia i ka pilikia maʻamau o kahi kumu ulu. Inā makemake au i ka pakuhi hoʻohana mahina, pono wau e mālama i ka ʻikepili no hoʻokahi makahiki. A no ka hāʻawi ʻana o ke kōkua home i hoʻokahi hoʻonohonoho lōʻihi o ka mālama ʻana no ka ʻikepili holoʻokoʻa, ʻo ia ke ʻano o ka mālama ʻana i nā ʻikepili ALL i loko o ka ʻōnaehana no hoʻokahi makahiki holoʻokoʻa. No ka laʻana, i ka makahiki hoʻopau wau i 200 cubic mika o ka wai, ʻo ia hoʻi he 200000 mau helu i loko o ka waihona. A inā ʻoe e noʻonoʻo i nā sensor ʻē aʻe, a laila lilo ke kiʻi i mea ʻino.

Ke ala 3

ʻO ka mea pōmaikaʻi, ua hoʻoponopono ka poʻe akamai i kēia pilikia ma ke kākau ʻana i ka waihona InfluxDB. Hoʻonohonoho pono ʻia kēia waihona no ka mālama ʻana i ka ʻikepili e pili ana i ka manawa a kūpono hoʻi no ka mālama ʻana i nā waiwai o nā sensor like ʻole. Hāʻawi ka ʻōnaehana i kahi ʻōlelo nīnau e like me SQL e hiki ai iā ʻoe ke unuhi i nā waiwai mai ka waihona a laila hoʻohui iā lākou i nā ʻano like ʻole. ʻO ka hope, hiki ke mālama ʻia nā ʻikepili like ʻole no nā manawa like ʻole. No ka laʻana, hiki ke mālama ʻia nā heluhelu hoʻololi pinepine e like me ka mahana a i ʻole ka haʻahaʻa no nā pule ʻelua wale nō, ʻoiai hiki ke mālama ʻia ka heluhelu ʻana i kēlā me kēia lā no ka makahiki holoʻokoʻa.

Ma waho aʻe o InfluxDB, ua haku pū ka poʻe akamai iā Grafana, kahi ʻōnaehana no ke kaha kiʻi ʻana mai ka ʻikepili mai InfluxDB. Hiki iā Grafana ke kahakiʻi i nā ʻano kiʻi like ʻole, hoʻopilikino iā lākou i nā kikoʻī, a, ʻo ka mea nui loa, hiki ke "hoʻopili ʻia" kēia mau palapala i loko o ke kōkua home lovelace-UI.

e hooikaika maanei и maanei. Hōʻike kikoʻī nā ʻatikala i ke kaʻina hana o ka hoʻokomo ʻana a hoʻopili ʻana iā InfluxDB a me Grafana i ke kōkua home. E nānā au i ka hoʻoponopono ʻana i kaʻu pilikia kikoʻī.

No laila, ʻo ka mea mua, e hoʻomaka kākou e hoʻohui i ka waiwai counter influxDB. ʻO kahi ʻāpana o ka hoʻonohonoho kōkua home (ma kēia hiʻohiʻona, e leʻaleʻa wau ʻaʻole wale me ke anuanu, akā me ka wai wela pū kekahi):

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

E hoʻopau kākou i ka mālama ʻana i ka ʻikepili like i ka ʻikepili kūloko kōkua home i ʻole e hoʻonui hou ʻia:

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

E hele kāua i ka console InfluxDB a hoʻonohonoho i kā mākou waihona. ʻO ka mea kūikawā, pono ʻoe e hoʻonohonoho i ka lōʻihi o ka mālama ʻana i kekahi mau ʻikepili. Hoʻoponoponoʻia kēia e ka mea i kapaʻia. kulekele hoʻopaʻa - ua like kēia me nā ʻikepili i loko o ka waihona nui, me kēlā me kēia waihona kūloko i loaʻa i kāna mau hoʻonohonoho ponoʻī. Ma ka maʻamau, hoʻohui ʻia nā ʻikepili āpau i ke kulekele mālama i kapa ʻia ʻo autogen, e mālama ʻia kēia ʻikepili no hoʻokahi pule. Makemake au e mālama ʻia nā ʻikepili o kēlā me kēia hola no hoʻokahi mahina, nā ʻikepili o kēlā me kēia pule no ka makahiki, a ʻaʻole loa e holoi ʻia nā ʻikepili o kēlā me kēia mahina. E hana mākou i nā kulekele mālama kūpono

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

I kēia manawa, ʻoiaʻiʻo, ʻo ka hoʻopunipuni nui ka hōʻuluʻulu ʻikepili me ka hoʻohana ʻana i ka nīnau mau. He mīkini kēia e hoʻomaka ʻakomi i kahi nīnau i nā manawa kikoʻī, e hōʻuluʻulu i ka ʻikepili no kēia nīnau, a hoʻohui i ka hopena i kahi waiwai hou. E nānā kākou i kahi laʻana (Kākau wau i kahi kolamu no ka heluhelu ʻana, akā ʻoiaʻiʻo, pono wau e hoʻokomo i kēia kauoha ma kahi laina)

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

ʻO kēia kauoha:

  • Hoʻokumu i kahi nīnau hoʻomau i kapa ʻia ʻo cq_water_cold_hourly ma ka waihona homeassistant
  • E hoʻokō ʻia ka nīnau i kēlā me kēia hola (manawa(1h))
  • E huki ana ka hulina i ka ikepili a pau mai measurement'a homeassistant.autogen.l (lita), me ka heluhelu o ka wai anuanu a me ka wai wela.
  • E hui pū ʻia nā ʻikepili i hui ʻia e entity_id, e hana i nā waiwai kaʻawale no ka wai anuanu a me ka wai wela.
  • No ka mea, ʻo ka helu helu o nā lita he ʻano hoʻonui monotonically i loko o kēlā me kēia hola, pono ʻoe e lawe i ka waiwai nui, no laila e hoʻokō ʻia ka hōʻuluʻulu ʻana e ka hana max (value).
  • E kākau ʻia ka waiwai hou i homeassistant.month.water_meter_hour kahi mahina ka inoa o ke kulekele mālama ʻana me ka manawa paʻa o hoʻokahi mahina. Eia kekahi, e hoʻopuehu ʻia ka ʻikepili i ka wai anuanu a me ka wai wela i nā moʻolelo ʻokoʻa me ka entity_id e pili ana a me ka waiwai ma ke kahua waiwai.

I ka pō a ʻaʻohe kanaka ma ka home, ʻaʻohe inu wai, a no laila ʻaʻohe moʻolelo hou ma homeassistant.autogen.l kekahi. No ka pale ʻana i nā waiwai i nā nīnau maʻamau, hiki iā ʻoe ke hoʻohana i ka hoʻopiha (ma mua). E koi kēia iā InfluxDB e hoʻohana i ka waiwai o ka hola i hala.

ʻO ka mea pōʻino, he ʻano ʻokoʻa ka nīnau hoʻomau: ʻaʻole holo ka hoʻopihapiha (mua) a ʻaʻole hana ʻia nā moʻolelo. Eia kekahi, ʻo kēia kekahi ʻano pilikia insurmountable, ʻo ia ua kūkākūkā ʻia no hoʻokahi makahiki. E hana mākou i kēia pilikia ma hope, a e hoʻopiha (ma mua) i ka nīnau hoʻomau ma laila - ʻaʻole ia e hoʻopilikia.

E nānā kāua i ka mea i hana (ʻoiaʻiʻo, pono ʻoe e kali i ʻelua mau hola):

> 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

E hoʻomanaʻo e mālama ʻia nā waiwai i loko o ka waihona ma UTC, no laila ʻokoʻa kēia papa inoa i nā hola 3 - ʻo nā koina 7am ma ka InfluxDB output e kūlike me nā waiwai 10am ma nā pakuhi ma luna. E hoʻomaopopo pū ma waena o 2 a me 5 i ke kakahiaka ʻaʻohe moʻolelo - ʻo ia ka hiʻohiʻona o ka nīnau mau.

E like me kāu e ʻike ai, ʻo ka waiwai i hui pū ʻia he ʻano hoʻonui monotonically, ʻoi aku ka liʻiliʻi o nā helu - hoʻokahi manawa i ka hola. Akā ʻaʻole kēia he pilikia - hiki iā mākou ke kākau i kahi nīnau hou e unuhi i ka ʻikepili kūpono no ka pakuhi.

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)

E wehewehe au:

  • Mai ka homeassistant.month.water_meter_hour database, e huki mākou i ka ʻikepili no entity_id='water_meter_cold' no ka lā hope (manawa >= i kēia manawa() -24h).
  • E like me kaʻu i ʻōlelo ai, nalo paha kekahi mau helu mai ka homeassistant.month.water_meter_hour sequence. E hana hou mākou i kēia ʻikepili ma ka holo ʻana i ka nīnau me GROUP BY manawa (1h). I kēia manawa, hoʻopiha (ma mua) e hana pono, e hana i ka ʻikepili i nalowale (e lawe ka hana i ka waiwai mua)
  • ʻO ka mea nui ma kēia nīnau ʻo ia ka hana ʻokoʻa, kahi e helu ai i ka ʻokoʻa ma waena o nā māka hola. ʻO ia iho, ʻaʻole ia e hana a koi i kahi hana aggregation. ʻO kēia ka max () i hoʻohana mua ʻia.

Penei ka hopena o ka hoʻokō

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

Mai ka hola 2 am a 5 am (UTC) ʻaʻohe ʻai. Eia nō naʻe, e hoʻihoʻi ka nīnau i ka waiwai hoʻohana like me ka hoʻopiha (ma mua), a ʻo ka hana ʻokoʻa e unuhi i kēia waiwai mai ia iho a loaʻa iā 0 i ka hopena, i koi maoli ʻia.

ʻO ka hana wale nō i koe, ʻo ke kūkulu ʻana i ka pakuhi. No ka hana ʻana i kēia, wehe iā Grafana, wehe i kahi papa kuhikuhi (a i ʻole hana hou), hana i kahi panel hou. Penei nā hoʻonohonoho pakuhi.

Home Naauao: Hoʻopili i ka wai a me ka hoʻohana ʻana i ka uila ma ke kōkua home

E hōʻike wau i ka ʻikepili wai anuanu a me ka wai wela ma ka pakuhi like. Ua like loa ka noi me ka'u i hoike ai maluna.

Hoʻonohonoho ʻia nā ʻāpana hōʻike penei. Noʻu, he pakuhi ia me nā laina (laina), e hele ana ma nā ʻanuʻu (nā alapiʻi). E wehewehe ʻia ka ʻāpana Stack ma lalo nei. Aia kekahi mau koho hōʻike ma lalo nei, akā ʻaʻole hoihoi loa.

Home Naauao: Hoʻopili i ka wai a me ka hoʻohana ʻana i ka uila ma ke kōkua home

No ka hoʻohui ʻana i ka pakuhi hopena i ke kōkua home, pono ʻoe:

  • e haʻalele i ke ʻano hoʻoponopono pakuhi. No kekahi kumu, hāʻawi ʻia nā hoʻonohonoho kaʻana kaʻana palapala pololei mai ka ʻaoʻao dashboard
  • Kaomi ma ka huinakolu ma ka ʻaoʻao o ka inoa pakuhi, koho i kaʻana like mai ka papa kuhikuhi
  • Ma ka puka aniani e wehe ai, e hele i ka ʻaoʻao embed
  • Wehe i ka manawa o kēia manawa - e hoʻonoho mākou i ka manawa ma o URL
  • E koho i ke kumuhana makemake. I koʻu hihia he māmā
  • E kope i ka URL o ka hopena i ke kāleka hoʻonohonoho 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"

E ʻoluʻolu, ua hoʻonohonoho ʻia ka pae manawa (ʻo 2 mau lā i hala) ma ʻaneʻi, ʻaʻole ma nā hoʻonohonoho dashboard.

Penei ke ano o ka pakuhi. ʻAʻole au i hoʻohana i ka wai wela i nā lā 2 i hala iho nei, no laila ua huki ʻia kahi pakuhi o ka wai anuanu.

Home Naauao: Hoʻopili i ka wai a me ka hoʻohana ʻana i ka uila ma ke kōkua home

ʻAʻole au i hoʻoholo noʻu iho i ka pakuhi aʻu i makemake maikaʻi ai, kahi laina ʻanuʻu, a i ʻole nā ​​pahu maoli. No laila, e hāʻawi wale wau i kahi laʻana o ka papa hana ʻai i kēlā me kēia lā, i kēia manawa wale nō i nā kaola. Hana ʻia nā nīnau e like me ka mea i wehewehe ʻia ma luna. ʻO nā koho hōʻike:

Home Naauao: Hoʻopili i ka wai a me ka hoʻohana ʻana i ka uila ma ke kōkua home

Penei ke ano o keia pakuhi:

Home Naauao: Hoʻopili i ka wai a me ka hoʻohana ʻana i ka uila ma ke kōkua home

No laila, e pili ana i ka palena Stack. Ma kēia pakuhi, kaha ʻia kahi pā wai anuanu ma luna o kahi pā wela. ʻO ka huina kiʻekiʻe e like me ka nui o ka hoʻohana ʻana i ka wai anuanu a me ka wai wela no ka manawa.

ʻO nā kiʻi āpau i hōʻike ʻia he dynamic. Hiki iā ʻoe ke hoʻoneʻe i ka ʻiole ma luna o ka wahi hoihoi a ʻike i nā kikoʻī a me ka waiwai ma kahi kikoʻī.

ʻO ka mea pōʻino, ʻaʻole i nele kekahi mau lele i ka ʻaila. Ma ka pakuhi pahu (ʻaʻole like me ka pakuhi me nā laina pae), ʻaʻole i waena o ka lā ka waena o ka lā, akā ma 00:00. ʻO kēlā mau. huki ʻia ka hapa hema o ka pā ma kahi o ka lā ma mua. No laila, huki ʻia nā kiʻi no ka Pōʻaono a me ka Lāpule ma ka hema o ka ʻāpana polū. A hiki i koʻu noʻonoʻo ʻana pehea e lanakila ai.

ʻO kekahi pilikia ʻo ka hiki ʻole ke hana pololei me nā manawa mahina. ʻO ka ʻoiaʻiʻo, ua paʻa ka lōʻihi o ka hola / lā / pule, akā ʻokoʻa ka lōʻihi o ka mahina i kēlā me kēia manawa. Hiki i ka InfluxDB ke hana me nā wā like. I kēia manawa, ua lawa koʻu lolo e hoʻonohonoho i kahi manawa paʻa o 30 mau lā. ʻAe, e lana liʻiliʻi ka pakuhi i ka makahiki a ʻaʻole kūpono nā kaola i nā mahina. Akā, no ka mea hoihoi kēia mea iaʻu ma ke ʻano he mika hōʻikeʻike, ua maikaʻi wau i kēia.

ʻIke au i ʻelua mau mea hoʻonā:

  • No ka helu ʻana i nā pakuhi mahina a hoʻopaʻa iā ʻoe iho i kēlā me kēia pule. He 52 mau pahu pule i ka makahiki e nānā maikaʻi loa
  • E noʻonoʻo i ka hoʻohana ʻana i kēlā me kēia mahina e like me ke ʻano No. 2, a hoʻohana i ka grafana no nā kiʻi nani wale nō. He hoʻonā pololei pololei. Hiki iā ʻoe ke uhi i nā pakuhi no ka makahiki i hala no ka hoʻohālikelike - hiki iā grafana ke hana i kēlā.

hopena

ʻAʻole maopopo iaʻu ke kumu, akā makemake wau i kēia mau ʻano palapala. Hōʻike lākou i ke ola holoʻokoʻa a ke loli nei nā mea a pau. Inehinei he nui, i keia la he uuku, apopo he mea e. Ke waiho nei ka hana me nā ʻohana ma ke kumuhana o ka ʻai. Akā ʻoiai me nā makemake o kēia manawa, ʻo kahi kiʻi nui a hiki ʻole ke hoʻomaopopo ʻia i loko o ka bila ke huli nei i kahi kiʻi hiki ke hoʻomaopopo ʻia o ka ʻai.

ʻOiai ʻo kaʻu ʻoihana he 20 mau makahiki ma ke ʻano he polokalamu, ʻaʻole wau i hui pū me nā ʻikepili. No laila, ʻo ka hoʻokomo ʻana i kahi waihona waho me he mea lā he abstruse a hiki ʻole ke hoʻomaopopo ʻia. Ua loli nā mea a pau ka ʻatikala ma luna - ua ʻike ʻia ua hana ʻia ka wili ʻana i kahi hāmeʻa kūpono i nā kaomi ʻelua, a me kahi mea hana kūikawā, e maʻalahi ka hana o ka hoʻolālā ʻana.

Ma ke poʻo inoa, ua haʻi wau i ka hoʻohana uila. ʻO ka mea pōʻino, i kēia manawa ʻaʻole hiki iaʻu ke hāʻawi i kekahi pakuhi. Ua make kekahi mika SDM120, a he kaa kekahi i ke komo ʻana ma Modbus. Eia naʻe, ʻaʻole pili kēia i ke kumuhana o kēia ʻatikala ma kekahi ʻano - e kūkulu ʻia nā kiʻi ma ke ʻano like me ka wai.

Ma kēia ʻatikala, ua hāʻawi wau i kēlā mau ala aʻu i hoʻāʻo ai iaʻu iho. ʻOiaʻiʻo, aia kekahi mau ala ʻē aʻe e hoʻonohonoho ai i ka hōʻiliʻili a me ka ʻike ʻana i nā ʻikepili aʻu i ʻike ʻole ai. E haʻi mai iaʻu e pili ana iā ia ma nā ʻōlelo, e hoihoi nui wau. E hauʻoli wau i ka hoʻohewa ʻana a me nā manaʻo hou. Manaʻo wau e kōkua pū ka mea i luna i kekahi.

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka