Опрос


Что для Вас Умный Дом?


Результаты


Реклама


MegaD-328 API (версия прошивки 3.34 и выше)

25/11/2013 18:01:16

На данной странице представлено API для устройства MegaD-328.
Все взаимодействие с устройством происходит по протоколу HTTP с помощью стандартных GET-запросов.

Сетевые и системные настройки ("Netconf")

Параметр "cf"
Если значение параметра "cf" равно 1, программа обрабатывает и сохраняет в памяти значения переменных, отвечающих за системные и сетевые настройки

pwd: пароль для доступа к Web-интерфейсу устройства (макс. 3 байт)
eip: IP-адрес устройства
sip: IP-адрес сервера
sct: скрипт, который вызывается на сервере в случаях, заданных пользователем (макс. 15 байт)
pr: Пресет. Значения: 0 - пресет не установлен, 1 - пресет для исполнительного модуля MegaD-7I7O
tc: Проверка значений встроенного температурного сенсора. Значения: 0 - не проверять, 1 - проверять
at: Значение температуры, при достижении которого в случае, если задана проверка встроенного температурного датчика, устройство будет отправлять сообщения на сервер

Пример
http://192.168.0.14/sec/?cf=1&eip=192.168.0.14&pwd=sec

Если значение параметра "cf" рано 2, то устройство сохраняет в памяти такие параметры как Megad-ID и srv-loop

mdid: или Megad-ID - это идентификатор устройства, который может использоваться сервером для идентификации конкретного контроллера. В случае, если этот параметр прописан, при любом срабатывании входа на сервер дополнительно передается параметр mdid с установленным для устройства значенеим. Это позволяет программному обеспечению сервера идентифицировать устройство не по IP-адресу, а по его уникальному идентификатору. Также это поле используется в случае работы с удаленным сервером (например megad.ru), так как удаленный сервер не может определить IP-адрес устройства в частной сети.

sl: или srv-loop - если установить значение этого параметра "1", устройство раз в минуту будет связываться с сервером и сообщать ему состояние всех своих портов, а также обрабатывать команды сервера. Этот режим также полезен в случае работы с удаленным сервером, когда устройство находится в частной сети и сервер не может обратиться к нему напрямую.

Конфигурирование и управления портами

pn: Номер порта, с которым осуществляется работа, начиная с 0
pty: Тип порта.Значения.
     255 - NC. Не сконфигурирован
     0 - In. Порт является Входом
     1 - Out. Порт является Выходом
     2 - ADC. ЦАП (для подключения аналоговых датчиков, данная опция доступна не для всех портов!)
     3 - DSen. К порту подключен цифровой датчик

Доступные параметры, если порт настроен как In (Вход)

ecmd: Action. Сценарий по умолчанию, в котором задано управление Выходами (OUT) устройства в случае изменения состояния входа. См. раздел "Сценарии" (макс: 11 байт). Примечание. Сценарий выполняется всегда, если не указан сервер или если сервер указан, но не отвечает в течение 3 секунд. Сценарий по умолчанию не выполняется, если сервер указан и доступен.
eth: Net Action. URL, который вызывается устройством в случае изменения состояние входа (макс. 35 байт). Примечание. URL Net Action вызывается всегда, не зависимо от доступности сервера.
m: Режим обработки изменений состояния порта. Для наглядности приведены примеры с выключателем/кнопкой.
     0 - Переход из разомкнутого в замкнутое состояние (устройство реагирует только на нажатие кнопки).
     1 - Переход из разомкнутого в замкнутое состояние и наоборот (устройство реагирует как на нажатия, так и на отпускание кнопки)
     2 - Переход из замкнутого в разомкнутое состояние (устройство реагирует только на отпускание кнопки)
misc: Модификатор обработки изменений состояния порта (в Web-интерфейсе выполнен в виде чекбокса рядом с выбором режима порта Mode)
     0 - Обычный режим работы
     1 - При наличии (доступности) сервера устройство всегда отправляет информацию на сервер в режиме P&R, а в с случае отсутствия сервера работает так, как указано в поле Mode.
naf: Модификатор работы с полем NetAction
     0 - Обычный режим работы
     1 - URL, прописанный в NetAction вызывается только в случае отсутствия или недоступности сервера
 

Доступные параметры, если порт настроен как Out (выход)

d: Default state. Состояние выхода по умолчанию при включении устройства.
     0 - Порт выключен
     1 - Порт включен
m: Mode. Режи работы выхода.
     0 - SW. Режим ключа. Состояние вкл/выкл
     1 - PWM. Режим ШИМ. (Данная опция доступна не для всех портов!)
pwm: Значение ШИМ. В случае, если порт настроек как ШИМ. Значения от 0 до 255

Доступные параметры, если порт настроен как ADC (АЦП)

m: Mode. Режим обработки изменений состояния порта
     0 - Norm. Значения порта автоматически не отслеживаются
     1 - > Порт считается активным, если значение больше заданного порога. Активностью считается момент перехода через пороговое значение
     2 - < Порт считается активным, если значение меньше заданного порога. Активностью считается момент перехода через пороговое значение
     3 - <> Порт считается активным, если значение проходит порог как в меньшую, так и в большую сторону.
misc: Val. Пороговое значение
ecmd: Action. Сценарий по умолчанию, в котором задано управление Выходами (OUT) устройства в случае изменения состояния входа. См. раздел "Сценарии" (макс: 11 байт). Примечание. Сценарий выполняется всегда, если не указан сервер или если сервер указан, но не отвечает в течение 3 секунд. Сценарий по умолчанию не выполняется, если сервер указан и доступен.
eth: Net Action. URL, который вызывается устройством в случае изменения состояние входа (макс. 35 байт). Примечание. URL Net Action вызывается

Для Action и NetAction поддерживаются команды 3 и 4! Подробнее смотрите раздел "Сценарии (Action)".

Доступные параметры, если порт настроен как DSen (Цифровой датчик)

d: Sensor. Тип подключенного датчика
     1 - DHT11
     2 - DHT22
     3 - DS18B20 (1-wire)
     4 - iButton Reader (считыватель ключей iButton / Proximity EM Marine и других устройство, поддерживающих протокол Dallas/1-wire

В случае установки типа сенсора DS18B20, в настройках порта добавляется вся функциональность, описанная для АЦП порта

m: Mode. Режим обработки изменений состояния порта
     0 - Norm. Значения порта автоматически не отслеживаются
     1 - > Порт считается активным, если значение больше заданного порога. Активностью считается момент перехода через пороговое значение
     2 - < Порт считается активным, если значение меньше заданного порога. Активностью считается момент перехода через пороговое значение
     3 - <> Порт считается активным, если значение проходит порог как в меньшую, так и в большую сторону.
misc: Val. Пороговое значение
ecmd: Action. Сценарий по умолчанию, в котором задано управление Выходами (OUT) устройства в случае изменения состояния входа. См. раздел "Сценарии" (макс: 11 байт). Примечание. Сценарий выполняется всегда, если не указан сервер или если сервер указан, но не отвечает в течение 3 секунд. Сценарий по умолчанию не выполняется, если сервер указан и доступен.
eth: Net Action. URL, который вызывается устройством в случае изменения состояние входа (макс. 35 байт). Примечание. URL Net Action вызывается

Для Action и NetAction поддерживаются команды 3 и 4! Подробнее смотрите раздел "Сценарии (Action)".


Сценарии (Action)

Формат записи сценария.
[Номер порта]:[Значение];[Номер порта]:[Значение];[Номер порта]:[Значение]
Значение: 0 - выключить, 1 - включить, 2 - переключить (изменить состояние порта на противоположное), 3 - состояние выхода соответствует состоянию входа (только для сценариев по умолчанию и входов в режиме P&R), 4 - состояние выхода противоположно состоянию входа ((только для сценариев по умолчанию и входов в режиме P&R).
Примечание. Значение может лежать в диапазоне от 0 до 255, если тип выхода настроен как PWM (ШИМ)
Пример сценария: "7:1;8:0;9:2" - включить порт 7, выключить порт 8, переключить порт 9
Сценарий поддерживает паузы. Цена деления 0,1 секунды. Команда 'p'.
Пример: "7:1;p10;7:0" - включить выход 7, подождать 1 секунду, выключить выход 7.
Сценарий поддерживает  возможность включения/выключения всех портов. Вместо номера порта указывается символ "а"
Пример: "a:0" - выключить все выходы
Выше уже было сказано, что значение порта может лежать в диапазоне от 0 до 255 в случае, если порт настроен как ШИМ. Но для такого типа портов существует модификатор "*", определяющий поведение порта (прошивка 3.26 и выше).
Например:
"10:200" - этот сценарий установит значение ШИМ 200 при срабатывании входа.
"10:*200" - модификатор "*" (звездочка) говорит, что если значение ШИМ равно 0, то установить его равным 200, иначе установить его равным 0. Это особенность полезна для управления освещением и по сути аналогична командам 3 и 4 для выхода в режиме "ключа". Нажатие кнопки включит освещение до значения 200, повторное нажатие выключит его.

Управление выходами.

Управлять выходами можно с помощью параметра cmd. Формат параметра соответствует формату записи сценария
Пример. Переключить порт 7
http://192.168.0.14/sec/?cmd=7:2

Считывание состояния всех портов

Устройство может передать текущее состояние сразу всех своих портов (включая два дополнительных АЦП-порта).
Для этого предназначена команда all
Пример.
http://192.168.0.14/sec/?cmd=all

Формат ответа сервера следующий:
OFF/0;OFF/0;OFF/0;OFF/0;OFF/0;OFF/0;OFF/0;OFF;OFF;OFF;OFF;OFF;OFF;OFF;282;298

Значения портов разделены символом ";"
Дискретные состояния (для входов или выходов в режиме SW) обозначаются как OFF или ON
Если порт настроен как вход, то через слеш указывается значение счетчика входа.

Параметры, передаваемые устройством на сервер.

Параметр "pt"

В соответствии с внутренними настройка, устройство отправляет на сервер информацию об активном порте
http://[IP-адрес сервера]/[имя скрипта]?pt=[номер порта]
Пример
http://192.168.0.250/megad.php?pt=5

Скрипте megad.php значение параметра pt доступно через массив $_GET
Пример
<?
if ( $_GET['pt'] == "4" )
echo "7:2";
?>


Устройство после отправки номера порта ожидает от сервера команды. В указанном выше примере сервер передает устройству команду на переключение порта 7. Формат команды полностью соответствует формату записи сценария.

Параметр "m"

Этот параметр определяет по какому событию произошла отправка пакета на сервер. Если контакт замыкается, то на сервер отправляется сообщение без параметра "m". Если контакт размыкается, то значение параметр "m" равно "1"
Пример (произошло размыкание контакта, подключенного ко входу №5)
http://192.168.0.250/megad.php?pt=5&m=1
 

Параметр "at"

С помощью параметра at, устройство сообщает на сервер о превышении порога температуры встроенного сенсора
http://[IP-адрес сервера]/[имя скрипта]?at=[значение температуры]
Ответ сервера в формате сценария обрабатывается

Параметр "v" и "dir"

В соответствии с внутренними настройка, устройство отправляет на сервер информацию об активном значении АЦП. Подробнее о конфигурировании АЦП описано выше.
http://[IP-адрес сервера]/[имя скрипта]?pt=[номер порта]&v=[значение АЦП]
Если АЦП сконфигурирован таким образом, что устройство отслеживает проход порогового значения как в одну, так и в другую сторону, устройство сообщает также направление перехода через параметр dir
http://[IP-адрес сервера]/[имя скрипта]?pt=[номер порта]&v=[значение АЦП]&dir=[направление]
     1 - порог пройден в сторону увеличения показаний АЦП
     0 - порог пройден в сторону уменьшения показаний АЦП

Счетчики

Для каждого порта типа In (Вход) устройство сохраняет количество срабатываний, согласно настройкам порта.
Значение счетчика указывается на странице конфигурирования порта через слеш (максимальное значение 65535)
ON/1 (Порт активен/количество срабатываний 1)
Обнуление/задание исходного значения счетчика
С помощью параметра "cnt" можно задать любое значение счетчика.
Пример
http://192.168.0.14/sec/?pt=3&cnt=200

Запрос состояния порта

Устройство может выдать состояние порта без лишней HTML-разметки.
Для этого значение параметра cmd должно быть "get".
Пример
http://192.168.0.14/sec/?pt=1&cmd=get

Кроме того, имеется возможность получить значение встроенного в микроконтроллер температурного датчка. (Только для версии 3.25 и выше)
Для этого предназначен параметр tget
Пример
http://192.168.0.14/sec/?tget=1

 

Автор: Andrey_B
Любое использование материалов сайта возможно только с разрешения автора и с обязательным указанием источника.



Добавить комментарий:



Сортировка комментариев: Последние сверху | Первые сверху

2016-12-10 21:26:41 | Andrey_B
Игорь, только что проверил у себя вашу команду.
Все отработало штатно. Все прописанные команды выполнились.
Проверял на связке MegaD-328 + MegaD-7I7O-SD. Прошивка 3.50. Порты P7-P13 настроены как выходы. Можно попробовать откатиться на 3.43, но в части выполнения команд сервера ничего не менялось. Проверьте, что в действительности передает сервер, не присутствует ли в файле скрипта UTF8 BOM, правильно ли настроены порты.
Ну и обновить прошивку тоже можно.


2016-12-10 18:25:22 | Игорь
Andrey_B,
MegaD-328 (прошивка 3.43) настроен на циклический опрос сервера.
Отправляю в ответ сценарий 8:0;11:0;12:0;13:0;7:0 - а отрабатывает только первые три.
Получается нельзя отправить в ответе более трех пар?


2016-12-04 10:24:57 | Andrey_B
Сергей, паузы работают ТОЛЬКО в сценариях по умолчанию и НЕ работают в случае ответов и команд сервера. Этому есть ряд объективных причин, о которых я несколько раз писал.
Если устройством управляет сервер, то ему ничего не стоит самому выдержать необходимые паузы.


2016-12-03 21:45:32 | Сергей
Здравствуйте.
Использую устройство 7I7O-R.
Чтобы сработал замок в двери нужно провести следующую последовательность действий:
Р7 выкл, Р8 выкл, Р9 вкл на 0,5 сек, Р10 вкл на 0,5 сек.

В строке браузера пишу следующую команду
/192.168.1.14/sec/?cmd=7:0;8:0;9:1;10:1;p5;9:0;10:0
Устройство выполняет все команды до "p5" и останавливается - т.е. отключение Р9 и Р10 не происходит.
В чем проблема?


2016-09-25 11:10:45 | Andrey_B
Nishiki, это нормально. Параметр m=2 означает, что устройство детектировало "длительное" нажатие. Эта функция была специально добавлена в устройство, чтобы облегчить серверу обработку "длительных" нажатий. Если вам этого не нужно, просто игнорируйте на сервере запросы с параметром m=2.
В 3.36 этого нет, потому что в этой версии нет этой функции.


2016-09-24 20:45:32 | Nishiki
У меня устройство тоже отправляет два запроса.
192.168.0.219 - - [24/Sep/2016:20:24:54 +0300] "GET /mod_megad.php?pt=3&cnt=15 HTTP/1.1" 200 193 "-" "megad"
через секунду еще одно с параметром m=2
192.168.0.219 - - [24/Sep/2016:20:24:55 +0300] "GET /mod_megad.php?pt=3&m=2&cnt=15 HTTP/1.1" 200 193 "-" "megad"
получается свет вкл через сек. выкл.
прошивка 3.46
на прошивке 3.36b4 такое не происходит.


2016-08-26 10:08:03 | Andrey_B
sergey_a, естественно. В режиме P&R устройство отправляет информацию как по поводу нажатия, так и по поводу отжатия. Почитайте обзорную статью на сайте по поводу режимов P, P&R, R.


2016-08-25 22:13:19 | sergey_a
Andrey_B, спасибо за подсказки.
1. Однако теперь мне приходит два запроса – один без параметра "m", другой с параметром "m":
192.168.0.14 - - [25/Aug/2016:22:00:46 +0300] "GET /light-switched?pt=3&cnt=7 HTTP/1.1" 200 14 "-" "megad"
192.168.0.14 - - [25/Aug/2016:22:00:46 +0300] "GET /light-switched?pt=3&m=1&cnt=8 HTTP/1.1" 200 14 "-" "megad"
2. Проблема решена сменой set. Для тех, кто будет использовать Rails:
response.headers['Content-Type'] = 'text/plain; set=iso-8859-1'


2016-08-24 18:57:16 | Andrey_B
sergey_a
1. Чтобы передавался параметр m=1 (отжатие), необходимо, чтобы порт был сконфигурирован в режим P&R (Press and release - нажатие и отпускание). В режиме "P" фиксируется и передается на сервер только факт нажатия.
2. Проверьте кодировку скрипта. Если она UTF-8, то в нем может содержаться BOM (Byte Order Mark). Вы его не видите, но он там может присутствовать. Либо установите в редакторе сохранять файл в UTF-8 без BOM, либо сохраняйте файл в любой другой не Unicode кодировке (CP1251, ISO и т.д.). BOM передается устройству и оно считает, что ответ сервера некорректный, поэтому ничего не делает.


2016-08-24 17:53:12 | sergey_a
Ruslan, именно запрос вида 192.168.0.14/sec/?cmd=7:2 я и выполняю. Это и есть тот "лишний запрос к MegaD, чтобы переключить OUT порт".

Использую Ruby on Rails, метод упомянул – пример `render plain: "7:2"`. Язык и фреймворк значения не имеет. Это уточнение к тому, что я отвечаю верно. Судя по "документации" к API устройство MegaD ожидает получить подобный ответ в таком формате. Но на практике устройство на ответ сервера никак не реагирует.


2016-08-24 17:48:47 | Ruslan
В предыдущем ответе перед /192.168.0.14 куда-то "съелось" НТТР:/ [специально пишу по-русски, чтобы не "съелось" вторично].


2016-08-24 17:45:07 | Ruslan
sergey_a, по второму вопросу можно попробовать так. Если отвечаете из скрипта на php, то должно "пройти"
file_get_contents("/192.168.0.14/sec/?cmd=7:2");
Из адресной строки браузера должно работать
/192.168.0.14/sec/?cmd=7:2
IP-адрес и пароль, разумеется, свои.


2016-08-24 16:52:27 | sergey_a
Есть 2 вопроса по "Параметры, передаваемые устройством на сервер.":

1. Параметр "m"
Меня этот параметр интересует, чтобы выставлять ВКЛ/ВЫКЛ значение для группы света. Без лишнего запроса в БД или к MegaD. У меня все запросы на сервер приходят без него. Использую кнопочные (аля звонковые) переключатели. Полагаю причина в них.
В чем причина отсутствия параметра "m"?

2. Устройство после отправки номера порта ожидает от сервера команды.
Я отвечаю устройству, но оно не реагирует. Отвечаю с помощью /guides.rubyonrails.org/layouts_and_rendering.htmlrendering-text. Формат тот же, что и в поле Act при конфигурировании IN портов. Там эта функция работает при выключенном сервере. А на сервере мне приходится делать лишний запрос к MegaD, чтобы переключить OUT порт.
Почему устройство не реагирует на команды вида 7:2?


2016-06-11 16:19:51 | Andrey_B
m=2 - это признак длительного удержания. Начиная с прошивки 3.42 устройство аппаратно может фиксировать длительное нажатие в режиме P&R. Если вам эта информация не нужна, просто на сервере игнорируйте запросы, где этот параметр равен "2".
Длительное нажатие m=2 значительно упрощает реализацию кода на сервере там, где требуется такая обработка.


2016-06-11 10:14:26 | Ivan
Подскажите, вход настроен как P&R, на входе висит датчик напряжения. При включении происходит двойное событие с увеличением CNT на порту, причем второе событие помечается признаком режима m=2, переход из замкнутого в разомкнутое состояние для режима R:
192.168.1.14 - - [10/Jun/2016:11:44:23 +0300] "GET /megad14.php?pt=5&cnt=16&mdid=14 HTTP/1.1" 200 147 "-" "megad"
192.168.1.14 - - [10/Jun/2016:11:44:24 +0300] "GET /megad14.php?pt=5&m=2&cnt=17&mdid=14 HTTP/1.1" 200 147 "-" "megad"
192.168.1.14 - - [10/Jun/2016:12:43:35 +0300] "GET /megad14.php?pt=5&m=1&cnt=18&mdid=14 HTTP/1.1" 200 147 "-" "megad"
и так по всем IN портам.
Это у меня одного так или я что-то делаю не так?


2016-06-09 11:27:43 | Andrey_B
Александр, возьмите URL в кавычки...


2016-06-08 22:44:30 | Александр
А вот Вы попробуйте, к примеру, с командной строки наберите:

curl 192.168.0.14/sec/?pt=0&cmd=get


2016-06-08 11:21:14 | Andrey_B
В статье есть ответ на ваш вопрос.
Пример
192.168.0.14/sec/?pt=0&cmd=get


2016-06-08 02:24:09 | Александр
А как считать состояние конкретного порта?


2016-06-07 16:27:12 | Andrey_B
Только что попробовал у себя.
Команда:
curl 192.168.0.14/sec/?cmd=7:1
делает то, что и должна делать - включает выход "P7".
Нет никакой разницы из какого языка программирования/среды/программы сгенерированы HTTP-запросы. То, что описано в API, должно работать везде.


2016-06-07 01:01:41 | Александр
Я прошу прощения за излишнюю дотошность, но имея ввиду командную строку, я говорил о конкретных командах.
Я уверен, у Вашего проекта, нет времени на излишества. Но в данной ситуации, я считаю, что не один я, был бы Вам признателен за небольшой свод команд и запросов, что б вопросы пропадали сразу, когда они видели “выражение обширных понятий” в упорядоченном списке лаконичных примеров - и кратких описаниях.
Андрей, я уважаю Вас, как инженера, так и блоггера. Но, при всем уважении, давайте не гипертрофировать мой вопрос. C PHP, вопросов нет и быть не может, - оно и ясно.
Я пытался использовать приведенные Вами команды. В некоторых случаях они работают, а в некоторых нет. К примеру, эта команда возвращает нужное значение:

curl /192.168.0.14/sec/?cmd=all

А вот эта ничего не делает:

curl /192.168.0.14/sec/?cmd=7:1

Могу привести нерабочие примеры с другими программами или же Python-скрипты.


2016-06-06 16:58:01 | Andrey_B
Александр, командная строка в Linux - это очень обширное понятие. Существует целый ряд программ, с помощью которых можно вызывать HTTP URL, например: wget, curl, links, lynx и так далее. У каждой такой программы свои параметры.
В python можно использовать, например, библиотеку urllib.


2016-06-05 23:36:23 | Александр
Как используя командную строку в Linux управлять Мегой? Или используя синтаксис Python?
Как, к примеру, считать, как записать значение в порт?


2016-06-04 11:42:24 | Andrey_B
Я не понял вопрос. Сформулируйте его пожалуйста как-то иначе.


2016-06-04 07:30:25 | Александр
Андрей, не подскажете, где бы посмотреть полный список команд управления и считывания на BASH и Python? Ну и на PHP..


2016-02-05 14:45:16 | alex
Андрей,дополните,пожалуйста, API информацией о параметрах работы с ИК каналом, в прошивке нашел,а в описании нет.


2016-01-30 11:12:36 | Andrey_B
Во время выполнения паузы устройство конечно же не блокируется.


2016-01-30 10:00:17 | llams
Андрей, подскажите по идентификатору паузы в "7:1;p10;7:0", на время выполнения данной команды (паузы) происходит блокировка работы устройства или нет?


2014-12-05 12:16:23 | GrunT
Например mdid. Там еще пару неизвестных видел, уточню - напишу.


2014-11-29 12:09:16 | Andrey_B
GruNT, о каких функциях вы говорите? Сообщите - поправлю.


2014-11-27 21:33:05 | GruNT
Andrey_B, не могли бы вы API обновить?))) Не нашел некоторых функций которые есть в коде прошивки...)))


2014-11-12 20:53:43 | Andrey_B
Дмитрий, в "скетч" переделать, наверное, нельзя. Исходники компилируются и заливаются стандартным софтом (например, Atmel Studion), при этом Arduino остается им только аппаратно, родной загрузчик перезаписывается.


2014-11-12 11:42:04 | Дмитрий
К сожалению шилд на чипе wiznet ethernet w5100. Уже заказал на ENC28J60. Но вот только не совсем понятно как ваши исходники можно переделать в "скеч", чтобы доработать его под другой контроллер и заливать через Arduino IDE. Наверное проще будет поставить AVR Studio.


2014-11-11 23:25:01 | Andrey_B
Дмитрий, вы имеете ввиду прошивку? Конечно, можно использовать прошивку вместе с Arduino + Ethernet shield (если он на базе ENC28J60). На нашем форуме неоднократно описывались подобные комбинации. Поищите.


2014-11-11 20:39:28 | Дмитрий
Андрей, Здравствуйте! Скажите, а можно каким-то образом портировать ваш веб сервер на ардуино с ethernet шилдом?


2014-08-26 12:56:18 | Andrey_B
Александр, всегда можно устройство с помощью ключей -f -e. Подробнее об этом написано в статье "Перепрошивка MegaD-328 по сети".


2014-08-26 12:53:59 | Andrey_B
Александр, можно считать и распарсить HTML-страницу, где содержится информация о температуре. Это пара строк кода. Теоретически, конечно, можно предусмотреть и отдельную команду.


2014-08-22 09:34:04 | Александр
Ну и сразу в догонку, что-то пошло не так и пароль сбросился на что-то неизвестное, ну или кто-то зашел и поменял его(у меня веб морда МегаД выведена на внешний IP) как его теперь сбросить? Теперь Мегу даже по сети не прошить? Получается только программатором?


2014-08-22 09:27:55 | Александр
Такой вопрос возник, а возможно ли с сервера запросить температуру устройства? Или лучше этим не заморачиваться и настроить на меге предупреждение по превышению порога?


2014-01-17 11:08:25 | Andrey_B
Андрей. Во-первых, я работаю над универсальной прошивкой и не имею возможности делать ответвления. Для этого у меня просто не хватит ресурсов, времени. Альтернативная прошивка с поддержкой 1-wire разрабатывалась пользователем THK. Посмотрите на нашем форуме, там есть соответствующая тема. Во-вторых, весь мой сайт посвящен именно централизации, как единственно правильной с моей точки зрения идеологии полноценного Умного Дома. Где-то какие-то системы могут иметь автономность, но во всех сложных аппаратах (космических, авиа, подводных лодках и т.д.) есть центральный компьютер. Я сейчас не буду углубляться в аргументацию этой точки зрения, так как весь мой сайт про это. В-третьих, у меня автоматизирована система отопления и я могу заверить вас, что ничего путного из простой автоматизации "а-ля термостат" не выйдет. Никакого смысла нет ставить подобные устройства, чтобы потом дублировать функцию обычного комнатного термостата за 300 руб. Дешевле и проще поставить последний.


2014-01-16 23:51:02 | Андрей
Здравствуйте Andrey_B.Так вот как раз меня и интересует управление без сервера то бишь(децентрализованное).Андрей скажите вы можете на базе готовой меги прошить ее таким образом чтобы она получала данные от датчиков по 1wire и отсылала команды серверу или другой меге если сервер не указан.Я понимаю что память меги не резиновая ,но если исключить часть кода для управления входами выходами. оставить один вход для 1wire сети .Как бы сделать из одного модуля ведущего .который опрашивал датчики и на основе полученной информации ,отправлял в сеть такие же гет команды как обычная мега.и чтоб имел веб интерфейс для привязки датчиков к выходам других контролеров и чтоб можно было выставлять гистерезис по температуре.При использовании такого контролера в связке с другими ,можно будет отказаться от сервера ,и устроить на этом всем систему управление освещением отоплением вентиляцией.Вот это на мой взгляд будет полная (децентрализация). Скажите стоит ли ждать такой прошивки ? Или это реализовать не реально.


2014-01-15 11:55:29 | Andrey_B
Команда "2" и "переключение" предназначено, прежде всего, в каких-то простых схемах, не требующих контроля. При управлении с сервера мы все же должны четко понимать, что конкретно мы делаем, поэтому здесь только "включить" или "выключить".


2014-01-14 21:19:55 | Андрей
Спасибо за разяснения. Я что-то сразу не вник в то что можно вход настроить на переключение .Значит даже если вход 1 включил выход 1. То вход 2 переключит выход1 на противоположеный.Как всегда сначала спросил а потом дадумался.


2014-01-14 17:03:26 | Andrey_B
Андрей, в устройстве заложено три типа команд
0 - выключить
1 - включить
2 - переключить
Если выход включается командой "1", то при поступлении еще одной такой же команды ничего не произойдет. Выход как был включен, так и останется.
По второму вопросу не вижу никаких сложностей.


2014-01-13 01:39:34 | Андрей
Здравствуйте Андрей. Представим такой алгоритм .1 вход настроен на замыкание контактов при этом он включает выход 1 .2 вход настроен на замыкание и размыкание контактов при этом он тоже включает выход 1.Отсюда вопрос.1)Возможна ли такая реализация програмно.2)Как будет вести себя реле если оно будет включено входом1 и на него пойдет команда на включение с входа 2) Вопрос связан с тем что я хотел реализовать включение освещения выключателем-кнопкой и есщё имеется звуковой выключатель который работает по тригерному принципу(раз хлопнул реле на нем замкнуло контакты .хлопнул есче раз разомкнуло).Очень интересует возможно ли реализовать такой алгоритм или нет.Заранее благодарен