NEWS
[BLOCKLY] Hilfe bei Steuerung eines Raumentfeuchters
-
Hallo Leute, ich habe mal wieder ein Problem mit einem Script.
Verwendete Hardware:
-
Temp - und Feuchtesensor ( erfolgreich eingebunden )
-
Sonoff POW R2 mit Tasmota ( erfolgreich eingebunden )
Scriptbeschreibung:
Das Script soll wie im Titel einen Raumentfeuchter steuern. Gemessen wird die relative Feuchte. Das Script soll auf der einen Seite Automatisch regeln, aber der anderen Seite per Nachricht eingeschalten werden für 60 Minuten. Nun habe ich schon ein Script erstellt, dass etwas wirr aussieht, aber irgendwie funktioniert das automatische Regeln nicht so wie gewollt und das Manuelle AUS/EIN Schalten leider auch nicht. Ich denke ich hab da ein paar Denkfehler drin.
Zuordnung States:
-
hm-rpc.1.CUX1200004.1.HUMIDITY = Messung Feuchte
-
sonoff.0.Sonoff_POW_R2_Raumentfeuchter.POWER = Sonoff Power an
-
javascript.0.Raumprogramme.Badezimmer.Raumentfeuchter.Raumentfeuchter_EIN_AUS = State für Button VIS und Nachricht Raumentfeuchter
Ein/AUS über Telegram
- javascript.0.Raumprogramme.Badezimmer.Raumentfeuchter.Raumentfeuchter_Betriebsmeldung = State für eine Betriebsmeldung
! ````
var timeout;
! /**- Beschreibe diese Funktion …
*/
function Javascript_Funktion() {
createState('javascript.0.Raumprogramme.Badezimmer.Raumentfeuchter.Raumentfeuchter_EIN_AUS', {
name: 'Raumentfeuchter EIN/AUS (Button oder Nachricht)',
desc: 'Raumentfeuchter EIN/AUS (Button oder Nachricht)',
type: 'boolean',
role: 'javascript'
});
createState('javascript.0.Raumprogramme.Badezimmer.Raumentfeuchter.Raumentfeuchter_Betriebsmeldung', {
name: 'Raumentfeuchter Betriebsmeldung',
desc: 'Raumentfeuchter Betriebsmeldung',
type: 'boolean',
role: 'javascript'
});
}
! // Wenn Sonoff für Raumentfeuchter online ist
Javascript_Funktion();
on({id: "hm-rpc.1.CUX1200004.1.HUMIDITY"/HM-WDS30-T-O CUX1200004:1.HUMIDITY/, change: "ne"}, function (obj) {
var value = obj.state.val;
var oldValue = obj.oldState.val;
// Raumentfeuchter einschalten/ausschalten
if (getState("hm-rpc.1.CUX1200004.1.HUMIDITY").val >= 62 && getState("javascript.0.Raumprogramme.Badezimmer.Raumentfeuchter.Raumentfeuchter_EIN_AUS").val == false) {
// Einschalten:
setStateDelayed("sonoff.0.Sonoff_POW_R2_Raumentfeuchter.POWER"/Sonoff_POW_R2_Raumentfeuchter POWER/, true, 120000, false);
// Betriebsmeldung für Nachrichtentrigger setzen
setState("javascript.0.Raumprogramme.Badezimmer.Raumentfeuchter.Raumentfeuchter_Betriebsmeldung"/Raumentfeuchter Betriebsmeldung/, true);
} else if (getState("hm-rpc.1.CUX1200004.1.HUMIDITY").val <= 55 && getState("javascript.0.Raumprogramme.Badezimmer.Raumentfeuchter.Raumentfeuchter_EIN_AUS").val == false) {
// Ausschalten:
setStateDelayed("sonoff.0.Sonoff_POW_R2_Raumentfeuchter.POWER"/Sonoff_POW_R2_Raumentfeuchter POWER/, false, 480000, false);
// Betriebsmeldung für Nachrichtentrigger setzen
setState("javascript.0.Raumprogramme.Badezimmer.Raumentfeuchter.Raumentfeuchter_Betriebsmeldung"/Raumentfeuchter Betriebsmeldung/, false);
}
});
// Raumentfeuchter manuell Einschalten:
on({id: "javascript.0.Raumprogramme.Badezimmer.Raumentfeuchter.Raumentfeuchter_EIN_AUS"/Raumentfeuchter EIN/AUS (Button oder Nachricht)/, val: true}, function (obj) {
var value = obj.state.val;
var oldValue = obj.oldState.val;
setState("sonoff.0.Sonoff_POW_R2_Raumentfeuchter.POWER"/Sonoff_POW_R2_Raumentfeuchter POWER/, true);
// Raumentfeuchter nach 60 Minuten wieder ausschalten
// Und State des Button wieder Rücksetzen
timeout = setTimeout(function () {
setState("sonoff.0.Sonoff_POW_R2_Raumentfeuchter.POWER"/Sonoff_POW_R2_Raumentfeuchter POWER/, false);
setStateDelayed("javascript.0.Raumprogramme.Badezimmer.Raumentfeuchter.Raumentfeuchter_EIN_AUS"/Raumentfeuchter EIN/AUS (Button oder Nachricht)/, false, true, 2000, false);
}, 3600000);
if (getState("hm-rpc.1.CUX1200004.1.HUMIDITY").val <= 55 || getState("javascript.0.Raumprogramme.Badezimmer.Raumentfeuchter.Raumentfeuchter_EIN_AUS").val == false) {
(function () {if (timeout) {clearTimeout(timeout); timeout = null;}})();
}
});
// Nachrichten für Automatische Steuerung
on({id: "javascript.0.Raumprogramme.Badezimmer.Raumentfeuchter.Raumentfeuchter_Betriebsmeldung"/Raumentfeuchter Betriebsmeldung/, change: "ne"}, function (obj) {
var value = obj.state.val;
var oldValue = obj.oldState.val;
if (getState("sonoff.0.Sonoff_POW_R2_Raumentfeuchter.POWER").val == true) {
sendTo("telegram.0", "send", {
text: 'Raumentfeuchtern Automatisch Ein'
});
} else if (getState("sonoff.0.Sonoff_POW_R2_Raumentfeuchter.POWER").val == false) {
sendTo("telegram.0", "send", {
text: 'Raumentfeuchtern Automatisch Aus'
});
}
});
! ```` -
-
So am Rande:
Kompressor: braucht Regenerierungszeit bist zum Wiedereinschalten. Mind. 5min. Laufzeit nicht zu kurz, da Entfeuchtungsbeginn auch verzögert, bis Druckaufbau und Kühl genug. Manche Geräte haben alle 45min automatische Abtauung mit kurzer Kompressorabschaltung…
-
So am Rande:
Kompressor: braucht Regenerierungszeit bist zum Wiedereinschalten. Mind. 5min. Laufzeit nicht zu kurz, da Entfeuchtungsbeginn auch verzögert, bis Druckaufbau und Kühl genug. Manche Geräte haben alle 45min automatische Abtauung mit kurzer Kompressorabschaltung… `
Gut das du es sagt, der Entfeuchter hat noch seine eigene Logik ab Werk und schaltet bei Behälter voll auch ab. Der Wideranlauf ist ebenfalls durch diferse Sensoren verriegelt.
-
Ich habe da eine Regelung am laufen (nicht ioBoker), die misst bei den Steckdosen die Stromaufnahme und schaltet erst dann ab, wenn das Programm des geschalteten Gerätes (z.B. Waschmaschine) abgelaufen ist. Außerdem kennt es die typische Laufzeit des Gerätes durch Beobachtung der Leistungsaufnahme. In Zusammenhang mit der Wettervorhersge ist das nützlich zum Einschalten von Verbrauchern bei Sonnenschein…