Настройка Node-RED + Raspberry PI 3 + ZWave Razberry (Raspbian 9 Stretch)

Для того, чтобы заработала связка Node-RED с Z-Wave (open-zwave) на RPI3, нужно выполнить следующий набор манипуляций:

  1. Сначала ставим из коробки Node-RED (настоятельно рекомендую делать все операции из-под юзера, например pi, без sudo)
    bash <(curl -sL https://raw.githubusercontent.com/node-red/raspbian-deb-package/master/resources/update-nodejs-and-nodered
    sudo systemctl enable nodered.service
  2. Собираем руками open-zwave
    sudo apt install libudev-dev # ставим зависимости
    git clone https://github.com/OpenZWave/open-zwave
    make -j 4
    sudo make install # чтобы npm смог найти потом либу
    # если это не сделать, то потом при запуске node-red в логе
    # будут жалобы на линк: Error: libopenzwave.so.1.4: cannot open shared object file: No such file or directory
    export LD_LIBRARY_PATH=/usr/local/lib
    sudo ldconfig
  3. Для корректной работоспособности Razberry на RPI3 нужно отключить bluetooth, потому что они оба используют один и тот же UART
    в /boot/config.txt добавить строчку
    dtoverlay=pi3-disable-bt
  4. Устанавливаем в node-red нужные ноды
    cd ~/.node-red
    npm install openzwave-shared
    npm install node-red-contrib-openzwave
  5. Для того, чтобы node-red смогла открыть порт /dev/ttyAMA0 (через который работает razberry) меняем настройку
    systemctl mask serial-getty@ttyAMA0.service
    в файле /boot/cmdline.txt убираем console=serial0,115200 чтобы ядро перестало писать в serial
  6. reboot