Руки дошли портировать свой сервер mgt24.ru для установки на распбери. Устанавливается такой сервер несколькими консольными командами. Так как в этой системе пользовательские скрипты хранятся не на сервере, а исключительно в самих устройствах, то устройствам без разницы через какой сервер обмениваться информацией между собой, через облачный или через домашний. Этим самым обеспечивается горячее резервирование системы, если облачный сервер не доступен, то устройства подключаются к домашнему серверу и взаимодействуют друг с другом уже через него. Если кому интересно, спрашивайте.
Интересно... А с какими физическими интерфейсами работает сервер? На каком языке и можно ли добавить свой протокол? Вот, например, nRF24, LoRa, ModBus, CAN и проч. (звиняюсь за все вперемешку).
Нет, этот сервер довольно глупый, он только обеспечивает каналы для обмена по своему протоколу, похожему на MQTT. Но в отличии от MQTT этот протокол очень компактный и скоростной, а также в нём есть работа с историческими данными, ну и шифрование тоже. То есть несколько десятков тысяч параметров в секунду приходящих от устройств распбери раздаст потребителям даже не заметит, дополнительно пережимая выборочные данные архиватором и укладывая их в базу данных.
Может, есть "умный" сервер?) Так а интерфейсы какие используются? А фронт-енд - это то, что в демке или есть отдельный? Я сейчас ищу SCADA, с помощью которой смогу конфигурировать свои нативные радиоустройства. Пока ничего, кроме iBroker по ModBus, не находится. Свою же я не напишу.
TCP/IP Ничего отдельного нет, но внешний вид может быть любым, можно и в HTML верстать, можно и конструктором воспользоваться. Если самому верстать, то есть очень простое javascript API. К своей системе я подключал бы это так: 1) Распбери как сервер 2) Arduino Mega как поставщик параметров для системы и исполнитель пользовательских скриптов. 3) Радиустройства как датчики или исполнительные механизмы. Arduino Mega будет собирать информацию с радиоустройств и передавать их на сервер. В ней же будет запущена виртуальная машина, которая будет исполнять пользовательские скрипты.
Сколько памяти сжирает? У меня ЕСП8266 через уарт общается с чипами, как сетевой адаптер. С малиной через сокеты или как будет? На винде ХР не поднять сервер?
У меня сейчас уже на малинке висит nRF24 на SPI. Лишних прослоек не будет. Максимум, что будет, так это переходник из ModBus в радиоинтерфейс) Но сделано это будет на какой-нить 8u2 или 16u2, чтобы поиметь несколько виртуальных com портов.
Виртуальной машине нужна помять только под стек, какой размер выделить под стек, зависит от глубины вложенных функций и количества их аргументов. Я обычно ставлю с запасом 1000 байт. Сам сервер можно установить и на Windows. Тоже хорошо, правда малина включается далеко не за секунду. Я же предпочитаю более кандовые решения, поэтому всю логику размещаю на микрашах, чтобы не страдать от временных лагов операционных систем.
Не имеет значение где будет находиться сетевой клиент, и на малине тоже можно запустить сетевого клиента, который будет работать с различной периферией. Поэтому можно и COM порт.
Нормальных инструкций нет, потому как не для кого было их писать. Я же обычно делаю это через свою программу редактора, завожу новое устройство, ввожу туда все имена параметров, с которыми хочу работать по сети и мне автоматически генерируется исходный код на сях. Мне остаётся только обработчики заполнить.