“Filipinize” an Amazon Alexa.

Long time no blog. ūüėČ Sorry.

A couple of weeks back all my home devices integrated with Amazon Alexa’s Smart home system stopped working. So, I tried in vain getting all of them reintroduced back to Amazon. Amazon Alexa’s ecosystem said No. And I have to suffer a few weeks of not painfully reworking my mouth to form a well pronounced “Turn on Kitchen Lights” so that I can have a well lit kitchen. I started wondering whether the joy of not touching the switch is worth the tongue twisting “Turn on’ (something to blog about later).

So, finally having time to solve this device integration issue I developed an Alexa Skill, that bypasses the Smart Home Eco System. Since I bypassed the Smart Home Eco System I used “Open” for “Turn on” and “Close” for “Turn off”.

Here’s a video of what happened today:

Will be doing some more improvements to this “Alexa Skill” and publish to github later on.

Advertisements

Amazon Alexa, controlling the Neato Botvac via Homebridge Automation

In a previous article Amazon Alexa, using a Home Automation Bridge we discussed integrating the (WiWo-S20) Smart Socket via the Amazon Home Bridge.

The same process has been applied to a¬†Neato Botvac Connected Wi-Fi Enabled Robot Vacuum. Note, there is an existing Neato skill available for Alexa but I prefer to use this integration since I like calling my¬†Vacuum Cleaner “Cujo” and I would like to trigger “Cujo”‘s cleaning task, ¬†using his name instead of “Neato”. ¬†

What prompted me to do this? ¬†I had the misfortune to be woken up from a deep slumber when Cujo was doing his rounds. He went under the Bed, and decided to do a rock and roll concert sucking every possible dirt while belching out his version of “I did it my way”. My phone was in the next room, the only device that ¬†can turn him off. I was mad and awake. Hence, I realized at that point in time, that I can yell ¬†– I can really YELL. Hence, YELL, voice control, ergo ¬†Alexa. So, after Cujo finished cleaning under the bed. I decided to integrate him with Alexa. I made Cujo, ¬†one with the Matrix and took the red pill for my bleeding headache.¬†

Code and documentation on Github  has been updated.

Note, am currently working on integrating iFit devices with samples. Will have a more detailed discussion on possibilities in succeeding posts.  Apologies on the YELL.

 

La Casa Bianca

IMG_1300.jpg

Featured in the film “That thing called Tadhana” (“Tadhana” means destiny in Flipino). It is situated in a quiet area in Baguio and functions as hotel, spa and restaurant.

IMG_1299.jpgHere is a view of the restaurantIMG_1301.jpg

And their gazebos

IMG_1314.jpg

You can have your meals delivered in the gazebos. If you want privacy and a touch of romance.

The restaurant is beautiful, with windows overlooking trees, capitalizing on Baguio’s rich greenery. The dinning area is refined having a non pretentious yet tasteful arrangement of chairs and tables, of course a fireplace.

IMG_1308.jpg

The food is magnificent. We had to indulge ourselves on a bottle of wine to¬†savor the atmosphere. “That’s tadhana, Baby !!!”

IMG_1309.jpg

We ordered Callos Рa beef tripe dish served on top of  wild rice. IMG_1312.jpgAnd Chop SueyIMG_1311.jpg

So far, this is the best Chop Suey -I ever had. Baguio, is famous for its fresh vegetables, and this dish exemplifies Baguio. If you ever have that chance ,to be in Baguio wanting a piece of “tadhana”, La CASA Bianca is a Destination worth pursuing.

 

Amazon Alexa, using a Home Automation Bridge

This is a home automation project leveraging on an Amazon Alexa (Echo or Echo Dot) control of Wiwo devices via Amazon Home Bridge. The Amazon Home Bridge is a JAVA 8 application which issues GET URL calls to turn on or off appliances.

Code is on Github.

You will need the following (a socket item 1 and an Alexa device ( 2 or 3) ):

  1. Orvibo Wi-Fi Smart Socket Outlet US Plug, Turn ON/OFF Electronics from Anywhere, White (WiWo-S20)
  2. All-New Echo Dot (2nd Generation) – Black
  3. Amazon Echo – Black

Note, that this is a first attempt and will be making changes as time permits. It is possible that you can hook up other devices (Cujo, my vacuum cleaner) using the template on GitHub. Will be blogging those and adding new features.

Happy New Year – 2017 !!!

Cujo

I don’t like vacuuming, there I said it. The “swoosh swoosh” from a machine being pushed while it tries to suck dirt and whatever important object you drop on the floor, is not really my cup of tea. I can’t lift a sofa or bed to offer all the sacrificial “dirt” to ye vacuum cleaner. I hate including my poor back. as an added burnt offering. Also, I have to schedule this ritual. – that’s my rant.

I did a Carpe Diem.

My story starts, with¬†a thing called a robotic vacuum cleaner. The most famous one out there is from iRobot – the Roomba. It’s that small round puck that vacuums and chases your cat. I read and watch a couple of you tube videos and ¬†decided that I needed something like the Roomba.

  • I wanted a vacuum cleaner that cleans¬†on a schedule I can set.
  • I needed it to tell me when it started its cleaning cycle and when it ended.
  • I want to control it from my phone.
  • It has to go where no man has ever gone before – underneath the Sofa and Bed.
  • Added bonus, if I can get stats from it and control it externally –¬†An Application Program Interface I can use.

I did my research and chose the “Neato¬†Botvac”.

Here are my reasons:

  • The “Neato Botvac” is not a round puck. It is shape like a wedge. So, cleaning a corner is not a problem. I have heard a lot of arguments saying that the round shape of the Roomba is not an issue when dealing with corners. I have yet to be convinced that you can fit a round peg on a square hole. The Roomba would be great in the Apple campus at Cupertino – no corners.
  • Next, the “Neato Botvac” follows a more intelligent cleaning algorithm. It goes around the edges, uses the edges as a boundary and then starts working inward. The Roomba on the other hand bounces back and forth from wall to wall, like an uncontrolled billiard ball. This bouncing back and forth would annoy my mother, God rest her soul.

Here’s a snippet of source code I wrote to extract info from the “Neato Botvac”, which I call using a CURL script that runs every hour.


<?php
/*
	neato botvac
	this is a php module that dumps 
	the status of a neato
*/

include_once("botvac/NeatoBotvacApi.php");
include_once("botvac/NeatoBotvacClient.php");
include_once("botvac/NeatoBotvacRobot.php");
define("EOL",  "\n");

function DumpArray($heading, $array)
{
	$i = 0;
	echo $heading . ': ' . EOL;
	foreach ($array as $key => $value)
	{
		echo ' ' . $key . ' [' . $value . '] ';
		if ($i % 3 == 2)
			echo EOL;
		$i++;
	}
	echo EOL;
}

function Dump($name, $_robot)
{
	$state = $_robot->getState();

	echo $name;
	echo EOL;
	echo ' state [' . $state['state'] . ']' . EOL;
	echo EOL;
	DumpArray("details", $state['details']);
	echo EOL;
	DumpArray("commands", $state['availableCommands']);
	echo EOL;
	echo "schedule:" . EOL;
	$schedule = $_robot->getSchedule();
		echo   '  mode    day     start' . EOL;
	foreach ($schedule['data']['events'] as $line)
	{
		printf('   %d           %d       %s', $line['mode'], $line['day'], 
			$line['startTime']);
		echo EOL;
	}
}

// Main()
$email = "you@me.com";
$password = "doremi";
$token = false; 

$client = new NeatoBotvacClient($token);
$robots = array();
$auth = $client->authorize($email, $password);
if ($auth)
{
	$result = $client->getRobots();
	if ($result = $client->getRobots())
	{
		foreach ($result["robots"] as $robot) 
		{
			$_robot = new NeatoBotvacRobot($robot["serial"], 
				$robot["secret_key"]);
			Dump($robot['name'], $_robot);	
			
			//print_r($_robot->getState());
			//print_r($_robot->getSchedule());
		}
	}
	
}

?>

A video of the Neato in action.

Btw, I¬†named him¬†Cujo –¬†The Dog from Stephen King”

IMG_0133

My story ends with, If you hear a “swoosh swoosh” from my home and you know that I am not there. That’s Cujo making his rounds.

 

Upgrading to a Synology DS716+

A couple of months ago, I accidentally dropped my Synology DS212j. It was roughly an 8 feet drop from its home, top of my cabinet. So, after the drop I put it back (on top of my cabinet) and turn it on – it works. Kudos to Synology and the raid drives from Western Digital.

Btw, the Synology DS212j is a NAS (Network Attached Storage) device. I use it as a Time Machine Backup, Web Server with PHP ,launching CURL scripts (extracting information from Jira , Saleforce and other feeds), a Git Server hosting my source code from various internal DIY projects , a Cloud Station (this is similar to Dropbox). Am a curious guy ,and I spend whatever little time I have available, feeding my curiosity

This accident was a wake up call . Well, I don’t want to loose any media, source code or family pictures – that would be a bad thing. Plus, I needed to retire my spare linux box which was always on, the linux box is just a Gitlab host. So, I decided to purchase a DS716+. The DS716+ has Docker and Gitlab, Gitlab is available as an encapsulated Docker Container (more about Docker in future writeups), Thus, purchasing a DS716+ I can retire my old trusty Linux Box. Other features of the DS716+, a Plex Server ( I can host my entire non iTunes movie collection on my NAS).

The DS 212j has been demoted to a secondary NAS backup of the DS716+ . The GIT Server , Cloud Station, Web Server and CURL Scripts functions of the DS212j has been delegated to DS716+.

Upon purchase of the DS716+ I had to add more RAM to the device (8GB). Instructions on how to upgrade the DS716+ are well documented on Ross Fisher’s Blog. I will be running Docker on the DS716+ and would be adding other docker¬†containers, 2 GB of memory would not be sufficient.

Here ‘s a series of pictures of my ram upgrade and Hard Disk Installation. I am overall pleased with my new setup.

This slideshow requires JavaScript.