AWS IoT Button: Send POST request to Google Firebase

AWS IoT Button was introduced by Amazon as the developer version of it’s dash button.

The AWS IoT Button allows user to associate with an AWS Lambda instance to run some code snippet while press the button – either play with other AWS service such as Amazon SNS or integrate with your own service.

The button press has 3 types: single, double and long which can be found from the Lambda event.

Here is a simple code gist to demonstrate sending a POST request to Google Firebase client while the button is pressed:

(Keep in mind that AWS Lambda doesn’t have the npm install for your node.js code function – which means you have to upload a zipped file which contains the node.js node_modules folder as dependency)

“The following packages have been kept back” ?

debian
We might see this during a “apt-get upgrade” command on Ubuntu:

Calculating upgrade... Done
The following packages have been kept back:
  linux-cloud-tools-virtual linux-generic linux-headers-generic 
  linux-image-generic linux-signed-generic linux-signed-image-generic
  mysql-server-5.7 mysql-server-core-5.7
0 upgraded, 0 newly installed, 0 to remove and 8 not upgraded.

According to [this article]:

There we can see packages haven’t been upgraded, even though newer packages are available. This is because two new packages were introduced, and these upgrades depend upon it.

To upgrade it, and you’re ABSOLUTELY SURE that you want to install the new introduced packages:

apt-get dist-upgrade

The following message will appear and you’re good to go:

The following NEW packages will be installed:
  libevent-core-2.0-5 linux-cloud-tools-4.4.0-38 linux-cloud-tools-4.4.0-38-generic linux-headers-4.4.0-38 linux-headers-4.4.0-38-generic
  linux-image-4.4.0-38-generic linux-image-extra-4.4.0-38-generic linux-signed-image-4.4.0-38-generic
The following packages will be upgraded:
  linux-cloud-tools-virtual linux-generic linux-headers-generic linux-image-generic linux-signed-generic linux-signed-image-generic
  mysql-server-5.7 mysql-server-core-5.7
8 upgraded, 8 newly installed, 0 to remove and 0 not upgraded.

Note that this command may also remove your existing packages while upgrading – which means there are possibilities your system could be messed up.

Autostart/Upstart Mongodb on Ubuntu 16.04 Xenial Xerus

ubuntu-1604-thumb

Check for Mongodb systemctl status by:

sudo systemctl status mongod

Enable the Mongodb Autostart/upstart with system start up:

sudo systemctl enable mongod

Note: if both of the commands returning a service not found message, then check if the service entry exist in either

/lib/systemd/system/mongod.service

and

/etc/systemd/system/mongodb.service

If not then refer to Mongodb Documentation to create the systemd service file for Ubuntu 16.04 at this path:

/lib/systemd/system/mongod.service

With this content:

[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target
Documentation=https://docs.mongodb.org/manual
 
[Service]
User=mongodb
Group=mongodb
ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf
 
[Install]
WantedBy=multi-user.target

And go back to the start of this article.

Smartthings SmartApp send downstream cloud message with Google Firebase

smartthings-logo-horizontal.b229e786

  1. Follow instruction at Smartthings to create and configure the SmartApp.
  2. Follow the document to subscribe the things event. An example at github shows a sample code snippet of a working SmartApp – provides a HTTP GET API interface to list all the available things and the data.
  3. Also, follow the Firebase document to setup the client device SDK and note down the client device token, and the firebase server key.
  4. Write an event data handler to process the event and send downstream message by http POST. Sample code can be seen below.