NEWS
Основные особенности системы
-
в адартере "javascript" в файле "javascript.js" заменил вызов функции "setState"
adapter.setState(id, state, function () { if (typeof callback === 'function') callback(); });
на вызов "setForeignState"
adapter.setForeignState(id, { val: state }, function () { if (typeof callback === 'function') callback(); });
и````
getState: function (id) {
return states[id];
}заменил на```` getState: function (id) { return states[id].val; }
Скрипт начал правильно работать. `
Спасибо, надо будет исправить. -
@Bluefox:`
Не смотрели в сторону https://github.com/tavendo/WAMP - Web Application Messaging Protocol?Что интересного:
Поддерживает asynchronous messaging patterns: publish-subscribe и RPC.
В качестве транспорта использует Websocket+JSON или TCP+MsgPack.
Есть клиентская библиотека для JavaScript из браузера.
Сложность базового профиля сопоставима с MQTT. Advanced профиль содержит кучу расширений.
Удобно использовать для связи между плагинами и на web-интерфейс данные можно напрямую отдавать.
-
@X13:@Bluefox:`
Не смотрели в сторону https://github.com/tavendo/WAMP - Web Application Messaging Protocol?Что интересного:
Поддерживает asynchronous messaging patterns: publish-subscribe и RPC.
В качестве транспорта использует Websocket+JSON или TCP+MsgPack.
Есть клиентская библиотека для JavaScript из браузера.
Сложность базового профиля сопоставима с MQTT. Advanced профиль содержит кучу расширений.
Удобно использовать для связи между плагинами и на web-интерфейс данные можно напрямую отдавать. `
Спасибо за подсказку. Интересный протокол.Но время будет только после драйвера визуализации. (ioBroker.vis)
291_offset.png -
Странные записи в админке вкладка лог
! legacy.0 NaN-aN-aN aN:aN:aN info socket.io <– 192.168.55.3:59445 websocket connected
! legacy.0 NaN-aN-aN aN:aN:aN info socket.io: handshake authorized
! legacy.0 NaN-aN-aN aN:aN:aN info socket.io <-- 192.168.55.3:50043 websocket disconnected
! legacy.0 NaN-aN-aN aN:aN:aN info socket.io: transport end (undefined)
! controller NaN-aN-aN aN:aN:aN info Update repository "default" under "conf/sources-dist.json"
! node-red.0 NaN-aN-aN aN:aN:aN error 14 Dec 23:34:39 - ------------------------------------------
! node-red.0 NaN-aN-aN aN:aN:aN error 14 Dec 23:34:39 - [25-serial.js] Error: Cannot find module 'serialport'
! node-red.0 NaN-aN-aN aN:aN:aN error 14 Dec 23:34:39 - [36-rpi-gpio.js] Info : Ignoring Raspberry Pi specific node.
! node-red.0 NaN-aN-aN aN:aN:aN error 14 Dec 23:34:39 - [35-arduino.js] Error: Cannot find module 'arduino-firmata'
! node-red.0 NaN-aN-aN aN:aN:aN info starting. Version 0.0.7
! controller NaN-aN-aN aN:aN:aN info instance system.adapter.node-red.0 started with pid 3358
! socketio.0 NaN-aN-aN aN:aN:aN info socket.io server listening on port 8084
! socketio.0 NaN-aN-aN aN:aN:aN info starting. Version 0.0.4
! controller NaN-aN-aN aN:aN:aN info instance system.adapter.socketio.0 started with pid 3347
! history.0 NaN-aN-aN aN:aN:aN info starting. Version 0.0.7
непонятно что это NaN-aN-aN aN:aN:aN вместо таймстампа
291_tabelle.png
291_before.png -
Странные записи в админке вкладка лог
! legacy.0 NaN-aN-aN aN:aN:aN info socket.io <– 192.168.55.3:59445 websocket connected
! legacy.0 NaN-aN-aN aN:aN:aN info socket.io: handshake authorized
! legacy.0 NaN-aN-aN aN:aN:aN info socket.io <-- 192.168.55.3:50043 websocket disconnected
! legacy.0 NaN-aN-aN aN:aN:aN info socket.io: transport end (undefined)
! controller NaN-aN-aN aN:aN:aN info Update repository "default" under "conf/sources-dist.json"
! node-red.0 NaN-aN-aN aN:aN:aN error 14 Dec 23:34:39 - ------------------------------------------
! node-red.0 NaN-aN-aN aN:aN:aN error 14 Dec 23:34:39 - [25-serial.js] Error: Cannot find module 'serialport'
! node-red.0 NaN-aN-aN aN:aN:aN error 14 Dec 23:34:39 - [36-rpi-gpio.js] Info : Ignoring Raspberry Pi specific node.
! node-red.0 NaN-aN-aN aN:aN:aN error 14 Dec 23:34:39 - [35-arduino.js] Error: Cannot find module 'arduino-firmata'
! node-red.0 NaN-aN-aN aN:aN:aN info starting. Version 0.0.7
! controller NaN-aN-aN aN:aN:aN info instance system.adapter.node-red.0 started with pid 3358
! socketio.0 NaN-aN-aN aN:aN:aN info socket.io server listening on port 8084
! socketio.0 NaN-aN-aN aN:aN:aN info starting. Version 0.0.4
! controller NaN-aN-aN aN:aN:aN info instance system.adapter.socketio.0 started with pid 3347
! history.0 NaN-aN-aN aN:aN:aN info starting. Version 0.0.7
непонятно что это NaN-aN-aN aN:aN:aN вместо таймстампа `
а как это выглядит в log/iobroker.log ?? -
как не странно ,нормально ,такие траблы только в web log
! 3347
! 2014-12-14 23:34:27.312 - info: socketio.0 starting. Version 0.0.4
! 2014-12-14 23:34:27.337 - info: socketio.0 socket.io server listening on port 8084
! 2014-12-14 23:34:28.907 - info: controller instance system.adapter.node-red.0 started with pid 3358
! 2014-12-14 23:34:29.397 - info: node-red.0 starting. Version 0.0.7
! 2014-12-14 23:34:39.385 - error: node-red.0 14 Dec 23:34:39 - [35-arduino.js] Error: Cannot find module 'arduino-firmata'
! 2014-12-14 23:34:39.386 - error: node-red.0 14 Dec 23:34:39 - [36-rpi-gpio.js] Info : Ignoring Raspberry Pi specific node.
! 14 Dec 23:34:39 - [25-serial.js] Error: Cannot find module 'serialport'
! 14 Dec 23:34:39 - –----------------------------------------
Маленько понаблюдал, если не находиться на вкладке лог в админке то пишет нон-но и тд.когда переходишь на вкладку лог начинает отображать таймстамп
! SmartHome 2014-12-16 19:40:48 info controller Restart adapter system.adapter.admin.0 because enabled
! SmartHome 2014-12-16 19:40:47 info controller instance system.adapter.admin.0 started with pid 11800
! legacy.0 NaN-aN-aN aN:aN:aN info socket.io <– readFile dashui-views.json
! legacy.0 NaN-aN-aN aN:aN:aN info socket.io <-- getIndex
! legacy.0 NaN-aN-aN aN:aN:aN info socket.io <-- getObjects
! legacy.0 NaN-aN-aN aN:aN:aN info socket.io <-- touchFile www/dashui/css/dashui-user.css
! legacy.0 NaN-aN-aN aN:aN:aN info socket.io <-- getDat -
как не странно ,нормально ,такие траблы только в web log
! 3347
! 2014-12-14 23:34:27.312 - info: socketio.0 starting. Version 0.0.4
! 2014-12-14 23:34:27.337 - info: socketio.0 socket.io server listening on port 8084
! 2014-12-14 23:34:28.907 - info: controller instance system.adapter.node-red.0 started with pid 3358
! 2014-12-14 23:34:29.397 - info: node-red.0 starting. Version 0.0.7
! 2014-12-14 23:34:39.385 - error: node-red.0 14 Dec 23:34:39 - [35-arduino.js] Error: Cannot find module 'arduino-firmata'
! 2014-12-14 23:34:39.386 - error: node-red.0 14 Dec 23:34:39 - [36-rpi-gpio.js] Info : Ignoring Raspberry Pi specific node.
! 14 Dec 23:34:39 - [25-serial.js] Error: Cannot find module 'serialport'
! 14 Dec 23:34:39 - –----------------------------------------
Маленько понаблюдал, если не находиться на вкладке лог в админке то пишет нон-но и тд.когда переходишь на вкладку лог начинает отображать таймстамп
! SmartHome 2014-12-16 19:40:48 info controller Restart adapter system.adapter.admin.0 because enabled
! SmartHome 2014-12-16 19:40:47 info controller instance system.adapter.admin.0 started with pid 11800
! legacy.0 NaN-aN-aN aN:aN:aN info socket.io <– readFile dashui-views.json
! legacy.0 NaN-aN-aN aN:aN:aN info socket.io <-- getIndex
! legacy.0 NaN-aN-aN aN:aN:aN info socket.io <-- getObjects
! legacy.0 NaN-aN-aN aN:aN:aN info socket.io <-- touchFile www/dashui/css/dashui-user.css
! legacy.0 NaN-aN-aN aN:aN:aN info socket.io <-- getDat `
Firefox не умеет делать объекты Date из строчек ("2014-12-12 04:05:06"), а chrome может.. Пофиксил.Спасибо за баг.
-
На немецкой ветке я уже некоторое время описываю новые возможности, которые появляются в ioBroker. Т.к. на русской ветке народ уже тоже поддтянулся, начну описывать и здесь.
-
при установке riсkshaw все дополнительные драйвера активируются и настраиваются автоматом. По идее, если активировать историю у состояний, то графики должны заработать.
-
при редактировании настроек истории появилась возможность настроить сразу несколько объектов одновременно. Для этого надо отфильтровать объекты на закладке "Объекты" (например ввести temperature) и потом нажать сверху справа кнопку с часами в строке с фильтром.
-
Появилась возможность распределить драйвера между несколькими ioBroker системами. Например к центральной системе (cubie/banana) подключить малину или windows PC на котором бежит node-red с owfs и датчиком температуры.
Для этого надо установить обычные две ioBroker системы на устройствах и потом на второстепенной выполнить в консоли: "node iobroker setup custom"
Type of objects DB [file, couch, redis], default [file]: просто нажать ENTER Host of objects DB(file), default[127.0.0.1]: ввести IP адрес головной системы или DNS имя (например "cubie" или "192.168.1.100") Port of objects DB(file), default[9001]: просто нажать ENTER Type of states DB [file, redis], default [file]:просто нажать ENTER Host of states DB (file), default[cubie]:просто нажать ENTER Port of states DB (file), default[9000]:просто нажать ENTER
После перезапуска второй системы в админке "cubie:8081" должен появится второй хост.
После этого можно перейти на закладку Драйвера, выбрать в селекторе сверху нужный хост и установить необходимый драйвер. Он должен встать на выбранном хосте. Позже хост для драйвера можно поменять в "Настройках драйверов".
-
-
- Появилась возможность распределить драйвера между несколькими ioBroker системами. Например к центральной системе (cubie/banana) подключить малину или windows PC на котором бежит node-red с owfs и датчиком температуры.
Для этого надо установить обычные две ioBroker системы на устройствах и потом на второстепенной выполнить в консоли: "node iobroker setup custom"
Type of objects DB [file, couch, redis], default [file]: просто нажать ENTER Host of objects DB(file), default[127.0.0.1]: ввести IP адрес головной системы или DNS имя (например "cubie" или "192.168.1.100") Port of objects DB(file), default[9001]: просто нажать ENTER Type of states DB [file, redis], default [file]:просто нажать ENTER Host of states DB (file), default[cubie]:просто нажать ENTER Port of states DB (file), default[9000]:просто нажать ENTER ```` `
Не получилось:
root@orangepiplus2e:/opt/iobroker# node iobroker setup custom /opt/iobroker/iobroker:1 (function (exports, require, module, __filename, __dirname) { node node_modules/iobroker.js-controller/iobroker.js $1 $2 $3 $4 $5 ^^^^^^^^^^^^ SyntaxError: Unexpected identifier at createScript (vm.js:80:10) at Object.runInThisContext (vm.js:139:10) at Module._compile (module.js:616:28) at Object.Module._extensions..js (module.js:663:10) at Module.load (module.js:565:32) at tryModuleLoad (module.js:505:12) at Function.Module._load (module.js:497:3) at Function.Module.runMain (module.js:693:10) at startup (bootstrap_node.js:191:16) at bootstrap_node.js:612:3 root@orangepiplus2e:/opt/iobroker#
-
Так что делать-то и как быть? Не прокатывает мультихост:
pi@ioBroker-RasPi:~ $ node iobroker setup custom internal/modules/cjs/loader.js:583 throw err; ^ Error: Cannot find module '/home/pi/iobroker' at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15) at Function.Module._load (internal/modules/cjs/loader.js:507:25) at Function.Module.runMain (internal/modules/cjs/loader.js:742:12) at startup (internal/bootstrap/node.js:283:19) at bootstrapNodeJSCore (internal/bootstrap/node.js:743:3)
-
Нашёл инструкции. Имеем два iobroker на разных устройствах. Одно выбираем как мастер, другое будет слейв. Поехали:
На мастере вводим:
sudo iobroker multihost enable
Просит ввести кодовую фразу, вводим, повторяем ввод.
Теперь идём на слейв:
посмотрим, какие мастеры видны
команда
sudo iobroker multihost browse
ответ:
root@ioBroker-OPi2E:~# sudo iobroker multihost browse 1 | 192.168.1.44 | host | 192.168.1.44 | "authentication required" root@ioBroker-OPi2E:~#
Отлично! Мы увидели мастера! Коннектимся к мему:
root@ioBroker-OPi2E:~# sudo iobroker multihost connect 1 | 192.168.1.44 | host | 192.168.1.44 | "authentication required" Please select host [1]: 1 Enter secret phrase for connection: ******** IP Address of the host is 127.0.0.1\. It accepts no connections. Please change. root@ioBroker-OPi2E:~#
И.. Как видим, вылетает ошибка: IP Address of the host is 127.0.0.1. It accepts no connections. Please change.
Что делать?? Хм… Тут http://www.iobroker.net/docu/?page_id=3068&lang=de нагуглил следующее:
Надо сделать так
` > nano /etc/redis/redis.confСодержащаяся строка
bind 127.0.0.1
должен быть дополнен IP-адресом сетевого адаптера, чтобы сервер Redis мог подключаться извне. так, например,
bind 127.0.0.1 192.168.1.10
Сделано, и перезапскаем:
> sudo service redis-server restart `
Ииии… Ничего не поменялось.., ошибка таже IP Address of the host is 127.0.0.1. It accepts no connections. Please change., при этом запись bind 127.0.0.1 192.168.1.10 имеется.Снова вопрос - что делать?
-
Решил ещё это сделать:
./iobroker setup custom
Сделал и вся система рухнула. не доступен веб интерфейс, хотя в консоли говорит:
root@ioBroker-OPi2E:~# iobroker status events.js:160 throw er; // Unhandled 'error' event ^ Error: listen EADDRNOTAVAIL 192.168.1.44:9000 at Object.exports._errnoException (util.js:1020:11) at exports._exceptionWithHostPort (util.js:1043:20) at Server._listen2 (net.js:1249:19) at listen (net.js:1298:10) at net.js:1408:9 at _combinedTickCallback (internal/process/next_tick.js:83:11) at process._tickCallback (internal/process/next_tick.js:104:9) root@ioBroker-OPi2E:~#
В мастере слейв стал виден, но он в оффлайне.