בדיקת טמפרטורה בדוד - מאיפה מתחילים?
-
razserv2010
-
- חבר פעיל במיוחד

- תגובות: 806
- הצטרף: אוקטובר 2013
- נתן תודות: 114 פעמים
- קיבל תודות: 67 פעמים
יש לי כבר מוצרים של shelly שמותקנים בבית
האם זה יעבוד?
https://shop.shelly.cloud/temperature-s ... mation#315
איפה בדיוק שמים אותו בדוד?
האם זה יעבוד?
https://shop.shelly.cloud/temperature-s ... mation#315
איפה בדיוק שמים אותו בדוד?
- Catskinner
- חבר במועדון HT

- תגובות: 16019
- הצטרף: נובמבר 2006
- מיקום: הוד השרון
- נתן תודות: 123 פעמים
- קיבל תודות: 940 פעמים
אצלי יש כמה חוקים שרצים ובודקים מי נמצא בבית, עונות השנה ומה הטמפרטורה בחוץ. בינתיים לא איכזב וחלפו כבר שנתיים מאז שיישמתי זאת ב openHAB. כמובן שזה עובד טוב אצלי בגלל שמדובר בדוד שמש ובתכלס מזג האוויר בישראל הוא כזה שהוא לא מצריך לשבור את הראש יותר מידי.
מעצבן אותי כשאומרים "אני ילך, אני יקנה". מעצבן אותי עוד יותר כשכותבים את זה.
-
razserv2010
-
- חבר פעיל במיוחד

- תגובות: 806
- הצטרף: אוקטובר 2013
- נתן תודות: 114 פעמים
- קיבל תודות: 67 פעמים
@jagheadg
.
מעניין.. השאלה היא כמה זה באמת מדייק
@Catskinner
·
לא הבנתי מה עשית בשביל למדוד טמפרטורה של הדוד?
.
מעניין.. השאלה היא כמה זה באמת מדייק
@Catskinner
·
לא הבנתי מה עשית בשביל למדוד טמפרטורה של הדוד?
- jagheadg
-
- חבר ותיק

- תגובות: 1184
- הצטרף: דצמבר 2010
- מיקום: כפר הדרדסים
- נתן תודות: 63 פעמים
- קיבל תודות: 100 פעמים
@razserv2010
·
זה לא ממש חייב להיות מדוייק.
אחרי יום-יומיים לומדים כמה מעלות זה צריך להיות כדי להספיק למקלחת.
בדוגמה שאצלי אני יודע למשל שאם הטמפרטורה המדווחת היא מעל 35 מעלות ופחות מ 40 זה מספיק למקלחת אחת ולא יותר.
ככה בערך אפשר להעריך לכמה צריך להגיע בחימום על חשמל מול כמה השמש חיממה את המים.
בנוסף זה גם נותן מדד טוב על כמה באמת המים קרים כבר בהתחלה ומכך כמה צריך להשקיע בחימום שלהם.
זה תהליך למידה לא ארוך.
·
זה לא ממש חייב להיות מדוייק.
אחרי יום-יומיים לומדים כמה מעלות זה צריך להיות כדי להספיק למקלחת.
בדוגמה שאצלי אני יודע למשל שאם הטמפרטורה המדווחת היא מעל 35 מעלות ופחות מ 40 זה מספיק למקלחת אחת ולא יותר.
ככה בערך אפשר להעריך לכמה צריך להגיע בחימום על חשמל מול כמה השמש חיממה את המים.
בנוסף זה גם נותן מדד טוב על כמה באמת המים קרים כבר בהתחלה ומכך כמה צריך להשקיע בחימום שלהם.
זה תהליך למידה לא ארוך.
- Catskinner
- חבר במועדון HT

- תגובות: 16019
- הצטרף: נובמבר 2006
- מיקום: הוד השרון
- נתן תודות: 123 פעמים
- קיבל תודות: 940 פעמים
@razserv2010
·המטרה שלי היא להחליט האם להדליק את הדוד או לא ובשביל זה אני לא צריך למדוד את הטמפרטורה של המים בדוד כי עם מערכת סולארית זה פשוט פונקציה של כמה אנשים יש בבית, מה העונה ומה הטמפרטורה בחוץ.
@ahiel
אני חושב שכבר פרסמתי בעבר אבל אין לי בעיה לבצע זאת פעם נוספת. בגדול החוקים שאני בונה משתדלים לבדוק מהם התנאים שבהם לא מפעילים את הדוד. עבורי זה די פשוט כי יש מערך סולארי על גג הבניין כך שיש מים חמים כל היום, מלבד בקרים כשקר בחוץ ואז אני בודק ב 4 וב 5 בבוקר מהי הטמפרטורה בחוץ ומפעיל רק אם זה תחת סף שהגדרתי שרירותית.
יש עוד כמה התניות, כמו בדיקת נוכחות של באי הבית, בדיקה האם האוטומציה של הדוד בכלל מופעלת וכו'. שום דבר לא יוצא דופן האמת.
להלן חלק מהקוד המתייחס אלי. יש עוד מקטעים שלא אפרסם המתייחסים ליתר בני הבית.
[left]
rule "Switch Boiler ON for 60mn"
when
Item Boiler60M received command //operate the boiler through a virtual switch with a 60 minutes countdown timer enabled by the expire binding
then
switch (receivedCommand) {
case ON : {
sendCommand(Boiler,"ON")
}
case OFF : {
sendCommand(Boiler,"OFF")
}
}
end
rule "Automate Boiler for Claude at 04:00"
when
Time cron "0 0-15 4-4 ? * SUN,MON,TUE,WED,THU *" // every minute between :00 and :15, every hour at 04:00 local time, 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 (ClaudeHome.state == OFF) {
logInfo("boiler.rules", "Claude isn't home. No further action.")
return;
}
if ((Netatmo_Outdoor_Temperature.state as DecimalType).intValue > 20.0) {
logInfo("boiler.rules", "Current outside temperature (" + Netatmo_Outdoor_Temperature.state.toString + "C) is higher than 20.0C. No further action.")
return;
}
if (Boiler.state == ON) {
logInfo("boiler.rules", "The boiler is alreay switched on. No further action.")
return;
}
if (AutBoiler.state == OFF) {
logInfo("boiler.rules", "The boiler automation is switched off. No further action.")
return;
}
// 2. calculate what needs to be done
var Number newState
if (Boiler.state != ON) {
newState=ON // Set a local variable to use later every minute to check that the boiler is still on
}
if (newState == ON && Boiler.state == ON) {
logInfo("boiler.rules", "The boiler is already switched on. No further action")
return;
}
// 3. do it switch the boiler on for 60 minutes
if (newState == ON && Boiler.state != ON) {
logInfo("boiler.rules", "Boiler is currently off. A Command to switch it on was sent")
Boiler60M.sendCommand(ON) //Send a ON command to the 60 minutes virtual switch timer.
}
end
rule "Automate Boiler for Claude at 05:00"
when
Time cron "0 0-15 5-5 ? * SUN,MON,TUE,WED,THU *" // every minute between :00 and :15, at 05:00 local time, 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 (ClaudeHome.state == OFF) {
logInfo("boiler.rules", "Claude isn't home. No further action.")
return;
}
if ((Netatmo_Outdoor_Temperature.state as DecimalType).intValue > 25.0) {
logInfo("boiler.rules", "Current outside temperature (" + Netatmo_Outdoor_Temperature.state.toString + "C) is higher than 25.0C. No further action.")
return;
}
if (Boiler.state == ON) {
logInfo("boiler.rules", "The boiler is alreay switched on. No further action.")
return;
}
if (AutBoiler.state == OFF) {
logInfo("boiler.rules", "The boiler automation is switched off. No further action.")
return;
}
// 2. calculate what needs to be done
var Number newState
if (Boiler.state != ON) {
newState=ON // Set a local variable to use later every minute to check that the boiler is still on
}
if (newState == ON && Boiler.state == ON) {
logInfo("boiler.rules", "The boiler is already switched on. No further action")
return;
}
// 3. do it switch the boiler on for 60 minutes
if (newState == ON && Boiler.state != ON) {
logInfo("boiler.rules", "Boiler is currently off. A Command to switch it on was sent")
Boiler60M.sendCommand(ON) //Send a ON command to the 60 minutes virtual switch timer.
}
end[/left]
·המטרה שלי היא להחליט האם להדליק את הדוד או לא ובשביל זה אני לא צריך למדוד את הטמפרטורה של המים בדוד כי עם מערכת סולארית זה פשוט פונקציה של כמה אנשים יש בבית, מה העונה ומה הטמפרטורה בחוץ.
@ahiel
אני חושב שכבר פרסמתי בעבר אבל אין לי בעיה לבצע זאת פעם נוספת. בגדול החוקים שאני בונה משתדלים לבדוק מהם התנאים שבהם לא מפעילים את הדוד. עבורי זה די פשוט כי יש מערך סולארי על גג הבניין כך שיש מים חמים כל היום, מלבד בקרים כשקר בחוץ ואז אני בודק ב 4 וב 5 בבוקר מהי הטמפרטורה בחוץ ומפעיל רק אם זה תחת סף שהגדרתי שרירותית.
יש עוד כמה התניות, כמו בדיקת נוכחות של באי הבית, בדיקה האם האוטומציה של הדוד בכלל מופעלת וכו'. שום דבר לא יוצא דופן האמת.
להלן חלק מהקוד המתייחס אלי. יש עוד מקטעים שלא אפרסם המתייחסים ליתר בני הבית.
[left]
rule "Switch Boiler ON for 60mn"
when
Item Boiler60M received command //operate the boiler through a virtual switch with a 60 minutes countdown timer enabled by the expire binding
then
switch (receivedCommand) {
case ON : {
sendCommand(Boiler,"ON")
}
case OFF : {
sendCommand(Boiler,"OFF")
}
}
end
rule "Automate Boiler for Claude at 04:00"
when
Time cron "0 0-15 4-4 ? * SUN,MON,TUE,WED,THU *" // every minute between :00 and :15, every hour at 04:00 local time, 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 (ClaudeHome.state == OFF) {
logInfo("boiler.rules", "Claude isn't home. No further action.")
return;
}
if ((Netatmo_Outdoor_Temperature.state as DecimalType).intValue > 20.0) {
logInfo("boiler.rules", "Current outside temperature (" + Netatmo_Outdoor_Temperature.state.toString + "C) is higher than 20.0C. No further action.")
return;
}
if (Boiler.state == ON) {
logInfo("boiler.rules", "The boiler is alreay switched on. No further action.")
return;
}
if (AutBoiler.state == OFF) {
logInfo("boiler.rules", "The boiler automation is switched off. No further action.")
return;
}
// 2. calculate what needs to be done
var Number newState
if (Boiler.state != ON) {
newState=ON // Set a local variable to use later every minute to check that the boiler is still on
}
if (newState == ON && Boiler.state == ON) {
logInfo("boiler.rules", "The boiler is already switched on. No further action")
return;
}
// 3. do it switch the boiler on for 60 minutes
if (newState == ON && Boiler.state != ON) {
logInfo("boiler.rules", "Boiler is currently off. A Command to switch it on was sent")
Boiler60M.sendCommand(ON) //Send a ON command to the 60 minutes virtual switch timer.
}
end
rule "Automate Boiler for Claude at 05:00"
when
Time cron "0 0-15 5-5 ? * SUN,MON,TUE,WED,THU *" // every minute between :00 and :15, at 05:00 local time, 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 (ClaudeHome.state == OFF) {
logInfo("boiler.rules", "Claude isn't home. No further action.")
return;
}
if ((Netatmo_Outdoor_Temperature.state as DecimalType).intValue > 25.0) {
logInfo("boiler.rules", "Current outside temperature (" + Netatmo_Outdoor_Temperature.state.toString + "C) is higher than 25.0C. No further action.")
return;
}
if (Boiler.state == ON) {
logInfo("boiler.rules", "The boiler is alreay switched on. No further action.")
return;
}
if (AutBoiler.state == OFF) {
logInfo("boiler.rules", "The boiler automation is switched off. No further action.")
return;
}
// 2. calculate what needs to be done
var Number newState
if (Boiler.state != ON) {
newState=ON // Set a local variable to use later every minute to check that the boiler is still on
}
if (newState == ON && Boiler.state == ON) {
logInfo("boiler.rules", "The boiler is already switched on. No further action")
return;
}
// 3. do it switch the boiler on for 60 minutes
if (newState == ON && Boiler.state != ON) {
logInfo("boiler.rules", "Boiler is currently off. A Command to switch it on was sent")
Boiler60M.sendCommand(ON) //Send a ON command to the 60 minutes virtual switch timer.
}
end[/left]
מעצבן אותי כשאומרים "אני ילך, אני יקנה". מעצבן אותי עוד יותר כשכותבים את זה.