Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fehler Meldung im LOG #4

Open
zonfacter opened this issue Oct 31, 2020 · 4 comments
Open

Fehler Meldung im LOG #4

zonfacter opened this issue Oct 31, 2020 · 4 comments

Comments

@zonfacter
Copy link

Hallo,
Mir sind folgende Fehlermeldung im LOG aufgefallen.
Kann die Warnung mit deinem Script zu tun haben ?

P.s: Frau ist happy :-D

javascript.0 2020-10-31 17:03:02.023 warn (26789) at processTimers (internal/timers.js:475:7)
javascript.0 2020-10-31 17:03:02.023 warn (26789) at listOnTimeout (internal/timers.js:533:17)
javascript.0 2020-10-31 17:03:02.023 warn (26789) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1403:29)
javascript.0 2020-10-31 17:03:02.022 warn (26789) at Object.setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1345:20)
javascript.0 2020-10-31 17:03:02.022 warn (26789) State "false" not found
javascript.0 2020-10-31 17:03:01.560 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: in Betrieb? Name: Trockner Ergebnis ENDE: 1047 Wert ENDE: 10 gestartet: true Arraylength: 4 Zaehler Arr Ende: 60
javascript.0 2020-10-31 17:03:01.560 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: Ergebnis ENDETrockner: 1047 Watt
javascript.0 2020-10-31 17:03:01.560 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: Array Ende 1039,1057,1042,1048
javascript.0 2020-10-31 17:03:01.560 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: Array Ende Laenge: 4, endCounter: 60
javascript.0 2020-10-31 17:03:01.560 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: Endwertberechnung wird fuer Trockner ausgefuehrt
javascript.0 2020-10-31 17:03:01.559 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: Wert Verbrauch START: 1038
javascript.0 2020-10-31 17:02:52.107 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: in Betrieb? Name: Waschmaschine Ergebnis ENDE: null Wert ENDE: 5 gestartet: false Arraylength: 0 Zaehler Arr Ende: 65
javascript.0 2020-10-31 17:02:52.107 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: Wert Verbrauch START: null
javascript.0 2020-10-31 17:02:49.541 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: in Betrieb? Name: Trockner Ergebnis ENDE: 1046 Wert ENDE: 10 gestartet: true Arraylength: 3 Zaehler Arr Ende: 60
javascript.0 2020-10-31 17:02:49.541 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: Ergebnis ENDETrockner: 1046 Watt
javascript.0 2020-10-31 17:02:49.540 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: Array Ende 1039,1057,1042
javascript.0 2020-10-31 17:02:49.540 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: Array Ende Laenge: 3, endCounter: 60
javascript.0 2020-10-31 17:02:49.540 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: Endwertberechnung wird fuer Trockner ausgefuehrt
javascript.0 2020-10-31 17:02:49.539 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: Wert Verbrauch START: 1038
javascript.0 2020-10-31 17:02:43.073 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: in Betrieb? Name: Waschmaschine Ergebnis ENDE: null Wert ENDE: 5 gestartet: false Arraylength: 0 Zaehler Arr Ende: 65
javascript.0 2020-10-31 17:02:43.073 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: Wert Verbrauch START: null
javascript.0 2020-10-31 17:02:37.345 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: in Betrieb? Name: Trockner Ergebnis ENDE: 1048 Wert ENDE: 10 gestartet: true Arraylength: 2 Zaehler Arr Ende: 60
javascript.0 2020-10-31 17:02:37.345 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: Ergebnis ENDETrockner: 1048 Watt
javascript.0 2020-10-31 17:02:37.345 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: Array Ende 1039,1057
javascript.0 2020-10-31 17:02:37.344 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: Array Ende Laenge: 2, endCounter: 60
javascript.0 2020-10-31 17:02:37.344 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: Endwertberechnung wird fuer Trockner ausgefuehrt
javascript.0 2020-10-31 17:02:37.343 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: Wert Verbrauch START: 1038
javascript.0 2020-10-31 17:02:30.081 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: in Betrieb? Name: Waschmaschine Ergebnis ENDE: null Wert ENDE: 5 gestartet: false Arraylength: 0 Zaehler Arr Ende: 65
javascript.0 2020-10-31 17:02:30.080 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: Wert Verbrauch START: null
telegram.0 2020-10-31 17:02:27.463 warn (22368) 1 of 2 recipients are unknown!
javascript.0 2020-10-31 17:02:27.417 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: in Betrieb? Name: Trockner Ergebnis ENDE: 1039 Wert ENDE: 10 gestartet: true Arraylength: 1 Zaehler Arr Ende: 60
javascript.0 2020-10-31 17:02:27.416 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: Ergebnis ENDETrockner: 1039 Watt
javascript.0 2020-10-31 17:02:27.416 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: Array Ende 1039
javascript.0 2020-10-31 17:02:27.415 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: Array Ende Laenge: 1, endCounter: 60
javascript.0 2020-10-31 17:02:27.415 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: Endwertberechnung wird fuer Trockner ausgefuehrt
javascript.0 2020-10-31 17:02:27.414 debug (26789) sendTo "send" to system.adapter.telegram from system.adapter.javascript.0
javascript.0 2020-10-31 17:02:27.413 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: Ergebnis STARTTrockner: 1038 Watt
javascript.0 2020-10-31 17:02:27.413 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: Array Start: 1039,1042,1036,1036,1039
javascript.0 2020-10-31 17:02:27.412 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: Startwertberechnung wird fuer Trockner ausgefuehrt
javascript.0 2020-10-31 17:02:27.412 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: Wert Verbrauch START: 1038
javascript.0 2020-10-31 17:02:18.500 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: in Betrieb? Name: Waschmaschine Ergebnis ENDE: null Wert ENDE: 5 gestartet: false Arraylength: 0 Zaehler Arr Ende: 65
javascript.0 2020-10-31 17:02:18.499 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: Wert Verbrauch START: null
javascript.0 2020-10-31 17:02:15.706 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: in Betrieb? Name: Trockner Ergebnis ENDE: null Wert ENDE: 10 gestartet: false Arraylength: 0 Zaehler Arr Ende: 60
javascript.0 2020-10-31 17:02:15.706 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: Ergebnis STARTTrockner: 1038 Watt
javascript.0 2020-10-31 17:02:15.705 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: Array Start: 1039,1042,1036,1036
javascript.0 2020-10-31 17:02:15.705 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: Startwertberechnung wird fuer Trockner ausgefuehrt
javascript.0 2020-10-31 17:02:15.705 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: Wert Verbrauch START: 1039
javascript.0 2020-10-31 17:02:09.202 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: in Betrieb? Name: Waschmaschine Ergebnis ENDE: null Wert ENDE: 5 gestartet: false Arraylength: 0 Zaehler Arr Ende: 65
javascript.0 2020-10-31 17:02:09.201 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: Wert Verbrauch START: null
javascript.0 2020-10-31 17:02:03.288 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: in Betrieb? Name: Trockner Ergebnis ENDE: null Wert ENDE: 10 gestartet: false Arraylength: 0 Zaehler Arr Ende: 60
javascript.0 2020-10-31 17:02:03.288 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: Ergebnis STARTTrockner: 1039 Watt
javascript.0 2020-10-31 17:02:03.288 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: Array Start: 1039,1042,1036
javascript.0 2020-10-31 17:02:03.288 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: Startwertberechnung wird fuer Trockner ausgefuehrt
javascript.0 2020-10-31 17:02:03.287 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: Wert Verbrauch START: 1041
javascript.0 2020-10-31 17:02:02.040 warn (26789) at processTimers (internal/timers.js:475:7)
javascript.0 2020-10-31 17:02:02.040 warn (26789) at listOnTimeout (internal/timers.js:533:17)
javascript.0 2020-10-31 17:02:02.040 warn (26789) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1403:29)
javascript.0 2020-10-31 17:02:02.039 warn (26789) at Object.setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1345:20)
javascript.0 2020-10-31 17:02:02.038 warn (26789) State "false" not found
javascript.0 2020-10-31 17:01:57.317 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: in Betrieb? Name: Waschmaschine Ergebnis ENDE: null Wert ENDE: 5 gestartet: false Arraylength: 0 Zaehler Arr Ende: 65
javascript.0 2020-10-31 17:01:57.315 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: Wert Verbrauch START: null
javascript.0 2020-10-31 17:01:53.181 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: in Betrieb? Name: Trockner Ergebnis ENDE: null Wert ENDE: 10 gestartet: false Arraylength: 0 Zaehler Arr Ende: 60
javascript.0 2020-10-31 17:01:53.181 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: Ergebnis STARTTrockner: 1041 Watt
javascript.0 2020-10-31 17:01:53.181 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: Array Start: 1039,1042
javascript.0 2020-10-31 17:01:53.180 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: Startwertberechnung wird fuer Trockner ausgefuehrt
javascript.0 2020-10-31 17:01:53.179 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: Wert Verbrauch START: 1039
javascript.0 2020-10-31 17:01:44.990 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: in Betrieb? Name: Waschmaschine Ergebnis ENDE: null Wert ENDE: 5 gestartet: false Arraylength: 0 Zaehler Arr Ende: 65
javascript.0 2020-10-31 17:01:44.989 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: Wert Verbrauch START: null
javascript.0 2020-10-31 17:01:42.417 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: in Betrieb? Name: Trockner Ergebnis ENDE: null Wert ENDE: 10 gestartet: false Arraylength: 0 Zaehler Arr Ende: 60
javascript.0 2020-10-31 17:01:42.417 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: Ergebnis STARTTrockner: 1039 Watt
javascript.0 2020-10-31 17:01:42.416 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: Array Start: 1039
javascript.0 2020-10-31 17:01:42.416 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: Startwertberechnung wird fuer Trockner ausgefuehrt
javascript.0 2020-10-31 17:01:42.415 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: Wert Verbrauch START: null
javascript.0 2020-10-31 17:01:36.088 warn (26789) at processTimers (internal/timers.js:475:7)
javascript.0 2020-10-31 17:01:36.088 warn (26789) at listOnTimeout (internal/timers.js:533:17)
javascript.0 2020-10-31 17:01:36.088 warn (26789) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1403:29)
javascript.0 2020-10-31 17:01:36.088 warn (26789) at Object.setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1345:20)
javascript.0 2020-10-31 17:01:36.087 warn (26789) State "false" not found
javascript.0 2020-10-31 17:01:35.654 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: in Betrieb? Name: Waschmaschine Ergebnis ENDE: null Wert ENDE: 5 gestartet: false Arraylength: 0 Zaehler Arr Ende: 65
javascript.0 2020-10-31 17:01:35.654 debug (26789) script.js.common.Lights_and_Socket.Waschmaschine_ueberwachung: Wert Verbrauch START: null
javascript.0 2020-10-31 17:01:34.242 debug (26789) system.adapter.javascript.0: logging true
@zonfacter
Copy link
Author

Anbei der verwendete Code

`// Script zur Verbrauchsueberwachung von elektrischen Geraeten ueber ioBroker
// https://github.com/Xenon-s/js.device-reminder
const version = "version 1.2.1, letztes update 12.09.2020, 15:30 Uhr, S Feldkamp auf Stand 1.2.1";
const erstellt = "s. feldkamp"

/****************************************************
**************** Benutzereingaben ******************
****************************************************/

/* Bitte unbedingt die readme lesen!! */

const standardPfad = "0_userdata.0.Verbrauch."; // kann angepasst werden, standardPfad ist 0_userdata.0.VerbrauchV2.

const arrGeraeteInput = [
/Gerätebezeichnung und Typ/
/* von hier*/
{
geraeteName: "Waschmaschine", // Gerätename
geraeteTyp: "wama", // Gerätetyp - dryer, wama, wama, computer, wako, test
/Datenpunkte/
currentConsumption: 'sonoff.0.#########geschwärzt#############.ENERGY_Power', // DP aktueller Verbrauch
switchPower: 'sonoff.0.#########geschwärzt#############.POWER', // DP switch on/off
/Benutzervorgaben/
autoOff: false, // abschalten, nach Ende?
startActive: true, // Startnachricht senden?
startMessage: 'Waschmaschine ist gestartet', // startnachricht
endActive: true, // Endnachricht senden?
endMessage: 'Waschmaschine ist fertig', // endnachricht
telegram: true, // telegram aktivieren ?
telegramUser: ["#########geschwärzt#############"], // telegram User (Wichtig: Nur tatsächlich existierende Namen eintragen, keine Leerfelder)
alexa: true, // alexa aktiv?
alexaID: ["#########geschwärzt#############"], // alexa IDs (Wichtig: Nur tatsächlich existierende IDs eintragen, keine Leerfelder)
whatsapp: false, // whatsapp aktivieren?
whatsappID: ["+4901234567890"] // whatsapp IDs (Wichtig: Nur tatsächlich existierende Nummern eintragen, keine Leerfelder)
},
/bis hier kopieren/
/* von hier*/
{
geraeteName: "Trockner", // Gerätename
geraeteTyp: "dryer", // Gerätetyp - dryer, wama, wama, computer, wako, test
/Datenpunkte/
currentConsumption: 'sonoff.0.#########geschwärzt#############.ENERGY_Power', // DP aktueller Verbrauch
switchPower: 'sonoff.0.#########geschwärzt#############.POWER', // DP switch on/off
/Benutzervorgaben/
autoOff: false, // abschalten, nach Ende?
startActive: true, // Startnachricht senden?
startMessage: 'Trockner ist gestartet', // startnachricht
endActive: true, // Endnachricht senden?
endMessage: 'Trockner ist fertig', // endnachricht
telegram: true, // telegram aktivieren ?
telegramUser: ["#########geschwärzt#############"], // telegram User (Wichtig: Nur tatsächlich existierende Namen eintragen, keine Leerfelder)
alexa: true, // alexa aktiv?
alexaID: ["#########geschwärzt#############"], // alexa IDs (Wichtig: Nur tatsächlich existierende IDs eintragen, keine Leerfelder)
whatsapp: false, // whatsapp aktivieren?
whatsappID: ["+#########geschwärzt#############"] // whatsapp IDs (Wichtig: Nur tatsächlich existierende Nummern eintragen, keine Leerfelder)
},
/bis hier kopieren/
];

/* Bei updates muss erst ab hier kopiert und eingefügt werden, somit braucht man seine Geräteliste nicht jedes mal neu erstellen*/

// array erzeugen
const arrGeraete = [];

//Klasse erstellen
class Geraet {
constructor(obj, zustand, verbrauchAktuell, laufzeit, zustandSchalter, startValue, endValue, startCount, endCount) {
// Attribute
// Vorgaben
// DPs
this.currentConsumption = obj.currentConsumption;
this.switchPower = obj.switchPower;
// script intern
this.pfadZustand = zustand;
this.pfadVerbrauchLive = verbrauchAktuell;
this.pfadZustandSchalter = zustandSchalter;
// Strings
this.geraeteName = obj.geraeteName;
this.geraeteTyp = obj.geraeteTyp;
this.startnachrichtText = obj.startMessage;
this.endenachrichtText = obj.endMessage;
this.einheit = "Watt";
// boolean
this.startnachrichtVersendet = false;
this.endenachrichtVersendet = false;
this.gestartet = false;
// boolean Benutzervorgaben
this.startnachricht = obj.startActive;
this.endenachricht = obj.endActive;
this.telegram = obj.telegram;
this.whatsapp = obj.whatsapp;
this.alexa = obj.alexa;
this.autoOff = obj.autoOff;
// number
this.verbrauch = null;
this.resultStart = null;
this.resultEnd = null;
// Verbrauchswerte
this.startValue = startValue;
this.endValue = endValue;
// Zaehler Abbruchbedingungen
this.startCount = startCount;
this.endCount = endCount;
// timeout
this.timeout = null;
this.startZeit = 0;
this.endZeit = 0;
this.gesamtZeit = laufzeit;
// array
this.arrStart = [];
this.arrAbbruch = [];

    // Methoden
    if (obj.telegram) {
        console.debug("telegram true");
        this.telegramUser = userTelegramIni(obj);
    };

    if (obj.alexa) {
        console.debug("alexa true");
        this.alexaID = idAlexa(obj);
    };

    if (obj.whatsapp) {
        console.debug("whatsapp true");
        this.whatsappID = idWhatsapp(obj);
    };

};

};

// Objekte erstellen
arrGeraeteInput.forEach(function (obj) { // array mit objekten aus class erstellen
//DPs erstellen
let zustand = (standardPfad + obj.geraeteName + ".Zustand");
let verbrauchAktuell = (standardPfad + obj.geraeteName + ".Verbrauch aktuell");
let laufzeit = (standardPfad + obj.geraeteName + ".Laufzeit");
let zustandSchalter = (standardPfad + obj.geraeteName + ".Zustand Schalter");
if (!getObject(zustand)) {
createState(zustand, "initialisiere Zustand", JSON.parse('{"type":"string"}'), function () {
});
console.debug(zustand + " wurde angelegt");
};
if (!getObject(verbrauchAktuell)) {
createState(verbrauchAktuell, 0.0, JSON.parse('{"type":"string"}'), function () {
});
console.debug(verbrauchAktuell + " wurde angelegt");
};
if (!getObject(laufzeit)) {
createState(laufzeit, "00:00:00", JSON.parse('{"type":"string"}'), function () {
});
console.debug(laufzeit + " wurde angelegt");
};
if (!getObject(zustandSchalter)) {
createState(zustandSchalter, JSON.parse('{"type":"boolean"}'), function () {
});
console.debug(zustandSchalter + " wurde angelegt");
};
//falls vorhanden, aber Prg neu gestartet wird
setState(zustandSchalter, getState(obj.switchPower).val, true);
if (!getState(obj.switchPower).val) {
setState(zustand, "ausgeschaltet", true);
} else {
setState(zustand, "standby", true);
};

// Objekt bauen (obj, ... , startVal, endVal, startCount, endCount)
console.debug(obj)
switch (obj.geraeteTyp) {
    case 'wama':
        const WaMa = new Geraet(obj, zustand, verbrauchAktuell, laufzeit, zustandSchalter, 15, 5, 3, 65);
        arrGeraete.push(WaMa);
        break;
    case 'dryer':
        const Trockner = new Geraet(obj, zustand, verbrauchAktuell, laufzeit, zustandSchalter, 120, 10, 5, 60);
        arrGeraete.push(Trockner);
        break;
    case 'diwa':
        const GS = new Geraet(obj, zustand, verbrauchAktuell, laufzeit, zustandSchalter, 15, 4, 2, 120);
        arrGeraete.push(GS);
        break;
    case 'computer':
        const Computer = new Geraet(obj, zustand, verbrauchAktuell, laufzeit, zustandSchalter, 15, 5, 3, 10);
        arrGeraete.push(Computer);
        break;
    case 'wako':
        const WaKo = new Geraet(obj, zustand, verbrauchAktuell, laufzeit, zustandSchalter, 15, 5, 2, 2);
        arrGeraete.push(WaKo);
        break;
    case 'test':
        const Test = new Geraet(obj, zustand, verbrauchAktuell, laufzeit, zustandSchalter, 50, 10, 3, 3);
        arrGeraete.push(Test);
        break;
    default:
        console.warn("Geraetename wurde nicht erkannt, bitte die Schreibweise ueberpruefen oder Geraet ist unbekannt")
        break;
};

});

console.debug(arrGeraete);

// Auswertung
arrGeraete.forEach(function (obj, index, arr) {
let i = obj;
let name = obj.geraeteName
on({ id: obj.currentConsumption, change: "any" }, function (obj, index, arr) { //trigger auf obj.currentConsumption
let wertNeu = obj.state.val;
let wertAlt = obj.oldState.val;
i.verbrauch = wertNeu;
console.debug("Wert Verbrauch START: " + i.resultStart);
//setState(i.switchPower, false);
setState(i.pfadZustandSchalter, getState(i.switchPower), true);
if (wertNeu > i.startValue && i.gestartet == false) {
i.startZeit = Date.now(); // Startzeit loggen
calcStart(i, wertNeu); //Startwert berechnen und ueberpruefen
if (i.resultStart > i.startValue && i.resultStart != null && i.arrStart.length >= i.startCount && i.gestartet == false) {
i.gestartet = true; // Vorgang gestartet
setState(i.pfadZustand, "gestartet", true); // Status in DP schreiben
if (i.startnachricht && !i.startnachrichtVersendet) { // Start Benachrichtigung aktiv?
i.message = i.startnachrichtText; // Start Benachrichtigung aktiv
message(i);
};
i.startnachrichtVersendet = true; // Startnachricht wurde versendet
i.endenachrichtVersendet = false; // Ende Benachrichtigung freigeben
} else if (i.resultStart < i.startValue && i.resultStart != null && i.arrStart.length >= i.startCount && i.gestartet == false) {
i.gestartet = false; // Vorgang gestartet
setState(i.pfadZustand, "Standby", true); // Status in DP schreiben
};
} else if (wertNeu < (i.startCount / 2) && i.arrStart.length != 0 && i.gestartet == false) { // Wert mind > i.startCount/2 & arrStart nicht leer und nicht gestartet, sonst "Abbruch"
i.arrStart = []; // array wieder leeren
console.debug("Startphase abgebrochen, array Start wieder geloescht");
setState(i.pfadZustand, "ausgeschaltet", true); // Status in DP schreiben
};
if (i.gestartet) { // wurde geraet gestartet?
calcEnd(i, wertNeu); // endeberechnung durchfuehren
};
console.debug("in Betrieb? Name: " + i.geraeteName + " Ergebnis ENDE: " + i.resultEnd + " Wert ENDE: " + i.endValue + " gestartet: " + i.gestartet + " Arraylength: " + i.arrAbbruch.length + " Zaehler Arr Ende: " + i.endCount)
if (i.resultEnd > i.endValue && i.resultEnd != null && i.gestartet) { // Wert > endValue und Verbrauch lag 1x ueber startValue
setState(i.pfadZustand, "in Betrieb", true); // Status in DP schreiben
time(i);
} else if (i.resultEnd < i.endValue && i.resultEnd != null && i.gestartet && i.arrAbbruch.length >= (i.endCount / 2)) { // geraet muss mind. 1x ueber startValue gewesen sein, arrAbbruch muss voll sein und ergebis aus arrAbbruch unter endValue
i.gestartet = false; // vorgang beendet
if (i.autoOff && i.switchPower) {
setState(i.switchPower, false); // Geraet ausschalten, falls angewaehlt
setState(i.pfadZustand, "ausgeschaltet", true); // Status in DP schreiben
setState(i.pfadZustandSchalter, getState(i.switchPower), true);
} else {
setState(i.pfadZustand, "Standby", true); // Status in DP schreiben
};
i.endZeit = Date.now(); // ende Zeit loggen
i.arrStart = []; // array wieder leeren
i.arrAbbruch = []; // array wieder leeren
if (i.endenachricht && !i.endenachrichtVersendet && i.startnachrichtVersendet) { // Ende Benachrichtigung aktiv?
i.message = i.endenachrichtText; // Ende Benachrichtigung aktiv
message(i);
};
i.endenachrichtVersendet = true;
i.startnachrichtVersendet = false;
};
setState(i.pfadVerbrauchLive, wertNeu + " " + i.einheit, true);
});
});

/****************************************************
************ functions and calculations ************
****************************************************/

function calcStart(i, wertNeu) { // Calculate values ​​for operation "START"
console.debug("Startwertberechnung wird fuer " + i.geraeteName + " ausgefuehrt")
let zahl;
let ergebnisTemp = 0;
let debug = "";
i.arrStart.push(wertNeu);
// Berechnung durchfuehren
for (let counter = 0; counter < i.arrStart.length; counter++) {
zahl = parseFloat(i.arrStart[counter]);
ergebnisTemp = ergebnisTemp + zahl;
};
// Ergebnis an obj uebergeben
i.resultStart = Math.round((ergebnisTemp / parseFloat(i.arrStart.length) * 10) / 10);
debug = i.resultStart;
console.debug("Array Start: " + i.arrStart)
console.debug("Ergebnis START" + i.geraeteName + ": " + i.resultStart + " " + i.einheit)
};

function calcEnd(i, wertNeu) { // Calculate values ​​for operation "END"
console.debug("Endwertberechnung wird fuer " + i.geraeteName + " ausgefuehrt")
let zahl;
let ergebnisTemp = 0;
let debug = "";
i.arrAbbruch.push(wertNeu); //neuen Wert ins array schreiben
// Berechnung durchfuehren
for (let counter = 0; counter < i.arrAbbruch.length; counter++) {
zahl = parseFloat(i.arrAbbruch[counter]);
ergebnisTemp = ergebnisTemp + zahl;
};
// Ergebnis an obj uebergeben
i.resultEnd = Math.round((ergebnisTemp / parseFloat(i.arrAbbruch.length) * 10) / 10);
debug = i.resultEnd;
console.debug("Array Ende Laenge: " + i.arrAbbruch.length + ", endCounter: " + i.endCount)
console.debug("Array Ende " + i.arrAbbruch)
console.debug("Ergebnis ENDE" + i.geraeteName + ": " + i.resultEnd + " " + i.einheit)
if (i.arrAbbruch.length > i.endCount) {
i.arrAbbruch.shift();
};
};

function time(i) {
//Laufzeit berechnen
let diff;
let time = "00:00:00";
let vergleichsZeit = Date.now();
let startZeit = i.startZeit;
diff = (vergleichsZeit - startZeit);
time = formatDate(Math.round(diff), "hh:mm:ss");
setState(i.gesamtZeit, time, true); // Status in DP schreiben
};

/****************************************************
*********** functions messenger services ***********
****************************************************/

function userTelegramIni(obj) { // "telegram IDs selektieren
const arrTemp = [];
let stringTemp;
if (obj.telegram) {
for (let counter = 0; counter < obj.telegramUser.length; counter++) {
if (obj.telegramUser[counter] !== "" && obj.telegramUser[counter] !== null) {
arrTemp.push(obj.telegramUser[counter]);
};
};
stringTemp = arrTemp.join(',');
return stringTemp;
} else {
return stringTemp;
};
};

function idAlexa(obj) { // alexa IDs selektieren
const arrTemp = [];
let stringTemp = "";
if (obj.alexa) {
for (let counter = 0; counter < obj.alexaID.length; counter++) {
if (obj.alexaID[counter] !== "" && obj.alexaID[counter] !== null) {
stringTemp = "alexa2.0.Echo-Devices." + obj.alexaID[counter] + ".Commands.speak";
arrTemp.push(stringTemp);
};
};
return arrTemp;
} else {
return arrTemp;
};
};

function idWhatsapp(obj) { // whatsapp IDs selektieren
const arrTemp = [];
let stringTemp;
if (obj.whatsapp) {
for (let counter = 0; counter < obj.whatsappID.length; counter++) {
if (obj.whatsappID[counter] !== "" && obj.whatsappID[counter] !== null) {
arrTemp.push(obj.whatsappID[counter]);
};
};
stringTemp = arrTemp.join(',');
return stringTemp;
} else {
return stringTemp;
};
};

function message(i) { // telegram nachricht versenden
if (i.telegram) {
sendTo("telegram", "send", {
text: i.message,
user: i.telegramUser
});
};
if (i.whatsapp) { // WhatsApp nachricht versenden
sendTo("whatsapp-cmb", "send", {
text: i.message,
phone: i.whatsappID
});
};
if (i.alexa) { // alexa quatschen lassen
for (let counter = 0; counter < i.alexaID.length; counter++) {
setState(i.alexaID[counter], i.message);
};
};
};
`

@Xenon-s
Copy link
Owner

Xenon-s commented Nov 1, 2020

die debug einträge definitiv, aber die kommen weil du die instanz auf debug stehen hast.

telegram.0 2020-10-31 17:02:27.463 warn (22368) 1 of 2 recipients are unknown!

Hier findet er einen Namen nicht

javascript.0 2020-10-31 17:03:02.022 warn (26789) State "false" not found

Sicher das du den Datenpunkt richtig ausgewählt hast bei "switchPower"?

Es gibt übrigens mittlerweile einen Adapter dazu von mir device-reminder. Ist aber noch ne beta

@zonfacter
Copy link
Author

Debug war bewusst eingeschalten.

Sicher das du den Datenpunkt richtig ausgewählt hast bei "switchPower"?
Ja, die Punkte sind korrekt. Aber ich nutze diese Funktion nicht.

Somit sollte es eigentlich doch ignoriert werden.

/Benutzervorgaben/
autoOff: false, // abschalten, nach Ende?

@Xenon-s
Copy link
Owner

Xenon-s commented Nov 4, 2020

Nein, du musst in dem Script den Pfad angeben. Im Adapter aktuell auch noch, bin aber an einem Update dran

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants