Setzen von Parametern während "blocking.pm" Werte abholt

Begonnen von tupol, 18 Januar 2014, 11:04:51

Vorheriges Thema - Nächstes Thema

tupol

Hallo,

bei meiner Luxtronik2 (Wärmepumpensteuerung) werden übers LAN alle 60 s per "Blocking.pm" die Werte ausgelesen. Das Auslesen dauert etwa 0,4 s. In seltenen Fällen auch länger.

Ich möchte jetzt auch Sollwerte in die Steuerung schreiben, möchte allerdings warten, bis ein eventueller Ausleseprozess beendet ist. Wie kann ich das programmieren, ohne dabei FHEM anzuhalten? Hat jemand eine Idee oder es vielleicht sogar schon umgesetzt?

Gruß

Tupol

rudolfkoenig

Wenn ich das Problem richtig verstehe, dann wartet man bis der Blocking Aufruf fertig ist (man wird ja banechrichtigt), und schickt dann die Sollwerte los. Solange was laeuft, sammelt man alles in einem Puffer.

Wenn Blocking.pm in Endlosschleife laeuft, dann muss man diesen erst beenden, da es z.Zt. keinen Weg gibt, an einmal gestarteten Blocking Prozess Daten zu schicken. Die "richtige" Loesung waere einen weiteren Server separat zu starten, der sowohl auf (von FHEM) eingehende Nachrichten per TCP/IP hoert, als auch das Geraet ueberwacht. Das passende FHEM-Framework anzubieten ist auf meine TODO-Liste, etwas weiter unten :)

Wenn mit "LAN" eine HTTP Verbindung gemeint ist, ist  die Verbindung zum Geraete auch ohne Blocking.pm zu loesen: das neue HttpUtils_NonblockingGet sollte fhem nicht blockieren.