Найти в Дзене
mamaich

Запуск Sprut.hub под Windows

Информация для тех, кто является официальным пользователем Sprut.hub. Как случайно выяснилось, приложение работает не только под Linux, но и под обычной настольной Windows. Естественно, это официально неподдерживаемая конфигурация, и в поддержку о проблемах писать не стоит. Чтобы запустить Sprut.hub потребуется: 1. Java 8 от Azul Zulu, например, отсюда:
https://www.azul.com/downloads/?version=java-8-lts&os=windows&package=jdk#zulu Именно 8 версия используется на устройствах. Как поведёт себя Sprut.hub с более новыми проверять не хочется. Я выбрал по привычке 32-битную версию. Если на машине используется несколько версий Java, надо чтобы переменная среды JAVA_HOME указывала на папку с Zulu JDK (например, так: JAVA_HOME=D:\spruthub\zulu8.76.0.17-ca-jdk8.0.402-win_i686). У меня параллельно стоит Oracle JDK 8, с ней Sprut.hub тоже запускается, но при завершении не всегда запоминает изменения настроек, поэтому я руками прописал путь к нужной ему яве в SprutHub.bat). 2. Содержимое папки /h

Информация для тех, кто является официальным пользователем Sprut.hub.

Как случайно выяснилось, приложение работает не только под Linux, но и под обычной настольной Windows. Естественно, это официально неподдерживаемая конфигурация, и в поддержку о проблемах писать не стоит.

Чтобы запустить Sprut.hub потребуется:

1. Java 8 от Azul Zulu, например, отсюда:
https://www.azul.com/downloads/?version=java-8-lts&os=windows&package=jdk#zulu

Именно 8 версия используется на устройствах. Как поведёт себя Sprut.hub с более новыми проверять не хочется. Я выбрал по привычке 32-битную версию.

Если на машине используется несколько версий Java, надо чтобы переменная среды JAVA_HOME указывала на папку с Zulu JDK (например, так: JAVA_HOME=D:\spruthub\zulu8.76.0.17-ca-jdk8.0.402-win_i686).

У меня параллельно стоит Oracle JDK 8, с ней Sprut.hub тоже запускается, но при завершении не всегда запоминает изменения настроек, поэтому я руками прописал путь к нужной ему яве в SprutHub.bat).

2. Содержимое папки /home/makesimple/SprutHub/ с устройства.

Содержимое папки копируем, например, в d:\spruthub (в ней должны получиться папки bin, jni, lib).

3. Содержимое папки /home/makesimple/.SprutHub/web2.

Папку web2 копируем в d:\spruthub (должна получиться папка D:\spruthub\web2).

4. Если у вас USB Zigbee стик, то нужен файл jSerialComm-2.10.4.jar (это последняя на момент написания версия - возможно, подойдет любая) с https://fazecast.github.io/jSerialComm/

Из jSerialComm-2.10.4.jar требуется взять папку Windows и положить ее в SprutHub.jar (лежит в D:\spruthub\lib\SprutHub.jar).

Внутри - лежат папки с именами архитектур, на которых работает Windows, и DLLки под данные архитектуры, обеспечивающие работу с СОМ портом. Думаю, очевидно, что на Windows также должны быть установлены драйвера для USB Zigbee стика.

После этого - запускаем D:\spruthub\bin\SprutHub.bat, рабочий каталог при этом должен быть D:\spruthub - иначе Sprut.hub не найдет папку web2 и будет выдавать ошибку 403.

Прогресс запуска и ошибки видны в файле D:\tmp\spruthub\spruthub.log (папку D:\tmp он создаст сам). В логе видно, как Sprut.hub загрузит несколько .tar.gz файлов и распакует их в D:\spruthub\data, после чего будет слушать порт 80 или, если он занят, то порт 7777.

При первом запуске появится стандартное окно:

-2

у меня материнка Huananzhi - Sprut.hub "подхватил" ее серийный номер (который равен дате ее производства):

-3

В случае виртуалки на VMware серийник ему определить не удается, так что привязывается хаб с именем NONE.

Далее, создаем контроллер Zigbee. Если DLLки из jSerialComm добавлены правильно - в списке портов будут выведены воткнутые в машину USB стики.

-4

И далее Sprut.hub произведет поиск доступных устройств.

Кстати, если ввести на окне авторизации правильный логин, но неправильный пароль и нажать кнопку "восстановить пароль" - то сразу попадешь в локальный интерфейс Sprut.hub без авторизации. Не знаю, это бага или фича, так как если ввести правильный пароль - попадаешь в интерфейс через "облако" web.spruthub.ru.

На этом всё.
Я планировал использовать Raspberry Pi 4b как сервер для Sprut.hub, но так Спрут нормально заработал под вындовой виртуалкой - то распберри отправляется дальше пылиться на полку.

Кстати, кнопки "перезапуск" и "обновление" - не работают. При перезапуске завершается SprutHub.jar (при желании можно добавить строку "shutdown -r -t 0" в конец SprutHub.bat, чтобы перезагружалась виртуалка), а обновлять SprutHub.jar придется вручную, чтобы добавлять в него папку Windows с DLLками от jSerialComm.