[zeromq-dev] looking for an real app that uses zyre

Jerry Scharf scharf at lagunawayconsulting.com
Wed Jan 20 19:29:15 CET 2016


Would you be interested in working together? I have spent over a decade 
thinking about the problem and have finally come to rest with what I the 
problems are and what is a good first step on the solution. I am not 
attached so much to how the code is built. Like I said, I am not a 
strong programmer. I am attached to the requirements and to some of the 
architectural decisions.

The the key problems as I see them:

most software tends to think in the here and now.
The model is "I am making these decisions for how things are to be now." 
This is a bad fit for a distributed system. There needs to be a shift to 
"this is the goal I have for my system in the future." Time becomes a 
first class part of everything and competing controls are accepted and 
dealt with correctly.
This also allows for fun things. My new cooling control code doesn't 
have a PID in its normal operating mode, it instead has a cycle mode 
where it does a linear regression on the temperature to predict when it 
will cross a given threshold and schedules a control event for that 
time. Each reading improves the estimate until the event finally occurs. 
This means that as the day progresses, all the shifts in heating and 
cooling rates just factor in and are adjusted to correctly with no extra 

Configuring these systems is horrible and is the main reason they don't 
get used more often. Configuration must be as or more important than 
functionality. That's why the Nest succeeded. We must support human 
oriented meta-models that are then translated to the things that do the 
work. This is an open problem, but I do have some ideas that I think can 

Handling hybrid entities.
A thermostat is really 4 different agents in an elegant package. It is a 
environmental sensor, it is a control point, it is a control algorithm 
and it is a UI that both displays and takes user input.
Any and all of these can be separated out and run anywhere in the system 
when you have smart devices and continuous communications.

Creating openness in the system.
I want to be able to add a module that goes to weather underground and 
gets my local weather and then acts as a set of sensors to the system. I 
want to be able to replace the heating control logic because I had an 
idea of a better way to do it.

Failure is always an option:
As the number of elements grow, the odds that some part of the system is 
not operating increases. The system and all its components must deal 
with failures, degraded operation levels and the like. This also 
addresses the bootstrap issue when a distributed system is coming up. At 
first, hybrid devices should be in local operation mode. Once the 
configuration server is available, things can start finding out about 
each other and increase their functional operation level...

Build a good thermostat:
I am looking at how to build a really good raspberry pi based 
thermostat. The hardware side seems pretty straight forward, though it 
may take some things like PC board design and CNC milling or 3d 
printing. My biggest unknown is how to abstract the UI part and make it 
configurable and dynamic.

It's a big job, but I believe it will help the thinking of the overall 
field forward.


On 01/20/2016 09:44 AM, Axel Voitier wrote:
> Hello,
> I do in 
> https://github.com/Alidron/alidron-isac/blob/master/transport/pyre_node.py, 
> in a project that serve very similar purposes to what you want to do 
> (haven't yet fully disclosed it though, so it is not yet well 
> documented, sorry ;)).
> So far I used zyre (pyre actually) not only for peer discovery. I also 
> use its ability to set headers on a node to register endpoints of 
> other sockets (pub/sub and rpc) that other nodes can connect to.
> I also used groups, one for broadcasting events (one way 
> communication), and another one for sending survey questions ("who has 
> data/metadata/service for this signal" for instance). I could also 
> make use of its built-in connection heartbeat in the future.
> Cheers,
> Axel
> --
> Contact: axel.voitier at gmail.com <mailto:axel.voitier at gmail.com>
> Secure: axel.voitier at protonmail.ch <mailto:axel.voitier at protonmail.ch>
> 2016-01-20 18:13 GMT+01:00 Jerry Scharf 
> <scharf at lagunawayconsulting.com <mailto:scharf at lagunawayconsulting.com>>:
>     Hi,
>     I am new to zeromq. I am starting to work on a new building automation
>     system for my home following an IoT model. zeromq seems like an ideal
>     messaging system to build it around. I have some discovery issues
>     I need
>     to solve as well.
>     I am trying to understand how to put the zyre into action for my
>     tasks.
>     I don't consider myself a strong programmer, so I often like to
>     look at
>     code others have designed to see how they put the tools to work. There
>     are a number of these available for zeromq, but I have not located any
>     using zyre.
>     Can someone point me to a real app that is using zyre for
>     discovery so I
>     can understand it better?
>     thanks in advance,
>     jerry
>     _______________________________________________
>     zeromq-dev mailing list
>     zeromq-dev at lists.zeromq.org <mailto:zeromq-dev at lists.zeromq.org>
>     http://lists.zeromq.org/mailman/listinfo/zeromq-dev
> _______________________________________________
> zeromq-dev mailing list
> zeromq-dev at lists.zeromq.org
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20160120/330b2425/attachment.htm>

More information about the zeromq-dev mailing list