РЕКЛАМА НА ФОРУМХАУС Управление розетками построено на декодере/енкодере РТ2262/2272 или подобном. хаус-код и девайс-код жестко запаян в самой розетке - легко исправляется паяльником. трансмиттер стандартный на 433 Мгц (OOK, FSK)
Немного не в тему, но все же. поскольку мой смартхоум управляется не только со стационарного компа, но и со всего, что может цепляться по вайфаю, то достаточная мощность вайфая по всему дому - весьма актуальная проблема. У меня, например, есть один угол, в котором ноут цепляется со скоростью 1 Мбит (то есть никак), а мобильник не цепляется в принципе (до точки доступа 2 кирпичных стены по 40 см плюс ж/б перекрытие, направление на ТД примерно под углом 45 градусов через весь этот пирог). При том что точка доступа в прямой видимости выдает честные 144 Мбит. Помогли как всегда китайцы, прислав вот это вот в бюджете 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 Мбит.
10 дюймов экран по цене $100 - вчера приехали оба два из чайной страны. Установил на них HabDroid (андроидный клиент для управления), sip-телефон и погодный информер - a больше ничего и не требуется. Что в итоге имею - возможность мониторить температуру/влажность в комнатах и уличных постройках, включать/выключать свет ну и еще много всего. Ближайшие планы - подключить ночной режим освещения через диммируемые лампочки (жду нужного девайса, лучи поноса почте роисси) и домофон (едет из иудейских краев, чтобы по sip звонить на планшеты) Stay tuned
Доехал домофон. Производства Израиль, антивандальный - по идее должен выдерживать прямое попадание целого палестинца Подключается к АТС как экстеншн. Алюминиевый корпус с дождевым козырьком ну и потроха конечно завтра поеду куплю трансформатор 12 В и буду подключать к своей АТСке по бюджету вышло $200 с доставкой EMS почтой роисси (лучи поноса ей, ибо посылку возили 4 дня по городу)
Подключил, соединил, настроил Такой вполне себе телефонный аппарат получился И с него звонить можно, и на него в принципе тоже. На кнопку "звонок" (с колокольчиком) повесил группу экстеншнов из домашнего телефона и двух планшетов - звонят все разом. Вобщем классно - рекомендую
Как я провел выходные... В прошедшие выходные на Руси отмечался день Святого Ебея. В этот день крестьяне бегают наперегонки в ближайшее почтовое отделение, гадают в интернете по трек-кодам, пишут заявления о розыске пропавших отправлений. - На Ебея на почту беги скорея - Ебей да Пейпал - денег взял, да товар прислал - Шипмент без трек-кода - не будет в доме дохода Так вот. Ебей порадовал меня радио датчиками движения и контактными датчиками (тоже радио) С датчиками проблем не возникло - ардуиновский скетч RCSwitch заработал с первого раза. При срабатывании датчика передается скольки-то там значный код, который можно выставлять DIP переключателями на датчике. То есть я могу этот код поймать на ардуине и по ком-порту запихать в OpenHab. Ну и что-то там переключить. Дальность вполне удовлетворительная - с этажа на этаж добивает. Главным приобретением все же стал wifi контроллер для светодиодных лампочек (https://www.forumhouse.ru/threads/46006/page-32#post-4788549). Не с ебея правда, с алиекспресса за $30. Теперь они правда подешевели, можно купить за 25 с доставкой. Смысл работы такой. По сути дела, это тот же самый пульт, который идет в комплекте с лампочками, только со стороны пользователя торчат не железные кнопки, а 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 поэкспериментировал с первой попавшейся прогой, которая может посылать последовательность байт на нужный порт в сети - тоже работает. Так что самостоятельно написать прогу для управления светом через данный вайфай-девайс труда не составляет. Вот как-то так. Еще раз с праздником Ебея
Как говориться каждый сам ищет приключения на свою голову Все читают инструкцию только после того как что-то сломали
На самом деле 4 группами - в каждой группе по много лампочек. Но! команды диммирования подаются на ВСЕ лампочки одновременно (во всех группах)
Кстати, может кому интересно. плагин для 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
И теперь интегрируем все это в ОВЕН и 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
Итак, теперь 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
Запускаем, проверяем Включение... Код: 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 ... работает
Смотрел внимательно на китайский вайфайный контроллер лампочек. Много думал. Итак, что имеем - плату радиопередатчика 2.4 Ггц, которая собственно посылает сигнал лампочкам. В нее впаян (был) модуль TLG10UA03 - который имеет 8 выходов. Из них 4 - обычный COM порт: VCC, GND, TX, RX. Проводим эксперимент - подключаем TLG10UA03 к основной плате не 8 выводами, а только 4-мя - компортовыми. Результат - по-прежнему работает. Вывод - к плате передатчика можно подключить любой COM порт - хоть USB UART, хоть Bluetooth. Если в COM порт передатчика слать правильные байты (а они известны), то лампочками можно будет управлять с чего угодно, могущего слать байты в СОМ порт. В выхи попробую прикрутить Bluetooth вместо TLG10UA03
Эксперимент прошел успешно. До блютуса руки правда не дошли, но ардуину прикрутил за 15 минут. Скетч самый простой - SoftwareSerial и писать в него нужные байты. Правда, команды приходится повторять - вместо одной посылать две или три с залержкой 20 мсек, иначе невсегда переключается лампочка. Итого. За 25 баксов получаете устройство, которое может использоваться весьма разнообразно, в смысле управляться чем угодно, имеющим выход на ком-порт. При цене собственно лампочки 15 баксов - вполне себе решение для управления освещением. Дальность действия передатчика - одно бетонной перектытие пробивается без проблем