נפתר| 2 rules בOH3 לא עובדים

בית חכם, עוזרות חכמות, חשמל חכם, מערכות שליטה ובקרה, Amazon Echo, Alexa, Google home, Control4, RTI, מנעולים חכמים ועוד.
razserv2010 פותח השרשור
חבר פעיל במיוחד
חבר פעיל במיוחד
תגובות: 806
הצטרף: אוקטובר 2013
נתן תודות: 114 פעמים
קיבל תודות: 67 פעמים

שליחה #1 

אני צריך עזרה עם 2 מהrules לא עובדים, VS code לא מראה שגיאות ובכלל לא מראה שגיאות גם אם אני רושם בכוונה משהו לא תקין (הכוונה לקו האדום מתחת למילה)
בOH לא מראה שגיאות גם כן
הrules עבדו נהדר בOH2, רק עשיתי copy paste.
הrule הראשון זה מיקום דרך APP gps logger באנדרואיד, אני רואה במפה בOH שהטלפון זז אבל ITEM לא משתנה מON לOFF ונשאר תקוע על ON, בדקתי דרך Fake GPS ודרך זה הITEM כן משתנה לOFF כשאני בוחר מיקום מזוייף

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

val Number DistanceArrived = 150
val Number DistanceLeft = 150
val Number AccuracyThreshold = 200

/* sapir at home */
rule "sapir at home"
when
Item distanceHomesapir received update
then
	var Number distance = (distanceHomesapir.state as QuantityType<Number>).doubleValue
	var Number accuracy = (accuracysapir.state as QuantityType<Number>).doubleValue
	
if (accuracy < AccuracyThreshold) { // do only something if the accuracy is high enough
	if ((distance < DistanceArrived) && (sapirAtHome.state == OFF)) {
		sendCommand(sapirAtHome,ON)
	}
	else if ((sapirAtHome.state == ON) && (distance > DistanceLeft)) {
		sendCommand(sapirAtHome,OFF)

	}
}
end
הrule השני הוא שינוי של המנורה בחדר ממד שבין 7 בערב ל5 בבוקר אם המתג של המנורה משתנה לON אז בהירות והצבע שלה ישתנו ל70 אחוז,
ובשעות אחרות ישתנו ל100 אחוז

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

rule "now.getHourOfDay() >19 && now.getHourOfDay() <5"
when
    Item SecurityRoomLight_Switch changed to ON
then

 if   
        (now.getHourOfDay() > 19  &&  now.getHourOfDay() < 5)
          {
       SecurityRoomLightBulb_LightTemperature.sendCommand(70)
       SecurityRoomLightBulb_Brightness.sendCommand(70)
        }



else
{
    SecurityRoomLightBulb_LightTemperature.sendCommand(100)
   SecurityRoomLightBulb_Brightness.sendCommand(100)
}

end
נערך לאחרונה על ידי razserv2010 ב 18/05/2021 11:45, נערך פעם 1 בסך הכל.

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

Re: עזרה| 2 rules בOH3 לא עובדים

שליחה #2 

16/05/2021 11:17  
razserv2010 כתב:
הrule השני הוא שינוי של המנורה בחדר ממד שבין 7 בערב ל5 בבוקר אם המתג של המנורה משתנה לON אז בהירות והצבע שלה ישתנו ל70 אחוז,
ובשעות אחרות ישתנו ל100 אחוז
...
הי חבר,
לגבי החוק הראשון, לא זיהיתי משהו לא תקין בקוד.
כדי לבדוק איפה הכשל הייתי מציע לך להוסיף כמה שורות logInfo כדי לאתר את הבעיה.

כמה הצעות:
להוסיף שורה כזאת כשורה ראשונה לפני הכל:

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

logInfo(filename, "Distance Changed To: " + distanceHomesapir.state)
וזה יעזור לך להבין שבכלל הגיע עדכון ל- item וגם לראות מה הוא ולראות שהוא תקין.
אם תראה את הלוג הזה זה אומר שה- binding עובד, מגיע עדכון ולפי הערך תוכל לנסות להבין שהוא תקין.

אחרי זה הייתי מוסיף שורה כזאת לאחר חישוב ה- accuracy.

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

logInfo(filename, "Accuracy is: " + accuracy)
וזה יאפשר לך להבין שיש ערך תקין ב- item הזה ולהבין שהוא אכן אמור לגרום לחוק שלך לרוץ (כלומר קטן מהערך שרצית)

ובסוף הייתי מוסיף שורה בכל אחד מה- if-ים כדי שתוכל לוודא שמה שאמור לרוץ אכן רץ.

אם תראה משהו מוזר בלוג עדכן..

לגבי החוק השני,
הם שינו הרבה דברים שקשורים לחישוב זמנים ועכשיו הם משתמשים ב- JavaTime (לעומת JODA Time ב- OH2).
לדעתי כל מה שאתה צריך לשנות זה להחליף את getHourOfDay() ל- getHour()

תעדכן אם הסתדר...

razserv2010 פותח השרשור
חבר פעיל במיוחד
חבר פעיל במיוחד
תגובות: 806
הצטרף: אוקטובר 2013
נתן תודות: 114 פעמים
קיבל תודות: 67 פעמים

Re: עזרה| 2 rules בOH3 לא עובדים

שליחה #3 

16/05/2021 16:24  
chenta כתב:
16/05/2021 11:17  
razserv2010 כתב:
הrule השני הוא שינוי של המנורה בחדר ממד שבין 7 בערב ל5 בבוקר אם המתג של המנורה משתנה לON אז בהירות והצבע שלה ישתנו ל70 אחוז,
ובשעות אחרות ישתנו ל100 אחוז
...
לגבי החוק השני,
הם שינו הרבה דברים שקשורים לחישוב זמנים ועכשיו הם משתמשים ב- JavaTime (לעומת JODA Time ב- OH2).
לדעתי כל מה שאתה צריך לשנות זה להחליף את getHourOfDay() ל- getHour()

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

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

2021-05-16 18:10:39.959 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'testbutton' received command ON
2021-05-16 18:10:39.964 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'testbutton' changed from OFF to ON
2021-05-16 18:10:40.092 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'SecurityRoomLightBulb_LightTemperature' received command 100
2021-05-16 18:10:40.093 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'SecurityRoomLightBulb_LightTemperature' predicted to become 100
2021-05-16 18:10:40.096 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'SecurityRoomLightBulb_Brightness' received command 100
2021-05-16 18:10:40.098 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'SecurityRoomLightBulb_Brightness' predicted to become 100

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

Re: עזרה| 2 rules בOH3 לא עובדים

שליחה #4 

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

חסר משהו?

razserv2010 פותח השרשור
חבר פעיל במיוחד
חבר פעיל במיוחד
תגובות: 806
הצטרף: אוקטובר 2013
נתן תודות: 114 פעמים
קיבל תודות: 67 פעמים

Re: עזרה| 2 rules בOH3 לא עובדים

שליחה #5 

16/05/2021 18:15  
chenta כתב:
נראה שהכל תקין.
כלומר, נראה שזה עושה מה שרצית שזה יעשה, לא?
טמפרטורת הצבע והבהירות השתנו ל- 100.

חסר משהו?
...
הורדתי את הבהירות ל70 ואת השעה ל18 בשביל לבדוק אם זה עובד אבל זה לא עובד
ניסיתי לבדוק אולי יותר מדי פרמטרים מפריעים אז שינתי לזה: אבל גם לא עובד

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

rule "test"
when
   Item testbutton changed to ON
then

if   
        (now.getHour() > 18  ||  now.getHour() < 5)
          {
       SecurityRoomLightBulb_Brightness.sendCommand(70)
        }

end

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

Re: עזרה| 2 rules בOH3 לא עובדים

שליחה #6 

כרגע התנאי שלך לא אמור לפעול...
now.getHour יחזיר לך 18.
אז הוא לא גדול מ- 18 ולא קטן מ- 5.
או שתשנה ל- 17 רק כדי לבדוק, או שתוסיף = להשוואה ל- 18.

razserv2010 פותח השרשור
חבר פעיל במיוחד
חבר פעיל במיוחד
תגובות: 806
הצטרף: אוקטובר 2013
נתן תודות: 114 פעמים
קיבל תודות: 67 פעמים

Re: עזרה| 2 rules בOH3 לא עובדים

שליחה #7 

16/05/2021 18:25  
chenta כתב:
כרגע התנאי שלך לא אמור לפעול...
now.getHour יחזיר לך 18.
אז הוא לא גדול מ- 18 ולא קטן מ- 5.
או שתשנה ל- 17 רק כדי לבדוק, או שתוסיף = להשוואה ל- 18.
...
אתה תותח!!
הוספתי = ל18

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

Re: עזרה| 2 rules בOH3 לא עובדים

שליחה #8 

@razserv2010
בכיף!
עובד תקין עכשיו?
מה עם החוק של המיקום? מצאת מה לא עובד שם?

razserv2010 פותח השרשור
חבר פעיל במיוחד
חבר פעיל במיוחד
תגובות: 806
הצטרף: אוקטובר 2013
נתן תודות: 114 פעמים
קיבל תודות: 67 פעמים

Re: עזרה| 2 rules בOH3 לא עובדים

שליחה #9 

16/05/2021 21:49  
chenta כתב:
@razserv2010
בכיף!
עובד תקין עכשיו?
מה עם החוק של המיקום? מצאת מה לא עובד שם?
...
לא היה לי זמן לשבת על זה, אני יחזור הביתה ואני יכניס את הערכים שהצעת, יצא לסיבוב ויעדכן

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

Re: עזרה| 2 rules בOH3 לא עובדים

שליחה #10 

בהצלחה 😊

razserv2010 פותח השרשור
חבר פעיל במיוחד
חבר פעיל במיוחד
תגובות: 806
הצטרף: אוקטובר 2013
נתן תודות: 114 פעמים
קיבל תודות: 67 פעמים

Re: עזרה| 2 rules בOH3 לא עובדים

שליחה #11 

16/05/2021 21:56  
chenta כתב:
בהצלחה 😊
...
הbindibg עובד כי אני מסתכל בitems של הbinding והם משתנים לפי המיקום, אז את השני להוסיף ככה?

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

Re: עזרה| 2 rules בOH3 לא עובדים

שליחה #12 

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

razserv2010 פותח השרשור
חבר פעיל במיוחד
חבר פעיל במיוחד
תגובות: 806
הצטרף: אוקטובר 2013
נתן תודות: 114 פעמים
קיבל תודות: 67 פעמים

Re: עזרה| 2 rules בOH3 לא עובדים

שליחה #13 

@chenta
אני מקבל את השגיאה הזאת אבל זה המיקום של השורה שהוספתי

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

 Script execution of rule with UID 'raz_phone-1' failed: The name 'filename' cannot be resolved to an item or type; line 12, column 10, length 8 in raz_phone

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

Re: עזרה| 2 rules בOH3 לא עובדים

שליחה #14 

אויש... טעות שלי... זה מה שקורה כשאני עושה העתק והדבק בלי להסתכל... :?

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

razserv2010 פותח השרשור
חבר פעיל במיוחד
חבר פעיל במיוחד
תגובות: 806
הצטרף: אוקטובר 2013
נתן תודות: 114 פעמים
קיבל תודות: 67 פעמים

Re: עזרה| 2 rules בOH3 לא עובדים

שליחה #15 

16/05/2021 23:50  
chenta כתב:
אויש... טעות שלי... זה מה שקורה כשאני עושה העתק והדבק בלי להסתכל... :?

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

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

[INFO ] [g.openhab.core.model.script.presence] - Accuracy is: 1.0
והITEM distanceHomeraz מראה 8840km

הוספתי לthing גם מה שהצעת וזאת התוצאה:

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

 [WARN ] [el.core.internal.ModelRepositoryImpl] - Configuration model 'razphone.things' has errors, therefore ignoring it: [1,1]: no viable alternative at input 'logInfo'
[1,48]: no viable alternative at input 'distanceHomeraz'
[1,64]: no viable alternative at input 'state'

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

Re: עזרה| 2 rules בOH3 לא עובדים

שליחה #16 

@razserv2010
logInfo צריך להיות רק בחוקים, לא בהגדרת ה thing.

razserv2010 פותח השרשור
חבר פעיל במיוחד
חבר פעיל במיוחד
תגובות: 806
הצטרף: אוקטובר 2013
נתן תודות: 114 פעמים
קיבל תודות: 67 פעמים

Re: עזרה| 2 rules בOH3 לא עובדים

שליחה #17 

17/05/2021 8:53  
chenta כתב:
@razserv2010
logInfo צריך להיות רק בחוקים, לא בהגדרת ה thing.
...
צודק לא יודע מה עבר לי בראש שהנחתי את זה בthing

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

Re: עזרה| 2 rules בOH3 לא עובדים

שליחה #18 

התכוונתי שאני שם את השורה הזאת כשורה ראשונה בתוך החוק. לא בקובץ עצמו.
כלומר היא צריכה להיות השורה הראשונה לאחר then.

razserv2010 פותח השרשור
חבר פעיל במיוחד
חבר פעיל במיוחד
תגובות: 806
הצטרף: אוקטובר 2013
נתן תודות: 114 פעמים
קיבל תודות: 67 פעמים

Re: עזרה| 2 rules בOH3 לא עובדים

שליחה #19 

17/05/2021 13:35  
chenta כתב:
התכוונתי שאני שם את השורה הזאת כשורה ראשונה בתוך החוק. לא בקובץ עצמו.
כלומר היא צריכה להיות השורה הראשונה לאחר then.
...
הבנתי את הטעות ומיד תיקנתי, עכשיו עם הfake GPS הוא משנה את הסטטוס של ITEM יותר מהר, כנראה שהיה צריך להוסיף לו logInfo

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

Re: עזרה| 2 rules בOH3 לא עובדים

שליחה #20 

17/05/2021 13:38  
razserv2010 כתב:
כנראה שהיה צריך להוסיף לו logInfo
...
קשה לי להאמין שה- logInfo משפיע בצורה כלשהיא (לטובה) על התפקוד של החוק.
אבל אם זה עובד... :lol:

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

שלח תגובה

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