NEWS
Blockly Mehrfachtrigger Lichtsteuerung
-
@paul53 : ich habe jetzt mal versucht das Blockly nachzubauen. Aber folgendes ist mir noch nicht klar.
Ich möchte dass das Licht bei Werten < 15 eingeschaltet wird wenn Bewegung festgestellt wird. Und wenn Helligkeitswerte > 18 gemessen werden, soll das Licht wieder ausgeschaltet werden.
- Was bewirkt die erste Zeile "setze dunkel auf Wert von Objekt ID Illumination < 18"?
- Welche Werte kann die Variable "Licht" annehmen?
- Kann "Licht" auf 100 gesetzt werden und 0?`
- Wie kann ich das Licht wieder ausschalten, wenn
a) keiner der beiden Präsenzmelder keine Bewegung erkannt hat
b) oder die Helligkeit > 18 gemessen wird - Ich würde auch noch gern eine Systemvariable "Lichtszenario" einbauen um ein re-triggern der Beleuchtung bei eingeschaltetem Licht zu verhindern. Anderenfalls wird momentan noch jedes mal das Licht wieder eingeschaltet, wenn eine Bewegung detektiert wurde.
Hab nochmals vielen Dank für deine Hilfe.
-
@takahara sagte: Was bewirkt die erste Zeile "setze dunkel auf Wert von Objekt ID Illumination < 18"?
Setzt den Wert auf false oder true - je nach Helligkeit. Die Variable dunkel bleibt sonst undefined, wenn sich die Helligkeit beim Skriptstart innerhalb der Hysterese befindet.
@takahara sagte in Blockly Mehrwachtrigger Lichtsteuerung:
Welche Werte kann die Variable "Licht" annehmen?
Jeden Wert zwischen 0 und 100. Kann zum Einschalten auch auf 65 gesetzt werden.
@takahara sagte in Blockly Mehrwachtrigger Lichtsteuerung:
ein re-triggern der Beleuchtung bei eingeschaltetem Licht zu verhindern.
Das wird hierdurch verhindert:
-
Wenn ich es richtig verstehe, wird die Variable Licht auf 65 gesetzt wenn entweder Bewegung erkannt wurde oder Anwesenheit im Raum erkannt wurde. Falls alle Bedingungen nicht eintreten wird Licht auf 0 gesetzt.
Falls die Stehleuchte zuvor eingeschaltet war (Wert 65) wird die Stehleuchte mit dem Wert 0 geschaltet (ausgeschaltet).
Was bedeutet "steuere EG_WZ_Steckdose:3.STATE mit nicht nicht Licht"?
Zuvor hatte Licht doch den Wert 0 oder 65. Also Frage ich mich, wie in der Telegram Nachricht, die Prüfung von Licht entweder wahr oder falsch sein kann?
Ich habe noch zwei weitere Bedingungen aus externen Programmen. Soundsystem und TV. Diese können true oder false sein. Je nachdem ob Soundsystem oder TV eingeschalt oder ausgeschaltet sind.
Könnte man das Blockly noch soweit abändern, dass das Licht/die Lichter nur ausgeschaltet sind, wenn beide Variablen Soundsystem und TV FALSE sind? -
@takahara sagte: Was bedeutet "steuere EG_WZ_Steckdose:3.STATE mit nicht nicht Licht"?
"nicht nicht" wandelt eine Zahl != 0 in true und eine 0 in false.
@takahara sagte in Blockly Mehrwachtrigger Lichtsteuerung:
Wert 0 oder 65. Also Frage ich mich, wie in der Telegram Nachricht, die Prüfung von Licht entweder wahr oder falsch sein kann?
Javascript nimmt eine implizite Typwandlung vor: != 0 wird als wahr und 0 wird als falsch gewertet. Falls es verständlicher ist, mache es so:
@takahara sagte in Blockly Mehrwachtrigger Lichtsteuerung:
Lichter nur ausgeschaltet sind, wenn beide Variablen Soundsystem und TV FALSE sind?
Dafür gibt es Datenpunkte?
-
@paul53 : Ja es gibt Datenpunkte. Einer dieser Datenpunkte heißt Lichtszenario_Soundsystem.
Dieser soll TRUE sein, wenn die Stromaufnahme über 80mA liegt und FALSE sein, wenn die Stromaufnahme kleiner 60mA ist. Ich habe aber deine Lösung mit der Hysterese noch nicht zu 100% verstanden. Und wie du das erneute triggern von Lichtszenario_Soundsystem verhinderst.
Meine Idee schaut folgendermaßen aus:
Den Datenpunkte Lichtszenario_Soundsystem, habe ich hier eingesetzt:
-
@takahara sagte: Den Datenpunkte Lichtszenario_Soundsystem, habe ich hier eingesetzt:
Das passt. Ist das ein eigener Datenpunkt oder der eines Adapters?
-
@takahara sagte: Meine Idee schaut folgendermaßen aus:
Dafür benötigt man keine Hysterese, weil das eingeschaltete Soundsystem einen bestimmten Wert nicht unterschreitet. Einfacher:
-
@paul53 : Ein eigens erstellter Datenpunkt.
-
@takahara sagte: Ein eigens erstellter Datenpunkt.
Dann verwende besser Block "aktualisiere" anstelle von "steuere".
-
und ändere den Titel, dann finden andere auch den thread mit der Suche. "Mehrwachtrigger" soll sicher "Mehrfachtrigger" heissen, oder?
-
@reutli: Erledigt. Danke dir!
-
@paul53 : Ich weiß es sehr zu schätzen, dass du dir Zeit für mich nimmst. Und meine Fragen geduldig beantwortest. Nochmals vielen lieben Dank.
In der Falls-Bedingung aktualisiere ich den Wert von ** Lichtszenario_Soundsystem** auf den Wert von Soundsystem. Da diese beiden Werte immer gegenläufig sind, sobald die Falls-Bedingung erfüllt wurde.
Wenn ich jetzt noch den Shelly Switch auf FALSE schalten möchte, wenn ** Lichtszenario_Soundsystem** = FALSE ist, kann ich das in der Falls-Bedingung nicht machen.
Muss ein zusätzliches Programm her?
-
@takahara sagte: Wenn ich jetzt noch den Shelly Switch auf FALSE schalten möchte, wenn ** Lichtszenario_Soundsystem** = FALSE ist,
"Switch" = Shelly
-
@paul53 : Ich bin gerade wieder am testen und habe das Blockly dahin angepasst, dass der Helligkeitswert des Präsenzmelders in der Push-Nachricht mit ausgegeben wird.
Laut Push-Nachricht ist dieser Wert 42.8. Warum wird das Licht bei diesem Helligkeitswert eingeschaltet? Wird die gemessene Helligkeit beim Einschalten der Lampen berücksichtig? Sprich, nur wenn dunkel = TRUE ist, soll das Licht eingeschaltet werden.
Müsste dieser Block:
Dann nicht so umgeschrieben werden? -
@takahara sagte: Dann nicht so umgeschrieben werden?
Das war mein erster Vorschlag, da ich davon ausgegangen bin, dass das Licht bei ausreichender Helligkeit auch bei Bewegung nicht eingeschaltet werden soll. Du hast es danach allerdings anders beschrieben:
Das Licht soll eingeschaltet werden, wenn Bewegung1 oder Bewegung2 oder die Helligkeit unter X% fällt (nur wenn eine Person im Raum ist) getriggert wurden.
-
@paul53: Ich hatte mich nicht eindeutig ausgedrückt. Danke dir.
-
@paul53 : Ich habe noch eine Frage.
Ich setze den Datenpunkt Lichtszenario_TV auf TRUE, wenn der aktuelle Stromverbrauch >0,26A ist. Dieser Stromwert muss ja höher sein, wie die Stromaufnahme im Standby-Betrieb, da ich die Spannungsversorgung um Standby-Betrieb ja über den Shelly abschalten möchte,
Heute Abend ist mir aufgefallen, dass die Spannungszufuhr zu Steckdose über den Shelly unmittelbar wieder ausgeschaltet wird. Da die Stromaufnahme im Standby-Betrieb unter der Schwelle von 0.26A liegt.
Die Schwelle noch weiter zu reduzieren führt nur dazu, dass der Verbraucher nicht mehr ausgeschaltet wird.
Wie könnte ich das Problem noch lösen? Kann man eine Verzögerung einbauen, die das Ausschalten um X-Sekunden / Minuten verzögert und wenn in der Zwischenzeit (während die Verzögerung noch läuft) ein Stromwert gemessen wird, der oberhalb der Schaltschwelle liegt, diese Verzögerung abgebrochen wird?
-
@takahara sagte: die Spannungszufuhr zu Steckdose über den Shelly unmittelbar wieder ausgeschaltet wird.
Beim Einschalten des Shelly? Stromspitze beim Einschalten? Dann versuche mal
-
@paul53 Hallo Paul, ich hätte noch eine weitere Frage zum Blockly und hoffe du magst mir nochmal helfen.
Die drei Trigger sind ja:
- Bewegungserkennung / Nicht-Erkennung Präsenzmelder
- Helligkeit Präsenzmelder
- Bewegungserkennung / Nicht-Erkennung Bewegungsmelder
Wenn die Helligkeit jetzt steigen sollte während das Licht AN ist, ist die Systemvariable dunkel FALSE.
Im nächsten Block (prüfe...) wird die Systemvariable dunkel FALSE sein.
Wie könnte ich die Beleuchtung ausschalten, wenn die Präsenz-/ Bewegungsmelder zwar noch Anwesenheit im Raum feststellen allerdings die Helligkeit so hoch ist, dass ich keine künstliche Beleuchtung mehr benötige?
Was ich damit sagen möchte, ist das Licht auszuschalten, falls es morgens noch in der Dunkelheit aktiviert wurde. Es über den Tag dann aber heller wird, um dann das Licht auszuschalten?Vielen Dank
Takahara
-
@paul53 :
Ich denke, dass ich meine Frage mir beantworten konnte.
Da die Variable dunkel bei Überschreitung der Helligkeit falsch ist. Somit sollte auch die Prüf-Bedingung falsch sein und Licht auf 0 setzen. Was zum Ausschalten der Beleuchtung führt, obwohl noch Präsenz im Raum festgestellt wird.
VG
Takahara