NEWS
1Wire и OWFS
-
Почитал. но видимо я не очень в теме. В основном не очень понятно - ключи и т.п.
Делаю так:
Сперва создал один экземпляр драйвера и настроил в ручную так :
Потом второй - в котором как раз нашлось 2 датчика с неизвестными адресами:
Так это выглядит на странице объекты:
Значение температуры там - это начало ответа (см. первый пост)Попробовал отключить датчик. - теперь автоматом находит 1 датчик
Включаю - опять 2 шт. Т.е. драйвер все таки как то реагирует на появление датчика. Правда адрес левый какой то.
Я понял так(но может ошибаюсь):
-
Мастер сети мне не нужен. У меня апельсинка мастер?
-
Сервер owfs я не устанавливаю? или его таки надо ставить?
-
-
Почитал. но видимо я не очень в теме. В основном не очень понятно - ключи и т.п.
Делаю так:
Сперва создал один экземпляр драйвера и настроил в ручную так :1.jpg
Потом второй - в котором как раз нашлось 2 датчика с неизвестными адресами:
2.jpg
Так это выглядит на странице объекты:3.jpg
Значение температуры там - это начало ответа (см. первый пост)
Попробовал отключить датчик. - теперь автоматом находит 1 датчик
Включаю - опять 2 шт. Т.е. драйвер все таки как то реагирует на появление датчика. Правда адрес левый какой то.
Я понял так(но может ошибаюсь):
-
Мастер сети мне не нужен. У меня апельсинка мастер?
-
Сервер owfs я не устанавливаю? или его таки надо ставить? `
Вторая картинка датчики это пример их надо удолять.
Драйвер не знает такой параметр w1-slave, можно подправить код(костыль).
opt/iobroker/node_modules/iobroker.owfs/admin/index.html
добавив
'light', 'temperature', 'fasttemp', 'w1-slave', 'set_alarm',
после сохранения
cd /opt/iobroker iobroker upload owfs iobroker restart owfs
дай скрин папки devices
-
-
Вот содержимое папки devices:
root@orange:/sys/bus/w1/devices# ls 28-031657ba9cff w1_bus_master1 root@orange:/sys/bus/w1/devices#
Вот содержимое папки датчика:
root@orange:/sys/bus/w1/devices# cd 28-031657ba9cff root@orange:/sys/bus/w1/devices/28-031657ba9cff# ls driver id name power subsystem uevent w1_slave root@orange:/sys/bus/w1/devices/28-031657ba9cff#
костыль прописал. изменений не заметил.
-
Сделал другой костыль.
Написал скрипт и подписался на изменение кривого значения температуры.
Получаю правильное значение и пишу его в другой объект:
on({id: 'owfs.0.wires.temp', change: "ne"}, function (obj) { exec('cat /sys/bus/w1/devices/28-031657ba9cff/w1_slave | grep "t="| cut -f 2 -d "="', function(error, stdout, stderr){ setState("javascript.0.scriptEnabled.testScripts.tempValue", stdout/1000, true); log(error); log(stdout); log(stderr); }) });
вроде работает. Но блин это же костыль. разобраться что к чему хотелось бы
-
Сделал другой костыль.
Написал скрипт и подписался на изменение кривого значения температуры.
Получаю правильное значение и пишу его в другой объект:
on({id: 'owfs.0.wires.temp', change: "ne"}, function (obj) { exec('cat /sys/bus/w1/devices/28-031657ba9cff/w1_slave | grep "t="| cut -f 2 -d "="', function(error, stdout, stderr){ setState("javascript.0.scriptEnabled.testScripts.tempValue", stdout/1000, true); log(error); log(stdout); log(stderr); }) });
вроде работает. Но блин это же костыль. разобраться что к чему хотелось бы `
Вообще-то то что сейчас сделал, как раз задача owfserver. Ты его установил?Если да, то там надо указывать точку монтирования. Какая у тебя?
-
Во!
Я сервер не устанавливал. Я еще в дном из предидущих постов как раз уточнял надо ли ставить. Но видимо в куче скриншотов мой вопрос затерялся ))))
Думал раз показания идут значит и не надо.
Установлю сервер отпишусь!
-
Во!
Я сервер не устанавливал. Я еще в дном из предидущих постов как раз уточнял надо ли ставить. Но видимо в куче скриншотов мой вопрос затерялся ))))
Думал раз показания идут значит и не надо.
Установлю сервер отпишусь! `
Вопрос только сможет owfserver с gpio работать?Во втором скриншоте ты работал с точкой монтирования, тогда без разницы кто туда пишет. Только драйвер заточен под owfs с порядком папок и документов от него.
-
Пока пытался настроить OWFS чтото сломалось в адаптере.
Выдает ошибки - ENOENT: no such file or directory, scandir
Что может быть?
-
Пока пытался настроить OWFS чтото сломалось в адаптере.
Выдает ошибки - ENOENT: no such file or directory, scandir
Что может быть? `
Ошибка говорит, что папка не существует. Значит ты ввёл не то имя в настройках или ..Ручками посмотри папку.
-
Да, походу неправильно написал путь. перезабил и все наладилось.
В общем наверное пока так оставлю.
-
Вопрос. как правильно поступить в моей ситуации.
Не хочу ставить OWFS сервер. уж больно много он мне не нужного дополнительно ставит. И неизвестно решит ли он как то мои вопросы.
Я выкрутился тем что использую OWFS драйвер. подписываюсь на изменение файла.
Далее я сам файл обрабатываю и пишу в нужный мне объект.
Выглядит как костыль.
Вопрос. Можно ли как то подписаться на изменение файла не используя OWFS драйвер?
-
Вопрос. как правильно поступить в моей ситуации.
Не хочу ставить OWFS сервер. уж больно много он мне не нужного дополнительно ставит. И неизвестно решит ли он как то мои вопросы.
Я выкрутился тем что использую OWFS драйвер. подписываюсь на изменение файла.
Далее я сам файл обрабатываю и пишу в нужный мне объект.
Выглядит как костыль.
Вопрос. Можно ли как то подписаться на изменение файла не используя OWFS драйвер? `
Добавь npm модуль watch в настройках javasciprt.И используй так:
var watch = require('watch'); watch.createMonitor('/sys/bus/w1/devices/28-031657ba9cff', function (monitor) { monitor.on("changed", function (f) { // Handle file changes console.log(f + ' was changed'); }); });
-
Спасибо! то что надо!
-
Всем привет.
Есть проблема с использованием драйвера OWFS, может кто сталкивался уже…
Мастер сети https://www.ab-log.ru/files/File/Datasheets/DS9490.pdf USBшный подключен в порт платы Cubietruck.
Стик определеяется в системе:
root@cubietruck:~# lsusb Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 003 Device 002: ID 04fa:2490 Dallas Semiconductor DS1490F 2-in-1 Fob, 1-Wire adapter Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Устанавливал через apt-get сервер OWFS.
Через systemctl выключил сервисы owserver, owftpd, owhttpd
Запускаю вручную строкой
root@cubietruck:~# owfs -u /mnt/1wire
Запускается и в директории /mnt/1wire появляются датчики DS18B20 10 штук, что у меня в сети.
root@cubietruck:~# cd /mnt/1wire/ root@cubietruck:/mnt/1wire# ls -l total 0 drwxrwxrwx 1 root root 4096 Jan 26 18:39 28.FF17BB641501 drwxrwxrwx 1 root root 4096 Jan 26 18:39 28.FF2A9F641503 drwxrwxrwx 1 root root 4096 Jan 26 18:39 28.FF38DD641501 drwxrwxrwx 1 root root 4096 Jan 26 18:39 28.FF81E3641501 drwxrwxrwx 1 root root 4096 Jan 26 18:39 28.FFAB9D641501 drwxrwxrwx 1 root root 4096 Jan 26 18:39 28.FFACA8641501 drwxrwxrwx 1 root root 4096 Jan 26 18:39 28.FFC3B4641501 drwxrwxrwx 1 root root 4096 Jan 26 18:39 28.FFCBCD641501 drwxrwxrwx 1 root root 4096 Jan 26 18:39 28.FFDAA8641501 drwxrwxrwx 1 root root 4096 Jan 26 18:39 28.FFF593641501 drwxrwxrwx 1 root root 4096 Jan 26 18:39 81.3E3332000000 drwxr-xr-x 1 root root 4096 Jan 26 14:52 alarm drwxr-xr-x 1 root root 4096 Jan 26 14:52 bus.1 drwxr-xr-x 1 root root 4096 Jan 26 14:52 settings drwxrwxrwx 1 root root 4096 Jan 26 18:39 simultaneous drwxr-xr-x 1 root root 4096 Jan 26 14:52 statistics drwxr-xr-x 1 root root 4096 Jan 26 14:52 structure drwxr-xr-x 1 root root 4096 Jan 26 14:52 system drwxr-xr-x 1 root root 4096 Jan 26 14:52 uncached
По этой дериктории по ssh перещаюсь с тормозами не понятными, "зависает" бывает секунд на 10-30…
Проблема в том, что ioBroker драйвер OWFS походу не всегда может получить доступ к файлам.
В логах появляются ошибки типа:
owfs.0 2018-01-26 18:29:29.205 warn Cannot read value of /mnt/1wire/28.FFF593641501/temperature: Error: EINVAL: invalid argument, read owfs.0 2018-01-26 18:27:57.704 warn Cannot read value of /mnt/1wire/28.FF17BB641501/temperature: Error: EINVAL: invalid argument, read owfs.0 2018-01-26 18:24:58.391 warn Cannot read value of /mnt/1wire/28.FF2A9F641503/temperature: Error: EINVAL: invalid argument, read owfs.0 2018-01-26 18:19:11.860 warn Cannot read value of /mnt/1wire/28.FF17BB641501/temperature: Error: EINVAL: invalid argument, read owfs.0 2018-01-26 18:16:09.019 warn Cannot read value of /mnt/1wire/28.FF38DD641501/temperature: Error: EINVAL: invalid argument, read
Иногда OWFS совсем отваливается и в директории /mnt/1wire пусто, тогда в логах ioBroker следующее:
2018-01-26 00:00:20.438 - .[33mwarn.[39m: owfs.0 Cannot read value of /mnt/1wire/28.DC0736050000/temperature: Error: ENOENT: no such file or directory, open '/mnt/1wire/28.DC0736050000/temperature' 2018-01-26 00:00:30.986 - .[33mwarn.[39m: owfs.0 Cannot read value of /mnt/1wire/28.DC0736050000/temperature: Error: ENOENT: no such file or directory, open '/mnt/1wire/28.DC0736050000/temperature' 2018-01-26 00:00:40.455 - .[33mwarn.[39m: owfs.0 Cannot read value of /mnt/1wire/28.DC0736050000/temperature: Error: ENOENT: no such file or directory, open '/mnt/1wire/28.DC0736050000/temperature' 2018-01-26 00:00:50.897 - .[33mwarn.[39m: owfs.0 Cannot read value of /mnt/1wire/28.DC0736050000/temperature: Error: ENOENT: no such file or directory, open '/mnt/1wire/28.DC0736050000/temperature' 2018-01-26 00:01:00.464 - .[33mwarn.[39m: owfs.0 Cannot read value of /mnt/1wire/28.DC0736050000/temperature: Error: ENOENT: no such file or directory, open '/mnt/1wire/28.DC0736050000/temperature' 2018-01-26 00:01:10.907 - .[33mwarn.[39m: owfs.0 Cannot read value of /mnt/1wire/28.DC0736050000/temperature: Error: ENOENT: no such file or directory, open '/mnt/1wire/28.DC0736050000/temperature' 2018-01-26 00:01:20.491 - .[33mwarn.[39m: owfs.0 Cannot read value of /mnt/1wire/28.DC0736050000/temperature: Error: ENOENT: no such file or directory, open '/mnt/1wire/28.DC0736050000/temperature' 2018-01-26 00:01:31.106 - .[33mwarn.[39m: owfs.0 Cannot read value of /mnt/1wire/28.DC0736050000/temperature: Error: ENOENT: no such file or directory, open '/mnt/1wire/28.DC0736050000/temperature' 2018-01-26 00:01:40.495 - .[33mwarn.[39m: owfs.0 Cannot read value of /mnt/1wire/28.DC0736050000/temperature: Error: ENOENT: no such file or directory, open '/mnt/1wire/28.DC0736050000/temperature' 2018-01-26 00:01:50.957 - .[33mwarn.[39m: owfs.0 Cannot read value of /mnt/1wire/28.DC0736050000/temperature: Error: ENOENT: no such file or directory, open '/mnt/1wire/28.DC0736050000/temperature' 2018-01-26 00:02:00.518 - .[33mwarn.[39m: owfs.0 Cannot read value of /mnt/1wire/28.DC0736050000/temperature: Error: ENOENT: no such file or directory, open '/mnt/1wire/28.DC0736050000/temperature' 2018-01-26 00:02:10.957 - .[33mwarn.[39m: owfs.0 Cannot read value of /mnt/1wire/28.DC0736050000/temperature: Error: ENOENT: no such file or directory, open '/mnt/1wire/28.DC0736050000/temperature' 2018-01-26 00:02:20.526 - .[33mwarn.[39m: owfs.0 Cannot read value of /mnt/1wire/28.DC0736050000/temperature: Error: ENOENT: no such file or directory, open '/mnt/1wire/28.DC0736050000/temperature' 2018-01-26 00:02:31.066 - .[33mwarn.[39m: owfs.0 Cannot read value of /mnt/1wire/28.DC0736050000/temperature: Error: ENOENT: no such file or directory, open '/mnt/1wire/28.DC0736050000/temperature' 2018-01-26 00:02:40.540 - .[33mwarn.[39m: owfs.0 Cannot read value of /mnt/1wire/28.DC0736050000/temperature: Error: ENOENT: no such file or directory, open '/mnt/1wire/28.DC0736050000/temperature' 2018-01-26 00:02:50.978 - .[33mwarn.[39m: owfs.0 Cannot read value of /mnt/1wire/28.DC0736050000/temperature: Error: ENOENT: no such file or directory, open '/mnt/1wire/28.DC0736050000/temperature' 2018-01-26 00:03:00.555 - .[33mwarn.[39m: owfs.0 Cannot read value of /mnt/1wire/28.DC0736050000/temperature: Error: ENOENT: no such file or directory, open '/mnt/1wire/28.DC0736050000/temperature' 2018-01-26 00:03:10.997 - .[33mwarn.[39m: owfs.0 Cannot read value of /mnt/1wire/28.DC0736050000/temperature: Error: ENOENT: no such file or directory, open '/mnt/1wire/28.DC0736050000/temperature' 2018-01-26 00:03:20.568 - .[33mwarn.[39m: owfs.0 Cannot read value of /mnt/1wire/28.DC0736050000/temperature: Error: ENOENT: no such file or directory, open '/mnt/1wire/28.DC0736050000/temperature' 2018-01-26 00:03:31.008 - .[33mwarn.[39m: owfs.0 Cannot read value of /mnt/1wire/28.DC0736050000/temperature: Error: ENOENT: no such file or directory, open '/mnt/1wire/28.DC0736050000/temperature' 2018-01-26 00:03:40.573 - .[33mwarn.[39m: owfs.0 Cannot read value of /mnt/1wire/28.DC0736050000/temperature: Error: ENOENT: no such file or directory, open '/mnt/1wire/28.DC0736050000/temperature' 2018-01-26 00:03:51.017 - .[33mwarn.[39m: owfs.0 Cannot read value of /mnt/1wire/28.DC0736050000/temperature: Error: ENOENT: no such file or directory, open '/mnt/1wire/28.DC0736050000/temperature' 2018-01-26 00:04:00.591 - .[33mwarn.[39m: owfs.0 Cannot read value of /mnt/1wire/28.DC0736050000/temperature: Error: ENOENT: no such file or directory, open '/mnt/1wire/28.DC0736050000/temperature' 2018-01-26 00:04:11.037 - .[33mwarn.[39m: owfs.0 Cannot read value of /mnt/1wire/28.DC0736050000/temperature: Error: ENOENT: no such file or directory, open '/mnt/1wire/28.DC0736050000/temperature' 2018-01-26 00:04:20.608 - .[33mwarn.[39m: owfs.0 Cannot read value of /mnt/1wire/28.DC0736050000/temperature: Error: ENOENT: no such file or directory, open '/mnt/1wire/28.DC0736050000/temperature'
Как продиагностировать OWFS, я понимаю, что проблема не в ioBroker?
Может я не правильно настроил/запустил/установил?
Настройки драйвера OWFS на скриншоте.
1238_pic_313.jpg -
У меня работает так:
Запущен сервис owserver````
ps ax|grep owfs
/usr/bin/owserver -uall -p 4304 --pid-file /var/run/owfs/owserver.pidИ такие настройки. Галку локальный IP, почему не помню не поставил. IoBroker и OWFS на одной машине. [894_2018-01-26_20-17-57.png](/assets/uploads/files/894_2018-01-26_20-17-57.png)
-
If the structure of w1/devices similar to owfs, you don't need owfs. Just setup the path in adapter settings.