NEWS
Разные ошибки
-
Haus ну ты же стрелянный воробей. Там owserver почему-то шлёт странные ответы. Можешь посмотреть что там приходит в ответ:
Line 277 client.list = function (path, callback) { this.send(path, null, OW_DIRALL).then(function (messages) { var ret; var str; adapter.log.debug('Got ' + messages.length + ' packets'); // <================================= Check output for (var m = 0; m < messages.length; m++) { ret = messages[m].header ? messages[m].header.ret : -100; adapter.log.debug(JSON.stringify(messages[m])); // <================================= Check output if (messages[m].header && messages[m].header.payload > 0 && messages[m].header.ret >= 0) { str = messages[m].payload; break; } } if (ret < 0) { adapter.log.warn('Invalid response for list: ' + ret); callback('Invalid response'); return; } if (!str) { adapter.log.warn('Invalid response for list [empty answer]: ' + JSON.stringify(messages)); callback('Invalid response for list [empty answer]'); return; } str = str.substring(0, str.length - 1); // remove zero-char from end callback(null, str.split(',')); }, function (error) { callback(error); }); };
И подправить. `
! ````
root@Server1:/opt/iobroker# iobroker upload owfs
got /opt/iobroker/node_modules/iobroker.owfs/admin
upload [1] owfs.admin /opt/iobroker/node_modules/iobroker.owfs/admin/owfs.png owfs.png image/png
upload [0] owfs.admin /opt/iobroker/node_modules/iobroker.owfs/admin/index.html index.html text/html
root@Server1:/opt/iobroker# iobroker restart owfs
Adapter "owfs.0 restarted.
root@Server1:/opt/iobroker# iobroker stop owfs
Adapter "owfs.0 stopped.
root@Server1:/opt/iobroker# node node_modules/iobroker.owfs/main.js --force --logs
starting. Version 0.3.3 in /opt/iobroker/node_modules/iobroker.owfs
2016-08-26 01:16:47.660 - info: owfs.0 starting. Version 0.3.3 in /opt/iobroker/node_modules/iobroker.owfs
2016-08-26 01:17:16.807 - debug: inMem message *.logging system.adapter.admin.0.logging val=true, ack=true, ts=1472163436761, q=0, from=system.adapter.admin.0, lc=1472163436761
2016-08-26 01:17:27.910 - debug: inMem message messagebox.system.adapter.owfs.0 messagebox.system.adapter.owfs.0 command=readdir, ip=127.0.0.1, port=4304, from=system.adapter.admin.0, ip=127.0.0.1, port=4304, id=19, ack=false, time=1472163447900, _id=36007443
Connect to 127.0.0.1:4304
2016-08-26 01:17:27.916 - debug: owfs.0 Connect to 127.0.0.1:4304
Got 4 packets
2016-08-26 01:17:31.390 - debug: owfs.0 Got 4 packets
{"header":{"version":0,"payload":-1,"ret":0,"controlflags":0,"size":0,"offset":0},"payload":""}
2016-08-26 01:17:31.392 - debug: owfs.0 {"header":{"version":0,"payload":-1,"ret":0,"controlflags":0,"size":0,"offset":0},"payload" :""}
{"header":{"version":0,"payload":-1,"ret":0,"controlflags":0,"size":0,"offset":0},"payload":""}
2016-08-26 01:17:31.393 - debug: owfs.0 {"header":{"version":0,"payload":-1,"ret":0,"controlflags":0,"size":0,"offset":0},"payload" :""}
{"header":{"version":0,"payload":-1,"ret":0,"controlflags":0,"size":0,"offset":0},"payload":""}
2016-08-26 01:17:31.395 - debug: owfs.0 {"header":{"version":0,"payload":-1,"ret":0,"controlflags":0,"size":0,"offset":0},"payload" :""}
{"header":{"version":0,"payload":272,"ret":0,"controlflags":32,"size":271,"offset":32775},"payload":"/10.DB1979020800,/28.ECB1CD0400 00,/28.1C8D2D050000,/28.3C3B63040000,/28.6659CE040000,/28.3E0764040000,/28.FF1C154A0400,/28.FFF2054A0400,/28.FFE6574E0400,/28.FF7603 4B0400,/28.FF3E484E0400,/28.FFC1674E0400,/28.FF7B414E0400,/3A.483B1E000000,/3A.E6331E000000,/3A.DB481E000000\u0000"}
2016-08-26 01:17:31.396 - debug: owfs.0 {"header":{"version":0,"payload":272,"ret":0,"controlflags":32,"size":271,"offset":32775}," payload":"/10.DB1979020800,/28.ECB1CD040000,/28.1C8D2D050000,/28.3C3B63040000,/28.6659CE040000,/28.3E0764040000,/28.FF1C154A0400,/28 .FFF2054A0400,/28.FFE6574E0400,/28.FF76034B0400,/28.FF3E484E0400,/28.FFC1674E0400,/28.FF7B414E0400,/3A.483B1E000000,/3A.E6331E000000 ,/3A.DB481E000000\u0000"}
Invalid response for list [empty answer]: [{"header":{"version":0,"payload":-1,"ret":0,"controlflags":0,"size":0,"offset":0},"payloa d":""},{"header":{"version":0,"payload":-1,"ret":0,"controlflags":0,"size":0,"offset":0},"payload":""},{"header":{"version":0,"paylo ad":-1,"ret":0,"controlflags":0,"size":0,"offset":0},"payload":""},{"header":{"version":0,"payload":272,"ret":0,"controlflags":32,"s ize":271,"offset":32775},"payload":"/10.DB1979020800,/28.ECB1CD040000,/28.1C8D2D050000,/28.3C3B63040000,/28.6659CE040000,/28.3E07640 40000,/28.FF1C154A0400,/28.FFF2054A0400,/28.FFE6574E0400,/28.FF76034B0400,/28.FF3E484E0400,/28.FFC1674E0400,/28.FF7B414E0400,/3A.483 B1E000000,/3A.E6331E000000,/3A.DB481E000000\u0000"}]
2016-08-26 01:17:31.397 - warn: owfs.0 Invalid response for list [empty answer]: [{"header":{"version":0,"payload":-1,"ret":0,"cont rolflags":0,"size":0,"offset":0},"payload":""},{"header":{"version":0,"payload":-1,"ret":0,"controlflags":0,"size":0,"offset":0},"pa yload":""},{"header":{"version":0,"payload":-1,"ret":0,"controlflags":0,"size":0,"offset":0},"payload":""},{"header":{"version":0,"p ayload":272,"ret":0,"controlflags":32,"size":271,"offset":32775},"payload":"/10.DB1979020800,/28.ECB1CD040000,/28.1C8D2D050000,/28.3 C3B63040000,/28.6659CE040000,/28.3E0764040000,/28.FF1C154A0400,/28.FFF2054A0400,/28.FFE6574E0400,/28.FF76034B0400,/28.FF3E484E0400,/ 28.FFC1674E0400,/28.FF7B414E0400,/3A.483B1E000000,/3A.E6331E000000,/3A.DB481E000000\u0000"}]
Cannot read dir: Invalid response for list [empty answer]
2016-08-26 01:17:31.399 - error: owfs.0 Cannot read dir: Invalid response for list [empty answer]
sendTo "readdir" to system.adapter.admin.0 from system.adapter.owfs.0
2016-08-26 01:17:31.402 - debug: owfs.0 sendTo "readdir" to system.adapter.admin.0 from system.adapter.owfs.0 -
` > Из замечаний - некорректно работает поиск.
Нашло 8 устройств - реально 15.
Как выглядит папка /mnt/1wire ? Или где там у тебя замонтировано.
!
root@art4:/opt/iobroker# ls -l /mnt/1wire drwxrwxrwx 1 root root 4096 сер 26 06:33 261DE49101000070 drwxrwxrwx 1 root root 4096 сер 26 06:33 268725A401000028 drwxrwxrwx 1 root root 4096 сер 26 06:33 26A9CA91010000F1 drwxrwxrwx 1 root root 4096 сер 26 06:33 26ECEA9101000097 drwxrwxrwx 1 root root 4096 сер 26 06:33 26F1EA9101000086 drwxrwxrwx 1 root root 4096 сер 26 06:33 280D1C2A05000057 drwxrwxrwx 1 root root 4096 сер 26 06:33 2834C84804000051 drwxrwxrwx 1 root root 4096 сер 26 06:33 283B42D805000049 drwxrwxrwx 1 root root 4096 сер 26 06:33 28799F74040000F0 drwxrwxrwx 1 root root 4096 сер 26 06:33 28864975040000EB drwxrwxrwx 1 root root 4096 сер 26 06:33 28B0A92A05000087 drwxrwxrwx 1 root root 4096 сер 26 06:33 28E5BC2A050000EC drwxrwxrwx 1 root root 4096 сер 26 06:33 29191D160000004F drwxrwxrwx 1 root root 4096 сер 26 06:33 29276E0C000000B1 drwxrwxrwx 1 root root 4096 сер 26 06:33 2945B70C000000B1 drwxr-xr-x 1 root root 4096 сер 22 08:12 alarm drwxr-xr-x 1 root root 4096 сер 22 08:12 bus.1 drwxr-xr-x 1 root root 4096 сер 22 08:12 bus.2 drwxr-xr-x 1 root root 4096 сер 22 08:12 bus.3 drwxr-xr-x 1 root root 4096 сер 22 08:12 bus.4 drwxr-xr-x 1 root root 4096 сер 22 08:12 bus.5 drwxr-xr-x 1 root root 4096 сер 22 08:12 bus.6 drwxr-xr-x 1 root root 4096 сер 22 08:12 bus.7 drwxr-xr-x 1 root root 4096 сер 22 08:12 bus.8 drwxr-xr-x 1 root root 4096 сер 22 08:12 settings drwxrwxrwx 1 root root 4096 сер 26 06:33 simultaneous drwxr-xr-x 1 root root 4096 сер 22 08:12 statistics drwxr-xr-x 1 root root 4096 сер 22 08:12 structure drwxr-xr-x 1 root root 4096 сер 22 08:12 system drwxr-xr-x 1 root root 4096 сер 22 08:12 uncached !
"version": "0.3.3"Found 8 sensors
У меня восьмиканальный мастер DS2482-800
Похоже оно посчитало каналы
Внутри канальной папки:
root@art4:/opt/iobroker# ls -l /mnt/1wire/bus.5 drwxrwxrwx 1 root root 4096 сер 26 06:38 2834C84804000051 drwxrwxrwx 1 root root 4096 сер 26 06:38 28B0A92A05000087 drwxrwxrwx 1 root root 4096 сер 26 06:38 28E5BC2A050000EC drwxr-xr-x 1 root root 4096 сер 22 08:12 alarm drwxr-xr-x 1 root root 4096 сер 22 08:12 interface drwxrwxrwx 1 root root 4096 сер 26 06:38 simultaneous
Наверное есть смысл считать лишь файлы, которые начинаются с двойки.
Типа:
!
root@art4:/opt/iobroker# ls /mnt/1wire | grep '^2' 261DE49101000070 268725A401000028 26A9CA91010000F1 26ECEA9101000097 26F1EA9101000086 280D1C2A05000057 2834C84804000051 283B42D805000049 28799F74040000F0 28864975040000EB 28B0A92A05000087 28E5BC2A050000EC 29191D160000004F 29276E0C000000B1 2945B70C000000B1 !
-
` > Из замечаний - некорректно работает поиск.
Нашло 8 устройств - реально 15.
Как выглядит папка /mnt/1wire ? Или где там у тебя замонтировано.
!
root@art4:/opt/iobroker# ls -l /mnt/1wire drwxrwxrwx 1 root root 4096 сер 26 06:33 261DE49101000070 drwxrwxrwx 1 root root 4096 сер 26 06:33 268725A401000028 drwxrwxrwx 1 root root 4096 сер 26 06:33 26A9CA91010000F1 drwxrwxrwx 1 root root 4096 сер 26 06:33 26ECEA9101000097 drwxrwxrwx 1 root root 4096 сер 26 06:33 26F1EA9101000086 drwxrwxrwx 1 root root 4096 сер 26 06:33 280D1C2A05000057 drwxrwxrwx 1 root root 4096 сер 26 06:33 2834C84804000051 drwxrwxrwx 1 root root 4096 сер 26 06:33 283B42D805000049 drwxrwxrwx 1 root root 4096 сер 26 06:33 28799F74040000F0 drwxrwxrwx 1 root root 4096 сер 26 06:33 28864975040000EB drwxrwxrwx 1 root root 4096 сер 26 06:33 28B0A92A05000087 drwxrwxrwx 1 root root 4096 сер 26 06:33 28E5BC2A050000EC drwxrwxrwx 1 root root 4096 сер 26 06:33 29191D160000004F drwxrwxrwx 1 root root 4096 сер 26 06:33 29276E0C000000B1 drwxrwxrwx 1 root root 4096 сер 26 06:33 2945B70C000000B1 drwxr-xr-x 1 root root 4096 сер 22 08:12 alarm drwxr-xr-x 1 root root 4096 сер 22 08:12 bus.1 drwxr-xr-x 1 root root 4096 сер 22 08:12 bus.2 drwxr-xr-x 1 root root 4096 сер 22 08:12 bus.3 drwxr-xr-x 1 root root 4096 сер 22 08:12 bus.4 drwxr-xr-x 1 root root 4096 сер 22 08:12 bus.5 drwxr-xr-x 1 root root 4096 сер 22 08:12 bus.6 drwxr-xr-x 1 root root 4096 сер 22 08:12 bus.7 drwxr-xr-x 1 root root 4096 сер 22 08:12 bus.8 drwxr-xr-x 1 root root 4096 сер 22 08:12 settings drwxrwxrwx 1 root root 4096 сер 26 06:33 simultaneous drwxr-xr-x 1 root root 4096 сер 22 08:12 statistics drwxr-xr-x 1 root root 4096 сер 22 08:12 structure drwxr-xr-x 1 root root 4096 сер 22 08:12 system drwxr-xr-x 1 root root 4096 сер 22 08:12 uncached !
"version": "0.3.3"Found 8 sensors
У меня восьмиканальный мастер DS2482-800
Похоже оно посчитало каналы
Внутри канальной папки:
root@art4:/opt/iobroker# ls -l /mnt/1wire/bus.5 drwxrwxrwx 1 root root 4096 сер 26 06:38 2834C84804000051 drwxrwxrwx 1 root root 4096 сер 26 06:38 28B0A92A05000087 drwxrwxrwx 1 root root 4096 сер 26 06:38 28E5BC2A050000EC drwxr-xr-x 1 root root 4096 сер 22 08:12 alarm drwxr-xr-x 1 root root 4096 сер 22 08:12 interface drwxrwxrwx 1 root root 4096 сер 26 06:38 simultaneous
Наверное есть смысл считать лишь файлы, которые начинаются с двойки.
Типа:
!
root@art4:/opt/iobroker# ls /mnt/1wire | grep '^2' 261DE49101000070 268725A401000028 26A9CA91010000F1 26ECEA9101000097 26F1EA9101000086 280D1C2A05000057 2834C84804000051 283B42D805000049 28799F74040000F0 28864975040000EB 28B0A92A05000087 28E5BC2A050000EC 29191D160000004F 29276E0C000000B1 2945B70C000000B1 !
`
А у меня например все начинаются с 02, а ещё есть "-" или "." в имени. Вот я и отфильтровал все сенсоры с точкой.Надо найти правило, как можно распознать сенсоры. А пока я просто уберу любые фильтры.
-
Как выглядит папка /mnt/1wire ? Или где там у тебя замонтировано.
А у меня например все начинаются с 02, а ещё есть "-" или "." в имени. Вот я и отфильтровал все сенсоры с точкой.Надо найти правило, как можно распознать сенсоры. А пока я просто уберу любые фильтры. `
ls -l /mnt/1wire! root@Server1:~# ls -l /mnt/1wire
! итого 0
! drwxrwxrwx 1 root root 4096 авг 26 09:05 10.DB1979020800
! drwxrwxrwx 1 root root 4096 авг 26 09:05 28.1C8D2D050000
! drwxrwxrwx 1 root root 4096 авг 26 09:05 28.3C3B63040000
! drwxrwxrwx 1 root root 4096 авг 26 09:05 28.3E0764040000
! drwxrwxrwx 1 root root 4096 авг 26 09:05 28.6659CE040000
! drwxrwxrwx 1 root root 4096 авг 26 09:05 28.ECB1CD040000
! drwxrwxrwx 1 root root 4096 авг 26 09:05 28.FF1C154A0400
! drwxrwxrwx 1 root root 4096 авг 26 09:05 28.FF3E484E0400
! drwxrwxrwx 1 root root 4096 авг 26 09:05 28.FF76034B0400
! drwxrwxrwx 1 root root 4096 авг 26 09:05 28.FF7B414E0400
! drwxrwxrwx 1 root root 4096 авг 26 09:05 28.FFC1674E0400
! drwxrwxrwx 1 root root 4096 авг 26 09:05 28.FFE6574E0400
! drwxrwxrwx 1 root root 4096 авг 26 09:05 28.FFF2054A0400
! drwxrwxrwx 1 root root 4096 авг 26 09:05 3A.483B1E000000
! drwxrwxrwx 1 root root 4096 авг 26 09:05 3A.DB481E000000
! drwxrwxrwx 1 root root 4096 авг 26 09:05 3A.E6331E000000
! drwxr-xr-x 1 root root 4096 авг 26 02:10 alarm
! drwxr-xr-x 1 root root 4096 авг 26 02:10 bus.1
! drwxr-xr-x 1 root root 4096 авг 26 02:10 settings
! drwxrwxrwx 1 root root 4096 авг 26 09:05 simultaneous
! drwxr-xr-x 1 root root 4096 авг 26 02:10 statistics
! drwxr-xr-x 1 root root 4096 авг 26 02:10 structure
! drwxr-xr-x 1 root root 4096 авг 26 02:10 system
! drwxr-xr-x 1 root root 4096 авг 26 02:10 uncached
! root@Server1:~#
ls -l /mnt/1wire/bus.1! root@Server1:~# ls -l /mnt/1wire/bus.1
! итого 0
! drwxrwxrwx 1 root root 4096 авг 26 09:09 10.DB1979020800
! drwxrwxrwx 1 root root 4096 авг 26 09:09 28.1C8D2D050000
! drwxrwxrwx 1 root root 4096 авг 26 09:09 28.3C3B63040000
! drwxrwxrwx 1 root root 4096 авг 26 09:09 28.3E0764040000
! drwxrwxrwx 1 root root 4096 авг 26 09:09 28.6659CE040000
! drwxrwxrwx 1 root root 4096 авг 26 09:09 28.ECB1CD040000
! drwxrwxrwx 1 root root 4096 авг 26 09:09 28.FF1C154A0400
! drwxrwxrwx 1 root root 4096 авг 26 09:09 28.FF3E484E0400
! drwxrwxrwx 1 root root 4096 авг 26 09:09 28.FF76034B0400
! drwxrwxrwx 1 root root 4096 авг 26 09:09 28.FF7B414E0400
! drwxrwxrwx 1 root root 4096 авг 26 09:09 28.FFC1674E0400
! drwxrwxrwx 1 root root 4096 авг 26 09:09 28.FFE6574E0400
! drwxrwxrwx 1 root root 4096 авг 26 09:09 28.FFF2054A0400
! drwxrwxrwx 1 root root 4096 авг 26 09:09 3A.483B1E000000
! drwxrwxrwx 1 root root 4096 авг 26 09:09 3A.DB481E000000
! drwxrwxrwx 1 root root 4096 авг 26 09:09 3A.E6331E000000
! drwxr-xr-x 1 root root 4096 авг 26 02:10 alarm
! drwxr-xr-x 1 root root 4096 авг 26 02:10 interface
! drwxrwxrwx 1 root root 4096 авг 26 09:09 simultaneous -
@jeorgep:`
А у меня например все начинаются с 02, а ещё есть "-" или "." в имени. Вот я и отфильтровал все сенсоры с точкой.Надо найти правило, как можно распознать сенсоры. А пока я просто уберу любые фильтры. `
ls -l /mnt/1wire! root@Server1:~# ls -l /mnt/1wire
! итого 0
! drwxrwxrwx 1 root root 4096 авг 26 09:05 10.DB1979020800
! drwxrwxrwx 1 root root 4096 авг 26 09:05 28.1C8D2D050000
! drwxrwxrwx 1 root root 4096 авг 26 09:05 28.3C3B63040000
! drwxrwxrwx 1 root root 4096 авг 26 09:05 28.3E0764040000
! drwxrwxrwx 1 root root 4096 авг 26 09:05 28.6659CE040000
! drwxrwxrwx 1 root root 4096 авг 26 09:05 28.ECB1CD040000
! drwxrwxrwx 1 root root 4096 авг 26 09:05 28.FF1C154A0400
! drwxrwxrwx 1 root root 4096 авг 26 09:05 28.FF3E484E0400
! drwxrwxrwx 1 root root 4096 авг 26 09:05 28.FF76034B0400
! drwxrwxrwx 1 root root 4096 авг 26 09:05 28.FF7B414E0400
! drwxrwxrwx 1 root root 4096 авг 26 09:05 28.FFC1674E0400
! drwxrwxrwx 1 root root 4096 авг 26 09:05 28.FFE6574E0400
! drwxrwxrwx 1 root root 4096 авг 26 09:05 28.FFF2054A0400
! drwxrwxrwx 1 root root 4096 авг 26 09:05 3A.483B1E000000
! drwxrwxrwx 1 root root 4096 авг 26 09:05 3A.DB481E000000
! drwxrwxrwx 1 root root 4096 авг 26 09:05 3A.E6331E000000
! drwxr-xr-x 1 root root 4096 авг 26 02:10 alarm
! drwxr-xr-x 1 root root 4096 авг 26 02:10 bus.1
! drwxr-xr-x 1 root root 4096 авг 26 02:10 settings
! drwxrwxrwx 1 root root 4096 авг 26 09:05 simultaneous
! drwxr-xr-x 1 root root 4096 авг 26 02:10 statistics
! drwxr-xr-x 1 root root 4096 авг 26 02:10 structure
! drwxr-xr-x 1 root root 4096 авг 26 02:10 system
! drwxr-xr-x 1 root root 4096 авг 26 02:10 uncached
! root@Server1:~#
ls -l /mnt/1wire/bus.1! root@Server1:~# ls -l /mnt/1wire/bus.1
! итого 0
! drwxrwxrwx 1 root root 4096 авг 26 09:09 10.DB1979020800
! drwxrwxrwx 1 root root 4096 авг 26 09:09 28.1C8D2D050000
! drwxrwxrwx 1 root root 4096 авг 26 09:09 28.3C3B63040000
! drwxrwxrwx 1 root root 4096 авг 26 09:09 28.3E0764040000
! drwxrwxrwx 1 root root 4096 авг 26 09:09 28.6659CE040000
! drwxrwxrwx 1 root root 4096 авг 26 09:09 28.ECB1CD040000
! drwxrwxrwx 1 root root 4096 авг 26 09:09 28.FF1C154A0400
! drwxrwxrwx 1 root root 4096 авг 26 09:09 28.FF3E484E0400
! drwxrwxrwx 1 root root 4096 авг 26 09:09 28.FF76034B0400
! drwxrwxrwx 1 root root 4096 авг 26 09:09 28.FF7B414E0400
! drwxrwxrwx 1 root root 4096 авг 26 09:09 28.FFC1674E0400
! drwxrwxrwx 1 root root 4096 авг 26 09:09 28.FFE6574E0400
! drwxrwxrwx 1 root root 4096 авг 26 09:09 28.FFF2054A0400
! drwxrwxrwx 1 root root 4096 авг 26 09:09 3A.483B1E000000
! drwxrwxrwx 1 root root 4096 авг 26 09:09 3A.DB481E000000
! drwxrwxrwx 1 root root 4096 авг 26 09:09 3A.E6331E000000
! drwxr-xr-x 1 root root 4096 авг 26 02:10 alarm
! drwxr-xr-x 1 root root 4096 авг 26 02:10 interface
! drwxrwxrwx 1 root root 4096 авг 26 09:09 simultaneous `Можна, например, так:
(здесь мои и Haus'a находятся. Тире не ставил, ибо не знаю в каком месте оно может быть)
1397_regexp1.png -
Got 4 packets
2016-08-26 01:17:31.390 - debug: owfs.0 Got 4 packets
{"header":{"version":0,"payload":-1,"ret":0,"controlflags":0,"size":0,"offset":0},"payload":""}
2016-08-26 01:17:31.392 - debug: owfs.0 {"header":{"version":0,"payload":-1,"ret":0,"controlflags":0,"size":0,"offset":0},"payload" :""}
{"header":{"version":0,"payload":-1,"ret":0,"controlflags":0,"size":0,"offset":0},"payload":""}
2016-08-26 01:17:31.393 - debug: owfs.0 {"header":{"version":0,"payload":-1,"ret":0,"controlflags":0,"size":0,"offset":0},"payload" :""}
{"header":{"version":0,"payload":-1,"ret":0,"controlflags":0,"size":0,"offset":0},"payload":""}
2016-08-26 01:17:31.395 - debug: owfs.0 {"header":{"version":0,"payload":-1,"ret":0,"controlflags":0,"size":0,"offset":0},"payload" :""}
{"header":{"version":0,"payload":272,"ret":0,"controlflags":32,"size":271,"offset":32775},"payload":"/10.DB1979020800,/28.ECB1CD0400 00,/28.1C8D2D050000,/28.3C3B63040000,/28.6659CE040000,/28.3E0764040000,/28.FF1C154A0400,/28.FFF2054A0400,/28.FFE6574E0400,/28.FF7603 4B0400,/28.FF3E484E0400,/28.FFC1674E0400,/28.FF7B414E0400,/3A.483B1E000000,/3A.E6331E000000,/3A.DB481E000000\u0000"}
2016-08-26 01:17:31.396 - debug: owfs.0 {"header":{"version":0,"payload":272,"ret":0,"controlflags":32,"size":271,"offset":32775}," payload":"/10.DB1979020800,/28.ECB1CD040000,/28.1C8D2D050000,/28.3C3B63040000,/28.6659CE040000,/28.3E0764040000,/28.FF1C154A0400,/28 .FFF2054A0400,/28.FFE6574E0400,/28.FF76034B0400,/28.FF3E484E0400,/28.FFC1674E0400,/28.FF7B414E0400,/3A.483B1E000000,/3A.E6331E000000 ,/3A.DB481E000000\u0000"} `
У тебя точно такой код? Примерно строка 283if (messages[m].header && messages[m].header.payload > 0 && messages[m].header.ret >= 0) { str = messages[m].payload; break; }
Ну не может там такой ответ получатся.
-
А у меня например все начинаются с 02, а ещё есть "-" или "." в имени. Вот я и отфильтровал все сенсоры с точкой.
Надо найти правило, как можно распознать сенсоры. А пока я просто уберу любые фильтры. `
ls -l /mnt/1wire! root@Server1:~# ls -l /mnt/1wire
! итого 0
! drwxrwxrwx 1 root root 4096 авг 26 09:05 10.DB1979020800
! drwxrwxrwx 1 root root 4096 авг 26 09:05 28.1C8D2D050000
! drwxrwxrwx 1 root root 4096 авг 26 09:05 28.3C3B63040000
! drwxrwxrwx 1 root root 4096 авг 26 09:05 28.3E0764040000
! drwxrwxrwx 1 root root 4096 авг 26 09:05 28.6659CE040000
! drwxrwxrwx 1 root root 4096 авг 26 09:05 28.ECB1CD040000
! drwxrwxrwx 1 root root 4096 авг 26 09:05 28.FF1C154A0400
! drwxrwxrwx 1 root root 4096 авг 26 09:05 28.FF3E484E0400
! drwxrwxrwx 1 root root 4096 авг 26 09:05 28.FF76034B0400
! drwxrwxrwx 1 root root 4096 авг 26 09:05 28.FF7B414E0400
! drwxrwxrwx 1 root root 4096 авг 26 09:05 28.FFC1674E0400
! drwxrwxrwx 1 root root 4096 авг 26 09:05 28.FFE6574E0400
! drwxrwxrwx 1 root root 4096 авг 26 09:05 28.FFF2054A0400
! drwxrwxrwx 1 root root 4096 авг 26 09:05 3A.483B1E000000
! drwxrwxrwx 1 root root 4096 авг 26 09:05 3A.DB481E000000
! drwxrwxrwx 1 root root 4096 авг 26 09:05 3A.E6331E000000
! drwxr-xr-x 1 root root 4096 авг 26 02:10 alarm
! drwxr-xr-x 1 root root 4096 авг 26 02:10 bus.1
! drwxr-xr-x 1 root root 4096 авг 26 02:10 settings
! drwxrwxrwx 1 root root 4096 авг 26 09:05 simultaneous
! drwxr-xr-x 1 root root 4096 авг 26 02:10 statistics
! drwxr-xr-x 1 root root 4096 авг 26 02:10 structure
! drwxr-xr-x 1 root root 4096 авг 26 02:10 system
! drwxr-xr-x 1 root root 4096 авг 26 02:10 uncached
! root@Server1:~#
ls -l /mnt/1wire/bus.1! root@Server1:~# ls -l /mnt/1wire/bus.1
! итого 0
! drwxrwxrwx 1 root root 4096 авг 26 09:09 10.DB1979020800
! drwxrwxrwx 1 root root 4096 авг 26 09:09 28.1C8D2D050000
! drwxrwxrwx 1 root root 4096 авг 26 09:09 28.3C3B63040000
! drwxrwxrwx 1 root root 4096 авг 26 09:09 28.3E0764040000
! drwxrwxrwx 1 root root 4096 авг 26 09:09 28.6659CE040000
! drwxrwxrwx 1 root root 4096 авг 26 09:09 28.ECB1CD040000
! drwxrwxrwx 1 root root 4096 авг 26 09:09 28.FF1C154A0400
! drwxrwxrwx 1 root root 4096 авг 26 09:09 28.FF3E484E0400
! drwxrwxrwx 1 root root 4096 авг 26 09:09 28.FF76034B0400
! drwxrwxrwx 1 root root 4096 авг 26 09:09 28.FF7B414E0400
! drwxrwxrwx 1 root root 4096 авг 26 09:09 28.FFC1674E0400
! drwxrwxrwx 1 root root 4096 авг 26 09:09 28.FFE6574E0400
! drwxrwxrwx 1 root root 4096 авг 26 09:09 28.FFF2054A0400
! drwxrwxrwx 1 root root 4096 авг 26 09:09 3A.483B1E000000
! drwxrwxrwx 1 root root 4096 авг 26 09:09 3A.DB481E000000
! drwxrwxrwx 1 root root 4096 авг 26 09:09 3A.E6331E000000
! drwxr-xr-x 1 root root 4096 авг 26 02:10 alarm
! drwxr-xr-x 1 root root 4096 авг 26 02:10 interface
! drwxrwxrwx 1 root root 4096 авг 26 09:09 simultaneous `Можна, например, так:
(здесь мои и Haus'a находятся. Тире не ставил, ибо не знаю в каком месте оно может быть) `
drwxr-xr-x 1 root root 4096 Aug 24 11:36 ./ drwxr-xr-x 4 root root 4096 Aug 23 15:49 ../ drwxrwxrwx 1 root root 4096 Aug 24 11:36 05.3158A35A255D/ drwxrwxrwx 1 root root 4096 Aug 24 11:36 05.4AEC29CDBAAB/ drwxrwxrwx 1 root root 4096 Aug 24 11:36 05.765A2E63339F/ drwxrwxrwx 1 root root 4096 Aug 24 11:36 05.C99A66320DB7/ drwxrwxrwx 1 root root 4096 Aug 24 11:36 10.051758E95ED4/ drwxrwxrwx 1 root root 4096 Aug 24 11:36 10.213DDC8770E9/ drwxrwxrwx 1 root root 4096 Aug 24 11:36 10.54110E827441/ drwxrwxrwx 1 root root 4096 Aug 24 11:36 10.67C6697351FF/ drwxrwxrwx 1 root root 4096 Aug 24 11:36 10.ABB2CDC69BB4/ drwxrwxrwx 1 root root 4096 Aug 24 11:36 3A.F2FBE3467CC2/ drwxr-xr-x 1 root root 4096 Aug 24 11:36 alarm/ drwxr-xr-x 1 root root 4096 Aug 24 11:36 bus.0/ drwxrwxrwx 1 root root 4096 Aug 24 11:36 ED.54F81BE8E78D/ drwxr-xr-x 1 root root 4096 Aug 24 11:36 settings/ drwxrwxrwx 1 root root 4096 Aug 24 11:36 simultaneous/ drwxr-xr-x 1 root root 4096 Aug 24 11:36 statistics/ drwxr-xr-x 1 root root 4096 Aug 24 11:36 structure/ drwxr-xr-x 1 root root 4096 Aug 24 11:36 system/ drwxr-xr-x 1 root root 4096 Aug 24 11:36 uncached/
-
ls -l /mnt/1wire
! root@Server1:~# ls -l /mnt/1wire
! итого 0
! drwxrwxrwx 1 root root 4096 авг 26 09:05 10.DB1979020800
! drwxrwxrwx 1 root root 4096 авг 26 09:05 28.1C8D2D050000
! drwxrwxrwx 1 root root 4096 авг 26 09:05 28.3C3B63040000
! drwxrwxrwx 1 root root 4096 авг 26 09:05 28.3E0764040000
! drwxrwxrwx 1 root root 4096 авг 26 09:05 28.6659CE040000
! drwxrwxrwx 1 root root 4096 авг 26 09:05 28.ECB1CD040000
! drwxrwxrwx 1 root root 4096 авг 26 09:05 28.FF1C154A0400
! drwxrwxrwx 1 root root 4096 авг 26 09:05 28.FF3E484E0400
! drwxrwxrwx 1 root root 4096 авг 26 09:05 28.FF76034B0400
! drwxrwxrwx 1 root root 4096 авг 26 09:05 28.FF7B414E0400
! drwxrwxrwx 1 root root 4096 авг 26 09:05 28.FFC1674E0400
! drwxrwxrwx 1 root root 4096 авг 26 09:05 28.FFE6574E0400
! drwxrwxrwx 1 root root 4096 авг 26 09:05 28.FFF2054A0400
! drwxrwxrwx 1 root root 4096 авг 26 09:05 3A.483B1E000000
! drwxrwxrwx 1 root root 4096 авг 26 09:05 3A.DB481E000000
! drwxrwxrwx 1 root root 4096 авг 26 09:05 3A.E6331E000000
! drwxr-xr-x 1 root root 4096 авг 26 02:10 alarm
! drwxr-xr-x 1 root root 4096 авг 26 02:10 bus.1
! drwxr-xr-x 1 root root 4096 авг 26 02:10 settings
! drwxrwxrwx 1 root root 4096 авг 26 09:05 simultaneous
! drwxr-xr-x 1 root root 4096 авг 26 02:10 statistics
! drwxr-xr-x 1 root root 4096 авг 26 02:10 structure
! drwxr-xr-x 1 root root 4096 авг 26 02:10 system
! drwxr-xr-x 1 root root 4096 авг 26 02:10 uncached
! root@Server1:~#
ls -l /mnt/1wire/bus.1! root@Server1:~# ls -l /mnt/1wire/bus.1
! итого 0
! drwxrwxrwx 1 root root 4096 авг 26 09:09 10.DB1979020800
! drwxrwxrwx 1 root root 4096 авг 26 09:09 28.1C8D2D050000
! drwxrwxrwx 1 root root 4096 авг 26 09:09 28.3C3B63040000
! drwxrwxrwx 1 root root 4096 авг 26 09:09 28.3E0764040000
! drwxrwxrwx 1 root root 4096 авг 26 09:09 28.6659CE040000
! drwxrwxrwx 1 root root 4096 авг 26 09:09 28.ECB1CD040000
! drwxrwxrwx 1 root root 4096 авг 26 09:09 28.FF1C154A0400
! drwxrwxrwx 1 root root 4096 авг 26 09:09 28.FF3E484E0400
! drwxrwxrwx 1 root root 4096 авг 26 09:09 28.FF76034B0400
! drwxrwxrwx 1 root root 4096 авг 26 09:09 28.FF7B414E0400
! drwxrwxrwx 1 root root 4096 авг 26 09:09 28.FFC1674E0400
! drwxrwxrwx 1 root root 4096 авг 26 09:09 28.FFE6574E0400
! drwxrwxrwx 1 root root 4096 авг 26 09:09 28.FFF2054A0400
! drwxrwxrwx 1 root root 4096 авг 26 09:09 3A.483B1E000000
! drwxrwxrwx 1 root root 4096 авг 26 09:09 3A.DB481E000000
! drwxrwxrwx 1 root root 4096 авг 26 09:09 3A.E6331E000000
! drwxr-xr-x 1 root root 4096 авг 26 02:10 alarm
! drwxr-xr-x 1 root root 4096 авг 26 02:10 interface
! drwxrwxrwx 1 root root 4096 авг 26 09:09 simultaneous `Можна, например, так:
(здесь мои и Haus'a находятся. Тире не ставил, ибо не знаю в каком месте оно может быть) `
drwxr-xr-x 1 root root 4096 Aug 24 11:36 ./ drwxr-xr-x 4 root root 4096 Aug 23 15:49 ../ drwxrwxrwx 1 root root 4096 Aug 24 11:36 05.3158A35A255D/ drwxrwxrwx 1 root root 4096 Aug 24 11:36 05.4AEC29CDBAAB/ drwxrwxrwx 1 root root 4096 Aug 24 11:36 05.765A2E63339F/ drwxrwxrwx 1 root root 4096 Aug 24 11:36 05.C99A66320DB7/ drwxrwxrwx 1 root root 4096 Aug 24 11:36 10.051758E95ED4/ drwxrwxrwx 1 root root 4096 Aug 24 11:36 10.213DDC8770E9/ drwxrwxrwx 1 root root 4096 Aug 24 11:36 10.54110E827441/ drwxrwxrwx 1 root root 4096 Aug 24 11:36 10.67C6697351FF/ drwxrwxrwx 1 root root 4096 Aug 24 11:36 10.ABB2CDC69BB4/ drwxrwxrwx 1 root root 4096 Aug 24 11:36 3A.F2FBE3467CC2/ drwxr-xr-x 1 root root 4096 Aug 24 11:36 alarm/ drwxr-xr-x 1 root root 4096 Aug 24 11:36 bus.0/ drwxrwxrwx 1 root root 4096 Aug 24 11:36 ED.54F81BE8E78D/ drwxr-xr-x 1 root root 4096 Aug 24 11:36 settings/ drwxrwxrwx 1 root root 4096 Aug 24 11:36 simultaneous/ drwxr-xr-x 1 root root 4096 Aug 24 11:36 statistics/ drwxr-xr-x 1 root root 4096 Aug 24 11:36 structure/ drwxr-xr-x 1 root root 4096 Aug 24 11:36 system/ drwxr-xr-x 1 root root 4096 Aug 24 11:36 uncached/ ```` `
эти тоже находятся верно правилом: ([\dA-F]){2,}[.\dA-F]{1,}([\dA-F]){12,}
1397_regexp2.png -
Haus ну ты же стрелянный воробей. Там owserver почему-то шлёт странные ответы. Можешь посмотреть что там приходит в ответ:
Line 277 client.list = function (path, callback) { this.send(path, null, OW_DIRALL).then(function (messages) { var ret; var str; adapter.log.debug('Got ' + messages.length + ' packets'); // <================================= Check output for (var m = 0; m < messages.length; m++) { ret = messages[m].header ? messages[m].header.ret : -100; adapter.log.debug(JSON.stringify(messages[m])); // <================================= Check output if (messages[m].header && messages[m].header.payload > 0 && messages[m].header.ret >= 0) { str = messages[m].payload; break; } } if (ret < 0) { adapter.log.warn('Invalid response for list: ' + ret); callback('Invalid response'); return; } if (!str) { adapter.log.warn('Invalid response for list [empty answer]: ' + JSON.stringify(messages)); callback('Invalid response for list [empty answer]'); return; } str = str.substring(0, str.length - 1); // remove zero-char from end callback(null, str.split(',')); }, function (error) { callback(error); }); };
И подправить. `
Я не понял, пере залил сегодня с гита с убранным фильтром и работает поиск без чебоксаНо при этом запустился ещё один owsf.0
root@Server1:/opt/iobroker# ps ax | grep owfs 482 ? Ssl 0:14 /usr/bin/owserver -c /etc/owfs.conf --pid-file /var/run/owfs/owserver.pid 499 ? Ss 0:00 /usr/bin/owhttpd -c /etc/owfs.conf --pid-file /var/run/owfs/owhttpd.pid 501 ? Ssl 0:00 /usr/bin/owftpd -c /etc/owfs.conf --pid-file /var/run/owfs/owftpd.pid 519 ? Ssl 0:00 /usr/lib/owfs/owfs -c /etc/owfs.conf 5649 ? Rl 0:56 io.owfs.0 6424 pts/0 S+ 0:00 grep owfs root@Server1:/opt/iobroker# ps ax | grep owfs 482 ? Ss 1:25 /usr/bin/owserver -c /etc/owfs.conf --pid-file /var/run/owfs/owserver.pid 499 ? Ss 0:00 /usr/bin/owhttpd -c /etc/owfs.conf --pid-file /var/run/owfs/owhttpd.pid 501 ? Ssl 0:00 /usr/bin/owftpd -c /etc/owfs.conf --pid-file /var/run/owfs/owftpd.pid 519 ? Ssl 0:00 /usr/lib/owfs/owfs -c /etc/owfs.conf 4724 ? Sl 0:02 io.owfs.0 4831 pts/0 S+ 0:00 grep owfs 5649 ? Rl 193:55 io.owfs.0 root@Server1:/opt/iobroker# ps ax | grep owfs 482 ? Ssl 1:27 /usr/bin/owserver -c /etc/owfs.conf --pid-file /var/run/owfs/owserver.pid 499 ? Ss 0:00 /usr/bin/owhttpd -c /etc/owfs.conf --pid-file /var/run/owfs/owhttpd.pid 501 ? Ssl 0:00 /usr/bin/owftpd -c /etc/owfs.conf --pid-file /var/run/owfs/owftpd.pid 519 ? Ssl 0:00 /usr/lib/owfs/owfs -c /etc/owfs.conf 4853 ? Rl 0:23 io.owfs.0 5325 pts/0 S+ 0:00 grep owfs 5649 ? Rl 195:10 io.owfs.0 root@Server1:/opt/iobroker# ps ax | grep owfs 482 ? Ssl 1:28 /usr/bin/owserver -c /etc/owfs.conf --pid-file /var/run/owfs/owserver.pid 499 ? Ss 0:00 /usr/bin/owhttpd -c /etc/owfs.conf --pid-file /var/run/owfs/owhttpd.pid 501 ? Ssl 0:00 /usr/bin/owftpd -c /etc/owfs.conf --pid-file /var/run/owfs/owftpd.pid 519 ? Ssl 0:00 /usr/lib/owfs/owfs -c /etc/owfs.conf 4853 ? Rl 1:08 io.owfs.0 5649 ? Rl 195:55 io.owfs.0 5890 pts/0 S+ 0:00 grep owfs
-
Как выглядит папка /mnt/1wire ? Или где там у тебя замонтировано.
А у меня например все начинаются с 02, а ещё есть "-" или "." в имени. Вот я и отфильтровал все сенсоры с точкой.Надо найти правило, как можно распознать сенсоры. А пока я просто уберу любые фильтры. `
Вот у конкурентов в коде, я так понимаю папки которые всегда присутствуют отбрасывают. Я у себя вернул фильтр и драйвер находит на один больше, это оказывается папка /simultaneous.! ````
function scanDevices() {
if (!defined('ONEWIRE_SERVER')) {
return 0;
}
$ow=new OWNet(ONEWIRE_SERVER);
$tmp=$ow->get("/",OWNET_MSG_DIR,false);
if (!$tmp) {
return 0;
}
$devices=explode(',', $tmp);
$total=count($devices);
for($i=0;$i<$total;$i++) {
! if (
$devices[$i]=='/alarm' ||
$devices[$i]=='/structure' ||
$devices[$i]=='/system' ||
$devices[$i]=='/settings' ||
$devices[$i]=='/uncached' ||
$devices[$i]=='/simultaneous' ||
$devices[$i]=='/statistics' ||
preg_match('/bus.\d+$/', $devices[$i]) ||
0
) {
continue;
}
$udid=preg_replace('/^//', '', $devices[$i]);
$rec=SQLSelectOne("SELECT * FROM owdevices WHERE UDID='".$udid."'");
if (!$rec['ID']) {
$rec['UDID']=$udid;
$rec['TITLE']=$rec['UDID'];
$rec['STATUS']=1;
$rec['ONLINE_INTERVAL']=60*60;
$rec['LOG']=date('Y-m-d H:i:s').' Added';
$rec['ID']=SQLInsert('owdevices', $rec);
}
$this->updateDevice($rec['ID']);
}
}>! ```` if ($parse_php_type && $get_type!=OWNET_MSG_DIR_ALL){ $tmp =explode('/',$path);$c=count($tmp)-1; if ($c>0){ // must be something like '/dir/file' array('dir', 'file'), count()-1 = 1 > 0 $variavel =$tmp[$c]; // get last two uri args $ow =$tmp[$c-1]; unset($tmp); if (preg_match('/([0-9A-F]{2})[\.]{0,1}[0-9A-F]{12}/',$ow,$tmp)){ // check if ow is an OW id ("XX.ZZZZZZZZZZZZ $ $tmp=$tmp[1]; if (!isset($OWNET_GLOBAL_CACHE_STRUCTURE[$tmp.'/'.$variavel])){ // check if we have structure information $tmp_v=@$this->get("/structure/$tmp/$variavel",OWNET_MSG_READ,false,false); // get estrutucture i$ if ($tmp_v!==NULL){ $tmp_v=explode(',',$tmp_v); // ok :D we will get $ $OWNET_GLOBAL_CACHE_STRUCTURE[$tmp.'/'.$variavel]=$tmp_v; $type=$tmp_v; } }else $type=$OWNET_GLOBAL_CACHE_STRUCTURE[$tmp.'/'.$variavel]; } } unset($tmp,$tmp_v,$variavel,$ow,$c); }
-
@jeorgep:`
А у меня например все начинаются с 02, а ещё есть "-" или "." в имени. Вот я и отфильтровал все сенсоры с точкой.Надо найти правило, как можно распознать сенсоры. А пока я просто уберу любые фильтры. `
Вот у конкурентов в коде, я так понимаю папки которые всегда присутствуют отбрасывают. Я у себя вернул фильтр и драйвер находит на один больше, это оказывается папка /simultaneous.! function scanDevices() {
! if (!defined('ONEWIRE_SERVER')) {
! return 0;
! }
! $ow=new OWNet(ONEWIRE_SERVER);
! $tmp=$ow->get("/",OWNET_MSG_DIR,false);
! if (!$tmp) {
! return 0;
! }
! $devices=explode(',', $tmp);
! $total=count($devices);
! for($i=0;$i<$total;$i++) {
! if (
! $devices[$i]=='/alarm' ||
! $devices[$i]=='/structure' ||
! $devices[$i]=='/system' ||
! $devices[$i]=='/settings' ||
! $devices[$i]=='/uncached' ||
! $devices[$i]=='/simultaneous' ||
! $devices[$i]=='/statistics' ||
! preg_match('/bus.\d+$/', $devices[$i]) ||
! 0
! ) {
! continue;
! }
! $udid=preg_replace('/^//', '', $devices[$i]);
! $rec=SQLSelectOne("SELECT * FROM owdevices WHERE UDID='".$udid."'");
! if (!$rec['ID']) {
! $rec['UDID']=$udid;
! $rec['TITLE']=$rec['UDID'];
! $rec['STATUS']=1;
! $rec['ONLINE_INTERVAL']=60*60;
! $rec['LOG']=date('Y-m-d H:i:s').' Added';
! $rec['ID']=SQLInsert('owdevices', $rec);
! }
! $this->updateDevice($rec['ID']);
! }
! }! if ($parse_php_type && $get_type!=OWNET_MSG_DIR_ALL){
! $tmp =explode('/',$path);$c=count($tmp)-1;
! if ($c>0){ // must be something like '/dir/file' array('dir', 'file'), count()-1 = 1 > 0
! $variavel =$tmp[$c]; // get last two uri args
! $ow =$tmp[$c-1];
! unset($tmp);
! if (preg_match('/([0-9A-F]{2})[.]{0,1}[0-9A-F]{12}/',$ow,$tmp)){ // check if ow is an OW id ("XX.ZZZZZZZZZZZZ $
! $tmp=$tmp[1];
! if (!isset($OWNET_GLOBAL_CACHE_STRUCTURE[$tmp.'/'.$variavel])){ // check if we have structure information
! $tmp_v=@$this->get("/structure/$tmp/$variavel",OWNET_MSG_READ,false,false); // get estrutucture i$
! if ($tmp_v!==NULL){
! $tmp_v=explode(',',$tmp_v); // ok we will get $
! $OWNET_GLOBAL_CACHE_STRUCTURE[$tmp.'/'.$variavel]=$tmp_v;
! $type=$tmp_v;
! }
! }else
! $type=$OWNET_GLOBAL_CACHE_STRUCTURE[$tmp.'/'.$variavel];
! }
! }
! unset($tmp,$tmp_v,$variavel,$ow,$c);
! } `строка:
if (preg_match('/([0-9A-F]{2})[.]{0,1}[0-9A-F]{12}/',$ow,$tmp)){
Не будет находить моих датчиков.
Необходимо как я писал выше:
if (preg_match('/([0-9A-F]{2})[.\dA-F]{0,1}[0-9A-F]{12}/',$ow,$tmp)){
это оказывается папка /simultaneous.
Странно, она не совпадает с данным регулярным выражением
-
А у меня например все начинаются с 02, а ещё есть "-" или "." в имени. Вот я и отфильтровал все сенсоры с точкой.
Надо найти правило, как можно распознать сенсоры. А пока я просто уберу любые фильтры. `
Вот у конкурентов в коде, я так понимаю папки которые всегда присутствуют отбрасывают. Я у себя вернул фильтр и драйвер находит на один больше, это оказывается папка /simultaneous.! function scanDevices() {
! if (!defined('ONEWIRE_SERVER')) {
! return 0;
! }
! $ow=new OWNet(ONEWIRE_SERVER);
! $tmp=$ow->get("/",OWNET_MSG_DIR,false);
! if (!$tmp) {
! return 0;
! }
! $devices=explode(',', $tmp);
! $total=count($devices);
! for($i=0;$i<$total;$i++) {
! if (
! $devices[$i]=='/alarm' ||
! $devices[$i]=='/structure' ||
! $devices[$i]=='/system' ||
! $devices[$i]=='/settings' ||
! $devices[$i]=='/uncached' ||
! $devices[$i]=='/simultaneous' ||
! $devices[$i]=='/statistics' ||
! preg_match('/bus.\d+$/', $devices[$i]) ||
! 0
! ) {
! continue;
! }
! $udid=preg_replace('/^//', '', $devices[$i]);
! $rec=SQLSelectOne("SELECT * FROM owdevices WHERE UDID='".$udid."'");
! if (!$rec['ID']) {
! $rec['UDID']=$udid;
! $rec['TITLE']=$rec['UDID'];
! $rec['STATUS']=1;
! $rec['ONLINE_INTERVAL']=60*60;
! $rec['LOG']=date('Y-m-d H:i:s').' Added';
! $rec['ID']=SQLInsert('owdevices', $rec);
! }
! $this->updateDevice($rec['ID']);
! }
! }! if ($parse_php_type && $get_type!=OWNET_MSG_DIR_ALL){
! $tmp =explode('/',$path);$c=count($tmp)-1;
! if ($c>0){ // must be something like '/dir/file' array('dir', 'file'), count()-1 = 1 > 0
! $variavel =$tmp[$c]; // get last two uri args
! $ow =$tmp[$c-1];
! unset($tmp);
! if (preg_match('/([0-9A-F]{2})[.]{0,1}[0-9A-F]{12}/',$ow,$tmp)){ // check if ow is an OW id ("XX.ZZZZZZZZZZZZ $
! $tmp=$tmp[1];
! if (!isset($OWNET_GLOBAL_CACHE_STRUCTURE[$tmp.'/'.$variavel])){ // check if we have structure information
! $tmp_v=@$this->get("/structure/$tmp/$variavel",OWNET_MSG_READ,false,false); // get estrutucture i$
! if ($tmp_v!==NULL){
! $tmp_v=explode(',',$tmp_v); // ok we will get $
! $OWNET_GLOBAL_CACHE_STRUCTURE[$tmp.'/'.$variavel]=$tmp_v;
! $type=$tmp_v;
! }
! }else
! $type=$OWNET_GLOBAL_CACHE_STRUCTURE[$tmp.'/'.$variavel];
! }
! }
! unset($tmp,$tmp_v,$variavel,$ow,$c);
! } `строка:
if (preg_match('/([0-9A-F]{2})[.]{0,1}[0-9A-F]{12}/',$ow,$tmp)){
Не будет находить моих датчиков.
Необходимо как я писал выше:
if (preg_match('/([0-9A-F]{2})[.\dA-F]{0,1}[0-9A-F]{12}/',$ow,$tmp)){
это оказывается папка /simultaneous.
Странно, она не совпадает с данным регулярным выражением `
Я её увидел, когда не было фильтра драйвер написал что нашел 24(на самом деле 16) датчика. Я ему Ок, ан мне показывает мои 16 и 1 simultaneous temperature, вот я и подумал что когда фильтр есть он пишет 17 а показывает нормально 16. -
За формат отвечает ключ -f
Из man owfs
-f --format="f[.]i[[.]c]" Display format for the 1-wire devices. Each device has a 8byte address, consisting of: f family code, 1 byte i ID number, 6 bytes c CRC checksum, 1 byte Possible formats are f.i (default, 01.A1B2C3D4E5F6), fi fic f.ic f.i.c and fi.c All formats are accepted as input, but the output will be in the specified format. The address elements can be retrieved from a device entry in owfs by the family, id and crc8 properties, and as a whole with address. The reversed id and address can be retrieved as r_id and r_address.
По умолчанию - формат f.i
Я когда-то, для экспериментов установил format = fic
Сейчас для меня некритично и я вернул format = f.i чтоб было как у всех
! root@art4:~# ls -l /mnt/1wire/
! drwxrwxrwx 1 root root 4096 сер 28 08:39 26.1DE491010000
! drwxrwxrwx 1 root root 4096 сер 28 08:39 26.8725A4010000
! drwxrwxrwx 1 root root 4096 сер 28 08:39 26.A9CA91010000
! drwxrwxrwx 1 root root 4096 сер 28 08:39 26.ECEA91010000
! drwxrwxrwx 1 root root 4096 сер 28 08:39 26.F1EA91010000
! drwxrwxrwx 1 root root 4096 сер 28 08:39 28.0D1C2A050000
! drwxrwxrwx 1 root root 4096 сер 28 08:39 28.34C848040000
! drwxrwxrwx 1 root root 4096 сер 28 08:39 28.3B42D8050000
! drwxrwxrwx 1 root root 4096 сер 28 08:39 28.799F74040000
! drwxrwxrwx 1 root root 4096 сер 28 08:39 28.864975040000
! drwxrwxrwx 1 root root 4096 сер 28 08:39 28.B0A92A050000
! drwxrwxrwx 1 root root 4096 сер 28 08:39 28.E5BC2A050000
! drwxrwxrwx 1 root root 4096 сер 28 08:39 29.191D16000000
! drwxrwxrwx 1 root root 4096 сер 28 08:39 29.276E0C000000
! drwxrwxrwx 1 root root 4096 сер 28 08:39 29.45B70C000000
! drwxr-xr-x 1 root root 4096 сер 28 08:38 alarm
! drwxr-xr-x 1 root root 4096 сер 28 08:38 bus.1
! drwxr-xr-x 1 root root 4096 сер 28 08:38 bus.2
! drwxr-xr-x 1 root root 4096 сер 28 08:38 bus.3
! drwxr-xr-x 1 root root 4096 сер 28 08:38 bus.4
! drwxr-xr-x 1 root root 4096 сер 28 08:38 bus.5
! drwxr-xr-x 1 root root 4096 сер 28 08:38 bus.6
! drwxr-xr-x 1 root root 4096 сер 28 08:38 bus.7
! drwxr-xr-x 1 root root 4096 сер 28 08:38 bus.8
! drwxr-xr-x 1 root root 4096 сер 28 08:38 settings
! drwxrwxrwx 1 root root 4096 сер 28 08:39 simultaneous
! drwxr-xr-x 1 root root 4096 сер 28 08:38 statistics
! drwxr-xr-x 1 root root 4096 сер 28 08:38 structure
! drwxr-xr-x 1 root root 4096 сер 28 08:38 system
! drwxr-xr-x 1 root root 4096 сер 28 08:38 uncached -
Но при этом запустился ещё один owsf.0 `
временно, как workaround, я установил на слейве скрипт, который отслеживает и при появлении дубликатов драйверов, запущенных мастером перезапускает iobroker на слейве:root@art1:~# cat /usr/local/bin/iobroker_duplicate_checker.sh #!/bin/bash count=`ps ax | grep 'io[.b]' | grep -v bash | awk -F" " '{print $5}' | uniq -d | wc -l` if [ "$count" -gt "0" ] then systemctl restart iobroker fi exit 0
И добавил в /etc/crontab
# Check Duplicate instances of iobroker and restart iobroker on a slave * * * * * root /usr/local/bin/iobroker_duplicate_checker.sh
-
Но при этом запустился ещё один owsf.0 `
временно, как workaround, я установил на слейве скрипт, который отслеживает и при появлении дубликатов драйверов, запущенных мастером перезапускает iobroker на слейве:root@art1:~# cat /usr/local/bin/iobroker_duplicate_checker.sh #!/bin/bash count=`ps ax | grep 'io[.b]' | grep -v bash | awk -F" " '{print $5}' | uniq -d | wc -l` if [ "$count" -gt "0" ] then systemctl restart iobroker fi exit 0
И добавил в /etc/crontab
# Check Duplicate instances of iobroker and restart iobroker on a slave * * * * * root /usr/local/bin/iobroker_duplicate_checker.sh ```` `
После чистой установки owfs сколько не менял настройки драйвера появление дубликатов замечено не было
-
За формат отвечает ключ -f
Из man owfs
-f --format="f[.]i[[.]c]" Display format for the 1-wire devices. Each device has a 8byte address, consisting of: f family code, 1 byte i ID number, 6 bytes c CRC checksum, 1 byte Possible formats are f.i (default, 01.A1B2C3D4E5F6), fi fic f.ic f.i.c and fi.c All formats are accepted as input, but the output will be in the specified format. The address elements can be retrieved from a device entry in owfs by the family, id and crc8 properties, and as a whole with address. The reversed id and address can be retrieved as r_id and r_address.
По умолчанию - формат f.i
Я когда-то, для экспериментов установил format = fic
Сейчас для меня некритично и я вернул format = f.i чтоб было как у всех
! root@art4:~# ls -l /mnt/1wire/
! drwxrwxrwx 1 root root 4096 сер 28 08:39 26.1DE491010000
! drwxrwxrwx 1 root root 4096 сер 28 08:39 26.8725A4010000
! drwxrwxrwx 1 root root 4096 сер 28 08:39 26.A9CA91010000
! drwxrwxrwx 1 root root 4096 сер 28 08:39 26.ECEA91010000
! drwxrwxrwx 1 root root 4096 сер 28 08:39 26.F1EA91010000
! drwxrwxrwx 1 root root 4096 сер 28 08:39 28.0D1C2A050000
! drwxrwxrwx 1 root root 4096 сер 28 08:39 28.34C848040000
! drwxrwxrwx 1 root root 4096 сер 28 08:39 28.3B42D8050000
! drwxrwxrwx 1 root root 4096 сер 28 08:39 28.799F74040000
! drwxrwxrwx 1 root root 4096 сер 28 08:39 28.864975040000
! drwxrwxrwx 1 root root 4096 сер 28 08:39 28.B0A92A050000
! drwxrwxrwx 1 root root 4096 сер 28 08:39 28.E5BC2A050000
! drwxrwxrwx 1 root root 4096 сер 28 08:39 29.191D16000000
! drwxrwxrwx 1 root root 4096 сер 28 08:39 29.276E0C000000
! drwxrwxrwx 1 root root 4096 сер 28 08:39 29.45B70C000000
! drwxr-xr-x 1 root root 4096 сер 28 08:38 alarm
! drwxr-xr-x 1 root root 4096 сер 28 08:38 bus.1
! drwxr-xr-x 1 root root 4096 сер 28 08:38 bus.2
! drwxr-xr-x 1 root root 4096 сер 28 08:38 bus.3
! drwxr-xr-x 1 root root 4096 сер 28 08:38 bus.4
! drwxr-xr-x 1 root root 4096 сер 28 08:38 bus.5
! drwxr-xr-x 1 root root 4096 сер 28 08:38 bus.6
! drwxr-xr-x 1 root root 4096 сер 28 08:38 bus.7
! drwxr-xr-x 1 root root 4096 сер 28 08:38 bus.8
! drwxr-xr-x 1 root root 4096 сер 28 08:38 settings
! drwxrwxrwx 1 root root 4096 сер 28 08:39 simultaneous
! drwxr-xr-x 1 root root 4096 сер 28 08:38 statistics
! drwxr-xr-x 1 root root 4096 сер 28 08:38 structure
! drwxr-xr-x 1 root root 4096 сер 28 08:38 system
! drwxr-xr-x 1 root root 4096 сер 28 08:38 uncached `
Тогда получается фильтр Bluefox'a правильный , только лишний в ответе датчик?P.S. Bluefox уже всё сделал 0.3.4
-
После чистой установки owfs сколько не менял настройки драйвера появление дубликатов замечено не было `
у меня были проблемы только на слейве - при перезапуске iobroker на мастере или рестарта мастер сервера.А так, как у меня там свой экземпляр javascript адаптера - при дубликате его - он перестает работать.
! Необходимость в двух серверах в том, что другой установлен на входной двери
! и обрабатывает информацию от датчиков тока возле щитка, ИК освещении перед дверью,
! герконов в двери и замке, RFID ключа, камеры в глазке и т.п.
! Делать связь через WiFi не стал - так как вор бы включил глушилку на частоте WiFi и открывай дверь,
! никакой сигнализации не будет. Поэтому протянул к слейву витую пару и завел все через нее. -
P.S. Bluefox уже всё сделал 0.3.4 `
Обновился до 0.3.4 - находит все датчики(перешел на формат f.i который по умолчанию)
Большое спасибо Bluefox!
-
На гите:
0.3.3 (2016-08-25)
-
(bluefox) custom poll interval for every sensor
-
(bluefox) fix list of sensors over ethernet more than 5 `
custom poll interval for every sensor - отличная возможность реально разгрузить проц,
датчики движения можно опрашивать в 2 сек, а например, температуру раз в минуту.
Нагрузка от OWFS уменьшилась с 20% до 4% по CPU!
-
-
На гите:
0.3.3 (2016-08-25)
-
(bluefox) custom poll interval for every sensor
-
(bluefox) fix list of sensors over ethernet more than 5 `
custom poll interval for every sensor - отличная возможность реально разгрузить проц,
датчики движения можно опрашивать в 2 сек, а например, температуру раз в минуту.
Нагрузка от OWFS уменьшилась с 20% до 4% по CPU! `
Да я это запрашивал ещё в драйвере MegaD, там на порту могут быть датчики температуры с которых в некоторых случаях данные нужны часто. Так приходится через скрипт опрашивать порт чтобы не гонять драйвер чаще чем необходимо для других портов. -