Probleme bei schnell aufeinander folgenden XML-RPC Funktionsaufrufen

Hallo,

ich habe ein Problem wenn mehrere Funktionsaufrufe hintereinander ein Device ansprechen. Ab und an passiert es, dass ich, nachdem ich die Temperatur neu gesetzt habe, das Thermostat noch den alten Wert anzeigt. Aber beim Auslesen bekomme ich den den neuen Wert angezeigt, also offensichtlich den Wert aus dem Cache. Das bleibt auch so, es findet keine Aktuallisierung statt. Gibt es eine Möglichkeit eine Synchronisation des Caches zu erzwingen?

Viele Grüße

Elmar

Hallo @fishermans,

die Aktualisierung des Caches erfolgt automatisch, wenn das Gerät den entsprechenden Wert sendet - dafür muss es dies leider auch tun… Ist die Queue des Gerätes denn leer, wenn das passiert?

homegear -r
fs 0
ps <Peer ID>
queues info

Viele Grüße

Sathya

Hallo @sathya,

Vom Ablauf her ist es bei mir so:
App - XML-RPC Client -> Homegear -> Device (MAX!)
Wenn also HomeGear -> Device nicht klappt, wird der Wert des Caches aktuallisiert, wenn das Thermostat sich bei HomeGear meldet und den im Thermostat eingestellten Wert übermittelt. Passiert das automatisch in regelmässigen Abständen?
Wenn ich die Funktion getValue(Integer peerId, Integer channel, String parameterName, Boolean requestFromDevice) mit requestFromDevice = True aufrufe kann ich das dann erzwingen? Mit dem Nachteil, dass ich dann wieder “Wake on Radio” bei allen Thermostaten auslöse?
Da hätte ich noch eine kurze Frage, die voreingestellten Werte für getValue() - requestFromDevice und setValue() - wait sind die True oder False?
Seit ich in der App die setValue() Funktion in eigene Threads ausgelagert habe und mit wait = false sende, habe ich keine Probleme mehr gehabt, so dass ich mir die Queues nicht mehr angeschaut habe, werde es aber bei Problemen überprüfen.

Viele Grüße

Elmar

Möglicherweise. Das siehst du, wenn durch den Aufruf ein Paket gesendet wird (das wird geloggt).

Da hätte ich noch eine kurze Frage, die voreingestellten Werte für getValue() - requestFromDevice und setValue() - wait sind die True oder False?

requestFromDevice => false
wait => true

Viele Grüße

Sathya