Funktionsbeschreibung
Für das Ein- und Ausschalten der Ambientebeleuchtung entsprechen die Sonnenauf- und -untergangszeiten nicht genau den Anforderungen, je nach Ausrichtung der Räume in einem Haus. Eine Verzögerung auf beiden Seiten wäre sehr interessant.
Ich dachte, es gäbe bereits eine Anfrage dazu und ein GitHub-Issue, aber ich habe nichts gefunden.
+1 für die Beleuchtung und die Rollläden, das ist unabdingbar.
Ja, ich bin einverstanden!
Für diejenigen, die diesen Thread lesen: Ein Zeitlimit „nachher“ ist bereits möglich, man muss nur eine „Warten“-Aktion in der Szene hinzufügen. Ein Zeitlimit „vorher“ ist aktuell allerdings nicht möglich ![]()
Ich verwende derzeit „Bei Sonnenaufgang“ zum Öffnen der Rollläden.
Aber es ist bereits seit einiger Zeit hell, wenn diese sich öffnen.
Es gibt mehr astronomische Begriffe: Lever et coucher du soleil | Augusta
Gibt es nicht eine API, die uns mehr Optionen bieten könnte?
Ich glaube, ich habe etwas Nützliches gefunden:
Es gibt nicht alle Optionen von Heliotrope, die unter Jeedom verfügbar sind, aber es gibt durchaus astronomische Dämmerungszeiten usw…
Ich bin mir nicht sicher, ob wir über eine API gehen müssen, aktuell machen wir die Berechnungen lokal ![]()
Warum nicht weitere Berechnungen hinzufügen, falls nötig? Du erstellst einen spezifischen Funktionswunsch mit den anderen Berechnungen, die du möchtest?
Okay! Super… ich habe keine Ahnung, was alles hinter Gladys steckt!
Ich schaue mir die verschiedenen Begriffe (astronomische/nautische Dämmerung, Zivil-dämmerung…) genauer an, um etwas Kohärentes zu formulieren.
Hallo @b3n.0,
Im Allgemeinen werden die Berechnungen auf Basis der bürgerlichen Dämmerung (Sonne 6° unter dem Horizont) durchgeführt.
Aus Sicht der Anzeige ist eine interessante Darstellung zum Beispiel die Zeitleiste, auf der du mit einem Cursor den Tag und die Nacht verlängern oder verkürzen kannst.
Aber das Risiko besteht darin, dass, wenn die Berechnung auf ein Datum von 0-24 Uhr UTC basiert und die Anzeige in der App die GMT-Zeit des Browsers verwendet, der Cursor auf zwei Tagen liegt.
Außerdem Achtung, die Berechnungscodes verwenden oft vereinfachte Algorithmen, die oberhalb des 60. Breitengrades weniger genau werden. Es wäre interessant, die Berechnungen zu überprüfen, falls jemand Gladys auf den Polstationen verwendet?
Gladys verwendet die Bibliothek « suncalc », die die Berechnung auf diese Weise durchführt:
https://github.com/mourner/suncalc/blob/master/suncalc.js#L142
In derselben Bibliothek, soweit ich das verstehe, scheinen die Konzepte vorhanden zu sein, um die « ersten Lichter des Tages » zu haben:
// Sonnenzeiten-Konfiguration (Winkel, morgendlicher Name, abendlicher Name)
var times = SunCalc.times = [
[-0.833, 'sunrise', 'sunset' ],
[ -0.3, 'sunriseEnd', 'sunsetStart' ],
[ -6, 'dawn', 'dusk' ],
[ -12, 'nauticalDawn', 'nauticalDusk'],
[ -18, 'nightEnd', 'night' ],
[ 6, 'goldenHourEnd', 'goldenHour' ]
];
@b3n.0
Es gibt 2 Lösungen, über Node-Red Mini-tuto Sun-Position Nore-red Mqtt pour piloter les volets en fonction de la position du soleil et des mois
en dem Flow für Sonnenaufgang und Sonnenuntergang wie unten geändert und durch Hinzufügen
in Gladys im Gerät, das für Azimut und Höhe erstellt wurde, 2 Schalter
entsprechend, die den Flow von Node-Red empfangen
gladys/master/device/mqtt:soleil/feature/mqtt:sunrise/state
gladys/master/device/mqtt:soleil/feature/mqtt:sunset/state
anschließend muss es nur noch in einer Szene verwaltet werden, indem der Zustand des Geräts
im Code der Funktion minutedepuis minuit der Zustand im Payload auf 1 gesetzt wird, um zu schalten und den Node « delay » anzupassen
Code des Flusses
t[
{
"id": "dbd46647b51191ed",
"type": "tab",
"label": "Sun-Position",
"disabled": false,
"info": "",
"env": []
},
{
"id": "a0d0e562.7ad1d8",
"type": "debug",
"z": "dbd46647b51191ed",
"name": "debug 1",
"active": false,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "true",
"targetType": "full",
"statusVal": "",
"statusType": "auto",
"x": 720,
"y": 180,
"wires": []
},
{
"id": "9cc2d51.4ac0828",
"type": "change",
"z": "dbd46647b51191ed",
"name": "azimuth",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "payload.azimuth",
"tot": "msg"
},
{
"t": "set",
"p": "topic",
"pt": "msg",
"to": "gladys/master/device/mqtt:soleil/feature/mqtt:azimuth/state",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 720,
"y": 240,
"wires": [
[
"0a17f9d94c9dae35",
"ddf8b5e66052a4dc"
]
]
},
{
"id": "28e91.9d63d16f6",
"type": "change",
"z": "dbd46647b51191ed",
"name": "altitude",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "payload.altitude",
"tot": "msg"
},
{
"t": "set",
"p": "topic",
"pt": "msg",
"to": "gladys/master/device/mqtt:soleil/feature/mqtt:altitude/state",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 720,
"y": 320,
"wires": [
[
"ae57174554627c71",
"58367a9aedab25dc"
]
]
},
{
"id": "e921e01a.a0fa3",
"type": "debug",
"z": "dbd46647b51191ed",
"name": "debug 4",
"active": false,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "true",
"targetType": "full",
"statusVal": "",
"statusType": "auto",
"x": 720,
"y": 380,
"wires": []
},
{
"id": "e866e950.a7f798",
"type": "debug",
"z": "dbd46647b51191ed",
"name": "debug 3",
"active": false,
"tosidebar": true,
"console": false,
"tostatus": true,
"complete": "true",
"targetType": "full",
"statusVal": "payload",
"statusType": "auto",
"x": 1160,
"y": 180,
"wires": []
},
{
"id": "5b085e1b.4ec8a",
"type": "debug",
"z": "dbd46647b51191ed",
"name": "debug 6",
"active": false,
"tosidebar": true,
"console": false,
"tostatus": true,
"complete": "true",
"targetType": "full",
"statusVal": "payload",
"statusType": "auto",
"x": 1160,
"y": 380,
"wires": []
},
{
"id": "8eee70dd77c1369c",
"type": "mqtt out",
"z": "dbd46647b51191ed",
"name": "",
"topic": "",
"qos": "",
"retain": "",
"respTopic": "",
"contentType": "",
"userProps": "",
"correl": "",
"expiry": "",
"broker": "3c3eb52d.9fb296",
"x": 1150,
"y": 280,
"wires": []
},
{
"id": "0a17f9d94c9dae35",
"type": "function",
"z": "dbd46647b51191ed",
"name": "ganzzahlige Rundung",
"func": "msg.payload = Math.round(msg.payload)\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 930,
"y": 240,
"wires": [
[
"8eee70dd77c1369c",
"e866e950.a7f798"
]
]
},
{
"id": "ddf8b5e66052a4dc",
"type": "debug",
"z": "dbd46647b51191ed",
"name": "debug 2",
"active": false,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "true",
"targetType": "full",
"statusVal": "",
"statusType": "auto",
"x": 920,
"y": 180,
"wires": []
},
{
"id": "ae57174554627c71",
"type": "function",
"z": "dbd46647b51191ed",
"name": "ganzzahlige Rundung",
"func": "msg.payload = Math.round(msg.payload)\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 930,
"y": 320,
"wires": [
[
"5b085e1b.4ec8a",
"8eee70dd77c1369c"
]
]
},
{
"id": "58367a9aedab25dc",
"type": "debug",
"z": "dbd46647b51191ed",
"name": "debug 5",
"active": false,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "true",
"targetType": "full",
"statusVal": "",
"statusType": "auto",
"x": 920,
"y": 380,
"wires": []
},
{
"id": "56265aeb.99f034",
"type": "sun-position",
"z": "dbd46647b51191ed",
"name": "",
"positionConfig": "2831ba70.55a636",
"rules": [
{
"valueLow": "0",
"valueLowType": "num",
"valueHigh": "360",
"valueHighType": "num"
}
],
"onlyOnChange": "true",
"topic": "",
"outputs": 2,
"start": "sunsetStart",
"startType": "pdsTime",
"startOffset": 0,
"startOffsetType": "num",
"startOffsetMultiplier": 60000,
"end": "sunriseEnd",
"endType": "pdsTime",
"endOffset": 0,
"endOffsetType": "num",
"endOffsetMultiplier": 60000,
"x": 470,
"y": 280,
"wires": [
[
"a0d0e562.7ad1d8",
"9cc2d51.4ac0828",
"28e91.9d63d16f6",
"6b1f97b4cc4c5e53",
"b10eedb2bb5656c1"
],
[
"e921e01a.a0fa3"
]
]
},
{
"id": "664b1852987e09be",
"type": "time-inject",
"z": "dbd46647b51191ed",
"name": "Periode und Intervall der Injektion.",
"nameInt": "¹sunrise start - sunset end = timestamp ↻10min",
"positionConfig": "2831ba70.55a636",
"props": [
{
"p": "",
"pt": "msgPayload",
"v": "",
"vt": "date",
"o": "",
"oT": "none",
"oM": "60000",
"f": 0,
"fS": 0,
"fT": "UNIX timestamp (ms)",
"fI": "0",
"next": true,
"days": "*",
"months": "*",
"onlyOddDays": false,
"onlyEvenDays": false,
"onlyOddWeeks": false,
"onlyEvenWeeks": false
},
{
"p": "",
"pt": "msgTopic",
"v": "",
"vt": "str",
"o": "",
"oT": "none",
"oM": "60000",
"f": 0,
"fS": 0,
"fT": "UNIX timestamp (ms)",
"fI": "0",
"next": false,
"days": "*",
"months": "*",
"onlyOddDays": false,
"onlyEvenDays": false,
"onlyOddWeeks": false,
"onlyEvenWeeks": false
}
],
"x": 220,
"y": 280,
"wires": [
[
"56265aeb.99f034"
]
]
}
]
[/details],
« onlyEvenDays »: false,
« onlyOddWeeks »: false,
« onlyEvenWeeks »: false
}
],
« injectTypeSelect »: « interval-time »,
« intervalCount »: « 10 »,
« intervalCountType »: « num »,
« intervalCountMultiplier »: 60000,
« cron »: « »,
« cronType »: « cronexpr »,
« time »: « sunriseStart »,
« timeType »: « pdsTime »,
« offset »: 0,
« offsetType »: « none »,
« offsetMultiplier »: 60000,
« timeEnd »: « sunsetEnd »,
« timeEndType »: « pdsTime »,
« timeEndOffset »: 0,
« timeEndOffsetType »: « none »,
« timeEndOffsetMultiplier »: 60000,
« timeDays »: « ",
« timeOnlyOddDays »: false,
« timeOnlyEvenDays »: false,
« timeOnlyOddWeeks »: false,
« timeOnlyEvenWeeks »: false,
« timeMonths »: " »,
« timedatestart »: « »,
« timedateend »: « »,
« property »: « »,
« propertyType »: « none »,
« propertyCompare »: « true »,
« propertyThreshold »: « »,
« propertyThresholdType »: « num »,
« timeAlt »: « »,
« timeAltType »: « entered »,
« timeAltDays »: « ",
« timeAltOnlyOddDays »: false,
« timeAltOnlyEvenDays »: false,
« timeAltOnlyOddWeeks »: false,
« timeAltOnlyEvenWeeks »: false,
« timeAltMonths »: " »,
« timeAltOffset »: 0,
« timeAltOffsetType »: « none »,
« timeAltOffsetMultiplier »: 60000,
« once »: true,
« onceDelay »: 0.1,
« recalcTime »: 2,
« x »: 220,
« y »: 280,
« wires »: [
[
« 56265aeb.99f034 »
]
]
},
{
« id »: « 6b1f97b4cc4c5e53 »,
« type »: « change »,
« z »: « dbd46647b51191ed »,
« name »: « sunset »,
« rules »: [
{
« t »: « set »,
« p »: « payload »,
« pt »: « msg »,
« to »: « payload.times.sunsetStart »,
« tot »: « msg »
},
{
« t »: « set »,
« p »: « topic »,
« pt »: « msg »,
« to »: « gladys/master/device/mqtt:soleil/feature/mqtt:sunset/state »,
« tot »: « str »
}
],
« action »: « »,
« property »: « »,
« from »: « »,
« to »: « »,
« reg »: false,
« x »: 710,
« y »: 660,
« wires »: [
[
« 8c99bc6da0a4d5b0 »,
« 3e97e9902da57988 »
]
]
},
{
« id »: « b10eedb2bb5656c1 »,
« type »: « change »,
« z »: « dbd46647b51191ed »,
« name »: « sunrise »,
« rules »: [
{
« t »: « set »,
« p »: « payload »,
« pt »: « msg »,
« to »: « payload.times.sunriseStart »,
« tot »: « msg »
},
{
« t »: « set »,
« p »: « topic »,
« pt »: « msg »,
« to »: « gladys/master/device/mqtt:soleil/feature/mqtt:sunrise/state »,
« tot »: « str »
}
],
« action »: « »,
« property »: « »,
« from »: « »,
« to »: « »,
« reg »: false,
« x »: 720,
« y »: 500,
« wires »: [
[
« ac45aa2966444fcf »,
« bb2297c4afea4845 »
]
]
},
{
« id »: « 3e97e9902da57988 »,
« type »: « debug »,
« z »: « dbd46647b51191ed »,
« name »: « debug 10 »,
« active »: false,
« tosidebar »: true,
« console »: false,
« tostatus »: true,
« complete »: « true »,
« targetType »: « full »,
« statusVal »: « payload »,
« statusType »: « auto »,
« x »: 920,
« y »: 720,
« wires »:
},
{
« id »: « e9dd4a4e8fcb034c »,
« type »: « debug »,
« z »: « dbd46647b51191ed »,
« name »: « debug 11 »,
« active »: false,
« tosidebar »: true,
« console »: false,
« tostatus »: true,
« complete »: « true »,
« targetType »: « full »,
« statusVal »: « payload »,
« statusType »: « auto »,
« x »: 1160,
« y »: 440,
« wires »:
},
{
« id »: « 870a1a0c309ea346 »,
« type »: « mqtt out »,
« z »: « dbd46647b51191ed »,
« name »: « »,
« topic »: « »,
« qos »: « »,
« retain »: « »,
« respTopic »: « »,
« contentType »: « »,
« userProps »: « »,
« correl »: « »,
« expiry »: « »,
« broker »: « 3c3eb52d.9fb296 »,
« x »: 1170,
« y »: 580,
« wires »:
},
{
« id »: « 8c99bc6da0a4d5b0 »,
« type »: « function »,
« z »: « dbd46647b51191ed »,
« name »: « Minuten seit Mitternacht »,
« func »: « // Eingabe: msg.payload = "2023-11-23T16:23:18.121Z"\n\n// Zeichenkette in Date-Objekt umwandeln\nvar dateObj = new Date(msg.payload.value);\n\n// Stunden und Minuten extrahieren\nvar hours = dateObj.getUTCHours();\nvar minutes = dateObj.getUTCMinutes();\n\n// Gesamtzahl der Minuten seit Mitternacht berechnen\nvar minutesSinceMidnight = hours * 60 + minutes;\n\nmsg.topic = hours;\nmsg.payload = minutesSinceMidnight;\n\n// Nachricht zurückgeben\nreturn msg; »,
« outputs »: 1,
« timeout »: « »,
« noerr »: 0,
« initialize »: « »,
« finalize »: « »,
« libs »: ,
« x »: 940,
« y »: 660,
« wires »: [
[
« 7134c8c9865f611d »,
« 5efa49d45f363336 »
]
]
},
{
« id »: « ac45aa2966444fcf »,
« type »: « function »,
« z »: « dbd46647b51191ed »,
« name »: « Minuten seit Mitternacht »,
« func »: « // Eingabe: msg.payload = "2023-11-23T16:23:18.121Z"\n\n// Zeichenkette in Date-Objekt umwandeln\nvar dateObj = new Date(msg.payload.value);\n\n// Stunden und Minuten extrahieren\nvar hours = dateObj.getUTCHours();\nvar minutes = dateObj.getUTCMinutes();\n\n// Gesamtzahl der Minuten seit Mitternacht berechnen\nvar minutesSinceMidnight = hours * 60 + minutes;\n\nmsg.payload = minutesSinceMidnight;\n\n// Nachricht zurückgeben\nreturn msg; »,
« outputs »: 1,
« timeout »: « »,
« noerr »: 0,
« initialize »: « »,
« finalize »: « »,
« libs »: ,
« x »: 940,
« y »: 500,
« wires »: [
[
« e9dd4a4e8fcb034c »,
« 9de494cb30ca99c2 »
]
]
},
{
« id »: « bb2297c4afea4845 »,
« type »: « debug »,
« z »: « dbd46647b51191ed »,
« name »: « debug 12 »,
« active »: false,
« tosidebar »: true,
« console »: false,
« tostatus »: true,
« complete »: « true »,
« targetType »: « full »,
« statusVal »: « payload »,
« statusType »: « auto »,
« x »: 920,
« y »: 440,
« wires »:
},
{
« id »: « 7134c8c9865f611d »,
« type »: « debug »,
« z »: « dbd46647b51191ed »,
« name »: « debug 13 »,
« active »: false,
« tosidebar »: true,
« console »: false,
« tostatus »: true,
« complete »: « true »,
« targetType »: « full »,
« statusVal »: « payload »,
« statusType »: « auto »,
« x »: 1160,
« y »: 720,
« wires »:
},
{
« id »: « 9de494cb30ca99c2 »,
« type »: « delay »,
« z »: « dbd46647b51191ed »,
« name »: « »,
« pauseType »: « delay »,
« timeout »: « 5 »,
« timeoutUnits »: « seconds »,
« rate »: « 1 »,
« nbRateUnits »: « 1 »,
« rateUnits »: « second »,
« randomFirst »: « 1 »,
« randomLast »: « 5 »,
« randomUnits »: « seconds »,
« drop »: false,
« allowrate »: false,
« outputs »: 1,
« x »: 1160,
« y »: 500,
« wires »: [
[
« 870a1a0c309ea346 »
]
]
},
{
« id »: « 5efa49d45f363336 »,
« type »: « delay »,
« z »: « dbd46647b51191ed »,
« name »: « »,
« pauseType »: « delay »,
« timeout »: « 5 »,
« timeoutUnits »: « seconds »,
« rate »: « 1 »,
« nbRateUnits »: « 1 »,
« rateUnits »: « second »,
« randomFirst »: « 1 »,
« randomLast »: « 5 »,
« randomUnits »: « seconds »,
« drop »: false,
« allowrate »: false,
« outputs »: 1,
« x »: 1160,
« y »: 660,
« wires »: [
[
« 870a1a0c309ea346 »
]
]
},
{
« id »: « 3c3eb52d.9fb296 »,
« type »: « mqtt-broker »,
« name »: « MQTT Broker »,
« broker »: « localhost »,
« port »: « 1883 »,
« clientid »: « »,
« autoConnect »: true,
« usetls »: false,
« compatmode »: false,
« protocolVersion »: « 4 »,
« keepalive »: « 60 »,
« cleansession »: true,
« birthTopic »: « »,
« birthQos »: « 0 »,
« birthPayload »: « »,
« birthMsg »: {},
« closeTopic »: « »,
« closeQos »: « 0 »,
« closePayload »: « »,
« closeMsg »: {},
« willTopic »: « »,
« willQos »: « 0 »,
« willPayload »: « »,
« willMsg »: {},
« userProps »: « »,
« sessionExpiry »: « »
},
{
« id »: « 2831ba70.55a636 »,
« type »: « position-config »,
« name »: « Maison »,
« isValide »: « true »,
« angleType »: « deg »,
« timeZoneOffset »: « 99 »,
« timeZoneDST »: « 0 »,
« stateTimeFormat »: « 3 »,
« stateDateFormat »: « 12 »,
« contextStore »: « »
}
]
oder durch eine Szene (in Erwartung einer Entwicklung dafür mit Sonnenaufgang, Sonnenuntergang, der Höhe und der Länge):
um die betroffenen Tage mit J -1 hier auszuwählen, damit es von Mo bis Fr funktioniert
wie viel Zeit vor Sonnenaufgang = 24h - die gewünschte Zeit hier für 1 Stunde vor Sonnenaufgang
Es bleibt nur noch zu aktivieren
Danke @cce66 für deine Antwort.
Ich bin mit Node Red noch nicht so vertraut! Ich werde es mir aber auf jeden Fall genauer ansehen, aber ich habe Schwierigkeiten, die Zeit dafür zu finden.
Darüber hatte ich auch schon nachgedacht… mir war aufgefallen, dass diese Lösung an zwei Sonntagen im Jahr nicht funktioniert (Zeitumstellung).
Das hat mich dazu gebracht, andere Konzepte der Dämmerung zu untersuchen!
Dieser Artikel ist quite interessant: Comprendre - Concepts fondamentaux - Lever et coucher d'un astre
Aber vielleicht ein bisschen zu technisch (zumindest für mich).
Tolle Tutorials und dazu noch lustig…
Man muss nur den Function-Node des „Flows“ anpassen, aber normalerweise passt sich der Code an die UTC an, also sollte es funktionieren, ansonsten zweimal im Jahr…
// Stunde und Minute extrahieren
var stunden = dateObj.getUTCHours();
var minuten = dateObj.getUTCMinutes();
Deshalb habe ich dieses Tutorial über Sun-Position gemacht, damit man z. B. die Rollläden steuern kann, um das Problem mit Sonnenauf- und -untergang zu umgehen. Es gibt die Höhenangabe, du kannst die Öffnung auslösen, sobald die Höhe 10 übersteigt, und sie schließen, wenn sie unter 10 fällt.
Hallo @cce66,
iodyme ist der Meister in NodeRed! Eine Referenz!
Manchmal auf YouTube, aber vor allem auf Twitch!
Danke fürs Teilen! Ich werde versuchen, mir während der Weihnachtsferien die Herausforderung zu stellen, mich gut einzuleben.
Mein Kommentar bezog sich eher auf die zweite Methode
Danke fürs Teilen! Ich werde versuchen, mich während der Weihnachtsferien an die Herausforderung zu wagen.
du wirst sehen, es ist nicht so kompliziert, besonders nachdem du die Tutorials von Neodyme (er ist Professor an der Universität Lüttich) angesehen hast, und node-red ist super, was die Interaktion mit allem angeht, wenn du auf die Dokumentation gehst oder nach Flows im Netz suchst (man findet eine ganze Menge vorgefertigte, die helfen, sich vertraut zu machen). Dort hilft die Interaktion mit node-red und gladys momentan, was in gladys noch nicht implementiert ist oder nicht implementiert werden wird, wenn der Bedarf zu spezifisch ist.
Ich habe ein Mini-Tutorial hinzugefügt, das dir helfen sollte ![]()
Über dieses Mini-Tutorial können Sie die Werte der Suncalc-API in das Dashboard einfügen, indem Sie einen HTTPS-Aufruf an die API https://api.sunrise-sunset.org/ tätigen, die ein JSON in diesem Format zurückgibt [image] Dazu müssen Sie den Flow der folgenden Nachricht in Node-RED importieren (er überschreitet 32.000 Zeichen) Sie sollten normalerweise diesen Flow haben [image] Jeder „Funktions“-Knoten sendet den gewünschten Wert im Payload um 00:00 Uhr, aber auch x Minuten nach Mitternacht…
Ich habe eine ganz einfache Lösung, mit der ich Auslöser in Szenen im Voraus der Sonnenauf- und -untergänge einstellen kann.
Ich habe die Funktion „Warten“ mit Werten in vollen Stunden oder direkt in Minuten getestet, über Zeiträume von etwa 20:00 Uhr hinaus, und das ermöglicht es, das Auslösen vor dem Sonnenauf- oder -untergang zu steuern.
Die Genauigkeit hängt jedoch vom Wert der Änderung der Uhrzeit der Sonnenauf- und -untergänge des Vortags ab
Falls das passt, gibt das Stimmen frei.
Das ist es, was ich weiter oben im Beitrag erwähnt hatte (mit der Einschränkung, dass die Sonne wie folgt auf- und untergehen muss: HeureLeverSoleil + Attendre24h - TempsActionAvantLeverSoleil)
Für diejenigen, die diesen Beitrag lesen: Ein „nachheriger“ Zeitrahmen ist bereits möglich, man muss nur eine „warten“-Aktion in die Szene einfügen. Ein „vorheriger“ Zeitrahmen ist im Moment allerdings nicht möglich
Die Anforderung eines „Vorher“-Triggers scheint mir immer noch relevant und könnte auch für andere Ereignisse (Geburtstage usw.) nützlich sein ![]()
Huch, entschuldige, das habe ich nicht bemerkt ![]()
Das ist mir schon mal passiert
! ![]()





