@OliverIO mein Verständnis von Code liegt vielleicht daran, dass ich es hauptsächlich mit Industriesteuerungen (Siemens u.Ä.) zu tun habe.
0: Ich starte den Server, weil das I/O Modul als Client fungiert und die Verbindung zum Server herstellt.
1: Habe ich gemacht
2: Habe ich auch gemacht
3: Das stelle ich erstmal zurück bis ich den Rest richtig verstanden habe
4: Das mit dem Aufräumen habe ich noch nicht im Griff. Wie kann ich zum Beispiel erreichen dass der TCP Server beendet wird wenn ich das Script anhalte?
Meine neuste Erkenntnis: Sende ich 'AT+OCCH0=?\n' bekomme ich als Antwort 'OCCH1=0\nOCCH2=0\nOCCH3=0\nOCCH4=0\n'
Hier nochmal mein angepasster Code:
// Load the TCP Library
var net = require('net');
// Start a TCP Server
var server = net.createServer(function (socket) {
// Identify this client
socket.name = socket.remoteAddress + ":" + socket.remotePort
console.log(socket.name);
socket.on('end', function () {
server.close();
});
socket.on('data', function (data) {
var newdata = "" + data;
var newdatachunks = newdata.split('\n');
for (var i = 0; i < (newdatachunks.length - 1); i++) {
const state = newdatachunks[i].toString().split(':');
// console.log(state[0] + " --- " + state[1]);
if (state[0] == "+OCCH1") {
if (getState('javascript.0.Rolladen.EgSchlafen.Fenster1geschlossen'/*Fenster1geschlossen*/).val != Boolean(toInt(state[1]))) {
setState('javascript.0.Rolladen.EgSchlafen.Fenster1geschlossen'/*Fenster1geschlossen*/, Boolean(toInt(state[1])));
}
}
if (state[0] == "+OCCH2") {
if (getState('javascript.0.Rolladen.EgSchlafen.Fenster2geschlossen'/*Fenster2geschlossen*/).val != Boolean(toInt(state[1]))) {
setState('javascript.0.Rolladen.EgSchlafen.Fenster2geschlossen'/*Fenster2geschlossen*/, Boolean(toInt(state[1])));
}
}
if (state[0] == "+OCCH3") {
if (getState('javascript.0.Rolladen.EgSchlafen.TasterAuf'/*TasterAuf*/).val != Boolean(toInt(state[1]))) {
setState('javascript.0.Rolladen.EgSchlafen.TasterAuf'/*TasterAuf*/, Boolean(toInt(state[1])));
}
}
if (state[0] == "+OCCH4") {
if (getState('javascript.0.Rolladen.EgSchlafen.TasterAb'/*TasterAb*/).val != Boolean(toInt(state[1]))) {
setState('javascript.0.Rolladen.EgSchlafen.TasterAb'/*TasterAb*/, Boolean(toInt(state[1])));
}
}
}
});
function checkStatus() {
socket.write("AT+OCCH0=?\n");
};
setInterval(checkStatus, 200);
})
server.listen(6000);
console.log("Server running at port 6000\n");