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');
});
})
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden