Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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

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

  • 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

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

                        Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                        Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                        Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                        Registrieren Anmelden
                        Antworten
                        • In einem neuen Thema antworten
                        Anmelden zum Antworten
                        • Älteste zuerst
                        • Neuste zuerst
                        • Meiste Stimmen


                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        510

                        Online

                        32.7k

                        Benutzer

                        82.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