I guess what it sounds like is that you have a use case that the existing plugins don't cover. I'd like to get the specifics on the use case(s), as I certainly want to get more developers working with SatoriHub.
For now, I have 3 programs written in C# that talks with eg :
The first one is for the CC128. It's a power metter with a serial interface. A few months ago, I tried to make a plugin in python for it, but didn't manage to get the info from the serial port. It was straightforward with C#. Now, the C# program has evolved and generate stats, and also ready made URL to get graphs from google charts.
The second one is a pinger utility. Initially, I wrote a plugin with python, but after several months of use I rewrite it with C# because there was some issues with the python version that I wasn't able to solve. The goal of this plugin is to receive events when a host become alive or dead on my lan. I use this to know :
1 - When my TV is switched On or Off (it has a built in network interface). When it's switched on Eg send a WOL packet to wake up the htpc.
2 - When me or my wife is at home or not (Meaning eg can switch On or Off the heaters). If the TV is ON : someone is in the house. If my iPhone is connected to my wifi hotspot, it will start to respond to ping, meanning I am at home.
The third one is more specific. It connects to the web interface of my home security system, to know if it's enabled or not, but also to know if some doors or windows are open.
Finally, I wanted to get a secured remote access to the system. The eg webserver isn't secured at all, so I set up Tomcat with, strong auth, ssl, ... and have some servlets that access eg on the local computer.
Eg is the brain of all that.
Inside eg, I am using ready made plugins :
CM11A for X10
Timers
Scheduler
Webserver
MCE
USBUIRT
I also have xPl installed to get events from bluetooth devices.
Reguarding, your remarks on the difficulty to devellop an interface which would fit evey specific needs, I don't agree with you. Of course, we can dream of universal compatibility and think of something like CORBA IIOP JSON, ... But I don't think that this level of complexity is required.
I agree with you concerning a simple IP protocol. Let me explain what I have in mind :
SatoriHub should be able to receive from the network :
1 - python expressions : simple text, that satori hub interprets when received. something like "eg.globals.myVar=2" or "eg.plugin.X10.Send('A1','ON')", and perhaps returning the result to the caller
2 - Queries : again, python expression which are evaluated when received and the result is returned. might be the same as 1.
3 - events : the goal is obvious : firing an event from an external app, but it might also be the same as 1, if we send "eg.TriggerEvent('blablabla')"
SatoriHub should also be able to send requests to those external apps. Obviously, SatoriHub won't know anything from this external app. So the protocol should really be basic. something like just sending text and eventually receiving an ACK.
It's up to the coder of the external app to (eventually) send a response.
This means that we need a class in C# for exemple, that implement the transport, the listenner, and the sender.
It seems obvious that UDP would be great for that.
With something like this, I can't see anything that couldn't be done with an external app to extend satorihub functionnalities.
Regards,