iFinder
-
Posts
175 -
Joined
-
Last visited
Content Type
Profiles
Forums
Gallery
Downloads
Blogs
Events
Posts posted by iFinder
-
-
2 минуты назад, TheBB сказал:
могу позапускать и `node-red` (хоть и делал это не раз "в поисках истины"), но сути не поменяет - не использую "node" (for testing only)
Ну если Вы не видите разницы, то вероятнее всего она точно не актуальна.
Остаюсь на `node-red`. Начал её использовать, остался доволен и поэтому буду продолжать.
Если возникнут проблемы обязательно отпишусь.
-
23 часа назад, TheBB сказал:
~ # cat /opt/etc/init.d/S99node-red | grep node-red-pi
node-red-pi -u /opt/root --max-old-space-size=128 >> $LOG & ~ #
Ну чтобы уж совсем закрыть вопрос, а почему Вы у себя запускаете именно node-red-pi, а не node-red ?
-
29 минут назад, TheBB сказал:
да, надо указать путь к "... use specified user directory..."
Протестировал на своём
node-red -u /opt/root >> $LOG &
и Node-Red запустился !
50 минут назад, iFinder сказал:Но у меня вот так (только что ещё раз попробовал):
~ # node-red -h ^C ~ #
Тоже получилось, только надо было подождать несколько секунд !
-
2 минуты назад, TheBB сказал:
да, надо указать путь к "... use specified user directory..."
Это очень хорошая новость, а то я уже начал копать в направлении, что памяти мало !
-
24 минуты назад, TheBB сказал:2 часа назад, iFinder сказал:
запускать node-red-pi, но с дополнительными параметрами:
можете и так
node-red -u /opt/root >> $LOG &
Так получается, что причина отсутствия запуска при загрузке не в том, что надо запускать
node-red-pi с параметром --max-old-space-size=128 >> $LOG &
а в том, чтобы указывать путь: node-red -u /opt/root >> $LOG &
Я правильно Вас понял ?
-
4 минуты назад, TheBB сказал:20 минут назад, iFinder сказал:
Я не знал, что надо набирать --help, а когда набирал -h она меня посылала.
ну-у-у, я не знаю... )))
Но у меня вот так (только что ещё раз попробовал):
~ # node-red -h
^C
~ #
~ # node-red -h ^C ~ #
-
9 минут назад, TheBB сказал:2 часа назад, iFinder сказал:
7. Может не стоит делать ставку на Keenetic как базу для надёжной работы NodeRed ?
можно установить лишь экспериментальным путём
Ну тогда буду дальше пробовать - очень уж складно всё в одном устройстве сочетается:
Роутер + 8 WiFi-сетей + MQTT-брокер + Node-RED + MQTT-клиент + BASH-скрипты (отчитываются через MQTT-клиент) + Удалённый запуск BASH-скриптов MQTT-клиентом + GSM-модем (в планах для SMS-управления) + USB-стик (в планах для работы с ZigBee-устройствами)
За 3 недели было два серьёзных сбоя, но не по вине Node-RED или Keenetic:
1. Флэшка отказала
2. Перестал подключаться к MQTT-брокеру: На кнопках командах по неопытности установил параметр Retain и тем самым зацикливалась отработка команд
-
7 минут назад, TheBB сказал:2 часа назад, iFinder сказал:
Но тогда почему вручную сразу после запуска удаётся запустить node-red ?
авторизованы в системе и установлены переменные окружения (оч.оч.оч. кратко)
Но тогда и
node-red-pi -u /opt/root --max-old-space-size=128 >> $LOG &
не должно запускаться !
-
5 минут назад, TheBB сказал:
чтение справки может творить чудеса )))
Я не знал, что надо набирать --help, а когда набирал -h она меня посылала.
Так что это не от лени
-
Параметр, как я понимаю указывает место установки:
/opt/root
А что в строке запуска означает параметр:
-u
-
В инете нашёл о node-red-pi:
Память Raspberry Pi относительно мала, поэтому Node-RED на этой платформе нужно запускать при помощи команды «node-red-pi».
Она позволяет запустить Node-RED вместе с дополнительным аргументом, задающим, с какого момента Node.js начнет освобождать неиспользованную память.
То есть вместе с командой «node-red-pi» нужно указать флаг «--max-old-space-size»:
node-red-pi --max-old-space-size=256Получается памяти для неё маловато !
А вот, что у меня на Giga III после запуска вручную node-red:
~ # free -h total used free shared buff/cache available Mem: 254832 163364 14504 152 76964 70164 Swap: 262140 424 261716 ~ #
Даже сегодняшний флагман KEENETIC Ultra, белый [kn-1810] имеет столько же памяти, что и мой Giga III.
5. A файл подкачки SWAP Linux не поможет ?
6. А сжатие Zram ?
7. Может не стоит делать ставку на Keenetic как базу для надёжной работы NodeRed ?
Но если не стоит, то будет очень жаль, так как здесь получаем всё в одном !
-
Правильно ли я понимаю, что надо сделать как у Вас и вместо:
#node-red-pi --max-old-space-size=128 >> $LOG2 & node-red >> $LOG2 &
запускать node-red-pi, но с дополнительными параметрами:
node-red-pi -u /opt/root --max-old-space-size=128 >> $LOG & #node-red >> $LOG2 &
Но тогда почему вручную сразу после запуска удаётся запустить node-red ?
-
Предпринимая попытки добиться загрузки node-red при запуске Entware:
1. Переименовал скрипт в S99node-red, чтобы он запускался последним
2. Установил задержку 20 сек. на запуск, чтобы вообще всё успело запуститься
start) if pgrep ^node-red$ > /dev/null then echo "node-red уже запущен." else echo "" >> $LOG2 echo " Node-RED service start: $DateLOG" >> $LOG2 #node-red-pi --max-old-space-size=128 >> $LOG2 & #node-red >> $LOG2 & sleep 20 node-red & logger "S30node-red: node-red Start." echo "$DateLOG S30node-red: node-red выполняется с выводом в Журнал $LOG2." >> $LOG echo "S30node-red: node-red выполняется с выводом в Журнал $LOG2." fi ;;
Но ничего не помогает.
В журнале и в файле отладки никаких следов.
-
Заодно ещё пара вопросов:
1. Установил пакет xmlstarlet. В перечне установленных присутствует, но при любом вызове сообщается, что не найден.
Например:
~ # xmlstarlet -v -sh: xmlstarlet: not found ~ #
Пакет jq стал без проблем:
~ # jq -v jq: Unknown option -v Use jq --help for help with command-line options, or see the jq manpage, or online docs at https://stedolan.github.io/jq ~ #
Почему и что делать ?
2. В описании Keenetic нашёл, что через активный USB-хаб можно подключать несколько внешних дисков.
А можно ли подключать USB-диск с Entware через активный USB-хаб ?
3. А будет ли работать Entware, установленная на карту памяти, которая вставлена в GSM-модем ?
Заранее благодарен за ответы
-
В 17.10.2019 в 09:26, TheBB сказал:
#!/bin/sh LOG=/opt/var/log/node-red.log #Load up node red when called case "$1" in start) if pgrep ^node-red$ > /dev/null then echo "Node-RED already running." else echo "Starting Node-Red.." touch $LOG echo "" >> $LOG echo "Node-RED service start: "$(date) >> $LOG node-red-pi --max-old-space-size=128 >> $LOG & echo "Logging to "$LOG fi ;; stop) echo "Stopping Node-Red.." pkill -SIGINT ^node-red$ sleep 2 echo "" >> $LOG echo "Node-RED service stop: "$(date) >> $LOG ;; restart) echo "Restarting Node-Red.." $0 stop sleep 2 $0 start echo "Restarted." ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac
При первой перезагрузке Keenetic с момента установки Entware выяснилось, что сервис node-red не запускается.
С помощью логгирования в Журнале выяснилось, что сам скрипт
В 17.10.2019 в 09:26, TheBB сказал:для примера, пусть он будет `S99node-red`
при загрузке запускает node-red, но сам node-red не запускается.
Вручную всё работает. На размышления наводит строка ручного запуска из htop: "/opt/bin/node /opt/bin/node-red/".
Оба указанных файла в указанных папках присутствуют.
Может при запуске надо Node вначале запускать ?
Подскажите пожалуйста, что делать ?
-
В 03.11.2019 в 18:53, Roman Bazalevsky сказал:
Но вообще это тема для соседнего форума, а не для "готовых рецептов", мне кажется.
Конечно, это я по невнимательности.
-
2 часа назад, dmi3gm сказал:
внутри сети пользуюсь запросом без авторизации
1. А как у Вас Keenetic подготовлен ?
2. Как я понимаю вы описали JSON-массив. И что с ним делать ?
Я только начинаю осваивать POST-запросы в Node-RED...
-
В 23.11.2018 в 22:08, VladimirTs сказал:
Просмотрел, но там явно указано:
ЦитатаДля выполнения команд действия потребуется POST http-запрос, который здесь еще не описан.
Так что, самого интересного там пока нет.
-
1 минуту назад, dmi3gm сказал:
просто пользую 79 порт без авторизации.
А подробнее можно ?
-
Приветствую всех !
Есть пакет mosquitto_sub, который после запуска выдаёт в консоль сообщения, которые приходят от MQTT-брокера на подписанные им топики:
~ # mosquitto_sub -q 1 -t "WiFi/+/+/Команда/#" -v -u test -P test WiFi/Служебная/5/Команда Вкл. WiFi/Служебная/2,4/Команда Откл. WiFi/Домашняя/5/Команда Вкл. WiFi/Домашняя/2,4/Команда Откл. ^C ~ #
для остановки надо нажать Ctrl+C.
Что надо сделать, чтобы некий скрипт считывал строки, которые выдаёт пакет mosquitto_sub в консоль ?
-
В 26.02.2018 в 16:07, Александр Рыжов сказал:
Есть универсальный RESTful интерфейс, позволяющий выполнять любые доступные команды простым POST HTTP-запросом. Если лень копаться в документации, то нужный запрос можно подсмотреть в режиме разработчкика, нажав при открытом веб-интерфейсе в браузере F12.
Ссылка доступные команды НЕ работает, что делать ?
-
Здравствуйте !
Поставил себе на Keenetic среду Node-RED, которая может выполнять нечто похожее, что и все описанные сервисы и тоже умеет посылать HTTP-запросы.
Но т.к. она находится в локальной сети, собственно говоря на одном и том же адресе, то настройки доступа к rci будут отличаться от тех, что описаны в шапке темы.
Подскажите, что нужно сделать на Keenetic, чтобы к нему можно было подключиться, авторизоваться и делать запросы на rci ?
-
Особая благодарность keenet07 и r13. Подсказанные ими ключевые моменты сделали возможным написание версии скрипта, обрабатывающего все возможные варианты нажатия кнопок Keenetic.
Вот, что получилось:
Скрытый текст#!/opt/bin/bash
# Версия 14 (определяется состояния WiFi-сети и через 2 'case in' делается переключение)
# ====== Определяем переменные
WiFi_ID="WifiMaster0/AccessPoint1" #0 = Домашняя, 1 = Гостевая, 2 = Рабочая
WiFi_Type="Гостевая"
#echo -e WiFi_ID=$WiFi_ID
# ====== Записываем в журнал Keenetic для истории и отладки
#logger "PressButtons: button=$button" # Варианты: RESET, WLAN, FN1, FN2
#logger "PressButtons: action=$action" # Варианты: click, double-click, hold
#logger "PressButtons: button=$button action=$action"
case "$button" in
# ++++++ Нажата Кнопка WLAN - Анализируем тип нажатия
"WLAN" )
case "$action" in
# +++ Нажатие короткое - ?????
"click" )
#echo -e button=WLAN action=click
;;
# +++ Нажатие двойное - ?????
"double-click" )
#echo -e button=WLAN action=double-click
;;
# +++ Нажатие долгое - ?????
"hold" )
#echo -e button=WLAN action=hold
;;
esac
;;
# ++++++ Нажата кнопка FN1 - Анализируем тип нажатия
"FN1" )
case "$action" in
# +++ Нажатие короткое - Переключаем нужную WiFi-сеть
"click" )
#echo -e button=FN1 action=click
# == Получение состояния нужной WiFi-сети
State=`ndmq -p 'show interface '$WiFi_ID -P state`
echo -e State=$State
# ++ WiFi-сеть Включена - Отключаем
if [ "$State" == "up" ]
then
ndmq -x -p "interface "$WiFi_ID" down"
logger "PressButtons: "$WiFi_Type" WiFi-сеть отключена коротким нажатием кнопки FN1."
# ++ WiFi-сеть Отключена - Включаем
else
ndmq -x -p "interface "$WiFi_ID" up"
logger "PressButtons: "$WiFi_Type" WiFi-сеть включена коротким нажатием кнопки FN1."
fi
;;
# +++ Нажатие двойное - ?????
"double-click" )
#echo -e button=FN1 action=double-click
;;
# +++ Нажатие долгое - ?????
"hold" )
#echo -e button=FN1 action=hold
;;
esac
;;
# ++++++ Нажата кнопка FN2 - Анализируем тип нажатия
"FN2" )
case "$action" in
# +++ Нажатие короткое - ?????
"click" )
#echo -e button=FN2 action=click
;;
# +++ Нажатие двойное - ?????
"double-click" )
#echo -e button=FN2 action=double-click
;;
# +++ Нажатие долгое - ?????
"hold" )
#echo -e button=FN2 action=hold
;;
esac
;;
esac
- 1
-
5 часов назад, r13 сказал:
ndmq -p 'show interface {interface name}' -P state
Круто: одной строкой !
Используя совет, сделал так:
NameWiFi="WifiMaster0/AccessPoint2" State=`ndmq -p 'show interface '$NameWiFi -P state` echo -e State=$State
Попытка установки Node-RED (Графический конфигуратор для интернета вещей)
in Вопросы по сборке и настройке Opkg
Posted
Появление проблемы не заставило себя долго ждать: среда Node-Red вчера запустилась, но сегодня выяснилось, что все созданные ранее потоки исчезли.
Причина оказалась в следующем.
При первичной установке Node-Red её рабочая папка оказалась здесь:
Но когда вчера в скрипте, запускающем Node-Red при загрузке, мы указали путь к этой папке:
А надо было указывать саму папку: /opt/root/.node-red
Поэтому надо запускать либо так:
node-red-pi -u /opt/root/.node-red --max-old-space-size=128 >> $LOG &
либо так:
node-red -u /opt/root/.node-red >> $LOG &