Smart Home: Charting Water and Electricity Consumption in Home Assistant

Smart Home: Charting Water and Electricity Consumption in Home Assistant
Txhua zaus kuv tau txais kev them nqi hluav taws xob thiab dej, kuv xav tsis thoob - kuv tsev neeg puas tau noj ntau heev? Zoo, yog, muaj cov cua sov hauv pem teb thiab lub rhaub dej hauv chav dej, tab sis lawv tsis ua haujlwm li cov neeg tua hluav taws txhua lub sijhawm. Peb kuj zoo li txuag dej (txawm tias peb kuj nyiam txaws hauv chav dej). Ob peb xyoos dhau los kuv twb txuas cov ntsuas dej ΠΈ hluav taws xob mus rau lub tsev ntse, tab sis qhov no yog qhov chaw uas tau daig. Cov tes tau mus txog qhov kev tsom xam ntawm kev noj tam sim no, uas, qhov tseeb, yog dab tsi tsab xov xwm no yog hais txog.

Kuv nyuam qhuav hloov mus rau Tus Pabcuam Hauv Tsev ua kuv lub tsev ntse. Ib qho ntawm cov laj thawj tsuas yog lub peev xwm los teeb tsa cov ntaub ntawv ntau nrog qhov ua tau yooj yim ntawm kev tsim kho ntawm ntau hom duab.

Cov ntaub ntawv piav qhia hauv tsab xov xwm no tsis yog tshiab, tag nrho cov khoom no nyob rau hauv cov kua ntses sib txawv twb tau piav qhia hauv Is Taws Nem. Tab sis txhua tsab xov xwm, raws li txoj cai, piav qhia tsuas yog ib txoj hauv kev los yog nam. Kuv yuav tsum sib piv tag nrho cov kev qhia no thiab xaiv qhov tsim nyog tshaj plaws rau kuv tus kheej. Tsab xov xwm tseem tsis muab cov ntaub ntawv tag nrho ntawm kev sau cov ntaub ntawv, tab sis yog ib yam ntawm cov ntsiab lus ntawm kuv tau ua li cas. Yog li tsim kev thuam thiab cov lus pom zoo rau kev txhim kho yog txais tos.

Nqe lus ntawm qhov teeb meem

Yog li, lub hom phiaj ntawm kev tawm dag zog niaj hnub no yog kom tau txais cov duab zoo nkauj ntawm dej thiab hluav taws xob noj:

  • Ib teev rau 2 hnub
  • Txhua hnub rau 2 lub lis piam
  • (yeem) txhua lub lim tiam thiab txhua hli

Muaj qee qhov teeb meem hauv qhov no:

  • Cov txheej txheem kab ntawv feem ntau yuav tsis zoo. Qhov zoo tshaj plaws, koj tuaj yeem tsim cov kab kos los ntawm cov ntsiab lus.

    Yog tias koj tshawb nrhiav zoo, koj tuaj yeem nrhiav cov khoom thib peb uas txuas ntxiv lub peev xwm ntawm cov qauv ntawv. Rau tus pab hauv tsev, nyob rau hauv txoj cai, ib qho zoo thiab zoo nkauj tivthaiv daim npav mini, tab sis nws kuj yog qee qhov txwv:

    • Nws yog ib qho nyuaj rau teeb tsa qhov tsis sib xws ntawm daim ntawv qhia bar ntawm qhov loj me me (qhov dav ntawm qhov bar yog teem rau hauv feem ntawm ib teev, uas txhais tau hais tias ncua sij hawm ntev tshaj li ib teev yuav raug teeb tsa hauv cov zauv feem)
    • Koj tsis tuaj yeem ntxiv cov chaw sib txawv rau ib daim duab (piv txwv li, kub thiab av noo, lossis muab cov duab kos nrog ib kab)
  • Tsis tsuas yog tus pab cuam hauv tsev siv cov ntaub ntawv tseem ceeb tshaj plaws SQLite los ntawm lub neej ntawd (thiab kuv, tus neeg ua haujlwm, tsis tau paub txog kev teeb tsa ntawm MySQL lossis Postgres), cov ntaub ntawv tsis khaws cia rau hauv txoj kev zoo tshaj plaws. Yog li, piv txwv li, nrog txhua qhov kev hloov pauv ntawm txhua qhov txawm tias qhov tsawg tshaj plaws digital parameter ntawm qhov ntsuas, json loj loj txog ib kilobyte loj yog sau rau hauv cov ntaub ntawv.
    {"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}}}

    Kuv muaj ob peb lub sensors (kub sensors hauv txhua chav, dej thiab hluav taws xob ntsuas), thiab qee qhov kuj tsim cov ntaub ntawv ntau heev. Piv txwv li, tsuas yog SDM220 hluav taws xob ntsuas hluav taws xob tsim tawm txog kaum kaum qhov txiaj ntsig txhua 10-15 vib nas this, thiab kuv xav nruab 8 qhov ntsuas no. Qhov ntawd. tag nrho cov txiaj ntsig no tuaj yeem yooj yim nthuav tawm cov ntaub ntawv los ntawm 100-200 MB txhua hnub. Nyob rau hauv ib lub lis piam, lub kaw lus yuav NW nyuam qhuav pov thiab tig, thiab nyob rau hauv ib lub hlis lub flash drive yuav tuag (nyob rau hauv cov ntaub ntawv ntawm ib tug raug kev teeb tsa ntawm tus pab cuam hauv tsev ntawm raspberry PI), thiab tsis tuaj yeem tham txog kev khaws cov ntaub ntawv rau ib xyoos. .

  • Yog tias koj muaj hmoo, koj lub meter nws tus kheej tuaj yeem suav tau. Koj tuaj yeem tiv tauj lub ntsuas ntsuas txhua lub sijhawm thiab nug seb lub sijhawm twg tus nqi tau txais txiaj ntsig yog. Raws li txoj cai, txhua qhov hluav taws xob ntsuas hluav taws xob uas muaj digital interface (RS232 / RS485 / Modbus / Zigbee) muab lub sijhawm zoo li no.

    Qhov phem tshaj, yog tias lub cuab yeej tuaj yeem ntsuas qee qhov ntsuas tam sim no (piv txwv li, lub zog tam sim no lossis tam sim no), lossis tsuas yog tsim cov pulses txhua X watt-teev lossis litres. Tom qab ntawd koj yuav tsum xav txog yuav ua li cas thiab nrog dab tsi los koom ua ke nws thiab qhov twg los khaws tus nqi. Muaj kev pheej hmoo ntawm kev ploj ntawm daim ntawv tshaj tawm tom ntej yog vim li cas, thiab qhov tseeb ntawm qhov system tag nrho ua rau muaj lus nug. Koj tuaj yeem, tau kawg, tso siab rau tag nrho cov no rau lub tsev ntse zoo li tus pab cuam hauv tsev, tab sis tsis muaj leej twg tau tso tseg lub ntsiab lus ntawm tus lej nkag hauv cov ntaub ntawv, thiab cov ntsuas ntsuas ntau dua ib zaug ib pliag yuav tsis ua haujlwm (ib qho kev txwv ntawm cov home assistant architecture).

Txoj kev 1

Ua ntej, cia saib dab tsi tus pab hauv tsev tau muab tawm ntawm lub thawv. Kev ntsuas kev noj ntau dhau ib lub sijhawm yog qhov kev thov heev. Tau kawg, nws tau siv sijhawm ntev dhau los ua cov khoom tshwj xeeb - utility_meter.

Lub ntsiab lus ntawm kev tivthaiv yog tias nws pib qhov tam sim no_accumulated_value hloov pauv hauv thiab rov pib dua tom qab lub sijhawm teev tseg (teev / lim piam / hli). Cov tivthaiv nws tus kheej saib xyuas cov khoom sib txawv (tus nqi ntawm qee yam sensor), sau npe rau cov kev hloov pauv ntawm tus nqi nws tus kheej - koj tsuas yog tau txais cov txiaj ntsig tiav. Qhov no tau piav qhia hauv ob peb kab hauv cov ntaub ntawv teeb tsa

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

Ntawm no sensor.water_meter_cold yog tus nqi tam sim no ntawm lub 'meter' hauv litres uas kuv tau txais ncaj qha los ntawm cov hlau ua mqtt. Tus tsim tsim 2 tshiab sensors water_cold_hour_um thiab water_cold_day_um, uas sau ib teev thiab niaj hnub nyeem ntawv, resetting lawv mus rau xoom tom qab ib lub sij hawm. Ntawm no yog ib daim duab ntawm cov roj teeb ib teev rau ib nrab hnub.

Smart Home: Charting Water and Electricity Consumption in Home Assistant

Daim ntawv qhia teev teev thiab txhua hnub rau lovelace-UI zoo li no:

      - 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

Qhov tseeb, nyob rau hauv no algorithm lies qhov teeb meem ntawm no mus kom ze. Raws li kuv twb tau hais lawm, rau txhua tus nqi nkag (qhov ntsuas tam sim no nyeem rau txhua litre tom ntej), 1kb ntawm cov ntaub ntawv raug tsim tawm hauv cov ntaub ntawv. Txhua lub ntsuas hluav taws xob kuj tsim cov nqi tshiab, uas tseem ntxiv rau hauv lub hauv paus. Yog tias kuv xav sau cov ntawv nyeem txhua teev / ib hnub / txhua lub lim tiam / hli, yog, rau ob peb lub pas dej, thiab txawm tias ntxiv ib pob ntawm cov ntsuas hluav taws xob, qhov no yuav yog cov ntaub ntawv ntau. Zoo, ntau qhov tseeb, tsis muaj cov ntaub ntawv ntau, tab sis txij li tus pab cuam hauv tsev sau ib pawg ntawm cov ntaub ntawv tsis tsim nyog rau cov ntaub ntawv, qhov loj ntawm cov ntaub ntawv yuav loj hlob los ntawm leaps thiab ciam teb. Kuv txawm ntshai los kwv yees qhov loj ntawm lub hauv paus rau cov kab kos txhua lub lim tiam thiab txhua hli.

Tsis tas li ntawd, lub ntsuas hluav taws xob nws tus kheej tsis daws qhov teeb meem. Qhov ntsuas hluav taws xob ntsuas hluav taws xob yog ib qho kev ua haujlwm monotonically uas rov qab mus rau 0 txhua teev. Peb kuj xav tau lub sijhawm noj cov neeg siv khoom zoo, muaj pes tsawg litres tau noj thaum lub sijhawm. Tus qauv keeb kwm-graph tivthaiv tsis ua qhov no, tab sis sab nraud mini-graph-card tivthaiv tuaj yeem pab peb.

Nov yog daim npav code rau 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'

Ntxiv rau cov qauv teeb tsa zoo li lub npe sensor, hom duab, xim (Kuv tsis nyiam tus qauv txiv kab ntxwv), nws tseem ceeb heev uas yuav tsum nco ntsoov 3 qhov chaw ntawm no:

  • group_by: teev - daim ntawv yuav raug tsim nrog txhua kab raws li qhov pib ntawm teev
  • point_per_hours: 1 - ib bar ib teev
  • Thiab qhov tseem ceeb tshaj plaws, aggregate_func: max yog coj tus nqi siab tshaj plaws hauv txhua teev. Nws yog qhov ntsuas no uas hloov cov ntawv sawtooth rau hauv cov kab tuav.

Smart Home: Charting Water and Electricity Consumption in Home Assistant

Tsis txhob xyuam xim rau kab ntawm kab ntawm sab laug - qhov no yog tus qauv coj ntawm cov khoom yog tias tsis muaj cov ntaub ntawv. Tab sis tsis muaj cov ntaub ntawv - Kuv tsuas yog qhib cov ntaub ntawv khaws cia siv lub ntsuas hluav taws xob ob peb teev dhau los tsuas yog rau lub hom phiaj ntawm tsab xov xwm no (Kuv yuav piav qhia kuv txoj hauv kev tam sim no qis dua).

Hauv daim duab no, kuv xav qhia tias qee zaum cov ntaub ntawv tso tawm txawm tias ua haujlwm, thiab cov tuav yeej qhia txog qhov tseeb. Tab sis tsis yog tag nrho. Rau qee qhov laj thawj, kab lus tseem ceeb rau lub sijhawm ntawm 11 teev sawv ntxov txog 12 teev sawv ntxov qhia txog 19 litres, txawm hais tias nyob rau ntawm daim duab toothy siab me ntsis rau tib lub sijhawm los ntawm tib lub sensor peb pom kev noj 62 litres. Kab mob los yog ob txhais tes yog crooked. Tab sis kuv tseem tsis to taub yog vim li cas cov ntaub ntawv ntawm txoj cai tsoo tawm - qhov noj muaj ib txwm, uas kuj pom los ntawm cov duab toothy.

Feem ntau, kuv ua tsis tiav qhov plausibility ntawm txoj hauv kev no - daim duab yuav luag ib txwm qhia qee yam ntawm heresy.

Zoo sib xws code rau nruab hnub sensor.

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

Thov nco ntsoov tias pawg_by parameter tau teem caij rau lub sijhawm, thiab cov ntsiab lus_per_hour parameter tswj txhua yam. Thiab qhov no yog lwm qhov teeb meem nrog cov ntsiab lus no - cov ntsiab lus_per_hour ua haujlwm zoo ntawm cov kab kos ntawm ib teev lossis tsawg dua, tab sis disgustingly ntawm lub sijhawm loj dua. Yog li kom tau ib kem hauv ib hnub, kuv yuav tsum nkag mus rau tus nqi 1/24 = 0.04166666. Kuv tsis tham txog kab kos txhua lub lim tiam thiab hli.

Txoj kev 2

Thaum tseem xam pom tus pab cuam hauv tsev, kuv tuaj hla daim vis dis aus no:


Cov phooj ywg sau cov ntaub ntawv noj los ntawm ntau hom Xiaomi sockets. Nws txoj hauj lwm yog me ntsis yooj yim - tsuas yog tso saib tus nqi ntawm kev noj rau hnub no, nag hmo thiab lub hli. Tsis xav tau daim duab.

Cia peb tso tseg cov lus sib cav txog phau ntawv kev sib koom ua ke ntawm cov txiaj ntsig ntawm lub zog tam sim no - Kuv twb tau sau txog "qhov tseeb" ntawm txoj hauv kev saum toj no. Nws tsis paub meej tias vim li cas nws thiaj li tsis siv cov txiaj ntsig tau txais txiaj ntsig, uas twb tau sau los ntawm tib lub qhov hluav taws xob. Hauv kuv lub tswv yim, kev sib xyaw ua ke hauv cov hlau yuav ua haujlwm zoo dua.

Los ntawm cov yees duab, peb yuav coj lub tswv yim ntawm manually suav noj rau ib lub sij hawm. Rau ib tug txiv neej, tsuas yog cov txiaj ntsig rau hnub no thiab nag hmo raug txiav txim siab, tab sis peb yuav mus ntxiv thiab sim kos ib daim duab. Lub ntsiab lus ntawm txoj kev npaj rau hauv kuv rooj plaub yog raws li nram no.

Peb yuav tsim tus nqi sib txawv_at_the_beginning_of_hour, uas peb yuav sau cov ntawv nyeem tam sim no
Raws li lub timer thaum kawg ntawm lub teev (los yog thaum pib ntawm lub tom ntej), peb xam qhov sib txawv ntawm qhov kev nyeem ntawv tam sim no thiab ib tug khaws cia nyob rau hauv thaum pib ntawm lub teev. Qhov sib txawv no yuav yog qhov noj rau lub sijhawm tam sim no - peb yuav txuag tus nqi rau lub sensor, thiab yav tom ntej peb yuav tsim ib daim duab raws li tus nqi no.
Koj kuj yuav tsum tau "rov pib dua" qhov sib txawv ntawm tus nqi_at_beginning_of_hour los ntawm kev sau tus nqi tam sim no ntawm lub txee rau ntawd.

Tag nrho cov no tuaj yeem ua tiav los ntawm qhov zoo ... los ntawm kev pab hauv tsev nws tus kheej.

Koj yuav tau sau ib tug me ntsis ntau code tshaj nyob rau hauv lub yav dhau los mus kom ze. Cia peb pib nrog cov "variables". Tawm ntawm lub thawv, peb tsis muaj qhov "kuj hloov pauv", tab sis koj tuaj yeem siv cov kev pabcuam ntawm mqtt broker. Peb yuav xa qhov tseem ceeb rau qhov ntawd nrog tus tuav = tus chij tseeb - qhov no yuav txuag tus nqi hauv tus broker, thiab nws tuaj yeem rub tawm txhua lub sijhawm, txawm tias tus pab cuam hauv tsev rov pib dua. Kuv ua cov txee txhua teev thiab txhua hnub ib zaug.

- 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

Tag nrho cov khawv koob tshwm sim hauv automation, uas khiav txhua teev thiab txhua hmo, raws li.

- 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

Ob lub automations ua 2 yam:

  • Xam tus nqi ib ntus raws li qhov sib txawv ntawm tus nqi pib thiab qhov kawg
  • Hloov kho tus nqi hauv paus rau lub sijhawm tom ntej

Kev tsim kho ntawm cov duab hauv qhov no yog daws los ntawm cov keeb kwm niaj hnub-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

Nws zoo li no:

Smart Home: Charting Water and Electricity Consumption in Home Assistant

Hauv txoj cai, qhov no yog qhov koj xav tau. Qhov zoo ntawm txoj kev no yog tias cov ntaub ntawv tsim tawm ib zaug ib ntus. Cov. tag nrho ntawm 24 qhov nkag hauv ib hnub rau daim ntawv teev teev.

Hmoov tsis zoo, qhov no tseem tsis daws qhov teeb meem dav dav ntawm lub hauv paus loj hlob. Yog tias kuv xav tau daim duab noj txhua hli, kuv yuav tsum khaws cov ntaub ntawv tsawg kawg ib xyoos. Thiab txij li tus pab cuam hauv tsev tsuas yog ib lub sijhawm khaws cia rau tag nrho cov ntaub ntawv, qhov no txhais tau tias TXHUA cov ntaub ntawv hauv lub kaw lus yuav tsum tau khaws cia rau ib xyoos. Piv txwv li, hauv ib xyoos kuv haus 200 cubic meters ntawm dej, uas txhais tau tias 200000 nkag hauv cov ntaub ntawv. Thiab yog hais tias koj coj mus rau hauv tus account lwm yam sensors, ces daim duab ua feem ntau indecent.

Txoj kev 3

Hmoov zoo, cov neeg txawj ntse twb tau daws qhov teeb meem no los ntawm kev sau cov ntaub ntawv InfluxDB. Cov ntaub ntawv no yog tshwj xeeb rau kev khaws cia cov ntaub ntawv raws sij hawm thiab yog qhov zoo tagnrho rau khaws cov txiaj ntsig ntawm cov sensors sib txawv. Lub kaw lus tseem muab cov lus nug zoo li SQL uas tso cai rau koj rho tawm cov txiaj ntsig los ntawm cov ntaub ntawv thiab tom qab ntawd sib sau ua ke hauv ntau txoj hauv kev. Thaum kawg, cov ntaub ntawv sib txawv tuaj yeem khaws cia rau lub sijhawm sib txawv. Piv txwv li, nquag hloov kev nyeem ntawv xws li kub lossis av noo tuaj yeem khaws cia rau ob peb lub lis piam xwb, thaum kev nyeem dej txhua hnub tuaj yeem khaws cia rau ib xyoos.

Ntxiv rau InfluxDB, cov neeg txawj ntse kuj tau tsim Grafana, lub kaw lus rau kos duab los ntawm cov ntaub ntawv los ntawm InfluxDB. Grafana tuaj yeem kos ntau hom kab kos, kho kom meej meej, thiab, qhov tseem ceeb tshaj, cov kab kos no tuaj yeem "plugged" rau hauv lovelace-UI tus pab cuam hauv tsev.

tau txais kev tshoov siab S, SΡ“S, ΠΈ S, SΡ“S,. Cov kab lus piav qhia meej txog cov txheej txheem ntawm kev txhim kho thiab txuas InfluxDB thiab Grafana rau tus pab hauv tsev. Kuv yuav tsom mus daws kuv qhov teeb meem tshwj xeeb.

Yog li, ua ntej ntawm tag nrho cov, cia peb pib ntxiv tus nqi counter hauv influxDB. Ib daim ntawm tus pab cuam hauv tsev (hauv qhov piv txwv no, kuv yuav muaj kev lom zem tsis yog nrog txias, tab sis kuj nrog dej kub):

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

Cia peb lov tes taw kev txuag ntawm tib cov ntaub ntawv nyob rau hauv lub tsev pab nyob rau hauv lub database, thiaj li tsis mus inflate nws ib zaug dua:

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

Tam sim no cia peb mus rau InfluxDB console thiab teeb tsa peb cov ntaub ntawv. Tshwj xeeb, koj yuav tsum tau teeb tsa ntev npaum li cas cov ntaub ntawv yuav khaws cia. Qhov no yog tswj los ntawm qhov hu ua. Txoj cai tuav pov hwm - qhov no zoo ib yam li cov ntaub ntawv hauv cov ntaub ntawv tseem ceeb, nrog rau txhua lub hauv paus database muaj nws qhov chaw. Los ntawm lub neej ntawd, tag nrho cov ntaub ntawv tau ntxiv rau txoj cai tswj hwm hu ua autogen, cov ntaub ntawv no yuav muab khaws cia rau ib lub lim tiam. Kuv xav kom cov ntaub ntawv teev cia khaws cia rau ib hlis, cov ntaub ntawv txhua lub limtiam rau ib xyoos, thiab cov ntaub ntawv txhua hli yuav tsum tsis txhob muab tshem tawm. Peb yuav tsim cov cai tswj kom tsim nyog

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

Tam sim no, qhov tseeb, qhov ua kom yuam kev tseem ceeb yog kev sib sau cov ntaub ntawv siv cov lus nug tas li. Qhov no yog lub tshuab uas cia li tso cov lus nug ntawm lub sijhawm teev tseg, sib sau cov ntaub ntawv rau cov lus nug no, thiab ntxiv cov txiaj ntsig rau tus nqi tshiab. Cia peb saib ib qho piv txwv (Kuv sau rau hauv kab ntawv kom nyeem tau, tab sis qhov tseeb kuv yuav tsum tau nkag mus rau cov lus txib no ntawm ib kab)

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

Cov lus txib no:

  • Tsim cov lus nug txuas ntxiv hu ua cq_water_cold_hourly hauv homeassistant database
  • Cov lus nug yuav raug ua txhua teev (lub sijhawm (1h))
  • Cov lus nug yuav rub tawm tag nrho cov ntaub ntawv los ntawm kev ntsuas'a homeassistant.autogen.l (liters), suav nrog kev nyeem cov dej txias thiab dej kub
  • Cov ntaub ntawv sib sau ua ke yuav muab ua pawg los ntawm entity_id, uas yuav tsim cov txiaj ntsig sib cais rau cov dej txias thiab dej kub.
  • Txij li thaum lub txee ntawm litres yog ib tug monotonically nce ib theem zuj zus nyob rau hauv txhua teev, koj yuav tsum tau coj tus nqi siab tshaj plaws, yog li kev sib sau ua ke yuav ua tiav los ntawm max (tus nqi) muaj nuj nqi.
  • Tus nqi tshiab yuav raug sau rau homeassistant.month.water_meter_hours uas lub hli yog lub npe ntawm txoj cai tuav pov hwm nrog lub sijhawm khaws cia ntawm ib hlis. Ntxiv mus, cov ntaub ntawv ntawm cov dej txias thiab dej kub yuav tawg mus rau hauv cov ntaub ntawv sib cais nrog rau qhov sib thooj entity_id thiab tus nqi hauv cov nqi teb.

Hmo ntuj lossis thaum tsis muaj leej twg nyob hauv tsev, tsis muaj dej haus, thiab raws li tsis muaj cov ntaub ntawv tshiab hauv homeassistant.autogen.l. Txhawm rau kom tsis txhob muaj qhov tseem ceeb hauv cov lus nug ib txwm, koj tuaj yeem siv sau (yav dhau los). Qhov no yuav yuam InfluxDB siv tus nqi teev dhau los.

Hmoov tsis zoo, cov lus nug tas li muaj qhov tshwj xeeb: qhov ua kom yuam kev (yav dhau los) tsis ua haujlwm thiab cov ntaub ntawv tsuas yog tsis tsim. Ntxiv mus, qhov no yog qee yam teeb meem insurmountable, uas tau tham ntau tshaj ib xyoos. Peb yuav daws qhov teeb meem no tom qab, thiab cia sau (yav dhau los) hauv cov lus nug txuas ntxiv nyob ntawd - nws tsis cuam tshuam.

Cia peb tshawb xyuas qhov tshwm sim (ntawm chav kawm, koj yuav tsum tau tos ob peb teev):

> 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

Nco ntsoov tias qhov tseem ceeb hauv cov ntaub ntawv khaws cia hauv UTC, yog li daim ntawv teev npe no txawv ntawm 3 teev - qhov 7am qhov tseem ceeb hauv InfluxDB cov zis sib phim 10am qhov tseem ceeb hauv cov kab kos saum toj no. Tsis tas li ntawd nco ntsoov tias nruab nrab ntawm 2 thiab 5 thaum sawv ntxov tsis muaj cov ntaub ntawv yooj yim - qhov no yog qhov tshwj xeeb ntawm cov lus nug txuas ntxiv.

Raws li koj tuaj yeem pom, tus nqi sib sau ua ke kuj yog ib qho kev nce qib monotonically, tsuas yog cov ntawv nkag tsawg dua - ib zaug ib teev. Tab sis qhov no tsis yog teeb meem - peb tuaj yeem sau lwm cov lus nug uas yuav rho tawm cov ntaub ntawv raug rau daim ntawv.

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)

Kuv yuav decipher:

  • Los ntawm homeassistant.month.water_meter_hour database, peb yuav rub cov ntaub ntawv rau entity_id='water_meter_cold' rau hnub kawg (lub sijhawm >= tam sim no() -24h).
  • Raws li kuv tau hais, qee qhov kev nkag yuav ploj los ntawm homeassistant.month.water_meter_hour sequence. Peb yuav rov tsim cov ntaub ntawv no los ntawm kev khiav cov lus nug nrog GROUP BY lub sijhawm (1h). Lub sijhawm no, sau (yav dhau los) yuav ua haujlwm zoo, tsim cov ntaub ntawv uas ploj lawm (cov haujlwm yuav siv tus nqi dhau los)
  • Qhov tseem ceeb tshaj plaws hauv cov lus nug no yog qhov sib txawv ua haujlwm, uas yuav suav qhov sib txawv ntawm cov cim teev. Los ntawm nws tus kheej, nws tsis ua haujlwm thiab yuav tsum muaj kev sib sau ua ke. Cia qhov no yog qhov max() siv ua ntej.

Cov txiaj ntsig ua tiav zoo li no

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

Los ntawm 2 teev sawv ntxov txog 5 teev sawv ntxov (UTC) tsis muaj kev noj haus. Txawm li cas los xij, cov lus nug yuav rov qab tus nqi noj tib yam ua tsaug rau kev sau (yav dhau los), thiab qhov sib txawv muaj nuj nqi yuav rho tawm tus nqi no los ntawm nws tus kheej thiab tau txais 0 ntawm cov zis, uas yog qhov yuav tsum tau ua tiag tiag.

Qhov tsuas yog qhov uas yuav tsum tau ua yog tsim ib daim duab. Txhawm rau ua qhov no, qhib Grafana, qhib qee qhov uas twb muaj lawm (lossis tsim lub dashboard tshiab), tsim lub vaj huam sib luag tshiab. Cov kab ntawv teeb tsa yuav yog raws li hauv qab no.

Smart Home: Charting Water and Electricity Consumption in Home Assistant

Kuv yuav tso saib cov ntaub ntawv txias thiab dej kub ntawm tib daim duab. Qhov kev thov yog raws nraim li kuv tau piav saum toj no.

Cov zaub tsis tau teeb tsa raws li hauv qab no. Rau kuv nws yuav yog ib daim duab nrog kab (kab), uas mus rau hauv cov kauj ruam (stairs). Lub Stack parameter yuav piav qhia hauv qab no. Muaj ob peb qhov kev xaiv ntau ntxiv hauv qab no, tab sis lawv tsis txaus nyiam.

Smart Home: Charting Water and Electricity Consumption in Home Assistant

Txhawm rau ntxiv cov txiaj ntsig tau los rau tus pab hauv tsev, koj yuav tsum:

  • tawm ntawm daim ntawv kho kom raug hom. Rau qee qhov laj thawj, qhov tseeb daim ntawv qhia kev teeb tsa tsuas yog muaj los ntawm nplooj ntawv dashboard
  • Nyem rau ntawm daim duab peb sab ntawm daim duab npe, xaiv qhia los ntawm cov ntawv qhia zaub mov
  • Nyob rau hauv lub qhov rais uas qhib, mus rau lub embed tab
  • Tshem tawm lub sijhawm tam sim no - peb yuav teeb tsa lub sijhawm ntawm URL
  • Xaiv lub ntsiab lus xav tau. Hauv kuv rooj plaub nws yog qhov kaj
  • Luam qhov URL tshwm sim rau daim npav lovelace-UI chaw teeb tsa

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

Thov nco ntsoov tias lub sijhawm ntau (2 hnub dhau los) tau teeb tsa ntawm no, thiab tsis nyob hauv qhov chaw dashboard.

Daim duab zoo li no. Kuv tsis tau siv dej kub hauv 2 hnub dhau los, tsuas yog kos ib daim duab ntawm cov dej txias.

Smart Home: Charting Water and Electricity Consumption in Home Assistant

Kuv tsis tau txiav txim siab rau kuv tus kheej uas daim duab kuv nyiam tshaj plaws, ib kauj ruam kab, lossis cov kab tiag tiag. Yog li ntawd, kuv yuav tsuas muab piv txwv ntawm lub sij hawm noj txhua hnub, tsuas yog lub sij hawm no nyob rau hauv tuav. Cov lus nug tau tsim ib yam li tau piav qhia saum toj no. Cov kev xaiv tso saib yog:

Smart Home: Charting Water and Electricity Consumption in Home Assistant

Daim duab no zoo li no:

Smart Home: Charting Water and Electricity Consumption in Home Assistant

Yog li, hais txog Stack parameter. Nyob rau hauv cov duab no, ib tug dej txias bar yog kos rau saum lub bar kub. Tag nrho qhov siab sib haum rau tag nrho kev siv dej txias thiab dej kub rau lub sijhawm.

Tag nrho cov duab qhia yog dynamic. Koj tuaj yeem txav tus nas hla qhov kev txaus siab thiab pom cov ntsiab lus thiab tus nqi ntawm ib qho tshwj xeeb.

Hmoov tsis, nws tsis yog tsis muaj ob peb ya hauv cov tshuaj pleev. Ntawm daim ntawv qhia bar (tsis zoo li daim duab nrog cov kab kauj ruam), qhov nruab nrab ntawm lub bar tsis nyob nruab nrab ntawm hnub, tab sis thaum 00:00. Cov. sab laug ib nrab ntawm lub bar yog kos nyob rau hauv qhov chaw ntawm hnub dhau los. Yog li cov kab kos rau hnub Saturday thiab Hnub Sunday tau kos me ntsis rau sab laug ntawm thaj tsam xiav. Txog thaum kuv paub yuav ua li cas thiaj yeej.

Lwm qhov teeb meem yog qhov tsis muaj peev xwm ua haujlwm kom raug nrog txhua lub hlis. Qhov tseeb yog qhov ntev ntawm teev / hnub / lub lim tiam yog tsau, tab sis qhov ntev ntawm lub hli txawv txhua lub sijhawm. InfluxDB tsuas tuaj yeem ua haujlwm nrog lub sijhawm sib npaug. Txog tam sim no, kuv lub hlwb tau txaus los teeb tsa lub sijhawm ncua ntawm 30 hnub. Yog lawm, daim ntawv yuav ntab me ntsis hauv lub xyoo thiab cov tuav yuav tsis raug raws li lub hlis. Tab sis txij li qhov no yog qhov nthuav rau kuv ib yam li lub ntsuas ntsuas, kuv ua tau nrog qhov no.

Kuv pom tsawg kawg yog ob txoj kev daws teeb meem:

  • Kom tau qhab nia ntawm cov kab kos txhua hli thiab txwv koj tus kheej rau txhua lub lim tiam. 52 lub lis piam nyob rau hauv ib lub xyoo saib zoo nkauj heev
  • Xav txog kev noj txhua hli nws tus kheej raws li txoj kev No. 2, thiab siv grafana nkaus xwb rau cov duab zoo nkauj. Nws yog ib qho kev daws teeb meem zoo nkauj. Koj muaj peev xwm txawm overlay kab kos rau xyoo dhau los rau kev sib piv - grafana tuaj yeem ua li ntawd.

xaus

Kuv tsis paub yog vim li cas, tab sis kuv nyiam cov kab kos no. Lawv qhia tias lub neej nyob rau hauv tag nrho viav vias thiab txhua yam hloov. Nag hmo muaj ntau, hnub no muaj tsawg, tag kis yuav muaj lwm yam. Nws tseem yuav ua haujlwm nrog tsev neeg ntawm cov ncauj lus ntawm kev noj. Tab sis txawm tias muaj kev noj qab haus huv tam sim no, tsuas yog daim duab loj thiab tsis nkag siab hauv daim nqi twb dhau los ua ib qho kev nkag siab zoo ntawm kev noj.

Txawm hais tias kuv yuav luag 20 xyoo ua haujlwm ua tus programmer, kuv xyaum tsis cuam tshuam nrog databases. Yog li ntawd, txhim kho cov ntaub ntawv sab nraud zoo li ib yam dab tsi tsis meej thiab tsis nkag siab. Txhua yam tau hloov lawm cov lus saum toj no - nws muab tawm tias screwing ib lub cuab tam tsim nyog yog ua nyob rau hauv ob peb clicks, thiab nrog ib tug tshwj xeeb lub cuab tam, txoj hauj lwm ntawm plotting yuav yooj yim dua me ntsis.

Hauv lub npe, kuv hais txog kev siv hluav taws xob. Hmoov tsis zoo, lub sijhawm no kuv tsis tuaj yeem muab cov duab kos. Ib SDM120 meter tuag, thiab lwm qhov yog buggy thaum nkag los ntawm Modbus. Txawm li cas los xij, qhov no tsis cuam tshuam rau lub ntsiab lus ntawm tsab xov xwm no nyob rau hauv ib txoj kev - cov duab kos yuav ua tau zoo ib yam li cov dej.

Hauv tsab xov xwm no, kuv tau muab cov kev qhia uas kuv tau sim kuv tus kheej. Muaj tseeb muaj qee qhov lwm txoj hauv kev los npaj kev sau thiab pom cov ntaub ntawv uas kuv tsis paub txog. Qhia rau kuv txog nws hauv cov lus, Kuv yuav txaus siab heev. Kuv yuav zoo siab rau kev thuam thiab kev tawm tswv yim tshiab. Kuv vam tias cov ntaub ntawv saum toj no tseem yuav pab tau ib tus neeg.

Tau qhov twg los: www.hab.com

Ntxiv ib saib