CH-AW Ambient Weather developing progress

Good news everybody, the Ambient Weather’s API return the station’s data even if the owner decide to not share them.

Sadly they don’t retun the station’s geoposition coordinates there…

Adding the widget and the temperature (or what else? Humidity?) in the notification bar and I’ll push version 0.9 to the store. Let see if I can make it before March.

CH-AW

Android “Ambient Weather” app progress.

API is pretty straightforward. I have the data from the station:


Need to find a decent way to help Joe Schmo to configure and share their Stations.

I wish Ambient Weather website would share a QRCode for each station’s apikey.


I’ ll implement a QRcode generator on the app landing page with the instructions. Not ideal but better than nothing.

Not sure if Ambient Weather people are going to be happy about it.

Ambient Weather API

Writing a simple Android Wear and Android App that pull data from the Ambient weather API.

I think the API is maintained by a single hero:
https://github.com/owise1 while the main company that actually sell the station seem almost unaware of its marketing potential.
Would be nice to have a station’s QRcode ready to be shared with people that don’t have an Ambient weather account instead of forcing the owner to dig into the ambientweather.net account’s profile (that is different from the ambientweather.com account… sigh).
That would make configuring my app super simple and I can see local business owner’s sharing their station as a promotional bonus (scan the QRCcode and you get local real time weather data).

https://ambientweather.docs.apiary.io/#reference/0/device-data/query-device-data?console=1

---------- List User's Devices
## List User's Devices [/v1/devices/{macAddress}{?apiKey,applicationKey}]

+ Parameters
  + macAddress (required) - device Mac Address
  + apiKey (required) - API Key for user account
  + applicationKey (required) - Application Key

---------- Get request
https://api.ambientweather.net/v1/devices?applicationKey????????????????????????????????????????????????????????????????&apiKey=????????????????????????????????????????????????????????????????

---------- Answer (JSON)
[
  {
    "macAddress": "??:??:??:??:??:??",
    "lastData": {
      "dateutc": 1550265900000,
      "winddir": 272,
      "windspeedmph": 2.2,
      "windgustmph": 2.2,
      "maxdailygust": 6.9,
      "tempf": 62.8,
      "hourlyrainin": 0,
      "dailyrainin": 0,
      "weeklyrainin": 0.91,
      "monthlyrainin": 0.91,
      "totalrainin": 29.24,
      "baromrelin": 29.58,
      "baromabsin": 29.12,
      "humidity": 69,
      "tempinf": 68.5,
      "humidityin": 41,
      "uv": 1,
      "solarradiation": 113.16,
      "feelsLike": 62.8,
      "dewPoint": 52.47,
      "lastRain": "2019-02-13T00:59:00.000Z",
      "date": "2019-02-15T21:25:00.000Z"
    },
    "info": {
      "location": "???? ????",
      "name": "???? ????"
    }
  }
]

----------------------------------------------
---------- Device Data
## Device Data [/v1/devices/{macAddress}{?apiKey,applicationKey,endDate,limit}]

+ Parameters
  + macAddress (required) - device Mac Address
  + apiKey (required) - API Key for user account
  + applicationKey (required) - Application Key
  + endDate (optional) - The most recent datetime. Results descend from there. If left blank, the most recent results will be returned.  Date format should be in milliseconds since the epoch or string representations outlined here: https://momentjs.com/docs/#/parsing/string/. Note: datetimes are stored in UTC.
  + limit (optional, number) - The maximum number of results to return (max: 288)
      + Default: 5
---------- Get request
https://api.ambientweather.net/v1/devices/??:??:??:??:??:???apiKey=????????????????????????????????????????????????????????????????&applicationKey=????????????????????????????????????????????????????????????????

---------- Answer (JSON)
[
  {
    "dateutc": 1550430300000,
    "winddir": 64,
    "windspeedmph": 0.4,
    "windgustmph": 1.1,
    "maxdailygust": 10.3,
    "tempf": 39.2,
    "hourlyrainin": 0,
    "dailyrainin": 0.01,
    "weeklyrainin": 0.01,
    "monthlyrainin": 1.66,
    "totalrainin": 29.99,
    "baromrelin": 29.82,
    "baromabsin": 29.35,
    "humidity": 85,
    "tempinf": 67.3,
    "humidityin": 40,
    "uv": 0,
    "solarradiation": 57.25,
    "feelsLike": 39.2,
    "dewPoint": 35.08,
    "lastRain": "2019-02-17T12:59:00.000Z",
    "date": "2019-02-17T19:05:00.000Z"
  },
  {
    "dateutc": 1550430000000,
    "winddir": 74,
    "windspeedmph": 0.9,
    "windgustmph": 2.2,
    "maxdailygust": 10.3,
    "tempf": 39.2,
    "hourlyrainin": 0,
    "dailyrainin": 0.01,
    "weeklyrainin": 0.01,
    "monthlyrainin": 1.66,
    "totalrainin": 29.99,
    "baromrelin": 29.81,
    "baromabsin": 29.34,
    "humidity": 85,
    "tempinf": 67.1,
    "humidityin": 40,
    "uv": 0,
    "solarradiation": 54.19,
    "feelsLike": 39.2,
    "dewPoint": 35.08,
    "lastRain": "2019-02-17T12:59:00.000Z",
    "date": "2019-02-17T19:00:00.000Z"
  },
  {
    "dateutc": 1550429400000,
    "winddir": 129,
    "windspeedmph": 2.2,
    "windgustmph": 3.4,
    "maxdailygust": 10.3,
    "tempf": 39.2,
    "hourlyrainin": 0,
    "dailyrainin": 0.01,
    "weeklyrainin": 0.01,
    "monthlyrainin": 1.66,
    "totalrainin": 29.99,
    "baromrelin": 29.8,
    "baromabsin": 29.34,
    "humidity": 85,
    "tempinf": 67.6,
    "humidityin": 40,
    "uv": 0,
    "solarradiation": 78.05,
    "feelsLike": 39.2,
    "dewPoint": 35.08,
    "lastRain": "2019-02-17T12:59:00.000Z",
    "date": "2019-02-17T18:50:00.000Z"
  },
  {
    "dateutc": 1550429100000,
    "winddir": 143,
    "windspeedmph": 4,
    "windgustmph": 5.8,
    "maxdailygust": 10.3,
    "tempf": 39.2,
    "hourlyrainin": 0,
    "dailyrainin": 0.01,
    "weeklyrainin": 0.01,
    "monthlyrainin": 1.66,
    "totalrainin": 29.99,
    "baromrelin": 29.81,
    "baromabsin": 29.34,
    "humidity": 84,
    "tempinf": 67.8,
    "humidityin": 40,
    "uv": 0,
    "solarradiation": 83.19,
    "feelsLike": 36.39,
    "dewPoint": 34.78,
    "lastRain": "2019-02-17T12:59:00.000Z",
    "date": "2019-02-17T18:45:00.000Z"
  },
  {
    "dateutc": 1550428800000,
    "winddir": 66,
    "windspeedmph": 1.6,
    "windgustmph": 2.2,
    "maxdailygust": 10.3,
    "tempf": 39,
    "hourlyrainin": 0,
    "dailyrainin": 0.01,
    "weeklyrainin": 0.01,
    "monthlyrainin": 1.66,
    "totalrainin": 29.99,
    "baromrelin": 29.8,
    "baromabsin": 29.34,
    "humidity": 85,
    "tempinf": 67.8,
    "humidityin": 40,
    "uv": 0,
    "solarradiation": 80.25,
    "feelsLike": 39,
    "dewPoint": 34.88,
    "lastRain": "2019-02-17T12:59:00.000Z",
    "date": "2019-02-17T18:40:00.000Z"
  }
]

Intermatic HA07 Wireless Master Controller ZWave

Standalone ZWave master controller or can be used as secondary controller.

Tested with Smartthings

First, do a full reset on the remote (to disassociate it with any previous controller). On the HA09, that consists of:

  1. Press and hold INCLUDE and DELETE buttons at the same time for 10 seconds. The red and green LED’s
    will flash.
  2. Hold the Channel 1 ON/DIM and OFF/DIM buttons until the green LED turns solid.

To add HA07 controller

Turn on include on Smartthings hub
Press and hold INCLUDE for 5 seconds COPY will flash
Release the INCLUDE button
Press and release Channel 1 OFF/DIM on the HA07 controller
The display will show “RA” (wait a few min for ST to add it)
Add modules to HA07

add devices to channels on the remote (‘Include’):

  1. On the remote controller, simultaneously press and hold the ON and OFF buttons of the desired channel. Both red and green LED’s will flash. Release the ON and OFF buttons.
  2. Press and hold the INCLUDE
    button. While still holding the INCLUDE
    button, press the program button on the module (switch, lamp module, etc).
    Choose a light level holding the module PROGRAM button.
  3. After setting your desired light level, release the
    INCLUDE button on the remote controller. The green
    LED’s on the controller and module will flash. The
    module LED will turn solid green.
  4. To include additional devices to the channel, repeat

Difference between SUC and SIS controller

Static Update-Controller (SUC)

The Static update controller (SUC) is a special function of a static controller. Most static controllers (a controller with fixed location and powered by mains) can perform as an SUC. However, the function typically needs to be activated first. The SUC receives the updated routing table from the primary controller and offers this routing table to all other controllers in the network. Because the SUC is a static controller and therefore always active in the network, any other controller can frequently request an updated routing table from the SUC. To make sure that all other nodes and particularly other controllers are aware of the presence of a SUC in the network, the Node ID of an activated SUC is communicated within the network periodically.

Having an active SUC in the network allows you to keep the primary controller role on a portable controller. Every change of the network caused by inclusion or exclusion of a node by the primary controller will be reported to the SUC and is then available to all other controllers, even if the primary controller is not active.

Since most of the controllers are battery operated and therefore not active all the time, these controllers have to request an updated routing table periodically or at least when woken up, by pressing a button. To perform this task the mobile battery operated controllers need to be informed about the presence of a SUC in the network. If the original – mobile – battery operated primary controller is lost or damaged, the SUC can assign the primary privilege to a new mobile controller, protecting the user from re-establishing the whole network with a brand new primary controller, and having a different Home ID.

Static ID Server (SIS)

Even a SUC in the system does not solve the problem that only one controller has the primary privilege and can include new device. This limitation is overcome by enhancing the SUC functionality by another function called SIS = Static ID Server.

The SIS acts as depot for new Node IDs that can be as signed by mobile controllers . Having an SIS present in the network allows every controller in the network to include a further device. The controller will just request a new node ID from the SIS and assign this new Node I D to the server. With the SI S it is made sure that no two nodes get as signed the same node ID. The only requirement is a mobile controller needs to fulfil in order to include new devices, is that it has a network connection to the SIS server to request a node ID.

This kind of configuration with server SIS has the following advantages and disadvantages:

Advantages:

  • The actual network topology and the information about all nodes are saved in a static controller and are therefore better protected than within a mobile battery powered device.
  • All controllers in a network can integrate new devices.
  • The network configuration and handling becomes very flexible.

Disadvantages:

  • Function is available only from the firmware version 3.40. It is possible that there are some devices in the network with older firmware that do not support this configuration.
  • Inclusion controller can integrate only devices if it has a wireless connection to the SIS.
  • With the SIS there exists a “Single Point of Failure”. A damaged SIS result in a complete new network setup.

Since the SUC/SIS functionality is already included in the firmware of most modern static controller, or a USB dongle, most Z-Wave networks can take advantage of these functions if a static controller is present. However, this function needs to be activated.

A static controller can also be a primary controller, as well as have SUC/SIS functionality. This configuration is typical in real networks.

SmartThings and GE Jasco Remote 45600

RESET THE REMOTE

Remote [Hold Setup] : RED/GREEN LED flash twice
Remote [969] : GREEN LED flashes twice.

ADD Remote to SmartThing network

SmartThings APP: [+] [+ Connect New Device] -> Searching…
Remote: [Hold Setup] : (RED/GREEN LED blink twice)
Remote: [967] : (GREED LED rapid blink) till the connection
SmartThings APP: Complete the installation naming the device

ADDING A LIGHT (DEVICE / NODE) TO YOUR REMOTE

The “light (aka power switch)” must already be part of the SmartThings infrastructure.
You can add a maximum of 18 lights to your remote so that they can be controlled individually.

The devices should always be reset  prior  new ‘inclusion’:

Remote: [Hold Setup] until both the RED/GREEN LEDs blink twice.
Remote: [DELETE] (Red Blink)
Remote: [Light] (flashes green rapidly).
Device: [configuration button] reset is complete when green stops flashing.
(the  green led blink 2 time faster as succes confirmation feedback).
Remote: [hold SETUP] until both the RED/GREEN LEDs blink twice.
Remote: [ADD] once. (RED LED blinks once)
Remote: [LIGHT] once. (RED LED blinks once)
Remote:  Press a digit [1…9] (GREEN LED blinks rapidly)
for the device button you wish to add.
Press SHIFT and the digit [1…9] if you are adding devices 10 through 18. 
Device: [configuration button] on the device so that it sends its information to the remote and receives information from the remote.
When the GREEN LED blinks twice, you have successfully added the device to your remote control.
NOTE: If the RED LED emits one long, steady blink, you have pressed an invalid key or the device has not been successfully added to your remote.
Please make sure the remote is within two feet of the device and try again.

Complete list of the 45600  “magic key sequences”:

0969reset
0967add this controller as primary/secondary controller (LEARN)
09661add another secondary controller (device and network information)
09662add another secondary controller (network information only)
09681make another remote primary controller (device and network information)
09682make another remote primary controller (network information only)

To activate the above MKS press and hold the SETUP key until both the red and green LEDs blink twice before typing the code.