עזרה ב - PLEG בנושא Schedule

בית חכם, עוזרות חכמות, חשמל חכם, מערכות שליטה ובקרה, Amazon Echo, Alexa, Google home, Control4, RTI, מנעולים חכמים ועוד.
שלח תגובה
iftsha פותח השרשור
חבר שרק התחיל
חבר שרק התחיל
תגובות: 4
הצטרף: יוני 2018
נתן תודות: 4 פעמים
קיבל תודות: 0

שליחה #1 

דיי חדש מאוד בתחום (post ראשון :) )

עם Vera Edge,


כל שאני מנסה להגדיר הנו Schedule שיקרא נתונים מחיישני טמפרטורה ויעדכן פקד של MultiString, דיי פשוט לא?


להלן הפרטים, אשמח מאוד לכל עזרה שבנושא:

1. ה- Schedule מוגדר לבצע חזרה כל 3 דקות להלן:


(type= interval, ontime= 00:03:00, name= s_check_temp )


2. ה- Condition מוגדר לבדוק את התנאי של ה – Scheduler להלן:


(name= c_ac_status, code= s_check_temp)

3. ה- Action סך הכל אמור לרוץ שה- condition הוא ב- true (כך הבנתי) קרי כל 3 דקות,

הוא אמור לבצע כתיבה של ערך הטמפרטורה באמצעות property שהוגדר עבור חיישן הטמפרטורה להלן:


When condition " c_ac_status" = true


Indicator[55] , Action= SetVariable1, Value= {(p_ac_temp)}


(ניסיתי עם allow logic expression ובלעדיו)
ה- indicator[55] הוא מסוג MultiString control




ממצאים עד כה,

· ה- Scheduler מתעדכן באופן קבוע בזמן שנקבע כל 3 דקות

· אתחול של LUA באמצעות PLEG לעיתים עוזר ומבצע את הכתיבה.

· הרצה של ה- Action באופן ידני באמצעות PLEG לעיתים עוזרת...

· שמתי לב שה- Condition תקוע ואינו מתעדכן קרי Last True תקוע על שעה אחורה לא 3 דקות כפי שהבנתי שצריך להיות, ביצעתי restart ל- Vera וזה אמנם רץ פעם אחת ואחר כך שוב נתקע.

· יש לציין שגם שהתחלתי לתחקר את העניין לפני מספר ימים היה ניראה שה- Condition כן מתעדכן אבל אז ה- Action לא ייצא לפועל.



אשמח מאוד לעזרתכם האדיבה,
תודה :)

נ.ב האם ניתן להוסיף שעה ותאריך לפקד MultiString בתוספת למשתנה לדוגמה ?

{(p_ac_temp)} time {(NOW)}

או האם יש דרך אחרת לציין גם את שעת קריאת הנתון מהחיישן...

cafri
חבר ותיק
חבר ותיק
תגובות: 1137
הצטרף: נובמבר 2009
נתן תודות: 120 פעמים
קיבל תודות: 144 פעמים

שליחה #2 

האם הגדרת את הCondition עם Repeat?

לגבי שמירת שעת העדכון בMultiString, תוכל לשמור אותה בשדה נוסף.

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

iftsha פותח השרשור
חבר שרק התחיל
חבר שרק התחיל
תגובות: 4
הצטרף: יוני 2018
נתן תודות: 4 פעמים
קיבל תודות: 0

שליחה #3 

@cafri
·
הי ותודה על התגובה המהירה,

ניסיתי להגדיר את ה- Condition עם Repeat וגם ללא Repeat, אך זה לא הועיל.
לגבי שמירת זמן, ניסיתי לשמור את הזמן בשדה נוסף אבל ה- Syntax שניסיתי לא עבד
להלן:
1. {(NOW)}
2. NOW

האם יש Syntax שונה או יש דרך אחרת ?

בנוסף, ניראה לי שהעניין הולך ומסתבך...
מסתבר שה- Conditions לא עובדים בשום אופן, יש לי שתי Instance של PLEG שמפרידים בין סוגי פעילויות שונות ולאחר יצירת condition חדש עם scheduler חדש בשני ה- PLEGS השונים, ניראה שהם פשוט לא מתעדכנים כלל (למעט מצב שבו אני מבצע אתחול למנוע ה- LUA בתוך ה- PLEG או Restart מלא ל- VERA וגם זה קורה רק פעם אחת). אני מניח שהם לא מגיעים למצב של true ולפיכך גם ה- Action לא מפועלים גם כן...



האם יש לך עצה טובה איך להתמודד עם הנושא זה?

איך בכלל עושים Debug ? ראיתי שיש קובץ לוג אבל לבצע debug מקבצי לוג זה מרגיש ממש לא ידידותי.

האם אין ל- PLEG אפשרות לבדוק פרמטרים ב- Live כמו Console או משהו דומה?


חשבתי לגבות את ה- PLEG להסיר ולהתקין מחדש, דעתך?

הסיבה הנה הפעלה וכיבוי מזגן שמצב הכיבוי וההדלקה הוא זהה (אלקטרה) קרי אין לי State, אני הנחתי בתוך השרוול של המזגן מד טמפרטורה פשוט שעובד עם 433MHz וכך אני מקבל בזמן קצר (כל דקה) אינדיקציה האם המזגן עובד או לא עובד (יחסי הטמפרטורה בשרוול המזגן הם 5 עד 13 מעלות בקיץ והשינויים הם כאלו שניתן לקבוע כמעט באופן חד משמעי האם הזמגן דולק או מכובה) ועל פי הנתון הנ"ל אני יכול להפעיל תרחישים שונים. הקריאה של הנתון לתוך פקד טקטס נועדה לשם משהו אחר אבל משם הבנתי שיש לי בעיה עם ה- Condition events....


מצטער על השאלות הרבות :o

תודה רבה.

cafri
חבר ותיק
חבר ותיק
תגובות: 1137
הצטרף: נובמבר 2009
נתן תודות: 120 פעמים
קיבל תודות: 144 פעמים

שליחה #4 

וואוו - העלית הרבה נושאים:
1. שמירת זמן בMultiString
2. שילוב של שני PLEGs
3. איך עושים Debug

הוא ננסה לבודד בעיות, ו"להתעסק" רק עם PLEG אחד.

לגבי Debugging, כשאתה נכנס למצב Edit בPLEG, תחת תפריט Editor Options יש לך אפשרות של Status Report. כל פעם שאתה "מפיק דוח", אתה מקבל את הנתון העדכני (ואת זה שלפני השינוי האחרון) של כל פריט שהגדרת.

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

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

דרך אגב, אחרי שתשמור את הטמפרטורה בMultiString כל 3 דקות - מה תהיה הלוגיקה שתגדיר בשביל להחליט אם המזגן דולק או כבוי?
נסו למצוא תשובות לשאלות הקשורות לZ-Wave בשרשור הדביק שבראש הפורום
שתפו את הרעיונות שלכם בשרשור זה

iftsha פותח השרשור
חבר שרק התחיל
חבר שרק התחיל
תגובות: 4
הצטרף: יוני 2018
נתן תודות: 4 פעמים
קיבל תודות: 0

שליחה #5 

@cafri
·
הי,
אני אקרא על ה- MultiString
אם תצרף (או תשלח לי בהודעה פרטית) את הדוח מהPLEG שבו אתה מנסה להגדיר את הלוגיקה, אוכל לעבור עליו ולנסות לאתר את הבעיה.
...
כבר שולח בפרטי, תודה !


לגבי Debugging, כשאתה נכנס למצב Edit בPLEG, תחת תפריט Editor Options יש לך אפשרות של Status Report. כל פעם שאתה "מפיק דוח", אתה מקבל את הנתון העדכני (ואת זה שלפני השינוי האחרון) של כל פריט שהגדרת.
...
אכן מתוך ה- Status Report הגעתי למסקנה שיש לי בעיה ב- PLEG בעניין עדכון ה- Condition,
אני יודע כעת אחרי שיצרתי Condition ו Schedule חדשים ה- Condition החדשים הללו כנראה לא באמת Fired events....
אני מניח שפתרון לזה יביא את הפתרון שאני צריך......

חשבתי לגבות את ה- PLEG להסיר ולהתקין מחדש, דעתך? או יש דרכים אלגנטיות יותר ?
אני מניח שזו בעיה עמוקה יותר שקשורה בין ה PLEG ל Vera, אני אומנם מקווה שאני טועה :)

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

בהתחשב בבעיה הקודמת אזי עדכון הפרמטרים מתחלק ל - 2:
1. זה לא כותב כלום כי אני מניח שה- Condition לא מגיע למיצוי.
2. שזה כן כותב, כאשר לדוגמה אני מאתחל את מנוע ה - LUA, אזי זה אכן מעדכן את הערכים הנדרשים עבור property הרלוונטי כגון {(p_ac_temp)} שהוא הערך של הטמפרטורה הנוכחית של המזגן מתוך בקר הטמפרטורה הפנימית.
אולם שאני ניסיתי לשים את נתון הזמן הנוכחי קרי

{(NOW)} or NOW
...
קיבלתי את המחרוזת עצמה - NOW ולא את הזמן הנוכחי.

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


דרך אגב, אחרי שתשמור את הטמפרטורה בMultiString כל 3 דקות - מה תהיה הלוגיקה שתגדיר בשביל להחליט אם המזגן דולק או כבוי?
...
הלוגיקה הזו כבר מיושמת היום ללא MultiString (אותו אני צריך לדברים אחרים), כבר היום אני מקבל את הנתון מבקר טמפרטורה כפי שציינתי ומבצע תרחיש של בדיקת הטמפרטורה הפנימית של המזגן, אם היא מתחת ל 16 מעלות אזי אני מניח שהמזגן עובד אם מעל כנראה שלא, תרחיש עובד דיי בהצלחה כבר היום, יש תקלות אחרות בעניין הלוגיקה אבל אני מניח שזה בגלל חוסר ההשקעה שלי בכתיבת התרחישים ב- PLEG וגם כנראה בגלל חוסר הבנה את זה אני רוצה לשייך לעובדה שאני שאני ממש חדש בעניין :D
הסיבה הנה הפעלה וכיבוי מזגן שמצב הכיבוי וההדלקה הוא זהה (אלקטרה) קרי אין לי State, אני הנחתי בתוך השרוול של המזגן מד טמפרטורה פשוט שעובד עם 433MHz וכך אני מקבל בזמן קצר (כל דקה) אינדיקציה האם המזגן עובד או לא עובד (יחסי הטמפרטורה בשרוול המזגן הם 5 עד 13 מעלות בקיץ והשינויים הם כאלו שניתן לקבוע כמעט באופן חד משמעי האם הזמגן דולק או מכובה) ועל פי הנתון הנ"ל אני יכול להפעיל תרחישים שונים
...
שוב תודה !!!

iftsha פותח השרשור
חבר שרק התחיל
חבר שרק התחיל
תגובות: 4
הצטרף: יוני 2018
נתן תודות: 4 פעמים
קיבל תודות: 0

שליחה #6 

@cafri
·
לצערי אני לא יכול לשלוח לך הודעה בפרטי בגלל מגבלות האתר


משתמשים חדשים אינם יכולים לשלוח הודעות פרטיות
...
:cry:

שלח תגובה

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