חיבור מד-המים הדירתי ל-HA
אם אתם משלמים את חשבון המים שלכם לאחד מתאגידי המים שבתמונה, אז יש סיכוי טוב שאתם יכולים לחבר את המונה מים למערכת הבית החכם שלכם.
כתבתי אינטגרציה פשוטה עבור Home Assistant עם השרות קריאת מונים של חברת ארד טכנולוגיות, שמספקת את המונים לתאגידי המים האלה.
אפשר להתקין בקלות באמצעות HACS. כל הפרטים כאן:
https://github.com/maorcc/citymind_water_meter
אשמח לשמוע כל פידבק.
כתבתי אינטגרציה פשוטה עבור Home Assistant עם השרות קריאת מונים של חברת ארד טכנולוגיות, שמספקת את המונים לתאגידי המים האלה.
אפשר להתקין בקלות באמצעות HACS. כל הפרטים כאן:
https://github.com/maorcc/citymind_water_meter
אשמח לשמוע כל פידבק.
התקנתי עכשיו, חיכיתי בסבלנות 30 דקות
ואז קיבלתי את השגיאה הזאת בלוג:
2020-07-23 11:55:30 WARNING (SyncWorker_3) [custom_components.citymind_water_meter.sensor] response status code 500
לא השתמשתי ב- !secret אם זה משנה
עריכה: גם עם secret מקבל 500. היוזר עובד באתר שלהם כמובן. תודה!
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 פעמים
נראה מגניב, אני מתכוון לנסות.
מהסתכלות על הקוד, אני לא בטוח שאני מבין את המשמעות של הסנסור של הצריכה בלי יחידת זמן. בכל מקרה, אתה גם לא חייב לממש בעצמך - ל HA יש תמיכה בנגזרת (https://www.home-assistant.io/integrations/derivative/).
עוד משהו (שוב, מהסתכלות על הקוד, עוד אין לי חשבון בארד) - נראה שאתה עושה scraping, אבל בסוף יש שם JSON. אם ה JSON הזה נטען דינמית, יכול להיות שאפשר למצוא את הקריאה הישירה אליו, ואז לא צריך קוד בכלל - אפשר להשתמש ב restful sensor.
מהסתכלות על הקוד, אני לא בטוח שאני מבין את המשמעות של הסנסור של הצריכה בלי יחידת זמן. בכל מקרה, אתה גם לא חייב לממש בעצמך - ל HA יש תמיכה בנגזרת (https://www.home-assistant.io/integrations/derivative/).
עוד משהו (שוב, מהסתכלות על הקוד, עוד אין לי חשבון בארד) - נראה שאתה עושה scraping, אבל בסוף יש שם JSON. אם ה JSON הזה נטען דינמית, יכול להיות שאפשר למצוא את הקריאה הישירה אליו, ואז לא צריך קוד בכלל - אפשר להשתמש ב restful sensor.
·וואו, מוזר. אני צריך לחשוב איך אני יכול לשחזר את זה... אולי ננסה מתישהו ביחד בזום.hsafra כתב:התקנתי עכשיו, חיכיתי בסבלנות 30 דקותואז קיבלתי את השגיאה הזאת בלוג:
2020-07-23 11:55:30 WARNING (SyncWorker_3) [custom_components.citymind_water_meter.sensor] response status code 500
לא השתמשתי ב- !secret אם זה משנה
עריכה: גם עם secret מקבל 500. היוזר עובד באתר שלהם כמובן. תודה!...
·מה שהקוד עושה זה פעולת POST ללוג-אין רגיל. התשובה שמתקבלת זה HTML שמכיל בתוכו טאג עם נתונים במבנה JSON. זה משהו די מוזר שמבוסס על טכנולוגיות ASP עתיקות. אין כרגע API שאפשר לקבל דרכו ישר את ה-JSONDudeShemesh כתב:נראה מגניב, אני מתכוון לנסות.
מהסתכלות על הקוד, אני לא בטוח שאני מבין את המשמעות של הסנסור של הצריכה בלי יחידת זמן. בכל מקרה, אתה גם לא חייב לממש בעצמך - ל HA יש תמיכה בנגזרת (https://www.home-assistant.io/integrations/derivative/).
עוד משהו (שוב, מהסתכלות על הקוד, עוד אין לי חשבון בארד) - נראה שאתה עושה scraping, אבל בסוף יש שם JSON. אם ה JSON הזה נטען דינמית, יכול להיות שאפשר למצוא את הקריאה הישירה אליו, ואז לא צריך קוד בכלל - אפשר להשתמש ב restful sensor....
- DudeShemesh
-
- חבר פעיל במיוחד

- תגובות: 916
- הצטרף: מאי 2016
- נתן תודות: 154 פעמים
- קיבל תודות: 88 פעמים
מה שאתה מתאר - HTML סטטי שמכיל JSON, מאוד לא נפוץ. בד"כ ה JSON מגיע בקריאה דינמית (אחרת השרת כבר היה יכול להחזיר HTML "מעובד").
אתה בטוח שאין שום קריאה מאחורי הקלעים לקבל את ה JSON? נשמע שבדקת לעומק, אבל זה ממש מפתיע.
אתה בטוח שאין שום קריאה מאחורי הקלעים לקבל את ה JSON? נשמע שבדקת לעומק, אבל זה ממש מפתיע.
כן, אני אכן בטוח שיש שם JSON בתוך טאג של HTML.DudeShemesh כתב:מה שאתה מתאר - HTML סטטי שמכיל JSON, מאוד לא נפוץ. בד"כ ה JSON מגיע בקריאה דינמית (אחרת השרת כבר היה יכול להחזיר HTML "מעובד").
אתה בטוח שאין שום קריאה מאחורי הקלעים לקבל את ה JSON? נשמע שבדקת לעומק, אבל זה ממש מפתיע....
יותר מזה, יש באתר תערובת חסרת הגיון של נתונים שמשולבים בתוך ה-HTML, נתונים שמשולבים ב-JSON בתוך הHTML וקריאות נוספות דרך API לנתונים הסטוריים. ממש תערובת חסרת הגיון. אבל זה מה יש, ולשימחתי, לא היה קשה להוציא את הנתון של "קריאת מונה" משם בקריאת http post יחידה.
תוקן הבאג. עכשיו זה עובד
@theone, @hsafra :
תיקנתי את התקלה. תוכלו בבקשה לאשר כאן שעכשיו זה עובד אצלכם?
תודה!
תיקנתי את התקלה. תוכלו בבקשה לאשר כאן שעכשיו זה עובד אצלכם?
תודה!
@theone
·
אמור להתרענן כל חצי שעה (1800 שניות). אצלי עובד בפעם הראשונה ואז מקבל בלוג.
מופיע גם אצלך?
·
אמור להתרענן כל חצי שעה (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'
אכן
קוד: בחירת הכל
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 כתב:אתם יודעים אם ניתן גם במי-אונו (קריית אונו)?...
בכל מקרה, פשוט תנסה להרשם כמשתמש חדש באתר: https://cp.city-mind.com/
אם זה יעבוד, אחלה.
·אופס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'
מופיע גם אצלך?...
מבטיח לתקן עוד היום.
עכשיו אני מקבל כל חצי שעה:
לא יודע אם זה באמת בעיה, אבל נראה לי שיש TIMEOUT על ה- SESSION שאתה פותח מול השרת.
קוד: בחירת הכל
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. הוספתי הגבלת timeout כדי לא לזבל יותר מדי את הלוגים.hsafra כתב:גם אצלי מופיעה ההודעה על ה- timeout עם גרסה 0.1.2 אבל נראה שהנתונים מתעדכנים למרות זאת....
·שיניתי גם את הניהול של ה-session כך שיהיה יותר יציב. נקווה שעכשיו זה יעבוד חלק יותר.
אצל כל אחד מאיתנו ההגדרות קצת שונות והשרות מתנהג קצת אחרת, אז מקבלים התנהגות שונה.
בבקשה תדווחו מה אתם רואים. תודה.



