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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.0k

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.4k

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

Geplant Angeheftet Gesperrt Verschoben ioBroker ошибки
74 Beiträge 5 Kommentatoren 18.5k 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.
  • 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

                        758

                        Online

                        32.5k

                        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