Hier mein script, welches von der raspberry pi console als root gestartet wird.
wichtig: vorher den cul Adapter in iobroker stoppen, weil immer nur ein Prozess auf den serial port (usb) zugreifen kann
var Cul = require('/opt/iobroker/node_modules/cul');
var cul = new Cul({
//serialport: '/dev/serial/by-id/usb-busware.de_CUL868-if00',
serialport: '/dev/ttyACM0',
baudrate: 9600,
mode: 'SlowRF'
});
cul.on('data', function (raw, obj) {
console.log("data");
console.log(raw, obj);
});
cul.on('ready', function () {
// send arbitrary commands to culfw
console.log("ready");
cul.write('V'); // schreibt debug informationen auf console
//cul.write('F836B0300'); //raw notation, funktioniert, schaltet dose aus
//cul.write('F836B0311'); //raw notation, funktioniert, schaltet dose an
//cul.cmd('FS20', '836B', '1114', '00'); // elv notation, funktioniert, schaltet dose aus
cul.cmd('FS20', '836B', '1114', '11'); // elv notation, funktioniert, schaltet dose ein
console.log("ready done");
});
das script muss mit strg-c abgebrochen werden. während es läuft, und ich drück auf meiner FS20 Fernbedienung eine Taste, dann
zeigt es die FS20-Befehle an, die der cul usb stick erkannt hat.
output:
root@iobroker:~# sudo node fs20_raw.js
ready
ready done
data
V 1.67 CUL868 { data: { culfw: { version: '1.67', hardware: 'CUL868' } },
protocol: 'MORITZ',
rssi: -22 }
data
F836B030000 { protocol: 'FS20',
address: '836B03',
data:
{ addressCode: '836B',
addressCodeElv: '3114 2334',
addressDevice: '03',
addressDeviceElv: '1114',
extended: false,
bidirectional: false,
response: false,
cmd: 'off',
cmdRaw: '00' },
rssi: -74 }
data
F836B0311FF { protocol: 'FS20',
address: '836B03',
data:
{ addressCode: '836B',
addressCodeElv: '3114 2334',
addressDevice: '03',
addressDeviceElv: '1114',
extended: false,
bidirectional: false,
response: false,
cmd: 'on',
cmdRaw: '11' },
rssi: -74.5 }
Das heisst das die ganze intrastruktur funktioniert, jetzt muss ich nur noch rauskriegen, wie ich iobroker dazubringe, mit dem cul adapter auch diese kommandos zu verschicken.