NEWS
Bestätigt/Acknowledged-Flag Bedeutung - ein Mysterium ;-)
-
@loredo sagte: Ist-Zustand zu jeder möglichen Zeit richtig anzuzeigen, nicht den Soll-Zustand.
Dann muss aber auch der Wert mit dem Ist-Wert überschrieben werden - nicht nur das Ack-Flag. Der Fehlversuch wird dann natürlich in der History mit aufgezeichnet.
-
@paul53 sagte in Bestätigt/Acknowledged-Flag Bedeutung - ein Mysterium :
@loredo sagte: Ist-Zustand zu jeder möglichen Zeit richtig anzuzeigen, nicht den Soll-Zustand.
Dann muss aber auch der Wert mit dem Ist-Wert überschrieben werden - nicht nur das Ack-Flag.
Hatte ich ja oben auch so geschrieben, dass ich
oldState
mitack=true
ergänzt von z.B.q=0x40
zurückschreibe
oldState
muss sich halt der laufende Adapter selbst organisieren, weshalb es auch unschön ist, wenn Änderungen an Objekten passieren, während der Adapter nicht läuft. der JS-Controller wäre besser dafür geeignet,oldState
(also nur die States mitack=true
) für alle Adapter bereitzuhalten, aber sowas gibts wohl bisher nicht.By the way, da fällt mir gerade wieder der Bug ein, der mir bei der Entwicklung begegnet ist:
getForeignStateAsync()
liefert nurack: false
Dadurch muss man beim zurückschreiben (je nachdem, wie lange der Adapter schon läuft) trotzdem nochmal explizit
ack=true
setzen. Das aber nur am Rande erwähnt, weil es auch was mit der Nutzung derack
Werte zu tun hat. Das macht es leider derzeit auch schwierig denack
-Wert außerhalb von Events abzuprüfen, weil der Wert eben immerfalse
ist und nietrue
</OffTopic> -
@wildbill
das stimmt und ich finde es bedauerlich!
Ich hätte gerne, dass ich mit setState() steuern könnte, ob ein Wert im History Adapter an die jeweilige DB übertragen wird. -
@wildbill sagte in Bestätigt/Acknowledged-Flag Bedeutung - ein Mysterium :
z.B. beim Harmony-Adapter zum Starten von Activities
da ist es ja tatsächlich so dass ein "working" über einen anderen Wert als der initiale oder der Zielwert ist.
Ich finde es richtig wenn das auch geloggt wird, da damit die korrekte Funktion ind Gänze abgebildet wird. -
@marty56 sagte in Bestätigt/Acknowledged-Flag Bedeutung - ein Mysterium :
Ich hätte gerne, dass ich mit setState() steuern könnte, ob ein Wert im History Adapter an die jeweilige DB übertragen wird.
Das wäre Bilanzfälschung!
Entweder ich logge jede Veränderung um auch später jeden Eingriff sehen zu können, oder ich lasse es.
"Beweise manipulieren" zu können, indem man aktiv bei bestimmten Aktionen die Spuren verwischt, halte ich für keine gute Idee!Ist jetzt absichtlich überspitzt formuliert!
-
@marty56 sagte in Bestätigt/Acknowledged-Flag Bedeutung - ein Mysterium :
Ich hätte gerne, dass ich mit setState() steuern könnte, ob ein Wert im History Adapter an die jeweilige DB übertragen wird.
Wie @Homoran schon schrieb: Das wäre „geschummelt“
Aber Du kannst ja beim Abfragen der DB die Datensätze ohneack
wegfiltern. -
@homoran Ok. Netter Nonsense Witz, ha ha!
-
@marty56 dann erstelle dir einen Schattenstate und sortiere per Skript oder irgendeiner Logik aus und logge den dann. Easy
-
@apollon77 Ja, dass mit dem "Schattenstate" habe ich natürlich gemacht. Dennoch nicht besonders elegant
-
@marty56 da diese Anforderung meiner Meinung nach ein Edge Case ist finde ich die Lösung sehr elegant ;-)) (ich weiß das du das so nicht hören wolltest )
-
Der Beitrag hat mir sehr geholfen, vielen Dank!
Wie ist das aber mit VIS Buttons?
Offenbar nutzen die immer "Steuere ID.."Kann ich mit einem Button einen Datenpunkt setzen?
Natürlich könnte ich mit einem Script laufend den Datenpunkt abfragen und ihn beim Ändern des Wertes aktualisieren.
Aber das muß doch auch einfach aus dem Widget heraus gehen?Viele Grüße
Uwe -
@ukek sagte in Bestätigt/Acknowledged-Flag Bedeutung - ein Mysterium :
Offenbar nutzen die immer "Steuere ID.."
Kann ich mit einem Button einen Datenpunkt setzen?so herum ist das kein Problem.
nur mit ACK (aktualisiere) kann man keinen Adapter zum steuern bewegen.
-
@ukek was genau willst du „setzen“? Verstehe die Frage nicht.
-
@apollon77 Ich setze einen Datenpunkt (Klima-Auto), dass mein Klimagerät automatisch oder manuell laufen soll.
Automatisch bedeutet: je nach Solarüberschuß geht es an/aus und steuert sich selbständig zwischen 18-23 Grad.
Der Datenpunkt (Klima-Auto) wird also erst abgefragt, wenn Solarüberschuß besteht.Ich könnte den Datenpunkt "rot" lassen und erst bei der Aktion "Solarüberschuß" aktualisieren?
Oder soll/kann ich den gleich als "aktualisiere ID.." vom Button setzen?LG Uwe
-
@ukek sagte in Bestätigt/Acknowledged-Flag Bedeutung - ein Mysterium :
Kann ich mit einem Button einen Datenpunkt setzen?
Klar, der wird ja dann mit ack: false geschrieben. Und im Idealfall schreibst Du dann noch ein eigenes Script im JavaScript-Adapter, was auf unbestätigte Änderungen reagiert, dann das tut was Du möchtest und danach den neuen Wert bestätigt / den Datenpunkt mit ack: true neu schreibt. Genau so, wie es auch Adapter machen.
-
@haus-automatisierung sagte in Bestätigt/Acknowledged-Flag Bedeutung - ein Mysterium :
Und im Idealfall schreibst Du dann noch ein eigenes Script im JavaScript-Adapter
Ja genau das war meine Frage.
Ich lasse VIS den Datenpunkt "rot" setzen und frage ihn danach mit einem Script ab und "aktualisiere ID..".Alles klar, danke!
Viele Grüße
Uwe -
@ukek sagte in Bestätigt/Acknowledged-Flag Bedeutung - ein Mysterium :
Ich lasse VIS den Datenpunkt "rot" setzen
das ist bei eigenen Datenpunkten rein kosmetischer Natur
-
@ukek Und das ist ein Button? Ist da nicht ein Schalter sinnvoller ... eingeschaltet === Automatik, ausgeschaltet===Manuell
Wen ein Button wäre maximal ein "umschalttrigger" und dann hättest Du einen anderen State der sagt was gerade aktuell ist Automatik oder Manuell.
Oder ist es ein "switch"? Und ja dann solltest Du den wert mit ack= true setzen wen die Umschaltung erfolgt ist (bzw dein skript es registriert hat)
-
@apollon77 das ist ein Widget, dass einen Boolschen Wert setzt.
das gilt IMHO für alle solchen Widgets, dass sie grundsätzlich den Wert mit ack=false setzen, was ja auch sinnvoll ist, wenn man Adapterdatenpunkte setzen will.
nur bei eigenen DP passt es nicht so recht.
-
@homoran doch das passt genau. Und genau da sind wir bei dem was ich oben geschrieben habe. Wenn man es bei eigenen States nicht ignorieren kann/will das es halt unbestätigt bleibt dann kann man das Skript was den Wert nutzt dazu nutzen das man es mir ack=true quasi bestätigt. Oder das „rote“ einfach ignoriert