ื‘ื™ืช ื—ื›ื: ืฉืจื˜ื•ื˜ ืฆืจื™ื›ืช ืžื™ื ื•ื—ืฉืžืœ ื‘-Home Assistant

ื‘ื™ืช ื—ื›ื: ืฉืจื˜ื•ื˜ ืฆืจื™ื›ืช ืžื™ื ื•ื—ืฉืžืœ ื‘-Home Assistant
ื‘ื›ืœ ืคืขื ืฉืื ื™ ืžืงื‘ืœ ืชืฉืœื•ื ืขื‘ื•ืจ ื—ืฉืžืœ ื•ืžื™ื, ืื ื™ ืชื•ื”ื” - ื”ืื ื”ืžืฉืคื—ื” ืฉืœื™ ื‘ืืžืช ืฆื•ืจื›ืช ื›ืœ ื›ืš ื”ืจื‘ื”? ื•ื‘ื›ืŸ, ื›ืŸ, ื™ืฉ ืจืฆืคื” ืžื—ื•ืžืžืช ื•ื“ื•ื“ ื‘ื—ื“ืจ ื”ืืžื‘ื˜ื™ื”, ืื‘ืœ ื”ื ืœื ืขื•ื‘ื“ื™ื ื›ื›ื‘ืื™ื ื›ืœ ื”ื–ืžืŸ. ื ืจืื” ืฉื’ื ืื ื—ื ื• ื—ื•ืกื›ื™ื ื‘ืžื™ื (ืœืžืจื•ืช ืฉืื ื—ื ื• ื’ื ืื•ื”ื‘ื™ื ืœื”ืชื™ื– ื‘ืฉื™ืจื•ืชื™ื). ืœืคื ื™ ื›ืžื” ืฉื ื™ื ืื ื™ ื›ื‘ืจ ืžื“ื™ ืžื™ื ืžื—ื•ื‘ืจื™ื ะธ ื—ืฉืžืœ ืœื‘ื™ืช ื—ื›ื, ืื‘ืœ ื–ื” ื”ืžืงื•ื ืฉื‘ื• ื”ื“ื‘ืจื™ื ื ืชืงืขื•. ื”ื™ื“ื™ื™ื ื”ื’ื™ืขื• ืœื ื™ืชื•ื— ื”ืฆืจื™ื›ื” ืจืง ืขื›ืฉื™ื•, ืฉืœืžืขืฉื” ื‘ื• ืขื•ืกืงืช ื”ืžืืžืจ ื”ื–ื”.

ืœืื—ืจื•ื ื” ืขื‘ืจืชื™ ืœ-Home Assistant ื›ืžืขืจื›ืช ื”ื‘ื™ืช ื”ื—ื›ื ืฉืœื™. ืื—ืช ื”ืกื™ื‘ื•ืช ื”ื™ื™ืชื” ืจืง ื”ื™ื›ื•ืœืช ืœืืจื’ืŸ ืื™ืกื•ืฃ ืฉืœ ื›ืžื•ืช ื’ื“ื•ืœื” ืฉืœ ื ืชื•ื ื™ื ืขื ืืคืฉืจื•ืช ืœื‘ื ื™ื™ื” ื ื•ื—ื” ืฉืœ ืกื•ื’ื™ื ืฉื•ื ื™ื ืฉืœ ื’ืจืคื™ื.

ื”ืžื™ื“ืข ื”ืžืชื•ืืจ ื‘ืžืืžืจ ื–ื” ืื™ื ื• ื—ื“ืฉ, ื›ืœ ื”ื“ื‘ืจื™ื ื”ืœืœื• ืชื—ืช ืจื˜ื‘ื™ื ืฉื•ื ื™ื ื›ื‘ืจ ืชื•ืืจื• ื‘ืื™ื ื˜ืจื ื˜. ืื‘ืœ ื›ืœ ืžืืžืจ, ื›ื›ืœืœ, ืžืชืืจ ืจืง ื’ื™ืฉื” ืื• ื”ื™ื‘ื˜ ืื—ื“. ื ืืœืฆืชื™ ืœื”ืฉื•ื•ืช ืืช ื›ืœ ื”ื’ื™ืฉื•ืช ื”ืœืœื• ื•ืœื‘ื—ื•ืจ ืืช ื”ืžืชืื™ืžื” ื‘ื™ื•ืชืจ ื‘ืขืฆืžื™. ื”ืžืืžืจ ืขื“ื™ื™ืŸ ืœื ืžืกืคืง ืžื™ื“ืข ืžืžืฆื” ืขืœ ืื™ืกื•ืฃ ื ืชื•ื ื™ื, ืื‘ืœ ื”ื•ื ืกื•ื’ ืฉืœ ืกื™ื›ื•ื ืฉืœ ืื™ืš ืขืฉื™ืชื™ ืืช ื–ื”. ืื– ื‘ื™ืงื•ืจืช ื‘ื•ื ื” ื•ื”ืฆืขื•ืช ืœืฉื™ืคื•ืจ ื™ืชืงื‘ืœื• ื‘ื‘ืจื›ื”.

ื”ืฆื”ืจืช ื”ื‘ืขื™ื”

ืœื›ืŸ, ื”ืžื˜ืจื” ืฉืœ ื”ืชืจื’ื™ืœ ื”ื™ื•ื ื”ื™ื ืœืงื‘ืœ ื’ืจืคื™ื ื™ืคื™ื ืฉืœ ืฆืจื™ื›ืช ืžื™ื ื•ื—ืฉืžืœ:

  • ื›ืœ ืฉืขื” ืœืžืฉืš ื™ื•ืžื™ื™ื
  • ืžื“ื™ ื™ื•ื ื‘ืžืฉืš ืฉื‘ื•ืขื™ื™ื
  • (ืื•ืคืฆื™ื•ื ืœื™) ืฉื‘ื•ืขื™ ื•ื—ื•ื“ืฉื™

ื™ืฉ ื‘ื–ื” ื›ืžื” ืงืฉื™ื™ื:

  • ืจื›ื™ื‘ื™ ื”ืชืจืฉื™ื ื”ืกื˜ื ื“ืจื˜ื™ื™ื ื ื•ื˜ื™ื ืœื”ื™ื•ืช ื’ืจื•ืขื™ื ืœืžื“ื™. ื‘ืžืงืจื” ื”ื˜ื•ื‘, ืืชื” ื™ื›ื•ืœ ืœื‘ื ื•ืช ื’ืจืฃ ืงื• ืœืคื™ ื ืงื•ื“ื•ืช.

    ืื ืชื—ืคืฉื• ื”ื™ื˜ื‘, ืชื•ื›ืœื• ืœืžืฆื•ื ืจื›ื™ื‘ื™ ืฆื“ ืฉืœื™ืฉื™ ืฉืžืจื—ื™ื‘ื™ื ืืช ื”ื™ื›ื•ืœื•ืช ืฉืœ ื”ืชืจืฉื™ื ื”ืกื˜ื ื“ืจื˜ื™. ืœืขื•ื–ืจืช ื‘ื™ืช, ืขืงืจื•ื ื™ืช, ืจื›ื™ื‘ ื˜ื•ื‘ ื•ื™ืคื” ืžื™ื ื™ ื›ืจื˜ื™ืก ื’ืจืฃ, ืื‘ืœ ื–ื” ื’ื ืžื•ื’ื‘ืœ ื‘ืžืงืฆืช:

    • ืงืฉื” ืœื”ื’ื“ื™ืจ ืืช ื”ืคืจืžื˜ืจื™ื ืฉืœ ืชืจืฉื™ื ื”ืขืžื•ื“ื•ืช ื‘ืžืจื•ื•ื—ื™ื ื’ื“ื•ืœื™ื (ืจื•ื—ื‘ ื”ื‘ืจ ื ืงื‘ืข ื‘ืฉื‘ืจื™ืจื™ ืฉืขื”, ื›ืœื•ืžืจ ืžืจื•ื•ื—ื™ื ืฉืœ ื™ื•ืชืจ ืžืฉืขื” ื™ื™ืงื‘ืขื• ื‘ืžืกืคืจื™ื ืฉื‘ืจื™ื)
    • ืœื ื ื™ืชืŸ ืœื”ื•ืกื™ืฃ ื™ืฉื•ื™ื•ืช ืฉื•ื ื•ืช ืœื’ืจืฃ ืื—ื“ (ืœื“ื•ื’ืžื”, ื˜ืžืคืจื˜ื•ืจื” ื•ืœื—ื•ืช, ืื• ืœืฉืœื‘ ื’ืจืฃ ืขืžื•ื“ื•ืช ืขื ืงื•)
  • ืœื ืจืง ืฉืขื•ื–ืจืช ื”ื‘ื™ืช ืžืฉืชืžืฉืช ื›ื‘ืจื™ืจืช ืžื—ื“ืœ ื‘ืžืกื“ ื”ื ืชื•ื ื™ื ื”ืคืจื™ืžื™ื˜ื™ื‘ื™ ื‘ื™ื•ืชืจ ืฉืœ 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 ืžื’ื”-ื‘ื™ื™ื˜ ืžื“ื™ ื™ื•ื. ื‘ืขื•ื“ ืฉื‘ื•ืข, ื”ืžืขืจื›ืช ื‘ืงื•ืฉื™ ืชืชื”ืคืš, ื•ื‘ืขื•ื“ ื—ื•ื“ืฉ ื›ื•ื ืŸ ื”ื”ื‘ื–ืง ื™ืžื•ืช (ื‘ืžืงืจื” ืฉืœ ื”ืชืงื ืช ืขื•ื–ืจ ื‘ื™ืช ื˜ื™ืคื•ืกื™ ื‘-raspberry PI), ื•ืœื ื™ื›ื•ืœ ืœื”ื™ื•ืช ืฉืืœื” ืฉืœ ืื—ืกื•ืŸ ื ืชื•ื ื™ื ื‘ืžืฉืš ืฉื ื” ืฉืœืžื”.

  • ืื ื™ืชืžื–ืœ ืžื–ืœื›ื, ื”ืžื•ื ื” ืฉืœื›ื ื™ื›ื•ืœ ืœืกืคื•ืจ ืืช ื”ืฆืจื™ื›ื”. ื ื™ืชืŸ ืœืคื ื•ืช ืœืžื•ื ื” ื‘ื›ืœ ืขืช ื•ืœืฉืื•ืœ ืžื” ื”ืฉืขื” ืฉืœ ืขืจืš ื”ืฆืจื™ื›ื” ื”ืฆื‘ื•ืจ. ื›ื›ืœืœ, ื›ืœ ืžื“ื™ ื”ื—ืฉืžืœ ื‘ืขืœื™ ืžืžืฉืง ื“ื™ื’ื™ื˜ืœื™ (RS232/RS485/Modbus/Zigbee) ืžืกืคืงื™ื ื”ื–ื“ืžื ื•ืช ื›ื–ื•.

    ื’ืจื•ืข ืžื›ืš, ืื ื”ืžื›ืฉื™ืจ ื™ื›ื•ืœ ืคืฉื•ื˜ ืœืžื“ื•ื“ ืคืจืžื˜ืจ ืžื™ื™ื“ื™ ื›ืœืฉื”ื• (ืœื“ื•ื’ืžื”, ื›ื•ื— ืื• ื–ืจื ืžื™ื™ื“ื™), ืื• ืคืฉื•ื˜ ืœื™ื™ืฆืจ ืคื•ืœืกื™ื ื›ืœ X ื•ื•ืื˜-ืฉืขื” ืื• ืœื™ื˜ืจ. ืื—ืจ ื›ืš ืฆืจื™ืš ืœื—ืฉื•ื‘ ืื™ืš ื•ืขื ืžื” ืœืฉืœื‘ ืื•ืชื• ื•ืื™ืคื” ืœืฆื‘ื•ืจ ืขืจืš. ืงื™ื™ื ืกื™ื›ื•ืŸ ืœื”ื—ืžืฆืช ื”ื“ื•"ื— ื”ื‘ื ืžื›ืœ ืกื™ื‘ื” ืฉื”ื™ื, ื•ื”ื“ื™ื•ืง ืฉืœ ื”ืžืขืจื›ืช ื›ื•ืœื” ืžืขื•ืจืจ ืฉืืœื•ืช. ืืคืฉืจ ื›ืžื•ื‘ืŸ ืœื”ืคืงื™ื“ ืืช ื›ืœ ื–ื” ืขืœ ืžืขืจื›ืช ื‘ื™ืช ื—ื›ื ื›ืžื• ืขื•ื–ืจ ื‘ื™ืช, ืื‘ืœ ืืฃ ืื—ื“ ืœื ื‘ื™ื˜ืœ ืืช ื”ื ืงื•ื“ื” ืœื’ื‘ื™ ืžืกืคืจ ื”ื›ื ื™ืกื•ืช ื‘ืžืื’ืจ, ื•ื—ื™ื™ืฉื ื™ ืกืงืจื™ื ื™ื•ืชืจ ืžืคืขื ื‘ืฉื ื™ื™ื” ืœื ื™ืขื‘ื“ื• (ื”ื’ื‘ืœื” ืฉืœ ืื“ืจื™ื›ืœื•ืช ืขื•ื–ืจืช ื‘ื™ืช).

ื’ื™ืฉื” 1

ืจืืฉื™ืช, ื‘ื•ืื• ื ืจืื” ืื™ื–ื• ืขื•ื–ืจืช ื‘ื™ืช ืžืกื•ืคืงืช ืžื”ืงื•ืคืกื”. ืžื“ื™ื“ืช ืฆืจื™ื›ื” ืœืื•ืจืš ืชืงื•ืคื” ื”ื™ื ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ืžื‘ื•ืงืฉืช ืžืื•ื“. ื›ืžื•ื‘ืŸ, ื–ื” ื™ื•ืฉื ืœืคื ื™ ื–ืžืŸ ืจื‘ ื›ืจื›ื™ื‘ ืžื™ื•ื—ื“ - utility_meter.

ื”ืžื”ื•ืช ืฉืœ ื”ืจื›ื™ื‘ ื”ื™ื ืฉื”ื•ื ืžืชื—ื™ืœ ืืช ื”ืžืฉืชื ื” current_accumulated_value ื‘ืคื ื™ื ื•ืžืืคืก ืื•ืชื• ืœืื—ืจ ืชืงื•ืคื” ืžื•ื’ื“ืจืช (ืฉืขื”/ืฉื‘ื•ืข/ื—ื•ื“ืฉ). ื”ืจื›ื™ื‘ ืขืฆืžื• ืขื•ืงื‘ ืื—ืจ ื”ืžืฉืชื ื” ื”ื ื›ื ืก (ืขืจืš ืฉืœ ื—ื™ื™ืฉืŸ ื›ืœืฉื”ื•), ืžื ื•ื™ ืœืฉื™ื ื•ื™ื™ื ื‘ืขืจืš ืขืฆืžื• - ืืชื” ืจืง ืžืงื‘ืœ ืืช ื”ืชื•ืฆืื” ื”ืžื•ื’ืžืจืช. ื”ื“ื‘ืจ ื”ื–ื” ืžืชื•ืืจ ื‘ื›ืžื” ืฉื•ืจื•ืช ื‘ืงื•ื‘ืฅ ื”ืชืฆื•ืจื”

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, ืืฉืจ ืฆื•ื‘ืจื™ื ืงืจื™ืื•ืช ืฉืขืชื™ื•ืช ื•ื™ื•ืžื™ื•ืช, ื•ืžืืคืกื™ื ืื•ืชื ืœืืคืก ืœืื—ืจ ืชืงื•ืคื”. ืœืคื ื™ื›ื ื’ืจืฃ ืฉืœ ื”ืกื•ืœืœื” ื”ืฉืขื” ืœื—ืฆื™ ื™ื•ื.

ื‘ื™ืช ื—ื›ื: ืฉืจื˜ื•ื˜ ืฆืจื™ื›ืช ืžื™ื ื•ื—ืฉืžืœ ื‘-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

ืœืžืขืฉื”, ื‘ืืœื’ื•ืจื™ืชื ื–ื” ื˜ืžื•ื ื” ื”ื‘ืขื™ื” ืฉืœ ื’ื™ืฉื” ื–ื•. ื›ืคื™ ืฉื›ื‘ืจ ืฆื™ื™ื ืชื™, ืขื‘ื•ืจ ื›ืœ ืขืจืš ื ื›ื ืก (ืงืจื™ืืช ื”ืžื•ื ื” ื”ื ื•ื›ื—ื™ืช ืขื‘ื•ืจ ื›ืœ ืœื™ื˜ืจ ื”ื‘ื), ื ื•ืฆืจ 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 - ื”ืชืจืฉื™ื ื™ื™ื•ื•ืฆืจ ืขื ืขืžื•ื“ื•ืช ืžื™ื•ืฉืจื•ืช ืœืชื—ื™ืœืช ื”ืฉืขื”
  • ื ืงื•ื“ื•ืช_ืœืฉืขื”: 1 - ื‘ืจ ืื—ื“ ืœืฉืขื”
  • ื•ื”ื›ื™ ื—ืฉื•ื‘, aggregate_func: max ื”ื•ื ืœืงื—ืช ืืช ื”ืขืจืš ื”ืžืงืกื™ืžืœื™ ื‘ืชื•ืš ื›ืœ ืฉืขื”. ืคืจืžื˜ืจ ื–ื” ื”ื•ื ืฉื”ื•ืคืš ืืช ืชืจืฉื™ื ืฉืŸ ื”ืžืกื•ืจ ืœืกื•ืจื’ื™ื.

ื‘ื™ืช ื—ื›ื: ืฉืจื˜ื•ื˜ ืฆืจื™ื›ืช ืžื™ื ื•ื—ืฉืžืœ ื‘-Home Assistant

ืืœ ืชืฉื™ื ืœื‘ ืœืฉื•ืจืช ื”ืขืžื•ื“ื•ืช ืžืฉืžืืœ - ื–ื• ื”ื”ืชื ื”ื’ื•ืช ื”ืกื˜ื ื“ืจื˜ื™ืช ืฉืœ ื”ืจื›ื™ื‘ ืื ืื™ืŸ ื ืชื•ื ื™ื. ืื‘ืœ ืœื ื”ื™ื• ื ืชื•ื ื™ื - ื”ืคืขืœืชื™ ืื™ืกื•ืฃ ื ืชื•ื ื™ื ื‘ืืžืฆืขื•ืช ืžื“ ื”ืฉื™ืจื•ืช ืจืง ืœืคื ื™ ื›ืžื” ืฉืขื•ืช ืจืง ืœืžืขืŸ ื”ืžืืžืจ ื”ื–ื” (ืืชืืจ ืืช ื”ื’ื™ืฉื” ื”ื ื•ื›ื—ื™ืช ืฉืœื™ ืงืฆืช ื™ื•ืชืจ ื ืžื•ืš).

ื‘ืชืžื•ื ื” ื–ื• ืจืฆื™ืชื™ ืœื”ืจืื•ืช ืฉืœืคืขืžื™ื ืชืฆื•ื’ืช ื”ื ืชื•ื ื™ื ืืคื™ืœื• ืขื•ื‘ื“ืช, ื•ื”ืคืกื™ื ื‘ืืžืช ืžืฉืงืคื™ื ืืช ื”ืขืจื›ื™ื ื”ื ื›ื•ื ื™ื. ืื‘ืœ ื–ื” ืœื ื”ื›ืœ. ืžืฉื•ื ืžื”, ื”ืขืžื•ื“ื” ื”ืžื•ื“ื’ืฉืช ืœืชืงื•ืคื” ืฉื‘ื™ืŸ 11:12 ืขื“ 19:62 ืžืฆื™ื’ื” XNUMX ืœื™ื˜ืจ, ืื ื›ื™ ื‘ื’ืจืฃ ื”ืฉื™ื ื™ื™ื ืžืขื˜ ื’ื‘ื•ื” ื™ื•ืชืจ ืœืื•ืชื” ืชืงื•ืคื” ืžืื•ืชื• ื—ื™ื™ืฉืŸ ืื ื• ืจื•ืื™ื ืฆืจื™ื›ื” ืฉืœ XNUMX ืœื™ื˜ืจ. ืื• ื‘ืื’, ืื• ืฉื”ื™ื“ื™ื™ื ืขืงื•ืžื•ืช. ืื‘ืœ ืื ื™ ืขื“ื™ื™ืŸ ืœื ืžื‘ื™ืŸ ืœืžื” ื”ื ืชื•ื ื™ื ื‘ืฆื“ ื™ืžื™ืŸ ื ืฉื‘ืจื• - ื”ืฆืจื™ื›ื” ืฉื ื”ื™ื™ืชื” ืชืงื™ื ื”, ืžื” ืฉื ืจืื” ื’ื ืžื”ื’ืจืฃ ื”ืžืฉื•ื‘ืฉ.

ื‘ืื•ืคืŸ ื›ืœืœื™, ืœื ื”ืฆืœื—ืชื™ ืœื”ืฉื™ื’ ืืช ื”ืกื‘ื™ืจื•ืช ืฉืœ ื’ื™ืฉื” ื–ื• - ื”ื’ืจืฃ ื›ืžืขื˜ ืชืžื™ื“ ืžืจืื” ืื™ื–ื•ืฉื”ื™ ื›ืคื™ืจื”.

ืงื•ื“ ื“ื•ืžื” ืœื—ื™ื™ืฉืŸ ืฉืขื•ืช ื”ื™ื•ื.

      - 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 ืžื•ื’ื“ืจ ืœ-interval, ื•ื”ืคืจืžื˜ืจ points_per_hour ืฉื•ืœื˜ ืขืœ ื”ื›ืœ. ื•ื–ื• ื‘ืขื™ื” ื ื•ืกืคืช ืขื ื”ืจื›ื™ื‘ ื”ื–ื” - points_per_hour ืขื•ื‘ื“ ื”ื™ื˜ื‘ ืขืœ ืชืจืฉื™ืžื™ื ืฉืœ ืฉืขื” ืื• ืคื—ื•ืช, ืื‘ืœ ื‘ืื•ืคืŸ ืžื’ืขื™ืœ ื‘ืžืจื•ื•ื—ื™ื ื’ื“ื•ืœื™ื ื™ื•ืชืจ. ืื– ื›ื“ื™ ืœืงื‘ืœ ืขืžื•ื“ื” ืื—ืช ื‘ื™ื•ื ืื—ื“, ื”ื™ื™ืชื™ ืฆืจื™ืš ืœื”ื–ื™ืŸ ืืช ื”ืขืจืš 1/24=0.04166666. ืื ื™ ืœื ืžื“ื‘ืจ ืขืœ ืชืจืฉื™ืžื™ื ืฉื‘ื•ืขื™ื™ื ื•ื—ื•ื“ืฉื™ื™ื.

ื’ื™ืฉื” 2

ื‘ืขื•ื“ื™ ืขื“ื™ื™ืŸ ืœื”ื‘ื™ืŸ ืืช ื”ืขื•ื–ืจืช ื”ื‘ื™ืชื™ืช, ื ืชืงืœืชื™ ื‘ืกืจื˜ื•ืŸ ื”ื–ื”:


ื”ื—ื‘ืจ ืื•ืกืฃ ื ืชื•ื ื™ ืฆืจื™ื›ื” ืžื›ืžื” ืกื•ื’ื™ื ืฉืœ ืฉืงืขื™ Xiaomi. ื”ืžืฉื™ืžื” ืฉืœื• ืงืฆืช ื™ื•ืชืจ ืคืฉื•ื˜ื” - ืจืง ืœื”ืฆื™ื’ ืืช ืขืจืš ื”ืฆืจื™ื›ื” ืœื”ื™ื•ื, ืืชืžื•ืœ ื•ืœื—ื•ื“ืฉ. ืื™ืŸ ืฆื•ืจืš ื‘ืชืจืฉื™ืžื™ื.

ื‘ื•ืื• ื ืขื–ื•ื‘ ื‘ืฆื“ ืืช ื”ื•ื•ื™ื›ื•ื—ื™ื ืขืœ ื”ืื™ื ื˜ื’ืจืฆื™ื” ื”ื™ื“ื ื™ืช ืฉืœ ืขืจื›ื™ ื›ื•ื— ืžื™ื™ื“ื™ื™ื - ื›ื‘ืจ ื›ืชื‘ืชื™ ืขืœ "ื”ื“ื™ื•ืง" ืฉืœ ื’ื™ืฉื” ื–ื• ืœืขื™ืœ. ืœื ื‘ืจื•ืจ ืžื“ื•ืข ืœื ื”ืฉืชืžืฉ ื‘ืขืจื›ื™ ื”ืฆืจื™ื›ื” ื”ืžืฆื˜ื‘ืจื™ื, ืฉื›ื‘ืจ ื ืืกืคื™ื ืขืœ ื™ื“ื™ ืื•ืชื• ืฉืงืข. ืœื“ืขืชื™, ืฉื™ืœื•ื‘ ื‘ืชื•ืš ืคื™ืกืช ื”ื‘ืจื–ืœ ื™ืขื‘ื•ื“ ื˜ื•ื‘ ื™ื•ืชืจ.

ืžื”ืกืจื˜ื•ืŸ, ื ื™ืงื— ืืช ื”ืจืขื™ื•ืŸ ืฉืœ ืกืคื™ืจื” ื™ื“ื ื™ืช ืฉืœ ืฆืจื™ื›ื” ืœืžืฉืš ืชืงื•ืคื”. ืขื‘ื•ืจ ื’ื‘ืจ, ืจืง ื”ืขืจื›ื™ื ืฉืœ ื”ื™ื•ื ื•ืฉืœ ืืชืžื•ืœ ื ื—ืฉื‘ื™ื, ืื‘ืœ ื ืœืš ืจื—ื•ืง ื™ื•ืชืจ ื•ื ื ืกื” ืœืฆื™ื™ืจ ื’ืจืฃ. ืžื”ื•ืช ื”ืฉื™ื˜ื” ื”ืžื•ืฆืขืช ื‘ืžืงืจื” ืฉืœื™ ื”ื™ื ื›ื“ืœืงืžืŸ.

ื ื™ืฆื•ืจ ืขืจืš_ื‘ืชื—ื™ืœืช_ื”ืฉืขื” ืžืฉืชื ื”, ืฉื‘ื• ื ื›ืชื•ื‘ ืืช ืงืจื™ืื•ืช ื”ืžื•ื ื” ื”ื ื•ื›ื—ื™ื•ืช
ืœืคื™ ื”ื˜ื™ื™ืžืจ ื‘ืกื•ืฃ ื”ืฉืขื” (ืื• ื‘ืชื—ื™ืœืช ื”ืฉืขื” ื”ื‘ืื”), ืื ื• ืžื—ืฉื‘ื™ื ืืช ื”ื”ืคืจืฉ ื‘ื™ืŸ ื”ืงืจื™ืื” ื”ื ื•ื›ื—ื™ืช ืœื–ื• ืฉื ืฉืžืจื” ื‘ืชื—ื™ืœืช ื”ืฉืขื”. ื”ื”ืคืจืฉ ื”ื–ื” ื™ื”ื™ื” ื”ืฆืจื™ื›ื” ืœืฉืขื” ื”ื ื•ื›ื—ื™ืช - ื ืฉืžื•ืจ ืืช ื”ืขืจืš ืœื—ื™ื™ืฉืŸ, ื•ื‘ืขืชื™ื“ ื ื‘ื ื” ื’ืจืฃ ืขืœ ื‘ืกื™ืก ืขืจืš ื–ื”.
ืืชื” ื’ื ืฆืจื™ืš "ืœืืคืก" ืืช ื”ืžืฉืชื ื” value_at_beginning_of_hour ืขืœ ื™ื“ื™ ื›ืชื™ื‘ืช ื”ืขืจืš ื”ื ื•ื›ื—ื™ ืฉืœ ื”ืžื•ื ื” ืฉื.

ื›ืœ ื–ื” ื™ื›ื•ืœ ืœื”ื™ืขืฉื•ืช ื‘ืฆื•ืจื” ื˜ื•ื‘ื”... ื‘ืืžืฆืขื•ืช ื”ืกื™ื™ืขืช ื”ื‘ื™ืชื™ืช ืขืฆืžื”.

ืชืฆื˜ืจืš ืœื›ืชื•ื‘ ืงืฆืช ื™ื•ืชืจ ืงื•ื“ ืžืืฉืจ ื‘ื’ื™ืฉื” ื”ืงื•ื“ืžืช. ื ืชื—ื™ืœ ืขื ื”"ืžืฉืชื ื™ื" ื”ืœืœื•. ืžื—ื•ืฅ ืœืงื•ืคืกื”, ืื™ืŸ ืœื ื• ืืช ื”ื™ืฉื•ืช "ืžืฉืชื ื”", ืื‘ืœ ืืชื” ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘ืฉื™ืจื•ืชื™ื• ืฉืœ ืžืชื•ื•ืš 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

ื‘ืื•ืคืŸ ืขืงืจื•ื ื™, ื–ื” ื›ื‘ืจ ืžื” ืฉืืชื” ืฆืจื™ืš. ื”ื™ืชืจื•ืŸ ื‘ืฉื™ื˜ื” ื–ื• ื”ื•ื ืฉื”ื ืชื•ื ื™ื ื ื•ืฆืจื™ื ืคืขื ืื—ืช ื‘ื›ืœ ืžืจื•ื•ื—. ื”ึธื”ึตืŸ. ืกืš ืฉืœ 24 ื›ื ื™ืกื•ืช ืœื™ื•ื ืขื‘ื•ืจ ื”ืชืจืฉื™ื ื”ืฉืขืชื™.

ืœืžืจื‘ื” ื”ืฆืขืจ, ื–ื” ืขื“ื™ื™ืŸ ืœื ืคื•ืชืจ ืืช ื”ื‘ืขื™ื” ื”ื›ืœืœื™ืช ืฉืœ ื‘ืกื™ืก ื”ื•ืœืš ื•ื’ื“ืœ. ืื ืื ื™ ืจื•ืฆื” ื’ืจืฃ ืฆืจื™ื›ื” ื—ื•ื“ืฉื™, ืืฆื˜ืจืš ืœืื—ืกืŸ ื ืชื•ื ื™ื ืœืžืฉืš ืฉื ื” ืœืคื—ื•ืช. ื•ืžื›ื™ื•ื•ืŸ ืฉื”ืขื•ื–ืจ ื”ื‘ื™ืชื™ ืžืกืคืง ืจืง ื”ื’ื“ืจืช ืžืฉืš ืื—ืกื•ืŸ ืื—ืช ืขื‘ื•ืจ ื›ืœ ืžืกื“ ื”ื ืชื•ื ื™ื, ื–ื” ืื•ืžืจ ืฉื›ืœ ื”ื ืชื•ื ื™ื ื‘ืžืขืจื›ืช ื™ืฆื˜ืจื›ื• ืœื”ื™ื•ืช ืžืื•ื—ืกื ื™ื ื‘ืžืฉืš ืฉื ื” ืฉืœืžื”. ืœืžืฉืœ, ื‘ืฉื ื” ืื ื™ ืฆื•ืจืš 200 ืงื•ื‘ ืžื™ื, ื›ืœื•ืžืจ 200000 ื›ื ื™ืกื•ืช ื‘ืžืื’ืจ. ื•ืื ืืชื” ืœื•ืงื— ื‘ื—ืฉื‘ื•ืŸ ื—ื™ื™ืฉื ื™ื ืื—ืจื™ื, ืื– ื”ื“ืžื•ืช ื”ื•ืคื›ืช ืžื’ื•ื ื” ื‘ื“ืจืš ื›ืœืœ.

ื’ื™ืฉื” 3

ืœืžืจื‘ื” ื”ืžื–ืœ, ืื ืฉื™ื ื—ื›ืžื™ื ื›ื‘ืจ ืคืชืจื• ืืช ื”ื‘ืขื™ื” ื”ื–ื• ืขืœ ื™ื“ื™ ื›ืชื™ื‘ืช ืžืกื“ ื”ื ืชื•ื ื™ื ืฉืœ InfluxDB. ืžืกื“ ื ืชื•ื ื™ื ื–ื” ืžื•ืชืื ื‘ืžื™ื•ื—ื“ ืœืื—ืกื•ืŸ ื ืชื•ื ื™ื ืžื‘ื•ืกืกื™ ื–ืžืŸ ื•ืื™ื“ื™ืืœื™ ืœืื—ืกื•ืŸ ืขืจื›ื™ื ืฉืœ ื—ื™ื™ืฉื ื™ื ืฉื•ื ื™ื. ื”ืžืขืจื›ืช ืžืกืคืงืช ื’ื ืฉืคืช ืฉืื™ืœืชื” ื“ืžื•ื™ืช SQL ื”ืžืืคืฉืจืช ืœื—ืœืฅ ืขืจื›ื™ื ืžืžืกื“ ื”ื ืชื•ื ื™ื ื•ืœืื—ืจ ืžื›ืŸ ืœืฆื‘ื•ืจ ืื•ืชื ื‘ื“ืจื›ื™ื ืฉื•ื ื•ืช. ืœื‘ืกื•ืฃ, ื ื™ืชืŸ ืœืื—ืกืŸ ื ืชื•ื ื™ื ืฉื•ื ื™ื ืœื–ืžื ื™ื ืฉื•ื ื™ื. ืœื“ื•ื’ืžื”, ื ื™ืชืŸ ืœืื—ืกืŸ ืงืจื™ืื•ืช ื”ืžืฉืชื ื•ืช ื‘ืชื“ื™ืจื•ืช ื’ื‘ื•ื”ื” ื›ื’ื•ืŸ ื˜ืžืคืจื˜ื•ืจื” ืื• ืœื—ื•ืช ืœืžืฉืš ืžืกืคืจ ืฉื‘ื•ืขื•ืช ื‘ืœื‘ื“, ื‘ืขื•ื“ ืงืจื™ืื•ืช ื™ื•ืžื™ื•ืช ืฉืœ ืฆืจื™ื›ืช ื”ืžื™ื ื™ื›ื•ืœื•ืช ืœื”ื™ืฉืžืจ ืœืžืฉืš ืฉื ื” ืฉืœืžื”.

ื‘ื ื•ืกืฃ ืœ-InfluxDB, ืื ืฉื™ื ื—ื›ืžื™ื ื”ืžืฆื™ืื• ื’ื ืืช Grafana, ืžืขืจื›ืช ืœืฆื™ื•ืจ ื’ืจืคื™ื ืžื ืชื•ื ื™ื ืž-InfluxDB. 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

ื”ืคืงื•ื“ื” ื”ื–ื•:

  • ื™ื•ืฆืจ ืฉืื™ืœืชื” ืจืฆื™ืคื” ื‘ืฉื cq_water_cold_hourly ื‘ืžืกื“ ื”ื ืชื•ื ื™ื ืฉืœ ืขื•ื–ืจ ื”ื‘ื™ืช
  • ื”ืฉืื™ืœืชื” ืชื‘ื•ืฆืข ื›ืœ ืฉืขื” (ื–ืžืŸ (1h))
  • ื”ืฉืื™ืœืชื” ืชืฉืœื•ืฃ ืืช ื›ืœ ื”ื ืชื•ื ื™ื ืž-meading'a homeassistant.autogen.l (ืœื™ื˜ืจ), ื›ื•ืœืœ ืงืจื™ืื•ืช ืฉืœ ืžื™ื ืงืจื™ื ื•ื—ืžื™ื
  • ื”ื ืชื•ื ื™ื ื”ืžืฆื˜ื‘ืจื™ื ื™ืงื•ื‘ืฆื• ืœืคื™ entity_id, ืฉื™ื™ืฆื•ืจ ืขืจื›ื™ื ื ืคืจื“ื™ื ืœืžื™ื ืงืจื™ื ื•ื—ืžื™ื.
  • ืžื›ื™ื•ื•ืŸ ืฉืžื•ื ื” ื”ืœื™ื˜ืจื™ื ื”ื•ื ืจืฆืฃ ืžื•ื ื•ื˜ื•ื ื™ ื”ืขื•ืœื” ื‘ื›ืœ ืฉืขื”, ืชืฆื˜ืจืš ืœืงื—ืช ืืช ื”ืขืจืš ื”ืžืงืกื™ืžืœื™, ื›ืš ืฉื”ืฆื‘ื™ืจื” ืชืชื‘ืฆืข ืขืœ ื™ื“ื™ ื”ืคื•ื ืงืฆื™ื” max(value)
  • ื”ืขืจืš ื”ื—ื“ืฉ ื™ื™ื›ืชื‘ ืœ-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 ืฉืขื•ืช - ืขืจื›ื™ ื”-7 ื‘ื‘ื•ืงืจ ื‘ืคืœื˜ InfluxDB ืชื•ืืžื™ื ืœืขืจื›ื™ ื”ืฉืขื” 10:2 ื‘ืชืจืฉื™ืžื™ื ืœืžืขืœื”. ืฉื™ื ืœื‘ ื’ื ืฉื‘ื™ืŸ 5 ืœ-XNUMX ื‘ื‘ื•ืงืจ ืคืฉื•ื˜ ืื™ืŸ ืจืฉื•ืžื•ืช - ื–ื• ืขืฆื ื”ืชื›ื•ื ื” ืฉืœ ืฉืื™ืœืชื” ืจืฆื™ืคื”.

ื›ืคื™ ืฉืืชื” ื™ื›ื•ืœ ืœืจืื•ืช, ื”ืขืจืš ื”ืžืฆื˜ื‘ืจ ื”ื•ื ื’ื ืจืฆืฃ ืžื•ื ื•ื˜ื•ื ื™ ื”ื•ืœืš ื•ื’ื“ืœ, ืจืง ื”ืขืจื›ื™ื ื”ื ืคื—ื•ืช ืชื›ื•ืคื™ื - ืคืขื ื‘ืฉืขื”. ืื‘ืœ ื–ื• ืœื ื‘ืขื™ื” - ื ื•ื›ืœ ืœื›ืชื•ื‘ ืฉืื™ืœืชื” ื ื•ืกืคืช ืฉืชื—ืœืฅ ืืช ื”ื ืชื•ื ื™ื ื”ื ื›ื•ื ื™ื ืœืชืจืฉื™ื.

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). ื”ืคืขื, fill(ื”ืงื•ื“ื) ื™ืขื‘ื•ื“ ื›ืžื• ืฉืฆืจื™ืš, ื•ื™ื™ืฆื•ืจ ืืช ื”ื ืชื•ื ื™ื ื”ื—ืกืจื™ื (ื”ืคื•ื ืงืฆื™ื” ืชืงื‘ืœ ืืช ื”ืขืจืš ื”ืงื•ื“ื)
  • ื”ื“ื‘ืจ ื”ื—ืฉื•ื‘ ื‘ื™ื•ืชืจ ื‘ืฉืื™ืœืชื” ื–ื• ื”ื•ื ืคื•ื ืงืฆื™ื™ืช ื”ื”ื‘ื“ืœ, ืฉืชื—ืฉื‘ ืืช ื”ื”ืคืจืฉ ื‘ื™ืŸ ืฆื™ื•ื ื™ ื”ืฉืขื•ืช. ื›ืฉืœืขืฆืžื•, ื–ื” ืœื ืขื•ื‘ื“ ื•ื“ื•ืจืฉ ืคื•ื ืงืฆื™ื™ืช ืฆื‘ื™ืจื”. ืชืŸ ืœื–ื” ืœื”ื™ื•ืช 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) ืœื ื”ื™ื™ืชื” ืฆืจื™ื›ื”. ืขื ื–ืืช, ื”ืฉืื™ืœืชื” ืชื—ื–ื™ืจ ืืช ืื•ืชื• ืขืจืš ืฆืจื™ื›ื” ื‘ื–ื›ื•ืช fill(previous), ื•ืคื•ื ืงืฆื™ื™ืช ื”ื”ืคืจืฉ ืชืคื—ื™ืช ืืช ื”ืขืจืš ื”ื–ื” ืžืขืฆืžื” ื•ืชืงื‘ืœ 0 ื‘ืคืœื˜, ืฉื”ื•ื ืœืžืขืฉื” ื ื“ืจืฉ.

ื”ื“ื‘ืจ ื”ื™ื—ื™ื“ ืฉื ื•ืชืจ ืœืขืฉื•ืช ื”ื•ื ืœื‘ื ื•ืช ื’ืจืฃ. ื›ื“ื™ ืœืขืฉื•ืช ื–ืืช, ืคืชื— ืืช Grafana, ืคืชื— ืœื•ื— ืžื—ื•ื•ื ื™ื ืงื™ื™ื (ืื• ืฆื•ืจ ื—ื“ืฉ), ืฆื•ืจ ื—ืœื•ื ื™ืช ื—ื“ืฉื”. ื”ื’ื“ืจื•ืช ื”ืชืจืฉื™ื ื™ื”ื™ื• ื›ื“ืœืงืžืŸ.

ื‘ื™ืช ื—ื›ื: ืฉืจื˜ื•ื˜ ืฆืจื™ื›ืช ืžื™ื ื•ื—ืฉืžืœ ื‘-Home Assistant

ืืฆื™ื’ ื ืชื•ื ื™ ืžื™ื ืงืจื™ื ื•ื—ืžื™ื ื‘ืื•ืชื• ื’ืจืฃ. ื”ื‘ืงืฉื” ื”ื™ื ื‘ื“ื™ื•ืง ื›ืžื• ืฉืชื™ืืจืชื™ ืœืžืขืœื”.

ืคืจืžื˜ืจื™ ืชืฆื•ื’ื” ืžื•ื’ื“ืจื™ื ื›ื“ืœืงืžืŸ. ื‘ืฉื‘ื™ืœื™ ื–ื” ื™ื”ื™ื” ื’ืจืฃ ืขื ืงื•ื•ื™ื (ืงื•ื•ื™ื), ืฉื”ื•ืœืš ื‘ืฉืœื‘ื™ื (ืžื“ืจื’ื•ืช). ืคืจืžื˜ืจ ื”-Stack ื™ื•ืกื‘ืจ ืœื”ืœืŸ. ื™ืฉื ืŸ ืขื•ื“ ื›ืžื” ืืคืฉืจื•ื™ื•ืช ืชืฆื•ื’ื” ืœืžื˜ื”, ืื‘ืœ ื”ืŸ ืœื ื›ืœ ื›ืš ืžืขื ื™ื™ื ื•ืช.

ื‘ื™ืช ื—ื›ื: ืฉืจื˜ื•ื˜ ืฆืจื™ื›ืช ืžื™ื ื•ื—ืฉืžืœ ื‘-Home Assistant

ื›ื“ื™ ืœื”ื•ืกื™ืฃ ืืช ื”ื’ืจืฃ ื”ืžืชืงื‘ืœ ืœืขื•ื–ืจืช ื”ื‘ื™ืช, ืขืœื™ืš:

  • ืฆื ืžืžืฆื‘ ืขืจื™ื›ืช ื”ืชืจืฉื™ื. ืžืกื™ื‘ื” ื›ืœืฉื”ื™, ื”ื’ื“ืจื•ืช ืฉื™ืชื•ืฃ ื”ืชืจืฉื™ื ื”ื ื›ื•ื ื•ืช ืžื•ืฆืขื•ืช ืจืง ืžื“ืฃ ืœื•ื— ื”ืžื—ื•ื•ื ื™ื
  • ืœื—ืฅ ืขืœ ื”ืžืฉื•ืœืฉ ืœื™ื“ ืฉื ื”ืชืจืฉื™ื, ื‘ื—ืจ ืฉื™ืชื•ืฃ ืžื”ืชืคืจื™ื˜
  • ื‘ื—ืœื•ืŸ ืฉื ืคืชื—, ืขื‘ื•ืจ ืœืœืฉื•ื ื™ืช ื”ื˜ืžืขื”
  • ื‘ื˜ืœ ืืช ื”ืกื™ืžื•ืŸ ืฉืœ ื˜ื•ื•ื— ื”ื–ืžืŸ ื”ื ื•ื›ื—ื™ - ืื ื• ื ื’ื“ื™ืจ ืืช ื˜ื•ื•ื— ื”ื–ืžืŸ ื‘ืืžืฆืขื•ืช 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"

ืฉื™ืžื• ืœื‘ ืฉื˜ื•ื•ื— ื”ื–ืžืŸ (ื”ื™ื•ืžื™ื™ื ื”ืื—ืจื•ื ื™ื) ืžื•ื’ื“ืจ ื›ืืŸ, ื•ืœื ื‘ื”ื’ื“ืจื•ืช ืœื•ื— ื”ืžื—ื•ื•ื ื™ื.

ื”ืชืจืฉื™ื ื ืจืื” ื›ืš. ืœื ื”ืฉืชืžืฉืชื™ ื‘ืžื™ื ื—ืžื™ื ื‘ื™ื•ืžื™ื™ื ื”ืื—ืจื•ื ื™ื, ืื– ืจืง ื’ืจืฃ ืฉืœ ืžื™ื ืงืจื™ื ืžืฆื•ื™ืจ.

ื‘ื™ืช ื—ื›ื: ืฉืจื˜ื•ื˜ ืฆืจื™ื›ืช ืžื™ื ื•ื—ืฉืžืœ ื‘-Home Assistant

ืœื ื”ื—ืœื˜ืชื™ ื‘ืขืฆืžื™ ืื™ื–ื” ืชืจืฉื™ื ืื ื™ ื”ื›ื™ ืื•ื”ื‘, ืงื• ืฆืขื“ ืื• ื‘ืจื™ื ืืžื™ืชื™ื™ื. ืœื›ืŸ, ืื ื™ ืคืฉื•ื˜ ืืชืŸ ื“ื•ื’ืžื” ืœืœื•ื— ื–ืžื ื™ื ืœืฆืจื™ื›ื” ื™ื•ืžื™ืช, ืจืง ื”ืคืขื ื‘ื‘ืจื™ื. ืฉืื™ืœืชื•ืช ื‘ื ื•ื™ื•ืช ื‘ืื•ืชื• ืื•ืคืŸ ื›ืคื™ ืฉืชื•ืืจ ืœืขื™ืœ. ืืคืฉืจื•ื™ื•ืช ื”ืชืฆื•ื’ื” ื”ืŸ:

ื‘ื™ืช ื—ื›ื: ืฉืจื˜ื•ื˜ ืฆืจื™ื›ืช ืžื™ื ื•ื—ืฉืžืœ ื‘-Home Assistant

ื”ืชืจืฉื™ื ื”ื–ื” ื ืจืื” ื›ืš:

ื‘ื™ืช ื—ื›ื: ืฉืจื˜ื•ื˜ ืฆืจื™ื›ืช ืžื™ื ื•ื—ืฉืžืœ ื‘-Home Assistant

ืื– ื‘ืงืฉืจ ืœืคืจืžื˜ืจ Stack. ื‘ื’ืจืฃ ื–ื”, ืกืจื’ืœ ืžื™ื ืงืจื™ื ืžืฆื•ื™ืจ ืขืœ ื’ื‘ื™ ืกืจื’ืœ ื—ืžื™ื. ื”ื’ื•ื‘ื” ื”ื›ื•ืœืœ ืžืชืื™ื ืœืฆืจื™ื›ื” ื”ื›ื•ืœืœืช ืฉืœ ืžื™ื ืงืจื™ื ื•ื—ืžื™ื ืœืชืงื•ืคื”.

ื›ืœ ื”ื’ืจืคื™ื ื”ืžื•ืฆื’ื™ื ื”ื ื“ื™ื ืžื™ื™ื. ื ื™ืชืŸ ืœื”ืขื‘ื™ืจ ืืช ื”ืขื›ื‘ืจ ืžืขืœ ื ืงื•ื“ืช ื”ืขื ื™ื™ืŸ ื•ืœืจืื•ืช ืืช ื”ืคืจื˜ื™ื ื•ื”ืขืจืš ื‘ื ืงื•ื“ื” ืžืกื•ื™ืžืช.

ืœืžืจื‘ื” ื”ืฆืขืจ, ื–ื” ืœื ื”ื™ื” ื‘ืœื™ ื›ืžื” ื–ื‘ื•ื‘ื™ื ื‘ืžืฉื—ื”. ื‘ืชืจืฉื™ื ืขืžื•ื“ื•ืช (ื‘ื ื™ื’ื•ื“ ืœื’ืจืฃ ืขื ืงื•ื•ื™ ืฆืขื“), ืืžืฆืข ื”ืคืก ืื™ื ื• ื‘ืืžืฆืข ื”ื™ื•ื, ืืœื ื‘ืฉืขื” 00:00. ื”ึธื”ึตืŸ. ื”ื—ืฆื™ ื”ืฉืžืืœื™ ืฉืœ ื”ืกืจื’ืœ ืžืฆื•ื™ืจ ื‘ืžืงื•ื ื”ื™ื•ื ื”ืงื•ื“ื. ืื– ื”ืชืจืฉื™ืžื™ื ืœืฉื‘ืช ื•ืจืืฉื•ืŸ ืžืฆื•ื™ืจื™ื ืžืขื˜ ืžืฉืžืืœ ืœืื–ื•ืจ ื”ื›ื—ืœื—ืœ. ืขื“ ืฉื”ื‘ื ืชื™ ืื™ืš ืœื–ื›ื•ืช ื‘ื•.

ื‘ืขื™ื” ื ื•ืกืคืช ื”ื™ื ื—ื•ืกืจ ื”ื™ื›ื•ืœืช ืœืขื‘ื•ื“ ื‘ืฆื•ืจื” ื ื›ื•ื ื” ืขื ืžืจื•ื•ื—ื™ื ื—ื•ื“ืฉื™ื™ื. ื”ืขื•ื‘ื“ื” ื”ื™ื ืฉืื•ืจืš ื”ืฉืขื” / ื™ื•ื / ืฉื‘ื•ืข ืงื‘ื•ืข, ืืš ืื•ืจืš ื”ื—ื•ื“ืฉ ืฉื•ื ื” ื‘ื›ืœ ืคืขื. InfluxDB ื™ื›ื•ืœ ืœืขื‘ื•ื“ ืจืง ื‘ืžืจื•ื•ื—ื™ื ืฉื•ื•ื™ื. ืขื“ ื›ื”, ื”ืžื•ื— ืฉืœื™ ื”ืกืคื™ืง ืœื”ื’ื“ื™ืจ ืžืจื•ื•ื— ืงื‘ื•ืข ืฉืœ 30 ื™ื•ื. ื›ืŸ, ื”ื’ืจืฃ ื™ืจื—ืฃ ืžืขื˜ ื‘ืžื”ืœืš ื”ืฉื ื” ื•ื”ืคืกื™ื ืœื ื™ืชืื™ืžื• ื‘ื“ื™ื•ืง ืœื—ื•ื“ืฉื™ื. ืื‘ืœ ืžื›ื™ื•ื•ืŸ ืฉื”ื“ื‘ืจ ื”ื–ื” ืžืขื ื™ื™ืŸ ืื•ืชื™ ืจืง ื‘ืชื•ืจ ืžื“ ืชืฆื•ื’ื”, ืื ื™ ื‘ืกื“ืจ ืขื ื–ื”.

ืื ื™ ืจื•ืื” ืœืคื—ื•ืช ืฉื ื™ ืคืชืจื•ื ื•ืช:

  • ื›ื“ื™ ืœื”ื‘ืงื™ืข ื‘ืชืจืฉื™ืžื™ื ื—ื•ื“ืฉื™ื™ื ื•ืœื”ื’ื‘ื™ืœ ืืช ืขืฆืžืš ืœืฉื‘ื•ืขื™ื™ื. 52 ื‘ืืจื™ื ืฉื‘ื•ืขื™ื™ื ื‘ืฉื ื” ื ืจืื™ื ื“ื™ ื˜ื•ื‘
  • ืงื—ื• ื‘ื—ืฉื‘ื•ืŸ ืืช ื”ืฆืจื™ื›ื” ื”ื—ื•ื“ืฉื™ืช ืขืฆืžื” ื›ืฉื™ื˜ื” ืžืก' 2, ื•ื”ืฉืชืžืฉื• ื‘ื’ืจืืคื ื” ืจืง ืœื’ืจืคื™ื ื™ืคื™ื. ื–ื” ืคืชืจื•ืŸ ื“ื™ ืžื“ื•ื™ืง. ืืชื” ื™ื›ื•ืœ ืืคื™ืœื• ืœื›ืกื•ืช ืชืจืฉื™ืžื™ื ืฉืœ ื”ืฉื ื” ื”ืื—ืจื•ื ื” ืœืฉื ื”ืฉื•ื•ืื” - ื’ืจืืคื ื” ื™ื›ื•ืœื” ืœืขืฉื•ืช ืืช ื–ื”.

ืžืกืงื ื”

ืื ื™ ืœื ื™ื•ื“ืข ืœืžื”, ืื‘ืœ ืื ื™ ืื•ื”ื‘ ืชืจืฉื™ืžื™ื ืžื”ืกื•ื’ ื”ื–ื”. ื”ื ืžืจืื™ื ืฉื”ื—ื™ื™ื ื‘ืขื™ืฆื•ืžื ื•ื”ื›ืœ ืžืฉืชื ื”. ืืชืžื•ืœ ื”ื™ื” ื”ืจื‘ื”, ื”ื™ื•ื ื™ืฉ ืžืขื˜, ืžื—ืจ ื™ื”ื™ื” ืžืฉื”ื• ืื—ืจ. ื ื•ืชืจ ืœืขื‘ื•ื“ ืขื ืžืฉืงื™ ื‘ื™ืช ืขืœ ื ื•ืฉื ื”ืฆืจื™ื›ื”. ืื‘ืœ ื’ื ืขื ื”ืชื™ืื‘ื•ืŸ ื”ื ื•ื›ื—ื™, ืจืง ื ืชื•ืŸ ื’ื“ื•ืœ ื•ื‘ืœืชื™ ืžื•ื‘ืŸ ื‘ื”ืฆืขืช ื”ื—ื•ืง ื›ื‘ืจ ื”ื•ืคืš ืœืชืžื•ื ื” ื“ื™ ืžื•ื‘ื ืช ืฉืœ ืฆืจื™ื›ื”.

ืœืžืจื•ืช ื›ืžืขื˜ 20 ืฉื ื•ืช ื”ืงืจื™ื™ืจื” ืฉืœื™ ื›ืžืชื›ื ืช, ืœืžืขืฉื” ืœื ื”ืฆื˜ืœื‘ืชื™ ืขื ืžืกื“ื™ ื ืชื•ื ื™ื. ืœื›ืŸ, ื”ืชืงื ืช ืžืกื“ ื ืชื•ื ื™ื ื—ื™ืฆื•ื ื™ ื ืจืืชื” ื›ืžื• ืžืฉื”ื• ื›ืœ ื›ืš ืžื•ืคืจืš ื•ื‘ืœืชื™ ืžื•ื‘ืŸ. ื”ื›ืœ ื”ืฉืชื ื” ื”ืžืืžืจ ืœืขื™ืœ - ื”ืชื‘ืจืจ ืฉื”ื‘ืจื’ื” ืฉืœ ื›ืœื™ ืžืชืื™ื ืžืชื‘ืฆืขืช ื‘ื›ืžื” ืœื—ื™ืฆื•ืช, ื•ื‘ืืžืฆืขื•ืช ื›ืœื™ ืžื™ื•ื—ื“, ืžืฉื™ืžืช ื”ืชื•ื•ื™ื ื”ื•ืคื›ืช ืœืงืฆืช ื™ื•ืชืจ ืงืœื”.

ื‘ื›ื•ืชืจืช ื”ื–ื›ืจืชื™ ืืช ืฆืจื™ื›ืช ื”ื—ืฉืžืœ. ืœืฆืขืจื™, ื›ืจื’ืข ืื ื™ ืœื ื™ื›ื•ืœ ืœืกืคืง ืฉื•ื ื’ืจืฃ. ืžื˜ืจ SDM120 ืื—ื“ ืžืช, ื•ื”ืฉื ื™ ืขืžื•ืก ื›ืฉื ื™ื’ืฉ ืืœื™ื• ื“ืจืš Modbus. ืขื ื–ืืช, ื–ื” ืœื ืžืฉืคื™ืข ืขืœ ื ื•ืฉื ื”ืžืืžืจ ื”ื–ื” ื‘ืฉื•ื ืฆื•ืจื” - ื”ื’ืจืคื™ื ื™ื™ื‘ื ื• ื‘ืื•ืชื• ืื•ืคืŸ ื›ืžื• ืขื‘ื•ืจ ืžื™ื.

ื‘ืžืืžืจ ื–ื” ื ืชืชื™ ืืช ื”ื’ื™ืฉื•ืช ืฉื ื™ืกื™ืชื™ ื‘ืขืฆืžื™. ืื™ืŸ ืกืคืง ืฉื™ืฉ ืขื•ื“ ื›ืžื” ื“ืจื›ื™ื ืœืืจื’ืŸ ืื™ืกื•ืฃ ื•ื”ื“ืžื™ื” ืฉืœ ื ืชื•ื ื™ื ืฉืื ื™ ืœื ื™ื•ื“ืข ืขืœื™ื”ื. ืกืคืจื• ืœื™ ืขืœ ื–ื” ื‘ืชื’ื•ื‘ื•ืช, ืื ื™ ืžืื•ื“ ืืชืขื ื™ื™ืŸ. ืืฉืžื— ืœื‘ื™ืงื•ืจืช ื‘ื•ื ื” ื•ืจืขื™ื•ื ื•ืช ื—ื“ืฉื™ื. ืื ื™ ืžืงื•ื•ื” ืฉื”ื—ื•ืžืจ ืœืขื™ืœ ื™ืขื–ื•ืจ ื’ื ืœืžื™ืฉื”ื•.

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”