הרצת תרחיש באופן מותנה ב VERA

בית חכם, עוזרות חכמות, חשמל חכם, מערכות שליטה ובקרה, Amazon Echo, Alexa, Google home, Control4, RTI, מנעולים חכמים ועוד.
שלח תגובה
דומיקון פותח השרשור
סמל אישי של משתמש
עוסק בתחום
עוסק בתחום
תגובות: 886
הצטרף: מאי 2015
מיקום: מרכז השרון
נתן תודות: 50 פעמים
קיבל תודות: 146 פעמים

שליחה #1 

לשתף איתכם משהו שיישמתי כעת -
המטרה - לא להשקות את הגינה כשיש גשם

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

הביצוע-
הוספה של כפתור וירטואלי (VIRTUAL SWITH ) שנקרא "יורד גשם"
לכל תרחיש (SCENE ) מוסיפים קוד LUA - להלן

local dID = 326 -- Device ID of your VirtualSwitch
local allow = false -- true runs scene if switch is on, false blocks it
local status = luup.variable_get("urn:upnp-org:serviceId:VSwitch1","Status",dID)
return ((status == "1") == allow)


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

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

:)
דומיקון - בית ישראלי חכם יותר
נציגי חברת Vera Control LTD בישראל
הפתרון המלא לבית חכם ישראלי בטכנולוגיית Z-Wave בתדר 916 MHz באישור משרד התקשורת ומכון התקנים
http://www.domicon.co.il/

ido2017
חבר פעיל מאוד
חבר פעיל מאוד
תגובות: 142
הצטרף: אוגוסט 2017
נתן תודות: 5 פעמים
קיבל תודות: 1 פעם

שליחה #2 

יפהההה אהבתי !

rotbard
חבר פעיל מאוד
חבר פעיל מאוד
תגובות: 408
הצטרף: יולי 2017
נתן תודות: 14 פעמים
קיבל תודות: 24 פעמים

שליחה #3 

חפש Reactor פלאגאין
אפשר להריץ איתו תרחישים שונים בצורה גמישה
בלי לדעת "שפות זרות"
http://forum.micasaverde.com/index.php?topic=87484.0

דומיקון פותח השרשור
סמל אישי של משתמש
עוסק בתחום
עוסק בתחום
תגובות: 886
הצטרף: מאי 2015
מיקום: מרכז השרון
נתן תודות: 50 פעמים
קיבל תודות: 146 פעמים

שליחה #4 

ה REACTOR - התקנתי אותו... היה נראה לי קצת מורכב... אולי לא בדקתי לעומק מספיק.

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


local dID = 55 -- Device ID of your thermostatic/temperature sensor
local tLow = 55-- Lowest temperature of range
local tHigh = 1 -- Highest temperature of range
local allow = true -- true runs scene when in range, false blocks it
local tCurrent = tonumber((luup.variable_get("urn:upnp-org:serviceId:TemperatureSensor1","CurrentTemperature",dID)))
return (((tCurrent >= tLow) and (tCurrent <= tHigh)) == allow)
דומיקון - בית ישראלי חכם יותר
נציגי חברת Vera Control LTD בישראל
הפתרון המלא לבית חכם ישראלי בטכנולוגיית Z-Wave בתדר 916 MHz באישור משרד התקשורת ומכון התקנים
http://www.domicon.co.il/

Catskinner
סמל אישי של משתמש
חבר במועדון HT
חבר במועדון HT
תגובות: 16019
הצטרף: נובמבר 2006
מיקום: הוד השרון
נתן תודות: 123 פעמים
קיבל תודות: 940 פעמים

שליחה #5 

אני עושה דברים מאוד דומים ב openHAB כדי להפעיל את הבויילר בבקרים. הנה חלק מהקוד, אולי תוכלו לקבל ממנו רעיונות למרות ששפת התכנות כמובן שונה.

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

rule "Automate Boiler for Claude"
when
	Time cron "0 0-15 5-5 ? * SUN,MON,TUE,WED,THU *"   // every minute between &#58;00 and &#58;15, every hour between 02am and 02am UTC &#40;05&#58;00 local time&#41;, on every Sunday, Monday, Tuesday, Wednesday and Thursday, every month
then
	// 1. determine if you need to run at all and if not exit
    if &#40;ClaudeHome.state == OFF&#41; &#123;
        logInfo&#40;"boiler.rules", "Claude isn't home. No further action."&#41;
        return;
	&#125;
	if  &#40;&#40;Netatmo_Outdoor_Temperature.state as DecimalType&#41;.intValue > 25.5&#41; &#123;
		logInfo&#40;"boiler.rules", "Current outside temperature &#40;" + Netatmo_Outdoor_Temperature.state.toString + "C&#41; is higher than 25.5C. No further action."&#41;	
		return;
	&#125;	
	if &#40;Boiler.state == ON&#41; &#123;
        logInfo&#40;"boiler.rules", "The boiler is alreay switched on. No further action."&#41;
        return;
	&#125;
	if &#40;AutBoiler.state == OFF&#41; &#123;
        logInfo&#40;"boiler.rules", "The boiler automation is switched off. No further action."&#41;
        return;
	&#125;
	
	// 2. calculate what needs to be done
    var Number newState
    if &#40;Boiler.state != ON&#41; &#123;
        newState=ON // Set a local variable to use later every minute to check that the boiler is still on
   	&#125;
    if &#40;newState == ON && Boiler.state == ON&#41; &#123;
        logInfo&#40;"boiler.rules", "The boiler is already switched on. No further action"&#41;
        return;
    &#125;
			
	// 3. do it switch the boiler on for 60 minutes
    if &#40;newState == ON && Boiler.state != ON&#41; &#123;
    logInfo&#40;"boiler.rules", "Boiler is currently off. A Command to switch it on was sent"&#41;
	Boiler60M.sendCommand&#40;ON&#41;  //Send a ON command to the 60 minutes virtual switch timer.
    &#125; 
end	
מעצבן אותי כשאומרים "אני ילך, אני יקנה". מעצבן אותי עוד יותר כשכותבים את זה.

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

שליחה #6 

אם כבר "חוטאים" בקוד, לא עדיף להשתמש בPLEG (בVera)?
נסו למצוא תשובות לשאלות הקשורות לZ-Wave בשרשור הדביק שבראש הפורום
שתפו את הרעיונות שלכם בשרשור זה

שלח תגובה

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