Gidan Smart: Ruwan Charting da Amfanin Wutar Lantarki a Mataimakin Gida

Gidan Smart: Ruwan Charting da Amfanin Wutar Lantarki a Mataimakin Gida
Duk lokacin da na karɓi kuɗin wutar lantarki da ruwa, ina mamakin - shin da gaske iyalina suna cinye soooooo? To, a, akwai bene mai zafi da tukunyar jirgi a cikin gidan wanka, amma ba sa aiki a matsayin masu kashe gobara koyaushe. Muna kuma da alama muna tanadin ruwa (ko da yake muna kuma son fantsama a bandaki). Bayan 'yan shekarun da suka gabata na riga haɗa mita ruwa и wutar lantarki zuwa gida mai wayo, amma anan ne abubuwa suka makale. Hannun hannu sun kai ga nazarin amfani kawai a yanzu, wanda, a gaskiya, shine abin da wannan labarin yake.

Kwanan nan na canza zuwa Mataimakin Gida a matsayin tsarin gida mai wayo. Ɗaya daga cikin dalilan shine kawai ikon tsara tarin bayanai masu yawa tare da yiwuwar gina gine-gine masu dacewa da nau'o'in jadawali.

Bayanan da aka bayyana a cikin wannan labarin ba sabon abu ba ne, duk waɗannan abubuwa a ƙarƙashin miya daban-daban an riga an kwatanta su a Intanet. Amma kowane labarin, a matsayin mai mulkin, yana bayyana hanya ɗaya kawai ko al'amari. Dole ne in kwatanta duk waɗannan hanyoyin kuma in zaɓi mafi dacewa da kaina. Har yanzu labarin bai ba da cikakkun bayanai game da tattara bayanai ba, amma wani nau'i ne na taƙaitaccen yadda na yi shi. Don haka muna maraba da suka da shawarwari masu inganci.

Tsara matsalar

Don haka, makasudin atisayen na yau shine samun kyawawan hotuna na amfani da ruwa da wutar lantarki:

  • Sa'a har tsawon kwanaki 2
  • Kullum don makonni 2
  • (na zaɓi) mako-mako da kowane wata

Akwai wasu matsaloli a cikin wannan:

  • Ma'auni na ginshiƙi yakan zama matalauta sosai. A mafi kyau, za ku iya gina jadawalin layi ta maki.

    Idan ka yi bincike da kyau, za ka iya nemo abubuwan ɓangarori na ɓangare na uku waɗanda ke ƙara ƙarfin madaidaicin ginshiƙi. Don mataimaki na gida, bisa manufa, wani abu mai kyau da kyau mini graph card, amma kuma yana da ɗan iyaka:

    • Yana da wahala a saita sigogin taswirar mashaya a manyan tazara (an saita faɗin sandar a cikin ɓangarorin sa'a guda, wanda ke nufin cewa za a saita tazara fiye da sa'a ɗaya a cikin lambobi kaɗan)
    • Ba za ku iya ƙara abubuwa daban-daban zuwa jadawali ɗaya ba (misali, zazzabi da zafi, ko haɗa jadawali tare da layi)
  • Ba wai kawai mataimaki na gida yana amfani da mafi kyawun bayanan SQLite ta tsohuwa ba (kuma ni, mai aikin hannu, ban ƙware a shigar da MySQL ko Postgres ba), ba a adana bayanan ta hanya mafi kyau. Don haka, alal misali, tare da kowane canji na kowane ko da ƙaramar ma'aunin dijital na siga, an rubuta babbar json game da girman kilobyte zuwa ma'ajin bayanai.
    {"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}}}

    Ina da ƴan na'urori masu auna firikwensin (ma'aunin zafin jiki a kowane ɗaki, ruwa da mita wutar lantarki), wasu kuma suna samar da bayanai da yawa. Alal misali, kawai SDM220 mita wutar lantarki samar game da dozin dabi'u kowane 10-15 seconds, kuma ina so in shigar 8 irin wannan mita, kuma akwai wani dukan gungu na sigogi da aka lissafta bisa wasu na'urori masu auna sigina. Wannan. duk waɗannan dabi'u na iya sauƙaƙe ma'aunin bayanai ta hanyar 100-200 MB kowace rana. A cikin mako guda, tsarin zai yi jujjuyawa da juyawa, kuma a cikin wata ɗaya filasha zata mutu (a cikin yanayin shigar mataimakan gida na yau da kullun akan rasberi PI), kuma ba za a iya samun batun adana bayanai na tsawon shekara guda ba.

  • Idan kun yi sa'a, mitar ku da kanta na iya ƙidaya yawan amfani. Kuna iya tuntuɓar mitar a kowane lokaci kuma ku tambayi wane lokaci ƙimar amfani da aka tara take. A matsayinka na mai mulki, duk mita wutar lantarki da ke da hanyar sadarwa ta dijital (RS232 / RS485 / Modbus / Zigbee) suna ba da irin wannan dama.

    Mafi muni, idan na'urar za ta iya auna wasu ma'auni nan take (misali, wutar lantarki nan take ko halin yanzu), ko kuma kawai ta haifar da bugun jini kowane awa X watt ko lita. Sa'an nan kuma kana buƙatar tunani game da yadda da abin da za a haɗa shi da kuma inda za a tara darajar. Akwai haɗarin rasa rahoton na gaba don kowane dalili, kuma daidaiton tsarin gaba ɗaya yana haifar da tambayoyi. Kuna iya, ba shakka, ba da amanar duk wannan ga tsarin gida mai kaifin baki kamar mataimaki na gida, amma babu wanda ya soke batun game da adadin shigarwar a cikin bayanan, kuma na'urori masu auna firikwensin zaɓe fiye da sau ɗaya a cikin sakan ɗaya ba zai yi aiki ba (ƙayyadaddun ƙayyadaddun bayanai). gine ginen gida).

Hanya 1

Da farko, bari mu ga abin da aka ba da mataimaki na gida daga cikin akwatin. Auna yawan amfani na tsawon lokaci aikin da ake buƙata sosai. Tabbas, an aiwatar da shi da dadewa a matsayin wani yanki na musamman - utility_meter.

Mahimmancin ɓangaren shine yana fara canjin halin yanzu_accumulated_value a ciki kuma ya sake saita shi bayan ƙayyadadden lokaci (hour/week/month). Sashin da kansa yana lura da canjin mai shigowa (darajar wani nau'in firikwensin), biyan kuɗi zuwa canje-canje a cikin ƙimar kanta - kawai kuna samun sakamakon da aka gama. An bayyana wannan abu a cikin ƴan layukan da ke cikin fayil ɗin daidaitawa

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

Anan sensor.water_meter_cold shine darajar mita a cikin lita na yanzu kai tsaye daga karfe da mqtt. Zane ya haifar da sabbin na'urori biyu water_cold_hour_um da water_cold_day_um, waɗanda ke tara karatun sa'a da kullun, suna sake saita su zuwa sifili bayan ɗan lokaci. Anan akwai jadawali na baturin sa'a na rabin yini.

Gidan Smart: Ruwan Charting da Amfanin Wutar Lantarki a Mataimakin Gida

Lambar ginshiƙi na sa'a da kullun don lovelace-UI yayi kama da wannan:

      - 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

A zahiri, a cikin wannan algorithm shine matsalar wannan hanyar. Kamar yadda na riga na ambata, ga kowane darajar mai shigowa (karanta mita na yanzu ga kowace lita na gaba), ana samar da 1kb na rikodin a cikin bayanan. Kowane mita mai amfani kuma yana haifar da sabon ƙima, wanda kuma aka ƙara zuwa tushe. Idan ina so in tattara karatun sa'a / yau da kullun / mako-mako / wata-wata, a, don masu hawan ruwa da yawa, har ma da ƙara fakitin mita na lantarki, wannan zai zama bayanai da yawa. To, mafi daidai, babu bayanai da yawa, amma tun da mataimaki na gida ya rubuta tarin bayanan da ba dole ba a cikin ma'auni, girman bayanan zai girma ta hanyar tsalle-tsalle da iyakoki. Ina ma jin tsoron ƙididdige girman tushe don jadawalin mako-mako da na wata-wata.

Bugu da ƙari, na'urar amfani da kanta ba ta magance matsalar ba. Makircin mitar mai amfani aiki ne na haɓakawa ta atomatik wanda ke sake saitawa zuwa 0 kowace awa. Har ila yau, muna buƙatar jadawalin amfani mai amfani, lita nawa aka ci a lokacin. Daidaitaccen bangaren tarihin-jadawali baya yin wannan, amma bangaren karamin kati-kati na waje zai iya taimaka mana.

Wannan shine lambar katin don 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'

Baya ga daidaitattun saitunan kamar sunan firikwensin, nau'in jadawali, launi (Ba na son daidaitaccen orange), yana da mahimmanci a lura da saitunan 3 anan:

  • group_by:hour - za a samar da ginshiƙi tare da ginshiƙai masu daidaitawa zuwa farkon sa'a
  • points_per_hour: 1 - mashaya daya a kowace awa
  • Kuma mafi mahimmanci, aggregate_func: max shine ɗaukar matsakaicin ƙimar cikin kowace awa. Wannan siga ce ke juya taswirar sawtooth zuwa sanduna.

Gidan Smart: Ruwan Charting da Amfanin Wutar Lantarki a Mataimakin Gida

Kada ku kula da jere na ginshiƙai a gefen hagu - wannan shine daidaitaccen hali na ɓangaren idan babu bayanai. Amma babu bayanai - Na kunna tarin bayanai ne kawai ta amfani da mitar mai amfani sa'o'i biyu da suka gabata don kare wannan labarin (Zan kwatanta tsarina na yanzu kaɗan kaɗan).

A cikin wannan hoton, Ina so in nuna cewa wani lokacin nunin bayanan yana aiki, kuma sanduna suna nuna ainihin ƙimar daidai. Amma ba haka kawai ba. Don wasu dalilai, ginshiƙi mai haske na tsawon lokaci daga 11 na safe zuwa 12 na safe yana nuna lita 19, kodayake a kan zanen haƙori ya ɗan fi girma don wannan lokacin daga wannan firikwensin muna ganin amfani da lita 62. Ko dai kwaro ko hannaye sun karkace. Amma har yanzu ban fahimci dalilin da yasa bayanan da ke hannun dama suka lalace ba - yawan amfani da shi ya kasance na al'ada, wanda kuma ana iya gani daga jadawali na hakori.

Gabaɗaya, na kasa cimma nasarar wannan hanyar - jadawali kusan koyaushe yana nuna wasu nau'ikan bidi'a.

Makamantan lambar don firikwensin rana.

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

Lura cewa rukunin_by parameter an saita zuwa tazara, kuma ma'aunin point_per_hour yana sarrafa komai. Kuma wannan wata matsala ce tare da wannan bangaren -point_per_hour yana aiki da kyau akan jadawalin sa'a guda ko ƙasa da hakan, amma abin banƙyama akan manyan tazara. Don haka don samun shafi ɗaya a rana ɗaya, dole ne in shigar da ƙimar 1/24=0.04166666. Ba ina magana akan jadawalin mako-mako da na wata-wata ba.

Hanya 2

Yayin da nake gano mataimakiyar gida, na ci karo da wannan bidiyon:


Abokin hulɗa yana tattara bayanan amfani daga nau'ikan kwasfa na Xiaomi da yawa. Ayyukansa yana da ɗan sauƙi - kawai nuna ƙimar amfani don yau, jiya da wata. Babu ginshiƙi da ake buƙata.

Bari mu bar gardama game da haɗin gwiwar hannu na ƙimar ikon nan take - Na riga na rubuta game da "daidai" na wannan tsarin a sama. Ba a bayyana dalilin da ya sa bai yi amfani da ƙimar amfani da aka tara ba, waɗanda aka riga an tattara su ta hanyar hanyar guda ɗaya. A ganina, haɗin kai a cikin yanki na ƙarfe zai yi aiki mafi kyau.

Daga bidiyon, za mu ɗauki ra'ayin kirga yawan amfani da hannu na ɗan lokaci. Ga mutum, kawai ana la'akari da dabi'un yau da na jiya, amma za mu ci gaba da ƙoƙarin zana jadawali. Asalin hanyar da aka tsara a cikin lamarina shine kamar haka.

Za mu ƙirƙiri ƙima mai ƙima_a_the_beginning_of_hour, wanda a ciki za mu rubuta karatun na yanzu.
Bisa ga mai ƙidayar lokaci a ƙarshen sa'a (ko a farkon na gaba), muna ƙididdige bambanci tsakanin karatun yanzu da wanda aka adana a farkon sa'a. Wannan bambanci zai zama amfani ga sa'a na yanzu - za mu ajiye darajar zuwa firikwensin, kuma a nan gaba za mu gina jadawali bisa wannan darajar.
Hakanan kuna buƙatar “sake saita” madaidaicin ƙimar_at_beginning_of_hour ta hanyar rubuta ƙimar da ake buƙata na yanzu a wurin.

Ana iya yin wannan duka ta hanyar da kyau ... ta hanyar mataimakiyar gida da kanta.

Dole ne ku rubuta ɗan ƙara lamba fiye da yadda aka saba a baya. Bari mu fara da waɗannan "masu canzawa". Daga cikin akwatin, ba mu da mahallin "mai canzawa", amma kuna iya amfani da sabis na dillali na mqtt. Za mu aika dabi'u a can tare da riƙe = tuta ta gaskiya - wannan zai adana ƙimar cikin dillali, kuma ana iya cire shi a kowane lokaci, koda lokacin da aka sake kunna mataimaki na gida. Na yi lissafin sa'o'i da na yau da kullun lokaci guda.

- 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

Duk sihirin yana faruwa a cikin injina, wanda ke gudana kowane awa da kowane dare, bi da bi.

- 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

Dukansu na atomatik suna yin abubuwa 2:

  • Yi ƙididdige ƙimar kowane tazara azaman bambanci tsakanin ƙimar farawa da ƙarshen
  • Sabunta ƙimar tushe don tazara na gaba

Gina zane-zane a wannan yanayin ana warware shi ta hanyar jadawali na yau da kullun:

      - 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

Ga alama kamar haka:

Gidan Smart: Ruwan Charting da Amfanin Wutar Lantarki a Mataimakin Gida

A ka'ida, wannan shine riga abin da kuke buƙata. Amfanin wannan hanyar shine ana samar da bayanan sau ɗaya a kowane tazara. Wadancan. jimlar shigarwar 24 a kowace rana don jadawalin sa'a.

Abin takaici, wannan har yanzu bai warware matsalar gaba ɗaya na tushe mai girma ba. Idan ina son jadawali na amfani da wata-wata, zan adana bayanai na akalla shekara guda. Kuma tun da mataimaki na gida yana ba da saitin lokacin ajiya guda ɗaya don duka bayanan, wannan yana nufin cewa DUK bayanan da ke cikin tsarin dole ne a adana su tsawon shekara guda. Misali, a cikin shekara na cinye mita 200 na ruwa, wanda ke nufin shigarwar 200000 a cikin ma'ajin bayanai. Kuma idan kun yi la'akari da wasu na'urori masu auna firikwensin, to, adadi ya zama gabaɗaya mara kyau.

Hanya 3

Abin farin ciki, mutane masu wayo sun riga sun magance wannan matsala ta hanyar rubuta bayanan InfluxDB. Wannan bayanan an inganta shi musamman don adana bayanan tushen lokaci kuma yana da kyau don adana ƙimar firikwensin daban-daban. Hakanan tsarin yana ba da yaren tambaya kamar SQL wanda ke ba ku damar cire dabi'u daga ma'ajin bayanai sannan ku tara su ta hanyoyi daban-daban. A ƙarshe, ana iya adana bayanai daban-daban don lokuta daban-daban. Misali, ana iya adana karatu akai-akai akai-akai kamar zazzabi ko zafi na makonni biyu kacal, yayin da ana iya adana karatun yau da kullun na shan ruwa har tsawon shekara guda.

Baya ga InfluxDB, mutane masu wayo kuma sun ƙirƙira Grafana, tsarin zana hotuna daga bayanai daga InfluxDB. Grafana na iya zana nau'ikan sigogi daban-daban, keɓance su dalla-dalla, kuma, mafi mahimmanci, waɗannan ginshiƙi za'a iya “toshe” cikin mataimakin gida na lovelace-UI.

a yi wahayi a nan и a nan. Labarin ya bayyana dalla-dalla tsarin shigarwa da haɗa InfluxDB da Grafana zuwa mataimaki na gida. Zan mayar da hankali kan warware takamaiman matsalata.

Don haka, da farko, bari mu fara ƙara ƙimar ƙima a cikin influxDB. Wani yanki na daidaitawar mataimakan gida (a cikin wannan misalin, zan ji daɗi ba kawai tare da sanyi ba, har ma da ruwan zafi):

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

Bari mu musaki adana bayanai iri ɗaya a cikin ma'ajin bayanai na gida na mataimakan gida, don kar mu sake busa shi:

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

Bari yanzu mu je InfluxDB console kuma saita bayanan mu. Musamman, kuna buƙatar saita tsawon lokacin da za a adana wasu bayanai. An tsara wannan ta hanyar abin da ake kira. manufofin riƙewa - wannan yayi kama da rumbun adana bayanai a cikin babban rumbun adana bayanai, tare da kowace rumbun adana bayanai na ciki tana da nata saitunan. Ta hanyar tsoho, ana ƙara duk bayanan zuwa manufofin riƙewa da ake kira autogen, za a adana wannan bayanan har tsawon mako guda. Ina so a adana bayanan sa'o'i na wata guda, bayanan mako-mako na shekara guda, da bayanan wata-wata ba za a taɓa gogewa kwata-kwata ba. Za mu ƙirƙiri manufofin riƙewa masu dacewa

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

Yanzu, a zahiri, babban dabarar shine tattara bayanai ta amfani da ci gaba da tambaya. Wannan wata hanya ce da ke ƙaddamar da tambaya ta atomatik a ƙayyadaddun tazara, ta tattara bayanan wannan tambayar, kuma tana ƙara sakamakon zuwa sabon ƙima. Bari mu dubi misali (Na rubuta a cikin shafi don karantawa, amma a gaskiya dole ne in shigar da wannan umarni akan layi daya)

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

Wannan umarni:

  • Yana ƙirƙira ci gaba da tambaya mai suna cq_water_cold_hourly a cikin bayanan mataimakan gida
  • Za a aiwatar da tambayar kowace awa (lokaci (1h))
  • Tambayar za ta fitar da duk bayanai daga ma'auni'a homeassistant.autogen.l (lita), gami da karatun ruwan sanyi da ruwan zafi.
  • Abubuwan da aka haɗa za a haɗa su ta entity_id, wanda zai ƙirƙira ƙima daban-daban don ruwan sanyi da ruwan zafi.
  • Tunda lissafin litar ɗin shine jerin haɓakar monotonically a cikin kowace sa'a, kuna buƙatar ɗaukar matsakaicin ƙimar, don haka za'a aiwatar da tara ta hanyar max(darajar) aikin.
  • Sabuwar darajar za a rubuta zuwa homeassistant.month.water_meter_hour inda watan shine sunan manufofin riƙewa tare da lokacin riƙewa na wata ɗaya. Haka kuma, bayanai akan ruwan sanyi da ruwan zafi za'a warwatsasu cikin rukunan daban-daban tare da madaidaicin mahaluƙi_id da ƙimar cikin filin darajar.

Da dare ko kuma lokacin da babu kowa a gida, babu shan ruwa, kuma saboda haka babu sabbin bayanai a homeassistant.autogen.l ko dai. Don guje wa rashin ƙimar ƙima a cikin tambayoyin al'ada, zaku iya amfani da cika (na baya). Wannan zai tilasta InfluxDB yin amfani da ƙimar sa'a da ta gabata.

Abin baƙin ciki shine, ci gaba da tambaya tana da siffa: dabarar cika (da ta gabata) ba ta aiki kuma ba a ƙirƙira bayanan ba. Haka kuma, wannan wata irin matsala ce da ba za a iya shawo kanta ba, wacce an tattauna fiye da shekara guda. Za mu magance wannan matsala daga baya, kuma bari cike (a baya) a cikin ci gaba da tambaya - ba ya tsoma baki.

Bari mu duba abin da ya faru (ba shakka, kuna buƙatar jira awanni biyu):

> 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

Lura cewa ana adana ƙimar da ke cikin bayanan a cikin UTC, don haka wannan jeri ya bambanta da sa'o'i 3 - ƙimar 7 na safe a cikin fitarwar InfluxDB sun dace da ƙimar 10am a cikin sigogin da ke sama. Hakanan lura cewa tsakanin 2 zuwa 5 na safe babu kawai bayanai - wannan shine ainihin fasalin ci gaba da tambaya.

Kamar yadda kake gani, ƙimar da aka tara kuma ita ce ta ƙara ƙararrawa, kawai shigarwar ba ta da yawa - sau ɗaya a sa'a. Amma wannan ba matsala ba - za mu iya rubuta wata tambaya da za ta fitar da daidaitattun bayanai na ginshiƙi.

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)

Zan fassara:

  • Daga homeassistant.month.water_meter_hour database, za mu ja bayanai don entity_id='water_meter_cold' na ranar ƙarshe (lokaci> = yanzu () -24h).
  • Kamar yadda na ambata, wasu shigarwar suna iya ɓacewa daga jeri na homeassistant.month.water_meter_hour. Za mu sabunta wannan bayanan ta hanyar gudanar da tambaya tare da GROUP BY lokaci(1h). Wannan lokacin, cika (a baya) zai yi aiki da kyau, yana samar da bayanan da suka ɓace (aikin zai ɗauki ƙimar da ta gabata)
  • Abu mafi mahimmanci a cikin wannan tambayar shine aikin bambanci, wanda zai lissafta bambanci tsakanin alamomin sa'a. Ta kanta, baya aiki kuma yana buƙatar aikin tarawa. Bari wannan ya zama max() da aka yi amfani da shi a baya.

Sakamakon aiwatarwa yayi kama da haka

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

Daga 2 na safe zuwa 5 na safe (UTC) babu amfani. Duk da haka, tambayar za ta dawo da ƙimar amfani iri ɗaya godiya ga cika (a baya), kuma aikin bambanci zai cire wannan ƙimar daga kanta kuma ya sami 0 a fitarwa, wanda a zahiri ake buƙata.

Abinda kawai ya rage a yi shine gina jadawali. Don yin wannan, buɗe Grafana, buɗe wasu dashboard ɗin data kasance (ko ƙirƙirar sabon), ƙirƙirar sabon panel. Saitunan ginshiƙi zasu kasance kamar haka.

Gidan Smart: Ruwan Charting da Amfanin Wutar Lantarki a Mataimakin Gida

Zan nuna bayanan ruwan sanyi da ruwan zafi akan jadawali ɗaya. Buƙatun daidai yake kamar yadda na bayyana a sama.

An saita sigogin nuni kamar haka. A gare ni zai zama jadawali tare da layi (layi), wanda ke tafiya cikin matakai (matakai). Za a yi bayanin siga ta Stack a ƙasa. Akwai ƙarin zaɓuɓɓukan nuni guda biyu a ƙasa, amma ba su da ban sha'awa sosai.

Gidan Smart: Ruwan Charting da Amfanin Wutar Lantarki a Mataimakin Gida

Don ƙara sakamakon jadawali zuwa mataimaki na gida, kuna buƙatar:

  • fita yanayin gyaran ginshiƙi. Don wasu dalilai, daidaitattun saitunan raba taswira ana bayar da su ne kawai daga shafin dashboard
  • Danna kan triangle kusa da sunan ginshiƙi, zaɓi raba daga menu
  • A cikin taga da yake buɗewa, je zuwa shafin embed
  • Cire kewayon lokaci na yanzu - za mu saita kewayon lokaci ta URL
  • Zaɓi batun da ake buƙata. A wurina yana da haske
  • Kwafi sakamakon URL zuwa katin saitin 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"

Lura cewa kewayon lokacin (kwanaki 2 na ƙarshe) an saita anan, kuma ba a cikin saitunan dashboard ba.

Jadawalin yayi kama da haka. Ban yi amfani da ruwan zafi ba a cikin kwanaki 2 da suka gabata, don haka jadawali na ruwan sanyi kawai aka zana.

Gidan Smart: Ruwan Charting da Amfanin Wutar Lantarki a Mataimakin Gida

Ban yanke wa kaina shawarar wane ginshiƙi na fi so ba, layin mataki, ko sanduna na gaske. Don haka, kawai zan ba da misali na jadawalin amfani da kullun, kawai wannan lokacin a cikin mashaya. An gina tambayoyin ta hanya ɗaya kamar yadda aka bayyana a sama. Zaɓuɓɓukan nuni sune:

Gidan Smart: Ruwan Charting da Amfanin Wutar Lantarki a Mataimakin Gida

Wannan jadawali yayi kama da haka:

Gidan Smart: Ruwan Charting da Amfanin Wutar Lantarki a Mataimakin Gida

Don haka, game da sigar Stack. A cikin wannan jadawali, an zana sandar ruwan sanyi a saman mashaya mai zafi. Jimillar tsayin daka yayi daidai da yawan amfani da ruwan sanyi da ruwan zafi na tsawon lokaci.

Duk jadawali da aka nuna suna da ƙarfi. Kuna iya matsar da linzamin kwamfuta akan wurin sha'awa kuma duba cikakkun bayanai da ƙima a wani wuri.

Abin baƙin ciki, ba tare da kamar wata tashi a cikin maganin shafawa ba. A kan ginshiƙi (ba kamar jadawali tare da layin mataki ba), tsakiyar mashaya baya tsakiyar rana, amma a 00:00. Wadancan. an zana rabi na hagu na mashaya a madadin ranar da ta gabata. Don haka an zana ginshiƙi na Asabar da Lahadi kaɗan zuwa hagu na yankin bluish. Har sai da na gano yadda zan ci nasara.

Wata matsala ita ce rashin iya aiki daidai tare da tazarar kowane wata. Gaskiyar ita ce, an kayyade tsawon sa'a / rana / mako, amma tsawon wata ya bambanta kowane lokaci. InfluxDB na iya aiki tare da tazara ɗaya kawai. Ya zuwa yanzu, kwakwalwata ta isa ta saita tsayayyen tazara na kwanaki 30. Ee, ginshiƙi zai ɗan yi iyo kaɗan a cikin shekara kuma sanduna ba za su yi daidai da watanni ba. Amma tunda wannan abu yana da ban sha'awa a gare ni kamar na'urar nuni, na yi daidai da wannan.

Ina ganin aƙalla mafita guda biyu:

  • Don ci a kan jadawalin kowane wata kuma iyakance kanku ga na mako-mako. Sanduna 52 na mako-mako a cikin shekara suna da kyau sosai
  • Yi la'akari da amfani da kowane wata a matsayin hanyar No. 2, kuma yi amfani da grafana kawai don kyawawan hotuna. Yana da kyakkyawan ingantaccen bayani. Kuna iya ma lissafta sigogi na shekarar da ta gabata don kwatanta - grafana na iya yin hakan.

ƙarshe

Ban san dalili ba, amma ina son irin waɗannan sigogi. Suna nuna cewa rayuwa tana cikin sauri kuma komai yana canzawa. Jiya an yi yawa, yau kadan, gobe akwai wani abu daban. Ya rage don yin aiki tare da gidaje akan batun amfani. Amma ko da tare da abubuwan sha'awa na yanzu, kawai babban adadi kuma wanda ba a iya fahimta a cikin lissafin ya riga ya juya zuwa hoto mai fahimta na amfani.

Duk da aikina na kusan shekaru 20 a matsayin mai tsara shirye-shirye, a zahiri ban yi cudanya da bayanan bayanai ba. Saboda haka, shigar da bayanan waje ya zama kamar wani abu mai banƙyama da rashin fahimta. Komai ya canza labarin da ke sama - ya juya cewa screwing kayan aiki mai dacewa ana yin su a cikin dannawa biyu, kuma tare da kayan aiki na musamman, aikin ƙira ya zama ɗan sauƙi.

A cikin taken, na ambaci amfani da wutar lantarki. Abin takaici, a halin yanzu ba zan iya samar da kowane jadawali ba. Mita SDM120 ta mutu, ɗayan kuma yana da wahala lokacin da aka samu ta Modbus. Duk da haka, wannan ba zai shafi batun wannan labarin ba ta kowace hanya - za a gina jadawali a cikin hanyar da ruwa.

A cikin wannan labarin, na ba da waɗannan hanyoyin da na gwada kaina. Tabbas akwai wasu hanyoyin da za a tsara tattarawa da ganin bayanan da ban sani ba. Faɗa mini game da shi a cikin sharhi, zan yi sha'awar sosai. Zan yi farin ciki da ingantaccen zargi da sabbin dabaru. Ina fatan abin da ke sama zai taimaka wa wani.

source: www.habr.com

Add a comment