יש לי במטבח גוף תאורת חירום גדול של 120 לדים ובכל חורף אני מגלה שהמצברים התרוקנו ואי אפשר להטעין אותם מחדש. כמובן שמקור הבעיה זה אני שעצלן ולא עוקב אחר ההוראות המנחות לפרוק את הסוללות אחת ל 3 חודשים כדי לשמור על תקינות ההטענה.
אבל בשביל מה יש בית חכם אם זה לא בשביל לדאוג לכל המטלות המייגעות האלו? כל מה שצריך זה שקע חכם, חיבור למערכת בית חכם וכמה שורות קוד.
ראשית, אנחנו צריכים שקע חכם. היה לי שקע Z-Wave שפעם חובר למנורת לילה והחלטתי שהוא יהיה מעולה למטרה שלי.
[imgurpng]AYOjmwu[/imgurpng]
אחר כך צריך להחליט באיזה תדירות לפרוק את מצבר התאורה ולכמה זמן. שרירותית החלטתי שפעם בחודש נפסיק את החשמל לאותו שקע שאליו התאורה מחוברת למשך 4 שעות, לדעתי זה די והותר ולכן גם נבחר יום ושעה שבהם הדלקת תאורת החירום לא תפריע לאף אחד - נניח ביום שבת בשעה 5 בבוקר.
לשקע עצמו אין שום פרמטרים המגדירים תזמונים, מכאן שצריך כבר לכתוב קצת קוד. אני עובד עם openHAB אבל העקרון אמור להיות אפשרי ליישום בכל מערכת שיש לה שפת סקריפט לכתיבת חוקים. אז בוא נתחיל:
ראשית קביעת התדירות, את זה נעשה באמצעות פקודת cron
קוד: בחירת הכל
rule "Emergency Lights Schedule"
when
Time cron "0 0 5 ? * 7L *" // At 05:00:00am, the last Saturday of the month, every month
קוד: בחירת הכל
then
// 1. determine if you need to run at all and if not exit
if (EmergencyLamp.state == OFF ) {
logInfo("Emergency Light.rule", "The emergency power outlet is already switched off. No further action.")
return;
}
ה Emergency4H הוא סוויץ וירטואלי המחובר לטיימר (קיים ב openHAB תחת Expiry Binding) שלו אפשר לקבוע משך זמן שבו הסוויץ פעיל. במקרה שלי מדובר בטיימר של 4 שעות.
ועכשיו ההפעלה של הטיימר:
קוד: בחירת הכל
Emergency4H.sendCommand(ON)
logInfo("Emergency Light.rule","A command to switch off the power outlet for 4Hr was sent")
מהרגע שהסוויץ הווירטואלי החליף מצב, כל מה שנותר לנו לעשות זה לזהות את החלפת המצב ולנתק את אספק החשמל לגוף התאורה אם הטיימר במצב ON ולהחזיר את אספקת החשמל לגוף התאורה ברגע שהטיימר מסיים וחוזר ל OFF.
קוד: בחירת הכל
rule "Switch OFF the emergency power outlet"
when
Item Emergency4H changed to ON//Watch when the emergency power outlet OFF timer is switched to ON for 240 minutes by the expire binding
then
Emergency4H.sendCommand(OFF)
end
rule "Switch ON the emergency power outlet"
when
Item Emergency4H changed to OFF//Watch when the emergency power outlet OFF timer is switched back to OFF by the expire binding
then
EmergencyLamp.sendCommand(ON)
end


