Wenn die API sich hier so doof anstellt, wäre es dann vielleicht sinnvoll/möglich, wenn du bei einer einzelnen Änderung immer ein „großes Kommando“ sendest, also auch die Werte, die sich eigentlich gar nicht verändert haben.
Das hatte ich original, d.h., die Heizungen werden nur lokal verstellt und das Drücken auf den Lüfter schickt dann ein grosses Kommando (was auch noch immer macht). Aber dann habe ich festgestellt, dass die API generell auch 'nur' das Schalten der Heizungen erlaubt - aber... es ist eben doch nicht sehr stabil. Ich werde wahrscheinlich das einzelne Schalten der Heizungen deaktivieren (ist nur ein internes Flag im Kommando). Für die allermeisten Anwendungen der Nutzer (d.h. stelle erst einmal alles ein und dann auch noch die Heizung an oder aber das Auswählen eines Favoriten) ist das völlig ausreichend.
Weiterhin habe ich deine Ausführungen so verstanden: das Navigieren in der App löst diverse Statusabfragen gegen die API aus, etwa wenn man den Tab wechselt. Wurde bspw. ein Kommando in Tab 1 gesendet, zeigt die App den gesendeten Wert. Wechselt man dann in Tab 2 und wieder zurück auf Tab 1, wird der alte Wert angezeigt während das Auto das vorherige Kommando noch verarbeitet und der aktualisierte Wert über die API noch nicht zurück gegeben wird. Bekommst du denn von der API eine Bestätigung darüber ob ein vorher gesendetes Kommando erfolgreich ausgeführt wurde oder nicht? Wenn ja, dann könntest du den gesendeten Wert ggf. erstmal optimistisch als neuen Wert annehmen, aber solange er noch nicht bestätigt wurde, irgendwie kennzeichnen … durch blinken, kursive Schrift oder eine andere Farbe? Dann mit dem response der API die Darstellung wieder zurück setzen auf Standard … und im Fehlerfall entweder auf den (zuvor gemerkten) ursprünglichen Wert oder erneut durch eine Status-Abfrage holen. Dann hätte der User ein optisches Feedback und wüßte, wenn ein angezeigter Wert aktuell invalid ist, weil die Bestätigung durch den Server noch nicht vorliegt.Wird so im Detail sicherlich nicht funktionieren, da ich zu weit weg bin, aber vielleicht konnte ich dir damit ein paar Anregungen geben.
Die letzte Änderung macht das im Prinzip, d.h. ich schicke das Kommando los und ändere den lokalen Wert aufgrund der positiven Antwort. Nach einer Auszeit (das Moratorium) werde ich dann wieder die Werte des Updates vom Auto übernehmen (letztlich muss ich denen vertrauen, dass z.B. das Auto doch nicht verschlossen wurde). Dummerweise werden die Kommandos immer positiv beantwortet, also mehr eine positive 'syntaktische' Korrektheit. Aber es gibt keine Antwort die besagt 'ich habe das Kommando positiv ausgeführt' - das ist eben das Checken der Statuswerte, um zu sehen ob der bewusste Wert denn auch so ist wie er sein sollte. Aber für eine gewisse Zeit werden diese Statuswerte noch nicht das sein, was sie denn sein sollten - daher das Moratorium.
Ich hoffe, dass das Verhalten ein wenig konsequenter damit wird. Braucht eben testen, nicht nur bei mir.
Vielen Dank für das Feedback und die Gedanken!!