@haus-automatisierung said in Plötzlich ReferenceError: request is not defined:
response.data.split('\n');
Juhu! Es geht endlich!
Falls es noch einmal jemand brauchen sollte (Auslesen der Werte aus einem Senertec Dachs BHKW) hier das funktionierende Script:
const url = 'http://glt:Passwort@IP des BHKW:8080/getKey?k=Hka_Mw1.Temp.sbAussen&k=Hka_Bd.ulArbeitThermHka&k=Hka_Bd.ulArbeitElektr&k=Hka_Bd.ulBetriebssekunden&k=Hka_Mw1.Temp.sbRuecklauf&k=Hka_Mw1.Temp.sbVorlauf&k=Wartung_Cache.fStehtAn&k=Hka_Mw1.Temp.sbFuehler1&k=Hka_Mw1.usDrehzahl&k=Hka_Mw1.Aktor.fUPKuehlung&k=Hka_Bd_Stat.uchSeriennummer&k=Hka_Bd_Stat.uchTeilenummer&k=Hka_Bd_Stat.ulInbetriebnahmedatum&k=Wartung_Cache.ulBetriebssekundenBei&k=Wartung_Cache.ulZeitstempel&k=Wartung_Cache.usIntervall&k=Hka_Mw1.ulMotorlaufsekunden&k=Hka_Mw1.Aktor.fStoerung&k=Hka_Mw1.Aktor.fWartung&k=Hka_Mw1.Aktor.fUPVordruck&k=Hka_Mw1.sWirkleistung&k=Hka_Mw1.Temp.sAbgasHKA&k=Hka_Mw1.Temp.sAbgasMotor&k=Hka_Mw1.Temp.sKapsel&k=Hka_Mw1.Temp.sbFreigabeModul&k=Hka_Mw1.Temp.sbGen&k=Hka_Mw1.Temp.sbMotor&k=Hka_Mw1.Temp.sbRegler&k=Hka_Mw1.Solltemp.sbRuecklauf&k=Hka_Mw1.Solltemp.sbVorlauf&k=Hka_Bd.ulAnzahlStarts&k=Hka_Bd.ulArbeitElektr&k=Hka_Bd.ulArbeitThermHka&k=Hka_Bd.ulArbeitThermKon&k=BD3112.Hka_Bd.ulBetriebssekunden&k=BD3112.Hka_Bd.ulAnzahlStarts&k=BD3112.Hka_Bd.ulArbeitElektr&k=BD3112.Hka_Bd.ulArbeitThermHka&k=BD3112.Hka_Bd.ulArbeitThermKon&k=Hka_Bd.bStoerung&k=Hka_Bd.bWarnung';
const idPath = '0_userdata.0.BHKW.';
const idRLT = idPath + 'RL-Temperatur';
const idBetrieb = idPath + 'Betriebsstunden';
const idAT = idPath + 'Aussen-Temperatur';
const idATh = idPath + 'Heizkreis-Energie';
const idAEl = idPath + 'Elektroenergie';
const idVLT = idPath + "VL-Temperatur";
const idTF1 = idPath + "Temperatur_Fuehler_1";
const idDZ = idPath + "Motordrehzahl";
const idWN = idPath + "Wartung-notwendig";
const idST = idPath + "Stoerung";
const idWR = idPath + "Wartungsrelais";
const idAKK = idPath + "Interne_Umwaelzpumpe";
const idSNR = idPath + "Seriennummer";
const idTNR = idPath + "Teilenummer";
const idINB = idPath + "Inbetriebnahmedatum";
const idWLZT = idPath + "Letzte_Wartung";
const idWAM = idPath + "LWartung_am";
const idWINT = idPath + "Wartungsinterval";
const idALZ = idPath + "Motorlaufzeit-Start";
const idUPV = idPath + "UP_Vordruck";
const idWLST = idPath + "A_Wirkleistung";
const idWAIN = idPath + "Wartung_in_h";
const idTDA = idPath + "Abgastemp_Dachs";
const idTMO = idPath + "Abgastemp_Motor";
const idTKA = idPath + "Kapseltemperatur";
const idTFR = idPath + "Freigabemodul";
const idTEIN = idPath + "Dachs-Eintrittstemperatur";
const idTKM = idPath + "Kuehlwasser-Motor";
const idTIR = idPath + "Interne_Reglertemperatur";
const idSOR = idPath + "Solltemperatur_Ruecklauf";
const idSOV = idPath + "Solltemperatur_Vorlauf";
const idSTAR = idPath + "Anzahl-Starts";
const idSEL = idPath + "Erzeugte_elektrische_Arbeit";
const idSWEN = idPath + "Erzeugte_thermische_Arbeit";
const idSWEK = idPath + "Erzeugte_thermische_Arbeit_Kondenser";
const idSEL31 = idPath + "Erzeugte_elektrische_Arbeit_31_12";
const idSWEN31 = idPath + "Erzeugte_thermische_Arbeit_31_12";
const idSWEK31 = idPath + "Erzeugte_thermische_Arbeit_Kondenser_31_12";
const idSTAR31 = idPath + "Anzahl-Starts_31_12";
const idBetrieb31 = idPath + 'Betriebsstunden_31_12';
const idSTNR = idPath + 'Aktuelle_Stoerung_Nr';
const idWARN = idPath + 'Aktueller_Warncode';
const altzeit = idPath + 'Betriebsstunden-alt'
function getBHKW() {
httpGet(url, { timeout: 2000, responseType: 'text' }, async (err, response) => {
if (err) {
console.error(err);
} else {
const arr = response.data.split('\n');;
for (let i = 0; i < arr.length; i++) {
let sensor = arr[i].split('=');
if (sensor[0].indexOf('Temp.sbRuecklauf') != -1) setState(idRLT, parseFloat(sensor[1]), true);
if (sensor[0].indexOf('ulBetriebssekunden') != -1) setState(altzeit,parseFloat(sensor[1]), true ); // Stunden mit 2 Nachkommastellen
if (getState(idBetrieb).val<getState(altzeit).val) setState(idBetrieb, getState(altzeit).val, true); //nur höhere Werte loggen
if (sensor[0].indexOf('sbAussen') != -1) setState(idAT, parseFloat(sensor[1]), true);
if (sensor[0].indexOf('ulArbeitThermHka') != -1) setState(idATh, parseFloat(sensor[1]), true);
if (sensor[0].indexOf('ulArbeitElektr') != -1) setState(idAEl, parseFloat(sensor[1]), true);
if (sensor[0].indexOf('Temp.sbVorlauf') != -1) setState(idVLT, parseFloat(sensor[1]), true);
if (sensor[0].indexOf('sbFuehler1') != -1) setState(idTF1, parseFloat(sensor[1]), true);
if (sensor[0].indexOf('usDrehzahl') != -1) setState(idDZ, parseFloat(sensor[1]), true);
if (sensor[0].indexOf('uchSeriennummer') != -1) setState(idSNR, parseFloat(sensor[1]), true);
if (sensor[0].indexOf('uchTeilenummer') != -1) setState(idTNR, parseFloat(sensor[1]), true);
if (sensor[0].indexOf('ulInbetriebnahmedatum') != -1) setState(idINB, parseFloat(sensor[1]), true);
if (sensor[0].indexOf('ulBetriebssekundenBei') != -1) setState(idWLZT, parseFloat(sensor[1]), true);
if (sensor[0].indexOf('ulAnzahlStarts') != -1) setState(idSTAR, parseFloat(sensor[1]), true);
if (sensor[0].indexOf('ulZeitstempel') != -1) setState(idWAM, Math.round(parseFloat(sensor[1])), true);
if (sensor[0].indexOf('usIntervall') != -1) setState(idWINT, parseFloat(sensor[1]), true);
if (sensor[0].indexOf('ulMotorlaufsekunden') != -1) setState(idALZ, parseFloat(sensor[1]), true);
if (sensor[0].indexOf('sWirkleistung') != -1) setState(idWLST, parseFloat(sensor[1]), true);
if (sensor[0].indexOf('sAbgasHKA') != -1) setState(idTDA, parseFloat(sensor[1]), true);
if (sensor[0].indexOf('sAbgasMotor') != -1) setState(idTMO, parseFloat(sensor[1]), true);
if (sensor[0].indexOf('sKapsel') != -1) setState(idTKA, parseFloat(sensor[1]), true);
if (sensor[0].indexOf('sbFreigabeModul') != -1) setState(idTFR, parseFloat(sensor[1]), true);
if (sensor[0].indexOf('sbGen') != -1) setState(idTEIN, parseFloat(sensor[1]), true);
if (sensor[0].indexOf('sbMotor') != -1) setState(idTKM, parseFloat(sensor[1]), true);
if (sensor[0].indexOf('sbRegler') != -1) setState(idTIR, parseFloat(sensor[1]), true);
if (sensor[0].indexOf('Solltemp.sbRuecklauf') != -1) setState(idSOR, parseFloat(sensor[1]), true);
if (sensor[0].indexOf('Solltemp.sbVorlauf') != -1) setState(idSOV, parseFloat(sensor[1]), true);
if (sensor[0].indexOf('Hka_Bd.ulArbeitElektr') != -1) setState(idSEL, parseFloat(sensor[1]), true);
if (sensor[0].indexOf('Hka_Bd.ulArbeitThermHka') != -1) setState(idSWEN, parseFloat(sensor[1]), true);
if (sensor[0].indexOf('Hka_Bd.ulArbeitThermKon') != -1) setState(idSWEK, parseFloat(sensor[1]), true);
if (sensor[0].indexOf('BD3112.Hka_Bd.ulArbeitElektr') != -1) setState(idSEL31, parseFloat(sensor[1]), true);
if (sensor[0].indexOf('BD3112.Hka_Bd.ulArbeitThermHka') != -1) setState(idSWEN31, parseFloat(sensor[1]), true);
if (sensor[0].indexOf('BD3112.Hka_Bd.ulArbeitThermKon') != -1) setState(idSWEK31, parseFloat(sensor[1]), true);
if (sensor[0].indexOf('BD3112.Hka_Bd.ulAnzahlStarts') != -1) setState(idSTAR31, parseFloat(sensor[1]), true);
if (sensor[0].indexOf('BD3112.Hka_Bd.ulBetriebssekunden') != -1) setState(idBetrieb31, parseFloat(sensor[1]), true);
if (sensor[0].indexOf('Hka_Bd.bStoerung') != -1) setState(idSTNR, parseFloat(sensor[1])+100, true);
if (sensor[0].indexOf('Hka_Bd.bWarnung') != -1) setState(idWARN, parseFloat(sensor[1])+600, true);
if (sensor[0].indexOf('fStehtAn') != -1) setState(idWN, toBoolean(sensor[1]), true);
if (sensor[0].indexOf('fUPKuehlung') != -1) setState(idAKK, toBoolean(sensor[1]), true);
if (sensor[0].indexOf('fStoerung') != -1) setState(idST, toBoolean(sensor[1]), true);
if (sensor[0].indexOf('fWartung') != -1) setState(idWR, toBoolean(sensor[1]), true);
if (sensor[0].indexOf('fUPVordruck') != -1) setState(idUPV, toBoolean(sensor[1]), true);
}
}
});
}
getBHKW(); // Script start
schedule('* * * * *', getBHKW); // jede Minute
Danke an alle!