מאמרים אחרונים

שתף בפייסבוק שיתוף בפייסבוק
RSS - מאמריםמאמרים
RSS - פורומיםפורומים
דווח למנהל דיווח למנהל
קישור לעמוד זה קישור לעמוד זה
עוד בקבוצת HT



שרשור PLEG - בעברית (Program Logic Event Generator)


עמוד 1 מתוך 11
עבור לעמוד  1  |  2  |  3  | ... |  9  |  10  |  11  |  הבא 
   פורומים > HT Home > עוזרות קוליות, שליטה ובקרה
מחבר הודעה
R-יק
חבר פעיל במיוחד
חבר פעיל במיוחד

הצטרף בתאריך:
  Nov 02, 2009
הבעות תודה: 45
מספר הודעות: 518

 #1  נשלח: שבת 17/10/2015 21:42
שרשור PLEG - בעברית (Program Logic Event Generator)

חשבתי שנפתח דיון כזה שיהיה בעברית...
כאן אפשר לשאול שאלות ולהתייעץ על השימוש/ייעול/יישום בPLEG
פרופיל | שלח הודעה | חפש
R-יק
חבר פעיל במיוחד
חבר פעיל במיוחד

הצטרף בתאריך:
  Nov 02, 2009
הבעות תודה: 45
מספר הודעות: 518

 #2  נשלח: שבת 17/10/2015 22:02
Re: שרשור PLEG - בעברית (Program Logic Event Generator)

ואני אתחיל

איך אני משתמש ב"שעה" בתנאים?

לדוגמא:
אני רוצה ליצור תנאי כזה (NOW > 23:00) AND (LR_BigDoor EQ 0)

תנאי השעה לא עובד לי...
איך אני מגדיר שהשעה אחרי 23:00?
פרופיל | שלח הודעה | חפש
cafri
חבר ותיק
חבר ותיק

הצטרף בתאריך:
  Nov 23, 2009
הבעות תודה: 144
מספר הודעות: 1136

 #3  נשלח: שבת 17/10/2015 22:11
Re: שרשור PLEG - בעברית (Program Logic Event Generator)

R-יק כתב:
ואני אתחיל

איך אני משתמש ב"שעה" בתנאים?

לדוגמא:
אני רוצה ליצור תנאי כזה (NOW > 23:00) AND (LR_BigDoor EQ 0)

תנאי השעה לא עובד לי...
איך אני מגדיר שהשעה אחרי 23:00?

בשביל לבדוק שרצף תנאים קרו אחד אחרי השני, מפרידים עם נקודה-פסיק:
קוד:

(23:00:00;NOW) AND (LR_BigDoor EQ 0)

כלומר, התנאי הנ"ל בודק שNOW קרה אחרי ש23:00:00 קרה.
הערה: התנאי הנ"ל יתקיים רק בין 23:00:00 ל23:59:59. זה באמת מה שאתה רוצה שיקרה?

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

(Action1;Action2>23:00)

יבדוק אם Action2 קרה יותר מ23 דקות אחרי Action1.

דרך אגב, שים לב שהפורמט לזמן הוא HH:MM:SS.
אם אתה כותב רק "שני חלקים" (למשל 23:00) המשמעות היא 23 דקות, ולא 23 שעות.

_________________
נסו למצוא תשובות לשאלות הקשורות לZ-Wave בשרשור הדביק שבראש הפורום
שתפו את הרעיונות שלכם בשרשור זה


נערך בפעם אחרונה על-ידי cafri בתאריך ד' 18/11/2015 12:39, נערך סך הכל פעם אחת
פרופיל | שלח הודעה | חפש
cafri
חבר ותיק
חבר ותיק

הצטרף בתאריך:
  Nov 23, 2009
הבעות תודה: 144
מספר הודעות: 1136

 #4  נשלח: א' 18/10/2015 0:40

דרך אגב, בהנחה שאתה רוצה שהתנאי יתקיים רק כאשר LR_BigDoor הופך לאפס אחרי השעה 23:00:00, הדרך הנכונה לעשות זאת היא:
קוד:

(23:00:00;LR_BigDoor) AND (LR_BigDoor EQ 0)


ההבדל:
במקרה ש LR_BigDoor הופך לאפס בשעה 22:30 ונשאר כך עד 23:30, התנאי הזה לא יתקיים, משום ש LR_BigDoor שינה מצב לפני 23:00:00.

לעומת זאת, כאשר תגיע השעה 23:00:00, התנאי מההודעה הקודמת כן יתקיים:
קוד:

(23:00:00;NOW) AND (LR_BigDoor EQ 0)

משום שNOW קרה אחרי 23:00:00.

_________________
נסו למצוא תשובות לשאלות הקשורות לZ-Wave בשרשור הדביק שבראש הפורום
שתפו את הרעיונות שלכם בשרשור זה


נערך בפעם אחרונה על-ידי cafri בתאריך ד' 18/11/2015 12:39, נערך סך הכל פעם אחת
פרופיל | שלח הודעה | חפש
R-יק
חבר פעיל במיוחד
חבר פעיל במיוחד

הצטרף בתאריך:
  Nov 02, 2009
הבעות תודה: 45
מספר הודעות: 518

 #5  נשלח: א' 18/10/2015 11:07

cafri
·

תודה רבה על ההסבר המפורט!
זה מאוד עזר לי להבין

אני צריך להזכר שוב מה הייתה המטרה של התנאי הזה... ואז אכתוב אותו מחדש...
פרופיל | שלח הודעה | חפש
cafri
חבר ותיק
חבר ותיק

הצטרף בתאריך:
  Nov 23, 2009
הבעות תודה: 144
מספר הודעות: 1136

 #6  נשלח: א' 18/10/2015 18:49

השרשור הזה הוא רעיון מעולה.

הוספתי לינק אליו מהשרשור הדביק.

כמו-כן, שווה לתעד את הדוגמה הזאת.

_________________
נסו למצוא תשובות לשאלות הקשורות לZ-Wave בשרשור הדביק שבראש הפורום
שתפו את הרעיונות שלכם בשרשור זה


נערך בפעם אחרונה על-ידי cafri בתאריך ד' 18/11/2015 12:38, נערך סך הכל פעם אחת
פרופיל | שלח הודעה | חפש
cafri
חבר ותיק
חבר ותיק

הצטרף בתאריך:
  Nov 23, 2009
הבעות תודה: 144
מספר הודעות: 1136

 #7  נשלח: א' 15/11/2015 18:54
לוגיקות לדוד

נתבקשתי על-ידי R-יק לשתף כיצד הגדרתי בPLEG את הלוגיקות הנוגעות לדוד.

הלוגיקה שהגדרתי אצלי (קצת שונה מהתכנון המקורי, כמו שמופיע בלינק):

cafri כתב:
מכיוון שהמחיר של שני המודולים זהה, אני הזמנתי מודול 2x1.5K.
מכיוון שאין לי מתג תאורה או מכשיר סמוך אחר שאני אוכל להעביר חיווט מהמפסק שלו למפסק של הדוד, אני מתכנן לעשות שימוש ביכולת ה"כפולה" של המודול באופן הבא:

הראשון ישמש למיתוג המגען, שיפעיל ויכבה את הדוד.
השני ישמש לבצע "הארכה" של זמן ההדלקה, ב"כפולות" של 10 דקות.

כל הדלקה של הדוד תכובה אוטומטית על-ידי הVera לאחר זמן מוגדר מראש:
* הדוד נדלק אוטומטית כל יום בשעה 06:00 (להתארגנויות בוקר) למשך 20 דקות
* הדוד נדלק אוטומטית כל יום בשעה 18:00 (למקלחות ילדים): בקיץ למשך 30 דקות, בחורף למשך שעה.
* הדוד נדלק אוטומטית כל יום בשעה 20:00 (למקלחות הורים): בקיץ למשך 20 דקות, בחורף למשך 40 דקות.
* כאשר מדליקים את הדוד ידנית, הוא נכבה כעבור 20 דקות.

כאמור, המתג השני משמש לביצוע "הארכות". באופן כזה, אם יש צורך להדליק את הדוד בקיץ ל70 דקות (משום שכל בני המשפחה יתקלחו בסמיכות), ניתן יהיה להדליק את הדוד (ל20 דקות) בעזרת הכפתור הראשון, וללחוץ 5 פעמים על הכפתור השני.
(50+20 = 70)

הנה המימוש בפועל:


Inputs - Triggers:
BoilerOn = Boiler (switch 1) is on
BoilerExtensionButtonPressed = Boiler Virtual Extension (switch 2) is turned on

Inputs - Schedules:
BoilerTimeAt0600 = Everyday at 05:45, Off type - Interval, Off time - 02:00
BoilerTimeAt1800 = Everyday at 18:00, Off type - Interval, Off time - 02:00
BoilerTimeAt2000 = Everyday at 20:00, Off type - Interval, Off time - 02:00
BoilerTimer = SelfReTrigger, Off type - Interval, Off time - 30:00 (Note: this is default value only)

Inputs - Device Properties:
BoilerExtensionsCounter = Multistring plugin, Variable 1

Conditions:
IncreaseBoilerExtensionCounter = (BoilerExtensionButtonPressed)

BoilerTimeMorning = (BoilerTimeAt0600) AND (Not(BoilerOn)) AND (!BoilerOn;BoilerTimeAt0600) AND (OnVacationStatus EQ "0")

BoilerTimeKids = (BoilerTimeAt1800) AND (Not(BoilerOn)) AND (!BoilerOn;BoilerTimeAt1800) AND (OnVacationStatus EQ "0")

BoilerTimeParents = (BoilerTimeAt2000) AND (Not(BoilerOn)) AND (!BoilerOn;BoilerTimeAt2000) AND (OnVacationStatus EQ "0")

BoilerTurnedOnWinter = (SummerTimeBoiler EQ "0") AND (BoilerOn) AND (SummerTimeBoiler;BoilerOn)

BoilerTurnedOnSummer = (SummerTimeBoiler EQ "1") AND (BoilerOn) AND (SummerTimeBoiler;BoilerOn)

ExtendBoilerTimer = (BoilerOn) AND (Not(BoilerTimer)) AND (BoilerOn;!BoilerTimer) AND (BoilerExtensionsCounter NE "0")

TurnBoilerOff = (BoilerOn) AND (Not(BoilerTimer)) AND (BoilerOn;!BoilerTimer) AND (BoilerExtensionsCounter EQ "0")

BoilerTurnedOff = (Not(BoilerOn))


Actions:
IncreaseBoilerExtensionCounter:
Multistring, SetVariable1 = {(BoilerExtensionsCounter+1)}
Boiler Virtual Extension Switch, SetTarget = 0
קוד:
local MultiStringDeviceID = 56


local t = luup.variable_get("urn:upnp-org:serviceId:VContainer1","Variable3", MultiStringDeviceID)

t = t + 600    -- add 10 minutes
luup.call_action("urn:upnp-org:serviceId:VContainer1", "SetVariable2", {newVariable2=tostring(t)}, MultiStringDeviceID)

luup.variable_set("urn:upnp-org:serviceId:VContainer1", "Variable3", tostring(t), MultiStringDeviceID)


BoilerTimeMorning:
Boiler, SetTarget = 1

BoilerTimeKids:
Boiler, SetTarget = 1

BoilerTimeParents:
Boiler, SetTarget = 1

BoilerTurnedOnWinter:
PLEG, StartTimer, timerName = BoilerTimer, intervalTime={(BoilerTimeAt1800 ? "60:00" : (BoilerTimeAt2000 ? "40:00" : "20:00"))}
קוד:
local MultiStringDeviceID = 56

local tt = os.time()

local ExtensionsCounter = luup.variable_get("urn:upnp-org:serviceId:VContainer1", "Variable1", MultiStringDeviceID)

if (BOILERTIMEAT1800.state) then
   tt = tt+3600    -- add 60 minutes
elseif (BOILERTIMEAT2000.state) then
   tt = tt+2400    -- add 40 minutes
else
   tt = tt+1200    -- add 20 minutes
end

tt = tt + (600 * ExtensionsCounter)    -- add 10 minutes per Extension

luup.call_action("urn:upnp-org:serviceId:VContainer1", "SetVariable2", {newVariable2=tostring(tt)}, MultiStringDeviceID)

luup.variable_set("urn:upnp-org:serviceId:VContainer1", "Variable3", tostring(tt), MultiStringDeviceID)


BoilerTurnedOnSummer:
PLEG, StartTimer, timerName = BoilerTimer, intervalTime={(BoilerTimeAt1800 ? "30:00" : "20:00")}
קוד:
local MultiStringDeviceID = 56

local tt = os.time()

local ExtensionsCounter = luup.variable_get("urn:upnp-org:serviceId:VContainer1", "Variable1", MultiStringDeviceID)

if (BOILERTIMEAT1800.state) then
   tt = tt+1800    -- add 30 minutes
else
   tt = tt+1200    -- add 20 minutes
end

tt = tt + (600 * ExtensionsCounter)    -- add 10 minutes per Extension

luup.call_action("urn:upnp-org:serviceId:VContainer1", "SetVariable2", {newVariable2=tostring(tt)}, MultiStringDeviceID)

luup.variable_set("urn:upnp-org:serviceId:VContainer1", "Variable3", tostring(tt), MultiStringDeviceID)


ExtendBoilerTimer:
Immediate: PLEG, StartTimer, timerName = BoilerTimer, intervalTime=10:00
Delay 10 seconds: MultiString, SetVariable1 = {(BoilerExtensionsCounter-1)}

TurnBoilerOff :
Boiler, SetTarget = 0

BoilerTurnedOff:
MultiString, SetVariable2 = 0
MultiString, SetVariable2 = (Note: set to be empty)
MultiString, SetVariable3 = (Note: set to be empty)


מספר הערות לגבי אלמנטים נוספים מעבר לPLEG:
1. אני משתמש במתגים וירטואליים (MultiSwitch Plugin) לניהול מצב שבו אנחנו בחופשה (ואז הדוד לא אמור לפעול בכלל). דוגמה לבדיקה כזו:
קוד:
OnVacationStatus EQ "0"	

2. אני משתמש בMultistring לניהול מספר ה"הארכות" שיש לבצע (משתנה 1) והשעה המיועדת לכיבוי הדוד (גם בתצורת HH:MM:SS הקריאה לבני-אדם (משתנה 2), וגם בתצורת epoch, הנוחה לביצוע חישובים (משתנה 3)).
יש צורך לבצע "איפוס ראשוני" של פרמטר 1, על-ידי כניסה לMultiString plugin, כתיבת 0 (אפס) עבור V1 Value ולחיצה על Set:



כמו-כן, בלשונית Advanced, בפרמטר Options יש לרשום CT2.

3. מכיוון שהלוגיקה כמו שכתבתי למעלה די מורכבת, ולא בטוח שקל להבין אותה "בפעם ראשונה", מחקתי ממנה דברים נוספים שיש אצלי, במטרה להקל על ההבנה:
א. אפשרות להדליק את הדוד על-ידי הגדרה בGoogle Calendar
ב. לפני הדלקת הדוד בשעה 18:00, בדיקה שהדוד לא הודלק ידנית מוקדם יותר, ובמידה והוא כן הודלק ידנית (סימן שהילדים כבר התקלחו) - הדוד לא ידלק בשעה 18:00.
אני מקווה שלא עשיתי טעויות במחיקה של הלוגיקות האלה.
אם מישהו ירצה להוסיפן ויצטרך עזרה - אוכל לשתף גם את זה.

עריכה: הוספתי להערה 2 מספר הגדרות שיש לבצע לMultiString plugin.

_________________
נסו למצוא תשובות לשאלות הקשורות לZ-Wave בשרשור הדביק שבראש הפורום
שתפו את הרעיונות שלכם בשרשור זה


נערך בפעם אחרונה על-ידי cafri בתאריך ג' 12/01/2016 10:23, נערך סך הכל פעם אחת
(1) הבעות תודה: R-יק
פרופיל | שלח הודעה | חפש
morgi23
חבר ותיק
חבר ותיק

הצטרף בתאריך:
  Nov 16, 2009
הבעות תודה: 148
מספר הודעות: 1192

 #8  נשלח: ה' 19/11/2015 0:54
בדיקת תנאי בשעה מסויימת ביום

cafri
בגלל שאתה מקבל אחוזים ב-PLEG , אני רוצה להתחיל להיכנס יותר לעומק.
כרגע יש אצלי רק לוגיקות בסיסיות ב-PLEG של and ו-or שיותר קל לכתוב שם.

אני מעוניין לבצע לוגיקה לתזמון זמן הדלקת הדוד בהתאם לעונות השנה ומצב העננות (בדומה למה שהציע bobhas בשרשור הזה).

הלוגיקה שאני מתכנן מורכבת משני משתנים שאותם אדגום פעם ביום בשעה 13:00:
- virtual switch למצב חורף או קיץ שמשנה את מצבו בהתאם לטמפ' מינימלית + תאריך.
- מצב העננות שמורכב מ-3 אפשרויות - בהיר, מעונן או מעונן חלקית

על פי השילוב בין שני המשתנים הללו יקבע משך הדלקת הדוד (6 אופציות).

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

מה דעתך?
פרופיל | שלח הודעה | חפש
cafri
חבר ותיק
חבר ותיק

הצטרף בתאריך:
  Nov 23, 2009
הבעות תודה: 144
מספר הודעות: 1136

 #9  נשלח: ה' 19/11/2015 11:37
Re: בדיקת תנאי בשעה מסויימת ביום

morgi23
תחת Inputs אתה מגדיר Schedule באופן הבא:

Start Type = Day Of Week
Days = All days (or whatever you want)
Time = At a certain time of day
Hours = 13
Minutes = 00
Seconds = 00
Random on Delay = (empty)
Stop Type = Interval
After = 00:02:00 (2 minutes, or something similar)
Random off Delay = (empty)


לאחר הגדרת הנ"ל אתה יוצר Condition, שאחד התנאים בו הוא שהSchedule הנ"ל מתקיים (פשוט מוסיף AND ואת שם הSchedule).

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

שים לב שהמקרה היחיד שבו גם הPLEG לא מתגבר על אתחולים / הפסקות חשמל הוא כאשר מוגדר תזמון "מדוייק".
זאת הסיבה שלגבי "סיום Schedule" מומלץ להשתמש בInterval ולא ב"At a certain time of dat".

הדרך לנסות להתגבר על זה (או לפחות להקטין את הסיכון), אם יש לך Schedule שהוא מאוד חשוב לך, הוא לייצר שני Schedules בהפרש מסויים, שאתה מניח שלא יהיה אתחול / הפסקה חשמל בשניהם (נניח אחד בשעה 13:00 ושני בשעה 14:00).

בCondition אתה יכול פשוט להוסיף את שניהם עם OR:
קוד:
ConditionName = ((Schedule1) OR (Schedule2)) AND (Whatever additional parameters)	

אולם השיטה הנ"ל תגרום לשתי "דגימות" (בשעה 13:00 ובשעה 14:00), במידה ואין אתחולים / הפסקות חשמל.

אם אתה רוצה למנוע מצב כזה (אני לא "הלכתי לשם"), אתה יכול להוסיף בדיקה שעבר פרק זמן מספיק ארוך בין הSchedules. לדוגמה:
קוד:
ConditionName = ((Schedule1) OR ((Schedule2) AND (Schedule1;Schedule2>01:05:00)) AND (Whatever additional parameters)	

באופן כזה:

* אם לא יהיו בעיות בכלל
- בשעה 13:00 Schedule1 היה חיובי וגרם לCondition להתקיים.
- בשעה 14:00 Schedule2 היה חיובי, אבל ההפרש בין 14:00 ל13:00 קטן משעה ו-5 דקות, ולכן הConditoin לא יתקיים.

* אם בשעה 13:00 הבקר לא פעל (אתחול / הפסקה חשמל):
- בשעה 13:00 Schedule1 לא היה חיובי (וגם לא מאוחר יותר, כאשר הבקר חזר לפעילות תקינה).
- בשעה 14:00 Schedule2 היה חיובי, וההפרש בין 14:00 היום ל13:00 אתמול (הפעם האחרונה שSchedule1 היה חיובי) גדול משעה ו-5 דקות, ולכם הCondition כן יתקיים.

* אם בשעה 13:00 הבקר פעל ובשעה 14:00 לא פעל:
- בשעה 13:00 Schedule1 היה חיובי וגרם לCondition להתקיים.
- בשעה 14:00 Schedule2 לא היה חיובי (וגם לא מאוחר יותר, כאשר הבקר חזר לפעילות תקינה), כלומר הCondition לא יהיה חיובי שוב.

* אם הבקר לא יפעיל גם בשעה 13:00 וגם בשעה 14:00 הCondition לא יתקיים באותו יום.

_________________
נסו למצוא תשובות לשאלות הקשורות לZ-Wave בשרשור הדביק שבראש הפורום
שתפו את הרעיונות שלכם בשרשור זה
פרופיל | שלח הודעה | חפש
morgi23
חבר ותיק
חבר ותיק

הצטרף בתאריך:
  Nov 16, 2009
הבעות תודה: 148
מספר הודעות: 1192

 #10  נשלח: ה' 19/11/2015 12:23
Re: בדיקת תנאי בשעה מסויימת ביום

cafri כתב:
@morgi23
תחת Inputs אתה מגדיר Schedule באופן הבא:

Start Type = Day Of Week
Days = All days (or whatever you want)
Time = At a certain time of day
Hours = 13
Minutes = 00
Seconds = 00
Random on Delay = (empty)
Stop Type = Interval
After = 00:02:00 (2 minutes, or something similar)
Random off Delay = (empty)


לאחר הגדרת הנ"ל אתה יוצר Condition, שאחד התנאים בו הוא שהSchedule הנ"ל מתקיים (פשוט מוסיף AND ואת שם הSchedule).

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

שים לב שהמקרה היחיד שבו גם הPLEG לא מתגבר על אתחולים / הפסקות חשמל הוא כאשר מוגדר תזמון "מדוייק".
זאת הסיבה שלגבי "סיום Schedule" מומלץ להשתמש בInterval ולא ב"At a certain time of dat".

הדרך לנסות להתגבר על זה (או לפחות להקטין את הסיכון), אם יש לך Schedule שהוא מאוד חשוב לך, הוא לייצר שני Schedules בהפרש מסויים, שאתה מניח שלא יהיה אתחול / הפסקה חשמל בשניהם (נניח אחד בשעה 13:00 ושני בשעה 14:00).

בCondition אתה יכול פשוט להוסיף את שניהם עם OR:
ConditionName = ((Schedule1) OR (Schedule2)) AND (Whatever additional parameters)
אולם השיטה הנ"ל תגרום לשתי "דגימות" (בשעה 13:00 ובשעה 14:00), במידה ואין אתחולים / הפסקות חשמל.

אם אתה רוצה למנוע מצב כזה (אני לא "הלכתי לשם"), אתה יכול להוסיף בדיקה שעבר פרק זמן מספיק ארוך בין הSchedules. לדוגמה:
ConditionName = ((Schedule1) OR ((Schedule2) AND (Schedule1;Schedule2>01:05:00)) AND (Whatever additional parameters)
באופן כזה:

* אם לא יהיו בעיות בכלל
- בשעה 13:00 Schedule1 היה חיובי וגרם לCondition להתקיים.
- בשעה 14:00 Schedule2 היה חיובי, אבל ההפרש בין 14:00 ל13:00 קטן משעה ו-5 דקות, ולכן הConditoin לא יתקיים.

* אם בשעה 13:00 הבקר לא פעל (אתחול / הפסקה חשמל):
- בשעה 13:00 Schedule1 לא היה חיובי (וגם לא מאוחר יותר, כאשר הבקר חזר לפעילות תקינה).
- בשעה 14:00 Schedule2 היה חיובי, וההפרש בין 14:00 היום ל13:00 אתמול (הפעם האחרונה שSchedule1 היה חיובי) גדול משעה ו-5 דקות, ולכם הCondition כן יתקיים.

* אם בשעה 13:00 הבקר פעל ובשעה 14:00 לא פעל:
- בשעה 13:00 Schedule1 היה חיובי וגרם לCondition להתקיים.
- בשעה 14:00 Schedule2 לא היה חיובי (וגם לא מאוחר יותר, כאשר הבקר חזר לפעילות תקינה), כלומר הCondition לא יהיה חיובי שוב.

* אם הבקר לא יפעיל גם בשעה 13:00 וגם בשעה 14:00 הCondition לא יתקיים באותו יום.


תודה על התשובה המפורטת.
באופן כללי לא קריטי לי שהפעולה תידגם גם לאחר הפסקת חשמל או איתחול. מקסימום הדוד יפעל לפי הטיימר של היום הקודם.
בכל מקרה תודה על ההסבר, אני בטח אשתמש בזה בפעולות חשובות יותר בהמשך.
אתה יודע אולי מה קורה אם אני לא מגדיר זמן סיום ל-schedule?
פרופיל | שלח הודעה | חפש
cafri
חבר ותיק
חבר ותיק

הצטרף בתאריך:
  Nov 23, 2009
הבעות תודה: 144
מספר הודעות: 1136

 #11  נשלח: ה' 19/11/2015 12:31
Re: בדיקת תנאי בשעה מסויימת ביום

morgi23 כתב:
אתה יודע אולי מה קורה אם אני לא מגדיר זמן סיום ל-schedule?


זה יגרום לSchedule להיות חיובי מהפעם הראשונה שהוא קורה - לעולם.

אם יש Condition שמשתמש בSchedule, זה יגרום לCondition לקרות רק פעם אחת, אלא אם כן תסמן Repeat בCondition.

מתוך מסמך הPLEG Basics:

ציטוט:
If a Schedule does not have a Stop Type, it will not have an off event. Such a Schedule will only cause
the evaluation of a Condition in which it is used when it turns on and its state will, at that point,
always be true. If At0730 is a daily Schedule for 07:30 without a Stop Type, the Condition:

Morning At0730

will become true at 07:30 on the first day and stay that way forever. Any associated Action will only
fire on the first day. There are two ways around this: Check the Repeats option for the Condition so
that it will fire its Action each time At0730 becomes true; Add a Stop Type to At0730 – say an
Interval of one minute – so that it will re-evaluate the Condition when it turns off and set it to false.

There is an advantage in setting a Schedule’s Stop Type to Interval rather than an absolute time. If
PLEG happens to restart just before an absolute time, the stop event may not occur until the
following day. With an Interval, PLEG is able to recover from the restart and set the state of the
Schedule correctly.

_________________
נסו למצוא תשובות לשאלות הקשורות לZ-Wave בשרשור הדביק שבראש הפורום
שתפו את הרעיונות שלכם בשרשור זה
פרופיל | שלח הודעה | חפש
cafri
חבר ותיק
חבר ותיק

הצטרף בתאריך:
  Nov 23, 2009
הבעות תודה: 144
מספר הודעות: 1136

 #12  נשלח: ה' 19/11/2015 12:36
Re: בדיקת תנאי בשעה מסויימת ביום

morgi23 כתב:
באופן כללי לא קריטי לי שהפעולה תידגם גם לאחר הפסקת חשמל או איתחול. מקסימום הדוד יפעל לפי הטיימר של היום הקודם.

אני פועל בדיוק באותה דרך (לגבי ההחלטה לכמה זמן הדוד יפעל).

המקרה היחיד (שאני זוכר) שהגדרתי "גיבוי" של Schedule נוסף היה עבור הSchedules שמגדירים לי מעבר בין "מצב יום" ל"מצב לילה".

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

_________________
נסו למצוא תשובות לשאלות הקשורות לZ-Wave בשרשור הדביק שבראש הפורום
שתפו את הרעיונות שלכם בשרשור זה
פרופיל | שלח הודעה | חפש
morgi23
חבר ותיק
חבר ותיק

הצטרף בתאריך:
  Nov 16, 2009
הבעות תודה: 148
מספר הודעות: 1192

 #13  נשלח: ה' 19/11/2015 12:39
Re: בדיקת תנאי בשעה מסויימת ביום

cafri כתב:

ציטוט:
זה יגרום לSchedule להיות חיובי מהפעם הראשונה שהוא קורה - לעולם.

אם יש Condition שמשתמש בSchedule, זה יגרום לCondition לקרות רק פעם אחת, אלא אם כן תסמן Repeat בCondition.



הבנתי. זה מסביר הרבה בעיות שהיו לי עד עכשיו..
פרופיל | שלח הודעה | חפש
movieman
חבר מביא חבר
חבר מביא חבר

הצטרף בתאריך:
  Aug 02, 2011
הבעות תודה: 339
מספר הודעות: 4469

 #14  נשלח: ד' 25/11/2015 20:10

מכיוון שיש כאן דיון על PLEG - אני אנצל את זה לשאלה .

הגדרתי בבית סצינה שמופעלת בכל יום בשעה 18:00 ומדליקה כל מני אורות בבית בזמנים מסויימים על מנת שבמידה ואני לא בבית
עדיין זה ייראה כאילו יש מישהו בבית.

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

שם הסצינה הוא NIGHT.
יש לי VERA LITE עם UI5.
התנאים:
1. השעות שבהם הסצינה צריכה לפעול הינם : 18:00 עד לשעה 01:25.
2. הסצינה תפעל רק אם אין תזוזה כלשהי בית (בסלון במקרה הנ"ל) ב-45 הדקות האחרונות.
3. אם התגלתה תזוזה כלשהי , הסצינה מבוטלת ושוב נספרים 45 דקות.

מקרים שיכולים לקרות:
1. אם הגעתי הביתה מאוחר - נגיד בשעה 20:00 אז הסצינה אמורה לפעול וכשאני נכנס לסלון והחיישן מזהה תנועה - הוא מפסיק את הסצינה.
2. אם הגעתי הביתה - והסצינה הפסיקה ולאחר XXX זמן אני יוצא שוב מהבית - הסצינה תפעל שוב (כי לא תורגש תנועה אחרי שאני אצא).


התכנון הוא לשים 2-3 חיישנים של פיבארו ולהגדיר את הנ"ל .

אשמח לעזרת המומחים - עם הסבר מפורט .
פרופיל | שלח הודעה | חפש
cafri
חבר ותיק
חבר ותיק

הצטרף בתאריך:
  Nov 23, 2009
הבעות תודה: 144
מספר הודעות: 1136

 #15  נשלח: ד' 25/11/2015 20:35

תוכל להסביר בדיוק מה הסצינה עושה?

למה הכוונה ב״מדליקה כל מיני אורות בבית בזמנים מסויימים״?

_________________
נסו למצוא תשובות לשאלות הקשורות לZ-Wave בשרשור הדביק שבראש הפורום
שתפו את הרעיונות שלכם בשרשור זה
פרופיל | שלח הודעה | חפש
כל הזמנים הם שעון קיץ - ישראל (GMT+3) הצג הודעות קודמות:    
פורומים > עוזרות קוליות, שליטה ובקרה עבור לעמוד  1  |  2  |  3  | ... |  9  |  10  |  11  |  הבא 


  
    שם משתמש:
נתוני כניסה לכל אתרי HT:

  סיסמא:
 

  


 | 

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

תקנון / תנאי השימוש באתר צור קשר / contact us כל הזכויות שמורות לקבוצת ht