Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Русский
  3. ioBroker
  4. Ошибка
  5. ioBroker ошибки
  6. Ошибка создания объекта в OWFS

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    646

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    18
    1
    5.7k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.5k

Ошибка создания объекта в OWFS

Scheduled Pinned Locked Moved ioBroker ошибки
74 Posts 5 Posters 19.9k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • BluefoxB Offline
    BluefoxB Offline
    Bluefox
    wrote on last edited by
    #58

    @Haus:

    @Bluefox:

    @Haus:

    Где я такое говорил? `
    :D

    в настройках

    Ты настроил драйвер так, что бы он читал эту переменную. Удали её из конфига. Чего та недопонимаю, ставлю новый owfs.2, включаю, захожу в настройки по умолчанию, нажимаю read получаю на DS18B20 два параметра 28.FFF67D3B0400/temperature, 28.FFF67D3B0400/fasttemp
    Нажать на удалить не пробовал?

    Сначала создаются возможные полезные значения, а тебе выбирать, хочешь ты их читать или нет
    48_2016-07-29_23_32_51-iobroker.admin.png

    1 Reply Last reply
    0
    • H Offline
      H Offline
      Haus
      wrote on last edited by
      #59

      @Bluefox:

      @Haus:

      @Bluefox:

      :D

      в настройках

      Ты настроил драйвер так, что бы он читал эту переменную. Удали её из конфига. Чего та недопонимаю, ставлю новый owfs.2, включаю, захожу в настройки по умолчанию, нажимаю read получаю на DS18B20 два параметра 28.FFF67D3B0400/temperature, 28.FFF67D3B0400/fasttemp
      Нажать на удалить не пробовал?

      Сначала создаются возможные полезные значения, а тебе выбирать, хочешь ты их читать или нет `
      Не знаю кому и зачем нужен fasttemp. Закомментировал в admin````
      'heat_index',
      'humidex',
      'light',
      'temperature',
      //'fasttemp',
      'set_alarm',
      'date',

      js-controller: 1.5.7 / node.js: v8.15.1/ npm: 6.4.1

      admin: 3.6.0

      javascript: 4.1.10

      web: 2.4.1 vis: 1.1.10

      cloud: 2.6.2

      Server: DELL FX170 / linux: Debian 9.5 Stretch

      Adapter: MegaD-2561, Mega-ES…

      1 Reply Last reply
      0
      • J Offline
        J Offline
        jeorgep
        wrote on last edited by
        #60

        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 - для возможности записи/чтения в порт.

        1 Reply Last reply
        0
        • J Offline
          J Offline
          jeorgep
          wrote on last edited by
          #61

          После установки версии 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 для реакции на быстрые события.

          1 Reply Last reply
          0
          • H Offline
            H Offline
            Haus
            wrote on last edited by
            #62

            @jeorgep:

            После установки версии 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/ов).

            js-controller: 1.5.7 / node.js: v8.15.1/ npm: 6.4.1

            admin: 3.6.0

            javascript: 4.1.10

            web: 2.4.1 vis: 1.1.10

            cloud: 2.6.2

            Server: DELL FX170 / linux: Debian 9.5 Stretch

            Adapter: MegaD-2561, Mega-ES…

            1 Reply Last reply
            0
            • J Offline
              J Offline
              jeorgep
              wrote on last edited by
              #63

              ` > Привет,

              Может есть возможность проверить удалённое подключение или большее количество датчиков на 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 не нужен.

              1 Reply Last reply
              0
              • A Offline
                A Offline
                Alekseym6
                wrote on last edited by
                #64

                у меня при записи через FS(добавил строчки в драйвер) - реакция на изменении менее 1 сек. 7 шт DS2413(движение, стиральная машина, нагреватель воды, насос подкачки воды и т.д.). порт А вход с детектора движения, В выход на реле.

                1 Reply Last reply
                0
                • J Offline
                  J Offline
                  jeorgep
                  wrote on last edited by
                  #65

                  > у меня при записи через FS(добавил строчки в драйвер) - реакция на изменении менее 1 сек. 7 шт DS2413(движение, стиральная машина, нагреватель воды, насос подкачки воды и т.д.). порт А вход с детектора движения, В выход на реле.

                  Клас!

                  делись строчками в драйвере :-)

                  1 Reply Last reply
                  0
                  • H Offline
                    H Offline
                    Haus
                    wrote on last edited by
                    #66

                    @Alekseym6:

                    у меня при записи через FS(добавил строчки в драйвер) - реакция на изменении менее 1 сек. 7 шт DS2413(движение, стиральная машина, нагреватель воды, насос подкачки воды и т.д.). порт А вход с детектора движения, В выход на реле. `
                    Какой адаптер, как подключен?

                    js-controller: 1.5.7 / node.js: v8.15.1/ npm: 6.4.1

                    admin: 3.6.0

                    javascript: 4.1.10

                    web: 2.4.1 vis: 1.1.10

                    cloud: 2.6.2

                    Server: DELL FX170 / linux: Debian 9.5 Stretch

                    Adapter: MegaD-2561, Mega-ES…

                    1 Reply Last reply
                    0
                    • A Offline
                      A Offline
                      Alekseym6
                      wrote on last edited by
                      #67

                      адаптер 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);

                      }

                      });

                      }

                      }

                      1 Reply Last reply
                      0
                      • J Offline
                        J Offline
                        jeorgep
                        wrote on last edited by
                        #68

                        > добавил запись значений через 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.

                        1 Reply Last reply
                        0
                        • H Offline
                          H Offline
                          Haus
                          wrote on last edited by
                          #69

                          @Alekseym6:

                          адаптер 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" она у тебя находит датчики и ключи?

                          js-controller: 1.5.7 / node.js: v8.15.1/ npm: 6.4.1

                          admin: 3.6.0

                          javascript: 4.1.10

                          web: 2.4.1 vis: 1.1.10

                          cloud: 2.6.2

                          Server: DELL FX170 / linux: Debian 9.5 Stretch

                          Adapter: MegaD-2561, Mega-ES…

                          1 Reply Last reply
                          0
                          • J Offline
                            J Offline
                            jeorgep
                            wrote on last edited by
                            #70

                            > добавил запись значений через 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) {

                            …

                            }); `

                            Вечером дома протестирую

                            1 Reply Last reply
                            0
                            • A Offline
                              A Offline
                              Alekseym6
                              wrote on last edited by
                              #71

                              адаптер owfs не обновляю, версия 0.0.2. кнопки поиска нет.

                              строчку не исключаю - для проверки

                              1 Reply Last reply
                              0
                              • J Offline
                                J Offline
                                jeorgep
                                wrote on last edited by
                                #72

                                Мои изменения в <u>/opt/iobroker/node_modules/iobroker.owfs/main.js</u>

                                (версия 0.2.2 (2016-07-29))

                                var fs = require('fs');

                                Функция writeWire

                                ! function writeWire(wire, value) {
                                ! if (wire) {
                                ! adapter.log.debug('Write /' + wire.id + '/' + (wire.property || 'temperature') + ' with "' + value + '"');
                                ! var path1wire = "/mnt/1wire";
                                ! 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');
                                ! }
                                ! var pathfile = path1wire + pathfs;
                                ! var dataV = parseInt(value);
                                ! adapter.log.debug(pathfile + ' with "' + dataV + '"');
                                ! // Write to file
                                ! fs.writeFile(pathfile, dataV, function(err, written) {
                                ! if (err) {
                                ! // Write error
                                ! adapter.log.warn('Cannot write value of ' + pathfile + ': ' + JSON.stringify(err));
                                ! adapter.setState('wires.' + wire._name, {val: 0, ack: true, q: 0x84});
                                ! } else {
                                ! if (wire.property.indexOf('PIO') === -1) {
                                ! adapter.setState('wires.' + wire._name, parseFloat(value) || 0, true);
                                ! } else {
                                ! adapter.setState('wires.' + wire._name, !(value === '0' || value === 0 || value === 'false' || value === false), true);
                                ! }
                                ! }
                                ! });
                                ! /*
                                ! client.write('/' + wire.id + '/' + (wire.property || 'temperature'), value, function (err, message) {
                                ! if (message !== undefined) {
                                ! adapter.log.debug('Response for write /' + wire.name + '/' + (wire.property || 'temperature') + ': ' + message);
                                ! }
                                ! // no idea what is received here
                                ! if (err) {
                                ! adapter.log.warn('Cannot write value of /' + wire.id + '/' + (wire.property || 'temperature') + ': ' + JSON.stringify(err));
                                ! adapter.setState('wires.' + wire._name, {val: 0, ack: true, q: 0x84});
                                ! } else {
                                ! if (wire.property.indexOf('PIO') === -1) {
                                ! adapter.setState('wires.' + wire._name, parseFloat(value) || 0, true);
                                ! } else {
                                ! adapter.setState('wires.' + wire._name, !(value === '0' || value === 0 || value === 'false' || value === false), true);
                                ! }
                                ! }
                                ! });
                                ! */
                                ! }
                                ! }

                                Функция readWire

                                ! function readWire(wire) {
                                ! if (wire) {
                                ! /*
                                ! client.read('/' + wire.id + '/' + (wire.property || 'temperature'), function(err, result) {
                                ! result.value = result.value || '0';
                                ! result.value = result.value.trim();
                                ! adapter.log.debug('Read ' + result.path + ':' + result.value);
                                ! if (!err) {
                                ! if (wire.property.indexOf('PIO') !== -1) {
                                ! adapter.setState('wires.' + wire._name, (result.value == '1'), true);
                                ! } else {
                                ! adapter.setState('wires.' + wire._name, parseFloat(result.value) || 0, true);
                                ! }
                                ! } else {
                                ! adapter.setState('wires.' + wire._name, {val: 0, ack: true, q: 0x84}); // sensor reports error
                                ! adapter.log.warn('Cannot read value of /' + wire.id + '/' + (wire.property || 'temperature') + ': ' + err);
                                ! }
                                ! });
                                ! */
                                ! var path1wire = "/mnt/1wire";
                                ! var pathfs = "/" + wire.id + '/' + (wire.property || 'temperature');
                                ! var pathfile = path1wire + pathfs;
                                ! // Read from file
                                ! fs.readFile(pathfile, function (err,data) {
                                ! var result = data;
                                ! adapter.log.debug('Read ' + pathfile + ':' + result);
                                ! if (!err) {
                                ! if (wire.property.indexOf('PIO') !== -1) {
                                ! adapter.setState('wires.' + wire._name, (result == '1'), true);
                                ! } else {
                                ! adapter.setState('wires.' + wire._name, parseFloat(result) || 0, true);
                                ! }
                                ! } else {
                                ! adapter.setState('wires.' + wire._name, {val: 0, ack: true, q: 0x84}); // sensor reports error
                                ! adapter.log.warn('Cannot read value of ' + pathfile + ': ' + err);
                                ! }
                                ! });
                                ! }
                                ! }

                                В настройках адаптера OWFS в ioBroker:

                                Timeout(ms): 3000

                                Poll interval(sec): 2

                                Работает неделю без сбоев.

                                Реакция на read/rwite где-то около секунды-двух.

                                это приемлемо для обработки сигнала от датчиков движения.

                                Конечно это будет работать лишь на локальной системе.

                                Поэтому правильнее бы в настройки адаптера OWFS вывести возможность

                                выбора - локальное включение или удаленная работа по tcp (IMHO)

                                И нужно учесть, что при такой частоте опроса увеличивается нагрузка на процессор.

                                Но в моей Orange Pi+2 это практически не ощутимо

                                1 Reply Last reply
                                0
                                • H Offline
                                  H Offline
                                  Haus
                                  wrote on last edited by
                                  #73

                                  @Bluefox:

                                  @Haus:

                                  Главное посмотри почему с удалённого неработает `
                                  Поменяй в файле /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" не читает. При этом owfs, majordom, demo(Андрея) находит всегда и визде.

                                  js-controller: 1.5.7 / node.js: v8.15.1/ npm: 6.4.1

                                  admin: 3.6.0

                                  javascript: 4.1.10

                                  web: 2.4.1 vis: 1.1.10

                                  cloud: 2.6.2

                                  Server: DELL FX170 / linux: Debian 9.5 Stretch

                                  Adapter: MegaD-2561, Mega-ES…

                                  1 Reply Last reply
                                  0
                                  • K Offline
                                    K Offline
                                    kID
                                    wrote on last edited by
                                    #74

                                    А вот подскажите пожалуйста

                                    Раньше драйвер, в случае невозможности считать данные с датчика, тут же рапортовал об ошибке в логе, с указанием адреса датчика.

                                    А вот в новой версии такого не происходит. Отключил датчик, а брокер в объектах сообщает его последнее значение.

                                    Как вернуть сообщение об ошибке. Я подозреваю где-то возможно указать время в течение которого драйвер пытается считать значения не выдавая ошибку. Однако я не нашел где:(

                                    1 Reply Last reply
                                    0

                                    Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                    Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                    With your input, this post could be even better 💗

                                    Register Login
                                    Reply
                                    • Reply as topic
                                    Log in to reply
                                    • Oldest to Newest
                                    • Newest to Oldest
                                    • Most Votes


                                    Support us

                                    ioBroker
                                    Community Adapters
                                    Donate

                                    178

                                    Online

                                    32.7k

                                    Users

                                    82.6k

                                    Topics

                                    1.3m

                                    Posts
                                    Community
                                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                    ioBroker Community 2014-2025
                                    logo
                                    • Login

                                    • Don't have an account? Register

                                    • Login or register to search.
                                    • First post
                                      Last post
                                    0
                                    • Home
                                    • Recent
                                    • Tags
                                    • Unread 0
                                    • Categories
                                    • Unreplied
                                    • Popular
                                    • GitHub
                                    • Docu
                                    • Hilfe