1. Уважаемые форумчане! Сегодня, начиная с 23:30 по Мск, в связи с техническими работами по обновлению наших сервисов портал может быть краткосрочно недоступен. Приносим извинения за возможные неудобства. Мы стараемся специально для вас!
    Скрыть объявление
1 2 3 4 5 6 7 8 9 10 0/10 0,00оценок: 0

Управлением котлом от времени суток rasberry pi

Тема в разделе "Умный дом", создана пользователем adm384, 24.11.16.

  1. adm384
    Регистрация:
    06.10.16
    Сообщения:
    31
    Благодарности:
    22

    adm384

    Участник

    adm384

    Участник

    Регистрация:
    06.10.16
    Сообщения:
    31
    Благодарности:
    22
    Управлением котлом от времени суток rasberry pi
    Добрый день !
    если есть возможность опробуйте пожалуйста скрипт
    скрипт рабоатает по принципу смотрит температуру ну и включает котел
    имеется три режима работа
    1 нормальный режим (работа днем в выходные и повечерам в не рабочее время)
    2 ночной режим понижает температура на ночь на которую выставите
    3 режим когда на работе .. (мысль была в том что зачем греть когда нас там нет)
    для изменения температуры по режимам нужно править
    Код:
    def applyMode():
      if currMode == NORMAL_MODE:
        ENABLE_THRESHOLD=22.0
        DISABLE_THRESHOLD=24.4
        return
      if currMode == NIGHT_MODE:
        ENABLE_THRESHOLD=20.0
        DISABLE_THRESHOLD=22.4
        return
      if currMode == WORK_MODE:
        ENABLE_THRESHOLD=12.0
        DISABLE_THRESHOLD=16.4
    для изменения время включения режимов править строки
    Код:
    def evaluateMode():
      weekday=int(datetime.datetime.today().weekday())
      if weekday == 5 or weekday == 6:
        return NORMAL_MODE
      hr = int(datetime.datetime.now().hour)
      if hr >= 11 and hr <= 18:
        return WORK_MODE
      if hr > 2 or hr < 8:
        return NIGHT_MODE
      return NORMAL_MODE
    так же в скрипте можно задать режим работы постоянный
    Код:
    ./check_temperature.py -h
    usage: check_temperature.py [-h] [-m {0,1,2}]
    
    optional arguments:
      -h, --help            show this help message and exit
      -m {0,1,2}, --mode {0,1,2}
                            an integer in the range 0..2(0 - normalMode,
                            1-nightMode, 2-workMode)
    ну и сам скрипт
    Код:
    #!/usr/bin/python
    
    import commands
    import argparse
    import datetime
    
    ENABLE_THRESHOLD=24
    DISABLE_THRESHOLD=22
    TEMP_SENSOR_ID=12
    
    NORMAL_MODE=0
    NIGHT_MODE=1
    WORK_MODE=2
    currMode=NORMAL_MODE
    
    def getCurrentTemperature():
      return float(commands.getstatusoutput("./temp | grep Temp | cut -d ' ' -f3")[1])
    
    def isSensorEnabled():
      return int(commands.getstatusoutput("gpio -1 read %d" % (TEMP_SENSOR_ID))[1]) == 0
    
    def enableSensor():
      commands.getstatusoutput("gpio -1 write %d 0" % (TEMP_SENSOR_ID))
      print "sensor enabled"
    
    def disableSensor():
      commands.getstatusoutput("gpio -1 write %d 1" % (TEMP_SENSOR_ID))
      print "sensor disabled"
    
    def evaluateMode():
      weekday=int(datetime.datetime.today().weekday())
      if weekday == 5 or weekday == 6:
        return NORMAL_MODE
      hr = int(datetime.datetime.now().hour)
      if hr >= 11 and hr <= 18:
        return WORK_MODE
      if hr > 2 or hr < 8:
        return NIGHT_MODE
      return NORMAL_MODE
    
    def printMode(currMode):
      if currMode == NORMAL_MODE:
        print "Running in normal mode"
        return
      if currMode == NIGHT_MODE:
        print "Running in night mode"
        return
      if currMode == WORK_MODE:
        print "Running in work mode"
        return
      print "Unknown mode:%d" % (currMode)
    
    def parseArgs():
      parser = argparse.ArgumentParser()
      parser.add_argument(
            '-m', '--mode', type=int, choices=range(3),
             help='an integer in the range 0..2(0 - normalMode, 1-nightMode, 2-workMode)')
      args = parser.parse_args()
      global currMode
      currMode = args.mode
      if currMode is None:
        currMode = evaluateMode()
      printMode(currMode)
    
    def applyMode():
      global ENABLE_THRESHOLD
      global DISABLE_THRESHOLD
      print currMode
      if currMode == NORMAL_MODE:
        ENABLE_THRESHOLD=22.0
        DISABLE_THRESHOLD=24.4
        return
      if currMode == NIGHT_MODE:
        ENABLE_THRESHOLD=20.0
        DISABLE_THRESHOLD=22.4
        return
      if currMode == WORK_MODE:
        ENABLE_THRESHOLD=28.8
        DISABLE_THRESHOLD=29.0
        return
      print "Unknown mode:%d" % (currMode)
    
    if __name__ == "__main__":
      parseArgs()
      applyMode()
      sensorEnabled=isSensorEnabled()
      currentTemp=getCurrentTemperature()
      print currentTemp
      if currentTemp < ENABLE_THRESHOLD and not sensorEnabled:
        enableSensor()
      if currentTemp > DISABLE_THRESHOLD and sensorEnabled:
        disableSensor()
    
    
    TEMP_SENSOR_ID=12 пин на котором находиться реле включения котла =)
    определение температуры тут
    returnfloat (commands.getstatusoutput("./temp | grep Temp | cut -d ' ' -f3")[1]) скорее всего вам придеться подправить по себя у меня датчик dht22 и собраная библиотека dht. c
    но в принципе показывайте свой вывод пришлю строчку как должна быть
    у меня библиотека вывод так
    ./temp
    Humidity = 36.1 %
    Temperature = 26.7 *C

    запускать лучшее в screen
    watch -n10 скрипт
    будет дергать данные каждые 10 сек
    ну или можно по крону
    * * * * * root скрипт
    дергать будет каждую минуту в принципе этого достаточно
     
  2. Teemon
    Регистрация:
    07.02.13
    Сообщения:
    201
    Благодарности:
    44

    Teemon

    Живу здесь

    Teemon

    Живу здесь

    Регистрация:
    07.02.13
    Сообщения:
    201
    Благодарности:
    44
    Адрес:
    Хабаровск
    Ну, сидят такие люди, за окном -25, дай думает, проверю, как работает чей-то скриптик управления котлом с форума
     
  3. Xace
    Регистрация:
    28.07.10
    Сообщения:
    83
    Благодарности:
    10

    Xace

    Живу здесь

    Xace

    Живу здесь

    Регистрация:
    28.07.10
    Сообщения:
    83
    Благодарности:
    10
    Адрес:
    Москва
    Автору большое спасибо! В выходные посмотрю!
     
  4. adm384
    Регистрация:
    06.10.16
    Сообщения:
    31
    Благодарности:
    22

    adm384

    Участник

    adm384

    Участник

    Регистрация:
    06.10.16
    Сообщения:
    31
    Благодарности:
    22
    так пожалуйста можете не пробовать)
    а может кто то о таком как раз и мечатл .)
    я же не приказываю а прошу =)
    сам бы попробовал .) да вот тока дом строю релуха да щелкает режими переключает ну а вот как в жизни проверить не могу ..
    мне интересно дееспособна ли идея для экономии =)
    да и критику хотелось бы услышать может что то и добавить =)
    ну и в планах есть веб морду сделать и подключить календарь с праздниками
     
  5. Igor3
    Регистрация:
    29.05.12
    Сообщения:
    1.881
    Благодарности:
    5.732

    Igor3

    Ничего не рекламиро(вал/ю)! Совпадения–случайны!

    Igor3

    Ничего не рекламиро(вал/ю)! Совпадения–случайны!

    Регистрация:
    29.05.12
    Сообщения:
    1.881
    Благодарности:
    5.732
    Адрес:
    Москва
    Это вообще гранью добра :).
    Это котёл! Хорошо, что на современных котлах есть куча защит, как раньше говорили “от дурака”:).
    Вы в курсах o предназначении screen`a?
    Так, на всякий случай -
    $cd /usr/ports/sysutils/screen;cat pkg-descr
    Screen is a full-screen window manager that multiplexes a physical terminal
    between several processes (typically interactive shells).
    Each virtual terminal provides the functions of a DEC VT100 terminal and, in
    addition, several control functions from the ANSI X3.64 (ISO 6429) and ISO
    2022 standards (e.g. insert/delete line and support for multiple character
    sets). There is a scrollback history buffer for each virtual terminal and a
    copy-and-paste mechanism that allows moving text regions between windows.
    Что если Ваш супернадёжный “малиновый пирог” решит ребутнуться :)? Если до этого сам процес screen`а не упадёт :).
    Я уж промолчу о выборе языка и реализации (!)...
    Как говорят в рекламе – иногда полезнее просто жевать...(с)
     
  6. adm384
    Регистрация:
    06.10.16
    Сообщения:
    31
    Благодарности:
    22

    adm384

    Участник

    adm384

    Участник

    Регистрация:
    06.10.16
    Сообщения:
    31
    Благодарности:
    22
    конечно осуждать легко) и да фря. конечно же во всем лучше .) и спасибо маны и сами читать умеем) не кто не мешает запихнуть screen в cron =) на пример так ;) screen -d -m -A -S temp скрипт ;)
     
  7. adm384
    Регистрация:
    06.10.16
    Сообщения:
    31
    Благодарности:
    22

    adm384

    Участник

    adm384

    Участник

    Регистрация:
    06.10.16
    Сообщения:
    31
    Благодарности:
    22
    смотрим на скрипт и видим проверку как раз на дурачка ;)
     
  8. lingvo
    Регистрация:
    25.11.15
    Сообщения:
    1.299
    Благодарности:
    400

    lingvo

    Живу здесь

    lingvo

    Живу здесь

    Регистрация:
    25.11.15
    Сообщения:
    1.299
    Благодарности:
    400
    Даже если на этом остановиться, то за 30$ или сколько там стоит Rpi, получается довольно дорогой термостат. А если приделывать что-то более функциональное типа вебморды, календаря, больше датчиков и т. д, то скриптами не обойтись. Поэтому советую сразу засунуть их подальше и поставить тот же OpenHAB и с него начинать. Не надо придумывать свое колесо.
     
  9. adm384
    Регистрация:
    06.10.16
    Сообщения:
    31
    Благодарности:
    22

    adm384

    Участник

    adm384

    Участник

    Регистрация:
    06.10.16
    Сообщения:
    31
    Благодарности:
    22
    опенхаб) нет спасибо лучше буду делать свой велосипед) да и потом это тока начало)
    и если так расуждать что типа питон не подходит для этого я хз. и бо опенхаб вообще написан на java (e) что в принципе еще более требовательно .)
     
  10. lingvo
    Регистрация:
    25.11.15
    Сообщения:
    1.299
    Благодарности:
    400

    lingvo

    Живу здесь

    lingvo

    Живу здесь

    Регистрация:
    25.11.15
    Сообщения:
    1.299
    Благодарности:
    400
    Не нравится Openhab:faq:... ну выберите любой подходящий из списка...хоть на Perl, хоть на Lua...
    Как вариант предлагаю еще Node-RED.
    ...Ну или дерзайте со своим велосипедом. Посмотрим, как у вас дело пойдет.
     
  11. Smith2007
    Регистрация:
    27.05.12
    Сообщения:
    1.185
    Благодарности:
    643

    Smith2007

    Живу здесь

    Smith2007

    Живу здесь

    Регистрация:
    27.05.12
    Сообщения:
    1.185
    Благодарности:
    643
    Адрес:
    Россия
    Закон сохранения энергии изучали надеюсь в школе? :)
    Зачем понижать температуру на котле когда Вы на работе?
    Для чего Вы хотите устроить колебания температуры в доме?
    Какова цель?

    Экономии по эноргозатратам Вы не получите ибо на сколько остыл дом в режиме 2 или 3 - ровно на столько придется нагреть на обычный режим. И не говорите о потерях при разнице температур так как даже за ночь без отопления, нормально сконструированный дом не остынет больше чем на 5 градусов. Экономия на колебаниях температуры - это миф!
    Исключение может быть если Вы законсервировали дом на пару месяцев. Да, возможно можно несколько понизить температуру в доме, но и эта "овчинка выделки не стоит".

    Хотите экономить - вложите средства в утепление.
    Хотите комфорта - вложите средства в утепление и хорошо спроектированное отопление.
     
  12. adm384
    Регистрация:
    06.10.16
    Сообщения:
    31
    Благодарности:
    22

    adm384

    Участник

    adm384

    Участник

    Регистрация:
    06.10.16
    Сообщения:
    31
    Благодарности:
    22
    спасибо за критику .) и если возможно подробнее
     
  13. Smith2007
    Регистрация:
    27.05.12
    Сообщения:
    1.185
    Благодарности:
    643

    Smith2007

    Живу здесь

    Smith2007

    Живу здесь

    Регистрация:
    27.05.12
    Сообщения:
    1.185
    Благодарности:
    643
    Адрес:
    Россия
    Ну как подробнее?
    Вы решили на несколько часов сэкономить ХХ Джоулей энергии (меньше сжигая газа.)
    За эти несколько часов Ваш дом остынет (допустим на 1 градус).
    К Вашему приходу потребуется затратить энергии на текущее поддержание температуры + те ХХ Джоулей, которые ранее не были сэкономлены.
    Где выгода?
    Кирпичная кладка, раствор и пр. все, что остыло на 1 градус - потребуется нагреть на 1 градус. Нет выгоды!

    На теплопотери влияет разница температур уличной и в доме. Но при колебаниях в доме +/- 2 градуса (а больше нормальный дом не остынет) влияние окажется мизерным особенно учитывая, что для поднятия температуры потребуется дополнительно греть. Другое дело если Вы уехали из дома на зиму - видимо можно понизить температуру с 23 до 18 градусов. И то думаю эффект от экономии составит менее 1 т. р. (ну если дом не 10000 м2)

    Единственную цель, которую я тут прослеживаю - руки чешутся :)
     
  14. lingvo
    Регистрация:
    25.11.15
    Сообщения:
    1.299
    Благодарности:
    400

    lingvo

    Живу здесь

    lingvo

    Живу здесь

    Регистрация:
    25.11.15
    Сообщения:
    1.299
    Благодарности:
    400
    Можно посчитать в цифрах. Допустим, как @Smith2007 писал, дом за ночь охлаждается на 5° - с 22° до 17°. Чтобы он так охладился снаружи должно быть -20°C, не больше и при такой разнице температур можно считать, что дом остывает линейно. Следовательно в среднем температура в доме упадет на 2,5° за ночь и в итоге средняя разница температур между домом и улицей будет 39.5°. Если сравнить это с режимом без понижения температуры, то при 22° внутри разница будет 42°. Мы знаем, что теплопотери прямо-пропорционально зависят от разницы температур между домом и улицей, следовательно на сколько будет ниже температура, на столько мы и наэкономим. В данном случае получается примерно 6% экономии на теплопотерях по сравнению с поддержанием постоянной температуры, но следует учесть, что это только на протяжении ночного периода, когда отключается отопление. Следовательно экономия составит не более 3%.
     
  15. Smith2007
    Регистрация:
    27.05.12
    Сообщения:
    1.185
    Благодарности:
    643

    Smith2007

    Живу здесь

    Smith2007

    Живу здесь

    Регистрация:
    27.05.12
    Сообщения:
    1.185
    Благодарности:
    643
    Адрес:
    Россия
    Вы забыли, что с выходом на нормальный режим потребуется дополнительно затратить энергии на нагрев с 17 до 22 градусов. И этот "бонус" сведет на нет всю экономию.

    зы. я конечно не специалист по теплотехнике, но даже поверхностно понимая физику процесса я не могу увидеть тут реальной экономии, кроме дискомфорта от нестабильной температуры.

    ззы. Если сработает такая "экономная магия" то можно смело получать Нобелевскую премию :)
     

Смотрите также: