NEWS
[Frage] Homematic Lichtsensor Schwellwert abfragen
-
Hallo Zusammen,
ich fange gerade an mich mit Scripten zu beschäftigen und stehe leider schon auf dem Schlauch.
Ich habe einen Homematic Lichtsensor und möchte davon abhängig die Rollläden steuern.
Ich könnte natürlich einen Wert definieren, z.B. 30 LUX und wenn dieser kleiner wird, sollen die Rollläden runterfahren. Dabei finde ich aber unschön, dass es dann permanent passiert, wenn der Wert aktualisiert wird oder habe ich einen Denkfehler?Danke schon einmal im Voraus!
-
@Maxen du kann ja prüfen ob die Rolläden unten sind und nur dann fahren wenn sie nicht unten sind.
ober du machst dir eine Hilfsvariable "RolladenGefahren"
Die setzt du nach dem Schalten auf True und dann prüfst du diesen Wert parallel zur Helligkeit. -
so ähnlich mache ich das mit der Lichtsteuerung. Aber das Prinzip ist das Gleiche:
on({id:"hm-rpc.0.OEQ0229774.1.LUX",change:'any'}, function (obj) { var gDaemMorgenBeginn = getState('javascript.0.50_Allgemein.Sonnenzeiten.1_SonnenaufgangStart'); var gDaemMorgenEnde = getState('javascript.0.50_Allgemein.Sonnenzeiten.3_SonnenaufgangEnde'); var gDaemAbendBeginn = getState('javascript.0.50_Allgemein.Sonnenzeiten.4_SonnenuntergangStart'); var gDaemAbendEnde = getState('javascript.0.50_Allgemein.Sonnenzeiten.6_SonnenuntergangEnde'); var gLichtSchonGeschaltet = getState('javascript.0.98_Hilfsvariablen.10_LichtNachLuxgrenzeEingeschaltet'); var gLichtSchonGeschaltetMorgen = getState('javascript.0.98_Hilfsvariablen.10_LichtNachLuxgrenzeAusgeschaltet'); var gLuxGrenze = getState('javascript.0.02_Licht.10_LuxgrenzeLichtAn'); var gLuxGrenzeMorgen = getState('javascript.0.02_Licht.10_LuxgrenzeLichtAus'); var gTagesabschnitt = getState('javascript.0.99_Stati.Allgemein.100_Tagesabschnitt'); setTimeout(function () { if ((nowIsBetween(gDaemAbendBeginn.val, gDaemAbendEnde.val)) && (obj.newState.val < gLuxGrenze.val) && (gTagesabschnitt.val = 'Tag') && (gLichtSchonGeschaltet.val === false)) { LichtAbendsAn(); setState('javascript.0.98_Hilfsvariablen.10_LichtNachLuxgrenzeEingeschaltet', true); } if ((nowIsBetween(gDaemMorgenBeginn.val, gDaemMorgenEnde.val)) && (obj.newState.val < gLuxGrenzeMorgen.val) && (gTagesabschnitt.val = 'Tag') && (gLichtSchonGeschaltetMorgen.val === false)) { LichtMorgensAus(); setState('javascript.0.98_Hilfsvariablen.10_LichtNachLuxgrenzeAusgeschaltet', true); } }, 1000); });
-
@htrecksler Danke für die Tips. Habe ich beides schon probiert, aber bin immer auf folgende Hindernisse gestoßen.
Wenn ich prüfe ob die Rollläden schon unten sind, kann ich die wenn es dunkel ist nicht mehr hochfahren, z.B. zum Lüften, ohne, dass diese nach kurzer Zeit wieder runter fahren.
Die Hilfsvariable habe ich auch schon getestet, aber da hab ich noch keine Idee, wie ich es machen soll, dass ich die wieder auf false bekomme, wenn ich morgens die Rollläden von "Hand" hochfahre.
-
@Maxen die Hilfsvariablen setze ich in einem Weiteren Script (Tagesinitialisierung) zurück. In dem Script passiert dann noch einiges mehr.
Manuelles Lüften erreichst du ebenfalls über eine Hilfsvariable pro Rolladen.
Den setzte ich auf true, wenn der Level der Rollade nicht dem Wert oben (100) oder unten (15 - weil ich nicht ganz zu fahre) entspricht. -
@htrecksler Das mit der Tagesinitialisierung ist eine gute Idee. Werde ich mal im Alltag testen.
Danke! -
es gibt übrigens auch einen Adapter dafür. Ich glaube der heißt "shuttercontrol".
Den hab ich allerdings nicht in verwendung weil mein script schon seit langem problemlos läuft. -
@htrecksler Ja, den kenne ich. Habe ich auch schon mal getestet, aber da bin ich dann festgelegt auf die Funktionen die es gibt und das will ich gerne vermeiden.
Sonst kann ich mir ja direkt eine fertige Lösung kaufen -
@Maxen dann wirst du wohl selber 'ran müssen.
Wenn du fragen hast, immer her damit. Wie gesagt, meine Steuerung für 7 Rolläden funktioniert seit Jahren. -
Habe es jetzt mal mit der Tagesinitialiserung in einem Raum und im Schlafzimmer folgendermaßen gelöst:
-
@Maxen blockly?
ich befürchte da kann ich nicht helfen.