NEWS
Licht geht nicht aus
-
Na wenn die Uhrzeit zwischen 19 Uhr Abends und 7 Uhr morgens ist. Bei Bewegung / Anwesenheit : Licht an.
So hab ich einige Skripte und die gehen alle. Auch aus. Nur das nicht ? -
@otterfan
Hi, du musst bei der falls bzw. if Abfrage auch angeben was true bzw. false sein soll. Also if Wert von Objekt ID = true. Objekt Id wäre in diesem Fall dein Precense. Und wieso steuerst du dein Küche Arbeitsplatte.OnOff mit 1 und 0? Müsste doch eigentlich mit true oder false gesteuert werden.
Und du kannst das Ein und Ausschalten in einem Trigger realisieren.
Wenn Precence ist true und Aktuelle zeit zwischen 19 und 7 schalte ein, sonst schalte aus. -
@otterfan
Noch ein Tipp, ich würde das ausschalten mit einem Timeout lösen, der bei erneutem Einschalten, in der Zeit, gestoppt wird. Sonst kann es dir passieren, das wenn keine Bewegung ist, der Ausschaltbefehl kommt, die Verzögerung 3 Minuten läuft. Du Bewegst dich wieder aber die Zeit 3 Minuten würde nicht stoppen, also würde das Licht trotz Bewegung nach 3 Minuten ausgehen.
Edit:
Mir fällt da noch ein das es mal Probleme gab wenn man ne zwischen Zeit wählt die über einen Tageswechsel geht, wie bei dir 19 - 7. Solltest du damit Probleme haben kannst du auch sagen nicht zwischen 7 und 19 Uhr
-
@otterfan
Das kann nicht funktionieren, weil sich Dein True auf nichts bezieht und TREU in einer FALLS eh schon als Standard Abfrage drin ist. Somit ist Dein erste Blockly lediglich eine Falls Uhrzeit, mehr nicht.
Im zweiten wirds dann noch weniger sinnvoll, da sich das TRUE dort alleine befindet und sich auf nichts bezieht.
Das was Du willst ist ein ganz andere Block und ist unter Trigger "Wert", denn das bezeeht sich direkt auf das Objekt im Trigger. Ein einfaches TRUR macht überhaupt nichts.So sollte das erste aussehen, wenn das Objekt des Trigger und die Zeit UND verknüpft werden sollten:
Wobei man das eigentlich schon so erledigen könnte:
-
Hallo ihr 2,
aber es funktioniert ja....ich hab das genau so bei anderen lichtern in Betrieb. Klappt wunderbar :Warum bezieht sich mein true auf nichts ? Ich sage doch bei dem trigger ( rot ) Event if Presence changed, und dieser change ist "true", dann schalte an. Das klappt prima und auch in dieser Zeit. Wo hab ich meinen Logic / Denkfehler ? Und warum klappt es dann ?
-
@otterfan
Deine Bedingung heißt "true and..." mehr nicht. Weil True alleine steht und sich eben auf nicht bezieht. Oder was soll Deiner Meinung nach hier auf True geprüft werden, das Objekt im Trigger? Denn das tut es nicht, weil kein Bezug dazu. Schau meine Beispiele an, da ist es ersichtlich.
Klar funktioniert das, allerdings könntest das true auch raus nehmen und es würde immer noch genau so funktionieren. Nur weil was funktioniert, ist es noch lange nicht richtigWenn der BWM sich ändert und das innerhalb der Zeit passiert, reagieren Deine Lampen, allerdings ist es egal ob der auf true oder false wechselt, weil Du das nicht abfragst.
-
@otterfan
Hi, das klappt weil eine Änderung stattfindet, dabei ist es egal ob true oder false und die Urzeit zwischen den beiden Werten ist. Das heißt egal ob Bewegung erkannt wird oder nicht mehr erkannt, jedes mal wird eingeschaltet, aber nicht mehr aus. -
ahhhhhh ok. jetzt macht das Sinn ! Vielen Dank erstmal.
-
@frankyboy73
Exakt, hatte ich oben eben gerade ergänzt -
@Jan1
Ich war zu langsam, oder du schneller -
@frankyboy73
Er hats verstanden und das zählt -
-
So sollte das jetzt passen oder ?
Das mit dem timeout ist mir nicht ganz klar- Also so wie das jetzt programmiert ist, verlängert sich die Zeit bei jeder Bewegung um 3 Minuten, und die "alte" Zeit wird gestoppt / gelöscht. Nur wenn 3 Min keine Bewegung mehr ist, dann geht es aus ?
-
@otterfan sagte in Licht geht nicht aus:
verlängert sich die Zeit bei jeder Bewegung um 3 Minuten, und die "alte" Zeit wird gestoppt / gelöscht. Nur wenn 3 Min keine Bewegung mehr ist, dann geht es aus ?
genau so.
Aber dein stop-Baustein müsste ein "timeout" im Text haben wo das pulldown ist
-
jetzt ja Danke Dir
-
So habe ich das am laufen...
-
nochmals vielen Dank. Das ist jetzt echt klasse. Mit meinem Homee zusammen ist IOBroker ein echt gutes Team !
-
@otterfan
Na 100% hast das noch nicht drin. True wird immer bei ner FALLS geprüft, deshalb ist das doppelt wenn man es noch mal abfragt und wenn überhaupt, dann am Ende und nicht mitten drin.
Das stop ist auch falsch, weil es nicht definiert ist. Wenn es richtig wäre, würde es "stop timeout1" heißen. Dann sollte der Stop auch immer noch direkt vor dem selben timeout sein, da nur so sicher ist, dass ein eventuell laufender timeout vorher auch eliminiert wird, ansonsten hast die Gefahr, dass mehrere timeouts gleichzeitig laufen können. -
klar nicht 100%. Ich lerne noch...ich hatte noch nie was mit skripten gemacht bis dato
-
@otterfan
Ich hab oben noch was editiert und kein Problem, ich kratze auch nur an der Oberfläche, aber schon bisschen tiefer als Du