NEWS
1 DP von mehreren wird nicht aktualisiert [gelöst]
-
Hallo zusammen,
bei mir läuft das folgende Script:
Alles läuft soweit, wie ich mir das vorstelle, nur der Wert "...makerspace_anwesend" wird nicht aktualisiert. (alle anderen Werte / Objekte werden erwartungsgemäß aktualisiert)
Hat jemand einen Hinweis für mich, warum das nicht funktioniert?
Danke & VG
-
@devdracon Schau mal auf den Datentyp von diesem Datenpunkt, vielleicht falscher Typ?
-
@ahnungsbefreit hab ich nochmal geprüft; ist korrekt: Boolean
-
@devdracon
"Sonst-Falls" wird nur ausgeführt, wenn "handy_christian_arbeitszimmer_entfernung" größer oder gleich 2 ist.EDIT:
Mach da 2 separate Blöcke draus.
Falls Entfernung < 2 ==> wahr - sonst ==> falschWas mir noch aufgefallen ist:
Ist die Entfernung grundsätzlich ein string? Oder vielleicht doch eher eine Zahl?
Außerdem würde ich da nicht den DP abfragen, sondern die bereits vorhandene und gesetzte Variable verwenden. Spart Ressourcen. -
@codierknecht Danke. Ich habe den Bedingung, wann "sonst-falls" ausgeführt falsch interpretiert.
Entfernung ist eine Zahl.
-
@codierknecht said in 1 DP von mehreren wird nicht aktualisiert:
Ist die Entfernung grundsätzlich ein string? Oder vielleicht doch eher eine Zahl?
@devdracon Genau den Gedanken hatte ich auch eben. Die Abfrage auf "kleiner" funktioniert nur wie gedacht, wenn das eine Zahl ist
-
@devdracon sagte: warum das nicht funktioniert?
Wert
kann nur bei Einzel-Trigger verwendet werden.- Man kann keinen Datenpunkt einlesen unmittelbar nachdem er geschrieben wurde (asynchrone Abarbeitung von "aktualisiere")
Besser mit zwei getrennten Triggern:
-
so funktioniert das jetzt, wie es soll:
das nachfolgende Blockly ist falsch, nachfolgende Posts beachten!
Danke an alle die sich beteiligt haben!
-
@devdracon sagte: so funktioniert das jetzt, wie es soll
Nein, die beiden Variablen enthalten stets den identischen Wert!
Außerdem wird ein Objekt mit einem String verglichen. -
@paul53 sagte in 1 DP von mehreren wird nicht aktualisiert:
Wert kann nur bei Einzel-Trigger verwendet werden.
Sicher?
Die einzelnen Objekte werden doch nur für das Abonnieren des Events benötigt.
Bei Auslösung istobj
vorhanden - und das ist das jeweils auslösende Objekt, für das auch der Wert ermittelt werden kann.on({id: [].concat(['0_userdata.0.xxx']).concat(['0_userdata.0.Anwesenheit.yyy']), change: "ne"}, async function (obj) { });
Funktioniert bei mir jedenfalls bisher einwandfrei
-
@codierknecht sagte: Sicher?
Ja, zumindest dann, wenn der Wert des Trigger-Datenpunktes zu weiteren Berechnungen verwendet wird. Man kann nicht unterscheiden, von welchem Datenpunkt
Wert
kommt. -
@paul53 kannst du das näher erläutern? ich sehe den fehler nicht
-
@devdracon sagte: kannst du das näher erläutern?
Habe ich bereits:
@paul53 sagte in 1 DP von mehreren wird nicht aktualisiert [gelöst]:
die beiden Variablen enthalten stets den identischen Wert!
Es wird nicht unterschieden, von welchem Datenpunkt
Wert
stammt. Oder anders: Die VariableWert
wird mit identischem Wert auf zwei Variablen aufgeteilt. -
@paul53
Ich habe da mal was zusammengeklöppelt.
Je nachdem welches Objekt verändert wird, erhalte ich schon den korrekten Wert.
Was nicht geht, ist das Ermitteln des Gerätenamens usw. -
@paul53 verstehe. ich habe mir den inhalt der Variablen in ein debug schreiben lassen - du hast recht. wie würde ich das korrekt ändern müssen?
s.u. ,denke ich. Post war nahezu zeitgleich
-
@codierknecht sagte: Je nachdem welches Objekt verändert wird, erhalte ich schon den korrekten Wert.
Ja, aber man weiß nicht, zu wem er gehört, es sein denn, man wertet zusätzlich die ID aus, etwa so:
-
@devdracon sagte: wie würde ich das korrekt ändern müssen?
Wie hier gezeigt.
-
@devdracon
Mach das was @paul53 vorgeschlagen hat: Verwende für jedes Deiner 2 Objekte einen separaten Trigger.
Du triggerst auf 2 Objekte und musst die in der Ereignisbehandlung wieder unterscheiden.
Das wird extrem unübersichtlich! -
@paul53 sagte in 1 DP von mehreren wird nicht aktualisiert [gelöst]:
Ja, aber man weiß nicht, zu wem er gehört ...
Das ist natürlich korrekt.
Dann habe ich Dich lediglich falsch verstanden.es sein denn, man wertet zusätzlich die ID aus, etwa so
Und das ist wieder unnötiger Aufwand.
-
@codierknecht sagte: Und das ist wieder unnötiger Aufwand.
Deshalb besser zwei getrennte Trigger.