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.

 

Advertisements

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.

Got GitLab installed!!!

I have a Synology NAS 212 J purposed as a Time Machine backup, File Server, Git Host, Cloud Station and Media Center. I have had no problems with this NAS drive. No failure’s all my Photo’s, sources, music and video are stored securely on this device. All my media is managed and secured.

Until, I needed a way to browse through my GIT repositories and look at my notes. I have a lot of personal projects, a lot. I needed a way to organize my projects and make it easy to search. The best interface for source code viewing is GitHub frankly, I needed a localized version  of GitHub. So, enter  GitLab.

Here’s my dilemma GitLab requires a new version of the Synology NAS. Unfortunately, I do  not wish to upgrade this year. So I resurrected one of my old PC’s and Installed Ubuntu 14.0 and Installed GitLab. It was a straight forward process the only caveat, was to make the”Nginx server” (GitLabs webserver)  listen on a different port. The default port for Nginx is being used by an Apache server, which I will be using extensively in the coming weeks.

Success, I have a running version of GitLab and am migrating my important source code from the Synology Nas to my Ubuntu Server.  The way It looks I’ll be able to upgrade the NAS Drive next year to a GitLab capable device and do a full migration.

Btw, have been extremely busy the past few months, so had little chance to update my blog – stay tune tomorrow. “We” are releasing something. -Carpe Diem