ಸ್ಮಾರ್ಟ್ ಹೋಮ್: ಹೋಮ್ ಅಸಿಸ್ಟೆಂಟ್‌ನಲ್ಲಿ ನೀರು ಮತ್ತು ವಿದ್ಯುತ್ ಬಳಕೆಯನ್ನು ಚಾರ್ಟಿಂಗ್ ಮಾಡುವುದು

ಸ್ಮಾರ್ಟ್ ಹೋಮ್: ಹೋಮ್ ಅಸಿಸ್ಟೆಂಟ್‌ನಲ್ಲಿ ನೀರು ಮತ್ತು ವಿದ್ಯುತ್ ಬಳಕೆಯನ್ನು ಚಾರ್ಟಿಂಗ್ ಮಾಡುವುದು
ಪ್ರತಿ ಬಾರಿ ನಾನು ವಿದ್ಯುತ್ ಮತ್ತು ನೀರಿನ ಪಾವತಿಯನ್ನು ಸ್ವೀಕರಿಸಿದಾಗ, ನಾನು ಆಶ್ಚರ್ಯ ಪಡುತ್ತೇನೆ - ನನ್ನ ಕುಟುಂಬವು ನಿಜವಾಗಿಯೂ ತುಂಬಾ ಸೇವಿಸುತ್ತದೆಯೇ? ಸರಿ, ಹೌದು, ಬಾತ್ರೂಮ್ನಲ್ಲಿ ಬಿಸಿಯಾದ ನೆಲ ಮತ್ತು ಬಾಯ್ಲರ್ ಇದೆ, ಆದರೆ ಅವರು ಸಾರ್ವಕಾಲಿಕ ಅಗ್ನಿಶಾಮಕರಾಗಿ ಕೆಲಸ ಮಾಡುವುದಿಲ್ಲ. ನಾವು ನೀರನ್ನು ಉಳಿಸುತ್ತೇವೆ ಎಂದು ತೋರುತ್ತದೆ (ಆದರೂ ನಾವು ಸ್ನಾನಗೃಹದಲ್ಲಿ ಸ್ಪ್ಲಾಶ್ ಮಾಡುವುದನ್ನು ಇಷ್ಟಪಡುತ್ತೇವೆ). ಕೆಲವು ವರ್ಷಗಳ ಹಿಂದೆ ನಾನು ಈಗಾಗಲೇ ಸಂಪರ್ಕಿತ ನೀರಿನ ಮೀಟರ್ и ವಿದ್ಯುತ್ ಸ್ಮಾರ್ಟ್ ಮನೆಗೆ, ಆದರೆ ಇಲ್ಲಿ ವಿಷಯಗಳು ಅಂಟಿಕೊಂಡಿವೆ. ಕೈಗಳು ಈಗ ಮಾತ್ರ ಸೇವನೆಯ ವಿಶ್ಲೇಷಣೆಯನ್ನು ತಲುಪಿವೆ, ವಾಸ್ತವವಾಗಿ, ಈ ಲೇಖನದ ಬಗ್ಗೆ ಏನು.

ನಾನು ಇತ್ತೀಚೆಗೆ ನನ್ನ ಸ್ಮಾರ್ಟ್ ಹೋಮ್ ಸಿಸ್ಟಮ್ ಆಗಿ ಹೋಮ್ ಅಸಿಸ್ಟೆಂಟ್‌ಗೆ ಬದಲಾಯಿಸಿದ್ದೇನೆ. ವಿವಿಧ ರೀತಿಯ ಗ್ರಾಫ್‌ಗಳ ಅನುಕೂಲಕರ ನಿರ್ಮಾಣದ ಸಾಧ್ಯತೆಯೊಂದಿಗೆ ದೊಡ್ಡ ಪ್ರಮಾಣದ ಡೇಟಾ ಸಂಗ್ರಹವನ್ನು ಸಂಘಟಿಸುವ ಸಾಮರ್ಥ್ಯವು ಒಂದು ಕಾರಣವಾಗಿತ್ತು.

ಈ ಲೇಖನದಲ್ಲಿ ವಿವರಿಸಿದ ಮಾಹಿತಿಯು ಹೊಸದಲ್ಲ, ವಿಭಿನ್ನ ಸಾಸ್‌ಗಳ ಅಡಿಯಲ್ಲಿ ಈ ಎಲ್ಲಾ ವಿಷಯಗಳನ್ನು ಈಗಾಗಲೇ ಅಂತರ್ಜಾಲದಲ್ಲಿ ವಿವರಿಸಲಾಗಿದೆ. ಆದರೆ ಪ್ರತಿ ಲೇಖನ, ನಿಯಮದಂತೆ, ಕೇವಲ ಒಂದು ವಿಧಾನ ಅಥವಾ ಅಂಶವನ್ನು ವಿವರಿಸುತ್ತದೆ. ನಾನು ಈ ಎಲ್ಲಾ ವಿಧಾನಗಳನ್ನು ಹೋಲಿಕೆ ಮಾಡಬೇಕಾಗಿತ್ತು ಮತ್ತು ಹೆಚ್ಚು ಸೂಕ್ತವಾದದನ್ನು ನಾನೇ ಆರಿಸಿಕೊಳ್ಳಬೇಕಾಗಿತ್ತು. ಲೇಖನವು ಇನ್ನೂ ಡೇಟಾ ಸಂಗ್ರಹಣೆಯ ಬಗ್ಗೆ ಸಮಗ್ರ ಮಾಹಿತಿಯನ್ನು ಒದಗಿಸುವುದಿಲ್ಲ, ಆದರೆ ನಾನು ಅದನ್ನು ಹೇಗೆ ಮಾಡಿದ್ದೇನೆ ಎಂಬುದರ ಸಾರಾಂಶವಾಗಿದೆ. ಆದ್ದರಿಂದ ರಚನಾತ್ಮಕ ಟೀಕೆಗಳು ಮತ್ತು ಸುಧಾರಣೆಗೆ ಸಲಹೆಗಳು ಸ್ವಾಗತಾರ್ಹ.

ಸಮಸ್ಯೆ ಹೇಳಿಕೆ

ಆದ್ದರಿಂದ, ಇಂದಿನ ವ್ಯಾಯಾಮದ ಗುರಿಯು ನೀರು ಮತ್ತು ವಿದ್ಯುತ್ ಬಳಕೆಯ ಸುಂದರವಾದ ಗ್ರಾಫ್ಗಳನ್ನು ಪಡೆಯುವುದು:

  • 2 ದಿನಗಳವರೆಗೆ ಗಂಟೆಗೆ
  • 2 ವಾರಗಳವರೆಗೆ ಪ್ರತಿದಿನ
  • (ಐಚ್ಛಿಕ) ಸಾಪ್ತಾಹಿಕ ಮತ್ತು ಮಾಸಿಕ

ಇದರಲ್ಲಿ ಕೆಲವು ತೊಂದರೆಗಳಿವೆ:

  • ಪ್ರಮಾಣಿತ ಚಾರ್ಟ್ ಘಟಕಗಳು ಸಾಕಷ್ಟು ಕಳಪೆಯಾಗಿವೆ. ಅತ್ಯುತ್ತಮವಾಗಿ, ನೀವು ಅಂಕಗಳ ಮೂಲಕ ಲೈನ್ ಗ್ರಾಫ್ ಅನ್ನು ನಿರ್ಮಿಸಬಹುದು.

    ನೀವು ಚೆನ್ನಾಗಿ ಹುಡುಕಿದರೆ, ಪ್ರಮಾಣಿತ ಚಾರ್ಟ್‌ನ ಸಾಮರ್ಥ್ಯಗಳನ್ನು ವಿಸ್ತರಿಸುವ ಮೂರನೇ ವ್ಯಕ್ತಿಯ ಘಟಕಗಳನ್ನು ನೀವು ಕಾಣಬಹುದು. ಮನೆ ಸಹಾಯಕರಿಗೆ, ತಾತ್ವಿಕವಾಗಿ, ಉತ್ತಮ ಮತ್ತು ಸುಂದರವಾದ ಘಟಕ ಮಿನಿ ಗ್ರಾಫ್ ಕಾರ್ಡ್, ಆದರೆ ಇದು ಸ್ವಲ್ಪಮಟ್ಟಿಗೆ ಸೀಮಿತವಾಗಿದೆ:

    • ಬಾರ್ ಚಾರ್ಟ್‌ನ ನಿಯತಾಂಕಗಳನ್ನು ದೊಡ್ಡ ಮಧ್ಯಂತರಗಳಲ್ಲಿ ಹೊಂದಿಸುವುದು ಕಷ್ಟ (ಬಾರ್‌ನ ಅಗಲವನ್ನು ಒಂದು ಗಂಟೆಯ ಭಿನ್ನರಾಶಿಗಳಲ್ಲಿ ಹೊಂದಿಸಲಾಗಿದೆ, ಅಂದರೆ ಒಂದು ಗಂಟೆಗಿಂತ ಹೆಚ್ಚಿನ ಮಧ್ಯಂತರಗಳನ್ನು ಭಾಗಶಃ ಸಂಖ್ಯೆಯಲ್ಲಿ ಹೊಂದಿಸಲಾಗುತ್ತದೆ)
    • ನೀವು ಒಂದು ಗ್ರಾಫ್‌ಗೆ ವಿಭಿನ್ನ ಘಟಕಗಳನ್ನು ಸೇರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ (ಉದಾಹರಣೆಗೆ, ತಾಪಮಾನ ಮತ್ತು ಆರ್ದ್ರತೆ, ಅಥವಾ ಬಾರ್ ಗ್ರಾಫ್ ಅನ್ನು ರೇಖೆಯೊಂದಿಗೆ ಸಂಯೋಜಿಸಿ)
  • ಹೋಮ್ ಅಸಿಸ್ಟೆಂಟ್ ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ಅತ್ಯಂತ ಪ್ರಾಚೀನ SQLite ಡೇಟಾಬೇಸ್ ಅನ್ನು ಬಳಸುತ್ತದೆ ಮಾತ್ರವಲ್ಲ (ಮತ್ತು ನಾನು, ಹ್ಯಾಂಡಿಮ್ಯಾನ್, MySQL ಅಥವಾ ಪೋಸ್ಟ್‌ಗ್ರೆಸ್‌ನ ಸ್ಥಾಪನೆಯನ್ನು ಕರಗತ ಮಾಡಿಕೊಳ್ಳಲಿಲ್ಲ), ಡೇಟಾವನ್ನು ಅತ್ಯಂತ ಸೂಕ್ತವಾದ ರೀತಿಯಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾಗುವುದಿಲ್ಲ. ಆದ್ದರಿಂದ, ಉದಾಹರಣೆಗೆ, ಒಂದು ಪ್ಯಾರಾಮೀಟರ್‌ನ ಪ್ರತಿಯೊಂದು ಚಿಕ್ಕ ಡಿಜಿಟಲ್ ಪ್ಯಾರಾಮೀಟರ್‌ನ ಪ್ರತಿ ಬದಲಾವಣೆಯೊಂದಿಗೆ, ಒಂದು ಕಿಲೋಬೈಟ್ ಗಾತ್ರದ ದೊಡ್ಡ 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 ಯಿಂದ ಡೇಟಾಬೇಸ್ ಅನ್ನು ಸುಲಭವಾಗಿ ಹೆಚ್ಚಿಸಬಹುದು. ಒಂದು ವಾರದಲ್ಲಿ, ಸಿಸ್ಟಮ್ ಕೇವಲ ಟಾಸ್ ಮತ್ತು ತಿರುಗುತ್ತದೆ, ಮತ್ತು ಒಂದು ತಿಂಗಳಲ್ಲಿ ಫ್ಲ್ಯಾಷ್ ಡ್ರೈವ್ ಸಾಯುತ್ತದೆ (ರಾಸ್ಪ್ಬೆರಿ ಪಿಐನಲ್ಲಿ ಹೋಮ್ ಅಸಿಸ್ಟೆಂಟ್ನ ವಿಶಿಷ್ಟವಾದ ಸ್ಥಾಪನೆಯ ಸಂದರ್ಭದಲ್ಲಿ), ಮತ್ತು ಇಡೀ ವರ್ಷ ಡೇಟಾವನ್ನು ಸಂಗ್ರಹಿಸುವ ಬಗ್ಗೆ ಯಾವುದೇ ಮಾತುಕತೆ ಇರುವುದಿಲ್ಲ. .

  • ನೀವು ಅದೃಷ್ಟವಂತರಾಗಿದ್ದರೆ, ನಿಮ್ಮ ಮೀಟರ್ ಸ್ವತಃ ಬಳಕೆಯನ್ನು ಎಣಿಸಬಹುದು. ನೀವು ಯಾವುದೇ ಸಮಯದಲ್ಲಿ ಮೀಟರ್ ಅನ್ನು ಸಂಪರ್ಕಿಸಬಹುದು ಮತ್ತು ಸಂಗ್ರಹವಾದ ಬಳಕೆಯ ಮೌಲ್ಯವನ್ನು ಯಾವ ಸಮಯದಲ್ಲಿ ಕೇಳಬಹುದು. ನಿಯಮದಂತೆ, ಡಿಜಿಟಲ್ ಇಂಟರ್ಫೇಸ್ (RS232 / RS485 / Modbus / Zigbee) ಹೊಂದಿರುವ ಎಲ್ಲಾ ವಿದ್ಯುತ್ ಮೀಟರ್ಗಳು ಅಂತಹ ಅವಕಾಶವನ್ನು ಒದಗಿಸುತ್ತವೆ.

    ಕೆಟ್ಟದಾಗಿ, ಸಾಧನವು ಕೆಲವು ತತ್‌ಕ್ಷಣದ ನಿಯತಾಂಕವನ್ನು ಸರಳವಾಗಿ ಅಳೆಯಲು ಸಾಧ್ಯವಾದರೆ (ಉದಾಹರಣೆಗೆ, ತತ್‌ಕ್ಷಣದ ವಿದ್ಯುತ್ ಅಥವಾ ಪ್ರವಾಹ), ಅಥವಾ ಪ್ರತಿ X ವ್ಯಾಟ್-ಗಂಟೆಗಳು ಅಥವಾ ಲೀಟರ್‌ಗಳಿಗೆ ಸರಳವಾಗಿ ದ್ವಿದಳ ಧಾನ್ಯಗಳನ್ನು ಉತ್ಪಾದಿಸಬಹುದು. ನಂತರ ಅದನ್ನು ಹೇಗೆ ಮತ್ತು ಯಾವುದರೊಂದಿಗೆ ಸಂಯೋಜಿಸಬೇಕು ಮತ್ತು ಎಲ್ಲಿ ಮೌಲ್ಯವನ್ನು ಸಂಗ್ರಹಿಸಬೇಕು ಎಂಬುದರ ಕುರಿತು ನೀವು ಯೋಚಿಸಬೇಕು. ಯಾವುದೇ ಕಾರಣಕ್ಕಾಗಿ ಮುಂದಿನ ವರದಿಯನ್ನು ಕಳೆದುಕೊಳ್ಳುವ ಅಪಾಯವಿರುತ್ತದೆ ಮತ್ತು ಒಟ್ಟಾರೆಯಾಗಿ ಸಿಸ್ಟಮ್ನ ನಿಖರತೆ ಪ್ರಶ್ನೆಗಳನ್ನು ಹುಟ್ಟುಹಾಕುತ್ತದೆ. ನೀವು ಸಹಜವಾಗಿ, ಹೋಮ್ ಅಸಿಸ್ಟೆಂಟ್‌ನಂತಹ ಸ್ಮಾರ್ಟ್ ಹೋಮ್ ಸಿಸ್ಟಮ್‌ಗೆ ಎಲ್ಲವನ್ನೂ ಒಪ್ಪಿಸಬಹುದು, ಆದರೆ ಡೇಟಾಬೇಸ್‌ನಲ್ಲಿನ ನಮೂದುಗಳ ಸಂಖ್ಯೆಯನ್ನು ಯಾರೂ ರದ್ದುಗೊಳಿಸಿಲ್ಲ ಮತ್ತು ಸೆಕೆಂಡಿಗೆ ಒಂದಕ್ಕಿಂತ ಹೆಚ್ಚು ಬಾರಿ ಮತದಾನ ಸಂವೇದಕಗಳು ಕಾರ್ಯನಿರ್ವಹಿಸುವುದಿಲ್ಲ (ಇದರ ಮಿತಿ ಹೋಮ್ ಅಸಿಸ್ಟೆಂಟ್ ಆರ್ಕಿಟೆಕ್ಚರ್).

ವಿಧಾನ 1

ಮೊದಲಿಗೆ, ಬಾಕ್ಸ್‌ನಿಂದ ಯಾವ ಹೋಮ್ ಅಸಿಸ್ಟೆಂಟ್ ಅನ್ನು ಒದಗಿಸಲಾಗಿದೆ ಎಂದು ನೋಡೋಣ. ಒಂದು ಅವಧಿಯಲ್ಲಿ ಬಳಕೆಯನ್ನು ಅಳೆಯುವುದು ಹೆಚ್ಚು ವಿನಂತಿಸಿದ ಕಾರ್ಯವಾಗಿದೆ. ಸಹಜವಾಗಿ, ಇದನ್ನು ಬಹಳ ಹಿಂದೆಯೇ ವಿಶೇಷ ಘಟಕವಾಗಿ ಅಳವಡಿಸಲಾಗಿದೆ - ಯುಟಿಲಿಟಿ_ಮೀಟರ್.

ಘಟಕದ ಮೂಲತತ್ವವೆಂದರೆ ಅದು ಪ್ರಸ್ತುತ_ಸಂಚಿತ_ಮೌಲ್ಯ ವೇರಿಯೇಬಲ್ ಅನ್ನು ಒಳಗೆ ಪ್ರಾರಂಭಿಸುತ್ತದೆ ಮತ್ತು ನಿರ್ದಿಷ್ಟ ಅವಧಿಯ ನಂತರ (ಗಂಟೆ/ವಾರ/ತಿಂಗಳು) ಮರುಹೊಂದಿಸುತ್ತದೆ. ಘಟಕವು ಒಳಬರುವ ವೇರಿಯಬಲ್ ಅನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡುತ್ತದೆ (ಕೆಲವು ರೀತಿಯ ಸಂವೇದಕದ ಮೌಲ್ಯ), ಮೌಲ್ಯದಲ್ಲಿನ ಬದಲಾವಣೆಗಳಿಗೆ ಚಂದಾದಾರರಾಗುತ್ತದೆ - ನೀವು ಪೂರ್ಣಗೊಳಿಸಿದ ಫಲಿತಾಂಶವನ್ನು ಪಡೆಯುತ್ತೀರಿ. ಈ ವಿಷಯವನ್ನು ಕಾನ್ಫಿಗರೇಶನ್ ಫೈಲ್‌ನಲ್ಲಿ ಕೆಲವೇ ಸಾಲುಗಳಲ್ಲಿ ವಿವರಿಸಲಾಗಿದೆ

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 - ಚಾರ್ಟ್ ಅನ್ನು ಗಂಟೆಯ ಪ್ರಾರಂಭಕ್ಕೆ ಜೋಡಿಸಲಾದ ಕಾಲಮ್‌ಗಳೊಂದಿಗೆ ರಚಿಸಲಾಗುತ್ತದೆ
  • ಪ್ರತಿ ಗಂಟೆಗೆ ಅಂಕಗಳು: 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'

ಗುಂಪು_ಬೈ ಪ್ಯಾರಾಮೀಟರ್ ಅನ್ನು ಮಧ್ಯಂತರಕ್ಕೆ ಹೊಂದಿಸಲಾಗಿದೆ ಮತ್ತು ಪಾಯಿಂಟ್‌ಗಳು_ಪರ್_ಹವರ್ ಪ್ಯಾರಾಮೀಟರ್ ಎಲ್ಲವನ್ನೂ ನಿಯಂತ್ರಿಸುತ್ತದೆ ಎಂಬುದನ್ನು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮತ್ತು ಈ ಘಟಕದೊಂದಿಗೆ ಇದು ಮತ್ತೊಂದು ಸಮಸ್ಯೆಯಾಗಿದೆ - point_per_hour ಒಂದು ಗಂಟೆ ಅಥವಾ ಅದಕ್ಕಿಂತ ಕಡಿಮೆ ಅವಧಿಯ ಚಾರ್ಟ್‌ಗಳಲ್ಲಿ ಉತ್ತಮವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ, ಆದರೆ ದೊಡ್ಡ ಮಧ್ಯಂತರಗಳಲ್ಲಿ ಅಸಹ್ಯಕರವಾಗಿರುತ್ತದೆ. ಆದ್ದರಿಂದ ಒಂದು ದಿನದಲ್ಲಿ ಒಂದು ಕಾಲಮ್ ಪಡೆಯಲು, ನಾನು 1/24=0.04166666 ಮೌಲ್ಯವನ್ನು ನಮೂದಿಸಬೇಕಾಗಿತ್ತು. ನಾನು ಸಾಪ್ತಾಹಿಕ ಮತ್ತು ಮಾಸಿಕ ಚಾರ್ಟ್‌ಗಳ ಬಗ್ಗೆ ಮಾತನಾಡುವುದಿಲ್ಲ.

ವಿಧಾನ 2

ಹೋಮ್ ಅಸಿಸ್ಟೆಂಟ್ ಅನ್ನು ಇನ್ನೂ ಹುಡುಕುತ್ತಿರುವಾಗ, ನಾನು ಈ ವೀಡಿಯೊವನ್ನು ನೋಡಿದೆ:


ಒಡನಾಡಿ ಹಲವಾರು ರೀತಿಯ Xiaomi ಸಾಕೆಟ್‌ಗಳಿಂದ ಬಳಕೆಯ ಡೇಟಾವನ್ನು ಸಂಗ್ರಹಿಸುತ್ತಾನೆ. ಅವನ ಕಾರ್ಯವು ಸ್ವಲ್ಪ ಸರಳವಾಗಿದೆ - ಇಂದು, ನಿನ್ನೆ ಮತ್ತು ತಿಂಗಳಿಗೆ ಬಳಕೆಯ ಮೌಲ್ಯವನ್ನು ಪ್ರದರ್ಶಿಸಿ. ಯಾವುದೇ ಚಾರ್ಟ್‌ಗಳ ಅಗತ್ಯವಿಲ್ಲ.

ತತ್ಕ್ಷಣದ ವಿದ್ಯುತ್ ಮೌಲ್ಯಗಳ ಹಸ್ತಚಾಲಿತ ಏಕೀಕರಣದ ಬಗ್ಗೆ ವಾದಗಳನ್ನು ಬಿಟ್ಟುಬಿಡೋಣ - ಮೇಲಿನ ಈ ವಿಧಾನದ "ನಿಖರತೆ" ಬಗ್ಗೆ ನಾನು ಈಗಾಗಲೇ ಬರೆದಿದ್ದೇನೆ. ಅದೇ ಔಟ್ಲೆಟ್ನಿಂದ ಈಗಾಗಲೇ ಸಂಗ್ರಹಿಸಲಾದ ಸಂಚಿತ ಬಳಕೆಯ ಮೌಲ್ಯಗಳನ್ನು ಏಕೆ ಬಳಸಲಿಲ್ಲ ಎಂಬುದು ಸ್ಪಷ್ಟವಾಗಿಲ್ಲ. ನನ್ನ ಅಭಿಪ್ರಾಯದಲ್ಲಿ, ಕಬ್ಬಿಣದ ತುಂಡು ಒಳಗೆ ಏಕೀಕರಣವು ಉತ್ತಮವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ.

ವೀಡಿಯೊದಿಂದ, ಒಂದು ಅವಧಿಗೆ ಬಳಕೆಯನ್ನು ಹಸ್ತಚಾಲಿತವಾಗಿ ಎಣಿಸುವ ಕಲ್ಪನೆಯನ್ನು ನಾವು ತೆಗೆದುಕೊಳ್ಳುತ್ತೇವೆ. ಮನುಷ್ಯನಿಗೆ, ಇಂದು ಮತ್ತು ನಿನ್ನೆಯ ಮೌಲ್ಯಗಳನ್ನು ಮಾತ್ರ ಪರಿಗಣಿಸಲಾಗುತ್ತದೆ, ಆದರೆ ನಾವು ಮುಂದೆ ಹೋಗಿ ಗ್ರಾಫ್ ಅನ್ನು ಸೆಳೆಯಲು ಪ್ರಯತ್ನಿಸುತ್ತೇವೆ. ನನ್ನ ವಿಷಯದಲ್ಲಿ ಪ್ರಸ್ತಾವಿತ ವಿಧಾನದ ಸಾರವು ಈ ಕೆಳಗಿನಂತಿರುತ್ತದೆ.

ನಾವು ವೇರಿಯಬಲ್ ಮೌಲ್ಯವನ್ನು_at_the_beginning_of_hour ಅನ್ನು ರಚಿಸುತ್ತೇವೆ, ಇದರಲ್ಲಿ ನಾವು ಪ್ರಸ್ತುತ ಕೌಂಟರ್ ರೀಡಿಂಗ್‌ಗಳನ್ನು ಬರೆಯುತ್ತೇವೆ
ಗಂಟೆಯ ಕೊನೆಯಲ್ಲಿ (ಅಥವಾ ಮುಂದಿನ ಪ್ರಾರಂಭದಲ್ಲಿ) ಟೈಮರ್ ಪ್ರಕಾರ, ಪ್ರಸ್ತುತ ಓದುವಿಕೆ ಮತ್ತು ಗಂಟೆಯ ಆರಂಭದಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾದ ನಡುವಿನ ವ್ಯತ್ಯಾಸವನ್ನು ನಾವು ಲೆಕ್ಕಾಚಾರ ಮಾಡುತ್ತೇವೆ. ಈ ವ್ಯತ್ಯಾಸವು ಪ್ರಸ್ತುತ ಗಂಟೆಗೆ ಬಳಕೆಯಾಗಿರುತ್ತದೆ - ನಾವು ಮೌಲ್ಯವನ್ನು ಸಂವೇದಕಕ್ಕೆ ಉಳಿಸುತ್ತೇವೆ ಮತ್ತು ಭವಿಷ್ಯದಲ್ಲಿ ನಾವು ಈ ಮೌಲ್ಯವನ್ನು ಆಧರಿಸಿ ಗ್ರಾಫ್ ಅನ್ನು ನಿರ್ಮಿಸುತ್ತೇವೆ.
ಕೌಂಟರ್‌ನ ಪ್ರಸ್ತುತ ಮೌಲ್ಯವನ್ನು ಬರೆಯುವ ಮೂಲಕ ನೀವು ವೇರಿಯಬಲ್ ಮೌಲ್ಯ_at_beginning_of_hour ಅನ್ನು "ಮರುಹೊಂದಿಸುವ" ಅಗತ್ಯವಿದೆ.

ಇದೆಲ್ಲವನ್ನೂ ಚೆನ್ನಾಗಿ ಮಾಡಬಹುದು ... ಗೃಹ ಸಹಾಯಕರ ಮೂಲಕ.

ಹಿಂದಿನ ವಿಧಾನಕ್ಕಿಂತ ಸ್ವಲ್ಪ ಹೆಚ್ಚು ಕೋಡ್ ಅನ್ನು ನೀವು ಬರೆಯಬೇಕಾಗುತ್ತದೆ. ಈ "ವೇರಿಯಬಲ್" ಗಳೊಂದಿಗೆ ಪ್ರಾರಂಭಿಸೋಣ. ಬಾಕ್ಸ್ ಹೊರಗೆ, ನಾವು "ವೇರಿಯಬಲ್" ಅಸ್ತಿತ್ವವನ್ನು ಹೊಂದಿಲ್ಲ, ಆದರೆ ನೀವು mqtt ಬ್ರೋಕರ್ ಸೇವೆಗಳನ್ನು ಬಳಸಬಹುದು. ನಾವು ರಿಟೈನ್=ಟ್ರೂ ಫ್ಲ್ಯಾಗ್‌ನೊಂದಿಗೆ ಮೌಲ್ಯಗಳನ್ನು ಕಳುಹಿಸುತ್ತೇವೆ - ಇದು ಬ್ರೋಕರ್‌ನ ಒಳಗೆ ಮೌಲ್ಯವನ್ನು ಉಳಿಸುತ್ತದೆ ಮತ್ತು ಹೋಮ್ ಅಸಿಸ್ಟೆಂಟ್ ಅನ್ನು ರೀಬೂಟ್ ಮಾಡಿದಾಗಲೂ ಅದನ್ನು ಯಾವುದೇ ಸಮಯದಲ್ಲಿ ಹೊರತೆಗೆಯಬಹುದು. ನಾನು ಗಂಟೆಗೆ ಮತ್ತು ದೈನಂದಿನ ಕೌಂಟರ್‌ಗಳನ್ನು ಏಕಕಾಲದಲ್ಲಿ ಮಾಡಿದ್ದೇನೆ.

- 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 ಯಿಂದ ಡೇಟಾದಿಂದ ಗ್ರಾಫ್‌ಗಳನ್ನು ಸೆಳೆಯುವ ವ್ಯವಸ್ಥೆಯಾದ ಗ್ರಾಫನಾವನ್ನು ಸಹ ಕಂಡುಹಿಡಿದರು. ಗ್ರಾಫಾನಾ ವಿವಿಧ ರೀತಿಯ ಚಾರ್ಟ್‌ಗಳನ್ನು ಸೆಳೆಯಬಹುದು, ಅವುಗಳನ್ನು ವಿವರವಾಗಿ ಕಸ್ಟಮೈಸ್ ಮಾಡಬಹುದು ಮತ್ತು, ಮುಖ್ಯವಾಗಿ, ಈ ಚಾರ್ಟ್‌ಗಳನ್ನು ಲವ್ಲೇಸ್-ಯುಐ ಹೋಮ್ ಅಸಿಸ್ಟೆಂಟ್‌ಗೆ "ಪ್ಲಗ್" ಮಾಡಬಹುದು.

ಸ್ಪೂರ್ತಿಗೊಳ್ಳು ಇಲ್ಲಿ и ಇಲ್ಲಿ. ಇನ್‌ಫ್ಲಕ್ಸ್‌ಡಿಬಿ ಮತ್ತು ಗ್ರಾಫನಾವನ್ನು ಹೋಮ್ ಅಸಿಸ್ಟೆಂಟ್‌ಗೆ ಸ್ಥಾಪಿಸುವ ಮತ್ತು ಸಂಪರ್ಕಿಸುವ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಲೇಖನಗಳು ವಿವರವಾಗಿ ವಿವರಿಸುತ್ತವೆ. ನನ್ನ ನಿರ್ದಿಷ್ಟ ಸಮಸ್ಯೆಯನ್ನು ಪರಿಹರಿಸಲು ನಾನು ಗಮನಹರಿಸುತ್ತೇನೆ.

ಆದ್ದರಿಂದ, ಮೊದಲನೆಯದಾಗಿ, 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 ಕನ್ಸೋಲ್‌ಗೆ ಹೋಗಿ ಮತ್ತು ನಮ್ಮ ಡೇಟಾಬೇಸ್ ಅನ್ನು ಹೊಂದಿಸೋಣ. ನಿರ್ದಿಷ್ಟವಾಗಿ, ನಿರ್ದಿಷ್ಟ ಡೇಟಾವನ್ನು ಎಷ್ಟು ಸಮಯದವರೆಗೆ ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ ಎಂಬುದನ್ನು ನೀವು ಕಾನ್ಫಿಗರ್ ಮಾಡಬೇಕಾಗುತ್ತದೆ. ಇದನ್ನು ಕರೆಯಲ್ಪಡುವ ಮೂಲಕ ನಿಯಂತ್ರಿಸಲಾಗುತ್ತದೆ. ಧಾರಣ ನೀತಿ - ಇದು ಮುಖ್ಯ ಡೇಟಾಬೇಸ್‌ನಲ್ಲಿರುವ ಡೇಟಾಬೇಸ್‌ಗಳಿಗೆ ಹೋಲುತ್ತದೆ, ಪ್ರತಿ ಆಂತರಿಕ ಡೇಟಾಬೇಸ್ ತನ್ನದೇ ಆದ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಹೊಂದಿದೆ. ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ, ಆಟೋಜೆನ್ ಎಂಬ ಧಾರಣ ನೀತಿಗೆ ಎಲ್ಲಾ ಡೇಟಾವನ್ನು ಸೇರಿಸಲಾಗುತ್ತದೆ, ಈ ಡೇಟಾವನ್ನು ಒಂದು ವಾರದವರೆಗೆ ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ. ಗಂಟೆಯ ಡೇಟಾವನ್ನು ಒಂದು ತಿಂಗಳವರೆಗೆ, ವಾರದ ಡೇಟಾವನ್ನು ಒಂದು ವರ್ಷದವರೆಗೆ ಮತ್ತು ಮಾಸಿಕ ಡೇಟಾವನ್ನು ಎಂದಿಗೂ ಅಳಿಸಬಾರದು ಎಂದು ನಾನು ಬಯಸುತ್ತೇನೆ. ನಾವು ಸೂಕ್ತವಾದ ಧಾರಣ ನೀತಿಗಳನ್ನು ರಚಿಸುತ್ತೇವೆ

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 ಹೆಸರಿನ ನಿರಂತರ ಪ್ರಶ್ನೆಯನ್ನು ರಚಿಸುತ್ತದೆ
  • ಪ್ರಶ್ನೆಯನ್ನು ಪ್ರತಿ ಗಂಟೆಗೆ ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತದೆ (ಸಮಯ(1ಗಂ))
  • ಪ್ರಶ್ನೆಯು ತಣ್ಣನೆಯ ಮತ್ತು ಬಿಸಿನೀರಿನ ವಾಚನಗೋಷ್ಠಿಯನ್ನು ಒಳಗೊಂಡಂತೆ ಮಾಪನ'a 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' ಗಾಗಿ ಡೇಟಾವನ್ನು ಎಳೆಯುತ್ತೇವೆ (ಸಮಯ >= ಈಗ() -24ಗಂ).
  • ನಾನು ಹೇಳಿದಂತೆ, homeassistant.month.water_meter_hour ಅನುಕ್ರಮದಿಂದ ಕೆಲವು ನಮೂದುಗಳು ಕಾಣೆಯಾಗಿರಬಹುದು. ಗ್ರೂಪ್ ಬೈ ಟೈಮ್ (1ಗಂ) ನೊಂದಿಗೆ ಪ್ರಶ್ನೆಯನ್ನು ರನ್ ಮಾಡುವ ಮೂಲಕ ನಾವು ಈ ಡೇಟಾವನ್ನು ಮರುಸೃಷ್ಟಿಸುತ್ತೇವೆ. ಈ ಸಮಯದಲ್ಲಿ, ಭರ್ತಿ (ಹಿಂದಿನ) ಸರಿಯಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ, ಕಾಣೆಯಾದ ಡೇಟಾವನ್ನು ಉತ್ಪಾದಿಸುತ್ತದೆ (ಕಾರ್ಯವು ಹಿಂದಿನ ಮೌಲ್ಯವನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ)
  • ಈ ಪ್ರಶ್ನೆಯಲ್ಲಿ ಪ್ರಮುಖ ವಿಷಯವೆಂದರೆ ವ್ಯತ್ಯಾಸ ಕಾರ್ಯ, ಇದು ಗಂಟೆಯ ಅಂಕಗಳ ನಡುವಿನ ವ್ಯತ್ಯಾಸವನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡುತ್ತದೆ. ಸ್ವತಃ, ಇದು ಕೆಲಸ ಮಾಡುವುದಿಲ್ಲ ಮತ್ತು ಒಟ್ಟುಗೂಡಿಸುವ ಕಾರ್ಯದ ಅಗತ್ಯವಿರುತ್ತದೆ. ಇದು ಮೊದಲು ಬಳಸಲಾದ ಗರಿಷ್ಠ() ಆಗಿರಲಿ.

ಮರಣದಂಡನೆಯ ಫಲಿತಾಂಶವು ಈ ರೀತಿ ಕಾಣುತ್ತದೆ

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 ಅನ್ನು ಪಡೆಯುತ್ತದೆ, ಇದು ನಿಜವಾಗಿ ಅಗತ್ಯವಿದೆ.

ಗ್ರಾಫ್ ನಿರ್ಮಿಸುವುದು ಮಾತ್ರ ಉಳಿದಿದೆ. ಇದನ್ನು ಮಾಡಲು, ಗ್ರಾಫಾನಾವನ್ನು ತೆರೆಯಿರಿ, ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ (ಅಥವಾ ಹೊಸದನ್ನು ರಚಿಸಿ) ಡ್ಯಾಶ್‌ಬೋರ್ಡ್ ಅನ್ನು ತೆರೆಯಿರಿ, ಹೊಸ ಫಲಕವನ್ನು ರಚಿಸಿ. ಚಾರ್ಟ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳು ಈ ಕೆಳಗಿನಂತಿರುತ್ತವೆ.

ಸ್ಮಾರ್ಟ್ ಹೋಮ್: ಹೋಮ್ ಅಸಿಸ್ಟೆಂಟ್‌ನಲ್ಲಿ ನೀರು ಮತ್ತು ವಿದ್ಯುತ್ ಬಳಕೆಯನ್ನು ಚಾರ್ಟಿಂಗ್ ಮಾಡುವುದು

ನಾನು ಅದೇ ಗ್ರಾಫ್ನಲ್ಲಿ ಶೀತ ಮತ್ತು ಬಿಸಿನೀರಿನ ಡೇಟಾವನ್ನು ಪ್ರದರ್ಶಿಸುತ್ತೇನೆ. ವಿನಂತಿಯು ನಾನು ಮೇಲೆ ವಿವರಿಸಿದಂತೆಯೇ ಇರುತ್ತದೆ.

ಪ್ರದರ್ಶನ ನಿಯತಾಂಕಗಳನ್ನು ಈ ಕೆಳಗಿನಂತೆ ಹೊಂದಿಸಲಾಗಿದೆ. ನನಗೆ ಇದು ರೇಖೆಗಳೊಂದಿಗೆ (ರೇಖೆಗಳು) ಗ್ರಾಫ್ ಆಗಿರುತ್ತದೆ, ಅದು ಹಂತಗಳಲ್ಲಿ (ಮೆಟ್ಟಿಲುಗಳು) ಹೋಗುತ್ತದೆ. ಸ್ಟಾಕ್ ಪ್ಯಾರಾಮೀಟರ್ ಅನ್ನು ಕೆಳಗೆ ವಿವರಿಸಲಾಗುವುದು. ಕೆಳಗೆ ಇನ್ನೂ ಒಂದೆರಡು ಪ್ರದರ್ಶನ ಆಯ್ಕೆಗಳಿವೆ, ಆದರೆ ಅವು ಅಷ್ಟು ಆಸಕ್ತಿದಾಯಕವಾಗಿಲ್ಲ.

ಸ್ಮಾರ್ಟ್ ಹೋಮ್: ಹೋಮ್ ಅಸಿಸ್ಟೆಂಟ್‌ನಲ್ಲಿ ನೀರು ಮತ್ತು ವಿದ್ಯುತ್ ಬಳಕೆಯನ್ನು ಚಾರ್ಟಿಂಗ್ ಮಾಡುವುದು

ಹೋಮ್ ಅಸಿಸ್ಟೆಂಟ್‌ಗೆ ಫಲಿತಾಂಶದ ಗ್ರಾಫ್ ಅನ್ನು ಸೇರಿಸಲು, ನೀವು ಹೀಗೆ ಮಾಡಬೇಕಾಗುತ್ತದೆ:

  • ಚಾರ್ಟ್ ಎಡಿಟಿಂಗ್ ಮೋಡ್‌ನಿಂದ ನಿರ್ಗಮಿಸಿ. ಕೆಲವು ಕಾರಣಗಳಿಗಾಗಿ, ಸರಿಯಾದ ಚಾರ್ಟ್ ಹಂಚಿಕೆ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಡ್ಯಾಶ್‌ಬೋರ್ಡ್ ಪುಟದಿಂದ ಮಾತ್ರ ನೀಡಲಾಗುತ್ತದೆ
  • ಚಾರ್ಟ್ ಹೆಸರಿನ ಪಕ್ಕದಲ್ಲಿರುವ ತ್ರಿಕೋನದ ಮೇಲೆ ಕ್ಲಿಕ್ ಮಾಡಿ, ಮೆನುವಿನಿಂದ ಹಂಚಿಕೆ ಆಯ್ಕೆಮಾಡಿ
  • ತೆರೆಯುವ ವಿಂಡೋದಲ್ಲಿ, ಎಂಬೆಡ್ ಟ್ಯಾಬ್‌ಗೆ ಹೋಗಿ
  • ಪ್ರಸ್ತುತ ಸಮಯ ಶ್ರೇಣಿಯನ್ನು ಗುರುತಿಸಬೇಡಿ - ನಾವು 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 ದಿನಗಳಿಂದ ನಾನು ಬಿಸಿನೀರನ್ನು ಬಳಸಿಲ್ಲ, ಆದ್ದರಿಂದ ತಣ್ಣೀರಿನ ಗ್ರಾಫ್ ಅನ್ನು ಮಾತ್ರ ಎಳೆಯಲಾಗುತ್ತದೆ.

ಸ್ಮಾರ್ಟ್ ಹೋಮ್: ಹೋಮ್ ಅಸಿಸ್ಟೆಂಟ್‌ನಲ್ಲಿ ನೀರು ಮತ್ತು ವಿದ್ಯುತ್ ಬಳಕೆಯನ್ನು ಚಾರ್ಟಿಂಗ್ ಮಾಡುವುದು

ನಾನು ಯಾವ ಚಾರ್ಟ್, ಸ್ಟೆಪ್ ಲೈನ್ ಅಥವಾ ನಿಜವಾದ ಬಾರ್‌ಗಳನ್ನು ಇಷ್ಟಪಡುತ್ತೇನೆ ಎಂಬುದನ್ನು ನಾನೇ ನಿರ್ಧರಿಸಿಲ್ಲ. ಆದ್ದರಿಂದ, ನಾನು ದೈನಂದಿನ ಬಳಕೆಯ ವೇಳಾಪಟ್ಟಿಯ ಉದಾಹರಣೆಯನ್ನು ನೀಡುತ್ತೇನೆ, ಈ ಬಾರಿ ಬಾರ್‌ಗಳಲ್ಲಿ ಮಾತ್ರ. ಪ್ರಶ್ನೆಗಳನ್ನು ಮೇಲೆ ವಿವರಿಸಿದ ರೀತಿಯಲ್ಲಿಯೇ ನಿರ್ಮಿಸಲಾಗಿದೆ. ಪ್ರದರ್ಶನ ಆಯ್ಕೆಗಳು:

ಸ್ಮಾರ್ಟ್ ಹೋಮ್: ಹೋಮ್ ಅಸಿಸ್ಟೆಂಟ್‌ನಲ್ಲಿ ನೀರು ಮತ್ತು ವಿದ್ಯುತ್ ಬಳಕೆಯನ್ನು ಚಾರ್ಟಿಂಗ್ ಮಾಡುವುದು

ಈ ಚಾರ್ಟ್ ಈ ರೀತಿ ಕಾಣುತ್ತದೆ:

ಸ್ಮಾರ್ಟ್ ಹೋಮ್: ಹೋಮ್ ಅಸಿಸ್ಟೆಂಟ್‌ನಲ್ಲಿ ನೀರು ಮತ್ತು ವಿದ್ಯುತ್ ಬಳಕೆಯನ್ನು ಚಾರ್ಟಿಂಗ್ ಮಾಡುವುದು

ಆದ್ದರಿಂದ, ಸ್ಟಾಕ್ ಪ್ಯಾರಾಮೀಟರ್ ಬಗ್ಗೆ. ಈ ಗ್ರಾಫ್‌ನಲ್ಲಿ, ಬಿಸಿ ಬಾರ್‌ನ ಮೇಲೆ ತಣ್ಣೀರಿನ ಬಾರ್ ಅನ್ನು ಎಳೆಯಲಾಗುತ್ತದೆ. ಒಟ್ಟು ಎತ್ತರವು ಅವಧಿಗೆ ಶೀತ ಮತ್ತು ಬಿಸಿನೀರಿನ ಒಟ್ಟು ಬಳಕೆಗೆ ಅನುರೂಪವಾಗಿದೆ.

ತೋರಿಸಿರುವ ಎಲ್ಲಾ ಗ್ರಾಫ್‌ಗಳು ಕ್ರಿಯಾತ್ಮಕವಾಗಿವೆ. ನೀವು ಆಸಕ್ತಿಯ ಬಿಂದುವಿನ ಮೇಲೆ ಮೌಸ್ ಅನ್ನು ಚಲಿಸಬಹುದು ಮತ್ತು ನಿರ್ದಿಷ್ಟ ಹಂತದಲ್ಲಿ ವಿವರಗಳು ಮತ್ತು ಮೌಲ್ಯವನ್ನು ನೋಡಬಹುದು.

ದುರದೃಷ್ಟವಶಾತ್, ಇದು ಮುಲಾಮುದಲ್ಲಿ ಒಂದೆರಡು ಫ್ಲೈ ಇಲ್ಲದೆ ಇರಲಿಲ್ಲ. ಬಾರ್ ಚಾರ್ಟ್‌ನಲ್ಲಿ (ಹಂತದ ರೇಖೆಗಳೊಂದಿಗೆ ಗ್ರಾಫ್‌ಗಿಂತ ಭಿನ್ನವಾಗಿ), ಬಾರ್‌ನ ಮಧ್ಯಭಾಗವು ದಿನದ ಮಧ್ಯದಲ್ಲಿ ಅಲ್ಲ, ಆದರೆ 00:00 ಕ್ಕೆ. ಆ. ಹಿಂದಿನ ದಿನದ ಸ್ಥಳದಲ್ಲಿ ಬಾರ್‌ನ ಎಡ ಅರ್ಧವನ್ನು ಎಳೆಯಲಾಗುತ್ತದೆ. ಆದ್ದರಿಂದ ಶನಿವಾರ ಮತ್ತು ಭಾನುವಾರದ ಚಾರ್ಟ್‌ಗಳನ್ನು ನೀಲಿ ವಲಯದ ಎಡಕ್ಕೆ ಸ್ವಲ್ಪ ಎಳೆಯಲಾಗುತ್ತದೆ. ಅದನ್ನು ಹೇಗೆ ಗೆಲ್ಲುವುದು ಎಂದು ನಾನು ಲೆಕ್ಕಾಚಾರ ಮಾಡುವವರೆಗೆ.

ಮಾಸಿಕ ಮಧ್ಯಂತರಗಳೊಂದಿಗೆ ಸರಿಯಾಗಿ ಕೆಲಸ ಮಾಡಲು ಅಸಮರ್ಥತೆ ಮತ್ತೊಂದು ಸಮಸ್ಯೆಯಾಗಿದೆ. ಸತ್ಯವೆಂದರೆ ಗಂಟೆ / ದಿನ / ವಾರದ ಉದ್ದವನ್ನು ನಿಗದಿಪಡಿಸಲಾಗಿದೆ, ಆದರೆ ತಿಂಗಳ ಉದ್ದವು ಪ್ರತಿ ಬಾರಿಯೂ ವಿಭಿನ್ನವಾಗಿರುತ್ತದೆ. InfluxDB ಸಮಾನ ಮಧ್ಯಂತರಗಳೊಂದಿಗೆ ಮಾತ್ರ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. ಇಲ್ಲಿಯವರೆಗೆ, ನನ್ನ ಮಿದುಳುಗಳು 30 ದಿನಗಳ ನಿಗದಿತ ಮಧ್ಯಂತರವನ್ನು ಹೊಂದಿಸಲು ಸಾಕು. ಹೌದು, ವರ್ಷದಲ್ಲಿ ಚಾರ್ಟ್ ಸ್ವಲ್ಪ ತೇಲುತ್ತದೆ ಮತ್ತು ಬಾರ್‌ಗಳು ನಿಖರವಾಗಿ ತಿಂಗಳುಗಳಿಗೆ ಹೊಂದಿಕೆಯಾಗುವುದಿಲ್ಲ. ಆದರೆ ಡಿಸ್ಪ್ಲೇ ಮೀಟರ್‌ನಂತೆ ಈ ವಿಷಯವು ನನಗೆ ಆಸಕ್ತಿದಾಯಕವಾಗಿರುವುದರಿಂದ, ನಾನು ಇದನ್ನು ಒಪ್ಪುತ್ತೇನೆ.

ನಾನು ಕನಿಷ್ಟ ಎರಡು ಪರಿಹಾರಗಳನ್ನು ನೋಡುತ್ತೇನೆ:

  • ಮಾಸಿಕ ಚಾರ್ಟ್‌ಗಳಲ್ಲಿ ಸ್ಕೋರ್ ಮಾಡಲು ಮತ್ತು ಸಾಪ್ತಾಹಿಕ ಪಟ್ಟಿಗಳಿಗೆ ನಿಮ್ಮನ್ನು ಮಿತಿಗೊಳಿಸಿ. ಒಂದು ವರ್ಷದಲ್ಲಿ 52 ಸಾಪ್ತಾಹಿಕ ಬಾರ್‌ಗಳು ಉತ್ತಮವಾಗಿ ಕಾಣುತ್ತವೆ
  • ಮಾಸಿಕ ಬಳಕೆಯನ್ನು ವಿಧಾನ ಸಂಖ್ಯೆ 2 ಎಂದು ಪರಿಗಣಿಸಿ ಮತ್ತು ಸುಂದರವಾದ ಗ್ರಾಫ್‌ಗಳಿಗಾಗಿ ಮಾತ್ರ ಗ್ರಾಫನಾವನ್ನು ಬಳಸಿ. ಇದು ಸಾಕಷ್ಟು ನಿಖರವಾದ ಪರಿಹಾರವಾಗಿದೆ. ಹೋಲಿಕೆಗಾಗಿ ನೀವು ಕಳೆದ ವರ್ಷದ ಚಾರ್ಟ್‌ಗಳನ್ನು ಸಹ ಒವರ್ಲೇ ಮಾಡಬಹುದು - ಗ್ರಾಫನಾ ಅದನ್ನು ಮಾಡಬಹುದು.

ತೀರ್ಮಾನಕ್ಕೆ

ಏಕೆ ಎಂದು ನನಗೆ ಗೊತ್ತಿಲ್ಲ, ಆದರೆ ನಾನು ಈ ರೀತಿಯ ಚಾರ್ಟ್‌ಗಳನ್ನು ಪ್ರೀತಿಸುತ್ತೇನೆ. ಜೀವನವು ಪೂರ್ಣ ಸ್ವಿಂಗ್‌ನಲ್ಲಿದೆ ಮತ್ತು ಎಲ್ಲವೂ ಬದಲಾಗುತ್ತಿದೆ ಎಂದು ಅವರು ತೋರಿಸುತ್ತಾರೆ. ನಿನ್ನೆ ಬಹಳಷ್ಟು ಇತ್ತು, ಇಂದು ಸ್ವಲ್ಪ ಇದೆ, ನಾಳೆ ಇನ್ನೇನೋ ಇರುತ್ತದೆ. ಬಳಕೆಯ ವಿಷಯದ ಬಗ್ಗೆ ಮನೆಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು ಇದು ಉಳಿದಿದೆ. ಆದರೆ ಪ್ರಸ್ತುತ ಹಸಿವುಗಳೊಂದಿಗೆ, ಮಸೂದೆಯಲ್ಲಿ ಕೇವಲ ದೊಡ್ಡ ಮತ್ತು ಗ್ರಹಿಸಲಾಗದ ವ್ಯಕ್ತಿ ಈಗಾಗಲೇ ಬಳಕೆಯ ಬಗ್ಗೆ ಸಾಕಷ್ಟು ಅರ್ಥವಾಗುವ ಚಿತ್ರವಾಗಿ ಬದಲಾಗುತ್ತಿದೆ.

ಪ್ರೋಗ್ರಾಮರ್ ಆಗಿ ನನ್ನ ಸುಮಾರು 20 ವರ್ಷಗಳ ವೃತ್ತಿಜೀವನದ ಹೊರತಾಗಿಯೂ, ನಾನು ಪ್ರಾಯೋಗಿಕವಾಗಿ ಡೇಟಾಬೇಸ್‌ಗಳೊಂದಿಗೆ ಛೇದಿಸಲಿಲ್ಲ. ಆದ್ದರಿಂದ, ಬಾಹ್ಯ ಡೇಟಾಬೇಸ್ ಅನ್ನು ಸ್ಥಾಪಿಸುವುದು ತುಂಬಾ ಅಮೂರ್ತ ಮತ್ತು ಗ್ರಹಿಸಲಾಗದಂತಿದೆ. ಎಲ್ಲವೂ ಬದಲಾಗಿದೆ ಮೇಲಿನ ಲೇಖನ - ಸೂಕ್ತವಾದ ಸಾಧನವನ್ನು ಸ್ಕ್ರೂಯಿಂಗ್ ಮಾಡುವುದನ್ನು ಒಂದೆರಡು ಕ್ಲಿಕ್‌ಗಳಲ್ಲಿ ಮಾಡಲಾಗುತ್ತದೆ ಮತ್ತು ವಿಶೇಷ ಸಾಧನದೊಂದಿಗೆ, ಕಥಾವಸ್ತುವಿನ ಕಾರ್ಯವು ಸ್ವಲ್ಪ ಸುಲಭವಾಗುತ್ತದೆ.

ಶೀರ್ಷಿಕೆಯಲ್ಲಿ, ನಾನು ವಿದ್ಯುತ್ ಬಳಕೆಯನ್ನು ಉಲ್ಲೇಖಿಸಿದೆ. ದುರದೃಷ್ಟವಶಾತ್, ಈ ಸಮಯದಲ್ಲಿ ನಾನು ಯಾವುದೇ ಗ್ರಾಫ್ ಅನ್ನು ಒದಗಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ಒಂದು SDM120 ಮೀಟರ್ ಸತ್ತಿದೆ, ಮತ್ತು Modbus ಮೂಲಕ ಪ್ರವೇಶಿಸಿದಾಗ ಇನ್ನೊಂದು ದೋಷಯುಕ್ತವಾಗಿದೆ. ಆದಾಗ್ಯೂ, ಇದು ಈ ಲೇಖನದ ವಿಷಯದ ಮೇಲೆ ಯಾವುದೇ ರೀತಿಯಲ್ಲಿ ಪರಿಣಾಮ ಬೀರುವುದಿಲ್ಲ - ಗ್ರಾಫ್ಗಳನ್ನು ನೀರಿನಂತೆಯೇ ನಿರ್ಮಿಸಲಾಗುತ್ತದೆ.

ಈ ಲೇಖನದಲ್ಲಿ, ನಾನೇ ಪ್ರಯತ್ನಿಸಿದ ಆ ವಿಧಾನಗಳನ್ನು ನಾನು ನೀಡಿದ್ದೇನೆ. ಖಚಿತವಾಗಿ ನನಗೆ ಗೊತ್ತಿಲ್ಲದ ಡೇಟಾ ಸಂಗ್ರಹಣೆ ಮತ್ತು ದೃಶ್ಯೀಕರಣವನ್ನು ಸಂಘಟಿಸಲು ಕೆಲವು ಇತರ ಮಾರ್ಗಗಳಿವೆ. ಕಾಮೆಂಟ್‌ಗಳಲ್ಲಿ ಅದರ ಬಗ್ಗೆ ಹೇಳಿ, ನಾನು ತುಂಬಾ ಆಸಕ್ತಿ ಹೊಂದಿದ್ದೇನೆ. ರಚನಾತ್ಮಕ ಟೀಕೆ ಮತ್ತು ಹೊಸ ಆಲೋಚನೆಗಳಿಗೆ ನಾನು ಸಂತೋಷಪಡುತ್ತೇನೆ. ಮೇಲಿನ ವಸ್ತುವು ಯಾರಿಗಾದರೂ ಸಹಾಯ ಮಾಡುತ್ತದೆ ಎಂದು ನಾನು ಭಾವಿಸುತ್ತೇನೆ.

ಮೂಲ: www.habr.com

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ