תובנות בנוגע ל- OpenHAB 3- שרשור מתעדכן

SIRI, CORTANA, ALEXA, ECHO, GOOGLE HOME, HOME PAD, שלטים חכמים, KEY PADS, אפליקציות
chenta (פותח השרשור)
חבר פעיל מאוד
חבר פעיל מאוד
הודעות: 183
הצטרף: ינואר 2011
נתן תודות: 22 פעמים
קיבל תודות: 29 פעמים

תובנות בנוגע ל- OpenHAB 3- שרשור מתעדכן

נושא שלא נקרא #1 

הי לכולם,

לאחר התכתבות עם חבר פורום אחר שבה דיברנו על איך לעשות דברים מסויימים ב- OH3 חשבתי שכדאי להעלות את הכל על שרשור פתוח כדי שעוד אנשים יוכלו לשתף, לתרום ולהיתרם.
חלק מהתובנות שלי כבר פרסמתי באחד השרשורים כאן בפורום:
https://htmag.co.il/phpbb/viewtopic.php ... &start=735

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

1. התמודדות עם זמנים בחוקים:
ב- OH3 שינו את הספרייה של ה- DateTime. פוסט מעולה להמרות בין הסוגים השונים והשימושים השונים:
https://community.openhab.org/t/datetim ... 3-x/107197

2. עבודה עם ה- Pages החדשים:
יש הרבה שאפשר להגדיר בממשק החדש כולל אפשרות לייצר widgets אישיים. זה כבר דורש קידוד ה- YAML שזה הדבר השנוא עלי, אבל עוד לפני אפשר לעשות לא מעט גם בלי. דוגמא לדברים שניתן לעשות פרמסתי בפורום של OH:
https://community.openhab.org/t/my-oh3- ... ets/119120

3. המודל הסמנטי:
לאחר הרבה התקנות מחודשות תוך התנסויות בהגדרת המערכת התקבעתי על דרך העבודה המועדפת עלי והיא דרך הקבצים.
יצירת המודל הסמנטי עדיין מתאפשרת באמצעות הוספת תגיות.
יש כאן פוסט מעולה שמסביר את זה:
https://community.openhab.org/t/oh3-sem ... les/112520
דוגמא לקובץ model.items שיצרתי שבו הגדרתי את שתי הרמות הראשונות של המודל שלי (שם הקובץ לא מחייב):

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

//*** Locations ***//
Group   gBalcony    "Balcony"   <mybalcony> ["Veranda"]
    Group   gBalconyBlinds          "Balcony Blinds"            <rollershutter> (gBalcony)  ["Blinds"]
    Group   gBalconyBlindsStatus    "Balcony Blinds Status"     <rollershutter> (gBalcony)  ["Equipment"]
    Group   gBalconyBlindsScenes    "Balcony Blinds Scenes"     <rollershutter> (gBalcony)  ["Equipment"]

Group   gBathRoom   "Bath Room" <bath>     ["Bathroom"]
    Group   gDude       "Dude"   <boiler>   (gBathRoom) ["Boiler"]
    Group   gDudeStatus "Dude"   <boiler>   (gBathRoom) ["Equipment"]
    Group   gBathRoomHeater         "Bath Room Heater"          <heater> (gBathRoom) ["Oven"]
    Group   gBathRoomHeaterStatus   "Bath Room Heater Status"   <heater> (gBathRoom) ["Equipment"]
    Group   gParentsShowerHeater        "Parents Shower Heater"         <heater> (gBathRoom) ["Oven"]
    Group   gParentsShowerHeaterStatus  "Parents Shower Heater Status"  <heater> (gBathRoom) ["Equipment"]

Group   gEntrance   "Entrance"  <corridor>  ["Corridor"]
    Group   gEntranceAndCenterLight         "Entrance and Center Light"         <lightbulb> (gEntrance) ["WallSwitch"]
    Group   gEntranceAndCenterLightStatus   "Entrance and Center Light Status"  <lightbulb> (gEntrance) ["Equipment"]
    Group   gFrontDoorBell                  "Front Door Bell"                   <frontdoor> (gEntrance) ["Doorbell"]
    Group   gFrontDoorSensor                "Front Door Sensor"                 <frontdoor> (gEntrance) ["FrontDoor"]
    Group   gFrontDoorSensorStatus          "Front Door Sensor Status"          <frontdoor> (gEntrance) ["Equipment"]
    Group   gHomeAndAway                    "Home&Away"                         <homeaway>  (gEntrance) ["Equipment"]

Group   gKidsRoom   "Kids Room"  <kidsroom>   ["Room"]
    Group   gKidsRoomLight          "Kids Room Light"           <lightbulb> (gKidsRoom) ["WallSwitch"]
    Group   gKidsRoomLightStatus    "Kids Room Light Status"    <lightbulb> (gKidsRoom) ["Equipment"]
    Group   gKidsRoomSpeaker        "Kids Room Speaker"         <homemini3> (gKidsRoom) ["Speaker"]
    Group   gKidsRoomSpeakerStatus  "Kids Room Speaker Status"  <homemini3> (gKidsRoom) ["Equipment"]

Group   gKitchen    "Kitchen"   <kitchen>    ["Kitchen"]
    Group   gBothKitchenLights      "Both Kitchen Lights"           <ledstrip> (gKitchen)
    Group   gKitchenSpeaker         "Kitchen Speaker"               <homemini3>  (gKitchen) ["Speaker"]
    Group   gKitchenSpeakerStatus   "Kitchen Speaker Status"        <homemini3>  (gKitchen) ["Equipment"]
    Group   gKitchenSwitch          "Kitchen Switch"                <wallswitch> (gKitchen) ["WallSwitch"]
    Group   gKitchenSwitchStatus    "Kitchen Switch Status"         <wallswitch> (gKitchen) ["Equipment"]
    Group   gKitchenTempSensor      "Kitchen Temperature Sensor"    <temperature> (gKitchen) ["Sensor"]
    Group   gKitchenTempSensorStatus "Kitchen Temperature Sensor Status" <temperature> (gKitchen) ["Equipment"]
    Group   gSinkLights             "Sink Lights"                   <ledstrip> (gKitchen) ["LightStripe"]
    Group   gSinkLightsStatus       "Sink Lights Status"            <ledstrip> (gKitchen) ["Equipment"]
    Group   gTableLights            "Table Lights"                  <ledstrip> (gKitchen) ["LightStripe"]
    Group   gTableLightsStatus      "Table Lights Status"           <ledstrip> (gKitchen) ["Equipment"]
    Group   gKitchenComputer        "Kitchen Computer"              <computer> (gKitchen) ["Equipment"]

Group   gLivingRoom "Living Room" <mylivingroom>   ["LivingRoom"]
    Group   gLivingRoomBlinds           "Living Room Blinds"        <rollershutter> (gLivingRoom) ["Blinds"]
    Group   gLivingRoomBlindsStatus     "Living Room Blinds Status" <rollershutter> (gLivingRoom) ["Equipment"]
    Group   gLivingRoomBlindsScenes     "Living Room Blinds Scenes" <rollershutter> (gLivingRoom) ["Equipment"]
    Group   gLivingRoomChromecast       "Living Room Chromecast"    <chromecast>    (gLivingRoom) ["Television"]
    Group   gLivingRoomChromecastStatus "Living Room Chromecast Status" <chromecast> (gLivingRoom) ["Equipment"]
    Group   gLivingRoomLight            "Living Room Light"         <lightbulb>     (gLivingRoom)   ["WallSwitch"]
    Group   gLivingRoomLightStatus      "Living Room Light Status"  <lightbulb>     (gLivingRoom)   ["Equipment"]
    Group   gLivingRoomTV               "Living Room TV"            <screen>        (gLivingRoom) ["Television"]
    Group   gHomePanel                  "Home Panel"                                (gLivingRoom)    ["Equipment"]

Group   gMamad  "Mamad"    ["Room"]
    Group   gMamadComputer      "Mamad Computer"                <computer>  (gMamad)    ["Equipment"]
    Group   gNAS                "NAS"                           <computer>  (gMamad)    ["Equipment"]

Group   gMovingObjects  "Moving Objects"    ["Room"]
    Group   gMiniSwitch "Mini Switch"               (gMovingObjects)    ["Equipment"]
    Group   gHomeButton "Home Button"               (gMovingObjects)    ["Equipment"]
    Group   gPresenceDetection "Presence Detection" (gMovingObjects)    ["Equipment"]

Group   gPlayRoom       "Play Room"         ["Room"]
    Group   gPlayRoomLightSwitch    "Play Room Light Switch"    <lightbulb> (gPlayRoom) ["WallSwitch"]
    Group   gPlayRoomLightSwitchStatus    "Play Room Light Switch Status"    <lightbulb> (gPlayRoom) ["Equipment"]
    Group   gPlayRoomComputer       "Play Room Computer"        <computer> (gPlayRoom) ["Equipment"]

Group   gWorkingSpace   "Working Space"     ["Office"]
    Group   gWorkingSpaceLight  "Working Space Light" <lightbulb> (gWorkingSpace) ["WallSwitch"]
    Group   gWorkingSpaceLightStatus  "Working Space Light Status" <lightbulb> (gWorkingSpace) ["Equipment"]

//*** Equipments ***//
Group   gAstro      "Astro"     ["WebService"]
    Group   gLocalMoon  "Local Moon" <moon> (gAstro)    ["WeatherService"]
    Group   gLocalSun   "Local Sun" <sun>   (gAstro)    ["WeatherService"]
    Group   gLocalWeatherAndForecast "Local Weather And Forecast" <sun_clouds>  (gAstro)    ["WeatherService"]
    Group   gWeatherWidget "Weather Widget Items" <sun_clouds>  (gAstro)    ["WeatherService"]
    Group   gLocalTime  "Local Time"        (gAstro)    ["WebService"]
    Group   gOWMWidget "Open Weather Map Widget"    <sun_clouds>    (gAstro)    ["WeatherService"]

Group   gHomeRoutines   "Home Routines and Scenes"  ["Equipment"]
    Group   gDailyReminders "Daily Reminders"   (gHomeRoutines) ["Equipment"]
    Group   gBlindsScenes "Blinds Scenes"       (gHomeRoutines)
    Group   gTODScenes "Time Of Day Scenes"     (gHomeRoutines) ["Equipment"]

Group   gNewTamirimHab  "New Tamirim Hab"   ["Equipment"]

Group   gTelegramBot    "Our Telegram Bot"  ["Equipment"]

Group   gSpeedTest  "Speed Test"    <speedtest>     ["Equipment"]

Group   gTheTamirimCalendar "The Tamirim Calendar" <cal> ["WebService"]


//*** Non Semantic ***//
Group:Switch:OR(ON,OFF) gReminders "Reminders" {stateDescription=""[options="ON=Attention,OFF=No Reminders",readOnly="true"]}
    Group:Switch:OR(ON,OFF) gShellyUpdateFW "Shelly Devices FW Update" <update> (gReminders)  {stateDescription=""[options="OFF=None,ON=Update Available",readOnly="true"]}
Group:Switch:OR(ON,OFF) gAlarms "Alarms" <status> {stateDescription=""[options="ON=Error,OFF=No Alarms",readOnly="true"]}
    Group:Switch:NAND(ON,OFF) gStatus_AlwaysOn "Devices Status Summary" <status> (gAlarms) {stateDescription=""[options="OFF=OK,ON=ERROR",readOnly="true"]}
    Switch HBLost "Lost Heart Beat Indication (OFF=OK, ON=ERROR)" <heartbeat> (gAlarms) {stateDescription=""[options="OFF=OK, ON=Heart Beat Lost"],listWidget="oh-label-item"}
Group:Switch:NAND(ON,OFF) gStatus_Other "Devices Status Summary" <status> {stateDescription=""[options="OFF=OK,ON=ERROR",readOnly="true"]}
    
Group gChartChange "Chart InfluxDB Items- Every Change" <chart>
Group gChartMinute "Chart InfluxDB Items- Every Minute" <chart>
Group gHistory "Chart RRDJ Items" <chart>
Group:Switch:OR(ON,OFF) gLightsPower "Lights Power Items" <lightbulb>
Group:Switch:OR(ON,OFF) gMute_All "Mute All Dvices" <soundvolume_mute>
Group gTestItems "Test Items"
Group gKitchenColor "Kitchen Lights Color Control" <colorwheel>
Group gHBItems "Last Heart Beat Items" <heartbeat>
4. מתקשר לזה- הוספת metadata:
מאפשר להוסיף כל מיני פריטי מידע והמרות, למשל מיפוי הערכים של switch לערכים מותאמים אישית.
אפשר לבצע דרך ה- UI או דרך הקבצים.
דרך ה- UI:
1. Settings -> Items -> בחירת item לעריכה
2. לחיצה על Add Metadata
3. לחיצה על State Description
4. תחת שדה options יש למלא את המיפוי הרצוי. יש שם הנחיות אבל בגדול -כל ערך בשורה חדשה. רושם את הערך ואת התגית החדשה הרצויה. למשל:

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

ON=Good Job
OFF=Need Some Improvements
דרך הקבצים:
בשורה של ה- item הרלוונטי יש להוסיף תחת שדה ה- metadata שמוקף בסוגריים מסולסלים {} את הערך הבא:

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

stateDescription=""[options="OFF=Need Some Improvements,ON=Good Job"]
וגם על זה יש פוסט מעולה שמסביר איך בכלל מבינים מה הערכים הנכונים שצריך לרשום ב- metadata:
https://community.openhab.org/t/oh3-add ... les/112843



אז יאללה, לשימושכם והוספת כל תובנה מעניינת נוספת!
:)

zovirax
סמל אישי של משתמש
חבר במועדון ה-15K
חבר במועדון ה-15K
הודעות: 15617
הצטרף: פברואר 2006
שם מלא: zovirax
נתן תודות: 269 פעמים
קיבל תודות: 303 פעמים

Re: תובנות בנוגע ל- OpenHAB 3- שרשור מתעדכן

נושא שלא נקרא #2 

@chenta
תודה על השירשור הזה - די פספסתי אותו.
אהבתי את הפוסט המפורט שלך ב OH על Pages
עוד לא התחלתי להתעמק

מאז המעבר לגירסה 3 לא כל כך נכנסתי להעומק המערכת
נשארתי ב 2.5 .
שקלתי להתחיל להמיר את כל המערכת לתוך ה GUI
אבל אני רואה שאתה עדיין ממשיך להשתמש בקבצים?

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

chenta (פותח השרשור)
חבר פעיל מאוד
חבר פעיל מאוד
הודעות: 183
הצטרף: ינואר 2011
נתן תודות: 22 פעמים
קיבל תודות: 29 פעמים

Re: תובנות בנוגע ל- OpenHAB 3- שרשור מתעדכן

נושא שלא נקרא #3 

05/07/2021 14:16  
zovirax כתב:
@chenta
שקלתי להתחיל להמיר את כל המערכת לתוך ה GUI
אבל אני רואה שאתה עדיין ממשיך להשתמש בקבצים?
...
אכן אני משתמש בעיקר בקבצים כי זה הרבה יותר נוח לי. כמובן שזה קצת עניין זה טעם אישי אבל יש דברים שאני גיליתי בדרך הקשה שהרבה יותר קל לעשות דרך קבצים.

כמה דוגמאות-
1. שינוי שם של item לא ניתן לעשות דרך ה- GUI בכלל. ברגע שיצרת אותו השם נשאר קבוע, ואם אתה ממש רוצה תצטרך למחוק ולהגדיר אותו מחדש. בקבצים זה עניין פשוט.
2. שינויים על הרבה items בצורה מהירה הרבה יותר קל לעשות ע"י עורך טקסט טוב (למשל VSC) מאשר לעשות בצורת קליקים סדרתיים בתוך ה- GUI. (הוספת קבוצות, שינוי tag-ים, שינוי icon ועוד)
3. בחינה מהירה של ה- items כדי לאתר באגים וכו'.
4. ביצוע חיפוש של ערך מסויים בכל הקבצים (items, rules, persist, sitemap) למשל איפה השתמשת ב- item מסויים וכדומה.
5. יש לי גם קובץ SVG עם תרשים של הבית שלי ועליו הרבה מאוד אלמנטים עם קוד angularJS שמוצג לי ב- habpanel וכשאני עושה חיפוש בקבצים ועושה שינוי כלשהוא הוא משנה גם את הקוד שנמצא שם. סופר נוח!!
ועוד...

למעשה אני אדייק את השימוש שלי:
1. עד לרמת ה- things אני עובד אך ורק ב- GUI. כלומר גם את ההגדרות של המערכת וגם את התקנת התוספים ולאחר מכן את הגדרת ה- thing.
2. לאחר מכן, את הגדרת ה- items, ה- rules וה- sitemaps אני עושה אך ורק דרך הקבצים.
3. לגבי persist- נכון לגרסה 3.0.1 לא היה ניתן בכלל לערוך את ההגדרות האלה דרך ה- GUI, עוד לא בחנתי את 3.1 שיצא לא מזמן.
05/07/2021 14:16  
zovirax כתב:
חייב להגיד שאני לא כל כך מבין את כל משתני המערכת החדשים
לא מבין מה הקטע של המודל הסמנטי
...
המודל הסמנטי זה דרך לתייג כל item כדי להגיד איזה סוג הוא...
הוא יכול לעזור לך לסדר את כל המשתנים לקבוצות אבל אתה לא חייב להשתמש בו.
תסתכל על הפוסט שקישרתי במודל הסמנטי ותראה איך עושי םאת זה דרך תגיות בקבצים, הוא קצת מסביר מה זה כל תגית.
איפה המודל בא לידי ביטוי?
1. HABot- אמור להיות סוג של עוזרת אישית לוקאלית של OH. היא משתמשת במודל כדי להבין מה זה כל פריט. אני לא משתמש בפיצ'ר הזה אז לא יכול להעיד עליוץ
2. Home Page- בכניסה לממשק החדש נוצרים כמה דפים בצורה אוטומטית לפי המודל הסמנטי. זה מבחינתי השימוש הכי אפקטיבי במודל. למרות שאני חייב להגיד שעשיתי לו קצת abuse כדי שהחלוקה לקבוצות תהיה כמו שנוח לי ולא בהכרח כמו שהם התכוונו.
למשל את כל ה- items שקשורים לסטטוס של רכיבים (אינד' על עדכון תוכנה, heart beat, טמפ' פנימית, מצב רשת וכו') שמתי תחת Equipment מסוג Pressure כדי שכולם יהיו באותה כרטיסיה, וכל אחד מהסוגים שמתי תחת Point אחר כדי לקבץ אותם לפי קבוצות בכרטיסיה. כאמור לא ממש לזה התכוון המשורר אבל כמו שגם אמרו לי שם כמה חבר'ה בכירים- אין נכון או לא נכון במודל, העיקר שזה עושה לך שכל. זה לא משפיע בשום צורה אחרת על התפקוד.

שלח תגובה

חזור אל “עוזרות קוליות, שליטה ובקרה”