Saturday, April 14, 2012

Lagarto-MAX: the eye that watches everything...

Lagarto-MAX is now available for download from SVN. With this new client we can integrate multiple lagarto servers and manage their values from a single interface. Lagarto-MAX provides the necessary tools to connect endpoints between them, take decisions and push values to the cloud.

Lagarto-MAX, as Lagarto-SWAP, is entirely configurable from the web interface. It's basically a client listening on the lagarto notification channel which processes events and triggers actions based on network and time conditions. The following are some of the features provided by Lagarto-MAX:
  • Reception of network events from any lagarto server on the same IP network
  • Transmission of commands to any lagarto server on the same IP network
  • Common web control/monitoring interface for all lagarto endpoints
  • Event manager programmable from the Web interface
  • Automatic upload of values to different cloud data services (Pachube, ThingSpeak, ...)
  • Simple thread-independent interface for running user Python scripts.
  • Python API for managing values such as "get_value" or "set_value"
Web events can be of different nature: control lagarto endpoints (SWAP, ...) periodically or on a given date, watch for value changes and push them to the cloud, etc.

Figure 1: example of web event

At the moment of writing this post and with regard to the cloud services only Pachube and ThingSpeak are supported. However, adding support for new services is really easy so we can expect to provide connectivity with new cloud-based platforms in the short term.

Figure 2: real data being pushed to ThingSpeak from Lagarto-MAX

Event-side, users can develop their own Python scripts as well and use the provided API's from there. Read/write network data and push data to the cloud can be done by the means of simple commands. The following is just an example:
from api import NetworkAPI as network

# Lagarto endpoint
endpoint = network.get_endpoint("SWAP-network.SWAP.Temperature")

print endpoint.name, "in", endpoint.location, "is", endpoint.value, endpoint.unit

# The above code prints the same result as the following:
value = network.get_endpoint("SWAP-network.SWAP.Temperature")

print "Temperature in SWAP is", value, " C"

Another nice feature provided by Lagarto-MAX is the endpoint panel. It's similar to Lagarto-SWAP's except that it shows the values from every Lagarto server running in the same IP network (LAN or Internet). All lagarto values being showed from the same web interface... really useful when your lagarto network consists of multiple distributed servers...

Lagarto-MAX is already documented in our wiki. I expect to post some screencasts showing the creation of events from the web interface soon.

No comments:

Post a Comment