ස්මාර්ට් නිවස: අපි නිවාස සහකාර තුළ ජලය සහ විදුලි පරිභෝජනය පිළිබඳ ප්‍රස්ථාර ගොඩනඟමු

ස්මාර්ට් නිවස: අපි නිවාස සහකාර තුළ ජලය සහ විදුලි පරිභෝජනය පිළිබඳ ප්‍රස්ථාර ගොඩනඟමු
මට විදුලිය සහ ජලය සඳහා ගෙවීමක් ලැබෙන සෑම අවස්ථාවකම මම පුදුම වෙමි - මගේ පවුල ඇත්තටම මෙතරම් පරිභෝජනය කරයිද? හොඳයි, ඔව්, නානකාමරයේ උණුසුම් තට්ටුවක් සහ බොයිලර් ඇත, නමුත් ඔවුන් හැම විටම ගිනි නොගනිති. අපි ද ජලය ඉතිරි කරන බව පෙනේ (අපි නාන කාමරය තුළ විසිරීමට කැමති වුවද). මීට වසර කිහිපයකට පෙර මම දැනටමත් සම්බන්ධිත ජල මීටර් и විදුලිය ස්මාර්ට් නිවසකට, නමුත් දේවල් හිර වී ඇත්තේ එතැනය. අපි දැන් පරිභෝජනය විශ්ලේෂණය කිරීමට පැමිණ ඇත, මෙම ලිපිය ඇත්ත වශයෙන්ම එයයි.

මම මෑතකදී මගේ ස්මාර්ට් නිවාස පද්ධතිය ලෙස Home Assistant වෙත මාරු විය. එක් හේතුවක් වූයේ විවිධ වර්ගයේ ප්‍රස්ථාර පහසුවෙන් තැනීමේ හැකියාව ඇති දත්ත විශාල ප්‍රමාණයක් එකතු කිරීම සංවිධානය කිරීමට ඇති අවස්ථාවයි.

මෙම ලිපියේ විස්තර කර ඇති තොරතුරු අලුත් නොවේ; විවිධ සෝස් වර්ග යටතේ මේ සියල්ල දැනටමත් අන්තර්ජාලයේ විස්තර කර ඇත. නමුත් සෑම ලිපියක්ම සාමාන්‍යයෙන් විස්තර කරන්නේ එක් ප්‍රවේශයක් හෝ පැතිකඩක් පමණි. මට මේ සියලු ප්‍රවේශයන් සංසන්දනය කර වඩාත් සුදුසු එකක් තෝරා ගැනීමට මට සිදු විය. ලිපිය තවමත් දත්ත රැස් කිරීම පිළිබඳ සවිස්තරාත්මක තොරතුරු සපයන්නේ නැත, නමුත් මා එය කළ ආකාරය පිළිබඳ සාරාංශයකි. එබැවින් සාධනීය විවේචන සහ වැඩිදියුණු කිරීම සඳහා යෝජනා සාදරයෙන් පිළිගනිමු.

ගැටලුව ප්රකාශ කිරීම

එබැවින්, අද දින ව්‍යායාමයේ අරමුණ වන්නේ ජලය සහ විදුලි පරිභෝජනය පිළිබඳ අලංකාර ප්‍රස්ථාර ලබා ගැනීමයි:

  • දින 2 ක් සඳහා පැයකට
  • සති 2 ක් සඳහා දිනපතා
  • (විකල්ප) සතිපතා සහ මාසිකව

මේ සමඟ සමහර දුෂ්කරතා තිබේ:

  • සම්මත ප්‍රස්ථාර සංරචක සාමාන්‍යයෙන් තරමක් දුර්වලයි. හොඳම දෙය නම්, ඔබට ලක්ෂ්‍යයෙන් රේඛා ප්‍රස්ථාරයක් ගොඩනගා ගත හැකිය.

    ඔබ ප්‍රමාණවත් ලෙස බැලුවහොත්, සම්මත ප්‍රස්ථාරයේ හැකියාවන් පුළුල් කරන තෙවන පාර්ශවීය සංරචක ඔබට සොයාගත හැකිය. ගෘහ සහායකයෙකු සඳහා, ප්රතිපත්තිමය වශයෙන්, මෙය හොඳ සහ ලස්සන සංරචකයකි කුඩා ප්‍රස්ථාර කාඩ්පත, නමුත් එය ද තරමක් සීමා වේ:

    • තීරු ප්‍රස්ථාරයක පරාමිති විශාල කාල අන්තරයන් හරහා සැකසීම අපහසුය (තීරුවේ පළල පැයක භාග වලින් සකසා ඇත, එනම් පැයකට වඩා වැඩි කාල පරතරයන් භාගික සංඛ්‍යා වලින් සැකසෙනු ඇත)
    • ඔබට එක් ප්‍රස්ථාරයකට විවිධ ආයතන එකතු කළ නොහැක (උදාහරණයක් ලෙස, උෂ්ණත්වය සහ ආර්ද්‍රතාවය, හෝ තීරු ප්‍රස්ථාරයක් රේඛාවක් සමඟ ඒකාබද්ධ කිරීම)
  • පෙරනිමියෙන් ගෘහ සහායකයා වඩාත් ප්‍රාථමික SQLite දත්ත සමුදාය භාවිතා කරනවා පමණක් නොව (සහ, අත්කම්කරුවෙකු වන මට MySQL හෝ Postgres ස්ථාපනය කිරීමට නොහැකි විය), නමුත් දත්ත වඩාත් ප්‍රශස්ත ආකාරයෙන් ගබඩා නොවේ. උදාහරණයක් ලෙස, ඔබ පරාමිතියක කුඩාම ඩිජිටල් පරාමිතිය පවා වෙනස් කරන සෑම අවස්ථාවකම, කිලෝබයිට් එකක පමණ විශාල 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 කින් දත්ත සමුදාය පුම්බාගත හැක. සතියකින් පද්ධතිය යන්තම් චලනය වන අතර, මාසයක් තුළ ෆ්ලෑෂ් ධාවකය මිය යනු ඇත (සාමාන්‍ය ලෙස Raspberry PI මත ගෘහ සහකාර ස්ථාපනයකදී), සහ වසරක් පුරා දත්ත ගබඩා කිරීම ප්‍රශ්නයෙන් තොරය.

  • ඔබ වාසනාවන්ත නම්, ඔබේ මීටරයට පරිභෝජනය ගණනය කළ හැකිය. ඔබට ඕනෑම වේලාවක මීටරය වෙත හැරී සමුච්චිත පරිභෝජන අගය කොපමණ දැයි විමසන්න. රීතියක් ලෙස, ඩිජිටල් අතුරුමුහුණත (RS232 / RS485 / Modbus / Zigbee) ඇති සියලුම විදුලි මීටර් මෙම අවස්ථාව ලබා දෙයි.

    උපාංගයට ක්ෂණික පරාමිතියක් (උදාහරණයක් ලෙස, ක්ෂණික බලය හෝ ධාරාව) මැනිය හැකි නම්, නැතහොත් සෑම X වොට්-පැය හෝ ලීටර් ගණනකටම ස්පන්දන උත්පාදනය කළ හැකි නම් එය වඩාත් නරක ය. එවිට ඔබ එය ඒකාබද්ධ කරන්නේ කෙසේද සහ කුමක් සමඟද සහ අගය රැස් කරන්නේ කොතැනද යන්න ගැන සිතා බැලිය යුතුය. කිසියම් හේතුවක් නිසා ඊළඟ වාර්තාව මඟ හැරීමේ අවදානමක් පවතින අතර, සමස්තයක් ලෙස පද්ධතියේ නිරවද්‍යතාවය ප්‍රශ්න මතු කරයි. ඇත්ත වශයෙන්ම, ඔබට මේ සියල්ල ගෘහ සහායක වැනි ස්මාර්ට් නිවාස පද්ධතියකට භාර දිය හැකිය, නමුත් කිසිවෙකු දත්ත ගබඩාවේ ඇති වාර්තා ගණන පිළිබඳ කාරණය අවලංගු කර නොමැති අතර තත්පරයකට වරක් සංවේදක මත විමසා බැලීමට නොහැකි වනු ඇත (a ගෘහ සහකාර ගෘහ නිර්මාණ ශිල්පය සීමා කිරීම).

ප්රවේශය 1

පළමුව, පෙට්ටියෙන් පිටත ගෘහ සහායකයා සපයන්නේ කුමක්දැයි බලමු. කාල සීමාවක් තුළ පරිභෝජනය මැනීම ඉහළ ඉල්ලුමක් ඇති ක්‍රියාකාරීත්වයකි. ඇත්ත වශයෙන්ම, එය බොහෝ කලකට පෙර විශේෂිත සංරචකයක් ආකාරයෙන් ක්රියාත්මක කරන ලදී - utility_meter.

සංරචකයේ සාරය නම්, එය අභ්‍යන්තරව විචල්‍ය ධාරාවක්_සමුච්චිත_අගය නිර්මාණය කර එය නිශ්චිත කාල සීමාවකට පසු (පැය/සතිය/මාසය) නැවත සකසයි. සංරචකයම ආදාන විචල්‍යය (සමහර සංවේදකයේ අගය) නිරීක්ෂණය කරයි, අගයෙහි වෙනස්කම් වලට දායක වේ - ඔබට නිමි ප්‍රති result ලය ලැබේ. මෙම කරුණ වින්‍යාස ගොනුවේ පේළි කිහිපයකින් විස්තර කර ඇත

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ක් නිර්මාණය කරයි water_cold_hour_um සහ water_cold_day_um, එය පැයකට සහ දෛනික කියවීම් රැස් කර, කාල සීමාව ඉකුත් වූ පසු ඒවා බිංදුවට නැවත සකසයි. මෙන්න දිනකට භාගයක් සඳහා පැයක බැටරියේ ප්රස්ථාරයක්.

ස්මාර්ට් නිවස: අපි නිවාස සහකාර තුළ ජලය සහ විදුලි පරිභෝජනය පිළිබඳ ප්‍රස්ථාර ගොඩනඟමු

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

ඇත්ත වශයෙන්ම, මෙම ප්රවේශයේ ගැටලුව මෙම ඇල්ගොරිතමයේ පවතී. මා දැනටමත් සඳහන් කර ඇති පරිදි, එක් එක් ආදාන අගය සඳහා (එක් එක් ඊළඟ ලීටරය සඳහා වත්මන් මීටර කියවීම) දත්ත සමුදාය තුළ 1kb වාර්තා ජනනය වේ. සෑම උපයෝගිතා මීටරයක්ම නව අගයක් ද ජනනය කරයි, එය ද පදනමට එකතු වේ. මට පැයකට/දෛනික/සතිපතා/මාසික කියවීම් එකතු කිරීමට අවශ්‍ය නම්, සහ වෝටර් රයිසර් කිහිපයක් සඳහා සහ විදුලි මීටර් පැකට්ටුවක් එකතු කිරීමට අවශ්‍ය නම්, එය බොහෝ දත්ත වනු ඇත. හොඳයි, වඩාත් නිවැරදිව, දත්ත ගොඩක් නැත, නමුත් ගෘහ සහායකයා දත්ත ගබඩාවට අනවශ්ය තොරතුරු පොකුරක් ලියන බැවින්, දත්ත සමුදායේ ප්රමාණය වේගයෙන් වර්ධනය වේ. සතිපතා සහ මාසික ප්‍රස්ථාර සඳහා පදනමේ ප්‍රමාණය තක්සේරු කිරීමට පවා මම බිය වෙමි.

මීට අමතරව, උපයෝගිතා මීටරය විසින්ම ගැටළුව විසඳන්නේ නැත. උපයෝගිතා මීටරය මගින් නිපදවන අගයන්හි ප්‍රස්ථාරය සෑම පැයකටම 0 වෙත නැවත සකසන ඒකාකාරී ලෙස වැඩිවන ශ්‍රිතයකි. කාල සීමාව තුළ ලීටර් කීයක් පරිභෝජනය කර ඇත්දැයි පෙන්වන පරිශීලකයාට තේරුම් ගත හැකි පරිභෝජන සටහනක් අපට අවශ්‍ය වේ. සම්මත ඉතිහාස ප්‍රස්ථාර සංරචකයට මෙය කළ නොහැක, නමුත් කුඩා ප්‍රස්ථාර-කාඩ් බාහිර සංරචකය අපට උපකාර කළ හැකිය.

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 — ප්‍රස්ථාරය පැයේ ආරම්භයට පෙළගස්වා ඇති තීරු සමඟ ජනනය වේ
  • point_per_hour: 1 - සෑම පැයකටම බාර් එකක්
  • සහ වඩාත්ම වැදගත් දෙය නම්, aggregate_func: max - එක් එක් පැය තුළ උපරිම අගය ගන්න. කියත් දත් ප්‍රස්ථාරය බාර් බවට පත් කරන්නේ මෙම පරාමිතියයි

ස්මාර්ට් නිවස: අපි නිවාස සහකාර තුළ ජලය සහ විදුලි පරිභෝජනය පිළිබඳ ප්‍රස්ථාර ගොඩනඟමු

වම් පස ඇති තීරු පේළියට අවධානය යොමු නොකරන්න - දත්ත නොමැති නම් සංරචකයේ සම්මත හැසිරීම මෙයයි. නමුත් දත්ත නොතිබුණි - මම මෙම ලිපිය සඳහා පැය කිහිපයකට පෙර උපයෝගිතා මීටර දත්ත එකතු කිරීම ක්‍රියාත්මක කළෙමි (මගේ වර්තමාන ප්‍රවේශය මම පහත විස්තර කරමි).

මෙම පින්තූරයේ මට පෙන්වීමට අවශ්‍ය වූයේ සමහර විට දත්ත සංදර්ශකය පවා ක්‍රියා කරන බවත් බාර් ඇත්ත වශයෙන්ම නිවැරදි අගයන් පිළිබිඹු කරන බවත්ය. නමුත් එය පමණක් නොවේ. කිසියම් හේතුවක් නිසා, පෙරවරු 11 සිට 12 දක්වා කාලය සඳහා තෝරාගත් තීරුව ලීටර් 19 ක් පෙන්වයි, නමුත් දත් ප්‍රස්ථාරයේ එකම සංවේදකයෙන් එම කාලය සඳහා මඳක් ඉහළට ලීටර් 62 ක් පරිභෝජනය කරයි. එක්කෝ දෝෂයක් හෝ අත් වකුටු වී ඇත. නමුත් දකුණේ දත්ත කැඩී ගියේ මන්දැයි මට තවමත් තේරෙන්නේ නැත - පරිභෝජනය සාමාන්‍ය විය, එය දත් ප්‍රස්ථාරයෙන් ද දැකිය හැකිය.

පොදුවේ ගත් කල, මෙම ප්‍රවේශයේ විශ්වසනීයත්වය සාක්ෂාත් කර ගැනීමට මට නොහැකි විය - ප්‍රස්ථාරය සෑම විටම පාහේ යම් ආකාරයක මිථ්‍යාදෘෂ්ටියක් පෙන්නුම් කරයි.

දිවා කාලයේ සංවේදකය සඳහා සමාන කේතය.

      - 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 අගය ඇතුළත් කිරීමට සිදු විය. මම සතිපතා සහ මාසික ප්‍රස්ථාර ගැන කතා කරන්නේවත් නැහැ.

ප්රවේශය 2

තවමත් ගෘහ සහායක තේරුම් ගනිමින් සිටියදී, මට මෙම වීඩියෝව හමු විය:


මිතුරෙකු Xiaomi සොකට් වර්ග කිහිපයකින් පරිභෝජන දත්ත රැස් කරයි. ඔහුගේ කාර්යය ටිකක් සරලයි - අද, ඊයේ සහ මාසය සඳහා පරිභෝජන අගය සරලව පෙන්වන්න. කාලසටහන් අවශ්‍ය නොවේ.

ක්ෂණික බල අගයන් අතින් ඒකාබද්ධ කිරීම පිළිබඳ සාකච්ඡා පසෙකට දමමු - මෙම ප්‍රවේශයේ “නිරවද්‍යතාව” ගැන මම දැනටමත් ඉහත ලියා ඇත. ඔහු දැනටමත් එම අලෙවිසැල විසින් එකතු කරන ලද සමුච්චිත පරිභෝජන අගයන් භාවිතා නොකළේ මන්දැයි පැහැදිලි නැත. මගේ මතය අනුව, දෘඩාංග තුළ ඒකාබද්ධ කිරීම වඩා හොඳින් ක්රියා කරනු ඇත.

වීඩියෝවෙන් අපි යම් කාලයක් තුළ පරිභෝජනය අතින් ගණනය කිරීමේ අදහස ගනිමු. මිනිහා ගණන් කරන්නේ අද සහ ඊයේ අගයන් පමණි, නමුත් අපි තවත් ඉදිරියට ගොස් ප්‍රස්ථාරයක් ඇඳීමට උත්සාහ කරමු. මගේ නඩුවේ යෝජිත ක්රමයේ සාරය පහත පරිදි වේ.

අපි විචල්‍ය අගයක්_at_the_beginning_of_hour නිර්මාණය කරමු, එහි අපි වත්මන් මීටර කියවීම් සටහන් කරමු
ටයිමරය භාවිතා කරමින්, පැය අවසානයේ (හෝ ඊළඟ ආරම්භයේදී) අපි වත්මන් කියවීම සහ පැය ආරම්භයේ ගබඩා කර ඇති එක අතර වෙනස ගණනය කරමු. මෙම වෙනස වත්මන් පැය සඳහා පරිභෝජනය වනු ඇත - අපි සංවේදකය තුළට අගය සුරකිනු ඇත, අනාගතයේදී අපි මෙම අගය මත පදනම්ව ප්රස්ථාරයක් ගොඩනඟමු.
ඔබට එහි වත්මන් කවුන්ටර අගය ලිවීමෙන් value_at_beginning_of_hour විචල්‍යය “නැවත පිහිටුවීම” අවශ්‍ය වේ.

මේ සියල්ල ගෘහ සහායකයා හරහාම කළ හැකිය.

පෙර ප්‍රවේශයට වඩා ඔබට ටිකක් වැඩිපුර කේතයක් ලිවීමට සිදුවේ. පළමුව, අපි මෙම "විචල්යයන්" නිර්මාණය කරමු. කොටුවෙන් පිටත අපට “විචල්‍ය” වස්තුව නැත, නමුත් අපට mqtt තැරැව්කරුගේ සේවාවන් භාවිතා කළ හැකිය. අපි එහි retain=සැබෑ ධජය සමඟ අගයන් යවන්නෙමු - මෙය තැරැව්කරු තුළ ඇති අගය සුරකිනු ඇති අතර, එය ඕනෑම වේලාවක, ගෘහ සහායකයා නැවත පණගැන්වූ විට පවා එය එතැනින් ඉවත් කළ හැකිය. මම පැයකට සහ දෛනික කවුන්ටර එකවර සෑදුවෙමි.

- 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

එය මේ වගේ ය:

ස්මාර්ට් නිවස: අපි නිවාස සහකාර තුළ ජලය සහ විදුලි පරිභෝජනය පිළිබඳ ප්‍රස්ථාර ගොඩනඟමු

මූලධර්මය අනුව, මෙය දැනටමත් අවශ්ය වේ. මෙම ක්‍රමයේ ඇති වාසිය නම් එක් කාල පරතරයකට වරක් දත්ත උත්පාදනය වීමයි. එම. පැයක ප්‍රස්ථාරයක් සඳහා දිනකට වාර්තා 24ක් පමණි.

අවාසනාවකට මෙන්, මෙය තවමත් වර්ධනය වන පදනමක පොදු ගැටළුව විසඳන්නේ නැත. මට මාසික පරිභෝජන ප්‍රස්ථාරයක් අවශ්‍ය නම්, මට අවම වශයෙන් වසරක්වත් දත්ත ගබඩා කිරීමට සිදුවනු ඇත. ගෘහ සහකාර මුළු දත්ත සමුදාය සඳහා එක් ගබඩා කාල සැකසුම පමණක් සපයන බැවින්, මෙයින් අදහස් කරන්නේ පද්ධතියේ සියලුම දත්ත වසරක් පුරා ගබඩා කළ යුතු බවයි. උදාහරණයක් ලෙස, වසරක් තුළ මම ජලය ඝන මීටර් 200 ක් පරිභෝජනය කරමි, එයින් අදහස් කරන්නේ දත්ත ගබඩාවේ ඇතුළත් කිරීම් 200000 ක් බවයි. ඔබ වෙනත් සංවේදක සැලකිල්ලට ගන්නේ නම්, රූපය සාමාන්‍යයෙන් අශෝභන වේ.

ප්රවේශය 3

වාසනාවකට මෙන්, InfluxDB දත්ත ගබඩාව ලිවීමෙන් බුද්ධිමත් පුද්ගලයින් දැනටමත් මෙම ගැටළුව විසඳා ඇත. මෙම දත්ත සමුදාය කාලය මත පදනම් වූ දත්ත ගබඩා කිරීම සඳහා විශේෂයෙන් ප්‍රශස්ත කර ඇති අතර විවිධ සංවේදකවල අගයන් ගබඩා කිරීම සඳහා වඩාත් සුදුසු වේ. පද්ධතිය මඟින් SQL වැනි විමසුම් භාෂාවක් ද සපයන අතර එමඟින් දත්ත සමුදායෙන් අගයන් උකහා ගැනීමට සහ ඒවා විවිධ ආකාරවලින් එකතු කිරීමට ඉඩ සලසයි. අවසාන වශයෙන්, විවිධ දත්ත විවිධ වේලාවන් සඳහා ගබඩා කළ හැකිය. උදාහරණයක් ලෙස, උෂ්ණත්වය හෝ ආර්ද්‍රතාවය වැනි නිතර වෙනස් වන කියවීම් සති කිහිපයක් සඳහා පමණක් ගබඩා කළ හැකි අතර දෛනික ජල පරිභෝජන කියවීම් වසරක් පුරා ගබඩා කළ හැකිය.

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

දැන්, ඇත්ත වශයෙන්ම, ප්‍රධාන උපක්‍රමය වන්නේ අඛණ්ඩ විමසුම භාවිතයෙන් දත්ත එකතු කිරීමයි. මෙය නිශ්චිත කාල පරාසයන් තුළ විමසුමක් ස්වයංක්‍රීයව ක්‍රියාත්මක කරන යාන්ත්‍රණයකි, මෙම විමසුම සඳහා දත්ත එකතු කරයි, සහ ප්‍රතිඵලය නව අගයකට එක් කරයි. අපි උදාහරණයක් බලමු (මම කියවීමේ හැකියාව සඳහා තීරුවක ලියන්නෙමි, නමුත් ඇත්ත වශයෙන්ම මට මෙම විධානය එක් පේළියකින් ඇතුළත් කිරීමට සිදු විය)

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 නමින් අඛණ්ඩ විමසුමක් සාදයි
  • ඉල්ලීම සෑම පැයකටම ක්‍රියාත්මක කෙරේ (වේලාව(පැ 1))
  • ඉල්ලීම මගින් සීතල සහ උණු වතුර කියවීම් ඇතුළුව මිනුම් ' homeassistant.autogen.l (ලීටර්) වෙතින් සියලුම දත්ත ඉවත් කරනු ඇත.
  • එකතු කරන ලද දත්ත entity_id මගින් කාණ්ඩගත කරනු ලැබේ, එය අපට සීතල සහ උණු වතුර සඳහා වෙනම අගයන් ලබා දෙනු ඇත.
  • ලීටර් කවුන්ටරය සෑම පැයක් තුළම ඒකාකාරී ලෙස වැඩි වන අනුපිළිවෙලක් වන බැවින්, උපරිම අගය ගැනීම අවශ්‍ය වනු ඇත, එබැවින් එකතු කිරීම max(අගය) ශ්‍රිතයෙන් සිදු කෙරේ.
  • නව අගය 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' සඳහා දත්ත උපුටා ගන්නෙමු (කාලය >= දැන්() -24h).
  • මා දැනටමත් සඳහන් කර ඇති පරිදි, homeassistant.month.water_meter_hour අනුපිළිවෙලෙහි සමහර ඇතුළත් කිරීම් අතුරුදහන් විය හැක. GROUP by time(h1h) සමඟ විමසුමක් ධාවනය කිරීමෙන් අපි මෙම දත්ත නැවත උත්පාදනය කරන්නෙමු. මෙම කාලය පිරවීම (පෙර) බලාපොරොත්තු වූ පරිදි ක්‍රියා කරයි, නැතිවූ දත්ත උත්පාදනය කරයි (ශ්‍රිතය පෙර අගය ගනී)
  • මෙම ඉල්ලීමෙහි වැදගත්ම දෙය වන්නේ වෙනස ශ්‍රිතය වන අතර එය පැය ලකුණු අතර වෙනස ගණනය කරනු ඇත. එය තනිවම ක්‍රියා නොකරන අතර එකතු කිරීමේ කාර්යයක් අවශ්‍ය වේ. මෙය පෙර භාවිතා කළ උපරිම() වේ.

ක්රියාත්මක කිරීමේ ප්රතිඵලය මේ වගේ ය

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) පරිභෝජනයක් නොතිබුණි. කෙසේ වෙතත්, විමසුම පිරවීමට (පෙර) ස්තූතිවන්ත වන පරිදි එම පරිභෝජන අගය නැවත ලබා දෙනු ඇත, සහ වෙනස ශ්‍රිතය මෙම අගයෙන් මෙම අගය අඩු කරන අතර ප්‍රතිදානය 0 වනු ඇත, එය හරියටම අවශ්‍ය වේ.

ඉතිරිව ඇත්තේ ප්‍රස්ථාරයක් සෑදීම පමණි. මෙය සිදු කිරීම සඳහා, Grafana විවෘත කරන්න, පවතින (හෝ නව) උපකරණ පුවරුවක් විවෘත කර නව පැනලයක් සාදන්න. ප්‍රස්ථාර සැකසුම් මේ වගේ වනු ඇත.

ස්මාර්ට් නිවස: අපි නිවාස සහකාර තුළ ජලය සහ විදුලි පරිභෝජනය පිළිබඳ ප්‍රස්ථාර ගොඩනඟමු

මම එකම ප්‍රස්ථාරයේ සීතල සහ උණු වතුර දත්ත පෙන්වමි. ඉල්ලීම මා ඉහත විස්තර කළ ආකාරයටම වේ.

සංදර්ශක පරාමිතීන් පහත පරිදි සකසා ඇත. මට එය රේඛා සහිත ප්‍රස්ථාරයක් වනු ඇත, එය පියවරෙන් (පඩිපෙළ) යයි. මම පහත Stack පරාමිතිය පැහැදිලි කරන්නම්. පහත තවත් සංදර්ශක විකල්ප කිහිපයක් ඇත, නමුත් ඒවා එතරම් සිත්ගන්නා සුළු නොවේ.

ස්මාර්ට් නිවස: අපි නිවාස සහකාර තුළ ජලය සහ විදුලි පරිභෝජනය පිළිබඳ ප්‍රස්ථාර ගොඩනඟමු

ප්‍රතිඵල ප්‍රස්ථාරය ගෘහ සහායක වෙත එක් කිරීමට ඔබට අවශ්‍ය වන්නේ:

  • ප්‍රස්ථාර සංස්කරණ මාදිලියෙන් පිටවන්න. කිසියම් හේතුවක් නිසා, නිවැරදි ප්‍රස්ථාර බෙදාගැනීමේ සිටුවම් පිරිනමනු ලබන්නේ උපකරණ පුවරු පිටුවෙන් පමණි
  • ප්‍රස්ථාර නාමය අසල ඇති ත්‍රිකෝණය මත ක්ලික් කර මෙනුවෙන් බෙදාගන්න තෝරන්න
  • විවෘත වන කවුළුව තුළ, embed ටැබයට යන්න
  • වත්මන් කාල පරාසය සලකුණු නොකරන්න - අපි 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 තුළ උණු වතුර භාවිතා කර නැත, ඒ නිසා සීතල වතුර ප්රස්තාරය පමණක් ඇඳ ඇත.

ස්මාර්ට් නිවස: අපි නිවාස සහකාර තුළ ජලය සහ විදුලි පරිභෝජනය පිළිබඳ ප්‍රස්ථාර ගොඩනඟමු

මා වඩාත් කැමති කුමන ප්‍රස්ථාරයටද, රේඛා-පියවරකට හෝ සැබෑ තීරුවලට මා තවමත් තීරණය කර නැත. එමනිසා, මම සරලවම දෛනික පරිභෝජන වගුවක උදාහරණයක් දෙන්නෙමි, මෙවර බාර්වල පමණි. විමසුම් ඉහත විස්තර කර ඇති ආකාරයටම ගොඩනගා ඇත. සංදර්ශක විකල්ප වනුයේ:

ස්මාර්ට් නිවස: අපි නිවාස සහකාර තුළ ජලය සහ විදුලි පරිභෝජනය පිළිබඳ ප්‍රස්ථාර ගොඩනඟමු

මෙම ප්‍රස්ථාරය මේ ආකාරයට පෙනේ:

ස්මාර්ට් නිවස: අපි නිවාස සහකාර තුළ ජලය සහ විදුලි පරිභෝජනය පිළිබඳ ප්‍රස්ථාර ගොඩනඟමු

ඉතින් Stack පරාමිතිය ගැන. මෙම ප්‍රස්ථාරයේ, උණු වතුර තීරුවක් මත සීතල වතුර තීරුවක් ඇඳ ඇත. මුළු උස කාලය සඳහා සීතල හා උණුසුම් ජලය මුළු පරිභෝජනයට අනුරූප වේ.

පෙන්වා ඇති සියලුම ප්‍රස්ථාර ගතික වේ. ඔබට ඔබේ මූසිකය උනන්දුවක් දක්වන ස්ථානයට ගෙන යා හැකි අතර නිශ්චිත ලක්ෂ්‍යයක විස්තර සහ වටිනාකම බලන්න.

අවාසනාවකට, ආලේපනය තුළ මැස්සන් යුවලක් විය. තීරු ප්‍රස්ථාරයක (පියවර රේඛා සහිත ප්‍රස්ථාරයක් මෙන් නොව), තීරුවේ මැද දවල් මැද නොව 00:00 ට ඇත. එම. තීරුවේ වම් භාගය පෙර දින වෙනුවට ඇද ඇත. එබැවින් සෙනසුරාදා සහ ඉරිදා සඳහා ප්‍රස්ථාර නිල් පැහැති කලාපයේ වම් පැත්තට තරමක් ඇද ඇත. එය පරාජය කරන්නේ කෙසේදැයි මම තේරුම් ගන්නා තුරු.

තවත් ගැටළුවක් වන්නේ මාසික කාල සීමාවන් තුළ නිසි ලෙස වැඩ කිරීමට නොහැකි වීමයි. කාරණය වන්නේ පැය/දින/සතියේ දිග නියම කර ඇති නමුත් සෑම අවස්ථාවකදීම මාසයේ දිග වෙනස් වීමයි. InfluxDB ක්‍රියා කළ හැක්කේ සමාන කාල පරතරයකින් පමණි. මේ වන විට මගේ මොළය දින 30ක ස්ථාවර පරතරයක් තැබීමට ප්‍රමාණවත් වී ඇත. ඔව්, ප්‍රස්ථාරය වසර පුරා මඳක් පාවෙන අතර තීරු හරියටම මාසවලට අනුරූප නොවේ. නමුත් මම මේ දේ ගැන උනන්දු වන්නේ සංදර්ශක මීටරයක් ​​ලෙස බැවින්, මම එය සමඟ හොඳින් සිටිමි.

මම අවම වශයෙන් විසඳුම් දෙකක් දකිමි:

  • මාසික ප්‍රස්ථාර අතහැර සතිපතා ඒවාට සීමා වන්න. වසර සඳහා සතිපතා බාර් 52 ඉතා හොඳ පෙනුමක්
  • මාසික පරිභෝජනයම ක්‍රම අංක 2 ලෙස සලකා, අලංකාර ප්‍රස්ථාර සඳහා පමණක් ග්‍රැෆනා භාවිතා කරන්න. එය තරමක් නිවැරදි විසඳුමක් වනු ඇත. සැසඳීම සඳහා ඔබට පසුගිය වසර සඳහා ප්‍රස්ථාර පවා ආවරණය කළ හැකිය - ග්‍රැෆනාටද එය කළ හැකිය.

නිගමනය

ඇයි දැයි මම නොදනිමි, නමුත් මම මේ ආකාරයේ ප්‍රස්ථාරවලට ඇබ්බැහි වී සිටිමි. ඔවුන් පෙන්නුම් කරන්නේ ජීවිතය පිරී ඉතිරී යන බවත් සියල්ල වෙනස් වන බවත්ය. ඊයේ ගොඩක් තිබුණා, අද ටිකක් තියෙනවා, හෙට වෙන දෙයක් වෙයි. ඉතිරිව ඇත්තේ පරිභෝජනය යන මාතෘකාව මත ගෘහස්ථ සාමාජිකයන් සමඟ වැඩ කිරීමයි. නමුත් වර්තමාන ආහාර රුචිය සමඟ වුවද, ගෙවීම් පත්‍රිකාවේ විශාල හා තේරුම්ගත නොහැකි රූපයක් දැනටමත් පරිභෝජනය පිළිබඳ තරමක් තේරුම්ගත හැකි චිත්‍රයක් බවට පත්වෙමින් තිබේ.

ක්‍රමලේඛකයෙකු ලෙස මගේ වසර 20කට ආසන්න වෘත්තීය ජීවිතය තිබියදීත්, මට දත්ත සමුදායන් සමඟ කිසිදු සම්බන්ධයක් නොතිබුණි. එමනිසා, බාහිර දත්ත සමුදායක් ස්ථාපනය කිරීම එතරම් වියුක්ත හා තේරුම්ගත නොහැකි දෙයක් ලෙස පෙනුනි. හැමදේම වෙනස් කළා ඉහත ලිපිය - සුදුසු මෙවලමක් ඇමිණීම ක්ලික් කිරීම් කිහිපයකින් සිදු කරන අතර විශේෂිත මෙවලමක් සමඟ ප්‍රස්ථාර සැකසීමේ කාර්යය ටිකක් පහසු වේ.

මාතෘකාවේ මම විදුලි පරිභෝජනය ගැන සඳහන් කළා. අවාසනාවකට, මේ මොහොතේ මට ප්‍රස්ථාර කිසිවක් සැපයිය නොහැක. එක් SDM120 මීටරයක් ​​මා වෙනුවෙන් මිය ගිය අතර අනෙක Modbus හරහා ප්‍රවේශ වූ විට දෝෂ සහිතයි. කෙසේ වෙතත්, මෙය මෙම ලිපියේ මාතෘකාවට කිසිදු ආකාරයකින් බලපාන්නේ නැත - ප්‍රස්ථාර ජලය සඳහා වන ආකාරයටම ඉදිකරනු ලැබේ.

මෙම ලිපියෙන් මම මා විසින්ම අත්හදා බැලූ ප්රවේශයන් ඉදිරිපත් කළෙමි. නිසැකවම දත්ත රැස් කිරීම සහ දෘශ්‍යකරණය සංවිධානය කිරීමට මා නොදන්නා වෙනත් ක්‍රම තිබේ. අදහස් දැක්වීමේදී ඒ ගැන මට කියන්න, මම ඉතා උනන්දු වනු ඇත. නිර්මාණාත්මක විවේචන සහ නව අදහස් ගැන මම සතුටු වෙමි. ඉදිරිපත් කරන ලද තොරතුරු ද යමෙකුට උපකාරී වනු ඇතැයි මම බලාපොරොත්තු වෙමි.

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න