I'm having some fun and hames implementing a Project Haystack client in Python, as part of the pyhaystack project.
So far so good when talking to the VRT WideSky implementation which uses OAuth 2.0-based authentication, but I've been having fun getting the Niagara AX client working.
A big part is I don't actually have a Niagara AX instance running here, so I've got nothing to test against locally, and I have no documentation for it other than what's in the main Project Haystack docs, so nothing on how to authenticate. Likewise with Skyspark, that work has barely begun.
The aim of pyhaystack is to have a single Python module that can talk to all three, and possibly other, instances of Project Haystack. We'd like to get to the point that all someone needs to do is run pip install pyhaystack and hey presto, they can talk to almost any server by calling the appropriate class.
I suspect other client authors may find such a test instance or documentation useful.
After all, what's the point in having a server without the client?
Does anyone know of either test instances, or publicly visible documentation for either of the latter two? Are there other implementations that are worth looking at supporting?
Regards, Stuart Longland
Stuart LonglandTue 19 Apr 2016
Seems we might have a possible workaround, in the form of Betamax.
Perhaps we could pool together sanitised captures of the requests and responses? I could see this as being useful for those wanting to write server implementations too.
Brian FrankTue 19 Apr 2016
Hi Stuart,
If you look at the Java Haystack Toolkit (see Downloads tab), you can actually it to run a simple test server on your own machine. You can use TestDatabase as the HServer implementation which provides a simple test database which responds to all the standard ops for read, watchXXX, hisRead, pointWrite, etc. You just have run it inside some servlet engine like Jetty.
It would probably be good plan to eventually run a test version of different products like SkySpark, and nHaystack too. But maybe even better is that we can add some test server hooks right into this site.
Stuart LonglandThu 28 Apr 2016
Hi, apologies for not getting back sooner, it's been hectic around here.
I'll have a look at that, sounds like a good solution for what I'm after that can just run in a container for testing purposes.
At least then, if this can be considered a "reference" server implementation, we've got something to work with. :-)
Stuart Longland Mon 18 Apr 2016
Hi all,
I'm having some fun and hames implementing a Project Haystack client in Python, as part of the pyhaystack project.
So far so good when talking to the VRT WideSky implementation which uses OAuth 2.0-based authentication, but I've been having fun getting the Niagara AX client working.
A big part is I don't actually have a Niagara AX instance running here, so I've got nothing to test against locally, and I have no documentation for it other than what's in the main Project Haystack docs, so nothing on how to authenticate. Likewise with Skyspark, that work has barely begun.
The aim of
pyhaystack
is to have a single Python module that can talk to all three, and possibly other, instances of Project Haystack. We'd like to get to the point that all someone needs to do is runpip install pyhaystack
and hey presto, they can talk to almost any server by calling the appropriate class.I suspect other client authors may find such a test instance or documentation useful.
After all, what's the point in having a server without the client?
Does anyone know of either test instances, or publicly visible documentation for either of the latter two? Are there other implementations that are worth looking at supporting?
Regards, Stuart Longland
Stuart Longland Tue 19 Apr 2016
Seems we might have a possible workaround, in the form of Betamax.
Perhaps we could pool together sanitised captures of the requests and responses? I could see this as being useful for those wanting to write server implementations too.
Brian Frank Tue 19 Apr 2016
Hi Stuart,
If you look at the Java Haystack Toolkit (see Downloads tab), you can actually it to run a simple test server on your own machine. You can use TestDatabase as the HServer implementation which provides a simple test database which responds to all the standard ops for read, watchXXX, hisRead, pointWrite, etc. You just have run it inside some servlet engine like Jetty.
It would probably be good plan to eventually run a test version of different products like SkySpark, and nHaystack too. But maybe even better is that we can add some test server hooks right into this site.
Stuart Longland Thu 28 Apr 2016
Hi, apologies for not getting back sooner, it's been hectic around here.
I'll have a look at that, sounds like a good solution for what I'm after that can just run in a container for testing purposes.
At least then, if this can be considered a "reference" server implementation, we've got something to work with. :-)
Regards, Stuart Longland