Nun bin ich schon viel weiter 🙂
Ein paar Fragen hab ich aber noch:
1. warum benötige ich ein delay, bis ein Datenpunktwert genutzt werden kann?
2. warum ist bei setState string Variablenübergabe ein Leerstring vor der Variablen notwendig? Ansonsten wird ein Leerstring im state gespeichert.
3. Muss der createState 'UDP_val' in iobroker nur einmal ausgeführt werden und bleibt er in iobroker auch über Stopp und Neustart hinaus erhalten?
4. Wie ändere ich einen JavaScript Namen?
JavaScript Code:
/*
UDB value empfangen und in variable laden
teststring home protokoll:
19999R123456789ABCDE19
function createString(name) {
createState(name, "", {read: true,
write: true,
desc: "Beschreibung",
type: "string",
def: ""
});
}
*/
var lfd=0;
var PORT1 = 5003;
var HOST = '192.168.1.102';
var dgram = require('dgram');
var server = dgram.createSocket('udp4');
server.on('listening', function () {
var address = server.address();
/*createState('UDB_val',"", {read:true,
write: true,
desc: "UDB_string",
type: "string",
def: "start"
});*/
setState('UDB_val','');
setTimeout(function() { // delay, damit state gesetzt ist vor weiterer verwendung
console.log('UDP broker listening on ' + address.address + ":" + address.port + ' UDB_val: ' + getState('UDB_val').val);
}, 500);
});
server.on('message', function (message, remote) {
setState('UDB_val',''+ message,true); // warum leerstring vor der variablen notwendig?
setTimeout(function() { // delay, damit state gesetzt ist vor weiterer verwendung
lfd=lfd+1;
console.log('lfd: ' + lfd + ' UDP_val: ' + getState('UDB_val').val);
}, 500);
});
server.bind(PORT1, HOST);