NEWS
Suche helfende Hand Lüftungssteuerung
-
@paul53 Hi also läuft jetzt soweit die frage ist wenn ich jetzt Dusche sollte ja die Abluft starten! Und wie kann ich einstellen das er Automatisch eine bestimmte Luftfeuchte hält??? Und ganz wichtig Zeitsteuerung die frau rastet aus wenn nachts die Lüftung läuft.....
Danke schonmal :grin:
@TinoNikol sagte:
wenn ich jetzt Dusche sollte ja die Abluft starten! ... Und ganz wichtig Zeitsteuerung
Habe compareTime() (2 Stellen), einen Datenpunkt für Duschen im Automodus und ein schedule() ergänzt.
// Zu- und Ablüfter steuern // IDs anpassen ! const idZuluft = 'alias.0.Haus.Zuluft.Luefter'; const idAbluft = 'alias.0.Haus.Abluft.Luefter'; const idZuMode = '0_userdata.0.Haus.Zuluft.Modus'; const idAbMode = '0_userdata.0.Haus.Abluft.Modus'; const idLueft = '0_userdata.0.Haus.Klima.Lueften'; const idDusche = '0_userdata.0.Bad.Abluft.Duschen'; var modeZu = getState(idZuMode).val; // 0=Aus,1=Auto,2=Ein var modeAb = getState(idAbMode).val; var lueft = getState(idLueft).val && compareTime('07:00', '22:00', 'between'); var duschen = getState(idDusche).val; function zuluft() { let ein = modeZu == 2 || modeZu == 1 && lueft; if(ein != getState(idZuluft).val) setState(idZuluft, ein); } function abluft() { let ein = modeAb == 2 || modeAb == 1 && (lueft || duschen); if(ein != getState(idAbluft).val) setState(idAbluft, ein); } zuluft(); abluft(); schedule('0 7,22 * * *', function() { // täglich am Morgen und am Abend zuluft(); abluft(); }); on(idLueft, function(dp) { lueft = dp.state.val && compareTime('07:00', '22:00', 'between'); zuluft(); abluft(); }); on(idZuMode, function(dp) { modeZu = dp.state.val; zuluft(); }); on(idAbMode, function(dp) { modeAb = dp.state.val; abluft(); }); on(idDusche, function(dp) { duschen = dp.state.val; abluft(); });@TinoNikol sagte in Suche helfende Hand Lüftungssteuerung:
Automatisch eine bestimmte Luftfeuchte hält???
Das halte ich nicht für sinnvoll. Das Lüftungsskript dient zur Entfeuchtung durch die Außenluft und enthält einen Schutz vor zu trockener Luft.
-
@TinoNikol sagte:
wenn ich jetzt Dusche sollte ja die Abluft starten! ... Und ganz wichtig Zeitsteuerung
Habe compareTime() (2 Stellen), einen Datenpunkt für Duschen im Automodus und ein schedule() ergänzt.
// Zu- und Ablüfter steuern // IDs anpassen ! const idZuluft = 'alias.0.Haus.Zuluft.Luefter'; const idAbluft = 'alias.0.Haus.Abluft.Luefter'; const idZuMode = '0_userdata.0.Haus.Zuluft.Modus'; const idAbMode = '0_userdata.0.Haus.Abluft.Modus'; const idLueft = '0_userdata.0.Haus.Klima.Lueften'; const idDusche = '0_userdata.0.Bad.Abluft.Duschen'; var modeZu = getState(idZuMode).val; // 0=Aus,1=Auto,2=Ein var modeAb = getState(idAbMode).val; var lueft = getState(idLueft).val && compareTime('07:00', '22:00', 'between'); var duschen = getState(idDusche).val; function zuluft() { let ein = modeZu == 2 || modeZu == 1 && lueft; if(ein != getState(idZuluft).val) setState(idZuluft, ein); } function abluft() { let ein = modeAb == 2 || modeAb == 1 && (lueft || duschen); if(ein != getState(idAbluft).val) setState(idAbluft, ein); } zuluft(); abluft(); schedule('0 7,22 * * *', function() { // täglich am Morgen und am Abend zuluft(); abluft(); }); on(idLueft, function(dp) { lueft = dp.state.val && compareTime('07:00', '22:00', 'between'); zuluft(); abluft(); }); on(idZuMode, function(dp) { modeZu = dp.state.val; zuluft(); }); on(idAbMode, function(dp) { modeAb = dp.state.val; abluft(); }); on(idDusche, function(dp) { duschen = dp.state.val; abluft(); });@TinoNikol sagte in Suche helfende Hand Lüftungssteuerung:
Automatisch eine bestimmte Luftfeuchte hält???
Das halte ich nicht für sinnvoll. Das Lüftungsskript dient zur Entfeuchtung durch die Außenluft und enthält einen Schutz vor zu trockener Luft.
-
@TinoNikol sagte :
wie funktioniert das mit dem Dusch Modus???
Das musst Du wissen, wie erkannt wird, dass geduscht wird. Gibt es einen Taster ? Oder über Anstieg Luftfeuchte ?
-
@TinoNikol sagte :
wie funktioniert das mit dem Dusch Modus???
Das musst Du wissen, wie erkannt wird, dass geduscht wird. Gibt es einen Taster ? Oder über Anstieg Luftfeuchte ?
-
-
-
-
@paul53 said in Suche helfende Hand Lüftungssteuerung:
@TinoNikol sagte:
Ist ein Shelly HT
Habe ich nicht.
Denk hab eingestell ab 0,5 % Luftfeuchte meldet er
-
@paul53 said in Suche helfende Hand Lüftungssteuerung:
@TinoNikol sagte:
Ist ein Shelly HT
Habe ich nicht.
Denk hab eingestell ab 0,5 % Luftfeuchte meldet er
@TinoNikol sagte:
ab 0,5 % Luftfeuchte meldet er
Dann kann man den Anstieg auswerten. Vorschlag:
const idRH = 'alias.0.Bad.Klima.rel_Feuchte'; const idDusche = '0_userdata.0.Bad.Abluft.Duschen'; var duschen = getState(idDusche).val; on(idRH, function(dp) { let anstieg = 60000 * (dp.state.val - dp.oldState.val) / (dp.state.lc - dp.oldState.lc); // % pro Minute if(anstieg > 2 && dp.state.val > 66) duschen = true; else if(dp.state.val < 65) duschen = false; setState(idDusche, duschen, true); }); -
@TinoNikol sagte:
ab 0,5 % Luftfeuchte meldet er
Dann kann man den Anstieg auswerten. Vorschlag:
const idRH = 'alias.0.Bad.Klima.rel_Feuchte'; const idDusche = '0_userdata.0.Bad.Abluft.Duschen'; var duschen = getState(idDusche).val; on(idRH, function(dp) { let anstieg = 60000 * (dp.state.val - dp.oldState.val) / (dp.state.lc - dp.oldState.lc); // % pro Minute if(anstieg > 2 && dp.state.val > 66) duschen = true; else if(dp.state.val < 65) duschen = false; setState(idDusche, duschen, true); });@paul53 said in Suche helfende Hand Lüftungssteuerung:
@TinoNikol sagte:
ab 0,5 % Luftfeuchte meldet er
Dann kann man den Anstieg auswerten. Vorschlag:
const idRH = 'alias.0.Bad.Klima.rel_Feuchte'; const idDusche = '0_userdata.0.Bad.Abluft.Duschen'; var duschen = getState(idDusche).val; on(idRH, function(dp) { let anstieg = 60000 * (dp.state.val - dp.oldState.val) / (dp.state.lc - dp.oldState.lc); // % pro Minute if(anstieg > 2 && dp.state.val > 66) duschen = true; else if(dp.state.val < 65) duschen = false; setState(idDusche, duschen, true); });Cool
-
@TinoNikol sagte:
ab 0,5 % Luftfeuchte meldet er
Dann kann man den Anstieg auswerten. Vorschlag:
const idRH = 'alias.0.Bad.Klima.rel_Feuchte'; const idDusche = '0_userdata.0.Bad.Abluft.Duschen'; var duschen = getState(idDusche).val; on(idRH, function(dp) { let anstieg = 60000 * (dp.state.val - dp.oldState.val) / (dp.state.lc - dp.oldState.lc); // % pro Minute if(anstieg > 2 && dp.state.val > 66) duschen = true; else if(dp.state.val < 65) duschen = false; setState(idDusche, duschen, true); });@paul53 said in Suche helfende Hand Lüftungssteuerung:
@TinoNikol sagte:
ab 0,5 % Luftfeuchte meldet er
Dann kann man den Anstieg auswerten. Vorschlag:
const idRH = 'alias.0.Bad.Klima.rel_Feuchte'; const idDusche = '0_userdata.0.Bad.Abluft.Duschen'; var duschen = getState(idDusche).val; on(idRH, function(dp) { let anstieg = 60000 * (dp.state.val - dp.oldState.val) / (dp.state.lc - dp.oldState.lc); // % pro Minute if(anstieg > 2 && dp.state.val > 66) duschen = true; else if(dp.state.val < 65) duschen = false; setState(idDusche, duschen, true); });Irgendwie geht das nicht
-
@paul53 said in Suche helfende Hand Lüftungssteuerung:
@TinoNikol sagte:
ab 0,5 % Luftfeuchte meldet er
Dann kann man den Anstieg auswerten. Vorschlag:
const idRH = 'alias.0.Bad.Klima.rel_Feuchte'; const idDusche = '0_userdata.0.Bad.Abluft.Duschen'; var duschen = getState(idDusche).val; on(idRH, function(dp) { let anstieg = 60000 * (dp.state.val - dp.oldState.val) / (dp.state.lc - dp.oldState.lc); // % pro Minute if(anstieg > 2 && dp.state.val > 66) duschen = true; else if(dp.state.val < 65) duschen = false; setState(idDusche, duschen, true); });Irgendwie geht das nicht
@TinoNikol sagte:
Irgendwie geht das nicht
Was geht nicht ? Um zu sehen, woran es hakt, füge Log-Ausgaben ein:
const idRH = 'alias.0.Bad.Klima.rel_Feuchte'; const idDusche = '0_userdata.0.Bad.Abluft.Duschen'; var duschen = getState(idDusche).val; on(idRH, function(dp) { let anstieg = 60000 * (dp.state.val - dp.oldState.val) / (dp.state.lc - dp.oldState.lc); // % pro Minute if(anstieg > 2 && dp.state.val > 66) duschen = true; else if(dp.state.val < 65) duschen = false; setState(idDusche, duschen, true); log('Anstieg: ' + anstieg + ' %/min, rel. Feuchte: ' + dp.state.val + ' %, Duschen: ' + duschen); }); -
@TinoNikol sagte:
Irgendwie geht das nicht
Was geht nicht ? Um zu sehen, woran es hakt, füge Log-Ausgaben ein:
const idRH = 'alias.0.Bad.Klima.rel_Feuchte'; const idDusche = '0_userdata.0.Bad.Abluft.Duschen'; var duschen = getState(idDusche).val; on(idRH, function(dp) { let anstieg = 60000 * (dp.state.val - dp.oldState.val) / (dp.state.lc - dp.oldState.lc); // % pro Minute if(anstieg > 2 && dp.state.val > 66) duschen = true; else if(dp.state.val < 65) duschen = false; setState(idDusche, duschen, true); log('Anstieg: ' + anstieg + ' %/min, rel. Feuchte: ' + dp.state.val + ' %, Duschen: ' + duschen); });@paul53 Ok geht musste mal restarten aber braucht lang bis reagiert!
00:22:37.325 info javascript.0 (28636) Start javascript script.js.Lüftung.Dusch_Erkennung 00:22:37.331 info javascript.0 (28636) script.js.Lüftung.Dusch_Erkennung: registered 1 subscription and 0 schedules 00:23:09.453 info javascript.0 (28636) script.js.Lüftung.Dusch_Erkennung: Anstieg: 3.7327770763572485, rel. Feuchte: 89.5, Duschen: true -
@TinoNikol sagte:
Irgendwie geht das nicht
Was geht nicht ? Um zu sehen, woran es hakt, füge Log-Ausgaben ein:
const idRH = 'alias.0.Bad.Klima.rel_Feuchte'; const idDusche = '0_userdata.0.Bad.Abluft.Duschen'; var duschen = getState(idDusche).val; on(idRH, function(dp) { let anstieg = 60000 * (dp.state.val - dp.oldState.val) / (dp.state.lc - dp.oldState.lc); // % pro Minute if(anstieg > 2 && dp.state.val > 66) duschen = true; else if(dp.state.val < 65) duschen = false; setState(idDusche, duschen, true); log('Anstieg: ' + anstieg + ' %/min, rel. Feuchte: ' + dp.state.val + ' %, Duschen: ' + duschen); }); -
@paul53 Hi irgendwas stimmt nicht muss Javascript neustarten sonst Startet Lüftung nicht!
@TinoNikol sagte:
muss Javascript neustarten sonst Startet Lüftung nicht!
Das kann wohl kaum an diesem Skript liegen.
-
@TinoNikol sagte:
muss Javascript neustarten sonst Startet Lüftung nicht!
Das kann wohl kaum an diesem Skript liegen.
-
@TinoNikol sagte:
An was könnte es liegen?
?? Hast Du irgendwo eine Endlosschleife programmiert ? Meine Skriptvorschläge enthalten keine Endlosschleife, wenn die richtige Datenpunkt-ID zugeordnet ist. Deaktiviere mal die Skripte, die Du nicht gerade testen willst.
-
@TinoNikol sagte:
An was könnte es liegen?
?? Hast Du irgendwo eine Endlosschleife programmiert ? Meine Skriptvorschläge enthalten keine Endlosschleife, wenn die richtige Datenpunkt-ID zugeordnet ist. Deaktiviere mal die Skripte, die Du nicht gerade testen willst.
-
@TinoNikol sagte:
Was heißt endlosschleife?
Eine Endlosschleife ist eine Schleife, die nicht per Programm abgebrochen wird. Sie entsteht z.B., wenn der Trigger-Datenpunkt und der Datenpunkt der geschrieben wird, identisch sind und im Skript der Wert verändert wird. Beispiel:
const idTrigger = 'irgendeine_ID'; on(idTrigger, function(dp) { setState(idTrigger, dp.state.val + 1); // Wert im Datenpunkt wird um 1 erhöht, was wiederum einen Trigger auslöst });Eine solche Endlosschleife kann das OS lahmlegen.