Sep 3, 2019 - IoT Fireplace

Comments

IoT Fireplace

I’ve been asked to share how my IoT fireplace was setup so I decided to turn that knowledge into a blog post.

*Please read the disclaimer below.

Summary of why I created this

I’ve come to love my gas fireplace. I don’t have a need for heating the whole house as we spend a lot of our time in the living room. One issue I was having was the need for getting the living room heated before I come home as I don’t want to heat up rooms I wouldn’t be using. I decided to take matters into my own hands to make my fireplace connected to the cloud. It uses a Particle Photon, Relay board, Alexa, and IFTTT.

Required Hardware

Particle Photon (make sure to get the one with headers)
Relay Module
Jumper wire

Sofware

Particle Build (for developing the software) IFTTT (to hook up to Alexa) The Code

Demo

Setup

  1. Create an IFTTT account if you don’t already have one.

  2. Setup your Particle photon using the Particle app (iOS/Android stores). You’ll need to connect to the devices WiFi and enter your WiFi password to get it setup.

  3. Once it’s connected with your account you’ll need to flash the code to this device using Particle’s Web IDE.

Setting up the hardware

This setup may vary depending on what you’re fireplace looks like.

  1. If you have a fireplace switch on the wall do the following: First disconnect the fireplace switch from the leads it is connected to below the fireplace. Then hook up a jumper wire from the particle photon pin D0 to one lead from the fireplace switch on the wall (if applicable) and then the other lead to gnd on the particle phon device. This will watch to see if you flip the switch on and if so trigger fireplace on.

  2. There should be two leads that the fireplace switch used to connect to. When these leads are connected it will trigger the fireplace to turn on. Now take two jumper cables and connect them to two leads. Plug each of those leads into a relay board under K1 for example. Make sure that you plug them into the correct ports. One will be normally closed the other normally open. Meaning that if there is no power one will keep the leads connected. You do not want that in the event you have a powerouttage. So make sure when you plug in both leads that the fireplace does not turn on.

  3. Then you’ll need to connect a gnd pin to the relay board and then to the particle photon. Connect 5V from the photon to VCC on relay board. Finally connect IN1 to A0 PIN. You can test that this is working by using the Particle Tinker app from the app store and click on Pin A0 and toggle it between LOW and HIGH and it should turn the fireplace on/off.

  4. If you have any questions please don’t hesitate to reach out. (email address is below).

Triggering fireplace on from IFTTT app button

  1. Setup a new Applet

  2. Choose button widget (button press)

  3. Select Particle > call a function

  4. Select rlySwitchOn “fireplace”

  5. Do the same for fireplace off. You can optionally set it to turn

  6. Set name to Fireplace on for a set amount of time use the function (rlySwitch15, rlySwitch60, etc) for 15, 60, or 120 mins. It will turn off after this set time.

Triggering fireplace from Alexa

  1. Setup a new Applet

  2. Choose Alexa widget (say a specific phrase)

  3. Set the phrase something like turn fireplace on

  4. Select Particle > call a function

  5. Select rlySwitchOn “fireplace”

Setting up alert when Fireplace turns on (optional)

  1. Go to the webhooks page and click on documentation to get the proper link to use for these triggers. You’ll want to replace the event with fireplace-on or fireplace-off. Your link should look something like https://maker.ifttt.com/trigger/fireplace-on/with/key/las1kjsdfja0sdfja0sdff20aaf.

  2. Go back to the Particle integration page and select new integration put in the URL from above. Type should be POST, format will be Web Form, Device Any and event name fireplace-on or fireplace-off.

  3. Now head back to IFTTT and create a new Applet IF Webhook with event name of fireplace-on then THAT notification (note you will need the IFTTT app on your phone for this to be effective). Send notification from IFTTT app. Then hit create action. It will alert you anytime the fireplace has turned on. Do the same for fireplace-off.


That’s it you should be good to go!

If you have any questions or I missed anything that you think could be helpful to others please shoot me an email: floatgeek33+if@gmail.com

*Disclaimer This is for education purposes only. The author takes no risk associated with implemeting a device like this.

Feb 25, 2019 - What I've been up to lately

Comments

It’s been quite some time since I’ve last posted. I’ve been spending most of my free time working on side projects and the float business. I don’t plan to start posting regularly again but I would like to share some of the projects I’ve been working on over the last few years.

Holka-Garage (Code on GitHub)

This one was a lot of fun to implement! It all started with a couple of problems that I was having. One problem that my wife and I both shared was a concern that we left the garage open while at work or overnight. Another was that my garage door opener signal was very weak and I would have to be in my driveway to even open the garage. You might be thinking well why not just get a longer antenna but that’d only solve one problem and wouldn’t be nearly as enjoyable, the same goes for buying a smart garage door opener. This annoyance led me to creating software/hardware that would allow me to open my garage from any distance from my home.

Open via GPS

Open via button

Alexa/IFTTT Controlled Fireplace

I’ve come to love my gas fireplace. I don’t have a need for heating the whole house as we spend a lot of our time in the living room. One issue I was having was the need for getting the living room heated before I come home as I don’t want to heat up rooms I wouldn’t be using. I decided to take matters into my own hands to make my fireplace connected to the cloud. It uses a Particle Photon, Relay board, Alexa, and IFTTT.

Clarity No Show Alert

One concern I’ve had when owning a business that is run by a team of people is what happens if someone forgets their shift and has to open in the morning. To help ease my concern I decided to write a program that would verify a teammate is clocked in so long as there is someone booked for an appointment that morning. It is written in Node.js using Nightmare.js written on top of our booking software (FloatHelm) it sends text alerts to the managers and teammate who is supposed to be clocked in. If they still don’t clock in after 10 minutes it will call all of us. Below are photos of the system working and another one when I was working on the code outside in the warm summer weather.

Helm member automation

At Clarity Float Spa we like to reward our members who have a strong float practice by allowing them to bring a friend every 10 floats they do. In the past this was a manual process that our manager would have to do. It was taking up time each week that could be spent on more creative efforts. So I created a Nightmare.js automation script that would login to the FloatHelm (booking software we use) check to see if a member has reached 10 floats and then adds a task for the manager to send a gift card to that member. Eventually this will automatically generate the gift card and email it off to that member however we like having this be a more personal process at this time by directly emailing them.

Hue energy usage (Code on GitHub)

I like to focus some energy on limiting my electrical usage around my home. Not only does it add up on our monthly utility bills but there is an environmental cost too. I decided that tracking as many appliances and switching for energy efficient ones (if the numbers make sense) would be worth my time. One thing that was extremely difficult to track was what sort of electrical footprint my light bulbs were having. I have many Philips Hue LED light bulbs already so I wanted to know if I had incandescent bulbs which consume close to 6 times more electricity how much am I saving. This program the tracks energy usage for these bulbs around our house. It then reports the total costs and yearly and monthly costs.

Nest energy usage

Air conditioners are one of the most energy hungry appliances in a home or an apartment. Along the same lines as why I track my light bulb energy usage I wanted to do the same for my AC and Furnace. I previously had a Honeywell Smart thermostat which was great however it did not have a good API that I could use to pull data from it. This is what prompted me to purchase a Nest Gen 3 thermostat was because the API and documentation were excellent and would allow me to gather the data I needed to solve this problem. The program I wrote monitors energy usage and gives me an estimate on how much money will be spent on heating/cooling month to month.

Holka-Proxy

I have many different programs and services hosted on my DigitalOcean box. In order to help keep all of the programs secure using SSL I created a reverse proxy. This program handles incoming external requests and routes them securely over SSL to services running on my Ubuntu server.

Clarity-Waiver

At Clarity Float Spa in the past we would send out hand written letters to customers after their first float. This process was difficult to track what letters were written and by whom. To make this easier I hooked into our waiver’s API (SmartWaiver) using Node.js that then would sync data over to a Google Sheet in order for us to keep track of which letters were written. This allowed us to make the process much easier and required much less manual work to accomplish.

Coach.me Automation

I’m a huge fan of the website https://Coach.me it has helped me accomplish many self improvement goals that I set for myself and ultimately I believe has made myself a better person. There are many habits that I do daily (like meditation) that I would manually have to click every morning. I do like to keep track of this in the event I do fall out of a meditation habit. So instead of removing this habit from the app I wrote a little script using Nightmare.js that logs in every morning and checks off my daily habits automatically.

Simple-bank-helper (Code on GitHub)

I was wondering how much money I was spending month to month based on my current budget that was set up with my bank https://simple.com/. The way I had my budget setup make it difficult to calculate these numbers unless you went back manually and looked to see month to month what the expenses were in each of the goals I had created for that month’s budget. One thing you might be wondering is why not use expenses? At the time expenses had not come out yet (they came out a few months after I wrote this program actually). The program was written in Node.js and would help me determine where my money has been spent month to month.



If you want to talk or ask about what I’ve been working on drop me a line here: floatgeek33+wibutl@gmail.com

Jun 24, 2016 - Auto Zen Float Tent

Comments

I’ve had this idea of an automated float center for some time now. If you’d like to know more about this see my articles titled Automated Float Tank Center and How to Design An Automated Float Tank Center. Since I’ve started working on building a float center of my own called Clarity Float Spa my mindset on a fully automated float center has started to shift. I’ve come to realize that having a human element seems to be crucial to a successful float center. The post float discussion is extremely important, especially for those floatees who just had a profound life changing experience in the tank. So instead of going for a fully automated center I’ve started creating hardware and software to make running a float center easier. That being said I still think there is a place for a fully automated float tank center but it is not something I am pursuing at this time.

The software and hardware I’m creating is designed to make the process of running a float center much smoother. Instead of spending time worrying about the tanks you can focus on your customers and that personal interaction. These systems should be able to monitor the water quality including: ph, hydrogen peroxide, specific gravity, alkalinity, water level, and more. All of this data should be accessible from the internet and can be recorded automatically or manually from a smart phone or computer. There should be systems in place to also handle the lighting of the room, the float tank speakers (if applicable), and the pumps for filtering the water. Another system that would be useful could monitor if anything goes wrong: pump failure, water leakage, heater failure, etc. Keep in mind I do not have all of these systems developed yet but it is a work in progress. I have a Zen Float Tent and have created some software and harware around it to test out the automated float tank concept. If you’d like more info on the Zen Float Tent I have a post about it titled Thoughts About the Zen Float Tent.



Demos of the software

Automated Float Demo

A full demo of the automated software. Shows you how to setup the float by choosing: how long your float is, what color before/after, and which music to bring you out of the float. You may notice lights flashing near the middle (this typically is a warning to wrap up the shower before the float).

Appointment Reminders - Confirm

This is a program I wrote that uses Twilio and Google Calendar API to send appointment reminders for people who are coming to float. The system is setup by adding a user to Google Calendar and entering their cell phone number under notes (only their for first appointment). The software will know if it is their first time or not based on the number code in the title (00 or 01) and will only include tips for their first float. This shows the confirmation message.

Appointment Reminders - Cancel

This shows the cancelation message for the appointment reminder program.

IoT Intex Pump on/off

This is the custom Intex pump setup for the Zen Float Tent. It can be controlled via the website to turn it on and off. After each float the pump kicks on for 30-45 minutes.


IoT Intex Pump Timed

Demo of how to set a timer for how long the Intex pump should run. This can be run at anytime not just after a float.

Hydrogen Peroxide Doser

Note this is a prototype/proof of concept. It simply doses hydrogen peroxide throughout the day or from the website. You can also enter a custom amount in milliliters to dose manually.

Hydrogen Peroxide Container

This is the container that holds the hydrogen peroxide.

Water Sensor

This is a water sensor that will send a text message and turn off pumps if water is detected.

GFCI Alert

This program sends a text message alert when the GFCI outlet trips. This is good because most of the equipment (heater, pump, lights) should be hooked up to a GFCI outlet in a float room.

Summary

I see a bright future for the internet of things in the float community. I think it will allow more quality customer interaction and less things to have to maintain manually. At the end of the day it is the customers who really matter and taking some of the work away from the tanks and dedicating that time to more positive customer interactions seems to make sense. I think software like this will make float centers even more of an enjoyable place to work and be.

Want to talk about this further drop me a line here: floatgeek33@gmail.com