[zeromq-dev] looking for an real app that uses zyre
Jerry Scharf
scharf at lagunawayconsulting.com
Wed Jan 20 19:29:15 CET 2016
Axel,
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
knobs.
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
work.
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.
warmly,
jerry
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