Text

Release 1.10 “Tooth Fairy”

This month’s point release of The Thing System has been tagged as release 1.10 (August 25) and is code named “Tooth Fairy.” As always this release comes as a bootable disk image for the Raspberry Pi and the Beaglebone Black.

Next month’s release is scheduled for the 25th of September and is code named “Roast Chicken.”

Release 1.10 “Tooth Fairy” - August 25, 2014

Steward

  • APIs: no changes
    • bullet-proof against linkage errors (for development)
    • fix QR code generation issue
    • oneshot:
      • tighten text
      • bullet-proof against query.parameters already an array
  • Discovery:
    • if unable to open SSDP listener, report which process has the port
    • discovery mechanisms may be enabled/disabled through configuration
  • HTTP server: no changes
  • Logging: no changes
    • demote some logging entries from notice/warning to info
  • package dependencies
    • updated to the latest for cosm, cron-parser, greenwave-gop, lumen, mdns, mqtt, lsof, prowl, and xmlhttprequest

TAAS (Things as a Service)

  • no changes

TSRP (Thing Simple Reporting Protocol)

  • no changes

Places

  • bullet-proof against no wind report

Things

  • device
    • ensure deviceNames are always strings
    • normalize deviceTypes
    • add ‘ikon’ proto-property
  • device/climate:
    • cubesensors/meteo: NEW
    • flower-power/, koubachi/, plantlink/*: better algorithm for ‘placement’ property
    • wink/control: use numeric values only for ‘fanSpeed’ property
  • device/gateway:
    • cubesensors/cloud: NEW
    • myq/cloud: NEW
    • openzwave/usb: bug fixes, thanks @sja
    • yoctopuce/*: update to latest library
  • device/indicator:
    • all: add error checks (‘attention’ subscription)
    • sensable/sensor: NEW
    • wink/nimbus: add ‘display’ property
    • yo/1bit: NEW
  • device/lighting: no changes
  • device/media: no changes
  • device/motive:
    • myq/garage-door: NEW
    • tesla/model-s: properly traverse streaming data
  • device/presence: no changes
  • device/sensor: no changes
    • leapmotion/gesture: experimental
  • device/switch: no changes
  • device/wearable: no changes

HTML5/D3 client

  • fix inadvertant redirect to 127.0.0.1
  • ensure at most 8 arcs drawn

User policy client

  • no changes

Developer console

  • no changes

Developer Libraries

  • iOS: no changes

Utilities

  • added scripts to help MTR build RPI images
Text

Release 1.9 “Peppermint Candy”

This month’s point release of The Thing System has been tagged as release 1.9 (July 7) and is code named “Peppermint Candy.” As always this release comes as a bootable disk image for the Raspberry Pi and the Beaglebone Black.

Release 1.9 “Peppermint Candy” - July 7, 2014

The following changes have been made since release 1.8—which was code named “Barbecue Ribs”—at the end of May.

Steward

  • APIs:
    • reset activity firing timestamp when underlying event group changes
    • update QRcode parameters for TAAS-client demo
    • things event/perform generator wasn’t sending thingIDs
  • Discovery:
    • advertise TAAS cloud FQDN in TXT RR
  • HTTP server:
  • logging: fail clearly if parameters invalid, thanks @CloCkWeRX

TAAS (Things as a Service)

  • no changes

TSRP (Thing Simple Reporting Protocol)

  • no changes

Places

  • add missing values for customary units conversion
  • if cron parser didn’t set day-of-the-week

Things

  • devices:
    • remove hooks to previous insteon gateway from devices
  • device/climate:
    • oregon-scientific/rain: NEW, thanks @torkelsson
    • oregon-scientific/wind: NEW, thanks @torkelsson
    • telldus/rain: NEW, thanks @torkelsson
    • telldus/wind: NEW, thanks @torkelsson
    • wink/control: Quirky Aros air conditioner, NEW
  • device/gateway:
    • flower-power/cloud: update to latest package
    • insteon/*:
      • better range checking on scan, thanks @siburny
      • use configuration.json file to bind USB ports to devices
    • netatmo/cloud: update to latest API
    • openzwave/usb: use configuration.json file to bind USB ports to devices
    • plantlink/cloud: better error diagnostics
    • tesla/cloud: update algorithm for SuperCharger database
    • yoctopuce/hub: use non-blocking calls to interrogate hub
  • device/indicator:
  • device/lighting:
    • hue/*: change NUPnP to use https:
  • device/media:
    • ignore sonos/dock (looks like UPnP, but doesn’t behave like it)
    • pioneer/receiver: fix bug in initialization code
    • roku/video: fix bug in initialization code
  • device/motive:
  • device/presence:
  • device/sensor:
  • device/switch:
    • telldus/dimmer:
      • fix “off” command
      • fix dimmer value calculation
  • device/wearable:

HTML5/D3 client

User policy client

  • no changes

Developer console

  • report rain/wind information in toFixed(1)

Developer Libraries

  • iOS:
    • major update: TAAS app for transparent proxy to steward

Utilities

  • no changes
Text

Configuring Autonomous Behavior

We are very pleased to announce that the HTML5/D3 client now has the ability to configure autonomous behavior in the steward. Many, many thanks to Danny Goodman for his painstaking implementation of this. (For an obscure movie quote, cf., the character Egg Shen, “It wasn’t easy.”) Thanks also to Rebecca Malamud of Point.B Studio for the design.

Once you’re running “the latest”, you’ll see a third configuration icon in the upper-left corner of the screen:

image

If you click on the “automoton” icon — the little man that reminds me just a little of Gort — then you get the configuration screen for autonomous behavior:

image

The initial release has one domain: home autonomomy. We’re planning on a second domain, motive autonomy, very soon: the configuration design is data-driven, and fairly expressive.

Looking at this screen, you’ll see five activities, three of which I’ve already configured, and two which are incomplete. An activity has three states:

  • incomplete - the user should indicate which devices should be involved in the activity
  • configured and off - the activity is temporarily disabled by the user
  • configured and on - the activity is enabled

Let’s look at the Status Lights activity by clicking on it:

image

The steward has a four color system (red, orange, blue, and green) indicating the status of the home:

  • green - everything is A-OK
  • blue - one or two issues of a non-critical nature (e.g., a plant needs water)
  • orange - there are more than a few non-critical issues
  • red - there is a critical issue

At present, this calculation is hard-wired. Over time, we hope to make it configurable. (Volunteers welcome!)

The screen shows all the lights in my home that the steward manages that are capable of changing color, and none of them are highlighted. Since I spend most of my time in the home office, I’ll select a ceiling light that is within my view — Desk (south) — and also the Hue Bloom that is in my bedroom:

image

I then click “Activate” and then “Done”:

image

and the activity is now configured and on.

The Manage Air Quality activity is similar:

image

After we get the motive autonomy added, we’ll probably circle back to home autonomy for a few bells and whistles. Stay tuned!

Text

Release 1.8 “Barbecue Ribs”

This month’s point release of The Thing System has been tagged as release 1.8 (May 30) and is code named “Barbecue Ribs.”

As always this release comes as a bootable disk image for the Raspberry Pi and the Beaglebone Black.

Release 1.8 “Barbecue Ribs” — May 30, 2014

The following changes have been made since release 1.7—which was code named “Salt Pretzel”—at the end of April.

Steward

  • condition evaluation robustness
  • APIs:
    • duplicate UUID robustness on …/create
    • activity modify send success indication
    • task creation robustness for guard
    • thing perform and update robustness
    • automatically logout a thing when it logs in again
    • fix intermitant bug preventing steward bootstrap user creation
  • Discovery
    • allow SSDP hook for discovery
    • create index.xml for each interface
  • Device Expansion
    • add .solar, .ago expansion
    • remove debug output
  • HTTP server
    • use node-static for faster serving of static content

TAAS (Things as a Service)

  • no changes

TSRP (Thing Simple Reporting Protocol)

  • support loopback multicast (in case kumoapp-tsrp is running on the same system)

Places

  • robustness when geocoding fails

Things

  • devices:
    • add common functions to remove duplicate code in many drivers
    • all insteon devices are robust when no gateway module present
  • device/climate:
    • insteon/control: initial check-in, not yet operational
    • netatmo/*: support new API result
    • netatmo/rain: NEW
    • oregon-scientific/meteo: report rain/wind information, if available
    • plantlink/soil: use ‘waterVolume’ (percentage) as an alternative to ‘moisture’ (millibars)
    • telldus/meteo: NEW
    • wink/control: initial check-in, not yet operational
  • device/gateway:
    • defer scanning until all subordinates loaded
    • insteon/*: replace driver withhome-controller package
    • telldus-live/cloud: NEW
  • device/indicator:
    • instapush/text: NEW
    • pushover/text: NEW
    • twitter/text: NEW
  • device/lighting:
    • all dimmers: if performing ‘on’, treat a zero-valued brightness as 100%
  • device/media:
    • upnp/audio: robustness
    • pioneer/receiver: NEW
    • roku/video: enabled
    • sonos/audio:
      • detect ‘zoned’ status
      • robustness
    • ignore: DirecTV and Toshiba renderers
  • device/motive:
    • tesla/model-s: udpated for better energy, security monitoring (cf., tesla.js in node-taas-client)
  • device/presence:
  • device/sensor:
  • device/switch:
    • all dimmers: if performing ‘on’, treat a zero-valued level as 100%
    • telldus/dimmer: NEW
    • telldus/onoff: NEW
    • wemo/onoff: report watt-hours correctly
  • device/wearable:

HTML5/D3 client

  • if slider disabled, do not allow interaction
  • dimmer setting robustness
  • display units now properly set on startup
  • robustness when setting values for place/1
  • fix bug in reporting “now”
  • report rain/wind information for meteo sensors, if available

User policy client

  • no changes

Developer console

  • no changes

Utilities

  • start-up script: add argument to enable/disable bluetooth
  • list-ssdp:
    • robustness
    • dive into root UPnP devices only
Text

Release 1.7 “Salt Pretzel”

We’re really happy to announce this month’s point release—the eight such release of The Thing System—which has been tagged as release 1.7 (Apr 24) and is code-named “Salt Pretzel”.

As always this release comes as a bootable disk image for the Beaglebone as well as the Raspberry Pi.

Release 1.7 “Salt Pretzel” - April 28, 2014

The following changes have been made since the release 1.6—which was code named “Pecan Waffle”—at the end of March.

Steward

  • platforms with multiple interfaces no longer race the CPU
  • more startup robustness
  • more user creation robustness
  • more robustness in UUID calculation on startup
  • APIs:
    • thing creation: more robustness

TAAS (Things as a Service)

  • no changes

TSRP (Thing Simple Reporting Protocol)

  • no changes

Places

  • no changes

Things

  • device/climate/plantlink/*: NEW
  • device/gateway:
    • */cloud: better diagnostics
    • plantlink/cloud: NEW
    • reelyactive/reelceiver: better (though not perfect) reel discovery
  • device/indicator:
    • grovestreams/sensor: robustness additions
  • device/media:
    • */audio: invoke device.expand on URL parameter
    • sonos/audio: fix typo when validating ‘play’ command
    • upnp/audio: NEW (ROCKI for the win!)
  • device/motive:
    • automatic/vehicle: invoke reverseGeocode prototype with logging argument
    • lockitron/lock: fix travis’ complaint (that jshint missed)
    • tesla/model-s:
      • invoke reverseGeocode prototype with logging argument
    • API call rate limiting robustness

HTML5/D3 client

  • ensure that the first user created for a steward has the ‘master’ role
  • remote access authentication robustness
  • developer mode consistency
  • honor place/1 displayUnits setting
  • display location and distance arcs for all location-aware device types
  • media player UI improvements and fixes (e.g., volume control, duration calculation)
  • improved handling of hue color model

User policy client

  • allow ‘master’ role to redisplay QR codes

Developer console

  • no changes

Utilities

  • list-arp.js: report ifTable contents
  • list-ssdp.js: more output to aid in future debugging

Known Issues

There are no known issues at this time. If you come across an issue, please file a ticket on Github.

Photoset

Today’s release—code named “Pecan Waffle”—includes support for voice control of the Thing System steward.

Steward support

To support voice control we’ve added a simple API for the steward to be addressed on the LAN. You can now do an HTTP GET request to,

 http[s]://steward.local:[8887/8888]/oneshot?entity=…

where for instance a “lights on” command could be mapped onto,

oneshot?entity=actor&prefix=/device/lights&perform=on

and a “lights off” command could be mapped onto,

oneshot?entity=actor&prefix=/device/lights&perform=off

Client support

To show off the feature we’ve gone ahead and modified the example d3 client to allow generation of configuration files for Tasker, on Android, and Vocalia, on iOS. You can now generate configurations customised to support your things, directly from the d3 client.

If you’ve used Tasker or Vocalia before you might be able to guess how to take the configuration files and put them to use. But for those that haven’t we’re hoping to get full documentation, including a walk through video, to you later in the week.

You can access the new voice configuration screen using the microphone icon directly underneath the settings cogwheel in the main d3 interface.

Enjoy!

Text

Release 1.6 “Pecan Waffle”

We’re really happy to announce this month’s point release—the seventh such release of The Thing System—which has been tagged as release 1.6 (Mar 28) and is code-named "Pecan Waffle".

As always this release comes as a bootable disk image for the Beaglebone as well as the Raspberry Pi.

Voice Control — NEW FOR 1.6

The major new feature included in this release is a voice control API for the steward. The example d3 client has been updated to support generation of configuration files for Tasker on Android and Vocalia on iOS to show of this new functionality. More elsewhere on that

Release 1.6 “Pecan Waffle” - 28th March 2014

The following changes have been made since the 1.5 release at the end of February.

Steward

  • properly latch event observations
  • APIs:
    • all: more robustness
    • groups: replace composite ‘status’ property with component ‘type’ and ‘operator’ properties
    • thing creation: remove race condition
    • client login: indicate that clockskew may be a cause of failure “(check your clock)”
  • more device.expand robustness
  • refactor metric/customary handling
  • redirect port 80 traffic to correct http/https port
  • add secondary algorithm for generating UUID (in case ARP scan fails)
  • add support for db/configuration.json (experimental, not documented yet)

TAAS (Things as a Service)

  • no changes

TSRP (Thing Simple Reporting Protocol)

  • no changes

Places

  • use replacement interface to YQL, and robustness
  • better diagnostics for invalid parameters
  • default to metric for displayUnits
  • more accurate handling of forecast and current conditions
  • add identity (UUID) property

Things

  • all:
    • refactor geocaching code and additional robustness
  • mDNS and UPNP: no changes
    • no changes
  • device/climate:
    • nest/control: robustness check when setting to home/away
    • samsung/control: NEW, thank you @CloCkWeRX
  • device/gateway
    • flower-power/cloud: robustness
    • reelyactive/reel: supress phantom reelceivers and tags
    • yoctopuce/hub: determine measured property based on unit parsing
  • device/indicator:
    • cassandra/nosql: NEW
    • grovestream/sensor: NEW
    • irtoy/infrared: moved to drivers-in-progress area
    • wink/*:
    • wink/gauge:
      • use metric/customary setting
      • supress multiple API connection errors
    • wink/nimbus: supress multiple API connection errors
  • device/lighting:
    • all: color model refactoring and robustness
    • heroic-robotics/*: use node-pixelpusher version 0.1.1
    • LIFX/bulb: NEW, thank you @RussNelson
  • device/media:
    • camera/axis: moved to drivers-in-progress area
  • device/motive:
    • automatic/vehicle:
      • interpret polyline routes
      • add logging hook
      • remove debugging
    • crazyflie/3d: moved to drivers-in-progress area
    • irobot/floor: moved to drivers-in-progress area
    • lockitron/lock: add ‘error’ status, if operations fail
    • tesla/model-s: limit API calls to no more than six per minute
  • device/presence:
    • no changes
  • device/sensor:
    • voc now a measured property
    • fix race-condition when reporting multiple measurements “simultaneously”
    • move co2/light/voc sensors from /device/climate
    • nest/smoke: report measurements properly
    • wink/spotter: supress multiple API connection errors
  • device/switch:
    • wemo/onoff: do not reply on subscription to refresh
    • wink/strip:
      • typo in property name (was ‘outlets’, now ‘plugs’)
    • supress multiple API connection errors

HTML5/D3 client

  • more accurate handling of forecast and current conditions

User management client (client.html)

  • no changes

Developer clients

  • console.html:
    • when displaying entity names, append ID (if different)
    • unlocked doors now reported as orange, not green

Utilities

  • no changes

Known Issues

The d3 client is having issues when used with Safari on the Mac when the steward is running on the Beaglebone Black. Other browsers seem unaffected.

Photoset

Pictured: A GroveStreams dashboard showing interior temperature, humidity and air quality readings live from the steward of our own Marshall Rose.

For those of you interested in real-time data logging and analytics, we’d like to announce integration of the Grovestreams Big Data analytics platform.

Full support will be shipping in the upcoming 1.6 release, code-named “Pecan Waffle,” at the end of the month. But if you can’t wait that long it’s live in Github right now.

Video

Say "Hi!" to Brad the toaster. Conceived by Italian designer Simone Rebaudengo, Brad is a glimpse into a near-future where everything is connected, even the toaster, and where the things don’t just interact with us, but with each other.

The premise might seem odd. That the smart objects of the future aren’t just smart, but also potentially jealous, petty or vindictive. That, connected to and benchmarked against their peers, their relationships with each other start to inform their relationships with us. However this experiment is actually pretty interesting and does, at least in a way, hold up a strange mirror to what we’re doing with the Thing System.

Video

We’ve been asked a couple of times for a video introduction to the Thing System, and this one covers how to get started in just fifteen minutes.

It walks you through getting started using the Raspberry Pi and our pre-built disk images, and covers deploying the software onto the Pi and basic interactions with the demonstration d3 client.