NEWS
Разные ошибки
-
> Можешь опробовать owfs с гита?
У меня совсем не работает - в файле состояние датчика изменилось, а адаптер не видит,возможно потому, что нет возможности выбора: локальный или owserver,
а owserver сервис у меня выключен.
По крайней мере я не нахожу опции выбора в настройках адаптера.
Но так как там нет и функции поиска датчиков - подозреваю, что у меня установлено что-то не верно.
Как я делал :
остановил iobroker
скачал отсюда архив https://github.com/ioBroker/ioBroker.ow … master.zip
распаковал в папку /opt/iobroker
установил:
npm install ioBroker.owfs-master
После чего проверил версию в файле:
/opt/iobroker/node_modules/iobroker.owfs/package.json
"version": "0.3.0",
и запустил iobroker
проверил версию в WEB интерфейсе - тоже 0.3.0
Что должно быть в веб настройках адаптера? `
cd /opt/iobroker npm install https://github.com/ioBroker/ioBroker.owfs/tarball/master/ iobroker upload owfs iobroker restart owfs
-
cd /opt/iobroker npm install https://github.com/ioBroker/ioBroker.owfs/tarball/master/ iobroker upload owfs iobroker restart owfs
Да, спасибо - все получилось!
Работает и чтение и запись в локальном режиме.
Работает быстро!
Найдено 30 датчиков в локальном режиме.
Если некорректно работает в локальном режиме - возможно стоит посмотреть конфигурацию owfs.
Мой /etc/owfs.conf
! server: server = localhost:4304 Celsius owfs: device = /dev/i2c-0 mountpoint = /mnt/1wire allow_other timeout_volatile = 60 timeout_stable = 60 timeout_directory = 30 timeout_presence = 60 timeout_network = 0 timeout_persistent_low = 600 timeout_persistent_high = 3600 format = fic cache_size = 0
/etc/systemd/system/multi-user.target.wants/owfs.service
[Unit] Description=1-wire filesystem FUSE mount Documentation=man:owfs(1) [Service] Type=forking ExecStart=/opt/owfs/bin/owfs -c /etc/owfs.conf --pid-file /var/run/owfs/owfs.pid -C ExecStop=/usr/bin/umount /mnt/1wire RuntimeDirectory=owfs [Install] WantedBy=multi-user.target
Система Armbian VERSION=5.16
Orange Pi + 2
-
Т.е. получается, что даже если используешь локальный режим, то всеравно должен присутствовать owfs сервер в системе?
Т.к. сейчас попробовал установить драйвер в систему, где 1wire работает, но owfs сервера нет, указал каталог с датчиками, драйвер пишет что нашел 6 вместо 5 датчиков, хотя это понятно, так как он читает количество каталогов в данной директории, но в настройках датчики не появляются.
-
Там в main.js ошибка небольшая.
Надо добавить строкой 167
fs = fs || require('fs');
-
Т.е. получается, что даже если используешь локальный режим, то всеравно должен присутствовать owfs сервер в системе?
Т.к. сейчас попробовал установить драйвер в систему, где 1wire работает, но owfs сервера нет, указал каталог с датчиками, драйвер пишет что нашел 6 вместо 5 датчиков, хотя это понятно, так как он читает количество каталогов в данной директории, но в настройках датчики не появляются. `
Пакет owfs
предоставляет 4 сервиса
/lib/systemd/system/owfs.service
! ````
[Unit]
Description=1-wire filesystem FUSE mount
Documentation=man:owfs(1)
! [Service]
Type=forking
ExecStart=/opt/owfs/bin/owfs -c /etc/owfs.conf --pid-file /var/run/owfs/owfs.pid -C
ExecStop=/usr/bin/umount /mnt/1wire
RuntimeDirectory=owfs
! [Install]
WantedBy=multi-user.targetФормирует виртуальную файловую систему в точке монтирования ****/lib/systemd/system/owserver.service**** >! ```` [Unit] Description=Backend server for 1-wire control Documentation=man:owserver(1) After=syslog.target network.target >! [Service] Type=forking ExecStart=/opt/owfs/bin/owserver -c /etc/owfs.conf -C --pid-file /var/run/owfs/owserver.pid >! [Install] WantedBy=multi-user.target Also=owserver.socket
Предоставляет удаленный доступ к owfs файловой системе
(по умолчанию порт 4304)
/lib/systemd/system/owhttpd.service
! ````
[Unit]
Description=Tiny webserver for 1-wire control
Documentation=man:owhttpd(1)
After=network.target
! [Service]
Type=forking
ExecStart=/opt/owfs/bin/owhttpd -c /etc/owfs.conf --background --pid-file /var/run/owfs/owhttpd.pid
User=owfs
Group=owfs
! [Install]
WantedBy=multi-user.targetПоднимает легкий http server (на порту 2121 по умолчанию) и ****/lib/systemd/system/owftpd.service**** - не пользовался Для локального использования в файловой системе достаточно запустить лишь ****owfs**** сервис с конфигом /etc/owfs.conf вида:
! server: server = localhost:4304
Celsius
owfs: device = /dev/i2c-0
mountpoint = /mnt/1wire
allow_other
timeout_volatile = 60
timeout_stable = 60
timeout_directory = 30
timeout_presence = 60
timeout_network = 0
timeout_persistent_low = 600
timeout_persistent_high = 3600
format = fic
cache_size = 0Для удаленного использования запускается два сервиса ****owfs.service**** ****owserver.service**** или три ****+ owhttpd.service**** с конфигом /etc/owfs.conf вида:
! server: server = localhost:4304
Celsius
server: device = /dev/i2c-0
http: port = 2121
mountpoint = /mnt/1wire
allow_other
timeout_volatile = 60
timeout_stable = 60
timeout_directory = 30
timeout_presence = 60
timeout_network = 0
timeout_persistent_low = 600
timeout_persistent_high = 3600
format = fic
cache_size = 0В этом варианте можно пользоваться как удаленно так и локально. Локальный доступ осуществляется гораздо быстрее - в десятки раз, чем удаленный. Поэтому если нет необходимости в удаленном доступе - лучше пользоваться локальным. Погасив при этом ненужные сервисы owserver и owhttpd. Большое спасибо Bluefox за оперативность!
-
А теперь?
Включи debug уровень. Я встроил debug выводы для скана сенсоров, если не локально. `
Вот это в локалowfs-0 2016-08-24 10:42:08.836 debug Result for list: [""]
Сейчас семь датчиков
Когда пять находит
owfs-0 2016-08-24 11:27:00.542 debug Result for list: ['/10.DB1979020800','/28.ECB1CD040000','/28.3C3B63040000','/28.6659CE040000','/28.3E0764040000'] ```` `
Помогай. У меня с FAKED
Ошибка, где то в библиотеке owjs.
Где то здесь (node_modules/owjs/owjs.js:
// return array of dir self.list = function (path, callback) { var promise; if (path instanceof Array) { promise = Q.all(path.map(self.list)); } else { promise = self.send(path, null, OW_DIRALL) .then(function (messages) { var message = messages[0]; if (message.header.ret < 0) { throw new Error(message.header.ret); } var str = message.payload; str = str.substring(0, str.length - 1); // remove zero-char from end return str.split(','); }); } return nodify(promise, callback); };
Можешь встроить
.then(function (messages) { console.log(JSON.stringify(messages));//<----- var message = messages[0];
И выполнить
iobroker stop owfs node node_modules/iobroker.owfs/main.js --force --logs
-
В этом варианте можно пользоваться как удаленно так и локально.
Локальный доступ осуществляется гораздо быстрее - в десятки раз,
чем удаленный. Поэтому если нет необходимости в удаленном доступе -
лучше пользоваться локальным. Погасив при этом ненужные сервисы owserver и owhttpd.
Большое спасибо Bluefox за оперативность! `
Проблема в том что у меня 1wire реализован через gpio на raspberry и owfs пакет не дружит с режимом kernel. Соответственно он мне не создает виртуальную fs. -
Проблема в том что у меня 1wire реализован через gpio на raspberry и owfs пакет не дружит с режимом kernel. Соответственно он мне не создает виртуальную fs. `
Гм, не знаю - у меня мастер восьмиканальный железный.
Попробуй так:
systemctl disable owserver.service
systemctl disable owhttpd.service
Проверь есть ли у тебя /lib/systemd/system/owfs.service
(он может отсутствовать)
Если нет - создай по образу моего.
systemctl enable owfs.service
в /etc/owfs.conf
Закомментируй строки типа
server: device = /dev/i2c-0
(то что у тебя)
и поставь
owfs: device = /dev/i2c-0
(то устройство что у тебя)
После этого перезагрузи Raspberry.
Именно после перегрузки он может подхватить конфиг
-
Игрался и настраивал, не поддерживается. Там старые версии ядра еще можно было пропатчить, чтоб owfs заработал, на 4 версии ядра информации вообще не нашел. Внешнее устройство на i2c или USB в этом плане лучше.
-
Проблема в том что у меня 1wire реализован через gpio на raspberry и owfs пакет не дружит с режимом kernel. Соответственно он мне не создает виртуальную fs. `
После этого перезагрузи Raspberry.Именно после перегрузки он может подхватить конфиг `
Не , я на DELL FX170 вся инфа в подписе -
А теперь?
Включи debug уровень. Я встроил debug выводы для скана сенсоров, если не локально. `
Вот это в локалowfs-0 2016-08-24 10:42:08.836 debug Result for list: [""]
Сейчас семь датчиков
Когда пять находит
owfs-0 2016-08-24 11:27:00.542 debug Result for list: ['/10.DB1979020800','/28.ECB1CD040000','/28.3C3B63040000','/28.6659CE040000','/28.3E0764040000'] ```` `
Помогай. У меня с FAKED
filename="2016-08-24 13_57_25-ioBroker.admin.png" index="0">~~Ошибка, где то в библиотеке owjs.
Где то здесь (node_modules/owjs/owjs.js:
// return array of dir self.list = function (path, callback) { var promise; if (path instanceof Array) { promise = Q.all(path.map(self.list)); } else { promise = self.send(path, null, OW_DIRALL) .then(function (messages) { var message = messages[0]; if (message.header.ret < 0) { throw new Error(message.header.ret); } var str = message.payload; str = str.substring(0, str.length - 1); // remove zero-char from end return str.split(','); }); } return nodify(promise, callback); };
Можешь встроить
.then(function (messages) { console.log(JSON.stringify(messages));//<----- var message = messages[0];
И выполнить
iobroker stop owfs node node_modules/iobroker.owfs/main.js --force --logs ```` `
Сделал, считал когда пять
! ````
2016-08-24 18:34:08.823 - debug: owfs.0 Connect to 127.0.0.1:4304
[{"header":{"version":0,"payload":85,"ret":0,"controlflags":32,"size":84,"offset":32770},"payload":"/10.DB1979020800,/28.ECB1CD040000,/28.3C3B63040000,/28.6659CE040000,/28.3E0764040000\u0000"}]
Result for list: ["/10.DB1979020800","/28.ECB1CD040000","/28.3C3B63040000","/28.6659CE040000","/28.3E0764040000"]
2016-08-24 18:34:09.757 - debug: owfs.0 Result for list: ["/10.DB1979020800","/28.ECB1CD040000","/28.3C3B63040000","/28.6659CE040000","/28.3E0764040000"]
Result for list_: ["10.DB1979020800","28.ECB1CD040000","28.3C3B63040000","28.6659CE040000","28.3E0764040000"]
2016-08-24 18:34:09.758 - debug: owfs.0 Result for list_: ["10.DB1979020800","28.ECB1CD040000","28.3C3B63040000","28.6659CE040000","28.3E0764040000"]
[{"header":{"version":0,"payload":392,"ret":0,"controlflags":32,"size":391,"offset":0},"payload":"/10.DB1979020800/address,/10.DB1979020800/alias,/10.DB1979020800/crc8,/10.DB1979020800/errata,/10.DB1979020800/family,/10.DB1979020800/id,/10.DB1979020800/locator,/10.DB1979020800/power,/10.DB1979020800/r_address,/10.DB1979020800/r_id,/10.DB1979020800/r_locator,/10.DB1979020800/scratchpad,/10.DB1979020800/temperature,/10.DB1979020800/temphigh,/10.DB1979020800/templow,/10.DB1979020800/type\u0000"}]
[{"header":{"version":0,"payload":541,"ret":0,"controlflags":32,"size":540,"offset":0},"payload":"/28.ECB1CD040000/address,/28.ECB1CD040000/alias,/28.ECB1CD040000/crc8,/28.ECB1CD040000/errata,/28.ECB1CD040000/family,/28.ECB1CD040000/fasttemp,/28.ECB1CD040000/id,/28.ECB1CD040000/locator,/28.ECB1CD040000/power,/28.ECB1CD040000/r_address,/28.ECB1CD040000/r_id,/28.ECB1CD040000/r_locator,/28.ECB1CD040000/scratchpad,/28.ECB1CD040000/temperature,/28.ECB1CD040000/temperature10,/28.ECB1CD040000/temperature11,/28.ECB1CD040000/temperature12,/28.ECB1CD040000/temperature9,/28.ECB1CD040000/temphigh,/28.ECB1CD040000/templow,/28.ECB1CD040000/type\u0000"}]
[{"header":{"version":0,"payload":541,"ret":0,"controlflags":32,"size":540,"offset":0},"payload":"/28.3C3B63040000/address,/28.3C3B63040000/alias,/28.3C3B63040000/crc8,/28.3C3B63040000/errata,/28.3C3B63040000/family,/28.3C3B63040000/fasttemp,/28.3C3B63040000/id,/28.3C3B63040000/locator,/28.3C3B63040000/power,/28.3C3B63040000/r_address,/28.3C3B63040000/r_id,/28.3C3B63040000/r_locator,/28.3C3B63040000/scratchpad,/28.3C3B63040000/temperature,/28.3C3B63040000/temperature10,/28.3C3B63040000/temperature11,/28.3C3B63040000/temperature12,/28.3C3B63040000/temperature9,/28.3C3B63040000/temphigh,/28.3C3B63040000/templow,/28.3C3B63040000/type\u0000"}]
[{"header":{"version":0,"payload":541,"ret":0,"controlflags":32,"size":540,"offset":0},"payload":"/28.6659CE040000/address,/28.6659CE040000/alias,/28.6659CE040000/crc8,/28.6659CE040000/errata,/28.6659CE040000/family,/28.6659CE040000/fasttemp,/28.6659CE040000/id,/28.6659CE040000/locator,/28.6659CE040000/power,/28.6659CE040000/r_address,/28.6659CE040000/r_id,/28.6659CE040000/r_locator,/28.6659CE040000/scratchpad,/28.6659CE040000/temperature,/28.6659CE040000/temperature10,/28.6659CE040000/temperature11,/28.6659CE040000/temperature12,/28.6659CE040000/temperature9,/28.6659CE040000/temphigh,/28.6659CE040000/templow,/28.6659CE040000/type\u0000"}]
[{"header":{"version":0,"payload":541,"ret":0,"controlflags":32,"size":540,"offset":0},"payload":"/28.3E0764040000/address,/28.3E0764040000/alias,/28.3E0764040000/crc8,/28.3E0764040000/errata,/28.3E0764040000/family,/28.3E0764040000/fasttemp,/28.3E0764040000/id,/28.3E0764040000/locator,/28.3E0764040000/power,/28.3E0764040000/r_address,/28.3E0764040000/r_id,/28.3E0764040000/r_locator,/28.3E0764040000/scratchpad,/28.3E0764040000/temperature,/28.3E0764040000/temperature10,/28.3E0764040000/temperature11,/28.3E0764040000/temperature12,/28.3E0764040000/temperature9,/28.3E0764040000/temphigh,/28.3E0764040000/templow,/28.3E0764040000/type\u0000"}]
Result for dir: {"10.DB1979020800":["address","alias","crc8","errata","family","id","locator","power","r_address","r_id","r_locator","scratchpad","temperature","temphigh","templow","type"],"28.ECB1CD040000":["address","alias","crc8","errata","family","fasttemp","id","locator","power","r_address","r_id","r_locator","scratchpad","temperature","temperature10","temperature11","temperature12","temperature9","temphigh","templow","type"],"28.3C3B63040000":["address","alias","crc8","errata","family","fasttemp","id","locator","power","r_address","r_id","r_locator","scratchpad","temperature","temperature10","temperature11","temperature12","temperature9","temphigh","templow","type"],"28.6659CE040000":["address","alias","crc8","errata","family","fasttemp","id","locator","power","r_address","r_id","r_locator","scratchpad","temperature","temperature10","temperature11","temperature12","temperature9","temphigh","templow","type"],"28.3E0764040000":["address","alias","crc8","errata","family","fasttemp","id","locator","power","r_address","r_id","r_locator","scratchpad","temperature","temperature10","temperature11","temperature12","temperature9","temphigh","templow","type"]}
2016-08-24 18:34:09.807 - debug: owfs.0 Result for dir: {"10.DB1979020800":["address","alias","crc8","errata","family","id","locator","power","r_address","r_id","r_locator","scratchpad","temperature","temphigh","templow","type"],"28.ECB1CD040000":["address","alias","crc8","errata","family","fasttemp","id","locator","power","r_address","r_id","r_locator","scratchpad","temperature","temperature10","temperature11","temperature12","temperature9","temphigh","templow","type"],"28.3C3B63040000":["address","alias","crc8","errata","family","fasttemp","id","locator","power","r_address","r_id","r_locator","scratchpad","temperature","temperature10","temperature11","temperature12","temperature9","temphigh","templow","type"],"28.6659CE040000":["address","alias","crc8","errata","family","fasttemp","id","locator","power","r_address","r_id","r_locator","scratchpad","temperature","temperature10","temperature11","temperature12","temperature9","temphigh","templow","type"],"28.3E0764040000":["address","alias","crc8","errata","family","fasttemp","id","locator","power","r_address","r_id","r_locator","scratchpad","temperature","temperature10","temperature11","temperature12","temperature9","temphigh","templow","type"]}
sendTo "readdir" to system.adapter.admin.0 from system.adapter.owfs.0
2016-08-24 18:34:09.808 - debug: owfs.0 sendTo "readdir" to system.adapter.admin.0 from system.adapter.owfs.0
2016-08-24 18:34:13.959 - debug: inMem message *.logging system.adapter.admin.0.logging val=false, ack=true, ts=1472052853910, q=0, from=system.adapter.admin.0, lc=1472052853910Тут добавил датчик считал и получил 0 >! ```` Read /28.3E0764040000/fasttemp:22.5 2016-08-24 17:25:39.499 - debug: owfs.0 Read /28.3E0764040000/fasttemp:22.5 2016-08-24 17:25:39.524 - debug: inMem message owfs.0.* owfs.0.wires.Sensor8_fasttemp val=22.5, ack=true, ts=1472048739505, q=0, from=system.adapter.owfs.0, lc=1472040899036 2016-08-24 17:25:50.314 - debug: inMem message messagebox.system.adapter.owfs.0 messagebox.system.adapter.owfs.0 command=readdir, ip=127.0.0.1, port=4304, from=system.adapter.admin.0, ip=127.0.0.1, port=4304, id=107, ack=false, time=1472048750295, _id=83207507 Connect to 127.0.0.1:4304 2016-08-24 17:25:50.322 - debug: owfs.0 Connect to 127.0.0.1:4304 [{"header":{"version":0,"payload":-1,"ret":0,"controlflags":0,"size":0,"offset":0},"payload":""},{"header":{"version":0,"payload":102,"ret":0,"controlflags":32,"size":101,"offset":32770},"payload":"/10.DB1979020800,/28.ECB1CD040000,/28.3C3B63040000,/28.6659CE040000,/28.3E0764040000,/28.FF76034B0400\u0000"}] Result for list: [""] 2016-08-24 17:25:51.429 - debug: owfs.0 Result for list: [""] Result for list_: [] 2016-08-24 17:25:51.431 - debug: owfs.0 Result for list_: [] Result for dir: {} 2016-08-24 17:25:51.432 - debug: owfs.0 Result for dir: {} sendTo "readdir" to system.adapter.admin.0 from system.adapter.owfs.0 2016-08-24 17:25:51.432 - debug: owfs.0 sendTo "readdir" to system.adapter.admin.0 from system.adapter.owfs.0 Read /28.ECB1CD040000/fasttemp:24.5 2016-08-24 17:26:04.757 - debug: owfs.0 Read /28.ECB1CD040000/fasttemp:24.5 2016-08-24 17:26:04.786 - debug: inMem message owfs.0.* owfs.0.wires.Sensor2_fasttemp val=24.5, ack=true, ts=1472048764764, q=0, from=system.adapter.owfs.0, lc=1472046903492 Read /28.6659CE040000/fasttemp:21 2016-08-24 17:26:05.067 - debug: owfs.0 Read /28.6659CE040000/fasttemp:21 2016-08-24 17:26:05.090 - debug: inMem message owfs.0.* owfs.0.wires.Sensor6_fasttemp val=21, ack=true, ts=1472048765074, q=0, from=system.adapter.owfs.0, lc=1472048466105 Read /28.ECB1CD040000/temperature:24.5625
Вот это при локальном поиске
! ````
Read /28.ECB1CD040000/temperature:24.5
2016-08-24 17:22:09.831 - debug: owfs.0 Read /28.ECB1CD040000/temperature:24.5
2016-08-24 17:22:09.858 - debug: inMem message owfs.0.* owfs.0.wires.Sensor3_temperature val=24.5, ack=true, ts=1472048529838, q=0, from=system.adapter.owfs.0, lc=1472048319346
2016-08-24 17:22:20.355 - debug: inMem message messagebox.system.adapter.owfs.0 messagebox.system.adapter.owfs.0 command=readdir, path=/mnt/1wire, from=system.adapter.admin.0, path=/mnt/1wire, id=106, ack=false, time=1472048540343, _id=83207506
2016-08-24 17:22:20.364 - error: message messagebox.system.adapter.owfs.0 [object Object] Cannot call method 'readdir' of null
2016-08-24 17:22:20.370 - error: TypeError: Cannot call method 'readdir' of null
at processMessage (/opt/iobroker/node_modules/iobroker.owfs/main.js:169:24)
at Adapter.adapter.on.timer (/opt/iobroker/node_modules/iobroker.owfs/main.js:24:14)
at Adapter.emit (events.js:95:17)
at Object.that.states.States.change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:2096:34)
at Socket.StatesInMemClient.client.on.connectionTimeout (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInMemClient.js:45:30)
at Socket.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/component-emitter/index.js:131:20)
at Socket.onevent (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/socket.js:263:10)
at Socket.onpacket (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/socket.js:221:12)
at Manager. <anonymous>(/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/component-bind/index.js:21:15)
at Manager.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/component-emitter/index.js:131:20)
Read /28.ECB1CD040000/fasttemp:24.5
2016-08-24 17:22:34.683 - debug: owfs.0 Read /28.ECB1CD040000/fasttemp:24.5
2016-08-24 17:22:34.710 - debug: inMem message owfs.0.* owfs.0.wires.Sensor2_fasttemp val=24.5, ack=true, ts=1472048554689, q=0, from=system.adapter.owfs.0, lc=1472046903492
Read /28.3C3B63040000/fasttemp:22
2016-08-24 17:22:34.961 - debug: owfs.0 Read /28.3C3B63040000/fasttemp:22
2016-08-24 17:22:34.991 - debug: inMem message owfs.0.* owfs.0.wires.Sensor4_fasttemp val=22, ack=true, ts=1472048554968, q=0, from=system.adapter.owfs.0, lc=1472040658839
Read /28.6659CE040000/temperature:21.3125
2016-08-24 17:22:35.958 - debug: owfs.0 Read /28.6659CE040000/temperature:21.3125
2016-08-24 17:22:35.991 - debug: inMem message owfs.0.* owfs.0.wires.Sensor7_temperature val=21.3125, ack=true, ts=1472048555965, q=0, from=system.adapter.owfs.0, lc=1472048286461</anonymous> -
@jeorgep:Игрался и настраивал, не поддерживается. Там старые версии ядра еще можно было пропатчить, чтоб owfs заработал, на 4 версии ядра информации вообще не нашел. Внешнее устройство на i2c или USB в этом плане лучше.
Ну, и на всякий случай контрольный выстрел, чтобы совесть была чистаВ /etc/owfs.conf
должна быть указана точка монтирования:
mountpoint = /mnt/1wire
Она должна существовать и на нее должны бть права:
mkdir /mnt/1wire chmod 777 /mnt/1wire chown root:root /mnt/1wire
И в /etc/fuse.conf не забыть:
user_allow_other
В /boot/config.txt Raspberry Pi:
Наверное (точно не помню - у меня Orange Pi, там этого нет):
dtoverlay=w1-gpio
У меня owfs самосборный, не из репозитария debian jessie.
А вот что говорит man owfs:
* w1 kernel module This a linux-specific option for using the operating system's access to bus masters. Root access is required and the implementation was still in progress as of owfs v2.7p12 and linux 2.6.30. Bus masters are recognized and added dynamically. Details of the physical bus master are not accessible, bu they include USB, i2c and a number of GPIO designs on embedded boards. Access is restrict to superuser due to the netlink broadcast protocol employed by w1\. Multitasking must be configured (threads) on the compilation. --w1 Use the linux kernel w1 virtual bus master.
-
Я поправил на git локальный поиск. С большим количеством датчиков по сети пока ничего не делал.
-
Я поправил на git локальный поиск. С большим количеством датчиков по сети пока ничего не делал. `
Сейчас попробуюP.S. локально считывает, сейчас добавлю датчиков
-
Я поправил на git локальный поиск. С большим количеством датчиков по сети пока ничего не делал. `
Добавил датчики, ключи всё гут в новой конфигурации с чебоксом локально.А вот если сразу убрать чебокс и не сохранить, нажать на поиск сыпятся ошибки
TypeError: 2016-08-25 00:23:40.195 error at Manager.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/component-emitter/index.js:131:20) TypeError: 2016-08-25 00:23:40.195 error at Manager. (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/component-bind/index.js:21:15) TypeError: 2016-08-25 00:23:40.195 error at Socket.onpacket (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/socket.js:221:12) TypeError: 2016-08-25 00:23:40.195 error at Socket.onevent (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/socket.js:263:10) TypeError: 2016-08-25 00:23:40.195 error at Socket.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/component-emitter/index.js:131:20) TypeError: 2016-08-25 00:23:40.195 error at Socket.StatesInMemClient.client.on.connectionTimeout (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInMemClient.js:45:30) TypeError: 2016-08-25 00:23:40.195 error at Object.that.states.States.change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:2096:34) TypeError: 2016-08-25 00:23:40.195 error at Adapter.emit (events.js:95:17) TypeError: 2016-08-25 00:23:40.195 error at Adapter.adapter.on.timer (/opt/iobroker/node_modules/iobroker.owfs/main.js:24:14) TypeError: 2016-08-25 00:23:40.195 error at processMessage (/opt/iobroker/node_modules/iobroker.owfs/main.js:136:39) TypeError: 2016-08-25 00:23:40.195 error Cannot read property 'Client' of null message 2016-08-25 00:23:40.188 error messagebox.system.adapter.owfs.0 [object Object] Cannot read property 'Client' of null owfs-0 2016-08-25 00:23:40.183 debug Connect to 127.0.0.1:4304 inMem 2016-08-25 00:23:40.177 debug message messagebox.system.adapter.owfs.0 messagebox.system.adapter.owfs.0 command=readdir, ip=127.0.0.1, port=4304, from=system.adapter.admin.0, ip=127.0.0.1, port=4304, id=160, ack=false, time=1472 inMem 2016-08-25 00:23:33.570 debug message *.logging system.adapter.admin.0.logging val=true, ack=true, ts=1472073813535, q=0, from=system.adapter.admin.0, lc=1472073813535 inMem 2016-08-25 00:23:33.567 debug message *.logging system.adapter.admin.0.logging val=true, ack=true, ts=1472073813535, q=0, from=system.adapter.admin.0, lc=1472073813535 owfs-0 2016-08-25 00:23:30.755 info starting. Version 0.3.2 in /opt/iobroker/node_modules/iobroker.owfs owfs-0 2016-08-25 00:23:30.666 debug statesDB connected owfs-0 2016-08-25 00:23:30.631 debug objectDB connected host-Server1 2016-08-25 00:23:29.498 info instance system.adapter.owfs.0 started with pid 21434 host-Server1 2016-08-25 00:23:27.525 info instance system.adapter.owfs.0 terminated with code 0 (OK) owfs-0 2016-08-25 00:23:27.498 info terminating host-Server1 2016-08-25 00:23:26.971 info stopInstance system.adapter.owfs.0 killing pid 21185 host-Server1 2016-08-25 00:23:26.970 info stopInstance system.adapter.owfs.0 host-Server1 2016-08-25 00:23:26.962 info object change system.adapter.owfs.0
Bluefox, я думаю было бы здорово для каждого датчика сделать своё время опроса. Я раньше хитрил чтобы негонять опрос всех датчиков там где нужно часто (система отопления, котел, трёхходовой), запускал ещё один драйвер ну а в комнатах или ещё где рас в минуту или на улице рас в пять минут ну это ж кастыль
-
Я поправил на git локальный поиск. С большим количеством датчиков по сети пока ничего не делал. `
Тестирую работу owfs.
Установлена версия "version": "0.3.2"
Работает достаточно хорошо, быстро в локальном режиме
(в удаленном пока не тестировал - насколько я понимаю коллеги тестировали, у них работает)
Из замечаний - некорректно работает поиск.
Нашло 8 устройств - реально 15.
(Для меня некритично - я их прописываю ручками).
После редактирования OWFS свойств и записи увидел следующее:
root@art4:~# ps ax | grep owfs 1429 ? Ssl 897:08 /opt/owfs/bin/owfs -c /etc/owfs.conf --pid-file /var/run/owfs/owfs.pid -C 16952 ? Sl 2:51 io.owfs.0 17104 pts/5 S+ 0:00 grep owfs 29842 ? Sl 4:21 io.owfs.0
Запустилось два экземпляра адаптера owfs.
В результате чего во вкладке objects неверно отображаются уже отредактированные
обьекты owfs (не учтено последнее изменение)
Возможно это связано с проблеммой http://forum.iobroker.net/viewtopic.php?p=33105#p33105
Хотя здесь удвоились адаптеры на мастере.
Кстати, при решении данной проблеммы нужно учесть, что периодически мастер сигнализирует
об утраченной связи со слейвом, при том что тот жив, там хороший Ethernet,
я на нем сижу по ssh и сессия не рвется:
... 2016-08-25 06:52:14.141 - .[33mwarn.[39m: host.art4 "system.host.art1" is offline 2016-08-25 06:52:14.155 - .[33mwarn.[39m: host.art4 "system.host.art1" is offline ... 2016-08-25 08:36:34.419 - .[33mwarn.[39m: host.art4 "system.host.art1" is offline 2016-08-25 08:36:34.429 - .[33mwarn.[39m: host.art4 "system.host.art1" is offline ... 2016-08-25 11:13:33.746 - .[33mwarn.[39m: host.art4 "system.host.art1" is offline ... 2016-08-25 15:43:56.440 - .[33mwarn.[39m: host.art4 "system.host.art1" is offline 2016-08-25 15:43:56.461 - .[33mwarn.[39m: host.art4 "system.host.art1" is offline ... 2016-08-25 16:33:23.163 - .[33mwarn.[39m: host.art4 "system.host.art1" is offline 2016-08-25 16:33:23.340 - .[33mwarn.[39m: host.art4 "system.host.art1" is offline ... 2016-08-25 17:07:41.211 - .[33mwarn.[39m: host.art4 "system.host.art1" is offline 2016-08-25 17:07:41.224 - .[33mwarn.[39m: host.art4 "system.host.art1" is offline
В этом случае вариант:
Если теряется связь с мастером, то все инстанции погасить. И ждать, когда связь снова появится.
выглядит не очень хорошо - в каждом случае будут погашены реально работающие адаптеры на слейве.
В том числе перезапущены скрипты, что есть не очень хорошо.
Возможно следует пересмотреть систему детектирования слейвов или увеличить таймауты?
-
На гите:
0.3.3 (2016-08-25)
-
(bluefox) custom poll interval for every sensor
-
(bluefox) fix list of sensors over ethernet more than 5
-
-
` > Из замечаний - некорректно работает поиск.
Нашло 8 устройств - реально 15. `
Как выглядит папка /mnt/1wire ? Или где там у тебя замонтировано. -
На гите:
0.3.3 (2016-08-25)
-
(bluefox) custom poll interval for every sensor
-
(bluefox) fix list of sensors over ethernet more than 5 `
Без чебокса, мастер подключен к серверу.
! inMem 2016-08-25 23:05:32.311 debug message *.logging system.adapter.admin.0.logging val=false, ack=true, ts=1472155532267, q=0, from=system.adapter.admin.0, lc=1472155532267
! inMem 2016-08-25 23:05:32.293 debug message *.logging system.adapter.admin.0.logging val=false, ack=true, ts=1472155532267, q=0, from=system.adapter.admin.0, lc=1472155532267
! owfs-0 2016-08-25 23:05:27.269 debug sendTo "readdir" to system.adapter.admin.0 from system.adapter.owfs.0
! owfs-0 2016-08-25 23:05:27.268 error Cannot read dir: Invalid response for list [empty answer]
! owfs-0 2016-08-25 23:05:27.267 warn Invalid response for list [empty answer]: [{"header":{"version":0,"payload":-1,"ret":0,"controlflags":0,"size":0,"offset":0},"payload":""},{"header":{"version":0,"payload":-1,"ret":0,"controlflags":0
! owfs-0 2016-08-25 23:05:23.806 debug Connect to 192.168.1.11:4304
! inMem 2016-08-25 23:05:23.799 debug message messagebox.system.adapter.owfs.0 messagebox.system.adapter.owfs.0 command=readdir, ip=192.168.1.11, port=4304, from=system.adapter.admin.0, ip=192.168.1.11, port=4304, id=13, ack=false, time
! megaesp-0 2016-08-25 23:05:16.788 debug Response for 192.168.1.20[all]: 117;123;255;temp:19.50/hum:80.70;temp:19.00;OFF;RGB;NC;NC;31
! megaesp-0 2016-08-25 23:05:16.769 debug getPortState http://192.168.1.20/sec/?cmd=all
! owfs-0 2016-08-25 23:05:04.845 debug sendTo "readdir" to system.adapter.admin.0 from system.adapter.owfs.0
! owfs-0 2016-08-25 23:05:04.842 error Cannot read dir: Invalid response for list [empty answer]
! owfs-0 2016-08-25 23:05:04.839 warn Invalid response for list [empty answer]: [{"header":{"version":0,"payload":-1,"ret":0,"controlflags":0,"size":0,"offset":0},"payload":""},{"header":{"version":0,"payload":-1,"ret":0,"controlflags":0
! owfs-0 2016-08-25 23:05:01.310 debug Connect to 127.0.0.1:4304
! inMem 2016-08-25 23:05:01.304 debug message messagebox.system.adapter.owfs.0 messagebox.system.adapter.owfs.0 command=readdir, ip=127.0.0.1, port=4304, from=system.adapter.admin.0, ip=127.0.0.1, port=4304, id=12, ack=false, time=14721
! inMem 2016-08-25 23:04:56.504 debug message *.logging system.adapter.admin.0.logging val=true, ack=true, ts=1472155496459, q=0, from=system.adapter.admin.0, lc=1472155496459
! inMem 2016-08-25 23:04:56.495 debug message *.logging system.adapter.admin.0.logging val=true, ack=true, ts=1472155496459, q=0, from=system.adapter.admin.0, lc=1472155496459
! owfs-0 2016-08-25 23:04:53.929 info starting. Version 0.3.3 in /opt/iobroker/node_modules/iobroker.owfs
! owfs-0 2016-08-25 23:04:53.837 debug statesDB connected
! owfs-0 2016-08-25 23:04:53.817 debug objectDB connected
! host-Server1 2016-08-25 23:04:52.702 info instance system.adapter.owfs.0 started with pid 30470
! host-Server1 2016-08-25 23:04:50.741 info instance system.adapter.owfs.0 terminated with code 0 (OK)
! owfs-0 2016-08-25 23:04:50.720 info terminating
! host-Server1 2016-08-25 23:04:50.182 info stopInstance system.adapter.owfs.0 killing pid 29564
! host-Server1 2016-08-25 23:04:50.181 info stopInstance system.adapter.owfs.0
! host-Server1 2016-08-25 23:04:50.177 info object change system.adapter.owfs.0
–force --logsroot@Server1:/opt/iobroker# iobroker stop owfs Adapter "owfs.0 stopped. root@Server1:/opt/iobroker# node node_modules/iobroker.owfs/main.js --force --logs starting. Version 0.3.3 in /opt/iobroker/node_modules/iobroker.owfs 2016-08-25 23:53:59.435 - info: owfs.0 starting. Version 0.3.3 in /opt/iobroker/node_modules/iobroker.owfs 2016-08-25 23:54:24.315 - debug: inMem message *.logging system.adapter.admin.0.logging val=true, ack=true, ts=1472158464267, q=0, from=system.adapter.admin.0, lc=1472158464267 2016-08-25 23:54:26.874 - debug: inMem message messagebox.system.adapter.owfs.0 messagebox.system.adapter.owfs.0 command=readdir, ip=127.0.0.1, port=4304, from=system.adapter.admin.0, ip=127.0.0.1, port=4304, id=16, ack=false, time=1472158466861, _id=36007437 Connect to 127.0.0.1:4304 2016-08-25 23:54:26.880 - debug: owfs.0 Connect to 127.0.0.1:4304 Invalid response for list [empty answer]: [{"header":{"version":0,"payload":-1,"ret":0,"controlflags":0,"size":0,"offset":0},"payload":""},{"header":{"version":0,"payload":-1,"ret":0,"controlflags":0,"size":0,"offset":0},"payload":""},{"header":{"version":0,"payload":-1,"ret":0,"controlflags":0,"size":0,"offset":0},"payload":""},{"header":{"version":0,"payload":272,"ret":0,"controlflags":32,"size":271,"offset":32775},"payload":"/10.DB1979020800,/28.ECB1CD040000,/28.1C8D2D050000,/28.3C3B63040000,/28.6659CE040000,/28.3E0764040000,/28.FF1C154A0400,/28.FFF2054A0400,/28.FFE6574E0400,/28.FF76034B0400,/28.FF3E484E0400,/28.FFC1674E0400,/28.FF7B414E0400,/3A.483B1E000000,/3A.E6331E000000,/3A.DB481E000000\u0000"}] 2016-08-25 23:54:30.349 - warn: owfs.0 Invalid response for list [empty answer]: [{"header":{"version":0,"payload":-1,"ret":0,"controlflags":0,"size":0,"offset":0},"payload":""},{"header":{"version":0,"payload":-1,"ret":0,"controlflags":0,"size":0,"offset":0},"payload":""},{"header":{"version":0,"payload":-1,"ret":0,"controlflags":0,"size":0,"offset":0},"payload":""},{"header":{"version":0,"payload":272,"ret":0,"controlflags":32,"size":271,"offset":32775},"payload":"/10.DB1979020800,/28.ECB1CD040000,/28.1C8D2D050000,/28.3C3B63040000,/28.6659CE040000,/28.3E0764040000,/28.FF1C154A0400,/28.FFF2054A0400,/28.FFE6574E0400,/28.FF76034B0400,/28.FF3E484E0400,/28.FFC1674E0400,/28.FF7B414E0400,/3A.483B1E000000,/3A.E6331E000000,/3A.DB481E000000\u0000"}] Cannot read dir: Invalid response for list [empty answer] 2016-08-25 23:54:30.351 - error: owfs.0 Cannot read dir: Invalid response for list [empty answer] sendTo "readdir" to system.adapter.admin.0 from system.adapter.owfs.0 2016-08-25 23:54:30.354 - debug: owfs.0 sendTo "readdir" to system.adapter.admin.0 from system.adapter.owfs.0 2016-08-25 23:54:34.435 - debug: inMem message *.logging system.adapter.admin.0.logging val=false, ack=true, ts=1472158474389, q=0, from=system.adapter.admin.0, lc=1472158474389
С чебоксом "локальный OWFS"
-
-
Haus ну ты же стрелянный воробей. Там owserver почему-то шлёт странные ответы. Можешь посмотреть что там приходит в ответ:
Line 277 client.list = function (path, callback) { this.send(path, null, OW_DIRALL).then(function (messages) { var ret; var str; adapter.log.debug('Got ' + messages.length + ' packets'); // <================================= Check output for (var m = 0; m < messages.length; m++) { ret = messages[m].header ? messages[m].header.ret : -100; adapter.log.debug(JSON.stringify(messages[m])); // <================================= Check output if (messages[m].header && messages[m].header.payload > 0 && messages[m].header.ret >= 0) { str = messages[m].payload; break; } } if (ret < 0) { adapter.log.warn('Invalid response for list: ' + ret); callback('Invalid response'); return; } if (!str) { adapter.log.warn('Invalid response for list [empty answer]: ' + JSON.stringify(messages)); callback('Invalid response for list [empty answer]'); return; } str = str.substring(0, str.length - 1); // remove zero-char from end callback(null, str.split(',')); }, function (error) { callback(error); }); };
И подправить.