NEWS
Основные особенности системы
-
Bluefox, подскажи, собственно домашняя автоматизация (скрипты) будет только GUI (node-red) или текстовый редактор (ScriptEditor) так же будет присутствовать? `
Ну он уже есть.1. Сначала нужно установть javascript драйвер
2. Перейти на вкладку скрипты и создать один скрипт типа JavaScript или Coffescript
3. Написать скрипт в окне и сохранить.
4. Активировать скрипт и выставить engine, как system.adapter.javascript.0
5. Активировать javascript драйвер `
Добавил скрипт, но отрабатывать не хочет, в ccuio работал.
var TempSensorID = 'io.zwave.0.NODE2.SENSOR_MULTILEVEL.Temperature'; //ID датчика температуры var SwitchStateID = 'io.zwave.0.NODE3.SWITCH_MULTILEVEL.Level'; //ID реле обогревателя subscribe(TempSensorID, function (obj) { if (getState(TempSensorID) < 18 ) { //если температура меньше 18 градусов setState(SwitchStateID, 1 ); //включить обогреватель } else{ setState(SwitchStateID, 0 ); // иначе выключить обогреватель } });
-
@KondorSoft:`
Можешь добавить парочку логов?var TempSensorID = 'io.zwave.0.NODE2.SENSOR_MULTILEVEL.Temperature'; //ID датчика температуры var SwitchStateID = 'io.zwave.0.NODE3.SWITCH_MULTILEVEL.Level'; //ID реле обогревателя log("Script starting.."); subscribe(TempSensorID, function (obj) { log(TempSensorID + " change detected. Value " + getState(TempSensorID)); if (getState(TempSensorID) < 18 ) { //если температура меньше 18 градусов log("Switch heater on"); setState(SwitchStateID, 1 ); //включить обогреватель } else{ log("Switch heater off"); setState(SwitchStateID, 0 ); // иначе выключить обогреватель } });
-
@KondorSoft:`
Можешь добавить парочку логов?var TempSensorID = 'io.zwave.0.NODE2.SENSOR_MULTILEVEL.Temperature'; //ID датчика температуры var SwitchStateID = 'io.zwave.0.NODE3.SWITCH_MULTILEVEL.Level'; //ID реле обогревателя log("Script starting.."); subscribe(TempSensorID, function (obj) { log(TempSensorID + " change detected. Value " + getState(TempSensorID)); if (getState(TempSensorID) < 18 ) { //если температура меньше 18 градусов log("Switch heater on"); setState(SwitchStateID, 1 ); //включить обогреватель } else{ log("Switch heater off"); setState(SwitchStateID, 0 ); // иначе выключить обогреватель } }); ```` `
В лог ничего не пишет, похоже не стартует скрипт.
UPD:
Всетаки скрипт стартует, в лог пишет
2014-11-11 11:39:36.721 - info: javascript.0 starting. Version 0.1.1
2014-11-11 11:39:36.723 - info: javascript.0 requesting all states
2014-11-11 11:39:36.724 - info: javascript.0 requesting all objects
2014-11-11 11:39:36.741 - info: javascript.0 received all states
2014-11-11 11:39:37.369 - info: javascript.0 received all objects
2014-11-11 11:39:37.417 - info: javascript.0 script.js.JavaScript: Script starting..
2014-11-11 11:39:37.418 - info: javascript.0 script.js.JavaScript: registered 1 subscription and 0 schedules
61_script.png -
Переставил IoBroker, что-то не так с адаптером "javascript", постоянно в лог сыпется ошибка
! 2014-11-11 14:35:49.608 - error: pmessage system.adapter.admin.0.log{"message":"pmessage system.adapter.admin.0.log{"message":"pmessage system.adapter.admin.0.log{\"message\":\"pmessage system.adapter.admin.0.log{\\\"message\\\":\\\"TypeError: Cannot read property 'parent' of undefined\\\\n at getObjectEnums (/home/boris/ioBroker.js-controller/adapter/javascript/javascript.js:840:27)\\\\n at Object.require.stateChange (/home/boris/ioBroker.js-controller/adapter/javascript/javascript.js:66:13)\\\\n at that.states.StatesRedis.change (/home/boris/ioBroker.js-controller/lib/adapter.js:1276:80)\\\\n at RedisClient. <anonymous>(/home/boris/ioBroker.js-controller/lib/redis.js:48:21)\\\\n at RedisClient.EventEmitter.emit (events.js:106:17)\\\\n at RedisClient.return_reply (/home/boris/ioBroker.js-controller/node_modules/redis/index.js:672:22)\\\\n at HiredisReplyParser. <anonymous>(/home/boris/ioBroker.js-controller/node_modules/redis/index.js:309:14)\\\\n at HiredisReplyParser.EventEmitter.emit (events.js:95:17)\\\\n at HiredisReplyParser.execute (/home/boris/ioBroker.js-controller/node_modules/redis/lib/parser/hiredis.js:43:18)\\\\n at RedisClient.on_data (/home/boris/ioBroker.js-controller/node_modules/redis/index.js:534:27)\\\\n at Socket. <anonymous>(/home/boris/ioBroker.js-controller/node_modules/redis/index.js:91:14)\\\\n at Socket.EventEmitter.emit (events.js:95:17)\\\\n at Socket. <anonymous>(stream_readable.js:736:14)\\\\n at Socket.EventEmitter.emit (events.js:92:17)\\\\n at emitReadable (_stream_readable.js:408:10)\\\\n at emitReadable (_stream_readable.js:404:5)\\\\n at readableAddChunk (_stream_readable.js:165:9)\\\\n at Socket.Readable.push (_stream_readable.js:127:10)\\\\n at TCP.onread (net.js:526:21)\\\\n\\\",\\\"severity\\\":\\\"error\\\",\\\"from\\\":\\\"javascript.0\\\",\\\"ts\\\":1415709325176} Cannot read property 'parent' of undefined\",\"severity\":\"error\",\"from\":\"javascript.0\",\"ts\":1415709326813} Cannot read property 'parent' of undefined","severity":"error","from":"javascript.0","ts":1415709330064} Cannot read property 'parent' of undefined","severity":"error","from":"javascript.0","ts":1415709336635} Cannot read property 'parent' of undefined
! 2014-11-11 14:35:49.612 - error: TypeError: Cannot read property 'parent' of undefined
! at getObjectEnums (/home/boris/ioBroker.js-controller/adapter/javascript/javascript.js:840:27)
! at Object.require.stateChange (/home/boris/ioBroker.js-controller/adapter/javascript/javascript.js:66:13)
! at that.states.StatesRedis.change (/home/boris/ioBroker.js-controller/lib/adapter.js:1276:80)
! at RedisClient. <anonymous>(/home/boris/ioBroker.js-controller/lib/redis.js:48:21)
! at RedisClient.EventEmitter.emit (events.js:106:17)
! at RedisClient.return_reply (/home/boris/ioBroker.js-controller/node_modules/redis/index.js:672:22)
! at HiredisReplyParser. <anonymous>(/home/boris/ioBroker.js-controller/node_modules/redis/index.js:309:14)
! at HiredisReplyParser.EventEmitter.emit (events.js:95:17)
! at HiredisReplyParser.execute (/home/boris/ioBroker.js-controller/node_modules/redis/lib/parser/hiredis.js:43:18)
! at RedisClient.on_data (/home/boris/ioBroker.js-controller/node_modules/redis/index.js:534:27)
! at Socket. <anonymous>(/home/boris/ioBroker.js-controller/node_modules/redis/index.js:91:14)
! at Socket.EventEmitter.emit (events.js:95:17)
! at Socket. <anonymous>(stream_readable.js:736:14)
! at Socket.EventEmitter.emit (events.js:92:17)
! at emitReadable (_stream_readable.js:408:10)
! at emitReadable (_stream_readable.js:404:5)
! at readableAddChunk (_stream_readable.js:165:9)
! at Socket.Readable.push (_stream_readable.js:127:10)
! at TCP.onread (net.js:526:21)</anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous> -
Переставил IoBroker, что-то не так с адаптером "javascript", постоянно в лог сыпется ошибка
! 2014-11-11 14:35:49.608 - error: pmessage system.adapter.admin.0.log{"message":"pmessage system.adapter.admin.0.log{"message":"pmessage system.adapter.admin.0.log{\"message\":\"pmessage system.adapter.admin.0.log{\\\"message\\\":\\\"TypeError: Cannot read property 'parent' of undefined\\\\n at getObjectEnums (/home/boris/ioBroker.js-controller/adapter/javascript/javascript.js:840:27)\\\\n at Object.require.stateChange (/home/boris/ioBroker.js-controller/adapter/javascript/javascript.js:66:13)\\\\n at that.states.StatesRedis.change (/home/boris/ioBroker.js-controller/lib/adapter.js:1276:80)\\\\n at RedisClient. <anonymous>(/home/boris/ioBroker.js-controller/lib/redis.js:48:21)\\\\n at RedisClient.EventEmitter.emit (events.js:106:17)\\\\n at RedisClient.return_reply (/home/boris/ioBroker.js-controller/node_modules/redis/index.js:672:22)\\\\n at HiredisReplyParser. <anonymous>(/home/boris/ioBroker.js-controller/node_modules/redis/index.js:309:14)\\\\n at HiredisReplyParser.EventEmitter.emit (events.js:95:17)\\\\n at HiredisReplyParser.execute (/home/boris/ioBroker.js-controller/node_modules/redis/lib/parser/hiredis.js:43:18)\\\\n at RedisClient.on_data (/home/boris/ioBroker.js-controller/node_modules/redis/index.js:534:27)\\\\n at Socket. <anonymous>(/home/boris/ioBroker.js-controller/node_modules/redis/index.js:91:14)\\\\n at Socket.EventEmitter.emit (events.js:95:17)\\\\n at Socket. <anonymous>(stream_readable.js:736:14)\\\\n at Socket.EventEmitter.emit (events.js:92:17)\\\\n at emitReadable (_stream_readable.js:408:10)\\\\n at emitReadable (_stream_readable.js:404:5)\\\\n at readableAddChunk (_stream_readable.js:165:9)\\\\n at Socket.Readable.push (_stream_readable.js:127:10)\\\\n at TCP.onread (net.js:526:21)\\\\n\\\",\\\"severity\\\":\\\"error\\\",\\\"from\\\":\\\"javascript.0\\\",\\\"ts\\\":1415709325176} Cannot read property 'parent' of undefined\",\"severity\":\"error\",\"from\":\"javascript.0\",\"ts\":1415709326813} Cannot read property 'parent' of undefined","severity":"error","from":"javascript.0","ts":1415709330064} Cannot read property 'parent' of undefined","severity":"error","from":"javascript.0","ts":1415709336635} Cannot read property 'parent' of undefined
! 2014-11-11 14:35:49.612 - error: TypeError: Cannot read property 'parent' of undefined
! at getObjectEnums (/home/boris/ioBroker.js-controller/adapter/javascript/javascript.js:840:27)
! at Object.require.stateChange (/home/boris/ioBroker.js-controller/adapter/javascript/javascript.js:66:13)
! at that.states.StatesRedis.change (/home/boris/ioBroker.js-controller/lib/adapter.js:1276:80)
! at RedisClient. <anonymous>(/home/boris/ioBroker.js-controller/lib/redis.js:48:21)
! at RedisClient.EventEmitter.emit (events.js:106:17)
! at RedisClient.return_reply (/home/boris/ioBroker.js-controller/node_modules/redis/index.js:672:22)
! at HiredisReplyParser. <anonymous>(/home/boris/ioBroker.js-controller/node_modules/redis/index.js:309:14)
! at HiredisReplyParser.EventEmitter.emit (events.js:95:17)
! at HiredisReplyParser.execute (/home/boris/ioBroker.js-controller/node_modules/redis/lib/parser/hiredis.js:43:18)
! at RedisClient.on_data (/home/boris/ioBroker.js-controller/node_modules/redis/index.js:534:27)
! at Socket. <anonymous>(/home/boris/ioBroker.js-controller/node_modules/redis/index.js:91:14)
! at Socket.EventEmitter.emit (events.js:95:17)
! at Socket. <anonymous>(stream_readable.js:736:14)
! at Socket.EventEmitter.emit (events.js:92:17)
! at emitReadable (_stream_readable.js:408:10)
! at emitReadable (_stream_readable.js:404:5)
! at readableAddChunk (_stream_readable.js:165:9)
! at Socket.Readable.push (_stream_readable.js:127:10)
! at TCP.onread (net.js:526:21)</anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous> `
Можешь попробовать ещё раз? Я пересмотрел javascript драйвер. -
Можешь попробовать ещё раз? Я пересмотрел javascript драйвер. `
Ошибок в логе нет, завтра потестирую основательно. -
Можешь попробовать ещё раз? Я пересмотрел javascript драйвер. `
Скрипт на события реагирует но изменить состояние устройства не выходиткоманда setState(SwitchStateID, 1 );
пытается изменить состояние "io.javascript.0.zwave.0.NODE3.SWITCH_MULTILEVEL.Level" вместо "io.zwave.0.NODE3.SWITCH_MULTILEVEL.Level"
В логе такие сообщения.
2014-11-17 12:02:50.505 - info: javascript.0 script.js.Script1: io.zwave.0.NODE2.SENSOR_MULTILEVEL.Temperature change detected. Value [object Object]
2014-11-17 12:02:50.505 - info: javascript.0 script.js.Script1: Switch heater off
2014-11-17 12:02:50.507 - warn: zwave.0 Object io.javascript.0.zwave.0.NODE3.SWITCH_MULTILEVEL.Level not found
-
в адартере "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; }
Скрипт начал правильно работать.
-
в адартере "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:~#
В мастере слейв стал виден, но он в оффлайне.