NEWS
Ist meine ODER Logik korrekt?
-
@rtwl
Wenn immer beide getriggert werden, wird natürlich auch zweimal die Logik durchlaufen, aber ob das den Kohl fett macht... -
@ofbeqnpolkkl6mby5e13 sagte in Ist meine ODER Logik korrekt?:
aber ob das den Kohl fett macht...
nö vermutlich nicht.
Eine frage aber noch an dich: Hast du unabsichtlich dein Passwort als Username vergeben oder ist deine Katze über deine Tastatur gelaufen?
-
@rtwl
Das wurde ich schon mal gefragt...die einfache Antwort ist: Ich hatte an dem Tag einfach keine bessere Idee als einen Passwortgenerator auch für den Username zu verwenden... -
@rtwl sagte: ich gehe mal davon aus, dass beide gleichzeitig aktualisiert werden
Exakt gleichzeitig gibt es nicht.
@rtwl sagte in Ist meine ODER Logik korrekt?:
könnte ich ja den zweiten Datenpunkt auch in den Trigger mit auf nehmen, oder?
Du solltest prüfen, welcher DP im Zyklus zuletzt aktualisiert wird und diesen DP als Trigger verwenden.
@rtwl sagte in Ist meine ODER Logik korrekt?:
Bei einem Code höher als 2 wird nicht in den Sonnenschutz gefahren.
Dann genügt für den Wert beider Datenpunkte eine Prüfung auf <= 2.
-
Wenn man das nicht bestimmen kann, wer wann wie wo triggert, würde ich halt beide Werte in einem Objekt in einer Variable sammeln und diese beiden Eigenschaften mit ODER verknüpfen. So funktioniert es halt mit NR.
-
@mickym sagte: Wenn man das nicht bestimmen kann, wer wann wie wo triggert
Man kann.
-
@paul53 ja und beide Werte in eine Variable mit unterschiedlichen Objekteigenschaften schreiben und bei jedem Trigger egal von welchem Datenpunkt auswerten und Ergebnis ausspucken. Es gibt ja im Blockly glaub auch so ein Schleifenkonstrukt, das über die Eigenschaften eines Objektes iterieren kann
-
@mickym sagte: Schleifenkonstrukt, das über die Eigenschaften eines Objektes iterieren kann
Zu kompliziert. Man kann auch auf Änderung beider Datenpunkte triggern und durch eine kurze Verzögerung vermeiden, dass der Zieldatenpunkt zwischen 0 und 1 hin und her springt, wenn sich beide Datenpunkte "gleichzeitig" ändern.
-
@paul53 jo so gehts auch. Das Entprellen hast Du halt jetzt noch hinzugefügt, macht aber natürlich Sinn. Wie immer King of Blockly. und natürlich auch JS und generell
-
@paul53 sagte in Ist meine ODER Logik korrekt?:
wollte gerade deinen Vorschlag nachbauen, jedoch hab ich hier wohl keine Möglichkeit bei "falls wahr/falsch" eine Debug output zu integrieren. Damit ich Änderungen im Log sehen kann.
Was mich aber zu meiner zweiten Frage bringt. Aktuell erhalte ich alle 30 min einen Log eintrag vom debug output, obwohl sich die Werte nicht geändert haben. Gibt es da eine Möglichkeit der Prüfung, dass der Debug output nur dann passiert, wenn sich der Datenpunkt auch tatsächlich geändert hat?
-
ah...
ich hatte den Trigger auf "wurde aktualisiert" anstelle von "wurde geändert".So sollte es jetzt passen:
-
alle guten Dinge sind drei...
Wenn meine Logik korrekt ist, sollten jetzt dennoch bei jeder Änderung zwei gleiche Log-Einträge kommen, da immer zuerst der "next_hour" Datenpunkt geändert wird und dann eine Stunde später der "current". Beide male liegt dann ja eine "wurde geändert" Auslösung vor wodurch dann das Skript erneut durchläuft.
Daher trotzdem die Frage, ob es eine einfache Möglichkeit gibt den debug output block nur bei einer tatsächlichen Änderung auszuführen?
-
@rtwl sagte: den debug output block nur bei einer tatsächlichen Änderung auszuführen?
-
@paul53
Vielen Dank!Bedeutet das, dass die Variable
lastDebug
auch über mehrere Stunden bis zum nächsten Triggern gespeichert bleibt und dadurch diese Prüfung zum Erfolg führt? -
@rtwl sagte: Bedeutet das, dass die Variable lastDebug auch über mehrere Stunden bis zum nächsten Triggern gespeichert bleibt und dadurch diese Prüfung zum Erfolg führt?
Ja, sie übersteht nur keinen Neustart des Skripts.
Wenn man allerdings die Variable sonnenstatus mit dem Wert des Datenpunktes vergleicht, wird auch ein Skriptstart überstanden:
-
@paul53 sagte: Wenn man allerdings die Variable sonnenstatus mit dem Wert des Datenpunktes vergleicht, wird auch ein Skriptstart überstanden
Guter Input! Hab es so umgesetzt. Danke für deine tolle Hilfe und Erklärungen!