NEWS
Ошибка создания объекта в OWFS
-
Главное посмотри почему с удалённого неработает `
Поменяй в файле /etc/owfs.conf# With this setup, any client (but owserver) uses owserver on the # local machine... !server: -s 4304
и
####################### OWSERVER ######################## server: -p 4304
У тебя только локальный доступ настроен `
Это я уже давно сделал, проблема в чём то другом. Когда я руками заполняю датчики всё работает, а Read addresses "Найдено 0 сенсор(a/ов)"
ioBroker server 192.168.1.11
owfs server 192.168.1.10 (где подключён адаптер) owfs.conf
! # Sample configuration file for the OWFS suite for Debian GNU/Linux.
! #
! #
! # This is the main OWFS configuration file. You should read the
! # owfs.conf(5) manual page in order to understand the options listed
! # here.
! ######################## SOURCES ########################
! #
! # With this setup, any client (but owserver) uses owserver on the
! # local machine…
! ! server: server = 4304
! #
! # ...and owserver uses the real hardware, by default fake devices
! # This part must be changed on real installation
! #server: FAKE = DS18S20,DS2405
! #
! # USB device: DS9490
! #server: usb = all
! #
! # Serial port: DS9097
! server: passive = /dev/ttyUSB0
! server: 8bit
! #server: passive = /dev/ttyUSB1
! #server: 8bit
! #
! # owserver tcp address
! #server: server = 192.168.10.1:3131
! #
! # random simulated device
! #server: FAKE = DS18S20,DS2405
! #
! ######################### OWFS ##########################
! #
! mountpoint = /mnt/1wire
! allow_other
! #
! ####################### OWHTTPD #########################
! http: port = 2121
! ####################### OWFTPD ##########################
! ftp: port = 2120
! ####################### OWSERVER ########################
! server: port = 4304 -
@Haus:
owfs 0.2.1Зачем при read датчик выдаёт fasttemp?
Я уже выкладывал log Response for write /Sensor2_temperature/temperature: true ????
! inMem 2016-07-29 13:33:19.406 debug message owfs.1.* owfs.1.wires.Sensor2_temperature val=24.5, ack=true, ts=1469788399389, q=0, from=system.adapter.owfs.1, lc=1469788399389
! owfs-1 2016-07-29 13:33:19.383 debug Read /28.FFF67D3B0400/temperature:24.5
! inMem 2016-07-29 13:33:18.575 debug message owfs.1.* owfs.1.wires.Sensor1_fasttemp val=24.5, ack=true, ts=1469788398559, q=0, from=system.adapter.owfs.1, lc=1469788398559
! owfs-1 2016-07-29 13:33:18.551 debug Read /28.FFF67D3B0400/fasttemp:24.5
! inMem 2016-07-29 13:32:49.589 debug message owfs.1.* owfs.1.wires.Sensor2_temperature val=0, ack=true, ts=1469788369575, q=0, from=system.adapter.owfs.1, lc=1469788369575
! owfs-1 2016-07-29 13:32:49.566 debug Response for write /Sensor2_temperature/temperature: true
! inMem 2016-07-29 13:32:49.507 debug message owfs.1.* owfs.1.wires.Sensor1_fasttemp val=0, ack=true, ts=1469788369492, q=0, from=system.adapter.owfs.1, lc=1469788369492
! owfs-1 2016-07-29 13:32:49.487 debug Response for write /Sensor1_fasttemp/fasttemp: true
! inMem 2016-07-29 13:32:49.479 debug message owfs.1.* owfs.1.wires.Sensor2_temperature val=24.5, ack=true, ts=1469788369458, q=0, from=system.adapter.owfs.1, lc=1469788369458
! owfs-1 2016-07-29 13:32:49.387 debug Read /28.FFF67D3B0400/temperature:24.5
! inMem 2016-07-29 13:32:48.612 debug message owfs.1.* owfs.1.wires.Sensor1_fasttemp val=24.5, ack=true, ts=1469788368599, q=0, from=system.adapter.owfs.1, lc=1469788368599
! owfs-1 2016-07-29 13:32:48.589 debug Read /28.FFF67D3B0400/fasttemp:24.5
! owfs-1 2016-07-29 13:32:48.509 debug Write /28.FFF67D3B0400/temperature with "0"
! owfs-1 2016-07-29 13:32:48.466 debug Write /28.FFF67D3B0400/fasttemp with "0"
! inMem 2016-07-29 13:32:48.450 debug message owfs.1.* owfs.1.wires.Sensor2_temperature val=0, ack=null, ts=1469788368431, q=0, from=system.adapter.owfs.1, lc=1469788368431
! inMem 2016-07-29 13:32:48.407 debug message owfs.1.* owfs.1.wires.Sensor1_fasttemp val=0, ack=null, ts=1469788368378, q=0, from=system.adapter.owfs.1, lc=1469788368378
! owfs-1 2016-07-29 13:32:48.231 info starting. Version 0.2.1 in /opt/iobroker/node_modules/iobroker.owfs
! owfs-1 2016-07-29 13:32:48.139 debug statesDB connected
! owfs-1 2016-07-29 13:32:48.120 debug objectDB connected
! host-Server1 2016-07-29 13:32:46.864 info instance system.adapter.owfs.1 started with pid 3576
! host-Server1 2016-07-29 13:32:44.896 info instance system.adapter.owfs.1 terminated with code 0 (OK)
! owfs-1 2016-07-29 13:32:44.873 info terminating -
> Зачем при read датчик выдаёт fasttemp?
Потому что ты сказал в настройках это читать.Есть новая версия на гит
-
> Зачем при read датчик выдаёт fasttemp?
Потому что ты сказал в настройках это читать.Есть новая версия на гит `
Где я такое говорил? -
-
Потому что ты сказал в настройках это читать.
Есть новая версия на гит
Где я такое говорил?
в настройках
Ты настроил драйвер так, что бы он читал эту переменную. Удали её из конфига. `
Чего та недопонимаю, ставлю новый owfs.2, включаю, захожу в настройки по умолчанию, нажимаю read получаю на DS18B20 два параметра 28.FFF67D3B0400/temperature, 28.FFF67D3B0400/fasttemp -
Где я такое говорил? `
в настройках
Ты настроил драйвер так, что бы он читал эту переменную. Удали её из конфига.
Чего та недопонимаю, ставлю новый owfs.2, включаю, захожу в настройки по умолчанию, нажимаю read получаю на DS18B20 два параметра 28.FFF67D3B0400/temperature, 28.FFF67D3B0400/fasttemp
Нажать на удалить не пробовал?Сначала создаются возможные полезные значения, а тебе выбирать, хочешь ты их читать или нет
48_2016-07-29_23_32_51-iobroker.admin.png -
в настройках
Ты настроил драйвер так, что бы он читал эту переменную. Удали её из конфига.
Чего та недопонимаю, ставлю новый owfs.2, включаю, захожу в настройки по умолчанию, нажимаю read получаю на DS18B20 два параметра 28.FFF67D3B0400/temperature, 28.FFF67D3B0400/fasttemp
Нажать на удалить не пробовал?Сначала создаются возможные полезные значения, а тебе выбирать, хочешь ты их читать или нет `
Не знаю кому и зачем нужен fasttemp. Закомментировал в admin````
'heat_index',
'humidex',
'light',
'temperature',
//'fasttemp',
'set_alarm',
'date', -
DS2408 в OWFS:
(http://owfs.org/uploads/DS2408.3.html#sect10)
PIO используются для записи в них 0/1
sensed используются для чтения информации с портов
latch используются для получения информации об изменении состояния порта
(бит 1 указывает, что состояние изменялось)
Для очистки состояния latch применяется запись в любой из latch портов. Например:
echo 1 > latch.0
При этом очищаюся ВСЕ восемь latch портов, то-есть для сохранения информации
об изменениях состояний портов со времени последней очистки - необходимо сохранить latch.ALL
и лишь потом производить очистку.
Перед использованием DS2408 необходимо провести ее инициализацию:
echo 1 > out_of_testmode
И для использования функции запись в порт - необходимо включить strobe:
echo 1 > strobe
В iobroker нужно использовать как минимум PIO и sensed - для возможности записи/чтения в порт.
-
После установки версии 0.2.2 проблема с созданием объектов решилась.
Но очень долгая реакция на изменение состояния порта (sensed) в DS2408,
где-то 30 сек или больше, что недопустимо например для датчика движения и включения света.
У меня датчики HC-SR501 подключены к портам DS2408.
Параллельно запускаю скрипт:
#!/bin/bash while true; do ALL=`cat /mnt/1wire/29.XXXXXX000000/sensed.ALL` echo $ALL sleep 1 done
И наблюдаю в закладке 'Objects' когда изменяется состояние (например value.sensed.4).
Задержка до пол-минуты относительно скрипта.
Реально такая задержка не позволит использовать драйвер OWFS для реакции на быстрые события.
-
После установки версии 0.2.2 проблема с созданием объектов решилась.
Но очень долгая реакция на изменение состояния порта (sensed) в DS2408,
где-то 30 сек или больше, что недопустимо например для датчика движения и включения света.
У меня датчики HC-SR501 подключены к портам DS2408.
Параллельно запускаю скрипт:
#!/bin/bash while true; do ALL=`cat /mnt/1wire/29.XXXXXX000000/sensed.ALL` echo $ALL sleep 1 done
И наблюдаю в закладке 'Objects' когда изменяется состояние (например value.sensed.4).
Задержка до пол-минуты относительно скрипта.
Реально такая задержка не позволит использовать драйвер OWFS для реакции на быстрые события. `
Привет,Может есть возможность проверить удалённое подключение или большее количество датчиков на 127.0.0.1, у меня Read addresses "Найдено 0 сенсор(a/ов).
-
` > Привет,
Может есть возможность проверить удалённое подключение или большее количество датчиков на 127.0.0.1, у меня Read addresses "Найдено 0 сенсор(a/ов). `
Привет,
я не совсем понял вопрос.
Если про мое подключение - используется Orange Pi+2.
Как мастер - использую восьмиканальный DS2482-800 (http://datasheets.maximintegrated.com/e … 82-800.pdf).
Ибо 1-wire не любит подключения звездой, а в моем случае сервер с мастером находятся посередине топологии, пришлось использовать ее.
Реакция на уровне файлов OWFS или owserver неплохая - где-то на уровне секунды (точнее не замерял).
Датчиков используется много разнообразных.
И если для датчиков температуры, влажности, протечки воды, утечки газа - задержка в пол минуты допустима,
то для включалелей света или датчиков движения на портах DS2408 - она критична.
Жена не будет пол минуты после входа в помещение ждать пока загорится свет
В результате параллельного запуска скрипта и привязаного обьекта в ioBroker -
определил, что запаздывание от датчика движения происходит где-то до присвоения значения обьекту в ioBroker-е.
То-есть скрипт уже давно показал, что состояние изменилось, а в ioBrokere оно остается неизмененным еще где-то 30 сек.
Можно конечно обрабатывать состояние на уровне Bash или написать скрипт на Питоне и уже после
обработки изменять состояние переменной в ioBroker - но тогда драйвер OWFS не нужен.
-
у меня при записи через FS(добавил строчки в драйвер) - реакция на изменении менее 1 сек. 7 шт DS2413(движение, стиральная машина, нагреватель воды, насос подкачки воды и т.д.). порт А вход с детектора движения, В выход на реле.
-
> у меня при записи через FS(добавил строчки в драйвер) - реакция на изменении менее 1 сек. 7 шт DS2413(движение, стиральная машина, нагреватель воды, насос подкачки воды и т.д.). порт А вход с детектора движения, В выход на реле.
Клас!
делись строчками в драйвере
-
у меня при записи через FS(добавил строчки в драйвер) - реакция на изменении менее 1 сек. 7 шт DS2413(движение, стиральная машина, нагреватель воды, насос подкачки воды и т.д.). порт А вход с детектора движения, В выход на реле. `
Какой адаптер, как подключен? -
адаптер DS9490B, DS9490R USB to 1-Wire.
подключение датчиков звездой, DS2413(7 шт), DS2405, питание 5В на DS18B20(21 шт), кабель UTP5. максимальная длинна 30 метров до бани.
запускаю сервис owserver owfs
добавил запись значений через FS в /opt/iobroker/node_modules/iobroker.owfs/main.js
var fs = require('fs');
…
function writeWire(wire, value) {
if (wire) {
adapter.log.debug('Write /' + wire.id + '/' + (wire.property || 'temperature') + ' with "' + value + '"');
var path1wire = "/var/1-wire";
if (wire.property == "sensed.BYTE") {
var pathfs = "/" + wire.id + "/PIO.BYTE";
} else if (wire.property == "PIO.BYTE") {
var pathfs = "/" + wire.id + "/PIO.BYTE";
} else {
var pathfs = "/" + wire.id + '/' + (wire.property || 'temperature');
}
path1wire = path1wire + pathfs;
var dataV = parseInt(value);
adapter.log.debug(path1wire + ' with "' + dataV + '"');
// Пишем в файл.
fs.writeFile(path1wire, dataV, function(err, written) {
if (err) {
// Произошла ошибка при записи
adapter.log.warn('Cannot write value of ' + path1wire + ': ' + err);
}
});
client.write('/' + wire.id + '/' + (wire.property || 'temperature'), value, function(err, message) {
adapter.log.debug('Write /' + wire.id + '/' + (wire.property || 'temperature') + ':' + message);
//no idea what is received here
if (err) {
adapter.log.warn('Cannot write value of /' + wire.id + '/' + (wire.property || 'temperature') + ': ' + err);
}
});
}
}
-
> добавил запись значений через FS в /opt/iobroker/node_modules/iobroker.owfs/main.js
Спасибо! буду пробовать` > подключение датчиков звездой, DS2413(7 шт), DS2405, питание 5В на DS18B20(21 шт), кабель UTP5. максимальная длинна 30 метров до бани.
запускаю сервис owserver owfs `
У меня тоже UTP5 до 20 м в луче звезды.питание 9В и около датчиков ставлю стабилизатор 7805 - копейки стоит, а душе спокойнее
Раньше при питании 5В и включениях реле - бывали сбои.
Все на одном UPS ES 550G.
Мне больше нравится DS2408S - 8-канальный ключ. Часть портов использую на вход
(датчики движения, герконы, выходы компараторов датчиков дыма/газа, протечки, фотодиоды и т. п.)
часть на управление (светодиоды - индикация, реле, тиристоры).
В DS2408 есть приятная особенность - alarm.
Раньше, когда моя система была на Raspberry Pi и самописных Python/bash скриптах -
ресурсов катастрофически не хватало, и удобно было в цикле просматривать лишь папку alarm
и при возникновении алармов про изменение состояния порта -
уже распарсывать инфу по отдельным портам, вместо того, чтобы бегать по всем папкам.
Для датчиков освещения, влажности, поточных значений датчиков газа/дыма - использую DS2438.
Для отсылки срочных сообщений - GPRS Shield на SIM900.
-
адаптер DS9490B, DS9490R USB to 1-Wire.
подключение датчиков звездой, DS2413(7 шт), DS2405, питание 5В на DS18B20(21 шт), кабель UTP5. максимальная длинна 30 метров до бани.
запускаю сервис owserver owfs
добавил запись значений через FS в /opt/iobroker/node_modules/iobroker.owfs/main.js `
Alekseym6, в ioBroker в драйвере owfs есть кнопка "Read addresses" она у тебя находит датчики и ключи? -
> добавил запись значений через FS в /opt/iobroker/node_modules/iobroker.owfs/main.js
Наверное тогда нужно закомментировать строки:client.write('/' + wire.id + '/' + (wire.property || 'temperature'), value, function (err, message) { ... });
Чтобы не было попытки клиентом переписать повторно значение.
И добавить для чтения что-то вроде:
function readWire(wire) { if (wire) { var path1wire = "/mnt/1wire"; var pathfs = "/" + wire.id + '/' + (wire.property || 'temperature'); path1wire = path1wire + pathfs; fs.readFile(path1wire, 'utf8', function (err,result) { if (err) { adapter.log.warn('Cannot read value of ' + path1wire + ': ' + err); } });
Закомментировав:
` > client.read('/' + wire.id + '/' + (wire.property || 'temperature'), function(err, result) {…
}); `
Вечером дома протестирую
-
адаптер owfs не обновляю, версия 0.0.2. кнопки поиска нет.
строчку не исключаю - для проверки