Size: a a a

ioBroker smarthome

2019 March 02

MS

Mak Sim in ioBroker smarthome
Илья Киров
чего пишет?
$ ./iobroker del zigbee
Delete adapter "zigbee"
host.raspberrypi no instances of adapter zigbee found
npm uninstall iobroker.zigbee --silent --save --prefix "/opt/iobroker" (System call)
ERROR: Error deleting adapter zigbee from disk: Error: host.raspberrypi: Cannot uninstall iobroker.zigbee: 243
ERROR: You might have to delete it yourself!
process exited with code 0
источник

A

Anzor in ioBroker smarthome
Илья Киров
у меня везде А1
источник

ИК

Илья Киров in ioBroker smarthome
источник

A

Anzor in ioBroker smarthome
источник

ИК

Илья Киров in ioBroker smarthome
Mak Sim
$ ./iobroker del zigbee
Delete adapter "zigbee"
host.raspberrypi no instances of adapter zigbee found
npm uninstall iobroker.zigbee --silent --save --prefix "/opt/iobroker" (System call)
ERROR: Error deleting adapter zigbee from disk: Error: host.raspberrypi: Cannot uninstall iobroker.zigbee: 243
ERROR: You might have to delete it yourself!
process exited with code 0
тогда удаляй вручную. в iobroker/node_modules/ удаляй iobroker.zigbee папку
источник

A

Anzor in ioBroker smarthome
CRC-8/MAXIM нужно
источник

ИК

Илья Киров in ioBroker smarthome
а чего у тебя hex переключатель выставлен
источник

A

Anzor in ioBroker smarthome
Илья Киров
а чего у тебя hex переключатель выставлен
на ASCII DF возвращает
источник

ИК

Илья Киров in ioBroker smarthome
Anzor
на ASCII DF возвращает
так я тебе про простую CRC-8 говорю. у тебя код под него работает сейчас. а CRC-8/MAXIM не работает :(
источник

A

Anzor in ioBroker smarthome
Илья Киров
Только немного можно поменять тут, чтобы использовался другая константа для суммы
var crc8 = new CRC8(CRC8.POLY.CRC8_DALLAS_MAXIM);
а вот это не нужно?
источник

ИК

Илья Киров in ioBroker smarthome
Anzor
а вот это не нужно?
нужно. но он не так считает как на сайте
источник

A

Anzor in ioBroker smarthome
Илья Киров
нужно. но он не так считает как на сайте
т.е. этот скрипт мне не подойдет..
источник

ИК

Илья Киров in ioBroker smarthome
Anzor
т.е. этот скрипт мне не подойдет..
под твой алгоритм похоже нет... либо надо подбирать параметры, либо иной скрипт искать
источник

A

Anzor in ioBroker smarthome
Илья Киров
под твой алгоритм похоже нет... либо надо подбирать параметры, либо иной скрипт искать
а вот этот можешь глянуть?

// Returns the 8-bit (as hex) checksum given a  string
// Based on https://github.com/alexgorbatchev/node-crc/blob/master/src/crc8.js
// And https://github.com/mode80/crc8js/blob/master/crc8.js
checksum = function(message) {
 var c = 0
 var byte_array = message.split('').map(function(x) {return x.charCodeAt(0)});
 var table = [
   0x00, 0x07, 0x0e, 0x09, 0x1c, 0x1b, 0x12, 0x15, 0x38, 0x3f, 0x36, 0x31, 0x24, 0x23, 0x2a, 0x2d,
   0x70, 0x77, 0x7e, 0x79, 0x6c, 0x6b, 0x62, 0x65, 0x48, 0x4f, 0x46, 0x41, 0x54, 0x53, 0x5a, 0x5d,
   0xe0, 0xe7, 0xee, 0xe9, 0xfc, 0xfb, 0xf2, 0xf5, 0xd8, 0xdf, 0xd6, 0xd1, 0xc4, 0xc3, 0xca, 0xcd,
   0x90, 0x97, 0x9e, 0x99, 0x8c, 0x8b, 0x82, 0x85, 0xa8, 0xaf, 0xa6, 0xa1, 0xb4, 0xb3, 0xba, 0xbd,
   0xc7, 0xc0, 0xc9, 0xce, 0xdb, 0xdc, 0xd5, 0xd2, 0xff, 0xf8, 0xf1, 0xf6, 0xe3, 0xe4, 0xed, 0xea,
   0xb7, 0xb0, 0xb9, 0xbe, 0xab, 0xac, 0xa5, 0xa2, 0x8f, 0x88, 0x81, 0x86, 0x93, 0x94, 0x9d, 0x9a,
   0x27, 0x20, 0x29, 0x2e, 0x3b, 0x3c, 0x35, 0x32, 0x1f, 0x18, 0x11, 0x16, 0x03, 0x04, 0x0d, 0x0a,
   0x57, 0x50, 0x59, 0x5e, 0x4b, 0x4c, 0x45, 0x42, 0x6f, 0x68, 0x61, 0x66, 0x73, 0x74, 0x7d, 0x7a,
   0x89, 0x8e, 0x87, 0x80, 0x95, 0x92, 0x9b, 0x9c, 0xb1, 0xb6, 0xbf, 0xb8, 0xad, 0xaa, 0xa3, 0xa4,
   0xf9, 0xfe, 0xf7, 0xf0, 0xe5, 0xe2, 0xeb, 0xec, 0xc1, 0xc6, 0xcf, 0xc8, 0xdd, 0xda, 0xd3, 0xd4,
   0x69, 0x6e, 0x67, 0x60, 0x75, 0x72, 0x7b, 0x7c, 0x51, 0x56, 0x5f, 0x58, 0x4d, 0x4a, 0x43, 0x44,
   0x19, 0x1e, 0x17, 0x10, 0x05, 0x02, 0x0b, 0x0c, 0x21, 0x26, 0x2f, 0x28, 0x3d, 0x3a, 0x33, 0x34,
   0x4e, 0x49, 0x40, 0x47, 0x52, 0x55, 0x5c, 0x5b, 0x76, 0x71, 0x78, 0x7f, 0x6a, 0x6d, 0x64, 0x63,
   0x3e, 0x39, 0x30, 0x37, 0x22, 0x25, 0x2c, 0x2b, 0x06, 0x01, 0x08, 0x0f, 0x1a, 0x1d, 0x14, 0x13,
   0xae, 0xa9, 0xa0, 0xa7, 0xb2, 0xb5, 0xbc, 0xbb, 0x96, 0x91, 0x98, 0x9f, 0x8a, 0x8d, 0x84, 0x83,
   0xde, 0xd9, 0xd0, 0xd7, 0xc2, 0xc5, 0xcc, 0xcb, 0xe6, 0xe1, 0xe8, 0xef, 0xfa, 0xfd, 0xf4, 0xf3
 ];
 
 for (var i = 0; i < byte_array.length; i++) {
   c = table[(c ^ byte_array[i]) % 256];
 }
 
 return ("00" + c.toString(16)).substr(-2);
}

$('#in').on('propertychange change click keyup input paste', function() {
 var m = $('#in').val()
 $('#out').text(m + checksum(m));
});
источник

ИК

Илья Киров in ioBroker smarthome
Anzor
а вот этот можешь глянуть?

// Returns the 8-bit (as hex) checksum given a  string
// Based on https://github.com/alexgorbatchev/node-crc/blob/master/src/crc8.js
// And https://github.com/mode80/crc8js/blob/master/crc8.js
checksum = function(message) {
 var c = 0
 var byte_array = message.split('').map(function(x) {return x.charCodeAt(0)});
 var table = [
   0x00, 0x07, 0x0e, 0x09, 0x1c, 0x1b, 0x12, 0x15, 0x38, 0x3f, 0x36, 0x31, 0x24, 0x23, 0x2a, 0x2d,
   0x70, 0x77, 0x7e, 0x79, 0x6c, 0x6b, 0x62, 0x65, 0x48, 0x4f, 0x46, 0x41, 0x54, 0x53, 0x5a, 0x5d,
   0xe0, 0xe7, 0xee, 0xe9, 0xfc, 0xfb, 0xf2, 0xf5, 0xd8, 0xdf, 0xd6, 0xd1, 0xc4, 0xc3, 0xca, 0xcd,
   0x90, 0x97, 0x9e, 0x99, 0x8c, 0x8b, 0x82, 0x85, 0xa8, 0xaf, 0xa6, 0xa1, 0xb4, 0xb3, 0xba, 0xbd,
   0xc7, 0xc0, 0xc9, 0xce, 0xdb, 0xdc, 0xd5, 0xd2, 0xff, 0xf8, 0xf1, 0xf6, 0xe3, 0xe4, 0xed, 0xea,
   0xb7, 0xb0, 0xb9, 0xbe, 0xab, 0xac, 0xa5, 0xa2, 0x8f, 0x88, 0x81, 0x86, 0x93, 0x94, 0x9d, 0x9a,
   0x27, 0x20, 0x29, 0x2e, 0x3b, 0x3c, 0x35, 0x32, 0x1f, 0x18, 0x11, 0x16, 0x03, 0x04, 0x0d, 0x0a,
   0x57, 0x50, 0x59, 0x5e, 0x4b, 0x4c, 0x45, 0x42, 0x6f, 0x68, 0x61, 0x66, 0x73, 0x74, 0x7d, 0x7a,
   0x89, 0x8e, 0x87, 0x80, 0x95, 0x92, 0x9b, 0x9c, 0xb1, 0xb6, 0xbf, 0xb8, 0xad, 0xaa, 0xa3, 0xa4,
   0xf9, 0xfe, 0xf7, 0xf0, 0xe5, 0xe2, 0xeb, 0xec, 0xc1, 0xc6, 0xcf, 0xc8, 0xdd, 0xda, 0xd3, 0xd4,
   0x69, 0x6e, 0x67, 0x60, 0x75, 0x72, 0x7b, 0x7c, 0x51, 0x56, 0x5f, 0x58, 0x4d, 0x4a, 0x43, 0x44,
   0x19, 0x1e, 0x17, 0x10, 0x05, 0x02, 0x0b, 0x0c, 0x21, 0x26, 0x2f, 0x28, 0x3d, 0x3a, 0x33, 0x34,
   0x4e, 0x49, 0x40, 0x47, 0x52, 0x55, 0x5c, 0x5b, 0x76, 0x71, 0x78, 0x7f, 0x6a, 0x6d, 0x64, 0x63,
   0x3e, 0x39, 0x30, 0x37, 0x22, 0x25, 0x2c, 0x2b, 0x06, 0x01, 0x08, 0x0f, 0x1a, 0x1d, 0x14, 0x13,
   0xae, 0xa9, 0xa0, 0xa7, 0xb2, 0xb5, 0xbc, 0xbb, 0x96, 0x91, 0x98, 0x9f, 0x8a, 0x8d, 0x84, 0x83,
   0xde, 0xd9, 0xd0, 0xd7, 0xc2, 0xc5, 0xcc, 0xcb, 0xe6, 0xe1, 0xe8, 0xef, 0xfa, 0xfd, 0xf4, 0xf3
 ];
 
 for (var i = 0; i < byte_array.length; i++) {
   c = table[(c ^ byte_array[i]) % 256];
 }
 
 return ("00" + c.toString(16)).substr(-2);
}

$('#in').on('propertychange change click keyup input paste', function() {
 var m = $('#in').val()
 $('#out').text(m + checksum(m));
});
он тоже считает обычный CRC-8
источник

ИК

Илья Киров in ioBroker smarthome
Anzor
а вот этот можешь глянуть?

// Returns the 8-bit (as hex) checksum given a  string
// Based on https://github.com/alexgorbatchev/node-crc/blob/master/src/crc8.js
// And https://github.com/mode80/crc8js/blob/master/crc8.js
checksum = function(message) {
 var c = 0
 var byte_array = message.split('').map(function(x) {return x.charCodeAt(0)});
 var table = [
   0x00, 0x07, 0x0e, 0x09, 0x1c, 0x1b, 0x12, 0x15, 0x38, 0x3f, 0x36, 0x31, 0x24, 0x23, 0x2a, 0x2d,
   0x70, 0x77, 0x7e, 0x79, 0x6c, 0x6b, 0x62, 0x65, 0x48, 0x4f, 0x46, 0x41, 0x54, 0x53, 0x5a, 0x5d,
   0xe0, 0xe7, 0xee, 0xe9, 0xfc, 0xfb, 0xf2, 0xf5, 0xd8, 0xdf, 0xd6, 0xd1, 0xc4, 0xc3, 0xca, 0xcd,
   0x90, 0x97, 0x9e, 0x99, 0x8c, 0x8b, 0x82, 0x85, 0xa8, 0xaf, 0xa6, 0xa1, 0xb4, 0xb3, 0xba, 0xbd,
   0xc7, 0xc0, 0xc9, 0xce, 0xdb, 0xdc, 0xd5, 0xd2, 0xff, 0xf8, 0xf1, 0xf6, 0xe3, 0xe4, 0xed, 0xea,
   0xb7, 0xb0, 0xb9, 0xbe, 0xab, 0xac, 0xa5, 0xa2, 0x8f, 0x88, 0x81, 0x86, 0x93, 0x94, 0x9d, 0x9a,
   0x27, 0x20, 0x29, 0x2e, 0x3b, 0x3c, 0x35, 0x32, 0x1f, 0x18, 0x11, 0x16, 0x03, 0x04, 0x0d, 0x0a,
   0x57, 0x50, 0x59, 0x5e, 0x4b, 0x4c, 0x45, 0x42, 0x6f, 0x68, 0x61, 0x66, 0x73, 0x74, 0x7d, 0x7a,
   0x89, 0x8e, 0x87, 0x80, 0x95, 0x92, 0x9b, 0x9c, 0xb1, 0xb6, 0xbf, 0xb8, 0xad, 0xaa, 0xa3, 0xa4,
   0xf9, 0xfe, 0xf7, 0xf0, 0xe5, 0xe2, 0xeb, 0xec, 0xc1, 0xc6, 0xcf, 0xc8, 0xdd, 0xda, 0xd3, 0xd4,
   0x69, 0x6e, 0x67, 0x60, 0x75, 0x72, 0x7b, 0x7c, 0x51, 0x56, 0x5f, 0x58, 0x4d, 0x4a, 0x43, 0x44,
   0x19, 0x1e, 0x17, 0x10, 0x05, 0x02, 0x0b, 0x0c, 0x21, 0x26, 0x2f, 0x28, 0x3d, 0x3a, 0x33, 0x34,
   0x4e, 0x49, 0x40, 0x47, 0x52, 0x55, 0x5c, 0x5b, 0x76, 0x71, 0x78, 0x7f, 0x6a, 0x6d, 0x64, 0x63,
   0x3e, 0x39, 0x30, 0x37, 0x22, 0x25, 0x2c, 0x2b, 0x06, 0x01, 0x08, 0x0f, 0x1a, 0x1d, 0x14, 0x13,
   0xae, 0xa9, 0xa0, 0xa7, 0xb2, 0xb5, 0xbc, 0xbb, 0x96, 0x91, 0x98, 0x9f, 0x8a, 0x8d, 0x84, 0x83,
   0xde, 0xd9, 0xd0, 0xd7, 0xc2, 0xc5, 0xcc, 0xcb, 0xe6, 0xe1, 0xe8, 0xef, 0xfa, 0xfd, 0xf4, 0xf3
 ];
 
 for (var i = 0; i < byte_array.length; i++) {
   c = table[(c ^ byte_array[i]) % 256];
 }
 
 return ("00" + c.toString(16)).substr(-2);
}

$('#in').on('propertychange change click keyup input paste', function() {
 var m = $('#in').val()
 $('#out').text(m + checksum(m));
});
ща, погодь
источник

A

Anzor in ioBroker smarthome
может вот тут надо поменять
if (polynomial == null) polynomial = CRC8.POLY.CRC8_CCITT
источник

MS

Mak Sim in ioBroker smarthome
Илья Киров
тогда удаляй вручную. в iobroker/node_modules/ удаляй iobroker.zigbee папку
Удалил вручную, перезагрузил. Попробовал установить через страницу драйверов в iob.
$ ./iobroker add zigbee  --host raspberrypi
host.raspberrypi install adapter zigbee
npm install --production (System call) in "/node_modules/iobroker.zigbee"
npm
WARN checkPermissions Missing write access to /node_modules/iobroker.zigbee
npm ERR! path /node_modules/iobroker.zigbeenpm ERR! code EACCES

npm ERR! errno -13npm ERR! syscall access

npm ERR! Error: EACCES: permission denied, access '/node_modules/iobroker.zigbee'npm ERR!  { [Error: EACCES: permission denied, access '/node_modules/iobroker.zigbee']
npm ERR!   stack:
npm ERR!    "Error: EACCES: permission denied, access '/node_modules/iobroker.zigbee'",
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'access',
npm
ERR!   path: '/node_modules/iobroker.zigbee' }npm ERR!
npm ERR! The operation was rejected by your operating system.
npm ERR! It is likely you do not have the permissions to access this file as the current user
npm ERR!
npm ERR! If you believe this might be a permissions issue, please double-check the
npm ERR! permissions of the file and its containing directories, or try running
npm ERR! the command again as root/Administrator (though this is not recommended).

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/iobroker/.npm/_logs/2019-03-02T17_09_18_577Z-debug.log

Cannot install iobroker.zigbee: 243
ERROR: process exited with code 25
источник

MS

Mak Sim in ioBroker smarthome
А вот так через ssh
root@raspberrypi:~# sudo npm install --production in "/node_modules/iobroker.zigbee"
npm WARN checkPermissions Missing write access to /node_modules/iobroker.zigbee/node_modules/ms
npm WARN checkPermissions Missing write access to /node_modules/iobroker.zigbee/node_modules/debug
npm WARN checkPermissions Missing write access to /node_modules/iobroker.zigbee/node_modules
npm WARN gextend@0.1.6 requires a peer of grunt-cli@~0.1.9 but none is installed. You must install peer dependencies yourself.
npm WARN root@1.0.0 No description
npm WARN root@1.0.0 No repository field.

npm ERR! path /node_modules/iobroker.zigbee/node_modules/ms
npm ERR! code ENOENT
npm ERR! errno -2
npm ERR! syscall access
npm ERR! enoent ENOENT: no such file or directory, access '/node_modules/iobroker.zigbee/node_modules/ms'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2019-03-02T17_12_18_533Z-debug.log
root@raspberrypi:~#
источник

ИК

Илья Киров in ioBroker smarthome
Anzor
может вот тут надо поменять
if (polynomial == null) polynomial = CRC8.POLY.CRC8_CCITT
если надо чтобы всё совпадало - вот https://pastebin.com/UW3jccTy
источник