Можно начать с изучения вот этого https://geektimes.ru/post/279814/ Впрочем на оффсайте http://nodered.org/ всё расписано довольно подробно. Но на английском.
@Pagan, установите HabMin - визуальный редактор UI Будет проще рисовать интерфейс, иконки назначать и пр.
Добрый День. Ребята может ктото помочь или направить на нужный форум. Настроил OH2 на RPi3 всё норм. Есть контроллер Arduino Uno к нему подключён передатчик и приёмник 433Mhz в контроллер залит скетч с шлюзом mqtt. Захожу на RPi3 через shh и делаю команду: mosquitto_pub -t home/commands/MQTTto433 -m 3361064 Передатчик включает свет. Но когда я пытаюсь сделать это через OH2 не выходит. Ниже Итемы и СайтМапы: Switch. items: Switch mqttsw1 "Switch 1" (all) {mqtt=">[RFController:home/commands/MQTTto433:command:on:3361064],>[RFController:home/commands/MQTTto433:command:off:3361064]"} Switch. sitemap: sitemap Alice label="Alice" { Frame label="MQTT" { Switch item=mqttsw1 label="MQTT Switch 1" } } = Подскажите что я делаю не так ?
Проверьте (или покажите) что у вас в файле mqtt. cfg Судя по у вас должна быть раскомментирована и иметь следующий вид строка RFController. url=tcp:/<здесь ваш адрес>:<а здесь номер порта брокера> у меня она выглядит так - mybroker. url=tcp:/192.168.0.160:1883 и соответственно фрагмент item - а выглядит так - Switch Light_rGF_Living "подсветка TV" (rGF_Living) {mqtt=">[mybroker:cmnd/sonoff_1/POWER:command:ON:1] кстати, ещё попробуйте у себя команды "on/off" переписать заглавными. У меня точно с этим были проблемы, но не помню в каком месте. Может в правилах ?
Я тоже в это упёрся. Сами команды надо прописывать в. rules, а в. items путь до правил. Но у меня так и не завелось, юзаю OH 1.8.3.
А что не так с иконками в UI? Выставить параметр image=Bitmap надо к твоему sitemap, или иной параметр, в зависимости от расширения иконок. Далее кладём иконки в /etc/openhab2/images/classic (верно путь прописал) и всё. И да, в. items указываем имя файла изображения.
Итак. Сразу скажу спасибо xassius за идею трансляции видеопотока в OH без использования дополнительного WEB-сервера. В общем я озадачился этим и между делом сделал. Оговорюсь сразу, что у меня OH крутится не на RPi, а на неттопе с полноценной Linux Mint (XFCE). Потом куплю как-нибудь камеру на RPi и попробую на ней проделать всё то же самое. Ну что ж, приступим. Первым делом ставим ffmpeg на том устройстве, куда подключена физически камера: # apt update && apt install ffmpeg screen -y Затем надо создать или исправить текущий конфиг ffserver'a и прописать следующие параметры: # mv -v /etc/ffserver.conf /etc/ffserver.conf_orig && vi /etc/ffserver.conf Port 8100 BindAddress 0.0.0.0 MaxClients 10 MaxBandwidth 20000 NoDaemon <Feed feed. ffm> File /tmp/feed.ffm FileMaxSize 30M </Feed> <Stream test. flv> Feed feed. ffm Format flv VideoCodec flv VideoFrameRate 60 VideoBufferSize 80000 # VideoBitRate 200 VideoQMin 1 VideoQMax 5 VideoSize 1280x720 PreRoll 1 Noaudio </Stream> <Stream test. swf> Feed feed. ffm Format swf VideoCodec flv VideoFrameRate 60 VideoBufferSize 50000 # VideoBitRate 100 VideoQMin 1 VideoQMax 5 VideoSize 1280x720 PreRoll 0 Noaudio </Stream> Вкратце расскажу. Мы объявили некий фид feed. ffm который будет слушать ffserver, а раздавать видеопоток будет всем, кто подключится к порту 8100, получился такой вот multicast. Остальные параметры нужны для того, чтобы в браузере у нас это дело воспроизводилось с помощью flash-плеера. Строгим параметром является VideoSize - он должен быть везде одинаковым. На этом всё, запускаем ffserver в скрине: # screen -S ffserver # ffserver Следующим шагом будет захват видеопотока с камеры и трансляция его в объявленный фид ffserver'a: # ffmpeg -s 1280x720 -r 60 -f video4linux2 -i /dev/video0 http://localhost:8100/feed.ffm тут ключом -s задаём разрешение такое же, как и в конфиге ffserver'a; ключом -r задаём частоту кадров и снова такую же, как и в конфиге ffserver'a; ключом -f задаём формат видеопотока; ключом -i указываем устройство, с которого будем захватывать видеопоток, в моём случае это камера /dev/video0; следующий параметр после устройства входящего потока указывает адрес фида, который слушает ffserver. Теперь можно запустить браузер и ввести в адресную строку http://<некий IP>:8100/test.swf. Должны увидеть видеотрансляцию. Если на этом шаге всё получилось, то переходим к настройкам OH. Открываем наш sitemap и прописываем любым удобным для нас способом, у меня это отдельный фрейм: Frame label="Видеонаблюдение" { Text label="Камера" icon="camera_new" { Webview url="http://<некий IP>:8100/test.swf" height=25 } } Поясню, в чём успел разобраться. Вместо Webview можно указать Image, но тогда вы будете видеть только картинку, а не видеопоток, параметром refresh можно указать частоту обновления Image, но мы не этого хотели, поэтому это можно отбросить. Также вместо Webview можно указать Video, но в таком случае у меня вообще не взлетела видеотрансляция в OH. Параметр height=25 для Webview задаёт высоту кадра, которая будет отображаться в OH. Я опытным путём выставил height=25, чтобы без скролинга видеть всю картинку. Собственно всё. Всем спасибо за внимание. Будут вопросы - задавайте.
Ребят, кто-нибудь смог выполнить скрипт при переключении Switch в OH2? Сколько не пытался - скрипт не выполнялся, хоть и в логах была верная запись по типу "script.sh 0 0", где "0 0" передаваемые параметры. Есть предположение, что OH2 передаёт параметры в виде string, перевод значений из string в int в самом скрипте ничего не изменили.
да вроде получается без особых танцев с бубном. есть item Switch WakeUpDesktop "Вкл/Выкл комп" {nh="192.168.1.2", wol="192.168.1.255#MAC_ADDRESS", exec=">[OFF:/bin/sh@@-c@@/opt/openhab2/conf/scripts/shutdown_pc 192.168.1.2 username password]" } к нему скрипт shutdown_pc: #!/bin/sh # Shutdown script ipaddress=$1 user=$2 password=$3 net rpc shutdown -I $ipaddress -U $user%$password -f -t 60 Работает без нареканий. -Upd Кстати, еще раз спасибо за подсказку с видеопотоком. Работает отлично.
Попробую вечером воспроизвести проблему. Исходя из твоего примера, я выбрал тернистый путь прописав выполнение команд в. rules. Upd. За видеопоток не за что =)
Собственно воспроизвёл проблему. Мой item: Switch Light_entrance_hall "Общее освещение" <light> (Entrance_hall) {exec=">[OFF:/usr/bin/python3@@/opt/openhab/configurations/scripts/mtrf 0 1] >[ON:/usr/bin/python3@@/opt/openhab/configurations/scripts/mtrf 0 2]"} В логах информирует об изменении статуса Switch, но при том свет не загорается. Причём из командной строки работает без нареканий от root и от пользователя openhab.
Вопрос закрыт. Разобрался =). Решение проблемы скрывалось во включении параметра "Include Legacy 1. x Bindings" в PaperUI -> Cjnfiguration -> System, после чего идём также в PaperUI -> Add-ons -> BINDINGS -> Ищем "Exec" и устанавливаем "Exec Binding (1.x)". После этих манипуляций items- и sitemaps-файлы некогда написанных для OH 1.8.3, в OH2 не редактировались.
Дорогие любители ОН, помогите настроить Modbus RTU на RPi c ОН для контроля разных устройств (SMH 2010, термостат с модбас). Есть переходник USB-RS485. Только начал разбираться, поставил ОН 2 на RPi - все заработало. Что дальше делать? Как проинсталировать переходник? В качестве теста хочу получить температуру с термостата и поуправлять ним