Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

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

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.9k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.3k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.4k

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

Geplant Angeheftet Gesperrt Verschoben ioBroker ошибки
74 Beiträge 5 Kommentatoren 18.4k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • BluefoxB Offline
    BluefoxB Offline
    Bluefox
    schrieb am zuletzt editiert von
    #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 Antwort Letzte Antwort
    0
    • H Offline
      H Offline
      Haus
      schrieb am zuletzt editiert von
      #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 Antwort Letzte Antwort
      0
      • J Offline
        J Offline
        jeorgep
        schrieb am zuletzt editiert von
        #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 Antwort Letzte Antwort
        0
        • J Offline
          J Offline
          jeorgep
          schrieb am zuletzt editiert von
          #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 Antwort Letzte Antwort
          0
          • H Offline
            H Offline
            Haus
            schrieb am zuletzt editiert von
            #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 Antwort Letzte Antwort
            0
            • J Offline
              J Offline
              jeorgep
              schrieb am zuletzt editiert von
              #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 Antwort Letzte Antwort
              0
              • A Offline
                A Offline
                Alekseym6
                schrieb am zuletzt editiert von
                #64

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

                1 Antwort Letzte Antwort
                0
                • J Offline
                  J Offline
                  jeorgep
                  schrieb am zuletzt editiert von
                  #65

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

                  Клас!

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

                  1 Antwort Letzte Antwort
                  0
                  • H Offline
                    H Offline
                    Haus
                    schrieb am zuletzt editiert von
                    #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 Antwort Letzte Antwort
                    0
                    • A Offline
                      A Offline
                      Alekseym6
                      schrieb am zuletzt editiert von
                      #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 Antwort Letzte Antwort
                      0
                      • J Offline
                        J Offline
                        jeorgep
                        schrieb am zuletzt editiert von
                        #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 Antwort Letzte Antwort
                        0
                        • H Offline
                          H Offline
                          Haus
                          schrieb am zuletzt editiert von
                          #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 Antwort Letzte Antwort
                          0
                          • J Offline
                            J Offline
                            jeorgep
                            schrieb am zuletzt editiert von
                            #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 Antwort Letzte Antwort
                            0
                            • A Offline
                              A Offline
                              Alekseym6
                              schrieb am zuletzt editiert von
                              #71

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

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

                              1 Antwort Letzte Antwort
                              0
                              • J Offline
                                J Offline
                                jeorgep
                                schrieb am zuletzt editiert von
                                #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 Antwort Letzte Antwort
                                0
                                • H Offline
                                  H Offline
                                  Haus
                                  schrieb am zuletzt editiert von
                                  #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 Antwort Letzte Antwort
                                  0
                                  • K Offline
                                    K Offline
                                    kID
                                    schrieb am zuletzt editiert von
                                    #74

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

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

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

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

                                    1 Antwort Letzte Antwort
                                    0
                                    Antworten
                                    • In einem neuen Thema antworten
                                    Anmelden zum Antworten
                                    • Älteste zuerst
                                    • Neuste zuerst
                                    • Meiste Stimmen


                                    Support us

                                    ioBroker
                                    Community Adapters
                                    Donate

                                    515

                                    Online

                                    32.4k

                                    Benutzer

                                    81.6k

                                    Themen

                                    1.3m

                                    Beiträge
                                    Community
                                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                    ioBroker Community 2014-2025
                                    logo
                                    • Anmelden

                                    • Du hast noch kein Konto? Registrieren

                                    • Anmelden oder registrieren, um zu suchen
                                    • Erster Beitrag
                                      Letzter Beitrag
                                    0
                                    • Home
                                    • Aktuell
                                    • Tags
                                    • Ungelesen 0
                                    • Kategorien
                                    • Unreplied
                                    • Beliebt
                                    • GitHub
                                    • Docu
                                    • Hilfe