NEWS
Etwas nur tagsüber laufen lassen
-
Trigger ist denke die falsche Variante. Die Aktionen sollen wohl mehrmals am Tag ausgeführt werden. Aber eben nur Tagsüber.
-
Ja, es geht um Bewegungsmelder, die nur tagsüber was tun sollen. Die Bewegungsmelder-DP würde ich als Trigger sehen. Und die Handlung soll nur unter der Bedingung "Tageslicht" stattfinden.
-
Würde es so machen
-
Ich nutze dafür eigentlich immer folgenden Datenpunkt:
javascript.0.variables.isDayTime
-
@david-g Ok, das hatte ich falsch verstanden. Dachte, dass er dann z.B. ein anderes Skript aktivieren bzw. deaktivieren will. Würde übrigens auch funktionieren. In dem anderen Skript würde dann einfach nur auf den von ihm genannten Bewegungsmelder reagiert. Das würde den ständigen Vergleich auf die Zeit unnötig machen, der sonst bei jedem Trigger gemacht werden muss.
-
Danke Euch. Was ist eigentlich der Unterschied zwischen "Zeit" und "aktuelle Zeit" (das, was mit dem Häkchen geschaltet wird)?
-
Den hatte ich grad garnicht am Schirm.....
Bei der "zwischen" Variante hat man den Vorteil, dass man die verschiedenen Zeitpunkte für den Auf- und Untergang hat.Damit habe ich je nach Zweck schon ein paar mal experimentiert.
So bekommt man es teilweise was genauer hin, falls man zB einen großen Berg hat der einem Abends schon früher die Sonne nimmt.EDIT
@haus-automatisierung hat meinen Vorteil mit dem Beitrag nach diesen eben förmlichst vernichtet -
@bertderkleine sagte in Etwas nur tagsüber laufen lassen:
konkret nach Sonnenaufgang und vor Sonnenuntergang.
Dafür gibt es den Datenpunkt
isDayTime
unterjavascript.0.variables
. Auf welche Astro-Ereignisse der reagieren soll, kann in den Instanzeinstellungen festgelegt werden.EDIT: Sorry @DJMarc75 - hatte übersehen dass Du das schon geteilt hattest.
-
@djmarc75 sagte in Etwas nur tagsüber laufen lassen:
Ich nutze dafür eigentlich immer folgenden Datenpunkt:
javascript.0.variables.isDayTime
Ich gebe zu ich verstehe die Befehle so nicht.
Was soll dieses Falls Objekte ist größer als bewirken?
Was für ein Objekt würde man dahinter packen?Oder geht es nur um dieses "falls isdaytime"?
-
@haus-automatisierung sagte in Etwas nur tagsüber laufen lassen:
Dafür gibt es den Datenpunkt
isDayTime
unterjavascript.0.variables
. Auf welche Astro-Ereignisse der reagieren soll, kann in den Instanzeinstellungen festgelegt werden.Interessant zu wissen, dass man den DP isDayTime so gut feintunen kann.
-
Der Trigger ist Dein Bewegungsmelder, größer als letztes bedeutet dass nur dann getriggert wird wenn der Datenpunkt von false auf true oder 0 auf größer 0 springt.
Der blaue falls Block beinhaltet die Bedingung dass nur wenn Tag ist die Aktion ausgeführt wird. -
@djmarc75 sagte in Etwas nur tagsüber laufen lassen:
Der Trigger ist Dein Bewegungsmelder, größer als letztes bedeutet dass nur dann getriggert wird wenn der Datenpunkt von false auf true oder 0 auf größer 0 springt.
Ah, schlauer move. Diese Betrachtungsweise für den Wechsel einer Boolean Variable von false auf true als Zahlen zu sehen. Wieder was gelernt.
-
@bertderkleine sagte in Etwas nur tagsüber laufen lassen:
als Zahlen zu sehen
kann natürlich auch von Zahl x auf größere Zahl als x sein - Hauptsache der Wert ist größer als der vorherige
-
Ich habs jetzt mal ausporbieren können und bekomme das Ding irgendwie nicht zum Fliegen.
Das beschert mir nur einen Fehler:
script.js.Tests.Test_Tageszeit Error by subscription (trigger): Wrong ID of type boolean or number.
Ich verstehe nicht, was für ein Problem er hat, denn der triggernde DP ist Boolean.
-
@bertderkleine Im Trigger den blauen Baustein entfernen und dann NUR die ObjektID auswählen
-
@bertderkleine
Den Fehler hat Dir @DJMarc75 genannt.Du kannst das aber auch noch vereinfachen:
- Du brauchst keine zwei "Falls". 1 Block mit "Falls/Sonst" tut's auch.
- Wenn der Trigger schon auf den richtigen DP zeigt, musst Du den Wert nicht nochmal lesen. Nimm aus dem Bereich "Trigger" den Block "Wert".
- Boolean muss man nicht mit "Falls Wert = True" oder "Falls Wert = False" prüfen.
Hier reicht ein "Falls Wert" bzw. "Falls Nicht Wert".
https://forum.iobroker.net/topic/70481/blockly-for-dummies-starthilfe-und-tipps
Edit: Vorschlag:
-
@bertderkleine sagte in Etwas nur tagsüber laufen lassen:
Ich verstehe nicht, was für ein Problem er hat, denn der triggernde DP ist Boolean.
Was Du machst, ist gerade:
"Lieber JavaScript-Adapter, sag mir mal wann sich das hier ändert:
true
"Das ist der Wert des Datenpunktes (wie hier schon erläutert). Und damit gibt es keine Referenz mehr auf die Objekt-ID. Eigentlich hatte ich die Blöcke mal grün gefärbt, damit man sieht dass da ein String rein muss...
Da die Warnung für Dich scheinbar nicht verständlich ist: Wie hätte diese denn lauten müssen, damit Du weißt was falsch ist?
-
@codierknecht
Danke Dir.
Ich hoffe, so ist es nun richtig:
-
@bertderkleine sagte in Etwas nur tagsüber laufen lassen:
Ich hoffe, so ist es nun richtig:
Ja, würde zwar den Wert aus dem Trigger nehmen (siehe oben von @Codierknecht ), aber geht.
Hat nur das Problem, dass auf jeden Fall nach 5 Min das Licht ausgeht, auch wenn danach wieder eine neue Bewegung erkannt wird. Nur der "keine Bewegung mehr erkannt"-Zweig verlängert das um weitere 5min.
Ein manueller Timeout löst das Problem.
-
Wie @haus-automatisierung schon schreibt: Versuche es mit einem selbst hinzugefügten Timeout zu lösen.
https://forum.iobroker.net/topic/70481/blockly-for-dummies-starthilfe-und-tipps/9