That is why you do not distribute your .h, .c or whatever files, but compile a DLL from it.
The final question will be: What is the target audience for OH. Should it be a system for nerds and programmers, or do we want to allow a broader range of people using it.
I will not go and enter a discussion about the design pattern.
I’m also not expecting any justification about why are things as they currently are.
All I say is:
If you create a “thing” which has rules, input and output parameters, and you can just use ONE output parameter of ONE thing as an input parameter of another thing, just by connecting them, you are on a good way to get the thing growing.
As long as a switch is a switch for you, and all you want to do is switch lights on and off, maybe change the color, you are good with items and sitemaps. As soon as you are going to implement conditions, you are lost if you are not a programmer.
The commercial providers of this type of house automation - yes I know, they are not as flexible as we are - understand that this must become a drap & drop solution.
I can give dozens of examples of “things” you could manage in combination and related to other things.
Example:
Let me call it a “PV Info Pane”:
For monitoring your PV, you would have two input parameters: “PV Current Output”, “Total Power Consumption”.
You could also have an output parameter which shows the difference between the two where negative values could mean that you are buying power, positive values could mean you are selling power.
Within your “PV Info Pane”, you could define to display both in two different rows with individual icons in front.
You could also have a chart in that info pane, showing the values in relation to each other.
So where to get these input parameters from? Well, there is another “thing” which is your inverter and that one could give you these values. All you need to do is draw a line from the output of one thing to the input of another thing. So basically “Drag & Drop” the output parameter from one thing to the input of another thing.
Of course there are also things which do mathematic operations. There is one which is called “Add”.
It has two input parameters of the type “number” and one output parameter.
And so on.
The “Experimental Rule Engine” is a nice idea, unfortunately unusable (unfindable).
My PaperUI (currently) shows: {{title}} > {{subtitle}}
Most probably this can be solved easily by formatting the SD card, reinstall everything, hopefully remember what you have added in paper UI, copy the files you have backed up (hopefully) back to the (hopefully) right place.
Please do NOT misunderstand my notes here. I do like the idea. I do appreciate the hard work of everybody invloved in this project.
Unfortunately most of them are coming from the programming side of the world. There should be some judging the usability of concepts.
Maybe I can provide some ideas for OH3.