1 2 3 4 5 6 7 8 9 10 9/10 8,94оценок: 17

Smarthome - самому и бюджетно?

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

  1. kosmas
    Регистрация:
    22.07.11
    Сообщения:
    89
    Благодарности:
    7

    kosmas

    Живу здесь

    kosmas

    Живу здесь

    Регистрация:
    22.07.11
    Сообщения:
    89
    Благодарности:
    7
    Адрес:
    Питер
    А не проще датчик освещения прикрутить? Ибо взошедшее солнце в грозовых тучах светит так себе. :)
     
  2. Igor3
    Регистрация:
    29.05.12
    Сообщения:
    3.770
    Благодарности:
    13.620

    Igor3

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

    Igor3

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

    Регистрация:
    29.05.12
    Сообщения:
    3.770
    Благодарности:
    13.620
    Адрес:
    Москва
    Во-во, тем более, что в "простых на 220в" сам датчик питается от 8 в через LM08 :). Как бонус получаем реле на 24в, кот. можно где-нибудь использовать (а сами "фонарики-то" не от 220в питаются? Тогда смысл, тем более, что "простые на 220в" обычно для наружного применения...
     
  3. vores8
    Регистрация:
    26.12.07
    Сообщения:
    367
    Благодарности:
    238

    vores8

    Живу здесь

    vores8

    Живу здесь

    Регистрация:
    26.12.07
    Сообщения:
    367
    Благодарности:
    238
    Адрес:
    Нижний Новгород
    Согласен, но датчика под рукой не было. А код для заката-восхода уже был. Ну это как программистам лампочку поменять :))
     
  4. sly2k
    Регистрация:
    22.02.08
    Сообщения:
    529
    Благодарности:
    122

    sly2k

    Живу здесь

    sly2k

    Живу здесь

    Регистрация:
    22.02.08
    Сообщения:
    529
    Благодарности:
    122
    Адрес:
    деревня Мякинино
    9 программистов на замену 1 лампочки?
     
  5. vores8
    Регистрация:
    26.12.07
    Сообщения:
    367
    Благодарности:
    238

    vores8

    Живу здесь

    vores8

    Живу здесь

    Регистрация:
    26.12.07
    Сообщения:
    367
    Благодарности:
    238
    Адрес:
    Нижний Новгород
    Тем не менее, поставил вчера еще один овеновский модуль расширения - для управления отоплением дома/бассейна. Все отлично заработало. Пока только на отопление - включение котла на обогрев и насоса ОВ, отключение насоса ОВ с выбегом 5 минут. Вот за что я люблю овен - максимум функциональности при минимуме кода. В данном случае управление котлом вылилось в 4 строчки.
    Код:
    heating_pump: TOF;
    
    heating_pump(IN := _HDI_0_7.0,PT := T#5m);
    _HDO_0_3.0 := heating_pump.Q;
    _HDO_0_3.1 := _HDI_0_7.0;
    _HDI_0_7.0 - вход контактов комнатного термостата
    _HDO_0_3.0 - выход насоса ОВ
    _HDO_0_3.1 - вход управления котла
     
  6. kosmas
    Регистрация:
    22.07.11
    Сообщения:
    89
    Благодарности:
    7

    kosmas

    Живу здесь

    kosmas

    Живу здесь

    Регистрация:
    22.07.11
    Сообщения:
    89
    Благодарности:
    7
    Адрес:
    Питер
    А как же PID-регулятор на пару страниц кода?
     
  7. vores8
    Регистрация:
    26.12.07
    Сообщения:
    367
    Благодарности:
    238

    vores8

    Живу здесь

    vores8

    Живу здесь

    Регистрация:
    26.12.07
    Сообщения:
    367
    Благодарности:
    238
    Адрес:
    Нижний Новгород
    А зачем? этим котел занимается - в нем для того горелка с модуляцией. Мне главное котлу подать команду греть/негреть и насос ОВ включить для отбора тепла. А дальше он уж сам по температуре теплоносителя работает
     
  8. vores8
    Регистрация:
    26.12.07
    Сообщения:
    367
    Благодарности:
    238

    vores8

    Живу здесь

    vores8

    Живу здесь

    Регистрация:
    26.12.07
    Сообщения:
    367
    Благодарности:
    238
    Адрес:
    Нижний Новгород
    По просьбе делюсь кодом астрономического таймера (в аттаче). Импортируйте в свой проект 4 файла. Для расчета времени восхода/заката объявляете переменные
    Код:
        sunrise_time: TOD;
        sunset_time: TOD;
    и вызываете собственно процедуру
    Код:
        sunrise_time := calc_sunrise_sunset(day:=dtNow.Day, month:=dtNow.Month, year:=dtNow.Year, latitude:=58.279544, longitude :=45.072916, rising:=TRUE);
        sunset_time := calc_sunrise_sunset(day:=dtNow.Day, month:=dtNow.Month, year:=dtNow.Year, latitude:=58.279544, longitude :=45.072916, rising:=FALSE);
    
    при вызове нужно задать ессно день, месяц, год, широту, долготу и последний параметр: если rising:=TRUE то считается время восхода, если rising:=FALSE то время заката
     

    Вложения:

  9. yurgin_777
    Регистрация:
    12.04.10
    Сообщения:
    62
    Благодарности:
    24

    yurgin_777

    Живу здесь

    yurgin_777

    Живу здесь

    Регистрация:
    12.04.10
    Сообщения:
    62
    Благодарности:
    24
    Адрес:
    Izevsk
    Очень интересно, будем попробовать. :hello:

    Спасибо!
     
  10. vores8
    Регистрация:
    26.12.07
    Сообщения:
    367
    Благодарности:
    238

    vores8

    Живу здесь

    vores8

    Живу здесь

    Регистрация:
    26.12.07
    Сообщения:
    367
    Благодарности:
    238
    Адрес:
    Нижний Новгород
    Сорри, забыл еще переменные добавить

    Код:
        const_PI: REAL := 3.14159265358979323846264338327950288419716939937510;        (*just PI*)
        zenith: REAL := 90.8333; (* Sun's zenith for sunrise/sunset OFFICIAL *)
        localOffset : INT := 4; (* local TZ offset *)
    
    Поменяйте localOffset на свою таймзону
     
  11. vores8
    Регистрация:
    26.12.07
    Сообщения:
    367
    Благодарности:
    238

    vores8

    Живу здесь

    vores8

    Живу здесь

    Регистрация:
    26.12.07
    Сообщения:
    367
    Благодарности:
    238
    Адрес:
    Нижний Новгород
    Запустил-таки one wire по вайфайке. 5 датчиков температуры, датчик наличия 220в и управляемое реле. И аддон для опенхаба. Со стороны 1в имеем ардуину и вайфайный модуль (раньше упоминался). К ардуине цепляем до 5 1в линий. Внешнее питание 12в нуи два преобразователя: на 5в для ардуины и на 3.3в для вайфайки. И все.

    В опенхабе прописываем айпишники и порты вайфваек
    Код:
    ownet:host=192.168.1.110:6161
    И в айтемах собственно айтемы
    Код:
    Number t4 {ownet="370000045D33FD28:temperature"}
    Number t5 {ownet="0200000471DA6728:temperature"}
    Contact c1 {ownet="0500000081CBA412:contact.1"}
    Contact c2 {ownet="0500000081CBA412:contact.2"}
    Switch s1 {ownet="3F0000000EEE193A:switch.1"}
    Switch s2 {ownet="3F0000000EEE193A:switch.2"}
    Хостов может быть несколько, опенхабовский плагин сам определяет, какое 1в устройство на каком хосте сидит, устройства можно в любой момент переносить с одного хоста на другой

    ну и наслаждаемся событиями на шине опенхаба
    Код:
    14:43:46.289 INFO  runtime.busevents[:26] - s2 state updated to ON
    14:43:47.989 INFO  runtime.busevents[:26] - t5 state updated to 36.4375
    14:43:48.140 INFO  runtime.busevents[:26] - s1 state updated to ON
    14:43:48.540 INFO  runtime.busevents[:26] - c1 state updated to CLOSED
    14:43:50.240 INFO  runtime.busevents[:26] - t3 state updated to 127.9375
    14:43:51.941 INFO  runtime.busevents[:26] - t4 state updated to 52.125
    14:43:52.337 INFO  runtime.busevents[:26] - c2 state updated to OPEN
    14:43:54.037 INFO  runtime.busevents[:26] - t2 state updated to 127.9375
    14:43:55.738 INFO  runtime.busevents[:26] - t1 state updated to 127.9375
     
  12. kosmas
    Регистрация:
    22.07.11
    Сообщения:
    89
    Благодарности:
    7

    kosmas

    Живу здесь

    kosmas

    Живу здесь

    Регистрация:
    22.07.11
    Сообщения:
    89
    Благодарности:
    7
    Адрес:
    Питер
    Уважаемый vores8, нужна Ваша помощь.
    Итак есть выходы контроллера, к ним прикручены лампочки. Пусть в Codesys это будут DO1 - DO14.
    Как передать их состояние в OpenHAB по модбасу? Первое, что приходит в голову - запаковать в кодесисе, из 14-ти выходов сделать 2 байта, присвоить их holding-регистру, и прочитать (к стати, как из 2-х однобайтовых переменных сделать одну двухбайтовую?). А вот как распаковать их в опенхабе - непонятно...
     
  13. kosmas
    Регистрация:
    22.07.11
    Сообщения:
    89
    Благодарности:
    7

    kosmas

    Живу здесь

    kosmas

    Живу здесь

    Регистрация:
    22.07.11
    Сообщения:
    89
    Благодарности:
    7
    Адрес:
    Питер
    Как послать в опенхаб вроде как разобрался. Берем лампочки, группируем по 8 шт, пакуем в промежуточный байт, потом BYTE_TO_WORD - и этот ворд за раз передает состояние 8-ми лампочек...

    Осталось понять, есть и в опенхабе функция для лентяев, где бы 192 можно было бы разложить на массив из нулей и единичек [0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0]... :)
     
  14. AlexeyDubashov
    Регистрация:
    17.02.12
    Сообщения:
    74
    Благодарности:
    19

    AlexeyDubashov

    Живу здесь

    AlexeyDubashov

    Живу здесь

    Регистрация:
    17.02.12
    Сообщения:
    74
    Благодарности:
    19
    Адрес:
    Московская область
    Зачем так сложно? Модбас отлично работает с регистрами флагов (Coil Registers). А эти регистры цепляются, например, к переключателям (Switch) в Items у опенхаб.
     
  15. kosmas
    Регистрация:
    22.07.11
    Сообщения:
    89
    Благодарности:
    7

    kosmas

    Живу здесь

    kosmas

    Живу здесь

    Регистрация:
    22.07.11
    Сообщения:
    89
    Благодарности:
    7
    Адрес:
    Питер
    Можно и так, конечно, но так писанины меньше получится... :)