מדריך: OpenHAB- יצירת קובץ לוג אישי

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

מדריך: OpenHAB- יצירת קובץ לוג אישי

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

שלום רב,

הפעם אשמח לשתף בתהליך לא מסובך להגדרת קובץ log אישי ב- OpenHAB, שאליו ניתן להכניס שורות מתוך חוקים.
הרבה פעמים ראיתי הודעת לוג מסויימת (שאני הגדרתי באחד החוקים) אבל תהיתי כמה פעמים היא קרתה ביממה האחרונה או האם זה חד פעמי? או למשל קמתי בבוקר עם תריסים פתוחים ותהיתי מה גרם לפתיחה שלהם?
בשני המקרים יכולתי כמובן לפתוח את openhab.log אבל הייתי טובע במאות שורות לוג ולכן אפילו לא ניסיתי.
ע"י יצירת קובץ לוג נוסף אני יכול להחליט מה לתעד לאיזה קובץ, להשאיר את הקובץ שלי נקי מהאירועים הגנריים ב- OH מבלי לפגוע ברמת התיעוד של המערכת עצמה, ולאפשר הבנה טובה יותר של מה קורה בבית החכם.

ראשית חשוב לי לציין שהקרדיט הוא לא לי, העבודה מבוססת על מס' שרשורים בפורום של OH וכן על התיעוד הרשמי של תהליך ה- Logging במערכת:
https://www.openhab.org/docs/administra ... gging.html
https://community.openhab.org/t/logging ... b-3/105784

הערה חשובה: התהליך שיתואר כאן מתאים ל- OH3 ומעלה בלבד. זאת מכיוון שבמעבר לגרסה 3 שינו את הפורמט של הקובץ שמגדיר למערכת מה לתעד ואיפה. מכיוון שאני כבר עברתי גרסה לא השקעתי מאמץ בלהבין איך זה היה אמור להיעשות ב- 2.5, אבל מצאתי לא מעט שרשורים על כך בפורום של OH. מי שזה רלוונטי אליו מוזמן לחפש custom logging בפורום.

עוד הערה חשובה: מיקומי הקבצים שיוזכרו כאן מבוססים על התקנת openhabian סטנדרטית. בכל שיטת התקנה אחרת (ידנית, win וכו') המיקום של הקבצים יהיה שונה אבל העקרונות אמורים להיות זהים.


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

שלב ראשון: הגדרת הלוגר החדש
בשלב זה נערוך את הקובץ log4j2.xml שנמצא תחת /var/lib/openhab/etc
מי שניגש לקבצים דרך SAMBA, הקובץ יופיע תחת openHAB-userdata\etc

הדבר הראשון שחשוב לבדוק הוא האם מופיע לכם בשורה הראשונה של הקובץ הערך הבא:

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

<Configuration monitorInterval="10">
במידה וכן אתם יכולים להמשיך. במידה ולא, כדאי להוסיף אותו ולאחר מכן לבצע פעלה מחדש של OpenHAB.
הקוד הזה יאפשר לכם בהמשך לבצע שינויים בקובץ מבלי להיות צריכים להפעיל מחדש את OH כדי שהשינויים ייכנסו לתוקף.

בהמשך, בקובץ זה תמצאו שני מקטעים עיקריים:
Appenders ו- Loggers.
לשני חלקים אלה יש להוסיף קטע קוד קצר. חשוב מאוד להוסיף אותו בסוף כל מקטע
למקטע ה- Appenders נוסיף:

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

<!-- My Log appender -->
<RollingRandomAccessFile append="true" fileName="${sys:openhab.logdir}/mylog.log" filePattern="${sys:openhab.logdir}/mylog.log.%i" immediateFlush="true" name="MYLOG">
		<PatternLayout>
				<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5.5p] - %m%n</Pattern>
		</PatternLayout>
		<Policies>
				<SizeBasedTriggeringPolicy size="16 MB"/>
		</Policies>
		<DefaultRolloverStrategy max="8"/>
</RollingRandomAccessFile>
כאשר תוכלו להתאים את שם הקובץ לפי רצונכם או להוסיף כמה מקטעים כאלה עם מס' שמות לוג.
בכל מקום שרשום בשורה הראשונה "mylog" תעדכנו לשם הרצוי לכם, וכן את שדה name בשורה זו.
עוד תוכלו לשחק עם הפורמט של כל שורה שמופיע תחת שדה pattern.
למידע נוסף על ה- syntax תוכלו לקרוא בתיעוד הרשמי:
http://www.slf4j.org/manual.html
(בשלב זה לא נכנסתי כל כך לעומק ודי התבססתי על מה שהיה עם התאמה מינורית שלי)

למקטע ה- Loggers נוסיף את:

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

<!-- My Log Logger -->
<Logger additivity="false" level="DEBUG" name="org.openhab.core.model.script.mylog">
		<AppenderRef ref="MYLOG"/>
</Logger>
בשורה הראשונה אתם מגדירים את שם הלוגר (הערך האחרון אחרי org.openhab.core.model.script)- זה יהיה השם איתו תפנו לקובץ החדש שלכם מתוך החוקים.
בשורה השניה אתם מקשרים את הלוגר החדש להגדרת ה- Appender שיצרתם במקטע הקודם- הערך צריך להתאים למה שרשמתם תחת name קודם.
זהו- הגדרתם קובץ לוג חדש.
על מנת להכניס לו שורה מאחד החוקים, יש להשתמש בפקודת log עם שם הלוגר שבחרתם. למשל:

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

logInfo("mylog",<message>)

שלב שני: התאמת VSC לצפייה בקבצי הלוג החדשים
כמובן שיש עוד דרכים אך בגלל שאני עובד עם VSC היה לי מאוד נוח גם לצפות שם בלוג.
גם כאן הקרדיט הוא לא לי, מצאתי מדריך מאוד פשוט ומדוייק (לינק בהמשך).
קודם כל למי שלא מופיעה לו ב- SAMBA תיקיית openHAB-logs, סביר להניח שההגדרה נמצאת אבל סומנה כהערה (כך זה היה אצלי).
יש להיכנס לקובץ ההגדרה של SAMBA:

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

sudo nano /etc/samba/smb.conf
לגלול למטה עד שמגיעים ל- [openHAB-logs] ולמחוק את סימן ההערה ";" בתחילת כל השורות הרלוונטיות.
ואם אתם כבר כאן, תבצעו את הצעד הראשון במדריך מהלינק והוא להוסיף לחלק הזה את השורה הבאה:

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

opslock = false
בסופו של דבר זה אמור להיראות משהו בסגנון הזה:

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

[openHAB-logs]
  comment=openHAB log files
  path=/var/log/openhab
  writeable=yes
  public=no
  create mask=0664
  directory mask=0775
  veto files = /Thumbs.db/.DS_Store/._.DS_Store/.apdisk/._*/
  delete veto files = yes
  opslock = false
היתר מופיע בלינק:
https://community.openhab.org/t/howto-w ... ian/110864
המדריך עושה שימוש בתוסף ל- VSC שנקרא Log Viewer. שימו לב רק לעדכן בהגדרה של התוסף את ה- IP של המערכת שלכם וכן להוסיף הגדרה לכל קובץ לוג נוסף שתרצו לצפות בו.


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


שימוש נעים.

jagheadg
חבר ותיק
חבר ותיק
הודעות: 1148
הצטרף: דצמבר 2010
מיקום: כפר הדרדסים
נתן תודות: 52 פעמים
קיבל תודות: 112 פעמים

Re: מדריך: OpenHAB- יצירת קובץ לוג אישי

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

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

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

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

Re: מדריך: OpenHAB- יצירת קובץ לוג אישי

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

@jagheadg
תודה על התגובה.

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

שאלה על זה- האם אתה משתמש בבוטים שונים או מגדיר לבוט אחד חיבור לכמה chat ids?
לא הצלחתי לעבוד בצורה חלקה עם כמה chat ids על אותו בוט ואני תוהה אם עוד אנשים נתקלו בקשיים שם.

אגב לגבי ההערה על גרסה 3-
אני לגמרי יכול להבין את הראציונל של להישאר עם גרסה יציבה. זה אחד היתרונות של OH על פני HA לתפיסתי. ובאמת אין מה לרוץ לשדרג למי שאין יכולת ספציפית שחסרה ב 2 ושנכנסה ב 3.
אישית אני גם רצתי הרבה זמן עם שתי מערכות במקביל ולא כיביתי את OH2 לפני שהרגשתי שלם לגמרי עם הגרסה החדשה.
אם מישהו צריך סיוע במעבר לגרסה החדשה- אשמח לסייע.

jagheadg
חבר ותיק
חבר ותיק
הודעות: 1148
הצטרף: דצמבר 2010
מיקום: כפר הדרדסים
נתן תודות: 52 פעמים
קיבל תודות: 112 פעמים

Re: מדריך: OpenHAB- יצירת קובץ לוג אישי

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

@chenta .
אני משתמש בבוטים שונים למטרות שונות.
היתרון בבוטים שונים הוא שאפשר בטלפון לכבות את ההתראות לבוט מסויים שלא מעוניינים לקבל עליו התראות כי הוא לדוגמה סתם לוג ארועים.

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

Re: מדריך: OpenHAB- יצירת קובץ לוג אישי

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

@jagheadg
שיטה מעניינת. תודה על הרעיון...

עכשיו אני מחפש דרך טובה לפרסר ולהציג נתונים מעניינים מתוך הלוג.
יצא לי להתחיל להתעסק עם HA קצת ויש שם פיצ'ר נחמד מאוד שמראה בצורה גרפית את ה- state של כל entity (המקבילה של item ה- HA) על ציר הזמן.
משהו שחסר לי ב- OH.
אם מישהו עשה משהו דומה או מבין בזה ויש לו כיוון אמשח לשמוע....

jagheadg
חבר ותיק
חבר ותיק
הודעות: 1148
הצטרף: דצמבר 2010
מיקום: כפר הדרדסים
נתן תודות: 52 פעמים
קיבל תודות: 112 פעמים

Re: מדריך: OpenHAB- יצירת קובץ לוג אישי

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

למה לא פשוט לעשות chart:

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

Chart item=<item> label="label" period=D refresh=600000 legend=true service="influxdb"

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

Re: מדריך: OpenHAB- יצירת קובץ לוג אישי

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

chart יתאים ל- items שיש להם ערך מספרי.
זה לא יתאים למתגים ומחרוזות למשל.

jagheadg
חבר ותיק
חבר ותיק
הודעות: 1148
הצטרף: דצמבר 2010
מיקום: כפר הדרדסים
נתן תודות: 52 פעמים
קיבל תודות: 112 פעמים

Re: מדריך: OpenHAB- יצירת קובץ לוג אישי

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

לא ניסיתי אבל להערכתי אפשר ליצור item אחר מקביל עם מיפוי (קובץ map transform) של נגיד on/off למספר 0/1 ואז להציג אותו.

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

Re: מדריך: OpenHAB- יצירת קובץ לוג אישי

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

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

שלח תגובה

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