NEWS
ESERA 1 Wire Controller
-
Ich habe ein kleines Skript geschrieben um die Daten meines ESERA 1 Wire controlles in einem bestimmten Rythmus einzulesen.
Derzeit realisiere ich damit meinen Gaszähler, meinen Stromzähler sowie 2 Wasserzähler .var schedule1;
schedule1 = schedule('*/1 * * * *', async () => { //Zeit in Minuten wie oft das Skript ausgeführt werden sollvar net = require('net');
var string_gesamt = ""; //Länge des eingelesenen Strings
var client = new net.Socket();
client.connect(5000, '192.168.x.x', function() { //Socket Verbindung aufbauen
console.log('Verbindung hergestellt ');
});client.on('data', function(data) {
string_gesamt = string_gesamt + data; // eingelesenen Daten zusammenführen
var string_laenge = string_gesamt.length;
if(string_laenge >= 130){ //mit 130 sind bei mir alle Zeichen eingelesen
//Daten erfassen und abspeichern
const Z_GAS = '1_OWD2_2';
const Z_STROM = '1_OWD3_1';
const Z_WASSER = '1_OWD3_2';
const Z_BRAUCHWASSER = '1_OWD2_1';
let position_gas = string_gesamt.search(Z_GAS);
let s0zaehler_gas = string_gesamt.slice((position_gas+9), (position_gas+16)); //Länge der jeweiligen Zeichenfolge festlegen (Hier 7 stelliger Zählerstand )
console.log("S0 Zählerstand Gas: " + s0zaehler_gas);
let position_strom = string_gesamt.search(Z_STROM);
let s0zaehler_strom = string_gesamt.slice((position_strom+9), (position_strom+17));
console.log("S0 Zählerstand Strom: " + s0zaehler_strom);
let position_wasser = string_gesamt.search(Z_WASSER);
let s0zaehler_wasser = string_gesamt.slice((position_wasser+9), (position_wasser+15));
console.log("S0 Zählerstand Wasser: " + s0zaehler_wasser);
let position_brauchwasser = string_gesamt.search(Z_BRAUCHWASSER);
let s0zaehler_brauchwasser = string_gesamt.slice((position_brauchwasser+9), (position_brauchwasser+14));
console.log("S0 Zählerstand Brauchwasser: " + s0zaehler_brauchwasser);
console.log(string_gesamt);
string_gesamt = 0; //String länge wieder auf 0 setzenconsole.log("Länge des eingelesenen Strings: " + string_laenge); client.destroy(); // kill client after server's response }
});
client.on('close', function() {
console.log('Connection closed');
});
})