חיבור מד-המים הדירתי ל-HA

בית חכם, עוזרות חכמות, חשמל חכם, מערכות שליטה ובקרה, Amazon Echo, Alexa, Google home, Control4, RTI, מנעולים חכמים ועוד.
ma0r פותח השרשור
חבר שרק התחיל
חבר שרק התחיל
תגובות: 41
הצטרף: דצמבר 2019
נתן תודות: 9 פעמים
קיבל תודות: 8 פעמים

שליחה #1 

אם אתם משלמים את חשבון המים שלכם לאחד מתאגידי המים שבתמונה, אז יש סיכוי טוב שאתם יכולים לחבר את המונה מים למערכת הבית החכם שלכם.

כתבתי אינטגרציה פשוטה עבור Home Assistant עם השרות קריאת מונים של חברת ארד טכנולוגיות, שמספקת את המונים לתאגידי המים האלה.

אפשר להתקין בקלות באמצעות HACS. כל הפרטים כאן:
https://github.com/maorcc/citymind_water_meter


אשמח לשמוע כל פידבק.

hsafra
חבר פעיל מאוד
חבר פעיל מאוד
תגובות: 419
הצטרף: מאי 2011
נתן תודות: 18 פעמים
קיבל תודות: 88 פעמים

שליחה #2 

התקנתי עכשיו, חיכיתי בסבלנות 30 דקות :) ואז קיבלתי את השגיאה הזאת בלוג:
2020-07-23 11:55:30 WARNING (SyncWorker_3) [custom_components.citymind_water_meter.sensor] response status code 500

לא השתמשתי ב- !secret אם זה משנה

עריכה: גם עם secret מקבל 500. היוזר עובד באתר שלהם כמובן. תודה!

DudeShemesh
חבר פעיל במיוחד
חבר פעיל במיוחד
תגובות: 916
הצטרף: מאי 2016
נתן תודות: 154 פעמים
קיבל תודות: 88 פעמים

שליחה #3 

נראה מגניב, אני מתכוון לנסות.
מהסתכלות על הקוד, אני לא בטוח שאני מבין את המשמעות של הסנסור של הצריכה בלי יחידת זמן. בכל מקרה, אתה גם לא חייב לממש בעצמך - ל HA יש תמיכה בנגזרת (https://www.home-assistant.io/integrations/derivative/).

עוד משהו (שוב, מהסתכלות על הקוד, עוד אין לי חשבון בארד) - נראה שאתה עושה scraping, אבל בסוף יש שם JSON. אם ה JSON הזה נטען דינמית, יכול להיות שאפשר למצוא את הקריאה הישירה אליו, ואז לא צריך קוד בכלל - אפשר להשתמש ב restful sensor.

ma0r פותח השרשור
חבר שרק התחיל
חבר שרק התחיל
תגובות: 41
הצטרף: דצמבר 2019
נתן תודות: 9 פעמים
קיבל תודות: 8 פעמים

שליחה #4 

hsafra כתב:התקנתי עכשיו, חיכיתי בסבלנות 30 דקות :) ואז קיבלתי את השגיאה הזאת בלוג:
2020-07-23 11:55:30 WARNING (SyncWorker_3) [custom_components.citymind_water_meter.sensor] response status code 500

לא השתמשתי ב- !secret אם זה משנה

עריכה: גם עם secret מקבל 500. היוזר עובד באתר שלהם כמובן. תודה!
...
·וואו, מוזר. אני צריך לחשוב איך אני יכול לשחזר את זה... אולי ננסה מתישהו ביחד בזום.

ma0r פותח השרשור
חבר שרק התחיל
חבר שרק התחיל
תגובות: 41
הצטרף: דצמבר 2019
נתן תודות: 9 פעמים
קיבל תודות: 8 פעמים

שליחה #5 

DudeShemesh כתב:נראה מגניב, אני מתכוון לנסות.
מהסתכלות על הקוד, אני לא בטוח שאני מבין את המשמעות של הסנסור של הצריכה בלי יחידת זמן. בכל מקרה, אתה גם לא חייב לממש בעצמך - ל HA יש תמיכה בנגזרת (https://www.home-assistant.io/integrations/derivative/).

עוד משהו (שוב, מהסתכלות על הקוד, עוד אין לי חשבון בארד) - נראה שאתה עושה scraping, אבל בסוף יש שם JSON. אם ה JSON הזה נטען דינמית, יכול להיות שאפשר למצוא את הקריאה הישירה אליו, ואז לא צריך קוד בכלל - אפשר להשתמש ב restful sensor.
...
·מה שהקוד עושה זה פעולת POST ללוג-אין רגיל. התשובה שמתקבלת זה HTML שמכיל בתוכו טאג עם נתונים במבנה JSON. זה משהו די מוזר שמבוסס על טכנולוגיות ASP עתיקות. אין כרגע API שאפשר לקבל דרכו ישר את ה-JSON

DudeShemesh
חבר פעיל במיוחד
חבר פעיל במיוחד
תגובות: 916
הצטרף: מאי 2016
נתן תודות: 154 פעמים
קיבל תודות: 88 פעמים

שליחה #6 

מה שאתה מתאר - HTML סטטי שמכיל JSON, מאוד לא נפוץ. בד"כ ה JSON מגיע בקריאה דינמית (אחרת השרת כבר היה יכול להחזיר HTML "מעובד").
אתה בטוח שאין שום קריאה מאחורי הקלעים לקבל את ה JSON? נשמע שבדקת לעומק, אבל זה ממש מפתיע.

ma0r פותח השרשור
חבר שרק התחיל
חבר שרק התחיל
תגובות: 41
הצטרף: דצמבר 2019
נתן תודות: 9 פעמים
קיבל תודות: 8 פעמים

שליחה #7 

DudeShemesh כתב:מה שאתה מתאר - HTML סטטי שמכיל JSON, מאוד לא נפוץ. בד"כ ה JSON מגיע בקריאה דינמית (אחרת השרת כבר היה יכול להחזיר HTML "מעובד").
אתה בטוח שאין שום קריאה מאחורי הקלעים לקבל את ה JSON? נשמע שבדקת לעומק, אבל זה ממש מפתיע.
...
כן, אני אכן בטוח שיש שם JSON בתוך טאג של HTML.
יותר מזה, יש באתר תערובת חסרת הגיון של נתונים שמשולבים בתוך ה-HTML, נתונים שמשולבים ב-JSON בתוך הHTML וקריאות נוספות דרך API לנתונים הסטוריים. ממש תערובת חסרת הגיון. אבל זה מה יש, ולשימחתי, לא היה קשה להוציא את הנתון של "קריאת מונה" משם בקריאת http post יחידה.

theone
חבר ותיק
חבר ותיק
תגובות: 1579
הצטרף: אוקטובר 2005
נתן תודות: 15 פעמים
קיבל תודות: 52 פעמים

שליחה #8 

ma0r כתב:
...
...
·וואו, מוזר. אני צריך לחשוב איך אני יכול לשחזר את זה... אולי ננסה מתישהו ביחד בזום.
...
·גם אני מקבל את אותה השגיאה ולא מקבל נתונים. Unknown.

ma0r פותח השרשור
חבר שרק התחיל
חבר שרק התחיל
תגובות: 41
הצטרף: דצמבר 2019
נתן תודות: 9 פעמים
קיבל תודות: 8 פעמים

תוקן הבאג. עכשיו זה עובד

שליחה #9 

@theone, @hsafra :

תיקנתי את התקלה. תוכלו בבקשה לאשר כאן שעכשיו זה עובד אצלכם?

תודה!

hsafra
חבר פעיל מאוד
חבר פעיל מאוד
תגובות: 419
הצטרף: מאי 2011
נתן תודות: 18 פעמים
קיבל תודות: 88 פעמים

שליחה #10 

עובד תקין אצלי. תודה רבה

theone
חבר ותיק
חבר ותיק
תגובות: 1579
הצטרף: אוקטובר 2005
נתן תודות: 15 פעמים
קיבל תודות: 52 פעמים

שליחה #11 

עובד אצלי גם.

כרגע אני רואה רק נתונים ב- sensor.water_meter_reading

כל כמה זמן אמור sensor.water_consumption להתעדכן כי זה הרי צריכה ולא קריאה רגעית? (עדיין מראה UNKNOWN) אבל אין שגיאה בלוגים.

hsafra
חבר פעיל מאוד
חבר פעיל מאוד
תגובות: 419
הצטרף: מאי 2011
נתן תודות: 18 פעמים
קיבל תודות: 88 פעמים

שליחה #12 

@theone
·
אמור להתרענן כל חצי שעה (1800 שניות). אצלי עובד בפעם הראשונה ואז מקבל בלוג.

קוד: בחירת הכל

2020-07-27 16:28:53 ERROR (MainThread) [homeassistant.helpers.entity] Update for sensor.water_meter_reading fails
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 272, in async_update_ha_state
    await self.async_device_update()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 465, in async_device_update
    await self.hass.async_add_executor_job(
  File "/usr/local/lib/python3.8/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/citymind_water_meter/sensor.py", line 131, in update
    self._data_provider.refresh_data()
  File "/config/custom_components/citymind_water_meter/sensor.py", line 96, in refresh_data
    json_str = soup.select_one("#cphMain_div_properties").text  # The data is hidden as json text inside the html
AttributeError: 'NoneType' object has no attribute 'text'
מופיע גם אצלך?

theone
חבר ותיק
חבר ותיק
תגובות: 1579
הצטרף: אוקטובר 2005
נתן תודות: 15 פעמים
קיבל תודות: 52 פעמים

שליחה #13 

אכן

קוד: בחירת הכל

2020-07-27 14:19:19 ERROR (MainThread) [homeassistant.helpers.entity] Update for sensor.water_meter_reading fails
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 272, in async_update_ha_state
    await self.async_device_update()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 465, in async_device_update
    await self.hass.async_add_executor_job(
  File "/usr/local/lib/python3.8/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/citymind_water_meter/sensor.py", line 131, in update
    self._data_provider.refresh_data()
  File "/config/custom_components/citymind_water_meter/sensor.py", line 96, in refresh_data
    json_str = soup.select_one("#cphMain_div_properties").text  # The data is hidden as json text inside the html
AttributeError: 'NoneType' object has no attribute 'text'

zula
חבר פעיל
חבר פעיל
תגובות: 57
הצטרף: ינואר 2006
מיקום: רמת גן
נתן תודות: 7 פעמים
קיבל תודות: 1 פעם

שליחה #14 

אתם יודעים אם ניתן גם במי-אונו (קריית אונו)?

hsafra
חבר פעיל מאוד
חבר פעיל מאוד
תגובות: 419
הצטרף: מאי 2011
נתן תודות: 18 פעמים
קיבל תודות: 88 פעמים

שליחה #15 

@zula
·
מי אונו מופיעם באתר של ארד https://cp.city-mind.com/ אז כנראה שכן

ma0r פותח השרשור
חבר שרק התחיל
חבר שרק התחיל
תגובות: 41
הצטרף: דצמבר 2019
נתן תודות: 9 פעמים
קיבל תודות: 8 פעמים

שליחה #16 

zula כתב:אתם יודעים אם ניתן גם במי-אונו (קריית אונו)?
...
·לא כל התאגידי מים שהם לקוחות של ארד טכנולוגיות מוכנים לשלם את התוספת (היחסית קטנה) כדי שהצרכנים שלהם יוכלו לקבל גישה למונה באינטנט.
בכל מקרה, פשוט תנסה להרשם כמשתמש חדש באתר: https://cp.city-mind.com/
אם זה יעבוד, אחלה.

ma0r פותח השרשור
חבר שרק התחיל
חבר שרק התחיל
תגובות: 41
הצטרף: דצמבר 2019
נתן תודות: 9 פעמים
קיבל תודות: 8 פעמים

שליחה #17 

hsafra כתב:@theone
·
אמור להתרענן כל חצי שעה (1800 שניות). אצלי עובד בפעם הראשונה ואז מקבל בלוג.

2020-07-27 16:28:53 ERROR (MainThread) [homeassistant.helpers.entity] Update for sensor.water_meter_reading fails
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 272, in async_update_ha_state
await self.async_device_update()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 465, in async_device_update
await self.hass.async_add_executor_job(
File "/usr/local/lib/python3.8/concurrent/futures/thread.py", line 57, in run
result = self.fn(*self.args, **self.kwargs)
File "/config/custom_components/citymind_water_meter/sensor.py", line 131, in update
self._data_provider.refresh_data()
File "/config/custom_components/citymind_water_meter/sensor.py", line 96, in refresh_data
json_str = soup.select_one("#cphMain_div_properties").text # The data is hidden as json text inside the html
AttributeError: 'NoneType' object has no attribute 'text'


מופיע גם אצלך?
...
·אופס
מבטיח לתקן עוד היום. :)

theone
חבר ותיק
חבר ותיק
תגובות: 1579
הצטרף: אוקטובר 2005
נתן תודות: 15 פעמים
קיבל תודות: 52 פעמים

שליחה #18 

עכשיו אני מקבל כל חצי שעה:

קוד: בחירת הכל

2020-07-27 19:22:06 ERROR (SyncWorker_2) [custom_components.citymind_water_meter.sensor] Redirected to https://cp.city-mind.com/ , probably because session expired.
לא יודע אם זה באמת בעיה, אבל נראה לי שיש TIMEOUT על ה- SESSION שאתה פותח מול השרת.

hsafra
חבר פעיל מאוד
חבר פעיל מאוד
תגובות: 419
הצטרף: מאי 2011
נתן תודות: 18 פעמים
קיבל תודות: 88 פעמים

שליחה #19 

גם אצלי מופיעה ההודעה על ה- timeout עם גרסה 0.1.2 אבל נראה שהנתונים מתעדכנים למרות זאת.

ma0r פותח השרשור
חבר שרק התחיל
חבר שרק התחיל
תגובות: 41
הצטרף: דצמבר 2019
נתן תודות: 9 פעמים
קיבל תודות: 8 פעמים

שליחה #20 

hsafra כתב:גם אצלי מופיעה ההודעה על ה- timeout עם גרסה 0.1.2 אבל נראה שהנתונים מתעדכנים למרות זאת.
...
·נראה שהשרת לפעמים תקוע ומגיעים ל-timeout. הוספתי הגבלת timeout כדי לא לזבל יותר מדי את הלוגים.
·שיניתי גם את הניהול של ה-session כך שיהיה יותר יציב. נקווה שעכשיו זה יעבוד חלק יותר.
אצל כל אחד מאיתנו ההגדרות קצת שונות והשרות מתנהג קצת אחרת, אז מקבלים התנהגות שונה.
בבקשה תדווחו מה אתם רואים. תודה.

שלח תגובה

חזור אל “בית חכם ובקרה”