Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Проекты

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 22.08.2016, 14:00   #21
stD
Senior Member
 
Аватар для stD
 
Регистрация: 02.04.2012
Адрес: Питер
Сообщений: 1,125
Вес репутации: 1310
stD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant future
По умолчанию Re: Сделали систему "Умный дом" нужно ваше мнение.

Цитата:
Программно сервер написан на С#. Содержит в себе хттп сервер типа апача который отдает вэбинтерфейс
У меня сделано примерно то же (скоро выложу), только сервер написан на СИ.

Как у Вас реализована обработка ошибок:

1. Потеря связи между клиентом и сервером.
2. Потеря связи между сервером и контроллером.
3. Отвалился датчик от контроллера.
4. Повис сервер.

...

Цитата:
хттп сервер который принимает запросы от контроллеров
Здесь не понял, связь между контроллером и сервером тоже по http? Тогда что представляет из себя контроллер?
__________________
istarik.ru
stD вне форума   Ответить с цитированием
Старый 23.08.2016, 14:53   #22
Reavisor
Junior Member
 
Регистрация: 18.08.2016
Адрес: Тюмень
Сообщений: 15
Вес репутации: 0
Reavisor is an unknown quantity at this point
По умолчанию Re: Сделали систему "Умный дом" нужно ваше мнение.

1. Это не ошибка, клиент пытается переподключиться, при успешном реконнекте получает все актуальные данные.

2. В соответствующих полях датчиков и исполнительных устройств появляются ошибки, их количество, время и т.д. Возникают события реакцию на которые можно настроить в системе как обычный сценарий.
Контроллер при неудачной отправке событий на сервер может выполнить сценарий сетевой с другим контроллером в обход сервера и/или выполнить сценарий внутри себя(эти сценарии естественно примитивные включить выключить переключить какие-то порты)

3. Смотря какой датчик, например если это дс18х20 то мы об этом узнаем и что-то можем сделать. Если это к примеру аналоговый датчик протечки то для определения обрыва нужно ставить сопротивление между плюсом и входом датчика у аналогового блока, тогда мы при обрыве получим определенный сигнал и сможем его обработать на сервере.

4. Ну тут хз, смотря о чем речь. Железный сервер? Тогда можно настроить критические сценарии на контроллере т.е. если сервер не ответил то после секундного ожидания свет всеравно включится по сценарию в контроллере и т.д. Тут нужно все продумывать. Если про программный сервер то таких случаев пока не было(ну т.е. на первых этапах бывало пару раз) Тут я стараюсь писать безопасный код с полным логированием всех нештатных ситуаций, логи пишутся в базу а если она недоступна или если сервак запущен из консоли то вывод идет еще и в консоль для удобной отладки.

Да, связь по хттп. Ну т.е. еслии серверу нужно включить свет то он отправляет запрос к контроллеру по типу http://192.168.88.102/?cf=cmd&pt=5&pn=7 и контроллер включает 7 пин на 5 порту. Соответственно если сработал вход на контроллере или был опрошен датчик то контроллер отправляет запрос серверу в котором указывает кто он и что сработало.

В контроллере стоит сетевой стек enc28j60.
Reavisor вне форума   Ответить с цитированием
Старый 23.08.2016, 22:38   #23
stD
Senior Member
 
Аватар для stD
 
Регистрация: 02.04.2012
Адрес: Питер
Сообщений: 1,125
Вес репутации: 1310
stD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant future
По умолчанию Re: Сделали систему "Умный дом" нужно ваше мнение.

Спасибо.

То есть схема такая?



А как реализовали обратную связь? Например я нажал кнопку (в веб-интерфейсе) "включить свет", что происходит, сигнал уходит на сервер и...?
__________________
istarik.ru
stD вне форума   Ответить с цитированием
Старый 26.08.2016, 12:38   #24
Reavisor
Junior Member
 
Регистрация: 18.08.2016
Адрес: Тюмень
Сообщений: 15
Вес репутации: 0
Reavisor is an unknown quantity at this point
По умолчанию Re: Сделали систему "Умный дом" нужно ваше мнение.

Да, схема такая, плюс к ардуине цепляются исполнительные модули.

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

Т.е. у нас нет никаких аджаксов и задержек. Как только один пользователь подвинул ползунок например цвета ргб ленты, все остальные клиенты об этом сразу узнают и если у них открыт этот же виджет управления лентой то ползунох синхронно ползет. Я особо не смотрел мажордомо, но мне кажется там такого нет, поправьте если не так.
Reavisor вне форума   Ответить с цитированием
Старый 26.08.2016, 16:18   #25
stD
Senior Member
 
Аватар для stD
 
Регистрация: 02.04.2012
Адрес: Питер
Сообщений: 1,125
Вес репутации: 1310
stD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant future
По умолчанию Re: Сделали систему "Умный дом" нужно ваше мнение.

Цитата:
мажордомо, но мне кажется там такого нет
Я не интересовался механизмом работы мажордома.

...

Сокеты вёщь шикарная, но к сожалению есть достаточно много людей у которых установлены старые браузеры. Я столкнулся с этими проблемами года два наза, может сейчас уже такого нет.

...

Цитата:
Если пришла команда включить свет то сервак посылает команду на включение реле для контроллера все это записывает в базу и рассылает всем подключенным пользователям.
То есть получается, что фактически команда ещё не выполнена ардуиной, а на экране клиента уже "загорелась" лампочка?
__________________
istarik.ru

Последний раз редактировалось stD; 26.08.2016 в 20:38.
stD вне форума   Ответить с цитированием
Старый 29.08.2016, 12:47   #26
Reavisor
Junior Member
 
Регистрация: 18.08.2016
Адрес: Тюмень
Сообщений: 15
Вес репутации: 0
Reavisor is an unknown quantity at this point
По умолчанию Re: Сделали систему "Умный дом" нужно ваше мнение.

Цитата:
Сообщение от stD Посмотреть сообщение
Я не интересовался механизмом работы мажордома.

...

Сокеты вёщь шикарная, но к сожалению есть достаточно много людей у которых установлены старые браузеры. Я столкнулся с этими проблемами года два наза, может сейчас уже такого нет.

...



То есть получается, что фактически команда ещё не выполнена ардуиной, а на экране клиента уже "загорелась" лампочка?
Нет, команда сначала выполняется а потом идет оповещение.

Сокеты работают во всех нормальных браузерах, даже в ие вроде появились. В общем на десктопе есть из чего выбрать а на андроиде и айосе точно есть.
Reavisor вне форума   Ответить с цитированием
Старый 29.08.2016, 22:14   #27
stD
Senior Member
 
Аватар для stD
 
Регистрация: 02.04.2012
Адрес: Питер
Сообщений: 1,125
Вес репутации: 1310
stD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant future
По умолчанию Re: Сделали систему "Умный дом" нужно ваше мнение.

Вот здесь Вы пишите:

Цитата:
Если пришла команда включить свет то сервак посылает команду на включение реле для контроллера все это записывает в базу и рассылает всем подключенным пользователям
Объясните подробнее этот момент - "сервак посылает команду на включение реле для контроллера все это записывает в базу", тут как будто запятой не хватает или я что-то не понимаю.

1. Пользователь жмет кнопку в интерфейсе.
2. Команда уходит на сервер по вебсокету, сервер обрабатывает и решает что делать.
3. Если пришла команда включить свет, то сервак посылает контроллеру команду на включение реле.
4. Записывает (команду) в базу и рассылает статус всем подключенным пользователям.

Так происходит?
__________________
istarik.ru
stD вне форума   Ответить с цитированием
Старый 09.09.2016, 08:16   #28
Reavisor
Junior Member
 
Регистрация: 18.08.2016
Адрес: Тюмень
Сообщений: 15
Вес репутации: 0
Reavisor is an unknown quantity at this point
По умолчанию Re: Сделали систему "Умный дом" нужно ваше мнение.

Да,все правильно
Reavisor вне форума   Ответить с цитированием
Старый 09.09.2016, 10:40   #29
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9820
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию Re: Сделали систему "Умный дом" нужно ваше мнение.

А если нажать физическую кнопку включения освещения, то как Ваш сервер определит что освещение включено?
Admin вне форума   Ответить с цитированием
Старый 09.09.2016, 13:05   #30
stD
Senior Member
 
Аватар для stD
 
Регистрация: 02.04.2012
Адрес: Питер
Сообщений: 1,125
Вес репутации: 1310
stD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant future
По умолчанию Re: Сделали систему "Умный дом" нужно ваше мнение.

Цитата:
3. Если пришла команда включить свет, то сервак посылает контроллеру команду на включение реле.
4. Записывает (команду) в базу и рассылает статус всем подключенным пользователям.
Цитата:
Да,все правильно
Сервер рассылает статус всем подключенным пользователям не дожидаясь ответа от контроллера? То есть сервер ещё не получил фактического ответа от контролллера, но новый статус клиентам уже разослал?

Я правильно понял?
__________________
istarik.ru
stD вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 05:19. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика