דילוג לתוכן
  • חוקי הפורום
  • פופולרי
  • לא נפתר
  • משתמשים
  • חיפוש גוגל בפורום
  • צור קשר
עיצובים
  • בהיר
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • כהה
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • ברירת מחדל (ללא עיצוב (ברירת מחדל))
  • ללא עיצוב (ברירת מחדל)
כיווץ
מתמחים טופ
  1. דף הבית
  2. סלולרי
  3. מערכות IVR - ימות המשיח
  4. שאלות למומחים
  5. בקשת מידע | ימות המשיח VS אוטמציות בHome Assistant

בקשת מידע | ימות המשיח VS אוטמציות בHome Assistant

מתוזמן נעוץ נעול הועבר נפתר שאלות למומחים
27 פוסטים 7 כותבים 366 צפיות 6 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • 25802 מנותק
    25802 מנותק
    2580
    מדריכים
    כתב נערך לאחרונה על ידי 2580
    #1

    אל תצחקו עלי אלו שני תחומים שאני ממש ירוק בהם... Home Assistant ומערכות IVR...

    שאלות של מתחילים...

    • הבנתי שבשימוש בAPI בימות המשיח עם Home Assistant האוטומציה מופעלת אך לא חוזר מידע למערכת וממילא התשובה היא אין מענה משרת API יש דרך לעקוף את זה או לפתוא את זה או אפילו רק להעיף את הודעה המעצבנת הזו??

    • קצת דומה לשאלה הקודמת אבל יש דרך שאני יוכל כן לקבל מידע מההתקן שלי שמחובר לHome Assistant למערכת IVR? לדוגמא יש לי מד מעלות צלסיוס בבית שמעביר מידע לHome Assistant אני רוצה לשמוע בטלפון כמה מעלות יש עכשיו בבית יש דרך לעשות את זה??

    אשמח אם תתייגו את מי שמבין...

    אולי @מנדי אולי @שמואל-ש.

    בקרו - https://yo-2580.github.io/profile2580/

    S מ 2 תגובות תגובה אחרונה
    0
    • 25802 2580

      אם אני מבין נכון אז אני צריך להקים במחשב שרת (פייתון) שיקבל את הנתונים/הדאטה מהHA ויעביר לימות בפורמט המתאים?! תקנו אותי אם אני טועה...

      למה אי אפשר להגדיר באוטומציה שתעביר את הדאטה בפורמט המתאים?

      אני מריץ על HASSWP כמו המדריך הזה:

      https://mitmachim.top/topic/72416/מדריך-הדרך-הקלה-ביותר-להתקנת-home-assistant-בווינדוס

      זה נמצא על המחשב הביתי שלי ולא על מחשב נפרד...

      מ מנותק
      מ מנותק
      מנדי
      כתב נערך לאחרונה על ידי מנדי
      #17

      @2580
      בניתי משהו יש הרבה מה לשפץ אבל התחלה...
      זה ישום בתוך HA
      הקבצים צריכים להיות בנתיב config/custom_components שם צריך לפתוח תיקיה חדשה yemot_api ולהכניס לה את שתי הקבצים
      הראשון- שם הקובץ צריך להיות- manifest.json

      {
        "domain": "yemot_api",
        "name": "Yemot HaMashiach API Endpoint",
        "version": "1.0.0",
        "documentation": "https://www.home-assistant.io",
        "dependencies": ["http"],
        "codeowners": [],
        "requirements": [],
        "iot_class": "local_push"
      }
      

      וזה הקובץ השני- זה השם

      __init__.py
      

      וזה הקובץ

      import logging
      import asyncio
      from aiohttp import web
      from homeassistant.core import HomeAssistant
      from homeassistant.components.http import HomeAssistantView
      
      DOMAIN = "yemot_api"
      
      async def async_setup(hass: HomeAssistant, config: dict) -> bool:
          hass.http.register_view(YemotApiView(hass))
          return True
      
      class YemotApiView(HomeAssistantView):
          url = "/api/yemot/{token}/{entity_id}"
          extra_urls = ["/api/yemot/{token}/{entity_id}/{action}"]
          name = "api:yemot"
          requires_auth = False 
      
          def __init__(self, hass: HomeAssistant):
              self.hass = hass
      
          async def get(self, request: web.Request, token: str, entity_id: str, action: str = None) -> web.Response:
              await request.read()
              return await self._process_request(token, entity_id, action)
      
          async def post(self, request: web.Request, token: str, entity_id: str, action: str = None) -> web.Response:
              await request.read()
              return await self._process_request(token, entity_id, action)
      
          async def _process_request(self, token: str, entity_id: str, action: str) -> web.Response:
              if token != "123456":
                  return self._build_response("שגיאת הרשאה")
      
              domain = entity_id.split(".")[0]
      
      
              if action:
                  try:
                      await self.hass.services.async_call(domain, action, {"entity_id": entity_id}, blocking=True)
                      
                      await asyncio.sleep(2.5)
                      
                      new_state = self.hass.states.get(entity_id)
                      if new_state:
                          ans = self._translate_state(domain, new_state)
                          return self._build_response(f"הפעולה בוצעה, והמכשיר כרגע {ans}")
                      else:
                          return self._build_response("הפעולה נשלחה אך לא ניתן לוודא את הסטטוס החדש")
                  except Exception:
                      return self._build_response("שגיאה בביצוע הפעולה")
      
      
              state = self.hass.states.get(entity_id)
              if not state:
                  return self._build_response("המכשיר לא נמצא")
      
              ans = self._translate_state(domain, state)
              return self._build_response(f"הסטטוס כרגע {ans}")
      
          def _translate_state(self, domain: str, state_obj) -> str:
              st = str(state_obj.state)
              
              if st in ["unavailable", "unknown"]:
                  return "לא זמין"
                  
              if domain == "sensor":
                  try:
                      if '.' in st:
                          st = str(round(float(st)))
                  except ValueError:
                      pass
                      
                  unit = str(state_obj.attributes.get("unit_of_measurement", "")).lower()
                  
                  if "c" in unit or "מעלות" in unit or "°" in unit:
                      return f"{st} מעלות"
                  elif "%" in unit:
                      return f"{st} אחוזים"
                  else:
                      return st
              
              if st in ["on", "cool", "heat"]:
                  return "דולק"
              elif st == "off":
                  return "כבוי"
              elif st in ["locked", "lock"]:
                  return "נעול"
              elif st in ["unlocked", "unlock"]:
                  return "פתוח"
              else:
                  return "במצב לא מוכר"
      
          def _build_response(self, text: str) -> web.Response:
              response_text = f"id_list_message=t-{text}&go_to_folder=/&"
              return web.Response(text=response_text, content_type="text/plain", charset="utf-8")
      

      שמתי את זה כקוד בגלל שעדיף להעתיק ןלהדביק מאשר לעלות את זה כקובץ ל HA בגלל שיכול להיות בעיות בקידוד,
      כדאי לשנות את הסיסמה שמה,

      בימות אתה מכניס בשלוחה שתבחר בהגדרות,

      type=api
      api_url_post=yes
      api_link=https://הכתובת שלך/api/yemot/הסיסמה שבחרת/lightאו כל התקן שתבחר
      

      זה מקבל את סטטוס של ההתקן,
      בשביל להפעיל או לכבות התקנים, תוסיף בסוף אחרי שם ההתקן turn_off/ או להפעלה turn_on/
      בהצלחה

      ליצור איתי קשר mendiforum@gmail.com

      25802 תגובה 1 תגובה אחרונה
      3
      • 25802 2580

        אל תצחקו עלי אלו שני תחומים שאני ממש ירוק בהם... Home Assistant ומערכות IVR...

        שאלות של מתחילים...

        • הבנתי שבשימוש בAPI בימות המשיח עם Home Assistant האוטומציה מופעלת אך לא חוזר מידע למערכת וממילא התשובה היא אין מענה משרת API יש דרך לעקוף את זה או לפתוא את זה או אפילו רק להעיף את הודעה המעצבנת הזו??

        • קצת דומה לשאלה הקודמת אבל יש דרך שאני יוכל כן לקבל מידע מההתקן שלי שמחובר לHome Assistant למערכת IVR? לדוגמא יש לי מד מעלות צלסיוס בבית שמעביר מידע לHome Assistant אני רוצה לשמוע בטלפון כמה מעלות יש עכשיו בבית יש דרך לעשות את זה??

        אשמח אם תתייגו את מי שמבין...

        אולי @מנדי אולי @שמואל-ש.

        S מנותק
        S מנותק
        shishko
        כתב נערך לאחרונה על ידי shishko
        #2

        @2580 כתב:

        אפילו רק להעיף את הודעה המעצבנת הזו??

        זה אפשר!
        צריך להחליף את הקובץ של ההודעה הזו במערכת (לא זוכר מה המספר שלו אבל תחפש פה או בפורום ימות)

        בנוגע לשאר השאלות אין לי מושג

        25802 תגובה 1 תגובה אחרונה
        1
        • S shishko

          @2580 כתב:

          אפילו רק להעיף את הודעה המעצבנת הזו??

          זה אפשר!
          צריך להחליף את הקובץ של ההודעה הזו במערכת (לא זוכר מה המספר שלו אבל תחפש פה או בפורום ימות)

          בנוגע לשאר השאלות אין לי מושג

          25802 מנותק
          25802 מנותק
          2580
          מדריכים
          כתב נערך לאחרונה על ידי 2580
          #3

          @shishko מצאתי הקובץ הוא M1607 (מצאתי אותו בתוך הקבצים של שלוחה) הבעיה שאני מעלה קובץ אחר במקום או עושה TSS ל"הפקודה נשלחה בהצלחה" בפועל לא שומעים כלום (זה גם התקדמות אבל...)

          בנוסף צריך להחליף את הקובץ הזה לכל שלוחה ושלוחה??

          אשמח להסבר ברור איך אמורים להחליף אולי שגיתי בביצוע

          בקרו - https://yo-2580.github.io/profile2580/

          S תגובה 1 תגובה אחרונה
          0
          • 25802 2580

            @shishko מצאתי הקובץ הוא M1607 (מצאתי אותו בתוך הקבצים של שלוחה) הבעיה שאני מעלה קובץ אחר במקום או עושה TSS ל"הפקודה נשלחה בהצלחה" בפועל לא שומעים כלום (זה גם התקדמות אבל...)

            בנוסף צריך להחליף את הקובץ הזה לכל שלוחה ושלוחה??

            אשמח להסבר ברור איך אמורים להחליף אולי שגיתי בביצוע

            S מנותק
            S מנותק
            shishko
            כתב נערך לאחרונה על ידי
            #4

            @2580 כתב:

            בפועל לא שומעים כלום

            נו ומה הבעיה שאתה רוצה לקבל מידע מההתקן שלך שמחובר לHome Assistant?

            shishko כתב:

            בנוגע לשאר השאלות אין לי מושג

            25802 תגובה 1 תגובה אחרונה
            0
            • S shishko

              @2580 כתב:

              בפועל לא שומעים כלום

              נו ומה הבעיה שאתה רוצה לקבל מידע מההתקן שלך שמחובר לHome Assistant?

              shishko כתב:

              בנוגע לשאר השאלות אין לי מושג

              25802 מנותק
              25802 מנותק
              2580
              מדריכים
              כתב נערך לאחרונה על ידי
              #5

              @shishko כתב:

              נו ומה הבעיה שאתה רוצה לקבל מידע מההתקן שלך שמחובר לHome Assistant?

              לא. סתם העלתי קובץ שמע של הפקודה נשלחה בהצלחה... כדי שיהיה איזה שהוא פידבק למשתמש (חשבתי אולי בהמשך לעשות איזה ביפ... אבל קודם אני אראה היתכנות...)

              בקרו - https://yo-2580.github.io/profile2580/

              תגובה 1 תגובה אחרונה
              🤔
              0
              • 25802 2580 סימן נושא זה כשאלה
              • ה מנותק
                ה מנותק
                המתעניין1
                כתב נערך לאחרונה על ידי
                #6

                @א.מ. פרסם בזמנו מדריך לימות. אולי הוא יידע...

                א.מ.א תגובה 1 תגובה אחרונה
                1
                • 25802 2580

                  אל תצחקו עלי אלו שני תחומים שאני ממש ירוק בהם... Home Assistant ומערכות IVR...

                  שאלות של מתחילים...

                  • הבנתי שבשימוש בAPI בימות המשיח עם Home Assistant האוטומציה מופעלת אך לא חוזר מידע למערכת וממילא התשובה היא אין מענה משרת API יש דרך לעקוף את זה או לפתוא את זה או אפילו רק להעיף את הודעה המעצבנת הזו??

                  • קצת דומה לשאלה הקודמת אבל יש דרך שאני יוכל כן לקבל מידע מההתקן שלי שמחובר לHome Assistant למערכת IVR? לדוגמא יש לי מד מעלות צלסיוס בבית שמעביר מידע לHome Assistant אני רוצה לשמוע בטלפון כמה מעלות יש עכשיו בבית יש דרך לעשות את זה??

                  אשמח אם תתייגו את מי שמבין...

                  אולי @מנדי אולי @שמואל-ש.

                  מ מנותק
                  מ מנותק
                  מנדי
                  כתב נערך לאחרונה על ידי מנדי
                  #7

                  @2580
                  אני הקמתי על פרומוקס שרץ עליו גם ha עוד קונטיינר של שרת Asterisk פשוט, הגדרתי בו sip של ימות,
                  ויש לי ב Asterisk סקריפט פייתון עם טוקן מ ha ודרכו אני מקבל כל המידע מהבית וכן שולח פקודות לבית,
                  אם יש לך מחשב מיני וכד’ שפועל כל הזמן בבית ( על מה אתה מריץ את ha?) זה עסק פשוט ויציב,

                  בשבילי זה היה הכי פשוט, כי בכל מקרה היה לי את המחשב שאני מריץ עליו את ha
                  אבל מסתבר שדרך api של ימות זה אפשרי, ולא צריך להקים מרכזייה,

                  ליצור איתי קשר mendiforum@gmail.com

                  25802 תגובה 1 תגובה אחרונה
                  0
                  • מ מנדי

                    @2580
                    אני הקמתי על פרומוקס שרץ עליו גם ha עוד קונטיינר של שרת Asterisk פשוט, הגדרתי בו sip של ימות,
                    ויש לי ב Asterisk סקריפט פייתון עם טוקן מ ha ודרכו אני מקבל כל המידע מהבית וכן שולח פקודות לבית,
                    אם יש לך מחשב מיני וכד’ שפועל כל הזמן בבית ( על מה אתה מריץ את ha?) זה עסק פשוט ויציב,

                    בשבילי זה היה הכי פשוט, כי בכל מקרה היה לי את המחשב שאני מריץ עליו את ha
                    אבל מסתבר שדרך api של ימות זה אפשרי, ולא צריך להקים מרכזייה,

                    25802 מנותק
                    25802 מנותק
                    2580
                    מדריכים
                    כתב נערך לאחרונה על ידי
                    #8

                    @מנדי מה שכתבת בשבילי זה סינית אשמח אם תוכל לפשט/להדריך וכו'

                    בקרו - https://yo-2580.github.io/profile2580/

                    תגובה 1 תגובה אחרונה
                    1
                    • ה המתעניין1

                      @א.מ. פרסם בזמנו מדריך לימות. אולי הוא יידע...

                      א.מ.א מנותק
                      א.מ.א מנותק
                      א.מ.
                      מדריכים
                      כתב נערך לאחרונה על ידי א.מ.
                      #9

                      @המתעניין1 כתב:

                      @א.מ. פרסם בזמנו מדריך לימות. אולי הוא יידע...

                      @מנדי כתב:

                      אני הקמתי על פרומוקס שרץ עליו גם ha עוד קונטיינר של שרת Asterisk פשוט, הגדרתי בו sip של ימות,
                      ויש לי ב Asterisk סקריפט פייתון עם טוקן מ ha ודרכו אני מקבל כל המידע מהבית וכן שולח פקודות לבית

                      ניסיתי המון פעמים לחבר את הום אסיסטנט ל-SIP בימות המשיח (ללא שרת Asterisk) עבור חיבור העוזר הקולי בהום אסיסטנט לשליטה דרך הטלפון ללא הצלחה...

                      מ תגובה 1 תגובה אחרונה
                      0
                      • א.מ.א א.מ.

                        @המתעניין1 כתב:

                        @א.מ. פרסם בזמנו מדריך לימות. אולי הוא יידע...

                        @מנדי כתב:

                        אני הקמתי על פרומוקס שרץ עליו גם ha עוד קונטיינר של שרת Asterisk פשוט, הגדרתי בו sip של ימות,
                        ויש לי ב Asterisk סקריפט פייתון עם טוקן מ ha ודרכו אני מקבל כל המידע מהבית וכן שולח פקודות לבית

                        ניסיתי המון פעמים לחבר את הום אסיסטנט ל-SIP בימות המשיח (ללא שרת Asterisk) עבור חיבור העוזר הקולי בהום אסיסטנט לשליטה דרך הטלפון ללא הצלחה...

                        מ מנותק
                        מ מנותק
                        מנדי
                        כתב נערך לאחרונה על ידי מנדי
                        #10

                        @א.מ.
                        אני לא חושב שזה יעבוד בלי מרכזיה באותה רשת, החיבור לעוזר הקולי שלהם הוא פשוט לחייג בתוך הרשת לha לכתובת ip שלו, והוא עונה,
                        שאתה מחייג מבחוץ איך אפשר לחייג את המספר הזה שהוא כתובת ip,
                        מה שאני עשיתי זה מרכזייה ומחובר לה sip חיצוני ושאני מתקשר אליו הוא מפנה אותו לכתובת ip של ha וכך ניתן לשוחח עם העוזר הקולי של ha

                        ליצור איתי קשר mendiforum@gmail.com

                        א.מ.א תגובה 1 תגובה אחרונה
                        0
                        • מ מנדי

                          @א.מ.
                          אני לא חושב שזה יעבוד בלי מרכזיה באותה רשת, החיבור לעוזר הקולי שלהם הוא פשוט לחייג בתוך הרשת לha לכתובת ip שלו, והוא עונה,
                          שאתה מחייג מבחוץ איך אפשר לחייג את המספר הזה שהוא כתובת ip,
                          מה שאני עשיתי זה מרכזייה ומחובר לה sip חיצוני ושאני מתקשר אליו הוא מפנה אותו לכתובת ip של ha וכך ניתן לשוחח עם העוזר הקולי של ha

                          א.מ.א מנותק
                          א.מ.א מנותק
                          א.מ.
                          מדריכים
                          כתב נערך לאחרונה על ידי
                          #11

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

                          מ תגובה 1 תגובה אחרונה
                          0
                          • א.מ.א א.מ.

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

                            מ מנותק
                            מ מנותק
                            מנדי
                            כתב נערך לאחרונה על ידי מנדי
                            #12

                            @א.מ.
                            על זה בדיוק עניתי...
                            אני ינסה להסביר יותר ברור,
                            אחד מן הדרכים לדבר עם העוזר הקולי של ha היא בחיוג לוקלי על ידי טלפון ip או כל תוכנת voip למשל תוכנת מיקרוסיפ במחשב וכד’
                            צורת החיוג היא להכניס את הכתובת ip של ha במספר החיוג,
                            שאתה מתקשר מבחוץ סיפ ימות וכד’ אין לך גישה לרשת הפנימית,

                            לכן מה שאני עשיתי זה מרכזיה שנמצאת ברשת הפנימית שלי, ובה מוגדר סיפ של ימות ושאני מחיג למספר של ימות הוא מחבר אותי לחיוג פנימי שהוא מבצע לעוזר הקולי של ha וזה עובד פצצה,

                            ליצור איתי קשר mendiforum@gmail.com

                            א.מ.א תגובה 1 תגובה אחרונה
                            1
                            • מ מנדי

                              @א.מ.
                              על זה בדיוק עניתי...
                              אני ינסה להסביר יותר ברור,
                              אחד מן הדרכים לדבר עם העוזר הקולי של ha היא בחיוג לוקלי על ידי טלפון ip או כל תוכנת voip למשל תוכנת מיקרוסיפ במחשב וכד’
                              צורת החיוג היא להכניס את הכתובת ip של ha במספר החיוג,
                              שאתה מתקשר מבחוץ סיפ ימות וכד’ אין לך גישה לרשת הפנימית,

                              לכן מה שאני עשיתי זה מרכזיה שנמצאת ברשת הפנימית שלי, ובה מוגדר סיפ של ימות ושאני מחיג למספר של ימות הוא מחבר אותי לחיוג פנימי שהוא מבצע לעוזר הקולי של ha וזה עובד פצצה,

                              א.מ.א מנותק
                              א.מ.א מנותק
                              א.מ.
                              מדריכים
                              כתב נערך לאחרונה על ידי
                              #13

                              @מנדי יפה מאוד!
                              אולי כדאי אם תוכל לעשות מדריך על זה לתועלת הציבור.

                              תגובה 1 תגובה אחרונה
                              2
                              • ע מנותק
                                ע מנותק
                                עידו300
                                כתב נערך לאחרונה על ידי
                                #14

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

                                זה הפתרון הקל והפשוט לבעיות האלו.

                                תגובה 1 תגובה אחרונה
                                0
                                • 25802 מנותק
                                  25802 מנותק
                                  2580
                                  מדריכים
                                  כתב נערך לאחרונה על ידי
                                  #15

                                  אם אני מבין נכון אז אני צריך להקים במחשב שרת (פייתון) שיקבל את הנתונים/הדאטה מהHA ויעביר לימות בפורמט המתאים?! תקנו אותי אם אני טועה...

                                  למה אי אפשר להגדיר באוטומציה שתעביר את הדאטה בפורמט המתאים?

                                  אני מריץ על HASSWP כמו המדריך הזה:

                                  https://mitmachim.top/topic/72416/מדריך-הדרך-הקלה-ביותר-להתקנת-home-assistant-בווינדוס

                                  זה נמצא על המחשב הביתי שלי ולא על מחשב נפרד...

                                  בקרו - https://yo-2580.github.io/profile2580/

                                  ע מ 2 תגובות תגובה אחרונה
                                  0
                                  • 25802 2580

                                    אם אני מבין נכון אז אני צריך להקים במחשב שרת (פייתון) שיקבל את הנתונים/הדאטה מהHA ויעביר לימות בפורמט המתאים?! תקנו אותי אם אני טועה...

                                    למה אי אפשר להגדיר באוטומציה שתעביר את הדאטה בפורמט המתאים?

                                    אני מריץ על HASSWP כמו המדריך הזה:

                                    https://mitmachim.top/topic/72416/מדריך-הדרך-הקלה-ביותר-להתקנת-home-assistant-בווינדוס

                                    זה נמצא על המחשב הביתי שלי ולא על מחשב נפרד...

                                    ע מנותק
                                    ע מנותק
                                    עידו300
                                    כתב נערך לאחרונה על ידי
                                    #16

                                    @2580 אולי אפשר גם אוטומציה אבל אין לי מושג בזה, מעולם לא השתמשתי בזה.

                                    לא צריך שרת פייתון אפשר גם ברנדר או משהו כזה (שים לב, רוב ככל השרתים החינמיים לא מסתדרים עם ימות המשיח!)

                                    כמו שכתבתי, בצד של הבית חכם, אני לא מבין כלום, רק קצת בצד של ימות המשיח, ובצד שלהם זו התשובה - שירות כל שהוא שיעבד את התשובה לפורמט שהם רוצים.

                                    תגובה 1 תגובה אחרונה
                                    0
                                    • 25802 2580

                                      אם אני מבין נכון אז אני צריך להקים במחשב שרת (פייתון) שיקבל את הנתונים/הדאטה מהHA ויעביר לימות בפורמט המתאים?! תקנו אותי אם אני טועה...

                                      למה אי אפשר להגדיר באוטומציה שתעביר את הדאטה בפורמט המתאים?

                                      אני מריץ על HASSWP כמו המדריך הזה:

                                      https://mitmachim.top/topic/72416/מדריך-הדרך-הקלה-ביותר-להתקנת-home-assistant-בווינדוס

                                      זה נמצא על המחשב הביתי שלי ולא על מחשב נפרד...

                                      מ מנותק
                                      מ מנותק
                                      מנדי
                                      כתב נערך לאחרונה על ידי מנדי
                                      #17

                                      @2580
                                      בניתי משהו יש הרבה מה לשפץ אבל התחלה...
                                      זה ישום בתוך HA
                                      הקבצים צריכים להיות בנתיב config/custom_components שם צריך לפתוח תיקיה חדשה yemot_api ולהכניס לה את שתי הקבצים
                                      הראשון- שם הקובץ צריך להיות- manifest.json

                                      {
                                        "domain": "yemot_api",
                                        "name": "Yemot HaMashiach API Endpoint",
                                        "version": "1.0.0",
                                        "documentation": "https://www.home-assistant.io",
                                        "dependencies": ["http"],
                                        "codeowners": [],
                                        "requirements": [],
                                        "iot_class": "local_push"
                                      }
                                      

                                      וזה הקובץ השני- זה השם

                                      __init__.py
                                      

                                      וזה הקובץ

                                      import logging
                                      import asyncio
                                      from aiohttp import web
                                      from homeassistant.core import HomeAssistant
                                      from homeassistant.components.http import HomeAssistantView
                                      
                                      DOMAIN = "yemot_api"
                                      
                                      async def async_setup(hass: HomeAssistant, config: dict) -> bool:
                                          hass.http.register_view(YemotApiView(hass))
                                          return True
                                      
                                      class YemotApiView(HomeAssistantView):
                                          url = "/api/yemot/{token}/{entity_id}"
                                          extra_urls = ["/api/yemot/{token}/{entity_id}/{action}"]
                                          name = "api:yemot"
                                          requires_auth = False 
                                      
                                          def __init__(self, hass: HomeAssistant):
                                              self.hass = hass
                                      
                                          async def get(self, request: web.Request, token: str, entity_id: str, action: str = None) -> web.Response:
                                              await request.read()
                                              return await self._process_request(token, entity_id, action)
                                      
                                          async def post(self, request: web.Request, token: str, entity_id: str, action: str = None) -> web.Response:
                                              await request.read()
                                              return await self._process_request(token, entity_id, action)
                                      
                                          async def _process_request(self, token: str, entity_id: str, action: str) -> web.Response:
                                              if token != "123456":
                                                  return self._build_response("שגיאת הרשאה")
                                      
                                              domain = entity_id.split(".")[0]
                                      
                                      
                                              if action:
                                                  try:
                                                      await self.hass.services.async_call(domain, action, {"entity_id": entity_id}, blocking=True)
                                                      
                                                      await asyncio.sleep(2.5)
                                                      
                                                      new_state = self.hass.states.get(entity_id)
                                                      if new_state:
                                                          ans = self._translate_state(domain, new_state)
                                                          return self._build_response(f"הפעולה בוצעה, והמכשיר כרגע {ans}")
                                                      else:
                                                          return self._build_response("הפעולה נשלחה אך לא ניתן לוודא את הסטטוס החדש")
                                                  except Exception:
                                                      return self._build_response("שגיאה בביצוע הפעולה")
                                      
                                      
                                              state = self.hass.states.get(entity_id)
                                              if not state:
                                                  return self._build_response("המכשיר לא נמצא")
                                      
                                              ans = self._translate_state(domain, state)
                                              return self._build_response(f"הסטטוס כרגע {ans}")
                                      
                                          def _translate_state(self, domain: str, state_obj) -> str:
                                              st = str(state_obj.state)
                                              
                                              if st in ["unavailable", "unknown"]:
                                                  return "לא זמין"
                                                  
                                              if domain == "sensor":
                                                  try:
                                                      if '.' in st:
                                                          st = str(round(float(st)))
                                                  except ValueError:
                                                      pass
                                                      
                                                  unit = str(state_obj.attributes.get("unit_of_measurement", "")).lower()
                                                  
                                                  if "c" in unit or "מעלות" in unit or "°" in unit:
                                                      return f"{st} מעלות"
                                                  elif "%" in unit:
                                                      return f"{st} אחוזים"
                                                  else:
                                                      return st
                                              
                                              if st in ["on", "cool", "heat"]:
                                                  return "דולק"
                                              elif st == "off":
                                                  return "כבוי"
                                              elif st in ["locked", "lock"]:
                                                  return "נעול"
                                              elif st in ["unlocked", "unlock"]:
                                                  return "פתוח"
                                              else:
                                                  return "במצב לא מוכר"
                                      
                                          def _build_response(self, text: str) -> web.Response:
                                              response_text = f"id_list_message=t-{text}&go_to_folder=/&"
                                              return web.Response(text=response_text, content_type="text/plain", charset="utf-8")
                                      

                                      שמתי את זה כקוד בגלל שעדיף להעתיק ןלהדביק מאשר לעלות את זה כקובץ ל HA בגלל שיכול להיות בעיות בקידוד,
                                      כדאי לשנות את הסיסמה שמה,

                                      בימות אתה מכניס בשלוחה שתבחר בהגדרות,

                                      type=api
                                      api_url_post=yes
                                      api_link=https://הכתובת שלך/api/yemot/הסיסמה שבחרת/lightאו כל התקן שתבחר
                                      

                                      זה מקבל את סטטוס של ההתקן,
                                      בשביל להפעיל או לכבות התקנים, תוסיף בסוף אחרי שם ההתקן turn_off/ או להפעלה turn_on/
                                      בהצלחה

                                      ליצור איתי קשר mendiforum@gmail.com

                                      25802 תגובה 1 תגובה אחרונה
                                      3
                                      • מ מנדי

                                        @2580
                                        בניתי משהו יש הרבה מה לשפץ אבל התחלה...
                                        זה ישום בתוך HA
                                        הקבצים צריכים להיות בנתיב config/custom_components שם צריך לפתוח תיקיה חדשה yemot_api ולהכניס לה את שתי הקבצים
                                        הראשון- שם הקובץ צריך להיות- manifest.json

                                        {
                                          "domain": "yemot_api",
                                          "name": "Yemot HaMashiach API Endpoint",
                                          "version": "1.0.0",
                                          "documentation": "https://www.home-assistant.io",
                                          "dependencies": ["http"],
                                          "codeowners": [],
                                          "requirements": [],
                                          "iot_class": "local_push"
                                        }
                                        

                                        וזה הקובץ השני- זה השם

                                        __init__.py
                                        

                                        וזה הקובץ

                                        import logging
                                        import asyncio
                                        from aiohttp import web
                                        from homeassistant.core import HomeAssistant
                                        from homeassistant.components.http import HomeAssistantView
                                        
                                        DOMAIN = "yemot_api"
                                        
                                        async def async_setup(hass: HomeAssistant, config: dict) -> bool:
                                            hass.http.register_view(YemotApiView(hass))
                                            return True
                                        
                                        class YemotApiView(HomeAssistantView):
                                            url = "/api/yemot/{token}/{entity_id}"
                                            extra_urls = ["/api/yemot/{token}/{entity_id}/{action}"]
                                            name = "api:yemot"
                                            requires_auth = False 
                                        
                                            def __init__(self, hass: HomeAssistant):
                                                self.hass = hass
                                        
                                            async def get(self, request: web.Request, token: str, entity_id: str, action: str = None) -> web.Response:
                                                await request.read()
                                                return await self._process_request(token, entity_id, action)
                                        
                                            async def post(self, request: web.Request, token: str, entity_id: str, action: str = None) -> web.Response:
                                                await request.read()
                                                return await self._process_request(token, entity_id, action)
                                        
                                            async def _process_request(self, token: str, entity_id: str, action: str) -> web.Response:
                                                if token != "123456":
                                                    return self._build_response("שגיאת הרשאה")
                                        
                                                domain = entity_id.split(".")[0]
                                        
                                        
                                                if action:
                                                    try:
                                                        await self.hass.services.async_call(domain, action, {"entity_id": entity_id}, blocking=True)
                                                        
                                                        await asyncio.sleep(2.5)
                                                        
                                                        new_state = self.hass.states.get(entity_id)
                                                        if new_state:
                                                            ans = self._translate_state(domain, new_state)
                                                            return self._build_response(f"הפעולה בוצעה, והמכשיר כרגע {ans}")
                                                        else:
                                                            return self._build_response("הפעולה נשלחה אך לא ניתן לוודא את הסטטוס החדש")
                                                    except Exception:
                                                        return self._build_response("שגיאה בביצוע הפעולה")
                                        
                                        
                                                state = self.hass.states.get(entity_id)
                                                if not state:
                                                    return self._build_response("המכשיר לא נמצא")
                                        
                                                ans = self._translate_state(domain, state)
                                                return self._build_response(f"הסטטוס כרגע {ans}")
                                        
                                            def _translate_state(self, domain: str, state_obj) -> str:
                                                st = str(state_obj.state)
                                                
                                                if st in ["unavailable", "unknown"]:
                                                    return "לא זמין"
                                                    
                                                if domain == "sensor":
                                                    try:
                                                        if '.' in st:
                                                            st = str(round(float(st)))
                                                    except ValueError:
                                                        pass
                                                        
                                                    unit = str(state_obj.attributes.get("unit_of_measurement", "")).lower()
                                                    
                                                    if "c" in unit or "מעלות" in unit or "°" in unit:
                                                        return f"{st} מעלות"
                                                    elif "%" in unit:
                                                        return f"{st} אחוזים"
                                                    else:
                                                        return st
                                                
                                                if st in ["on", "cool", "heat"]:
                                                    return "דולק"
                                                elif st == "off":
                                                    return "כבוי"
                                                elif st in ["locked", "lock"]:
                                                    return "נעול"
                                                elif st in ["unlocked", "unlock"]:
                                                    return "פתוח"
                                                else:
                                                    return "במצב לא מוכר"
                                        
                                            def _build_response(self, text: str) -> web.Response:
                                                response_text = f"id_list_message=t-{text}&go_to_folder=/&"
                                                return web.Response(text=response_text, content_type="text/plain", charset="utf-8")
                                        

                                        שמתי את זה כקוד בגלל שעדיף להעתיק ןלהדביק מאשר לעלות את זה כקובץ ל HA בגלל שיכול להיות בעיות בקידוד,
                                        כדאי לשנות את הסיסמה שמה,

                                        בימות אתה מכניס בשלוחה שתבחר בהגדרות,

                                        type=api
                                        api_url_post=yes
                                        api_link=https://הכתובת שלך/api/yemot/הסיסמה שבחרת/lightאו כל התקן שתבחר
                                        

                                        זה מקבל את סטטוס של ההתקן,
                                        בשביל להפעיל או לכבות התקנים, תוסיף בסוף אחרי שם ההתקן turn_off/ או להפעלה turn_on/
                                        בהצלחה

                                        25802 מנותק
                                        25802 מנותק
                                        2580
                                        מדריכים
                                        כתב נערך לאחרונה על ידי
                                        #18

                                        @מנדי הקבצים האלו זה במקום הYAML של האוטומציה או בנוסף?

                                        בקרו - https://yo-2580.github.io/profile2580/

                                        תגובה 1 תגובה אחרונה
                                        0
                                        • 25802 2580 סימן נושא זה כנפתר
                                        • 25802 2580 סימן נושא זה כנפתר
                                        • מ מנותק
                                          מ מנותק
                                          מנדי
                                          כתב נערך לאחרונה על ידי
                                          #19

                                          הכנסתי את זה ל- גיטהוב וכל ההגדרות דרך ממשק, בנוסף הוא מגדיר לבד את השלוחות בימות דרך HA וגם שולח התראות צינתוקים וטקסט מHA זה המאגר
                                          https://github.com/meni123/ha-yemot

                                          ליצור איתי קשר mendiforum@gmail.com

                                          א תגובה 1 תגובה אחרונה
                                          2
                                          • מ מנדי

                                            הכנסתי את זה ל- גיטהוב וכל ההגדרות דרך ממשק, בנוסף הוא מגדיר לבד את השלוחות בימות דרך HA וגם שולח התראות צינתוקים וטקסט מHA זה המאגר
                                            https://github.com/meni123/ha-yemot

                                            א מנותק
                                            א מנותק
                                            אאA
                                            כתב נערך לאחרונה על ידי אאA
                                            #20

                                            @מנדי
                                            קצת הסתבכתי...
                                            אלו 2 קבצים אותם יש לעלות לשרת?
                                            ואיך אני מוצא את ההתקן שלי?
                                            אשמח לתשובה!!

                                            מ 2 תגובות תגובה אחרונה
                                            0

                                            שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.

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

                                            בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗

                                            הרשמה התחברות

                                            • התחברות

                                            • אין לך חשבון עדיין? הרשמה

                                            • התחברו או הירשמו כדי לחפש.
                                            • פוסט ראשון
                                              פוסט אחרון
                                            0
                                            • חוקי הפורום
                                            • פופולרי
                                            • לא נפתר
                                            • משתמשים
                                            • חיפוש גוגל בפורום
                                            • צור קשר