NEWS
Разные ошибки
-
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, там на порту могут быть датчики температуры с которых в некоторых случаях данные нужны часто. Так приходится через скрипт опрашивать порт чтобы не гонять драйвер чаще чем необходимо для других портов. -
-
Хочу установить Flot Charts
А в ответ ошибка````
ERROR: host.Bee-IoT Invalid version of "web". Installed "1.5.3", required ">=1.5.4WEB обновлять не предлагает!
-
Хочу установить Flot Charts
А в ответ ошибка````
ERROR: host.Bee-IoT Invalid version of "web". Installed "1.5.3", required ">=1.5.4WEB обновлять не предлагает! `
WEB еще в тесте, новая версия только на GitHub
-
Хочу установить Flot Charts
А в ответ ошибка````
ERROR: host.Bee-IoT Invalid version of "web". Installed "1.5.3", required ">=1.5.4WEB обновлять не предлагает! `
WEB еще в тесте, новая версия только на GitHub `
У меня WEB не устанавливается с github:!
iobroker 2016-09-05 10:28:30.203 info exit 25 iobroker 2016-09-05 10:28:30.199 error host.vm32test Cannot install https://github.com/ioBroker/ioBroker.web/tarball/master: 1 iobroker 2016-09-05 10:28:30.190 info ERR! /npm-debug.log iobroker 2016-09-05 10:28:30.190 info npm iobroker 2016-09-05 10:28:30.188 info Please include the following file with any support request: iobroker 2016-09-05 10:28:30.187 info ERR! iobroker 2016-09-05 10:28:30.185 info iobroker 2016-09-05 10:28:30.184 info npm iobroker 2016-09-05 10:28:30.182 info iobroker 2016-09-05 10:28:30.054 info npm ERR! notarget iobroker 2016-09-05 10:28:30.054 info npm ERR! notarget It was specified as a dependency of 'iobroker.web' iobroker 2016-09-05 10:28:30.054 info npm ERR! notarget iobroker 2016-09-05 10:28:30.054 info npm ERR! notarget a package version that doesn't exist. iobroker 2016-09-05 10:28:30.054 info npm ERR! notarget This is most likely not a problem with npm itself.npm ERR! notarget In most cases you or one of your dependencies are requesting iobroker 2016-09-05 10:28:30.052 info ERR! notarget iobroker 2016-09-05 10:28:30.050 info npm iobroker 2016-09-05 10:28:30.050 info npm ERR! notarget ["0.0.1","0.0.2","0.0.3","0.0.4","0.1.1","0.1.2","1.0.0","1.1.0","1.1.1"] iobroker 2016-09-05 10:28:30.050 info npm ERR! notarget No compatible version found: iobroker.simple-api@'>=1.3.0'npm ERR! notarget Valid install targets: iobroker 2016-09-05 10:28:30.040 info ETARGET iobroker 2016-09-05 10:28:30.037 info npm ERR! npm v2.15.1npm ERR! code iobroker 2016-09-05 10:28:30.034 info npm ERR! node v4.4.4 iobroker 2016-09-05 10:28:30.032 info ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "https://github.com/ioBroker/ioBroker.web/tarball/master" "--production" "--prefix" "/opt/iobroker" iobroker 2016-09-05 10:28:30.030 info npm iobroker 2016-09-05 10:28:30.029 info Linux 3.2.0-4-amd64 iobroker 2016-09-05 10:28:30.026 info ERR! iobroker 2016-09-05 10:28:30.024 info iobroker 2016-09-05 10:28:30.020 info npm iobroker 2016-09-05 10:28:23.841 info npm install https://github.com/ioBroker/ioBroker.web/tarball/master --production --prefix "/opt/iobroker" (System call) iobroker 2016-09-05 10:28:23.774 info install https://github.com/ioBroker/ioBroker.web/tarball/master iobroker 2016-09-05 10:28:23.564 info url "https://github.com/ioBroker/ioBroker.web/tarball/master" --debug !
-
Хочу установить Flot Charts
А в ответ ошибка````
ERROR: host.Bee-IoT Invalid version of "web". Installed "1.5.3", required ">=1.5.4WEB обновлять не предлагает! `
WEB еще в тесте, новая версия только на GitHub `
У меня WEB не устанавливается с github:!
iobroker 2016-09-05 10:28:30.203 info exit 25 iobroker 2016-09-05 10:28:30.199 error host.vm32test Cannot install https://github.com/ioBroker/ioBroker.web/tarball/master: 1 iobroker 2016-09-05 10:28:30.190 info ERR! /npm-debug.log iobroker 2016-09-05 10:28:30.190 info npm iobroker 2016-09-05 10:28:30.188 info Please include the following file with any support request: iobroker 2016-09-05 10:28:30.187 info ERR! iobroker 2016-09-05 10:28:30.185 info iobroker 2016-09-05 10:28:30.184 info npm iobroker 2016-09-05 10:28:30.182 info iobroker 2016-09-05 10:28:30.054 info npm ERR! notarget iobroker 2016-09-05 10:28:30.054 info npm ERR! notarget It was specified as a dependency of 'iobroker.web' iobroker 2016-09-05 10:28:30.054 info npm ERR! notarget iobroker 2016-09-05 10:28:30.054 info npm ERR! notarget a package version that doesn't exist. iobroker 2016-09-05 10:28:30.054 info npm ERR! notarget This is most likely not a problem with npm itself.npm ERR! notarget In most cases you or one of your dependencies are requesting iobroker 2016-09-05 10:28:30.052 info ERR! notarget iobroker 2016-09-05 10:28:30.050 info npm iobroker 2016-09-05 10:28:30.050 info npm ERR! notarget ["0.0.1","0.0.2","0.0.3","0.0.4","0.1.1","0.1.2","1.0.0","1.1.0","1.1.1"] iobroker 2016-09-05 10:28:30.050 info npm ERR! notarget No compatible version found: iobroker.simple-api@'>=1.3.0'npm ERR! notarget Valid install targets: iobroker 2016-09-05 10:28:30.040 info ETARGET iobroker 2016-09-05 10:28:30.037 info npm ERR! npm v2.15.1npm ERR! code iobroker 2016-09-05 10:28:30.034 info npm ERR! node v4.4.4 iobroker 2016-09-05 10:28:30.032 info ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "https://github.com/ioBroker/ioBroker.web/tarball/master" "--production" "--prefix" "/opt/iobroker" iobroker 2016-09-05 10:28:30.030 info npm iobroker 2016-09-05 10:28:30.029 info Linux 3.2.0-4-amd64 iobroker 2016-09-05 10:28:30.026 info ERR! iobroker 2016-09-05 10:28:30.024 info iobroker 2016-09-05 10:28:30.020 info npm iobroker 2016-09-05 10:28:23.841 info npm install https://github.com/ioBroker/ioBroker.web/tarball/master --production --prefix "/opt/iobroker" (System call) iobroker 2016-09-05 10:28:23.774 info install https://github.com/ioBroker/ioBroker.web/tarball/master iobroker 2016-09-05 10:28:23.564 info url "https://github.com/ioBroker/ioBroker.web/tarball/master" --debug !
`
Установи сначала simple-api и socketio с гита -
Хочу установить Flot Charts
А в ответ ошибка````
ERROR: host.Bee-IoT Invalid version of "web". Installed "1.5.3", required ">=1.5.4WEB обновлять не предлагает! `
WEB еще в тесте, новая версия только на GitHub `
А как его оттуда поставить-то. Там версия 1.7.0.PS: Ой догадался…
npm install https://github.com/ioBroker/ioBroker.simple-api/tarball/master npm install https://github.com/ioBroker/ioBroker.socketio/tarball/master
А затем
npm install https://github.com/ioBroker/ioBroker.web/tarball/master
Потом пришлось еще и````
npm install https://github.com/ioBroker/ioBroker.js-controller/tarball/master -
А как его оттуда поставить-то. Там версия 1.7.0.
PS: Ой догадался… `
А еще в админке есть волшебная кнопочка, которая позволяет ставить драйвера с гитхаб (или другого источника), можно её использовать.
1238_pic_53.jpg
1238_pic_54.jpg -