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

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

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

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

    vores8

    Живу здесь

    vores8

    Живу здесь

    Регистрация:
    26.12.07
    Сообщения:
    367
    Благодарности:
    238
    Адрес:
    Нижний Новгород
    Управление розетками построено на декодере/енкодере РТ2262/2272 или подобном. хаус-код и девайс-код жестко запаян в самой розетке - легко исправляется паяльником.
    tmp.jpg
    трансмиттер стандартный на 433 Мгц (OOK, FSK)
    tmp1.jpg
     
  2. vores8
    Регистрация:
    26.12.07
    Сообщения:
    367
    Благодарности:
    238

    vores8

    Живу здесь

    vores8

    Живу здесь

    Регистрация:
    26.12.07
    Сообщения:
    367
    Благодарности:
    238
    Адрес:
    Нижний Новгород
    Немного не в тему, но все же. поскольку мой смартхоум управляется не только со стационарного компа, но и со всего, что может цепляться по вайфаю, то достаточная мощность вайфая по всему дому - весьма актуальная проблема. У меня, например, есть один угол, в котором ноут цепляется со скоростью 1 Мбит (то есть никак), а мобильник не цепляется в принципе (до точки доступа 2 кирпичных стены по 40 см плюс ж/б перекрытие, направление на ТД примерно под углом 45 градусов через весь этот пирог). При том что точка доступа в прямой видимости выдает честные 144 Мбит.

    Помогли как всегда китайцы, прислав вот это вот
    [​IMG]
    в бюджете 20 баксов. Например вот тут http://www.aliexpress.com/item/Wireless-N-Wifi-Repeater-802-11N-B-G-Network-Router-Range-Expander-300M-2dBi-Antennas-US/523523529.html

    Один час танцев с бубном - и теперь в плохом углу ноут дает стабильные 40 Мбит.
     
  3. vores8
    Регистрация:
    26.12.07
    Сообщения:
    367
    Благодарности:
    238

    vores8

    Живу здесь

    vores8

    Живу здесь

    Регистрация:
    26.12.07
    Сообщения:
    367
    Благодарности:
    238
    Адрес:
    Нижний Новгород
    10 дюймов экран по цене $100 - вчера приехали оба два из чайной страны.

    Установил на них HabDroid (андроидный клиент для управления), sip-телефон и погодный информер - a больше ничего и не требуется.

    Что в итоге имею - возможность мониторить температуру/влажность в комнатах и уличных постройках, включать/выключать свет ну и еще много всего.

    Ближайшие планы - подключить ночной режим освещения через диммируемые лампочки (жду нужного девайса, лучи поноса почте роисси) и домофон (едет из иудейских краев, чтобы по sip звонить на планшеты)

    Stay tuned :)
     
  4. vores8
    Регистрация:
    26.12.07
    Сообщения:
    367
    Благодарности:
    238

    vores8

    Живу здесь

    vores8

    Живу здесь

    Регистрация:
    26.12.07
    Сообщения:
    367
    Благодарности:
    238
    Адрес:
    Нижний Новгород
    Доехал домофон. Производства Израиль, антивандальный - по идее должен выдерживать прямое попадание целого палестинца :) Подключается к АТС как экстеншн.
    Алюминиевый корпус с дождевым козырьком
    [​IMG]

    ну и потроха конечно
    [​IMG]

    завтра поеду куплю трансформатор 12 В и буду подключать к своей АТСке

    по бюджету вышло $200 с доставкой EMS почтой роисси (лучи поноса ей, ибо посылку возили 4 дня по городу)
     
  5. vores8
    Регистрация:
    26.12.07
    Сообщения:
    367
    Благодарности:
    238

    vores8

    Живу здесь

    vores8

    Живу здесь

    Регистрация:
    26.12.07
    Сообщения:
    367
    Благодарности:
    238
    Адрес:
    Нижний Новгород
    Подключил, соединил, настроил
    [​IMG]

    Такой вполне себе телефонный аппарат получился :) И с него звонить можно, и на него в принципе тоже. На кнопку "звонок" (с колокольчиком) повесил группу экстеншнов из домашнего телефона и двух планшетов - звонят все разом.

    Вобщем классно - рекомендую
     
  6. vores8
    Регистрация:
    26.12.07
    Сообщения:
    367
    Благодарности:
    238

    vores8

    Живу здесь

    vores8

    Живу здесь

    Регистрация:
    26.12.07
    Сообщения:
    367
    Благодарности:
    238
    Адрес:
    Нижний Новгород
    Как я провел выходные...

    В прошедшие выходные на Руси отмечался день Святого Ебея. В этот день крестьяне бегают наперегонки в ближайшее почтовое отделение, гадают в интернете по трек-кодам, пишут заявления о розыске пропавших отправлений.
    - На Ебея на почту беги скорея
    - Ебей да Пейпал - денег взял, да товар прислал
    - Шипмент без трек-кода - не будет в доме дохода

    Так вот. Ебей порадовал меня радио датчиками движения
    [​IMG]
    и контактными датчиками (тоже радио)
    [​IMG]
    С датчиками проблем не возникло - ардуиновский скетч RCSwitch заработал с первого раза. При срабатывании датчика передается скольки-то там значный код, который можно выставлять DIP переключателями на датчике. То есть я могу этот код поймать на ардуине и по ком-порту запихать в OpenHab. Ну и что-то там переключить. Дальность вполне удовлетворительная - с этажа на этаж добивает.

    Главным приобретением все же стал wifi контроллер для светодиодных лампочек (https://www.forumhouse.ru/threads/46006/page-32#post-4788549). Не с ебея правда, с алиекспресса за $30. Теперь они правда подешевели, можно купить за 25 с доставкой.
    [​IMG]

    Смысл работы такой. По сути дела, это тот же самый пульт, который идет в комплекте с лампочками, только со стороны пользователя торчат не железные кнопки, а UDP порт, в который надо слать команды.
    Полный обзор можно найти например тут http://www.philippinestuffs.com/milight-wifi-controlled-light-bulbs/
    Включил я значит сей девайс, увидел открытую точку доступа wifi-socket, залез туда по http на адрес 192.168.1.100 и увидел обещанный веб интерфейс. Полазал, что-то там поменял, нажал Reboot... Опа! Девайс умер. То есть лампочки на нем мигают, но точка доступа пропала. Засада - опять инструкцию не прочитал. Оказывается, нужно было перевести девайс в режим вайфайного клиента (Sta), дать ему SSID и пароль от моей домашней сетки, указать статический IP и адрес роутера в качестве гейта. Видимо что-то из этого я забыл. Ну ладно, есть волшебная кнопка Reset. Жмем 5 секунд, девайс мигает лампочками, перезагружается - и нифига. Точка по прежнему не обнаруживается. В тоске лазаю по интернету и по ссылке (выше) читаем, что в основе данного прибора лежит вайфайный модуль TLG10UA03, который хорошо программируется по UART. Поскольку USB-UART у меня есть, остается подключить к нему вайфайный модуль. Еще одна засада - девайс состоит из двух плат, одна из которых TLG10UA03, намертво впаянная в другую. Ковыряюсь полчаса с паяльником. Надо сказать, что я с паяльником не очень-то дружу. То есть откровенных гадостей мы друг другу не делаем, но и особо теплых отношений между нами не наблюдается. Вобщем кончилось все стаканом Makers Mark, одной серией Midsommer Murders и спать.
    Утром поехал на радиорынок (есть у нас такое место, где торгуют всякими гаджетами и тут же их чинят). Захожу в первый ларек - вернее в контейнер. Антураж - наверное так американцы представляют русских хакеров. Оказывается, там чинят ВИДЕОМАГНИТОФОНЫ. Я аж заностальгировал при виде стопок видеокассет с надписями от руки. Хозяин впрочем присутствует - похмельный донельзя. Тем не менее фен держит крепко (хотя по лицу видно что страдает). За 10 минут вайфайка была отделена от основной платы, на ее место впаяна колодка, куда потом эту вайфайку можно вставить обратно.
    Еду домой, подключаю UART, вижу нужный ком-порт, запускаю софтину с сайта производителя и ... Правильно - нифига. Device not found. Полчаса еще подпрыгивал, питание отключал, rx-tx местами менял, настройки ком-порта тоже менял. Пофиг. Уже морально готов отдать китайцам еще 25 баксов и полтора месяца ожидания. Чтобы расслабиться, запустил Putty и пытаюсь в ком порт чтонить послать, параллельно читаю даташит. Кстати - вот интересная фраза: "Устройство может работать в режиме АТ команд." Как следует из даташита, для перехода в этот режим нужно подать 3.3в на пин 2 (nCTS/MODE/GPIO) при включении устройства. Нивапрос - подадим. Включаю - компорт есть. Pytty - "АТ+"...
    Урааа! "+ОК"
    >AT+SSID
    >+OK SSID wifi-socket
    Супер! Живой и даже помнит что-то про себя. Теперь волшебное слово со страницы 78 даташита (RSTF Return to manufacturer setting)
    >AT+RSTF
    >+OK RSTF
    Отключаем питание, сдергиваем провод с пина 2, включаем... Вот она - незащищенная сетка wifi-socket.
    Фффсе... Победил...
    Настроил клиента, айпишник, прицепился к домашней сетке. Кстати - возможные грабли: девайс в качестве пароля к сетке понимает только буквы и цифры. Вбил в качестве пароля "password!", девайс воспринял его как "password%21" и к сетке естественно не подцепился. Пришлось в домашней вайфайке менять пароль (у меня как раз последним символом восклицательный знак). Кроме того, на китайском WPA2-PSK AES звучит как WPA2-PSK CCMP (что вобщем-то резонно, но неочевидно).
    Дальность действия вайфайного клиента тоже не впечатлила, поэтом поставил девайс поближе к домашней точке доступа. Зато лампочками управляет издалека - проверял по всему дому, везде лампочки срабатывают.
    Скачал андроидного клиента с гуглоплея, тоже работает. Один нюанс - лампочки управляются либо с родного пульта, либо с вайфайного девайса. И туда и туда привязать не получается. Но может это и к лучшему - 4 группы на пульте и 4 группы на вайфайке.
    Да, поскольку девайс тупо транслирует получаемые на порт UDP 50000 байты в команды для лампочек, и байты эти известны
    Turn all bulbs on: 350055
    Turn all bulbs off: 390055
    Turn brightness up: 3c0055
    Turn brightness down: 340055
    Make light warmer: 3E0055
    Make light whiter: 3F0055
    Turn Zone 1 on: 380055
    Turn Zone 1 off: 3B0055
    Turn Zone 2 on: 3D0055
    Turn Zone 2 off: 330055
    Turn Zone 3 on: 370055
    Turn Zone 3 off: 3A0055
    Turn Zone 4 on: 320055
    Turn Zone 4 off: 360055
    поэкспериментировал с первой попавшейся прогой, которая может посылать последовательность байт на нужный порт в сети - тоже работает. Так что самостоятельно написать прогу для управления светом через данный вайфай-девайс труда не составляет.

    Вот как-то так. Еще раз с праздником Ебея:hello:
     
  7. smxms
    Регистрация:
    16.11.11
    Сообщения:
    220
    Благодарности:
    51

    smxms

    Живу здесь

    smxms

    Живу здесь

    Регистрация:
    16.11.11
    Сообщения:
    220
    Благодарности:
    51
    Адрес:
    Брест
    Как говориться каждый сам ищет приключения на свою голову :) Все читают инструкцию только после того как что-то сломали :hello:
     
  8. AlexeyDubashov
    Регистрация:
    17.02.12
    Сообщения:
    74
    Благодарности:
    19

    AlexeyDubashov

    Живу здесь

    AlexeyDubashov

    Живу здесь

    Регистрация:
    17.02.12
    Сообщения:
    74
    Благодарности:
    19
    Адрес:
    Московская область
    А что, этот шлюз только четырьмя лампочками управлять может?
     
  9. vores8
    Регистрация:
    26.12.07
    Сообщения:
    367
    Благодарности:
    238

    vores8

    Живу здесь

    vores8

    Живу здесь

    Регистрация:
    26.12.07
    Сообщения:
    367
    Благодарности:
    238
    Адрес:
    Нижний Новгород
    На самом деле 4 группами - в каждой группе по много лампочек. Но! команды диммирования подаются на ВСЕ лампочки одновременно (во всех группах)
     
  10. vores8
    Регистрация:
    26.12.07
    Сообщения:
    367
    Благодарности:
    238

    vores8

    Живу здесь

    vores8

    Живу здесь

    Регистрация:
    26.12.07
    Сообщения:
    367
    Благодарности:
    238
    Адрес:
    Нижний Новгород
    Кстати, может кому интересно. плагин для OpenHab для управления контроллером milight (вот этой самой китайской железякой).
    Как работает:

    в openhab. cfg прописать ip и порт контроллера, например
    milight: host=192.168.1.249
    milight: port=50000

    в. items прописать соответствущие группы. Item может быть типа Switch или типа Dimmer.
    Dimmer MilightDimmer "Dimmer" {milight="2"}
    Switch MilightSwitch "Switch" {milight="2"}
    В этом случае будут команды ON/OFF будут подаваться на все лампочки, которые привязаны к группе 2 (как я говорил, команды диммирования подаются на все лампочки одновременно). Если нужно включать выключать все лампочки, привяжите Switch к группе 0
    Switch MilightSwitch "Switch" {milight="0"}
    В. sitemap нужно указать тип контрола, который будет управлять данной группой. Это может быть либо Switch либо Slider
    Switch item=MilightDimmer
    Slider item=MilightDimmer
    Небольшой трюк. Можно включать режим "ночника", если выставить диммер на 1% яркости
    Switch item=MilightDimmer mappings=[0="ВЫКЛ", 1="Ночь", 100="ВКЛ"]

    Архив во вложении. Смените расширение на jar
     

    Вложения:

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

    vores8

    Живу здесь

    vores8

    Живу здесь

    Регистрация:
    26.12.07
    Сообщения:
    367
    Благодарности:
    238
    Адрес:
    Нижний Новгород
    И теперь интегрируем все это в ОВЕН и OpenHAB.

    Что хотим получить? Когда в доме ночь (с 0 часов до 5 утра) если кто-то пополз в туалет и включил свет - лампочка должна загораться не полностью, а в режиме ночника (есть такой режим в этих китайских лампочках). Но если хочется полного света - надо нажать на выключатель и удерживать его примерно 1 секунду. Тогда лампочка загорится с яркостью 100%. Если в доме НЕ ночь - при нажатии на выключатель яркость 100%. Повторное нажатие естественно выключает свет.

    Для начала напишем для овена простой триггер. В триггере две внутренние переменные. Одна переменная (Q) взводится в 1 при первом нажатии и сбрасывается в 0 при втором. Ну и так далее. Другая переменная (LONG_CLICK) устанавливается в 1 при длительном (более 1 сек) удержании выключателя в нажатом положении.

    Код:
    FUNCTION_BLOCK trigger
    VAR_INPUT
    IN : BOOL;
    END_VAR
    VAR_OUTPUT
    Q : BOOL := FALSE;
    LONG_CLICK : BOOL := FALSE;
    END_VAR
    VAR
    state : R_TRIG;
    click_duration: TP;
    END_VAR
     
    state(CLK:=IN);
    IF state.Q THEN
    Q := NOT Q;
    END_IF
     
    click_duration(in:= in, pt:= const_long_click_duratio);
     
    IF NOT click_duration.Q AND click_duration.ET = click_duration.PT THEN
    LONG_CLICK := TRUE;
    ELSE
    LONG_CLICK := FALSE;
    END_IF
    
    Теперь привязываем выходы триггера с регистрам модбаса, с которыми общается OpenHab
    Код:
    shower_trigger(IN := _3DI_0_11.6 OR pin28);
    pin27 := shower_trigger.Q;
    pin28 := FALSE;
    pin33 := shower_trigger.LONG_CLICK;
    
    _3DI_0_11.6 - это собственно DI на овене, к которому подключен выключатель.
    pin28 - сюда OpenHab пишет 1, если нажата кнопку включения света в веб-интерфейсе.
    pin27 - отсюда OpenHab читает реально включился свет или нет.
    pin33 - сигнал в OpenHab что было длинное нажатие

    Теперь пишем конфигурим OpenHAB. Для начала создадтим неуоторую переменную, которая будет отличать день от ночи - то есть в items добавляем строчку
    Код:
    Switch NightTime
    на самом деле это переключатель, который при желании можно отобразить в веб-интерфейсе и использовать для отладки. Но вообще-то он должен включаться сам в полночь и выключаться в 6 утра. Для чего пишем два правила в rules
    Код:
    rule "Night starts"
    when
        Time cron "0 0 0 * * ?"
    then
        sendCommand(NightTime, ON)
    end
     
    rule "Night ends"
    when
        Time cron "0 0 6 * * ?"
    then
        sendCommand(NightTime, OFF)
    end
    
     
  12. vores8
    Регистрация:
    26.12.07
    Сообщения:
    367
    Благодарности:
    238

    vores8

    Живу здесь

    vores8

    Живу здесь

    Регистрация:
    26.12.07
    Сообщения:
    367
    Благодарности:
    238
    Адрес:
    Нижний Новгород
    Итак, теперь OpenHab может отличать день от ночи
    Прикручиваем собственно управление светом. Для связи с овеном по модбасу используем Switch, для посылки команд в контроллер MiLight используем Dimmer, для получении информации о длинном нажатии используем Contact. Итого еще три строчки в items
    Код:
    Dimmer MilightShower         {milight="2"}
    Switch ShowerLightSwitch              {modbus="slave1:<26:>27"}
    Contact ShowerLightFull                 {modbus="slave1:32"}
    
    Ну и правила обработки нажатий. Первое правило: Если включили свет и Ночь то яркость 1% иначе яркость 100%
    Код:
    rule "Shower Light ON"
    when
        Item ShowerLightSwitch received command ON
    then    
            if (NightTime.state == ON) {
                MilightShower.sendCommand(new PercentType(1))
            } else {
                MilightShower.sendCommand(new PercentType(100))       
            }
    end
    
    Правило второе - выключить свет
    Код:
    rule "Shower Light OFF"
    when
        Item ShowerLightSwitch received command OFF
    then
        MilightShower.sendCommand(OFF)
    end
    
    ну и последнее правило: если длинное нажатие - яркость 100%
    Код:
    rule "Shower Light FULL"
    when
        Item ShowerLightFull changed to OPEN
    then
        MilightShower.sendCommand(new PercentType(100))
    end
     
  13. vores8
    Регистрация:
    26.12.07
    Сообщения:
    367
    Благодарности:
    238

    vores8

    Живу здесь

    vores8

    Живу здесь

    Регистрация:
    26.12.07
    Сообщения:
    367
    Благодарности:
    238
    Адрес:
    Нижний Новгород
    Запускаем, проверяем
    Включение...
    Код:
    14:25:40.560 INFO  runtime.busevents[:42] - ShowerLightSwitch received command ON
    14:25:40.564 DEBUG o.o.m.r.i.engine.RuleEngine[:310] - Executing rule 'Shower Light ON'
    14:25:40.569 DEBUG o.o.b.m.internal.ModbusSlave[:256] - ModbusSlave: FC05 ref=27 value=true
    14:25:40.630 INFO  runtime.busevents[:42] - MilightShower received command 100
    14:25:40.630 DEBUG o.o.b.m.i.MilightBinding[:77] - Item MilightShower sends command 100 to group 2
    14:25:40.632 DEBUG o.o.b.m.i.MilightBinding[:124] - Sent 3D0055 to 127.0.0.1:50000
    14:25:40.732 DEBUG o.o.b.m.i.MilightBinding[:128] - Sent BD0055 to 127.0.0.1:50000
    ... работает :)
     
  14. vores8
    Регистрация:
    26.12.07
    Сообщения:
    367
    Благодарности:
    238

    vores8

    Живу здесь

    vores8

    Живу здесь

    Регистрация:
    26.12.07
    Сообщения:
    367
    Благодарности:
    238
    Адрес:
    Нижний Новгород
    Смотрел внимательно на китайский вайфайный контроллер лампочек. Много думал. Итак, что имеем - плату радиопередатчика 2.4 Ггц, которая собственно посылает сигнал лампочкам. В нее впаян (был) модуль TLG10UA03 - который имеет 8 выходов. Из них 4 - обычный COM порт: VCC, GND, TX, RX. Проводим эксперимент - подключаем TLG10UA03 к основной плате не 8 выводами, а только 4-мя - компортовыми. Результат - по-прежнему работает. Вывод - к плате передатчика можно подключить любой COM порт - хоть USB UART, хоть Bluetooth. Если в COM порт передатчика слать правильные байты (а они известны), то лампочками можно будет управлять с чего угодно, могущего слать байты в СОМ порт. В выхи попробую прикрутить Bluetooth вместо TLG10UA03
     
  15. vores8
    Регистрация:
    26.12.07
    Сообщения:
    367
    Благодарности:
    238

    vores8

    Живу здесь

    vores8

    Живу здесь

    Регистрация:
    26.12.07
    Сообщения:
    367
    Благодарности:
    238
    Адрес:
    Нижний Новгород
    Эксперимент прошел успешно. До блютуса руки правда не дошли, но ардуину прикрутил за 15 минут. Скетч самый простой - SoftwareSerial и писать в него нужные байты. Правда, команды приходится повторять - вместо одной посылать две или три с залержкой 20 мсек, иначе невсегда переключается лампочка.

    Итого. За 25 баксов получаете устройство, которое может использоваться весьма разнообразно, в смысле управляться чем угодно, имеющим выход на ком-порт. При цене собственно лампочки 15 баксов - вполне себе решение для управления освещением. Дальность действия передатчика - одно бетонной перектытие пробивается без проблем