thank you for your insights. I have made an issue for your request on our github: https://github.com/erminas/node-red-con ... s/issues/9
so others users with the same problem can follow along.
To answer some of your questions:
>There seems to be an inter-process lock in place, the Node-red code can manipulate the output pin as long as the Logical code is not running.
You are correct, you can read a bit about this from our (RevPi Node) perspective here: https://github.com/erminas/noderedrevpi ... er#remarks
and here https://revpimodio.org/en/doc2/
= Write outputs without buffer to process image (WARNING) Only activate this option in exceptional cases with True!
RevPiModIO uses an internal buffer for IOs, which significantly increases the speed and ensures that the values from the Python program are guaranteed to be in the process image as well.
If multiple instances or programs are using the process image, each instance would constantly set its outputs and create a messy state (flickering outputs / false input values).
If this option is activated, the outputs are written directly to the process image when a new value is assigned. If many outputs are changed per cycle, this could affect performance.
Note: It must be expected that an output that the Python program sets to True
can already be False
in the next cycle if it has been changed by another program in the process image.
I can't talk for Logi.Cals, but it seems it uses a tight coupling with an internal buffer to the proccess image. As described in our readme, we don't use an internal buffer so other programs can still overwrite the outputs in pictory. This comes with its own problems.
> However, the NodeRed publishes a string 'True'/'False' and not a binary value. But that is manageable for now.
If you add some further detail which nodes for you are using we can discuss some possible changes to the RevPi Nodes in that regard.
There is a similar thread here with suggestions including using mqtt from logi.cals: viewtopic.php?t=1906#p7248
. Its in german, but maybe you read it with a translator.