Habe eine gute und eine schlechte Nachricht.
Plötzlich ging es wieder. (GUT). Ich weiss nicht warum. (SCHLECHT)
Habe eine gute und eine schlechte Nachricht.
Plötzlich ging es wieder. (GUT). Ich weiss nicht warum. (SCHLECHT)
Achtung: Für ioBroker brauchst Du JavaScript NICHT Java (Sind wirklich zwei verschiedene Sachen).
Ich habe auch erst gezögert, dann aber einfach mal einen klein Push-Request gemacht. Und dann einen etwas grösseren.
Bis jetzt hat keiner reklamiert. Im Gegenteil.
Was ich aber begrüssen würde, wäre eine 'zentrale' Position im Adapter, wo die Texte hinterlegt. sind. Bei einigen Adaptern sind die doch ordentlich verstreut. Da war das in einem anderen Projekt in PHP mit den po und mo files irgendwie klarer.
Ein bisschen OT, aber wäre ev. ein Entwickler- oder PowerUser-Chat eine gute Sache? Man könnte gewisse Dinge, (wenn online) eher zeitnah disskutieren… -> Nur mal als Idee.
In dem man in der Gruppe 'Layout', die Checkbox 'Kein Farbverlauf' NICHT anklickt. :idea:
EDIT; zu langsam. :x
Du könntest dich da anschliessen: http://forum.iobroker.net/viewtopic.php?p=59417#p59417
Eventuell ist auch das etwas für Dich: http://forum.iobroker.net/viewtopic.php?f=30&t=4452
Bis er sich meldet: Muss eines der Valuelist Widgets sein.
Die alte Waschmaschine JA, Die Script enabled Dinger NEIN. Die braucht es für den Javascript Adapter
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 lassen
Ich habe zusätzlich noch die Leistungkonfig ind oberen Teil des Scripts genommen.
Den Objektpfad javascript.0.Keller-Waschmaschine (ohne Nummer) kannst nun löschen.
Im Prinzip FAST Die Deklaration der Variablen (der Teil mit den var am Anfang) muss natürlich auch durchgehend mit 1 und 2 ergänzt sein.
Hast Du mittelfristig vor über Lautsprecher Ansagen zu machen? Sonst könnte man den sayit Teil noch wegmachen. Auch den Farbteil könnte man weg machen, wenn Du willst.
Export müsste schon gehen, welche solls denn sein?