Whenever I want to integrate a new feature to my python sequencer, I first start to read this page:
indilib.org/develop/developer-manual/101...ties.html#h2-general
Here, I see that there is the 'CCD_TEMPERATURE' property, which is of type Number, and is not readonly. It contains only one member which is "CCD_TEMPERATURE_VALUE". Of course, I guess you know that.
The next step is usually just to query/send the new value. To do so , I highly recommend you to use the class that you can find here:
github.com/GuLinux/indi-lite-tools/blob/...i_sequence/device.py
Then when you have instanciated your device, you can do something like this:
self.setNumber('CCD_TEMPERATURE', {'CCD_TEMPERATURE_VALUE': float(-30)}, sync=True, timeout=60)
In the device class, you can see that, setting the sync to true makes the client to wait for the server to update state to PyIndi.IPS_OK, PyIndi.IPS_IDLE. It has to be tested, but I guess that setting temperature may (or may not) return whenever the target temperature has been reached.
Good luck with coding you client.
Additional question, in your code, you wrote 'PyQtIndi.IndiClient' is it normal ? do you use a PyQt indiclient ?