NEWS
[gelöst] Farbwechsel bei verschiedenen Verbräuchen
-
Probier mal so:
! ````
// Im Keller nach der Waschmaschine und dem Trockner sehen
//
// Status der Waschmaschine und des Trockners führen
// Stati: 0 = aus/Standby, 1 = Maschine aus/fertig / 2 = Maschine läuft
//
// Angepasst für 2 Waschmaschinen
// Leistungsgrenzen im Konfig
! // Erstellen der Datenpunkte
createState("javascript.0.Keller.Waschmaschine1.State", 0, {"type": "number", "role": "state"});
createState("javascript.0.Keller.Waschmaschine1.Farbe", "white", {type: "string"});
createState("javascript.0.Keller.Waschmaschine1.OptinSayit", false, { name: 'Optin Waschmaschine 1 Sayit',
desc: 'Soll der Waschmaschinenstatus 1 gesprochen werden??', type: 'boolean', role: "state.enabled" });
! createState("javascript.0.Keller.Waschmaschine2.State", 0, {"type": "number", "role": "state"});
createState("javascript.0.Keller.Waschmaschine3.Farbe", "white", {type: "string"});
createState("javascript.0.Keller.Waschmaschine4.OptinSayit", false, { name: 'Optin Waschmaschine 2 Sayit',
desc: 'Soll der Waschmaschinenstatus 2 gesprochen werden??', type: 'boolean', role: "state.enabled" });
! createState("javascript.0.Keller.Trockner.State", 0, {"type": "number", "role": "state"});
createState("javascript.0.Keller.Trockner.Farbe", "white", {type: "string"});
createState("javascript.0.Keller.Trockner.OptinSayit", false, { name: 'Optin Trockner Sayit',
desc: 'Soll der Trocknerstatus gesprochen werden??', type: 'boolean', role: "state.enabled" });
! var WattWaschmaschine1 = "hm-rpc.0.XYZ7654321.2.POWER"/Waschmaschine Energy.POWER/;
var StateWaschmaschine1 = "javascript.0.Keller.Waschmaschine1.State";
var FarbeWaschmaschine1 = "javascript.0.Keller.Waschmaschine1.Farbe";
var OptinSayitW1 = "javascript.0.Keller.Waschmaschine1.OptinSayit";
! var WattWaschmaschine2 = "hm-rpc.0.XYZ7654321.2.POWER"/Waschmaschine Energy.POWER/;
var StateWaschmaschine2 = "javascript.0.Keller.Waschmaschine2.State";
var FarbeWaschmaschine2 = "javascript.0.Keller.Waschmaschine2.Farbe";
var OptinSayitW2 = "javascript.0.Keller.Waschmaschine2.OptinSayit";
! var WattTrockner = "hm-rpc.0.XYZ1234567.2.POWER"/Trockner Energy.POWER/;
var StateTrockner = "javascript.0.Keller.Trockner.State";
var FarbeTrockner = "javascript.0.Keller.Trockner.Farbe";
var OptinSayitT = "javascript.0.Keller.Trockner.OptinSayit";
! var SayitID = "sayit.1.tts.text";
var Pon = 200;
var Poff = 2;
var Pstby = 4;
! subscribe ({id: WattWaschmaschine1, change: "ne"}, checkState);
subscribe ({id: WattWaschmaschine2, change: "ne"}, checkState);
subscribe ({id: WattTrockner, change: "ne"}, checkState);
! function checkState() { // Abfrage ob Waschmaschine oder Tumbler laufen
// Waschmaschine 1
var StatusWaschmaschine1 = getState(StateWaschmaschine1).val;
var LeistungWaschmaschine1 = getState(WattWaschmaschine1).val;
if (StatusWaschmaschine1 < 2) { // Status Maschine aus
if (LeistungWaschmaschine1 > Pon) {
setState(StateWaschmaschine1, 2, true);
setState(FarbeWaschmaschine1, "red", true);
log('Script Keller-Geräte; Status: Waschmaschine 1 läuft. (' + LeistungWaschmaschine1 + "W)", "info");
} else if (LeistungWaschmaschine1 < Pstby) {
if (LeistungWaschmaschine1 < Poff) {
setState(StateWaschmaschine1, 0, true);
setState(FarbeWaschmaschine1, "blue", true);
log("Script Keller-Geräte; Status: Waschmaschine 1 ist ausgeschaltet. (" + LeistungWaschmaschine1 + "W)", "info");
} else {
setState(StateWaschmaschine1, 1, true);
setState(FarbeWaschmaschine1, "green", true);
log("Script Keller-Geräte; Status: Waschmaschine 1 ist im Standby. (" + LeistungWaschmaschine1 + "W)", "info");
}
}
} else if (StatusWaschmaschine1 === 2 || StatusWaschmaschine1 === null) {
if (LeistungWaschmaschine1 < Pstby) {
setState(StateWaschmaschine1, 1, true);
setState(FarbeWaschmaschine1, "green", true);
if (getState(OptinSayitW1).val) {
setState(SayitID, "Die Waschmaschine Eins ist fertig.");
}
log("Script Keller-Geräte; Status: Waschmaschine 1 ist fertig. (" + LeistungWaschmaschine1 + "W)", "info");
}
}
! // Waschmaschine 2
var StatusWaschmaschine2 = getState(StateWaschmaschine2).val;
var LeistungWaschmaschine2 = getState(WattWaschmaschine2).val;
if (StatusWaschmaschine2 < 2) { // Status Maschine aus
if (LeistungWaschmaschine2 > Pon) {
setState(StateWaschmaschine2, 2, true);
setState(FarbeWaschmaschine2, "red", true);
log('Script Keller-Geräte; Status: Waschmaschine 2 läuft. (' + LeistungWaschmaschine2 + "W)", "info");
} else if (LeistungWaschmaschine2 < Pstby) {
if (LeistungWaschmaschine2 < Poff) {
setState(StateWaschmaschine2, 0, true);
setState(FarbeWaschmaschine2, "blue", true);
log("Script Keller-Geräte; Status: Waschmaschine 2 ist ausgeschaltet. (" + LeistungWaschmaschine2 + "W)", "info");
} else {
setState(StateWaschmaschine2, 1, true);
setState(FarbeWaschmaschine2, "green", true);
log("Script Keller-Geräte; Status: Waschmaschine 2 ist im Standby. (" + LeistungWaschmaschine2 + "W)", "info");
}
}
} else if (StatusWaschmaschine2 === 2 || StatusWaschmaschine2 === null) {
if (LeistungWaschmaschine2 < Pstby) {
setState(StateWaschmaschine2, 1, true);
setState(FarbeWaschmaschine2, "green", true);
if (getState(OptinSayitW2).val) {
setState(SayitID, "Die Waschmaschine Zwei ist fertig.");
}
log("Script Keller-Geräte; Status: Waschmaschine 2 ist fertig. (" + LeistungWaschmaschine2 + "W)", "info");
}
}
! // Trockner
var StatusTrockner = getState(StateTrockner).val;
var LeistungTrockner = getState(WattTrockner).val;
if (StatusTrockner < 2) {
if (LeistungTrockner > Pon) {
setState(StateTrockner, 2, true);
setState(FarbeTrockner, "red", true);
log("Script Keller-Geräte; Status: Trockner läuft. (" + LeistungTrockner + "W)", "info");
} else if (LeistungTrockner < Pstby) {
if (LeistungTrockner < Poff) {
setState(StateTrockner, 0, true);
setState(FarbeTrockner, "blue", true);
log("Script Keller-Geräte; Status: Trockner ist ausgeschaltet. (" + LeistungTrockner + "W)", "info");
} else {
setState(StateTrockner, 1, true);
setState(FarbeTrockner, "green", true);
log("Script Keller-Geräte; Status: Trockner ist im Standby. (" + LeistungTrockner + "W)", "info");
}
}
} else if (StatusTrockner === 2 || StatusTrockner === null) {
if (LeistungTrockner < Pstby) {
setState(StateTrockner, 1, true);
setState(FarbeTrockner, "green", true);
if (getState(OptinSayitW).val) {
setState(SayitID, "Der Trockner ist fertig.");
}
log("Script Keller-Geräte; Status: Trockner ist fertig. (" + LeistungTrockner + "W)", "info");
}
}
}
! checkState(); // Beim Script-Start einmal durchlaufen lassenIch habe zusätzlich noch die Leistungkonfig ind oberen Teil des Scripts genommen. Den Objektpfad javascript.0.Keller-Waschmaschine (ohne Nummer) kannst nun löschen.
