Smart Home: Fanombanana ny fanjifana rano sy jiro amin'ny mpanampy an-trano

Smart Home: Fanombanana ny fanjifana rano sy jiro amin'ny mpanampy an-trano
Isaky ny mahazo vola amin'ny jiro sy rano aho dia manontany tena - tena mandany be tokoa ve ny fianakaviako? Eny, eny, misy gorodona mafana sy boiler ao amin'ny efitra fandroana, saingy tsy miasa toy ny mpamono afo foana izy ireo. Toa mitsitsy rano ihany koa izahay (na dia tia mitsimoka ao amin'ny efitra fandroana aza). Taona vitsy lasa izay dia efa metatra rano mifandray и herinaratra ho any amin'ny trano manan-tsaina, fa eto no nihitsoka. Ny tanana dia tonga amin'ny famakafakana ny fanjifana amin'izao fotoana izao, izay, raha ny marina, no resahin'ity lahatsoratra ity.

Vao haingana aho no nifindra tany amin'ny Home Assistant ho rafi-trano marani-tsaina. Ny iray amin'ireo antony dia ny fahaizana mandamina ny fanangonana angon-drakitra be dia be miaraka amin'ny mety hisian'ny fananganana karazana grafika isan-karazany.

Ny fampahalalana voalaza ato amin'ity lahatsoratra ity dia tsy vaovao, ireo zavatra rehetra ireo amin'ny saosy samihafa dia efa nofaritana tao amin'ny Internet. Saingy ny lahatsoratra tsirairay, amin'ny ankapobeny, dia mamaritra fomba iray na lafiny iray ihany. Tsy maintsy nampitaha ireo fomba fiasa rehetra ireo aho ary nifidy ny tena mety indrindra. Mbola tsy manome fampahalalana feno momba ny fanangonana angon-drakitra ilay lahatsoratra, fa karazana famintinana ny fomba nanaovako izany. Koa dia raisina an-tanan-droa ny fanakianana sy ny soso-kevitra ho fanatsarana.

Fanambarana olana

Noho izany, ny tanjona amin'ny fanazaran-tena anio dia ny hahazoana sary tsara tarehy momba ny fanjifana rano sy herinaratra:

  • Isan'ora mandritra ny 2 andro
  • Isan'andro mandritra ny 2 herinandro
  • (tsy voatery) isan-kerinandro sy isam-bolana

Misy fahasarotana amin'izany:

  • Ny singa ao amin'ny tabilao manara-penitra dia matetika ratsy. Amin'ny tsara indrindra dia azonao atao ny manangana tabilao tsipika amin'ny teboka.

    Raha mikaroka tsara ianao dia afaka mahita singa avy amin'ny antoko fahatelo izay manitatra ny fahafahan'ny tabilao mahazatra. Ho an'ny mpanampy an-trano, amin'ny ankapobeny, singa tsara sy tsara tarehy karatra mini-graph, fa somary voafetra ihany koa:

    • Sarotra ny mametraka ny mari-pamantarana amin'ny tabilao bar amin'ny elanelana lehibe (ny sakan'ny bar dia apetraka amin'ny ampahany amin'ny adiny iray, izay midika fa ny elanelana mihoatra ny adiny iray dia apetraka amin'ny isa fractional)
    • Tsy afaka manampy singa samihafa amin'ny kisary iray ianao (ohatra, ny mari-pana sy ny hamandoana, na mampifangaro ny kisary bara miaraka amin'ny tsipika)
  • Tsy ny mpanampy an-trano ihany no mampiasa ny angon-drakitra SQLite primitive indrindra amin'ny alàlan'ny default (ary izaho, ilay handyman, dia tsy nahafehy ny fametrahana MySQL na Postgres), ny angon-drakitra dia tsy voatahiry amin'ny fomba tsara indrindra. Noho izany, ohatra, isaky ny miova ny tsirairay na dia ny mari-pamantarana nomerika kely indrindra amin'ny paramètre, dia misy json lehibe iray eo amin'ny kilobyte ny haben'ny voasoratra ao amin'ny angon-drakitra.
    {"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}}}

    Manana sensor vitsivitsy aho (famantarana ny mari-pana isaky ny efitrano, metatra rano sy herinaratra), ary ny sasany koa dia miteraka angona betsaka. Ohatra, ny metatra herinaratra SDM220 ihany no mamokatra sanda am-polony isaky ny 10-15 segondra, ary te-hametraka metatra toy izany aho 8. Ary misy koa ny masontsivana maromaro izay kajy mifototra amin'ny sensor hafa. Izany. Ireo soatoavina rehetra ireo dia afaka mampiakatra mora foana ny angon-drakitra amin'ny 100-200 MB isan'andro. Ao anatin'ny herinandro dia zara raha mihodinkodina sy mihodina ny rafitra, ary ao anatin'ny iray volana dia ho faty ny flash drive (raha ny fametrahana mpanampy an-trano mahazatra amin'ny Raspberry PI), ary tsy misy fanontaniana momba ny fitahirizana angon-drakitra mandritra ny herintaona.

  • Raha tsara vintana ianao, ny metatra anao dia afaka manisa ny fanjifana. Afaka mifandray amin'ny metatra ianao amin'ny fotoana rehetra ary manontany hoe rahoviana ny sandan'ny fanjifana voaangona. Amin'ny maha-fitsipika, manome fahafahana toy izany ny metatra herinaratra rehetra manana fifandraisana nomerika (RS232/RS485/Modbus/Zigbee).

    Ny ratsy kokoa, raha afaka mandrefy mari-pamantarana eo no ho eo fotsiny ilay fitaovana (ohatra, hery avy hatrany na ankehitriny), na mamokatra pulses isaky ny X watt-ora na litatra. Avy eo dia mila mieritreritra ny fomba sy ny fomba hampidirana azy sy ny toerana hanangonana sanda. Atahorana ny tsy hita ny tatitra manaraka na inona na inona antony, ary ny fahamarinan'ny rafitra amin'ny ankapobeny dia miteraka fanontaniana. Azonao atao, mazava ho azy, ny manankina izany rehetra izany amin'ny rafitra an-trano manan-tsaina toy ny mpanampy an-trano, saingy tsy nisy nanafoana ny teboka momba ny isan'ny fidirana ao amin'ny angon-drakitra, ary tsy mandeha ny sensor fandatsaham-bato mihoatra ny indray mandeha isan-tsegondra (famerana ny trano mpanampy trano).

Fomba 1

Voalohany, andeha hojerentsika hoe inona ny mpanampy an-trano omena avy ao anaty boaty. Ny fandrefesana ny fanjifana mandritra ny fe-potoana iray dia asa tena angatahina. Mazava ho azy fa efa ela no nampiharina toy ny singa manokana - utility_meter.

Ny maha-zava-dehibe ny singa dia ny manomboka ny variable current_accumulated_value ao anatiny ary mamerina izany aorian'ny fe-potoana voafaritra (ora / herinandro / volana). Ny singa dia manara-maso ny fari-pivoarana miditra (ny sandan'ny karazana sensor), dia misoratra anarana amin'ny fiovan'ny sandany - ianao vao mahazo ny vokatra vita. Ity zavatra ity dia voafaritra amin'ny andalana vitsivitsy fotsiny ao amin'ny rakitra fanamafisana

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

Eto sensor.water_meter_cold dia ny sandan'ny metatra amin'ny litatra ankehitriny azoko mivantana avy amin'ny vy avy mqtt. Ny famolavolana dia mamorona sensor 2 vaovao water_cold_hour_um sy water_cold_day_um, izay manangona ny famakiana isan'ora sy isan'andro, mamerina azy ireo ho zero aorian'ny fe-potoana iray. Ity misy tabilao momba ny bateria isan'ora mandritra ny antsasaky ny andro.

Smart Home: Fanombanana ny fanjifana rano sy jiro amin'ny mpanampy an-trano

Toy izao ny kaody tabilao isan'ora sy isan'andro ho an'ny lovelace-UI:

      - 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

Raha ny marina, amin'ity algorithm ity dia misy ny olana amin'ity fomba ity. Araka ny efa nolazaiko, ho an'ny sanda miditra tsirairay (ny famakiana metatra amin'izao fotoana izao ho an'ny litatra manaraka), 1kb amin'ny rakitra dia avoaka ao amin'ny tahiry. Mamokatra sanda vaovao ihany koa ny metatra fampiasa tsirairay, izay ampiana ihany koa ny fototra. Raha te-hanangona ny famakiana isan'ora/isan'andro/isan-kerinandro/isam-bolana aho, eny, ho an'ny fiakaran'ny rano maromaro, ary ampiana metatra elektrônika iray aza, dia ho angon-drakitra be dia be izany. Eny ary, ny marimarina kokoa, tsy misy angon-drakitra be dia be, fa satria ny mpanampy an-trano dia manoratra andiana fampahalalana tsy ilaina amin'ny angon-drakitra, dia hitombo tsikelikely ny haben'ny angona. Matahotra mihitsy aza ny manombatombana ny haben'ny fototra ho an'ny tabilao isan-kerinandro sy isam-bolana.

Fanampin'izany, tsy mamaha ny olana mihitsy ny metatra fampiasa. Ny teti-pivoaran'ny metatra utilitaire dia fiasa mitombo tsy misy dikany izay miverina amin'ny 0 isan'ora. Mila fandaharam-potoana fanjifana mora ampiasaina ihany koa isika, firy litatra nohanina nandritra ny fotoana. Tsy manao an'izany ny singa ara-tantara mahazatra, fa afaka manampy antsika ny singa kely-grafika kely ivelany.

Ity ny kaody karatra ho an'ny 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'

Ho fanampin'ny toe-javatra mahazatra toy ny anaran'ny sensor, ny karazana grafika, ny loko (tsy tiako ny voasary mahazatra), zava-dehibe ny manamarika fa misy 3 eto:

  • group_by:hour - ny tabilao dia hatsangana miaraka amin'ny tsanganana mifanaraka amin'ny fiandohan'ny ora
  • points_per_hour: 1 - bar iray isan'ora
  • Ary ny tena zava-dehibe, aggregate_func: max dia ny maka ny sanda ambony indrindra ao anatin'ny adiny iray. Io paramètre io no mamadika ny tabilao sawtooth ho bara.

Smart Home: Fanombanana ny fanjifana rano sy jiro amin'ny mpanampy an-trano

Aza mihaino ny andalana ny tsanganana eo amin'ny ankavia - izany no fitsipika fitondran-tena ny singa raha tsy misy angona. Saingy tsy nisy angon-drakitra - navelako fotsiny ny fanangonana angon-drakitra tamin'ny alàlan'ny metatra utilitaire ora roa lasa izay noho ity lahatsoratra ity fotsiny (holazaiko ambany kely ny fomba fiasako ankehitriny).

Amin'ity sary ity dia tiako ny hampiseho fa indraindray ny fampisehoana angon-drakitra dia miasa, ary ny bara dia tena maneho ny soatoavina marina. Tsy izay ihany anefa. Noho ny antony sasany, ny tsanganana nasongadina nandritra ny vanim-potoana manomboka amin'ny 11 maraina ka hatramin'ny 12 maraina dia mampiseho 19 litatra, na dia eo amin'ny tabilao misy nify dia avo kokoa noho ny vanim-potoana mitovy amin'ny sensor iray ihany isika dia mahita fanjifana 62 litatra. Na bibikely na tanana miolakolaka. Saingy mbola tsy azoko hoe maninona no tapaka ny angon-drakitra eo ankavanana - ny fanjifana tao dia ara-dalàna, izay hita amin'ny tabilaon'ny nify ihany koa.

Amin'ny ankapobeny, tsy nahavita ny fahamarinan'ity fomba fiasa ity aho - ny grafika dia saika mampiseho karazana fivadiham-pinoana.

Kaody mitovy amin'ny sensor antoandro.

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

Mariho fa ny paramètre group_by dia napetraka amin'ny elanelana, ary ny mari-pamantarana points_per_hour no mifehy ny zava-drehetra. Ary ity dia olana iray hafa amin'ity singa ity - ny points_per_hour dia miasa tsara amin'ny tabilao adiny iray na latsaka, fa maharikoriko amin'ny elanelana lehibe kokoa. Ka mba hahazoana tsanganana iray ao anatin'ny iray andro dia tsy maintsy nampiditra ny sanda 1/24=0.04166666 aho. Tsy miresaka tabilao isan-kerinandro sy isam-bolana aho.

Fomba 2

Raha mbola nikaroka ny mpanampy an-trano aho dia nahita ity horonantsary ity:


Ny mpiara-miasa dia manangona angon-drakitra momba ny fanjifana avy amin'ny karazana socket Xiaomi. Tsotra kokoa ny asany - asehoy fotsiny ny sandan'ny fanjifana ho an'ny anio, omaly ary ho an'ny volana. Tsy mila tabilao.

Andao avelantsika ny tohan-kevitra momba ny fampidirana manual ny soatoavin'ny hery eo noho eo - Efa nanoratra momba ny "fahamarinan'ny" an'ity fomba ity etsy ambony aho. Tsy fantatra mazava ny antony tsy nampiasany ny sandan'ny fanjifana voaangona, izay efa angonin'ny toeram-pivarotana iray ihany. Raha ny hevitro dia hiasa tsara kokoa ny fampidirana ao anaty vy.

Avy amin'ny horonan-tsary dia haka ny hevitra momba ny fanisana ny fanjifana amin'ny tanana mandritra ny fe-potoana iray. Ho an'ny lehilahy, ny soatoavina ho an'ny anio sy ny omaly ihany no dinihina, fa handeha lavidavitra kokoa isika ary hanandrana hanao sary. Toy izao manaraka izao ny votoatin'ny fomba atolotra ahy.

Hamorona sanda miovaova_amin'ny_fiandohan'ny_ora izahay, izay hanoratanay ny vakiteny mifanandrify amin'izao fotoana izao.
Araka ny fameram-potoana amin'ny faran'ny ora (na amin'ny fiandohan'ny manaraka), dia manao kajy ny fahasamihafana misy eo amin'ny vakiteny ankehitriny sy ilay voatahiry amin'ny fiandohan'ny ora. Io fahasamihafana io dia ny fanjifana amin'ny ora amin'izao fotoana izao - hamonjy ny sanda amin'ny sensor isika, ary amin'ny ho avy dia hanangana grafika mifototra amin'io sanda io.
Ilainao koa ny "hamerenana" ny sanda miovaova_amin'ny_fanombohana_ora amin'ny fanoratana ny sandan'ny kaontera ankehitriny.

Izany rehetra izany dia azo atao amin'ny alàlan'ny ... amin'ny alàlan'ny mpanampy an-trano mihitsy.

Tsy maintsy manoratra fehezan-dalàna kely kokoa noho ny tamin'ny fomba teo aloha ianao. Andeha isika hanomboka amin'ireo "variables". Eo ivelan'ny boaty, tsy manana ny "variable" izahay, fa afaka mampiasa ny serivisy broker mqtt ianao. Handefa soatoavina any izahay miaraka amin'ny sainam-pirenena = tena saina - izany dia hamonjy ny sanda ao anatin'ny broker, ary azo esorina amin'ny fotoana rehetra izany, na dia averina indray ny mpanampy an-trano. Nanao kaontera isan'ora sy isan'andro aho indray mandeha.

- 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

Ny ody rehetra dia mitranga amin'ny automation, izay mandeha isan'ora sy isan'alina.

- 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

Samy manao zavatra 2 ny automation roa:

  • Kajy ny sanda isaky ny elanelam-potoana toy ny fahasamihafan'ny sanda fanombohana sy fiafarana
  • Havaozy ny sanda fototra ho an'ny elanelam-potoana manaraka

Ny fananganana ny grafika amin'ity tranga ity dia voavaha amin'ny alàlan'ny grafika tantara mahazatra:

      - 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

Toy izao izany:

Smart Home: Fanombanana ny fanjifana rano sy jiro amin'ny mpanampy an-trano

Amin'ny ankapobeny, ity dia efa ilainao. Ny tombony amin'ity fomba ity dia ny famoahana ny angona indray mandeha isaky ny elanelam-potoana. Ireo. fitambaran'ny fidirana 24 isan'andro ho an'ny tabilao isan'ora.

Indrisy anefa fa mbola tsy mahavaha ny olana ankapoben'ny fototra mitombo izany. Raha mila tabilao fanjifana isam-bolana aho dia tsy maintsy mitahiry angona mandritra ny herintaona farafahakeliny. Ary satria ny mpanampy an-trano dia tsy manome afa-tsy fitehirizana maharitra iray ho an'ny tahiry manontolo, midika izany fa ny angona REHETRA ao amin'ny rafitra dia tsy maintsy tehirizina mandritra ny taona iray manontolo. Ohatra, ao anatin'ny taona iray dia mandany rano 200 metatra toratelo aho, izay midika hoe fidirana 200000 ao amin'ny tahiry. Ary raha raisinao ny sensor hafa, dia lasa tsy mendrika ny tarehimarika.

Fomba 3

Soa ihany fa efa namaha ity olana ity ny olona hendry tamin'ny fanoratana ny angon-drakitra InfluxDB. Ity angon-drakitra ity dia namboarina manokana amin'ny fitahirizana angon-drakitra mifototra amin'ny fotoana ary mety tsara amin'ny fitahirizana ny sandan'ny sensor samihafa. Ny rafitra ihany koa dia manome fiteny query mitovy amin'ny SQL izay ahafahanao maka ny soatoavina ao amin'ny angon-drakitra ary avy eo manangona azy ireo amin'ny fomba isan-karazany. Farany, azo tehirizina mandritra ny fotoana samihafa ny angon-drakitra samihafa. Ohatra, ny famakian-teny miova matetika toy ny mari-pana na ny hamandoana dia azo tehirizina mandritra ny herinandro roa monja, fa ny famakiana isan'andro momba ny fanjifana rano dia azo tehirizina mandritra ny taona iray manontolo.

Ho fanampin'ny InfluxDB, namorona Grafana ihany koa ny olona hendry, rafitra iray hanaovana sary avy amin'ny angona avy amin'ny InfluxDB. Grafana dia afaka manao karazana tabilao isan-karazany, manamboatra azy ireo amin'ny antsipiriany, ary, ny tena zava-dehibe, ireo tabilao ireo dia azo "ampidirina" amin'ny mpanampy an-trano lovelace-UI.

ho aingam-panahy eto и eto. Ny lahatsoratra dia mamaritra amin'ny antsipiriany ny fizotran'ny fametrahana sy fampifandraisana ny InfluxDB sy Grafana amin'ny mpanampy an-trano. Hifantoka amin'ny famahana ny olako manokana aho.

Noho izany, voalohany indrindra, andeha isika hanomboka hampiditra ny sandan'ny counter influxDB. Ampahany amin'ny fanamafisana mpanampy an-trano (amin'ity ohatra ity, tsy amin'ny hatsiaka ihany, fa amin'ny rano mafana ihany koa):

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

Andeha hofoanana ny fitahirizana angon-drakitra mitovy amin'ny angon-drakitra anatiny mpanampy an-trano, mba tsy hampiakatra azy indray:

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

Andeha isika izao mankany amin'ny console InfluxDB ary amboary ny angonay. Indrindra indrindra, mila manitsy ny halavan'ny data sasany ianao. Izany dia fehezin'ny antsoina hoe. politikan'ny fitazonana - mitovy amin'ny angon-drakitra ao anatin'ny angon-drakitra lehibe izany, miaraka amin'ny angon-drakitra anatiny tsirairay dia manana ny fandrindrany manokana. Amin'ny alàlan'ny default, ampidirina amin'ny politikan'ny fitazonana antsoina hoe autogen ny angona rehetra, hotehirizina mandritra ny herinandro ity angona ity. Tiako ho voatahiry mandritra ny iray volana ny angona isan'ora, ny angona isan-kerinandro mandritra ny herintaona, ary ny angona isam-bolana mba tsy ho voafafa mihitsy. Hamorona politika fitazonana sahaza izahay

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

Ankehitriny, raha ny marina, ny fitaka lehibe dia ny fanangonana angon-drakitra mampiasa fangatahana mitohy. Ity dia rafitra iray izay mametraka fanontaniana mandeha ho azy amin'ny elanelam-potoana voafaritra, manangona ny angona ho an'ity fangatahana ity, ary manampy ny valiny amin'ny sanda vaovao. Andeha hojerentsika ohatra iray (manoratra amin'ny tsanganana aho mba ho mora vakina, fa raha ny marina dia tsy maintsy nampiditra an'io baiko io tamin'ny andalana iray aho)

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

Ity baiko ity:

  • Mamorona fanontaniana mitohy antsoina hoe cq_water_cold_hourly ao amin'ny tahiry homeassistant
  • Ny fangatahana dia hotanterahina isan'ora (ora(1h))
  • Ny fangatahana dia hanala ny angona rehetra avy amin'ny measurement'a homeassistant.autogen.l (litatra), ao anatin'izany ny famakiana rano mangatsiaka sy mafana
  • Ny angon-drakitra mitambatra dia hovondrona amin'ny entity_id, izay hamorona sanda misaraka ho an'ny rano mangatsiaka sy mafana.
  • Satria ny kaontin'ny litatra dia filaharana tsy mitsaha-mitombo ao anatin'ny adiny iray, dia mila maka ny sanda ambony indrindra ianao, noho izany dia ho tanterahin'ny asa max(value) ny fanangonana.
  • Ny sanda vaovao dia hosoratana amin'ny homeassistant.month.water_meter_hour izay volana no anaran'ny politika fitazonana misy fe-potoana fitazonana iray volana. Ankoatr'izay, ny angon-drakitra momba ny rano mangatsiaka sy mafana dia hiparitaka any amin'ny firaketana misaraka miaraka amin'ny entity_id mifanaraka amin'izany sy ny sanda ao amin'ny saha sanda.

Amin'ny alina na rehefa tsy misy olona ao an-trano dia tsy misy fanjifana rano, ary araka izany dia tsy misy firaketana vaovao ao amin'ny homeassistant.autogen.l koa. Mba hialana amin'ny soatoavina tsy hita amin'ny fanontaniana mahazatra, azonao atao ny mampiasa famenoana (teo aloha). Hanery ny InfluxDB hampiasa ny sandan'ny ora lasa izany.

Indrisy anefa fa manana ny maha-izy azy ny fangatahana mitohy: tsy mandeha ny fika feno (teo aloha) ary tsy noforonina tsotra izao ny firaketana. Ankoatra izany, ity dia karazana olana tsy azo resena, izay noresahina nandritra ny herintaona mahery. Hiatrika ity olana ity isika any aoriana, ary avelao ho feno (teo aloha) ny fanontaniana mitohy - tsy manelingelina izany.

Andeha hojerentsika ny zava-nitranga (mazava ho azy fa mila miandry adiny roa ianao):

> 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

Mariho fa ny soatoavina ao amin'ny angon-drakitra dia voatahiry ao amin'ny UTC, noho izany dia tsy mitovy amin'ny 3 ora ity lisitra ity - ny sanda amin'ny 7 ora maraina ao amin'ny Output InfluxDB dia mifanandrify amin'ny sanda amin'ny 10 maraina ao amin'ny tabilao etsy ambony. Mariho ihany koa fa eo anelanelan'ny 2 ka hatramin'ny 5 maraina dia tsy misy firaketana tsotra izao - io no tena mampiavaka ny fangatahana mitohy.

Araka ny hitanao, ny tombam-bidin'ny aggregate ihany koa ny filaharana monotonically mitombo, ny fidirana ihany no tsy dia matetika - indray mandeha isan'ora. Saingy tsy olana izany - afaka manoratra fanontaniana hafa izay hanala ny angona marina momba ny tabilao isika.

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)

Hazavaiko:

  • Avy amin'ny angon-drakitra homeassistant.month.water_meter_hour, dia haka angon-drakitra momba ny entity_id='water_meter_cold' izahay amin'ny andro farany (ora >= izao() -24h).
  • Araka ny nolazaiko dia mety tsy hita ao amin'ny filaharana homeassistant.month.water_meter_hour ny fidirana sasany. Havaozinay ity angona ity amin'ny fampandehanana ny fangatahana miaraka amin'ny GROUP BY time(1h). Amin'ity indray mitoraka ity, ny famenoana (teo aloha) dia hiasa araka ny tokony ho izy, miteraka ny angona tsy hita (ny asa dia haka ny sanda teo aloha)
  • Ny zava-dehibe indrindra amin'ity fanontaniana ity dia ny fiasan'ny fahasamihafana, izay hanao kajy ny fahasamihafana eo amin'ny marika ora. Raha ny tena izy dia tsy mandeha izany ary mitaky asa fanangonam-bokatra. Avelao ity ny max() nampiasaina taloha.

Toy izao ny vokatry ny famonoana

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

Nanomboka tamin'ny 2 maraina ka hatramin'ny 5 maraina (UTC) dia tsy nisy fanjifana. Na izany aza, ny fanontaniana dia hamerina ny sandan'ny fanjifana mitovy amin'ny famenoana (teo aloha), ary ny fiasan'ny fahasamihafana dia hanaisotra io sanda io amin'ny tenany ary hahazo 0 amin'ny vokatra, izay tena ilaina.

Ny hany sisa azo atao dia ny manangana grafika. Mba hanaovana izany, sokafy Grafana, sokafy ny efa misy (na mamorona vaovao) dashboard, mamorona tontonana vaovao. Ny firafitry ny tabilao dia ho toy izao manaraka izao.

Smart Home: Fanombanana ny fanjifana rano sy jiro amin'ny mpanampy an-trano

Hasehoko ny angona rano mangatsiaka sy mafana amin'ny tabilao mitovy. Ny fangatahana dia mitovy amin'ny nolazaiko teo ambony.

Ny mari-pamantarana fampisehoana dia napetraka toy izao manaraka izao. Ho ahy dia grafofa misy tsipika (tsipika), izay mandeha amin'ny dingana (tohatra). Ny paramètre Stack dia hazavaina etsy ambany. Misy safidy fampisehoana roa hafa eto ambany, saingy tsy dia mahaliana loatra.

Smart Home: Fanombanana ny fanjifana rano sy jiro amin'ny mpanampy an-trano

Mba hanampiana ny grafika vokarina amin'ny mpanampy an-trano dia mila:

  • miala amin'ny fomba fanovana tabilao. Noho ny antony sasany dia avy amin'ny pejin'ny dashboard ihany no atolotra ny firafitry ny fizarana tabilao marina
  • Kitiho ny telozoro eo akaikin'ny anaran'ny tabilao, safidio ny fizarana avy amin'ny menio
  • Ao amin'ny varavarankely misokatra, mandehana any amin'ny tabilao embed
  • Esory ny mari-pamantarana amin'izao fotoana izao - hametraka ny fe-potoana amin'ny alàlan'ny URL izahay
  • Fidio ny lohahevitra ilaina. Raha ny amiko dia maivana izany
  • Adikao amin'ny karatra firafitry ny lovelace-UI ny URL vokatr'izany

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

Mariho fa ny fe-potoana (2 andro farany) dia napetraka eto, fa tsy ao amin'ny fikandrana dashboard.

Toy izao ny tabilao. Tsy nampiasa rano mafana aho tato anatin'ny 2 andro, ka kisary rano mangatsiaka ihany no alaina.

Smart Home: Fanombanana ny fanjifana rano sy jiro amin'ny mpanampy an-trano

Tsy nanapa-kevitra ho an'ny tenako aho hoe iza no tabilao tiako indrindra, tsipika an-tongotra, na bar tena izy. Noho izany dia hanome ohatra tsotra momba ny fandaharam-potoana fanjifana isan'andro aho, amin'ity indray mitoraka ity amin'ny trano fisotroana. Ny fanontaniana dia amboarina amin'ny fomba mitovy amin'ny voalaza etsy ambony. Ny safidy fampisehoana dia:

Smart Home: Fanombanana ny fanjifana rano sy jiro amin'ny mpanampy an-trano

Toy izao ity tabilao ity:

Smart Home: Fanombanana ny fanjifana rano sy jiro amin'ny mpanampy an-trano

Noho izany, momba ny paramètre Stack. Amin'ity grafika ity, misy bara rano mangatsiaka dia voasintona eo ambonin'ny bara mafana. Ny totalin'ny haavony dia mifanaraka amin'ny totalin'ny fanjifana rano mangatsiaka sy mafana mandritra ny vanim-potoana.

Ny sary rehetra aseho dia mavitrika. Azonao atao ny manetsika ny totozy eo amin'ny toerana mahaliana ary mijery ny antsipiriany sy ny sanda amin'ny teboka iray.

Indrisy anefa fa tsy nisy lalitra roa tao anaty menaka. Ao amin'ny tabilao bar (tsy toy ny kisary misy tsipika) dia tsy amin'ny misasak'andro ny afovoan'ny bar, fa amin'ny 00:00. Ireo. ny antsasany havia amin'ny bara dia voasintona ho solon'ny andro teo aloha. Noho izany, ny tabilao ho an'ny Sabotsy sy Alahady dia voasarika kely ho eo ankavian'ny faritra manga. Mandra-pahitako ny fomba handresena azy.

Ny olana iray hafa dia ny tsy fahafahana miasa tsara amin'ny elanelana isam-bolana. Ny zava-misy dia ny halavan'ny ora / andro / herinandro dia raikitra, fa ny halavan'ny volana dia tsy mitovy amin'ny fotoana rehetra. Ny InfluxDB dia tsy afaka miasa afa-tsy amin'ny elanelana mitovy. Hatreto aloha dia ampy ny ati-dohako nametrahana elanelana 30 andro. Eny, hitsingevana kely ny tabilao mandritra ny taona ary tsy hifanaraka tsara amin'ny volana ny bara. Saingy satria ity zavatra ity dia mahaliana ahy amin'ny maha-mety ny fampiratiana, dia tsy maninona aho amin'ity.

Mahita vahaolana roa farafahakeliny aho:

  • Mba hahazoana isa amin'ny tabilao isam-bolana ary mametra ny tenanao ho isan-kerinandro. Ny bar 52 isan-kerinandro ao anatin'ny taona dia toa tsara
  • Hevero ho fomba faha-2 ny fanjifana isam-bolana, ary ampiasao ny grafana ho an'ny sary tsara tarehy fotsiny. Vahaolana tena marina io. Azonao atao mihitsy aza ny manarona tabilao ho an'ny taona lasa raha ampitahaina - afaka manao izany ny grafana.

famaranana

Tsy fantatro hoe nahoana, fa tiako ireo karazana tabilao ireo. Asehon’izy ireo fa mizotra amin’ny laoniny ny fiainana ary miova ny zava-drehetra. Omaly nisy be, androany kely, rahampitso mbola hisy zavatra hafa. Mijanona amin'ny fiaraha-miasa amin'ny tokantrano momba ny fanjifana. Saingy na dia amin'izao fotoana izao aza, ny tarehimarika lehibe sy tsy takatry ny saina amin'ny volavolan-dalàna dia efa mivadika ho sary azo takarina momba ny fanjifana.

Na dia teo aza ny asako efa ho 20 taona tamin'ny naha-programa ahy, dia saika tsy nifandray tamin'ny angon-drakitra aho. Noho izany, ny fametrahana angon-drakitra ivelany dia toa zavatra tsy dia mazava loatra ary tsy takatry ny saina. Niova ny zavatra rehetra ny lahatsoratra etsy ambony - hita fa ny fametahana fitaovana mety dia atao amin'ny tsindry roa, ary miaraka amin'ny fitaovana manokana dia lasa mora kokoa ny asan'ny teti-dratsy.

Ao amin'ny lohateny dia niresaka momba ny fanjifana herinaratra aho. Indrisy anefa fa tsy afaka manome grafika aho amin'izao fotoana izao. Ny iray SDM120 metatra dia maty, ary ny iray hafa dia misy fiara rehefa miditra amin'ny Modbus. Na izany aza, tsy misy fiantraikany amin'ny lohahevitra amin'ity lahatsoratra ity na amin'ny fomba ahoana na amin'ny fomba ahoana - ny sary dia hatsangana amin'ny fomba mitovy amin'ny rano.

Ato amin'ity lahatsoratra ity, dia nanome ireo fomba izay nanandrana ny tenako aho. Azo antoka fa misy fomba hafa handaminana ny fanangonana sy ny fijerena ny angona izay tsy fantatro. Lazao ahy ny momba izany ao amin'ny fanehoan-kevitra, ho liana be aho. Ho faly aho amin'ny fanakianana manorina sy hevitra vaovao. Manantena aho fa hanampy olona iray ihany koa ny fitaovana etsy ambony.

Source: www.habr.com

Add a comment