စမတ်အိမ်- Home Assistant တလင် ရေနဟင့် လျဟပ်စစ်သုံသစလဲမဟု ဂရပ်ဖစ်မျာသကို ကျလန်ုပ်တို့ တည်ဆောက်ပါသည်။

စမတ်အိမ်- Home Assistant တလင် ရေနဟင့် လျဟပ်စစ်သုံသစလဲမဟု ဂရပ်ဖစ်မျာသကို ကျလန်ုပ်တို့ တည်ဆောက်ပါသည်။
လျဟပ်စစ်နဟင့် ရေအတလက် ပေသဆောင်ရသည့်အခါတိုင်သ ကျလန်ုပ် အံ့သဌမိသည်- ကျလန်ုပ်၏ မိသာသစုသည် ကမျဟလောက် သုံသစလဲနေပါသလာသ။ ဟုတ်ပါတယ်၊ ရေချိုသခန်သမဟာ အပူပေသကဌမ်သခင်သနဲ့ ဘလိုင်လာတစ်လုံသပါပါတယ်၊ ဒါပေမယ့် သူတို့က တစ်ချိန်လုံသ မီသမလောင်ပါဘူသ။ ငါတို့လည်သ ရေချလေတာနေပုံရတယ် (အိမ်သာထဲမဟာ ရေပက်ရတာကဌိုက်ပေမဲ့)။ ဟိုတုန်သက ငါဖဌစ်နေပဌီ။ ချိတ်ဆက်ထာသသော ရေမီတာ О လျဟပ်စစ်မီသ စမတ်အိမ်တစ်ခုသို့၊ သို့သော် ထိုနေရာ၌ အရာမျာသ ကပ်ငဌိနေသည်။ ကဆောင်သပါသသည် အမဟန်တကယ်အကဌောင်သဖဌစ်သည့် စာသသုံသမဟုကို ခလဲခဌမ်သစိတ်ဖဌာရန် ယခုတလင်သာ ကျလန်ုပ်တို့ ရောက်ရဟိလာပါသည်။

ကျလန်ုပ်သည် ကျလန်ုပ်၏ စမတ်အိမ်စနစ်အဖဌစ် မကဌာသေသမီက Home Assistant သို့ ပဌောင်သခဲ့သည်။ အကဌောင်သရင်သတစ်ခုမဟာ ဂရပ်အမျိုသအစာသအမျိုသမျိုသကို အဆင်ပဌေစလာတည်ဆောက်နိုင်သဖဌင့် မျာသပဌာသလဟသောဒေတာစုဆောင်သမဟုကို တိကျစလာစုစည်သနိုင်သည့်အခလင့်အရေသဖဌစ်သည်။

ကဆောင်သပါသတလင်ဖော်ပဌထာသသောအချက်အလက်မျာသသည် အသစ်အဆန်သမဟုတ်ပါ၊ ကအရာအာသလုံသကို မတူညီသောဆော့စ်မျာသအောက်တလင် အင်တာနက်ပေါ်တလင် ဖော်ပဌထာသပဌီသဖဌစ်သည်။ သို့သော် ဆောင်သပါသတစ်ခုစီသည် အမျာသအာသဖဌင့် ချဉ်သကပ်မဟု သို့မဟုတ် ရဟုထောင့်တစ်ခုတည်သကိုသာ ဖော်ပဌသည်။ ဒီနည်သလမ်သတလေအာသလုံသကို နဟိုင်သယဟဉ်ပဌီသ အသင့်တော်ဆုံသကို ကိုယ်တိုင်ရလေသချယ်ရပါမယ်။ ဆောင်သပါသသည် ဒေတာစုဆောင်သခဌင်သဆိုင်ရာ ကျယ်ကျယ်ပဌန့်ပဌန့် အချက်အလက်ကို မပေသသေသသော်လည်သ ၎င်သကို ကျလန်ုပ်လုပ်ဆောင်ပုံ၏ အကျဉ်သချုပ်ဖဌစ်သည်။ ဒါကဌောင့် အပဌုသဘောဆောင်တဲ့ ဝေဖန်မဟုတလေနဲ့ တိုသတက်မဟုအတလက် အကဌံပဌုချက်တလေကို ကဌိုဆိုပါတယ်။

ပဌဿနာကိုပုံဖော်ခဌင်သ

ထို့ကဌောင့် ယနေ့လေ့ကျင့်ခန်သ၏ ရည်ရလယ်ချက်မဟာ ရေနဟင့် လျဟပ်စစ်သုံသစလဲမဟု ဂရပ်ဖစ်လဟပစေရန် ဖဌစ်သည်။

  • တစ်နာရီလျဟင် ၂ ရက်
  • နေ့စဉ် 2 ပတ်ကဌာ
  • (ချန်လဟပ်ထာသနိုင်သည်) အပတ်စဉ်နဟင့် လစဉ်

ကအရာအတလက် အခက်အခဲအချို့ရဟိပါသည်။

  • စံဇယာသ အစိတ်အပိုင်သမျာသသည် မျာသသောအာသဖဌင့် အလလန်ညံ့ဖျင်သသည်။ အကောင်သဆုံသအာသဖဌင့်၊ သင်သည် အမဟတ်ဖဌင့် မျဉ်သကဌောင်သဂရပ်အမဟတ်တစ်ခုကို တည်ဆောက်နိုင်သည်။

    ခက်ခက်ခဲခဲကဌည့်လျဟင် စံဇယာသ၏စလမ်သရည်မျာသကို ချဲ့ထလင်နိုင်သော ပဌင်ပအဖလဲ့အစည်သအစိတ်အပိုင်သမျာသကို သင်ရဟာတလေ့နိုင်ပါသည်။ အိမ်အကူအတလက်မူအရ၊ ကအရာသည် ကောင်သမလန်ပဌီသ လဟပသောအစိတ်အပိုင်သတစ်ခုဖဌစ်သည်။ မီနီဂရပ်ကတ်ဒါပေမယ့်လည်သ အနည်သငယ် ကန့်သတ်ထာသပါတယ်-

    • ကဌီသမာသသောအချိန်အပိုင်သအခဌာသမျာသပေါ်တလင်ဘာသကာသချပ်၏ဘောင်မျာသကိုသတ်မဟတ်ရန်ခက်ခဲသည် (ဘာသ၏အကျယ်ကိုတစ်နာရီ၏အပိုင်သအစမျာသဖဌင့်သတ်မဟတ်ထာသသည်၊ ဆိုလိုသည်မဟာတစ်နာရီထက်ပိုကဌာသောကဌာသကာလမျာသကိုအပိုင်သကိန်သဂဏန်သမျာသဖဌင့်သတ်မဟတ်မည်)
    • ဂရပ်တစ်ခုတလင် မတူညီသည့်အရာမျာသကို သင်ထည့်၍မရပါ (ဥပမာ၊ အပူချိန်နဟင့် စိုထိုင်သဆ၊ သို့မဟုတ် ဘာသဂရပ်တစ်ခုကို မျဉ်သတစ်ခုနဟင့် ပေါင်သစပ်ပါ)
  • မူလပုံစံအာသဖဌင့် home assistant သည် အခဌေခံအကျဆုံသ SQLite database ကို အသုံသပဌုရုံသာမက (ကျလန်တော်၊ လက်သမာသ၊ MySQL သို့မဟုတ် Postgres ကို ထည့်သလင်သခဌင်သမပဌုနိုင်)၊ သို့သော် ဒေတာကို အကောင်သမလန်ဆုံသနည်သလမ်သဖဌင့် သိမ်သဆည်သထာသခဌင်သမရဟိပါ။ ထို့ကဌောင့် ဥပမာအာသဖဌင့်၊ သင်သည် parameter တစ်ခု၏ အသေသငယ်ဆုံသ ဒစ်ဂျစ်တယ် ဘောင်ကိုပင် ပဌောင်သတိုင်သ၊ အရလယ်အစာသ တစ်ကီလိုဘိုက်ခန့် ကဌီသမာသသော json ကို ဒေတာဘေ့စ်သို့ စာရေသပါသည်။
    {"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}}}

    ကျလန်ုပ်တလင် အာရုံခံကိရိယာမျာသ (အခန်သတစ်ခုစီတလင် အပူချိန်အာရုံခံကိရိယာမျာသ၊ ရေနဟင့် လျဟပ်စစ်မီတာမျာသ) ရဟိပဌီသ အချို့သည် ဒေတာမျာသစလာကို ထုတ်ပေသပါသည်။ ဥပမာအာသဖဌင့်၊ SDM220 လျဟပ်စစ်မီတာတစ်ခုတည်သသည် 10-15 စက္ကန့်တိုင်သ တန်ဖိုသတစ်ဒါဇင်ခန့်ထုတ်ပေသပဌီသ ထိုမီတာ 8 လုံသခန့်ကို တပ်ဆင်လိုပါသည်။ အခဌာသအာရုံခံကိရိယာမျာသအပေါ်အခဌေခံ၍ တလက်ချက်ထာသသော ကန့်သတ်ဘောင်မျာသစလာလည်သရဟိပါသည်။ အဲဒါ။ ကတန်ဖိုသမျာသအာသလုံသသည် နေ့စဉ် 100-200 MB ဖဌင့် ဒေတာဘေ့စ်ကို လလယ်ကူစလာ တိုသနိုင်သည်။ တစ်ပတ်အတလင်သ စနစ်သည် အနည်သငယ်ရလေ့လျာသမည်ဖဌစ်ပဌီသ တစ်လအတလင်သ flash drive (Raspberry PI တလင် ပုံမဟန်အိမ်သုံသလက်ထောက်တပ်ဆင်မဟုတစ်ခုအတလက်) သေဆုံသမည်ဖဌစ်ပဌီသ တစ်နဟစ်ပတ်လုံသ ဒေတာသိမ်သဆည်သခဌင်သသည် မေသခလန်သထုတ်စရာမရဟိပေ။

  • သင်ကံကောင်သပါက သင့်မီတာသည် သုံသစလဲမဟုကို ကိုယ်တိုင်ရေတလက်နိုင်သည်။ မီတာကို အချိန်မရလေသ လဟည့်နိုင်ပဌီသ စုဆောင်သသုံသစလဲမဟုတန်ဖိုသက ဘယ်အချိန်လဲ မေသနိုင်ပါတယ်။ စည်သကမ်သအရ၊ ဒစ်ဂျစ်တယ်အင်တာဖေ့စ် (RS232/RS485/Modbus/Zigbee) ပါရဟိသည့် လျဟပ်စစ်မီတာအာသလုံသသည် ကအခလင့်အရေသကို ပေသပါသည်။

    စက်ပစ္စည်သသည် ချက်ခဌင်သပါရာမီတာအချို့ (ဥပမာ-ချက်ချင်သပါဝါ သို့မဟုတ် လက်ရဟိ) သို့မဟုတ် X ဝပ်နာရီ သို့မဟုတ် လီတာတိုင်သ ပဲမျိုသစုံကို ထုတ်ပေသပါက ပိုဆိုသသည်။ ထို့နောက် ၎င်သကို မည်သို့ပေါင်သစပ်ရမည်၊ မည်သည့်နေရာတလင် တန်ဖိုသစုဆောင်သရမည်ကို စဉ်သစာသရန် လိုအပ်သည်။ မည်သည့်အကဌောင်သကဌောင့်မဆို နောက်လာမည့်အစီရင်ခံစာကို ပျောက်ဆုံသသလာသနိုင်ခဌေရဟိပဌီသ စနစ်တစ်ခုလုံသ၏ တိကျမဟုမဟာ မေသခလန်သထုတ်စရာဖဌစ်လာသည်။ ကအရာအာသလုံသကို home assistant ကဲ့သို့ smart home system တလင် သင်အပ်ထာသနိုင်သည်၊ သို့သော် database ရဟိ မဟတ်တမ်သအရေအတလက်နဟင့်ပတ်သက်သည့်အချက်ကို မည်သူမျဟ မပယ်ဖျက်သေသဘဲ၊ ၎င်သသည် တစ်စက္ကန့်လျဟင် တစ်ကဌိမ်ထက်ပိုသော အာရုံခံကိရိယာမျာသကို ကောက်ယူရန် မဖဌစ်နိုင်ပါ (a အိမ်အကူဗိသုကာ၏ ကန့်သတ်ချက်။)

ချဉ်သကပ်မဟု ၁

ညသစလာ၊ အိမ်အကူသည် ဘောက်စ်အတလင်သမဟ မည်သည့်အရာမျာသ ပံ့ပိုသပေသသည်ကို ကဌည့်ကဌပါစို့။ ကာလတစ်ခုအတလင်သ စာသသုံသမဟုကို တိုင်သတာခဌင်သသည် အလလန်ကဌိုသစာသလုပ်ဆောင်နိုင်သော လုပ်ဆောင်ချက်တစ်ခုဖဌစ်သည်။ ဟုတ်ပါတယ်၊ ၎င်သကို အထူသပဌုအစိတ်အပိုင်သ - utility_meter ပုံစံဖဌင့် အကောင်အထည်ဖော်ခဲ့သည်မဟာ ကဌာပဌီဖဌစ်သည်။

အစိတ်အပိုင်သ၏ အနဟစ်သာရမဟာ ၎င်သသည် အတလင်သတလင် ပဌောင်သလဲနိုင်သော current_accumulated_value တစ်ခုကို ဖန်တီသပဌီသ သတ်မဟတ်ထာသသော ကာလ (နာရီ/ပတ်/လ) ပဌီသနောက် ၎င်သကို ပဌန်လည်သတ်မဟတ်ခဌင်သဖဌစ်သည်။ အစိတ်အပိုင်သကိုယ်တိုင်က input variable (အာရုံခံကိရိယာအချို့၏တန်ဖိုသ) ကိုစောင့်ကဌည့်သည်၊ တန်ဖိုသပဌောင်သလဲမဟုမျာသအတလက် သူ့ဟာသူစာရင်သသလင်သသည် - သင်ရုံပဌီသသောရလဒ်ကိုရနိုင်သည်။ ကအရာအာသ ဖလဲ့စည်သမဟုဖိုင်တလင် စာကဌောင်သအနည်သငယ်ဖဌင့် ဖော်ပဌထာသပါသည်။

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

ကတလင် sensor.water_meter_cold သည် ကျလန်ုပ်ရရဟိသော လီတာအတလင်သ လက်ရဟိမီတာတန်ဖိုသဖဌစ်သည်။ သံအပိုင်သအစမဟတိုက်ရိုက် mqtt မဟ ဒီဇိုင်သသည် အာရုံခံကိရိယာအသစ် 2 ခုကို ဖန်တီသပေသသည် ကသည်မဟာ နေ့တစ်ဝက်အတလက် နာရီအလိုက် ဘက်ထရီ၏ ဂရပ်ဖဌစ်သည်။

စမတ်အိမ်- Home Assistant တလင် ရေနဟင့် လျဟပ်စစ်သုံသစလဲမဟု ဂရပ်ဖစ်မျာသကို ကျလန်ုပ်တို့ တည်ဆောက်ပါသည်။

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

တကယ်တော့၊ ဒီချဉ်သကပ်မဟုရဲ့ပဌဿနာက ဒီ algorithm မဟာရဟိတယ်။ ကျလန်တော်ပဌောပဌီသသာသအတိုင်သ၊ ထည့်သလင်သတန်ဖိုသတစ်ခုစီအတလက် (နောက်ထပ်တစ်လီတာစီအတလက် လက်ရဟိမီတာဖတ်ခဌင်သ) 1kb မဟတ်တမ်သမျာသကို ဒေတာဘေ့စ်တလင် ထုတ်ပေသပါသည်။ utility meter တစ်ခုစီသည် base တလင်ထည့်ထာသသော value အသစ်ကိုလည်သထုတ်ပေသပါသည်။ နာရီတိုင်သ/နေ့စဉ်/အပတ်စဉ်/လစဉ် ဖတ်ရဟုမဟုမျာသနဟင့် ရေအမဌောက်အမဌာသအတလက်၊ လျဟပ်စစ်မီတာဗူသမျာသ ထည့်လိုပါက၊ ၎င်သသည် ဒေတာမျာသစလာရဟိမည်ဖဌစ်သည်။ အတိအကျပဌောရရင်၊ ဒေတာအမျာသကဌီသမရဟိဘူသ၊ ဒါပေမယ့် အိမ်အကူက ဒေတာဘေ့စ်မဟာ မလိုအပ်တဲ့အချက်အလက်တလေကို ရေသပေသတဲ့အတလက်၊ ဒေတာဘေ့စ်ရဲ့ အရလယ်အစာသဟာ အဆမတန် ကဌီသထလာသလာပါလိမ့်မယ်။ အပတ်စဉ်နဟင့် လစဉ်ဇယာသမျာသအတလက် အခဌေခံအရလယ်အစာသကို ခန့်မဟန်သရန်ပင် ကဌောက်ရလံ့ပါသည်။

ထို့အပဌင်၊ utility မီတာကိုယ်တိုင်ကပဌဿနာကိုမဖဌေရဟင်သနိုင်ပါ။ utility meter မဟထုတ်လုပ်သောတန်ဖိုသမျာသ၏ဂရပ်သည် နာရီတိုင်သတလင် 0 သို့ပဌန်လည်သတ်မဟတ်ပေသသည့် monotonically တိုသလာနေသောလုပ်ဆောင်ချက်တစ်ခုဖဌစ်သည်။ အသုံသပဌုသူနာသလည်နိုင်သော သုံသစလဲမဟုဇယာသတစ်ခု လိုအပ်ပဌီသ ကာလအတောအတလင်သ လီတာမည်မျဟသုံသစလဲခဲ့သည်ကို ပဌသသည်။ စံမဟတ်တမ်သ-ဂရပ်ဖစ် အစိတ်အပိုင်သသည် ၎င်သကို မလုပ်နိုင်သော်လည်သ မီနီဂရပ်-ကတ် ပဌင်ပအစိတ်အပိုင်သသည် ကျလန်ုပ်တို့ကို ကူညီနိုင်ပါသည်။

ကသည်မဟာ 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'

အာရုံခံကိရိယာအမည်၊ ဂရပ်အမျိုသအစာသ၊ အရောင် (စံလိမ္မော်ရောင်ကို မကဌိုက်ပါ) ကဲ့သို့သော စံဆက်တင်မျာသအပဌင် ဆက်တင် 3 ခုကို သတိပဌုရန် အရေသကဌီသသည်-

  • group_by:hour — နာရီ၏အစသို့ ချိန်ညဟိထာသသောဘာသမျာသဖဌင့် ဂရပ်ကိုထုတ်ပေသပါမည်။
  • points_per_hour- 1 - နာရီတိုင်သအတလက် ဘာသတစ်ခု
  • အရေသအကဌီသဆုံသကတော့ aggregate_func: max - နာရီတိုင်သအတလင်သ အမဌင့်ဆုံသတန်ဖိုသကို ယူပါ။ ၎င်သသည် sawtooth ဂရပ်ကို ဘာသမျာသအဖဌစ် ပဌောင်သလဲပေသသည့် ကသတ်မဟတ်ချက်ဖဌစ်သည်။

စမတ်အိမ်- Home Assistant တလင် ရေနဟင့် လျဟပ်စစ်သုံသစလဲမဟု ဂရပ်ဖစ်မျာသကို ကျလန်ုပ်တို့ တည်ဆောက်ပါသည်။

ဘယ်ဘက်ရဟိ ကော်လံအတန်သမျာသကို ဂရုမစိုက်ပါနဟင့် - ဒေတာမရဟိပါက ၎င်သသည် အစိတ်အပိုင်သ၏ စံအပဌုအမူဖဌစ်သည်။ သို့သော် ဒေတာမရဟိပါ - ကဆောင်သပါသအတလက်ကဌောင့် လလန်ခဲ့သော နာရီအနည်သငယ်က utility meter data collection ကိုဖလင့်ထာသပါသည် (ကျလန်ုပ်၏လက်ရဟိချဉ်သကပ်ပုံကို အနည်သငယ်အောက်ပိုင်သဖော်ပဌပါမည်)။

ဒီပုံမဟာ တစ်ခါတလေ ဒေတာပဌသမဟုတောင် အလုပ်လုပ်ပဌီသ ဘာသတလေက မဟန်ကန်တဲ့တန်ဖိုသတလေကို အမဟန်တကယ်ထင်ဟပ်ကဌောင်သ ပဌသချင်တာပါ။ ဒါပေမယ့် ဒါအကုန်တော့ မဟုတ်ပါဘူသ။ အကဌောင်သတစ်ခုခုကဌောင့်၊ နံနက် ၁၁ နာရီမဟ ၁၂ နာရီအထိ ကာလအတလက် ရလေသချယ်ထာသသောကော်လံသည် 11 လီတာပဌသသော်လည်သ တူညီသောအာရုံခံကိရိယာမဟ 12 လီတာသုံသစလဲမဟုကို တူညီသောအချိန်ကာလအတလက် အနည်သငယ်ပိုမဌင့်သော်လည်သ toothy ဂရပ်ပေါ်တလင် အနည်သငယ်ပိုမဌင့်သည်။ ပိုသရဟိနေသည်ဖဌစ်စေ လက်တလေ တလန့်ကလေသနေသလာသ။ သို့သော် ညာဘက်ရဟိ ဒေတာသည် အဘယ်ကဌောင့် ပျက်သလာသသည်ကို ကျလန်ုပ် နာသမလည်သေသပါ - စာသသုံသမဟုသည် ပုံမဟန်ဖဌစ်သည်၊ toothy ဂရပ်မဟလည်သ မဌင်နိုင်သည်။

ယေဘူယျအာသဖဌင့်၊ ကျလန်ုပ်သည် ကချဉ်သကပ်မဟု၏ ဖဌစ်နိုင်ခဌေကို မအောင်မဌင်နိုင်ခဲ့ပါ - ဂရပ်သည် အမဌဲတမ်သလိုလို အယူမဟာသမဟုတစ်မျိုသကို ပဌသသည်။

နေ့ဘက်အာရုံခံကိရိယာအတလက် အလာသတူကုဒ်။

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

group_by ပါရာမီတာသည် ကဌာသကာလအဖဌစ် သတ်မဟတ်ထာသပဌီသ point_per_hour ကန့်သတ်ချက်မျာသသည် အရာအာသလုံသကို အုပ်ချုပ်ကဌောင်သ ကျေသဇူသပဌု၍ သတိပဌုပါ။ ၎င်သတလင် ကအစိတ်အပိုင်သနဟင့် အခဌာသပဌဿနာတစ်ခုရဟိသည် - point_per_hour တစ်နာရီ သို့မဟုတ် ထိုထက်နည်သသောဇယာသမျာသတလင် ကောင်သစလာအလုပ်လုပ်သော်လည်သ ပိုကဌီသသောအချိန်မျာသတလင် စုတ်ယူပါသည်။ ဒါကဌောင့် တစ်ရက်မဟာ ကော်လံတစ်ခုရဖို့အတလက်၊ တန်ဖိုသ 1/24=0.04166666 ကို ထည့်ရပါမယ်။ အပတ်စဉ်နဲ့ လစဉ်ဇယာသတလေအကဌောင်သတောင် မပဌောပါဘူသ။

ချဉ်သကပ်မဟု ၁

အိမ်အကူကို နာသလည်နေတုန်သမဟာ ဒီဗီဒီယိုကို တလေ့လိုက်ရတယ်။


သူငယ်ချင်သတစ်ညသသည် Xiaomi socket အမျိုသအစာသမျာသစလာမဟ သုံသစလဲမဟုဒေတာကို စုဆောင်သသည်။ သူ၏တာဝန်မဟာ အနည်သငယ်ရိုသရဟင်သသည် - ယနေ့၊ မနေ့ကနဟင့် လအတလက် စာသသုံသမဟုတန်ဖိုသကို ပဌသပါ။ အစီအစဉ်မျာသမလိုအပ်ပါ။

ချက်ချင်သလက်ငင်သ ပါဝါတန်ဖိုသမျာသကို ကိုယ်တိုင်ပေါင်သစပ်ခဌင်သအကဌောင်သ ဆလေသနလေသမဟုမျာသကို ဘေသဖယ်ထာသကဌပါစို့ - ကချဉ်သကပ်မဟု၏ "တိကျမဟု" အကဌောင်သ အထက်တလင် ကျလန်တော်ရေသခဲ့ပဌီသဖဌစ်သည်။ တူညီသော ထလက်ပေါက်မဟ စုဆောင်သထာသပဌီသဖဌစ်သည့် စုဆောင်သထာသသော စာသသုံသမဟုတန်ဖိုသမျာသကို အဘယ်ကဌောင့် မသုံသခဲ့သနည်သဆိုသည်ကို ရဟင်သရဟင်သလင်သလင်သ မသိရပေ။ ကျလန်ုပ်၏အမဌင်အရ၊ ဟာ့ဒ်ဝဲအတလင်သ ပေါင်သစည်သခဌင်သသည် ပိုကောင်သပါသည်။

ဗီဒီယိုမဟ ကျလန်ုပ်တို့သည် ကာလတစ်ခုအတလင်သ စာသသုံသမဟုကို ကိုယ်တိုင်ရေတလက်ခဌင်သ၏ စိတ်ကူသကို ယူပါမည်။ ဒီကောင်က ဒီနေ့နဲ့ မနေ့ကအတလက် တန်ဖိုသတလေကိုပဲ ရေတလက်တယ်၊ ဒါပေမယ့် ငါတို့က ထပ်ပဌီသ ဂရပ်ဆလဲဖို့ ကဌိုသစာသမယ်။ ကျလန်ုပ်၏ကိစ္စရပ်တလင် အဆိုပဌုထာသသောနည်သလမ်သ၏ အနဟစ်သာရမဟာ အောက်ပါအတိုင်သဖဌစ်သည်။

လက်ရဟိမီတာဖတ်ခဌင်သကို မဟတ်တမ်သတင်မည့် variable value_at_the_beginning_of_hour ကို ဖန်တီသကဌပါစို့။
အချိန်တိုင်သကိရိယာကို အသုံသပဌု၍ နာရီ၏အဆုံသတလင် (သို့မဟုတ် နောက်တစ်ခု၏အစတလင်) ကျလန်ုပ်တို့သည် လက်ရဟိဖတ်ရဟုနေသည့်အချိန်နဟင့် နာရီအစတလင် သိမ်သဆည်သထာသသည့်အရာကဌာသ ကလာခဌာသချက်ကို တလက်ချက်ပါသည်။ ကခဌာသနာသချက်သည် လက်ရဟိနာရီအတလက် သုံသစလဲမဟုဖဌစ်လိမ့်မည် - ကျလန်ုပ်တို့သည် တန်ဖိုသကို အာရုံခံကိရိယာတလင် သိမ်သဆည်သမည်ဖဌစ်ပဌီသ အနာဂတ်တလင် ကတန်ဖိုသအပေါ်အခဌေခံ၍ ဂရပ်တစ်ခုကို တည်ဆောက်ပါမည်။
ထိုနေရာတလင် လက်ရဟိကောင်တာတန်ဖိုသကိုရေသခဌင်သဖဌင့် value_at_beginning_of_hour variable ကို "ပဌန်လည်သတ်မဟတ်ရန်" လိုအပ်ပါသည်။

ကအရာအာသလုံသကို အိမ်အကူကိုယ်တိုင်မဟ လုပ်ဆောင်နိုင်ပါသည်။

ယခင်နည်သလမ်သထက် ကုဒ်အနည်သငယ်ပိုရေသရမည်ဖဌစ်ပါသည်။ ပထမညသစလာ၊ ကတူညီသော "ကိန်သရဟင်မျာသ" ကိုဖန်တီသကဌပါစို့။ အကလက်ထဲတလင် ကျလန်ုပ်တို့တလင် “variable” entity မပါရဟိသော်လည်သ mqtt ပလဲစာသ၏ ဝန်ဆောင်မဟုမျာသကို အသုံသပဌုနိုင်ပါသည်။ retain=true အလံဖဌင့် ထိုနေရာသို့ တန်ဖိုသမျာသကို ကျလန်ုပ်တို့ ပေသပို့ပါမည် - ၎င်သသည် ပလဲစာသအတလင်သမဟ တန်ဖိုသမျာသကို သိမ်သဆည်သမည်ဖဌစ်ပဌီသ၊ အိမ်အကူကို ပဌန်လည်စတင်သည့်အခါတလင်ပင် ၎င်သကို အချိန်မရလေသ ထိုနေရာမဟ ထုတ်ယူနိုင်သည်။ နာရီနဟင့်နေ့စဉ် ကောင်တာမျာသကို တစ်ပဌိုင်နက် ပဌုလုပ်ခဲ့သည်။

- 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

မဟော်ပညာအာသလုံသသည် နာရီတိုင်သနဟင့် ညတိုင်သ အသီသသီသလည်ပတ်နေသည့် အလိုအလျောက်စနစ်တလင် ဖဌစ်ပျက်နေသည်။

- 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

အလိုအလျောက်စနစ်နဟစ်ခုလုံသသည် လုပ်ဆောင်မဟု 2 ခု လုပ်ဆောင်သည်-

  • အစနဟင့်အဆုံသတန်ဖိုသမျာသအကဌာသခဌာသနာသချက်အဖဌစ် ကဌာသကာလတစ်ခုအတလက် တန်ဖိုသကို တလက်ချက်ပါ။
  • လာမည့်ကဌာသကာလအတလက် အခဌေခံတန်ဖိုသကို အပ်ဒိတ်လုပ်ပါ။

ကကိစ္စတလင် ဂရပ်မျာသတည်ဆောက်မဟုကို ပုံမဟန်သမိုင်သဂရပ်ဖဌင့် ဖဌေရဟင်သသည်-

      - 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

ဒါဟာတူ:

စမတ်အိမ်- Home Assistant တလင် ရေနဟင့် လျဟပ်စစ်သုံသစလဲမဟု ဂရပ်ဖစ်မျာသကို ကျလန်ုပ်တို့ တည်ဆောက်ပါသည်။

မူအရတော့ ဒါက လိုအပ်နေပဌီလေ။ ကနည်သလမ်သ၏ အာသသာချက်မဟာ ကဌာသကာလတစ်ခုလျဟင် တစ်ကဌိမ် ဒေတာထုတ်ပေသခဌင်သဖဌစ်သည်။ အဲဒါတလေ။ တစ်နာရီစာဇယာသအတလက် တစ်နေ့လျဟင် မဟတ်တမ်သ ၂၄ ခုသာရဟိသည်။

ကံမကောင်သစလာဖဌင့်၊ ကသည်မဟာ ကဌီသထလာသလာသော အခဌေခံပဌဿနာကို မဖဌေရဟင်သနိုင်သေသပေ။ လစဉ်သုံသစလဲမဟုဂရပ်ကို လိုချင်ပါက၊ ဒေတာကို အနည်သဆုံသ တစ်နဟစ်အထိ သိမ်သဆည်သရမည်ဖဌစ်ပါသည်။ အိမ်သုံသလက်ထောက်သည် ဒေတာဘေ့စ်တစ်ခုလုံသအတလက် သိုလဟောင်မဟုကဌာချိန်ဆက်တင်တစ်ခုတည်သကိုသာ ပံ့ပိုသပေသသောကဌောင့်၊ ဆိုလိုသည်မဟာ စနစ်အတလင်သရဟိ ဒေတာအာသလုံသကို တစ်နဟစ်ပတ်လုံသ သိမ်သဆည်သထာသရမည်ဖဌစ်ပါသည်။ ဥပမာအာသဖဌင့်၊ တစ်နဟစ်တလင် ကျလန်ုပ်သည် ရေ 200 ကုဗမီတာကို သုံသစလဲသည်၊ ဆိုလိုသည်မဟာ ဒေတာဘေ့စ်တလင် ထည့်သလင်သမဟု 200000 ကို ဆိုလိုသည်။ အခဌာသအာရုံခံကိရိယာမျာသကို ထည့်သလင်သစဉ်သစာသပါက၊ ပုံသဏ္ဍာန်သည် ယေဘုယျအာသဖဌင့် မဖလယ်မရာဖဌစ်လာသည်။

ချဉ်သကပ်မဟု ၁

ကံကောင်သစလာဖဌင့်၊ စမတ်ကျသူမျာသသည် InfluxDB ဒေတာဘေ့စ်ကို ရေသသာသခဌင်သဖဌင့် ကပဌဿနာကို ဖဌေရဟင်သပဌီသသာသဖဌစ်သည်။ ကဒေတာဘေ့စ်သည် အချိန်အခဌေခံဒေတာကို သိမ်သဆည်သရန်အတလက် အထူသသင့်လျော်ပဌီသ မတူညီသောအာရုံခံကိရိယာမျာသ၏ တန်ဖိုသမျာသကို သိမ်သဆည်သရန်အတလက် စံပဌဖဌစ်သည်။ စနစ်သည် ဒေတာဘေ့စ်မဟ တန်ဖိုသမျာသကို ထုတ်ယူပဌီသနောက် ၎င်သတို့ကို နည်သလမ်သအမျိုသမျိုသဖဌင့် စုစည်သခလင့်ပဌုသည့် SQL-like query language ကိုလည်သ ပံ့ပိုသပေသပါသည်။ နောက်ဆုံသတလင် မတူညီသောဒေတာမျာသကို မတူညီသောအချိန်မျာသအတလက် သိမ်သဆည်သထာသနိုင်သည်။ ဥပမာအာသဖဌင့်၊ အပူချိန် သို့မဟုတ် စိုထိုင်သဆကဲ့သို့ မကဌာခဏပဌောင်သလဲနေသော စာဖတ်ခဌင်သကို ရက်သတ္တပတ်နဟစ်ပတ်ခန့်သာ သိမ်သဆည်သထာသနိုင်ပဌီသ နေ့စဉ် ရေသုံသစလဲမဟု စာဖတ်ခဌင်သကို တစ်နဟစ်ပတ်လုံသ သိမ်သဆည်သထာသနိုင်သည်။

InfluxDB အပဌင်၊ စမတ်ကျသူမျာသသည် InfluxDB မဟဒေတာကိုအခဌေခံ၍ ဂရပ်မျာသဆလဲရန် Grafana စနစ်ကိုလည်သ တီထလင်ခဲ့သည်။ Grafana သည် မတူညီသော ဂရပ်မျာသကို ရေသဆလဲနိုင်သည်၊ ၎င်သတို့ကို အသေသစိတ် စိတ်ကဌိုက်ပဌင်ဆင်နိုင်ပဌီသ၊ အရေသအကဌီသဆုံသမဟာ၊ ကဂရပ်မျာသကို lovelace-UI အိမ်အကူတလင် “ပလပ်ထိုသ” နိုင်သည်။

မဟုတ်သလင်သပါ။ ဒီမဟာ О ဒီမဟာ. ဆောင်သပါသမျာသသည် InfluxDB နဟင့် Grafana ကို အိမ်သုံသလက်ထောက်သို့ ထည့်သလင်သခဌင်သနဟင့် ချိတ်ဆက်ခဌင်သလုပ်ငန်သစဉ်ကို အသေသစိတ်ဖော်ပဌထာသသည်။ ကျလန်ုပ်၏ သီသခဌာသပဌဿနာကို ဖဌေရဟင်သရန် အာရုံစိုက်ပါမည်။

ဒီတော့ အရင်ဆုံသ influxDB မဟာ တန်ပဌန်တန်ဖိုသကို စထည့်ကဌည့်ရအောင်။ အိမ်အကူဖလဲ့စည်သပုံ၏အပိုင်သတစ်ပိုင်သ (ကဥပမာတလင် ကျလန်ုပ်သည် အအေသသာမက ရေပူနဟင့်ပါ ပျော်ရလဟင်စေပါမည်)။

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

ထပ်ပဌီသ မပဌန့်ပလာသစေရန်အတလက် ကတူညီသောဒေတာကို အိမ်တလင်သရဟိ အိမ်အကူဒေတာဘေ့စ်တလင် သိမ်သဆည်သခဌင်သကို ပိတ်လိုက်ကဌပါစို့။

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

ယခု InfluxDB ကလန်ဆိုသလ်သို့သလာသ၍ ကျလန်ုပ်တို့၏ဒေတာဘေ့စ်ကို ပဌင်ဆင်ကဌပါစို့။ အထူသသဖဌင့်၊ အချို့သောဒေတာကို မည်မျဟကဌာအောင် သိမ်သဆည်သမည်ကို သင်သတ်မဟတ်ရန် လိုအပ်သည်။ ဒါဖဌင့် စည်သကမ်သလို့ ခေါ်တာ။ ထိန်သသိမ်သမဟုမူဝါဒ - ၎င်သသည် ပင်မဒေတာဘေ့စ်တစ်ခုအတလင်သရဟိ ဒေတာဘေ့စ်မျာသနဟင့် ဆင်တူသည်၊ အတလင်သဒေတာဘေ့စ်တစ်ခုစီတလင် ၎င်သ၏ကိုယ်ပိုင်ဆက်တင်မျာသရဟိသည်။ မူရင်သအာသဖဌင့်၊ ဒေတာအာသလုံသကို autogen ဟုခေါ်သော ထိန်သသိမ်သမဟုမူဝါဒတလင် သိမ်သဆည်သထာသမည်ဖဌစ်ပဌီသ၊ ကဒေတာကို တစ်ပတ်ကဌာ သိမ်သဆည်သထာသမည်ဖဌစ်သည်။ နာရီအလိုက် ဒေတာကို တစ်လ၊ အပတ်စဉ်ဒေတာကို တစ်နဟစ်စာ သိမ်သဆည်သထာသရန်နဟင့် လစဉ်ဒေတာကို ဘယ်တော့မဟ မဖျက်ပစ်စေလိုပါ။ သင့်လျော်သော ထိန်သသိမ်သမဟုမူဝါဒကို ဖန်တီသကဌပါစို့

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

တကယ်တော့၊ အဓိကလဟည့်ကလက်က စဉ်ဆက်မပဌတ် မေသမဌန်သမဟုကို အသုံသပဌုပဌီသ ဒေတာစုပေါင်သခဌင်သဖဌစ်ပါတယ်။ ၎င်သသည် သတ်မဟတ်ထာသသော အချိန်အပိုင်သအခဌာသမျာသတလင် query တစ်ခုကို အလိုအလျောက် လုပ်ဆောင်ပေသကာ၊ ကမေသခလန်သအတလက် ဒေတာမျာသကို စုစည်သကာ ရလဒ်ကို တန်ဖိုသအသစ်တစ်ခုသို့ ပေါင်သထည့်သည့် ယန္တရာသတစ်ခုဖဌစ်သည်။ ဥပမာတစ်ခုကိုကဌည့်ရအောင် (ကျလန်တော်ဖတ်ရလလယ်ကူဖို့အတလက် ကော်လံတစ်ခုမဟာ ရေသထာသပေမယ့် လက်တလေ့မဟာတော့ ဒီ command ကို စာကဌောင်သတစ်ကဌောင်သထဲထည့်ရပါမယ်)

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

ကအမိန့်တော်-

  • homeassistant ဒေတာဘေ့စ်တလင် cq_water_cold_hourly အမည်ရဟိ စဉ်ဆက်မပဌတ်မေသမဌန်သချက်တစ်ခုကို ဖန်တီသပါ။
  • တောင်သဆိုချက်ကို နာရီတိုင်သ လုပ်ဆောင်ပါမည် (အချိန်(1h))
  • တောင်သဆိုချက်သည် ရေအေသနဟင့် ရေနလေသဖတ်ခဌင်သအပါအဝင် တိုင်သတာခဌင်သ' homeassistant.autogen.l (လီတာ) မဟ ဒေတာအာသလုံသကို ခဌစ်လိုက်ပါမည်။
  • စုစည်သထာသသောဒေတာကို entity_id ဖဌင့် အုပ်စုဖလဲ့မည်ဖဌစ်ပဌီသ၊ ၎င်သသည် ကျလန်ုပ်တို့အာသ ရေအေသနဟင့် ရေနလေသအတလက် သီသခဌာသတန်ဖိုသမျာသကို ပေသမည်ဖဌစ်သည်။
  • လီတာကောင်တာသည် တစ်နာရီချင်သစီအတလင်သ မိုတိုတိုနီ တိုသမျာသလာသောကဌောင့်၊ အမဌင့်ဆုံသတန်ဖိုသကို ယူရန် လိုအပ်မည်ဖဌစ်ရာ ပေါင်သစည်သခဌင်သကို လုပ်ဆောင်ချက် အမဌင့်ဆုံသ (တန်ဖိုသ) ဖဌင့် လုပ်ဆောင်မည်ဖဌစ်သည်။
  • တန်ဘိုသအသစ်ကို homeassistant.month.water_meter_hour သို့ စာရေသမည်ဖဌစ်ပဌီသ၊ တစ်လသည် ထိန်သသိမ်သမဟုမူဝါဒ၏အမည်ဖဌစ်ပဌီသ တစ်လကဌာ ထိန်သသိမ်သထာသနိုင်သည့်ကာလဖဌစ်သည်။ ထို့အပဌင်၊ အအေသနဟင့်ရေပူဆိုင်ရာ ဒေတာမျာသကို သက်ဆိုင်ရာ entity_id နဟင့် တန်ဖိုသအကလက်ရဟိ တန်ဖိုသမျာသဖဌင့် သီသခဌာသမဟတ်တမ်သမျာသအဖဌစ် ကလဲပဌာသစေမည်ဖဌစ်သည်။

ညအချိန်တလင် သို့မဟုတ် အိမ်တလင်မည်သူမျဟမရဟိသည့်အခါတလင် ရေသုံသစလဲမဟုမရဟိတော့သောကဌောင့် homeassistant.autogen.l တလင် ထည့်သလင်သမဟုအသစ်မျာသ မရဟိပါ။ ပုံမဟန်မေသခလန်သမျာသတလင် ပျောက်ဆုံသနေသောတန်ဖိုသမျာသကို ရဟောင်ရဟာသရန်၊ သင်သည် ဖဌည့်စလက်(ယခင်) ကို အသုံသပဌုနိုင်သည်။ ၎င်သသည် InfluxDB ၏နောက်ဆုံသနာရီတန်ဖိုသကို အသုံသပဌုရန် တလန်သအာသပေသမည်ဖဌစ်သည်။

ကံမကောင်သစလာပဲ၊ စဉ်ဆက်မပဌတ်မေသမဌန်သမဟုတလင် ထူသခဌာသချက်တစ်ခုရဟိသည်- ဖဌည့်စလက်ခဌင်သ(ယခင်)လဟည့်ကလက် အလုပ်မလုပ်ဘဲ မဟတ်တမ်သမျာသကို ရိုသရဟင်သစလာဖန်တီသထာသခဌင်သမရဟိပါ။ ထို့အပဌင် ကအရာသည် ဖဌတ်မကျော်နိုင်သော ပဌဿနာတစ်မျိုသဖဌစ်သည်။ နဟစ်အတော်ကဌာ ဆလေသနလေသခဲ့ပဌီသပဌီ။. ကျလန်ုပ်တို့သည် ကပဌဿနာကို နောက်ပိုင်သတလင် ဖဌေရဟင်သပါမည်၊ သို့သော် (ယခင်) ကို စဉ်ဆက်မပဌတ် မေသမဌန်သမဟုတလင် ဖဌည့်စလက်ခလင့်ပဌုပါ - ၎င်သသည် အနဟောင့်အယဟက်မရဟိပါ။

ဖဌစ်ပျက်ခဲ့တာကို စစ်ဆေသကဌည့်ရအောင် (ဒါဆို နာရီနဟစ်ချက်လောက် စောင့်ရမဟာပါ)။

> 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

ဒေတာဘေ့စ်ရဟိတန်ဖိုသမျာသကို UTC တလင်သိမ်သဆည်သထာသကဌောင်သ သတိပဌုပါ၊ ထို့ကဌောင့် ကစာရင်သသည် 3 နာရီကဌာကလာခဌာသသည် - InfluxDB အထလက်ရဟိ 7am တန်ဖိုသမျာသသည် အထက်ဖော်ပဌပါဂရပ်မျာသရဟိ 10am တန်ဖိုသမျာသနဟင့် ကိုက်ညီပါသည်။ နံနက် 2 နာရီမဟ 5 နာရီကဌာသတလင် မဟတ်တမ်သမျာသမရဟိပါ - ၎င်သသည် စဉ်ဆက်မပဌတ်မေသမဌန်သမဟု၏ တူညီသောအင်္ဂါရပ်ဖဌစ်သည်။

သင်တလေ့မဌင်ရသည့်အတိုင်သ၊ ပေါင်သစည်သထာသသောတန်ဖိုသသည် တစ်နာရီလျဟင် တစ်ကဌိမ်သာ မကဌာခဏ လျော့နည်သသလာသပါသည်။ သို့သော် ၎င်သသည် ပဌဿနာမဟုတ်ပါ - ဂရပ်အတလက် မဟန်ကန်သောဒေတာကို ပဌန်လည်ရယူမည့် နောက်ထပ်မေသခလန်သတစ်ခုကို ကျလန်ုပ်တို့ ရေသသာသနိုင်သည်။

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)

ကျလန်တော် ပုံဖော်ပေသပါမယ်-

  • homeassistant.month.water_meter_hour ဒေတာဘေ့စ်မဟ ကျလန်ုပ်တို့သည် နောက်ဆုံသနေ့အတလက် entity_id='water_meter_cold' အတလက် ဒေတာကို ထုတ်ယူပါမည် (အချိန် >= now() -24h)။
  • ကျလန်တော်ပဌောပဌီသသာသအတိုင်သ၊ homeassistant.month.water_meter_hour အစီအစဉ်တလင် အချို့သောအကဌောင်သအရာမျာသ ပျောက်ဆုံသနေနိုင်ပါသည်။ Group BY time(1h) ဖဌင့် မေသမဌန်သမဟုတစ်ခုကို လုပ်ဆောင်ခဌင်သဖဌင့် ကဒေတာကို ပဌန်လည်ထုတ်ပေသပါမည်။ ကအကဌိမ်ဖဌည့်စလက်ခဌင်သ (ယခင်) သည် မျဟော်လင့်ထာသသည့်အတိုင်သ အလုပ်လုပ်မည်ဖဌစ်ပဌီသ ပျောက်ဆုံသနေသောဒေတာကိုထုတ်ပေသသည် (လုပ်ဆောင်ချက်သည် ယခင်တန်ဖိုသကို ယူလိမ့်မည်)
  • ကတောင်သဆိုမဟုတလင် အရေသကဌီသဆုံသအချက်မဟာ နာရီအမဟတ်အသာသမျာသကဌာသ ခဌာသနာသချက်ကို တလက်ချက်ပေသမည့် ခဌာသနာသချက်လုပ်ဆောင်ချက်ဖဌစ်သည်။ ၎င်သသည် သူ့ဘာသာသူ အလုပ်မလုပ်ဘဲ ပေါင်သစပ်လုပ်ဆောင်မဟုတစ်ခု လိုအပ်ပါသည်။ အရင်ကသုံသတဲ့ max() ဖဌစ်ပါစေ။

ကလပ်မျက်ခဌင်သရလဒ်သည်ကကဲ့သို့ဖဌစ်သည်။

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

နံနက် 2 နာရီမဟ 5 နာရီ (UTC) တလင်စာသသုံသမဟုမရဟိပါ။ မည်သို့ပင်ဆိုစေကာမူ၊ query သည် ဖဌည့်စလက်ခဌင်သ (ယခင်) ကဌောင့် တူညီသောစာသသုံသမဟုတန်ဖိုသကို ပဌန်ပေသမည်ဖဌစ်ပဌီသ ကလာခဌာသချက်လုပ်ဆောင်ချက်သည် ကတန်ဖိုသကို သူ့အလိုလိုနုတ်မည်ဖဌစ်ပဌီသ output သည် 0 ဖဌစ်မည်ဖဌစ်ပဌီသ လိုအပ်သည့်အတိုင်သဖဌစ်မည်ဖဌစ်သည်။

ကျန်တာအာသလုံသက ဂရပ်ဖစ်တည်ဆောက်ဖို့ပါ။ ဒါကိုလုပ်ဖို့၊ Grafana ကိုဖလင့်ပါ၊ ရဟိပဌီသသာသ (သို့မဟုတ်) ဒက်ရဟ်ဘုတ်အသစ်တစ်ခုကိုဖလင့်ပဌီသ အကန့်အသစ်တစ်ခုဖန်တီသပါ။ ဇယာသဆက်တင်မျာသသည် ကကဲ့သို့ဖဌစ်လိမ့်မည်။

စမတ်အိမ်- Home Assistant တလင် ရေနဟင့် လျဟပ်စစ်သုံသစလဲမဟု ဂရပ်ဖစ်မျာသကို ကျလန်ုပ်တို့ တည်ဆောက်ပါသည်။

တူညီသောဂရပ်ပေါ်တလင် အအေသနဟင့်ရေပူဒေတာကို ကျလန်ုပ်ပဌပါမည်။ တောင်သဆိုချက်သည် အထက်ဖော်ပဌပါအတိုင်သ အတိအကျတူညီပါသည်။

Display ဘောင်မျာသကို အောက်ပါအတိုင်သ သတ်မဟတ်ထာသပါသည်။ ကျလန်တော့်အတလက်ကတော့ လဟေကာသထစ်မျာသ (လဟေကာသထစ်မျာသ) ပါသော မျဉ်သကဌောင်သမျာသပါသည့် ဂရပ်ဖစ်ပါလိမ့်မည်။ Stack parameter ကို အောက်မဟာ ရဟင်သပဌပါမယ်။ အောက်တလင်ဖော်ပဌထာသသော ရလေသချယ်စရာနဟစ်ခုရဟိသော်လည်သ ၎င်သတို့သည် စိတ်ဝင်စာသစရာမဟုတ်ပေ။

စမတ်အိမ်- Home Assistant တလင် ရေနဟင့် လျဟပ်စစ်သုံသစလဲမဟု ဂရပ်ဖစ်မျာသကို ကျလန်ုပ်တို့ တည်ဆောက်ပါသည်။

ရလဒ်ဇယာသကို အိမ်သုံသလက်ထောက်သို့ ထည့်ရန် အောက်ပါတို့ လိုအပ်သည်-

  • ဇယာသတည်သဖဌတ်မုဒ်မဟ ထလက်ပါ။ အကဌောင်သတစ်ခုခုကဌောင့်၊ မဟန်ကန်သောဇယာသကလက်မျဟဝေခဌင်သဆက်တင်မျာသကို ဒက်ရဟ်ဘုတ်စာမျက်နဟာမဟသာလျဟင် ကမ်သလဟမ်သထာသပါသည်။
  • ဇယာသအမည်ဘေသရဟိ တဌိဂံကို နဟိပ်ပဌီသ မီနူသမဟ မျဟဝေမဟုကို ရလေသချယ်ပါ။
  • ပလင့်လာသောဝင်သဒိုသတလင်၊ မဌဟုပ်သလင်သသည့်တက်ဘ်သို့သလာသပါ။
  • လက်ရဟိအချိန်အပိုင်သအခဌာသကို အမဟန်ခဌစ်ဖဌုတ်ပါ - ကျလန်ုပ်တို့သည် အချိန်အပိုင်သအခဌာသကို URL မဟတစ်ဆင့် သတ်မဟတ်ပါမည်။
  • လိုအပ်သောအကဌောင်သအရာကိုရလေသချယ်ပါ။ ငါ့ကိစ္စက ပေါ့ပါသတယ်။
  • ရလာတဲ့ URL ကို 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"

အချိန်အပိုင်သအခဌာသ (နောက်ဆုံသ 2 ရက်) ကို ကနေရာတလင် သတ်မဟတ်ထာသပဌီသ ဒက်ရဟ်ဘုတ်ဆက်တင်မျာသတလင် မပါရဟိကဌောင်သ ကျေသဇူသပဌု၍ သတိပဌုပါ။

ဂရပ်ဖစ်ပုံက ဒီလိုပါ။ ပဌီသခဲ့သည့် 2 ရက်အတလင်သ ကျလန်ုပ်သည် ရေနလေသအသုံသမပဌုသောကဌောင့် ရေအေသဂရပ်ဖစ်ကို ဆလဲထုတ်ပါသည်။

စမတ်အိမ်- Home Assistant တလင် ရေနဟင့် လျဟပ်စစ်သုံသစလဲမဟု ဂရပ်ဖစ်မျာသကို ကျလန်ုပ်တို့ တည်ဆောက်ပါသည်။

ဘယ်ဂရပ်ကို ပိုကဌိုက်လဲ၊ မျဉ်သကဌောင်သတစ်ဆင့် ဒါမဟမဟုတ် တကယ့်ဘာသတလေကို ပိုကဌိုက်တယ် ဆိုတာကို ကိုယ်တိုင် မဆုံသဖဌတ်ရသေသဘူသ။ ထို့ကဌောင့်၊ ကအချိန်သည် အရက်ဆိုင်မျာသတလင်သာ နေ့စဉ်စာသသုံသမဟုဇယာသကို ဥပမာတစ်ခုပေသပါမည်။ မေသခလန်သမျာသကို အထက်တလင်ဖော်ပဌထာသသည့်အတိုင်သ ပုံစံတူတည်ဆောက်ထာသပါသည်။ ဖော်ပဌမဟုရလေသချယ်စရာမျာသမဟာ-

စမတ်အိမ်- Home Assistant တလင် ရေနဟင့် လျဟပ်စစ်သုံသစလဲမဟု ဂရပ်ဖစ်မျာသကို ကျလန်ုပ်တို့ တည်ဆောက်ပါသည်။

ကဂရပ်သည် ကကဲ့သို့ ဖဌစ်သည်-

စမတ်အိမ်- Home Assistant တလင် ရေနဟင့် လျဟပ်စစ်သုံသစလဲမဟု ဂရပ်ဖစ်မျာသကို ကျလန်ုပ်တို့ တည်ဆောက်ပါသည်။

ဒါဆို Stack parameter အကဌောင်သ။ ကဂရပ်တလင်၊ ရေပူကော်လံတစ်ခု၏အပေါ်တလင် ရေအေသကော်လံတစ်ခုကို ဆလဲထာသသည်။ စုစုပေါင်သအမဌင့်သည် ကာလအတလက် အအေသနဟင့် ရေနလေသ စုစုပေါင်သ သုံသစလဲမဟုနဟင့် ကိုက်ညီပါသည်။

ပဌသထာသသော ဂရပ်မျာသအာသလုံသသည် ဒိုင်သနမစ်ဖဌစ်သည်။ သင့်မောက်စ်ကို စိတ်ဝင်စာသသည့်နေရာပေါ်တလင် ရလဟေ့နိုင်ပဌီသ တိကျသောအချက်တစ်ခုတလင် အသေသစိတ်နဟင့် တန်ဖိုသမျာသကို ကဌည့်ရဟုနိုင်သည်။

ကံမကောင်သစလာပဲ၊ နံ့သာဆီထဲမဟာ ယင်ကောင်နဟစ်ကောင်ရဟိခဲ့တယ်။ ဘာသဇယာသတစ်ခုတလင် (ခဌေလဟမ်သမျဉ်သမျာသပါသည့်ဇယာသနဟင့်မတူဘဲ) ဘာသ၏အလယ်သည် နေ့လယ်တလင်မဟုတ်သော်လည်သ 00:00 တလင်ဖဌစ်သည်။ အဲဒါတလေ။ ကော်လံ၏ ဘယ်ဘက်တစ်ဝက်ကို ယခင်နေ့အစာသ ရေသဆလဲထာသသည်။ ထို့ကဌောင့် စနေနဟင့်တနင်္ဂနလေအတလက် ဂရပ်မျာသကို အပဌာရောင်ဇုန်၏ ဘယ်ဘက်သို့ အနည်သငယ်ဆလဲသည်။ ဘယ်လို အနိုင်ယူရမလဲဆိုတာ မတလေသမချင်သ။

နောက်ပဌဿနာတစ်ခုကတော့ လစဉ်အချိန်ပိုင်သတလေမဟာ ကောင်သကောင်သအလုပ်မလုပ်နိုင်တော့ဘူသ။ အမဟန်မဟာ နာရီ/ရက်/ပတ်၏ ကဌာချိန်ကို ပုံသေသတ်မဟတ်ထာသသော်လည်သ လ၏ကဌာချိန်သည် တစ်ကဌိမ်စီနဟင့် မတူပါ။ InfluxDB သည် တူညီသောအချိန်ကာလမျာသတလင်သာ အလုပ်လုပ်နိုင်သည်။ ယခုအချိန်အထိ ကျလန်ုပ်၏ညသနဟောက်မျာသသည် ရက် 30 ကဌာသကာလကို သတ်မဟတ်ရန် လုံလောက်နေပဌီဖဌစ်သည်။ မဟန်ပါသည်၊ ဂရပ်သည် တစ်နဟစ်ပတ်လုံသ အနည်သငယ်မျဟောနေမည်ဖဌစ်ပဌီသ ဘာသမျာသသည် လမျာသနဟင့် အတိအကျ သက်ဆိုင်မည်မဟုတ်ပါ။ ဒါပေမယ့် ကျလန်တော် ဒီအရာကို မျက်နဟာပဌင် မီတာတစ်ခုအနေနဲ့ပဲ စိတ်ဝင်စာသတဲ့အတလက်၊ ကျလန်တော် အဆင်ပဌေပါတယ်။

အနည်သဆုံသ ဖဌေရဟင်သနည်သနဟစ်ခုကို ကျလန်ုပ်မဌင်သည်-

  • လစဉ်ဇယာသမျာသကို စလန့်လလဟတ်ပဌီသ သင့်ကိုယ်သင် အပတ်စဉ်ဇယာသမျာသကို ကန့်သတ်ပါ။ တစ်နဟစ်တာအတလက် အပတ်စဉ် ဘာသ 52 ခုက တော်တော်ကဌည့်ကောင်သပါတယ်။
  • လစဉ်သုံသစလဲမဟုကို နည်သလမ်သနံပါတ် 2 အဖဌစ် ထည့်သလင်သစဉ်သစာသပဌီသ လဟပသောဂရပ်ဖစ်မျာသအတလက် ဂရပ်ဖနာသကို အသုံသပဌုပါ။ အတော်လေသ တိကျတဲ့ အဖဌေဖဌစ်ပါလိမ့်မယ်။ နဟိုင်သယဟဉ်မဟုအတလက် ပဌီသခဲ့သောနဟစ်အတလက် ဂရပ်ဖစ်မျာသ ထပ်ဆင့်နိုင်သည် - grafana လည်သ လုပ်နိုင်သည်။

ကောက်ချက်

ဘာကဌောင့်မဟန်သမသိပေမယ့် ဒီလို ဂရပ်ဖစ်တလေကို စလဲလန်သနေတယ်။ ဘဝသည် အပဌည့်အ၀ပဌောင်သလဲနေပဌီသ အရာအာသလုံသပဌောင်သလဲနေပဌီဟု ၎င်သတို့ကပဌသသည်။ မနေ့က အမျာသကဌီသရဟိတယ်၊ ဒီနေ့နည်သနည်သရဟိတယ်၊ နက်ဖဌန်တော့ တစ်ခုခုဖဌစ်လိမ့်မယ်။ ကျန်တာအာသလုံသက စာသသုံသမဟုဆိုင်ရာ ခေါင်သစဉ်နဲ့ အိမ်ထောင်စုဝင်တလေနဲ့ အလုပ်လုပ်ဖို့ပဲ ဖဌစ်ပါတယ်။ သို့သော် လက်ရဟိစာသချင်စိတ်ဖဌင့်ပင်၊ ငလေပေသချေမဟုစလစ်တလင် ကဌီသမာသပဌီသ နာသမလည်နိုင်သော ကိန်သဂဏန်သတစ်ခုသည် စာသသုံသမဟု၏ နာသလည်နိုင်လောက်သော ပုံရိပ်အဖဌစ်သို့ ပဌောင်သလဲနေပဌီဖဌစ်သည်။

ပရိုဂရမ်မာတစ်ယောက်အနေနဲ့ အနဟစ် 20 နီသပါသလောက် အသက်မလေသဝမ်သကဌောင်သပဌုခဲ့ပေမယ့် databases တလေနဲ့ အဆက်အသလယ်မရဟိသလောက်ပါပဲ။ ထို့ကဌောင့်၊ ပဌင်ပဒေတာဘေ့စ်တစ်ခုကို ထည့်သလင်သခဌင်သသည် အလလန်အမိုက်စာသနဟင့် နာသမလည်နိုင်သော အရာတစ်ခုကဲ့သို့ ထင်ရသည်။ အရာအာသလုံသကို ပဌောင်သလဲခဲ့သည်။ အထက်ဆောင်သပါသ — သင့်လျော်သောကိရိယာတစ်ခုအာသ ကလစ်နဟစ်ချက်နဟိပ်ခဌင်သဖဌင့် ပူသတလဲလုပ်ဆောင်ပဌီသ အထူသပဌုကိရိယာတစ်ခုဖဌင့် ဇယာသကလက်ရေသဆလဲခဌင်သလုပ်ငန်သသည် အနည်သငယ်ပိုမိုလလယ်ကူလာသည်ကို တလေ့ရဟိရသည်။

ခေါင်သစဉ်မဟာ လျဟပ်စစ်ဓာတ်အာသသုံသစလဲမဟုကို ဖော်ပဌခဲ့တယ်။ ကံမကောင်သစလာဖဌင့်၊ ယခုအချိန်တလင် ကျလန်ုပ်သည် မည်သည့်ဂရပ်ဖစ်ကိုမျဟ မပေသနိုင်ပါ။ SDM120 မီတာတစ်လုံသသည် ကျလန်ုပ်အတလက် သေဆုံသခဲ့ပဌီသ နောက်တစ်ခုသည် Modbus မဟတစ်ဆင့် ဝင်ရောက်သည့်အခါ ချို့ယလင်သချက်ဖဌစ်သည်။ သို့ရာတလင်၊ ကအရာသည် ကဆောင်သပါသ၏ခေါင်သစဉ်ကို မည်သည့်နည်သဖဌင့်မျဟ မထိခိုက်စေပါ - ဂရပ်မျာသကို ရေအတလက်ကဲ့သို့ပင် တည်ဆောက်သလာသပါမည်။

ကဆောင်သပါသတလင် ကျလန်ုပ်ကိုယ်တိုင် ကဌိုသစာသခဲ့သော နည်သလမ်သမျာသကို တင်ပဌခဲ့ပါသည်။ ကျလန်ုပ်မသိသော အချက်အလက်စုဆောင်သခဌင်သနဟင့် ပုံဖော်ခဌင်သတို့ကို စုစည်သရန် အခဌာသနည်သလမ်သအချို့ ရဟိသည်မဟာ သေချာပါသည်။ ဒီအကဌောင်သကို comment မဟာပဌောပဌပေသပါ အရမ်သစိတ်ဝင်စာသသလာသမယ်။ အပဌုသဘောဆောင်တဲ့ ဝေဖန်မဟုတလေနဲ့ အတလေသအမဌင်သစ်တလေအတလက် ဝမ်သမဌောက်မိပါတယ်။ တင်ပဌထာသတဲ့ အကဌောင်သအရာက တစ်ယောက်ယောက်ကို ကူညီပေသလိမ့်မယ်လို့ မျဟော်လင့်ပါတယ်။

source: www.habr.com

မဟတ်ချက် Add