<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/rss-style.xsl" type="text/xsl"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	    xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	     xmlns:dc="http://purl.org/dc/elements/1.1/"
	   xmlns:atom="http://www.w3.org/2005/Atom"
	     xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	  xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>
<channel>
	<title>Smart Home &#8211; Terence Eden’s Blog</title>
	<atom:link href="https://shkspr.mobi/blog/tag/smart-home/feed/" rel="self" type="application/rss+xml" />
	<link>https://shkspr.mobi/blog</link>
	<description>Regular nonsense about tech and its effects 🙃</description>
	<lastBuildDate>Fri, 10 Apr 2026 08:34:57 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://shkspr.mobi/blog/wp-content/uploads/2023/07/cropped-avatar-32x32.jpeg</url>
	<title>Smart Home &#8211; Terence Eden’s Blog</title>
	<link>https://shkspr.mobi/blog</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title><![CDATA[Howto: Connect IKEA's Trådfri Zigbee Bulbs to a Philips Hue Hub]]></title>
		<link>https://shkspr.mobi/blog/2025/07/howto-connect-ikeas-tradfri-zigbee-bulbs-to-a-philips-hue-hub/</link>
					<comments>https://shkspr.mobi/blog/2025/07/howto-connect-ikeas-tradfri-zigbee-bulbs-to-a-philips-hue-hub/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Sat, 12 Jul 2025 11:34:42 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[hue]]></category>
		<category><![CDATA[IoT]]></category>
		<category><![CDATA[lights]]></category>
		<category><![CDATA[Smart Home]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=61876</guid>

					<description><![CDATA[Written because it pissed me off. I hope this helps you in your hour of need.   You have to do one bulb at a time. If you plug in multiple bulbs and try to pair them, it won&#039;t work. I don&#039;t know why. You will need a portable lamp - or some other way to bring the bulb as close as possible to the hub. Open the Hue app, go through the &#34;Add Device&#34; sequence.   The app changes regularly and may be…]]></description>
										<content:encoded><![CDATA[<p>Written because it pissed me off. I hope this helps you in your hour of need.</p>

<ol>
<li>You have to do one bulb at a time. If you plug in multiple bulbs and try to pair them, it won't work. I don't know why.</li>
<li>You will need a portable lamp - or some other way to bring the bulb as close as possible to the hub.</li>
<li>Open the Hue app, go through the "Add Device" sequence.

<ul>
<li>The app changes regularly and may be different depending on your phone.</li>
<li>Get to the screen which says "Searching for lights".</li>
</ul></li>
<li>With the lamp off, plug in the bulb to the lamp.</li>
<li>Turn on the lamp.</li>
<li>After the light has come on, you need to <em>rapidly</em> switch it off then on again <strong>6</strong> times.

<ul>
<li>This means 12 switch flicks in total. Off, then on.</li>
</ul></li>
<li>After flicking the switch 12 times, the bulb should be on.</li>
<li>The bulb should start to dim then brighten. It will keep doing this.

<ul>
<li>If it doesn't, switch it off. Then switch it on. Wait a moment, then repeat the rapid toggle.</li>
<li>Try doing more than 6 toggles.</li>
</ul></li>
<li>Bring the bulb as close as possible to the Philips Hue Hub - touching it if possible.</li>
<li>After a moment, the bulb should stop pulsing and go to full brightness.

<ul>
<li>If it doesn't stop pulsing, use the app to "Add Device" again.</li>
</ul></li>
<li>All being well, the app will tell you that it is paired.

<ul>
<li>Continue the set up in the app.

<ul>
<li>Once done, you can switch off the lamp.</li>
</ul></li>
<li>If it doesn't work, switch off the lamp, have a drink, try again - making sure to read all the instructions <em>thoroughly</em>.</li>
</ul></li>
<li>Repeat for all other bulbs.</li>
</ol>

<p>Once done, the Trådfri lights work flawlessly. The colour is good as is their dimming curve. They are <a href="https://amzn.to/3IE1aA6">very expensive</a>. Personally, I'd go for the <a href="https://shkspr.mobi/blog/2024/10/adventures-with-ultra-cheap-zigbee-lightbulbs/">ultra-cheap ZigBee lightbulbs</a> from eWeLink.</p>

<h2 id="faq"><a href="https://shkspr.mobi/blog/2025/07/howto-connect-ikeas-tradfri-zigbee-bulbs-to-a-philips-hue-hub/#faq">FAQ</a></h2>

<h3 id="just-use-a-lightswitch"><a href="https://shkspr.mobi/blog/2025/07/howto-connect-ikeas-tradfri-zigbee-bulbs-to-a-philips-hue-hub/#just-use-a-lightswitch">juST use A ligHTswiTch</a></h3>

<p>Our kitchen is big. The lightswitches are far away. Also, I don't want them covered with cake-batter when I'm cooking.</p>

<h3 id="get-a-smart-lightswitch"><a href="https://shkspr.mobi/blog/2025/07/howto-connect-ikeas-tradfri-zigbee-bulbs-to-a-philips-hue-hub/#get-a-smart-lightswitch">gEt a sMarT LIGhtSWItCh</a></h3>

<p>Most UK homes don't have a neutral wire to the switch. That makes it hard to use smart-switches. The ones which work without neutral don't work with dimmable bulbs.</p>

<h3 id="privacy-and-security-is-important"><a href="https://shkspr.mobi/blog/2025/07/howto-connect-ikeas-tradfri-zigbee-bulbs-to-a-philips-hue-hub/#privacy-and-security-is-important">PRIVaCY AnD secuRItY is iMpORtAnt</a></h3>

<p>Yes it is. ZigBee bulbs don't have a way to "phone home" and are relatively resistant to being hacked.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=61876&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2025/07/howto-connect-ikeas-tradfri-zigbee-bulbs-to-a-philips-hue-hub/feed/</wfw:commentRss>
			<slash:comments>11</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Review: Octopus Home Mini - Real-Time Smart Meter Monitoring ★★☆☆☆]]></title>
		<link>https://shkspr.mobi/blog/2025/06/review-octopus-home-mini-real-time-smart-meter-monitoring/</link>
					<comments>https://shkspr.mobi/blog/2025/06/review-octopus-home-mini-real-time-smart-meter-monitoring/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Fri, 27 Jun 2025 11:34:29 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[electricity]]></category>
		<category><![CDATA[energy]]></category>
		<category><![CDATA[HomeAssistant]]></category>
		<category><![CDATA[IoT]]></category>
		<category><![CDATA[Smart Home]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=61481</guid>

					<description><![CDATA[I unashamedly love my smart-meter. Rather than having my energy provider guesstimate my bill, or having to send manual readings each month, it automatically beams them back to its mothership. It also enables interesting things like variable energy tariffs.  By design, the smart-meter is limited in how much data it can send back. You can choose to have readings sent monthly, weekly, daily, or…]]></description>
										<content:encoded><![CDATA[<p>I unashamedly <em>love</em> my smart-meter. Rather than having my energy provider guesstimate my bill, or having to send manual readings each month, it automatically beams them back to its mothership. It also enables interesting things like variable energy tariffs.</p>

<p>By design, the smart-meter is limited in how much data it can send back. You can choose to have readings sent monthly, weekly, daily, or half-hourly. There's no option for minute-by-minute precision. That's useful from a privacy perspective - and no doubt makes the network engineering simpler - but slightly annoying from a home-monitoring perspective.</p>

<p>The smart-meter has the ability to send real-time information to a local device using the ZigBee network. If you have an in-home display (IHD) then you'll have seen just how accurate it is.</p>

<p>As I've discovered, <a href="https://shkspr.mobi/blog/2020/04/hacking-your-smart-meter-part-1-zigbee/">you can't just pair any-old ZigBee device to your meter</a>. Luckily, Octopus have sent me the "Mini". A little device which connects to the smart-meter and your home WiFi, then reports usage every 10 seconds.  Let's put it through its paces.</p>

<h2 id="size"><a href="https://shkspr.mobi/blog/2025/06/review-octopus-home-mini-real-time-smart-meter-monitoring/#size">Size</a></h2>

<p>Mini by name, mini by nature!</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2025/06/Mini.webp" alt="Tiny pink device." width="2738" height="1541" class="aligncenter size-full wp-image-61492">

<p>It's rare to find a device smaller than its plug. I half-wonder if they could have integrated it and just made it into a smartplug.</p>

<p>Annoyingly, it is <em>micro</em> USB. I am a USB-C maximalist. There's no reason this device shouldn't use the same cable as everything else I own.</p>

<h2 id="installation"><a href="https://shkspr.mobi/blog/2025/06/review-octopus-home-mini-real-time-smart-meter-monitoring/#installation">Installation</a></h2>

<p>Plug the Mini in - ideally within 5m of your smartmeter - and wait for the blinkenlight. Follow the in-app instructions. Because, like every modern device, it needs an app. You need to install the standard Octopus Android app, and can then add the Mini to your account and to your WiFi.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2025/06/24ghz.webp" alt="Warning about using 2.4GHz WiFi." width="490" height="367" class="aligncenter size-full wp-image-61493">

<p>Like all cheap IoT devices, it will only work on 2.4㎓, so you may need to adjust which network your phone is on.</p>

<h2 id="and-then"><a href="https://shkspr.mobi/blog/2025/06/review-octopus-home-mini-real-time-smart-meter-monitoring/#and-then">And then…</a></h2>

<p>That's it. Every 10 seconds it sends an update to Octopus. You can use the app or the website to view your current consumption or to see your last 5 minutes or last 30 minutes usage.</p>

<p><a href="https://blog.v-s-f.co.uk/2023/07/near-realtime-energy-consumption-data-with-octopus-home-mini/">If you're a dab-hand with the API, you can poll that</a>. Or you can connect it to HomeAssistant.</p>

<h2 id="downside"><a href="https://shkspr.mobi/blog/2025/06/review-octopus-home-mini-real-time-smart-meter-monitoring/#downside">Downside</a></h2>

<p>In theory this is nifty, but there are a few things I'm not keen on.</p>

<ul>
<li>Export readings simply don't work for some brands of smart meter. That's an annoyance - my meter can send half-hourly readings for export, but the Mini just shows that I'm using zero Watts.</li>
<li>No local connection. It sends the data to Octopus, so I have to use their API to get the data. I'd like the ability to stream it directly from the Mini.</li>
<li>USB-micro. We live in the future. USB-C or GTFO!</li>
</ul>

<p>Honestly, a bit disappointing. If you don't have solar panels - or your meter works correctly - this could be very useful. Even so, the lack of an local API is a bit of a buzzkill.  Sadly, for my purposes, it isn't very useful.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=61481&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2025/06/review-octopus-home-mini-real-time-smart-meter-monitoring/feed/</wfw:commentRss>
			<slash:comments>8</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Review: WiFi connected Air Conditioner ★★★★⯪]]></title>
		<link>https://shkspr.mobi/blog/2025/03/review-wifi-connected-air-conditioner/</link>
					<comments>https://shkspr.mobi/blog/2025/03/review-wifi-connected-air-conditioner/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Tue, 18 Mar 2025 12:34:03 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[gadgets]]></category>
		<category><![CDATA[IoT]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[Smart Home]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=58779</guid>

					<description><![CDATA[Summer is coming. The best time to buy air-con is before it gets blazing hot. So, off to the Mighty Internet to see if I can find a unit which I can attach to my burgeoning smarthome setup.  I settled on the SereneLife 3-in-1 Portable Air Conditioning Unit. It&#039;s a small(ish) tower, fairly portable, claims 9000 BTU, is reasonable cheap (£160ish depending on your favourability to the algorithm), …]]></description>
										<content:encoded><![CDATA[<p>Summer is coming. The best time to buy air-con is <em>before</em> it gets blazing hot. So, off to the Mighty Internet to see if I can find a unit which I can attach to my burgeoning smarthome setup.</p>

<p>I settled on the <a href="https://amzn.to/4kAjuZs">SereneLife 3-in-1 Portable Air Conditioning Unit</a>. It's a small(ish) tower, fairly portable, claims 9000 BTU, is reasonable cheap (£160ish depending on your favourability to the algorithm), and has WiFi.</p>

<p><a href="https://amzn.to/4kAjuZs"><img src="https://shkspr.mobi/blog/wp-content/uploads/2025/03/81gZvvLh5PL._AC_SL1024_.jpg" alt="Air con unit is 30 cm wide and deep. 70cm tall." width="1024" height="1024" class="aligncenter size-full wp-image-58816"></a></p>

<h2 id="why-wifi"><a href="https://shkspr.mobi/blog/2025/03/review-wifi-connected-air-conditioner/#why-wifi">Why WiFi?</a></h2>

<p>I know it is a trope to complain about appliances being connected to the Internet for no real benefit. Thankfully, I don't have to listen to your opinion. I find it useful to be able to control the temperature of my bedroom while I'm sat downstairs. I want to be able switch things on or off while I'm on the bus home.</p>

<p>Most manufacturers have crap apps. Thankfully, SereneLife use the generic <a href="https://www.tuya.com/">Tuya</a> platform, which means it works with the <a href="https://www.tuya.com/product/app-management/all-in-one-app">Smart Life app</a>.</p>

<p>Which has the side benefit of having an Alexa Skill! So I can shout at my robo-servant "ALEXA! COOL DOWN THE ATRIUM!" and my will be done.  Well, almost! When I added the app to my Tuya, this instantly popped up from my Alexa:</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2025/03/alexa.png" alt="Alexa saying I can control my device by saying &quot;turn on 移动空调 YPK--（双模+蓝牙）低功耗&quot;." width="504" height="217" class="aligncenter size-full wp-image-58820">

<p>I renamed it to something more pronounceable for me! Interestingly, "蓝牙" means "Bluetooth" - although I couldn't detect anything other than WiFi.</p>

<p>Of course, being an Open Source geek, I was able to add it to my <a href="https://www.home-assistant.io/">HomeAssistant</a>.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2025/03/home-assistant-air-con-fs8.png" alt="Control showing current temperature and target temp." width="561" height="575" class="aligncenter size-full wp-image-58839">

<p>Again, the <a href="https://www.home-assistant.io/integrations/tuya/">Tuya integration</a> worked fine and showed me everything the device was capable of.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2025/03/Settings-–-Home-Assistant-fs8.png" alt="Home Assistant dashboard showing information about it." width="1003" height="370" class="aligncenter size-full wp-image-58840">

<h2 id="interface-remote-and-app"><a href="https://shkspr.mobi/blog/2025/03/review-wifi-connected-air-conditioner/#interface-remote-and-app">Interface, Remote, and App</a></h2>

<p>The manual control on the top of the unit is pretty simple. Press big buttons, look at LEDs, hear beep, get cold.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2025/03/top.jpg" alt="Basic button interface on top of unit." width="971" height="728" class="aligncenter size-full wp-image-58824">

<p>The supplied remote (which came with two AAA batteries) is an unlovely thing.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2025/03/remote.jpg" alt="Cheap looking remote with indistinguishable buttons." width="753" height="564" class="aligncenter size-full wp-image-58823">

<p>Fine as a manual control, but why the blank buttons?</p>

<p>Both remote and direct interface are good enough for turning on and off, setting the temperature, and that's about it.</p>

<p>As well as manual control, the manual claims that you can set actions based on the following:</p>

<ul>
<li>Temperature</li>
<li>Humidity</li>
<li>Weather</li>
<li>PM2.5 Levels</li>
<li>Air Quality</li>
<li>Sunrise &amp; Sunset Times</li>
<li>Device Actions (e.g., turn on/off)</li>
</ul>

<p>I couldn't find most of those options in the Tuya app. It allows for basic scheduling, device actions, and local weather.</p>

<h2 id="cooling-and-noise"><a href="https://shkspr.mobi/blog/2025/03/review-wifi-connected-air-conditioner/#cooling-and-noise">Cooling and Noise</a></h2>

<p>This unit isn't silent. The various mechanical gurglings and hum of the fan is, thankfully, white-noise. The label claims 65dB - which seems to match my experience based on <a href="https://ehs.yale.edu/sites/default/files/files/decibel-level-chart.pdf">this comparison chart</a>. You probably want earplugs if you're trying to sleep when it's in the same room - but it isn't hideous.</p>

<p>It does play a cheerful little monophonic tune when it is plugged in for the first time, and it beeps when instructed to turn on and off.</p>

<h2 id="windows"><a href="https://shkspr.mobi/blog/2025/03/review-wifi-connected-air-conditioner/#windows">Windows</a></h2>

<p>In order to generate cool air, the unit needs to remove heat. Where does it put that heat? Outside! So this comes with a hose which you can route out a window.  The hose is relatively long and flexible, so the unit doesn't need to be right next to a window.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2025/03/hose.jpg" alt="Flexible host on the exhaust port." width="1017" height="572" class="aligncenter size-full wp-image-58822">

<p>The unit came with a vent designed for a sliding sash window. The windows we have are hinged.  <a href="https://amzn.to/4iEx5x1">Adapters are about £15 each</a>, so factor that in when buying something like this.</p>

<h2 id="cost"><a href="https://shkspr.mobi/blog/2025/03/review-wifi-connected-air-conditioner/#cost">Cost</a></h2>

<p>It claims to be 960W and my energy monitor showed that to be broadly accurate.  Very roughly, that's about 30p/hour. We are only running it when the sun is shining, so it either consumes solar power directly or from our battery storage.</p>

<p>£160 is bargain bucket when it comes to air-con units and, frankly, I was surprised to find one this cheap which also had WiFi. I suspect prices will rocket as temperatures get warmer.</p>

<h2 id="features"><a href="https://shkspr.mobi/blog/2025/03/review-wifi-connected-air-conditioner/#features">Features</a></h2>

<p>As well as the air-con, it is also a dehumidifier and fan. The fan is basically fine at pushing air around.</p>

<p>The dehumidifier has a hosepipe for draining into a bucket or plumbing in to your pipes. There's a small internal tank which can be emptied with the supplied hose.</p>

<blockquote><p>This appliance features a self-evaporating system that enhances performance and energy efficiency by reusing condensed water to cool the condenser. However, if the built-in water container becomes full, the appliance will display "FL" and emit a buzzing sound.</p></blockquote>

<p>I didn't use this function because, thankfully, our place isn't damp.</p>

<h2 id="verdict"><a href="https://shkspr.mobi/blog/2025/03/review-wifi-connected-air-conditioner/#verdict">Verdict</a></h2>

<p>The UK gets very few scorching days and, usually, a fan and some open windows are enough to relieve the heat. But the climate is changing and I expect more sweltering nights in our future. £160 seems like a reasonable sum for an experiment - I don't expect to be heartbroken if this only last a few years.  Most of the time it is going to be stuck in the loft waiting for the heatwave.</p>

<p>It isn't particularly light, but it does have castors so it is easy to roll around the house.</p>

<p><a href="https://pyleaudio.com/Manuals/SLPAC805W.pdf">The manual</a> is comprehensive and written in plain English.</p>

<p>As it hasn't been particularly warm this spring, I can't truly say how effective it is - but running it for a while made a noticeable difference to the temperature. Cold air pumped out of the front of the unit in sufficient quantities.</p>

<p>If you think you'll need extra cooling in the coming months, this seems like a decent bit of kit for the money. The Tuya platform is cheap enough to stick in most domestic appliances without breaking the bank.</p>

<p>ALEXA! CHILL MY MARTINI GLASSES!</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=58779&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2025/03/review-wifi-connected-air-conditioner/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Why are there no PowerLine Smart Plugs?]]></title>
		<link>https://shkspr.mobi/blog/2023/12/why-are-there-no-powerline-smart-plugs/</link>
					<comments>https://shkspr.mobi/blog/2023/12/why-are-there-no-powerline-smart-plugs/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Sun, 03 Dec 2023 12:34:14 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[IoT]]></category>
		<category><![CDATA[Smart Home]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=48653</guid>

					<description><![CDATA[Another blog post which is a long and complex search query.  I have a bunch of smart plugs. Some use WiFi, some use Zigbee, some use Bluetooth. None of them use PowerLine Ethernet. Why is that?  I have a bunch of PowerLine Ethernet adapters. They let me use my home&#039;s electrical wiring as a network. They also let me plug electrical items into them. But none of them can be controlled remotely. Why…]]></description>
										<content:encoded><![CDATA[<p>Another blog post which is a <a href="https://www.henrikkarlsson.xyz/p/search-query">long and complex search query</a>.</p>

<p>I have a bunch of smart plugs. Some use WiFi, some use Zigbee, some use Bluetooth. None of them use PowerLine Ethernet. Why is that?</p>

<p>I have a bunch of PowerLine Ethernet adapters. They let me use my home's electrical wiring as a network. They also let me plug electrical items into them. But none of them can be controlled remotely. Why is that?</p>

<p>I want to take one of these:
<img src="https://shkspr.mobi/blog/wp-content/uploads/2015/05/WeMo.jpg" alt="A WiFi smart socket" width="250" height="250" class="aligncenter size-full wp-image-26202"></p>

<p>And mix it up with one of these:
<img src="https://shkspr.mobi/blog/wp-content/uploads/2013/11/MaxValue-HomePlug-3-Ports-Passthrough.jpg" alt="A homeplug with three ethernet sockets and a passthrough connection." width="600" height="491" class="aligncenter size-full wp-image-28400"></p>

<p>That way I'd be able to monitor the power consumption of a device and remotely operate it. It wouldn't need WiFi, it would have a permanent and reliable connection to my LAN.</p>

<p>I've searched AliExpress and I can't find what I'm looking for. If you think this exists - or if you make it - please let me know!</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=48653&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2023/12/why-are-there-no-powerline-smart-plugs/feed/</wfw:commentRss>
			<slash:comments>20</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Adventures in home automation - Home Assistant on a Raspberry Pi 2]]></title>
		<link>https://shkspr.mobi/blog/2023/03/adventures-in-home-automation-home-assistant-on-a-raspberry-pi-2/</link>
					<comments>https://shkspr.mobi/blog/2023/03/adventures-in-home-automation-home-assistant-on-a-raspberry-pi-2/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Sun, 05 Mar 2023 12:54:07 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[gadgets]]></category>
		<category><![CDATA[IoT]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[Smart Home]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=45046</guid>

					<description><![CDATA[They say that The Best Camera Is The One That&#039;s With You - the same is true of Raspberries Pi.  As much as I&#039;d love a 4B, they seem permanently sold out.  So I dug through my scrapheap of old tech and resurrected an ancient Pi2.  It&#039;s old, outdated, slow, with limited RAM, and has a bunch of much-abused GPIO pins. But it works and - crucially - is still supported by Home Assistant OS.  Well...…]]></description>
										<content:encoded><![CDATA[<p>They say that <a href="https://amzn.to/3xNHAc5">The Best Camera Is The One That's With You</a> - the same is true of Raspberries Pi.  As much as I'd love a 4B, they seem <a href="https://thepihut.com/products/raspberry-pi-4-model-b?variant=20064052674622&amp;src=raspberrypi">permanently sold out</a>.</p>

<p>So I dug through my scrapheap of old tech and resurrected an ancient Pi2.  It's old, outdated, slow, with limited RAM, and has a bunch of much-abused GPIO pins. But it works and - crucially - is still supported by Home Assistant OS.</p>

<p>Well... ish!</p>

<p>The official Home Assistant installation guide for the Pi says that you can use a:</p>

<blockquote><p><a href="https://www.home-assistant.io/installation/raspberrypi">Raspberry Pi 4 (Raspberry Pi 3 is ok too, if you have one laying around).</a></p></blockquote>

<p>But, if you go to the <a href="https://github.com/home-assistant/operating-system/releases">latest releases page</a> and then click "show all assets", you'll be rewarded with a file called <code>haos_rpi2-9.5.img.xz</code> - that's Home Assistant OS for the Raspberry Pi 2. Sweet!</p>

<p>From there it was just a case of following the installation steps. But... my goodness the Pi 2 is slllloooowwwww.</p>

<p>I could see that the Pi was responding to pings, but the web interface wasn't coming up. I left it for a few hours and did something more interesting. And, when I came back, it worked!</p>

<p>But, that slowness becomes a recurrent theme. Not in the interface itself, which is delightfully snappy, but it is slow on any form of add-on installation, upgrade, or reboot. A lot of waiting is involved.  Even something like viewing sensor history slows to a crawl.</p>

<p>It quickly detected all my smarthome gadgets (I have far too many). Integration was pretty easy - assuming you trust the system with your username and passwords... Most of these devices don't have OAuth. Some don't even have official APIs. But HA was able to interact with nearly everything.</p>

<p>Of course, that does mean the user interface is <em>a lot!</em></p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2023/02/Home-Assistant-Screenshot-fs8.png" alt="Screenshot of a website with loads of toggle switches." width="1024" height="494" class="aligncenter size-full wp-image-45047">

<p>As long as you're happy to fiddle around making everything just right, then the UI isn't too bad.</p>

<p>The phone UI is great! It interfaces directly with Android 13's quick actions. I was able to add a couple of buttons to my phone to do common tasks like switch off lights, and turn on electric blankets.  The app is a bit of a power hog - because it is continually polling for updated data about your home. I put it in battery jail - I care more about control than reports.</p>

<p>Installing update is slow. Installing new integrations is slow. Rebooting is slow. But, thankfully, these are things you only do rarely. For switching lights on and off, getting <a href="https://shkspr.mobi/blog/2018/11/building-an-alexa-powered-electric-blanket/">the bed warm</a>, and checking the air quality, it's fast enough.</p>

<p>At the moment, I'm using sloppy security. The Pi has the usernames and passwords for my various gadgets and talks to them via their official APIs. I guess I could reflash them all with FLOSS firmware - but that seems like a bit too much effort at this point.</p>

<p>Similarly, the Pi is running Let's Encrypt and uses Dynamic DNS to give me a permanent connection back to my home. I'm reasonably sure the security is good enough - but I probably need to <a href="https://shkspr.mobi/blog/2016/03/designing-a-home-network-for-hostile-devices/">Design a Home Network for Hostile Devices</a>.</p>

<p>But, for now, I'm impressed with Home Assistant. It isn't quite "it just works" - but it's good enough for the enthusiast who is willing to put up with a few rough edges.</p>

<p>And I'm pleased my old Pi has a new purpose in life.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=45046&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2023/03/adventures-in-home-automation-home-assistant-on-a-raspberry-pi-2/feed/</wfw:commentRss>
			<slash:comments>13</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Inside a smart Infrared heater]]></title>
		<link>https://shkspr.mobi/blog/2022/03/inside-a-smart-infrared-heater/</link>
					<comments>https://shkspr.mobi/blog/2022/03/inside-a-smart-infrared-heater/#respond</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Mon, 21 Mar 2022 12:34:31 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[IoT]]></category>
		<category><![CDATA[Smart Home]]></category>
		<category><![CDATA[tuya]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=42201</guid>

					<description><![CDATA[I&#039;ve been experimenting with Far Infrared heating. The panel itself is fairly boring technology. A large solid-state &#34;thing&#34; which turns electricity into Infrared energy.  But what&#039;s the &#34;smarts&#34; in it which allows it to be controlled? TO THE SCREWDRIVERS, ROBIN!  There&#039;s a single board hiding in the boring grey shell.  It&#039;s a QNQ010W - which doesn&#039;t have any publicly available data.  KB-5150…]]></description>
										<content:encoded><![CDATA[<p>I've been <a href="https://shkspr.mobi/blog/2022/03/experiments-with-far-infrared-heating/">experimenting with Far Infrared heating</a>. The panel itself is fairly boring technology. A large solid-state "thing" which turns electricity into Infrared energy.</p>

<p>But what's the "smarts" in it which allows it to be controlled? TO THE SCREWDRIVERS, ROBIN!</p>

<p>There's a single board hiding in the boring grey shell.  It's a <code>QNQ010W</code> - which doesn't have any publicly available data.
<img src="https://shkspr.mobi/blog/wp-content/uploads/2022/03/Ciruit-Board-QNQ010W-KB-5150.jpg" alt="Ciruit Board QNQ010W KB-5150." width="870" height="1453" class="aligncenter size-full wp-image-42204">
<code>KB-5150</code> appears to be a popular name of a variety of power supply boards.</p>

<p>Flip it over, and this is what we see:
<img src="https://shkspr.mobi/blog/wp-content/uploads/2022/03/Circuit-board-flip.jpg" alt="A circuit board with springs." width="1024" height="578" class="aligncenter size-full wp-image-42203">
The buttons are… springs?</p>

<p>There's an 8x8 LED matrix for the display board.</p>

<p>Speaking of which, what's the "brains" behind the WiFi? ZOOM! ENHANCE! ROTATE!</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2022/03/Close-up-of-Tuya-module.jpg" alt="Close up of Tuya module" width="800" height="835" class="aligncenter size-full wp-image-42202">

<p>Ah, the ubiquitous <a href="https://developer.tuya.com/en/docs/iot/wifie1smodule?id=K9605thnvg3e7"><code>TYWE1S</code></a> from Tuya.</p>

<p>There you go, nice and simple.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=42201&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2022/03/inside-a-smart-infrared-heater/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Gadget Review: ASAKUKI Essential Oil Diffuser - with WiFi! ★★★★☆]]></title>
		<link>https://shkspr.mobi/blog/2022/03/gadget-review-asakuki-essential-oil-diffuser-with-wifi/</link>
					<comments>https://shkspr.mobi/blog/2022/03/gadget-review-asakuki-essential-oil-diffuser-with-wifi/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Sat, 19 Mar 2022 12:34:32 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[asakuki]]></category>
		<category><![CDATA[gadget]]></category>
		<category><![CDATA[IoT]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[Smart Home]]></category>
		<category><![CDATA[tuya]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=42191</guid>

					<description><![CDATA[All gadgets have to include WiFi now. That&#039;s the law!  Does your home smell horrible? Would you like it to smell lovely? Well, friends, the good folk at Asakuki think that I&#039;m the sort of person who knows lots of putrid people. So they sent me this Essential Oil Diffuser.    It&#039;s pretty plug-and-play.  Pour some water into the supplied jug, tip it into the unit, shake in a few drops of your…]]></description>
										<content:encoded><![CDATA[<p>All gadgets have to include WiFi now. That's the law!</p>

<p>Does your home smell horrible? Would you like it to smell lovely? Well, friends, the good folk at Asakuki think that I'm the sort of person who knows lots of putrid people. So they sent me this Essential Oil Diffuser.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2022/03/Oils.jpg" alt="A bunch of different oils." width="800" height="450" class="aligncenter size-full wp-image-42194">

<p>It's pretty plug-and-play.  Pour some water into the supplied jug, tip it into the unit, shake in a few drops of your favourite flavour, hit a button, and WHOOOSH!</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2022/03/colour-and-smoke.jpg" alt="A diffuser lit up blue and bellowing smoke." width="800" height="600" class="aligncenter size-full wp-image-42193">

<p>As a basic diffuser, it's great. Smells come out of it quickly and fairly quietly. You can fiddle with the lights, dim them, and turn them off. But it's the WiFi stuff that I like to fiddle with!</p>

<h2 id="tuya-to-your-rescue"><a href="https://shkspr.mobi/blog/2022/03/gadget-review-asakuki-essential-oil-diffuser-with-wifi/#tuya-to-your-rescue">Tuya to your rescue</a></h2>

<p>Every cheap WiFi device seems to use the ubiquitous Tuya platform - and this is no exception. Power it on, scan for the device in the app, click a button, and it's enabled.  The second it connected, my Alexa also chirped up to say it had found it.
<img src="https://shkspr.mobi/blog/wp-content/uploads/2022/03/alexa-dffuser.png" alt="Pop up annoucing Alexa has discovered the device." width="540" height="199" class="aligncenter size-full wp-image-42196"></p>

<p>You'll almost certainly want to rename the device - because that's a bit of a mouthful.</p>

<p>What amazes is me is just how cheap it is to add "smarts" to a device. The <a href="https://amzn.to/3KP6yfJ">basic diffuser without WiFi</a> costs about £25. The <a href="https://amzn.to/3qd45UF">WiFi enabled version is £32</a>! Seven quid to add brains to a device. Nice!</p>

<p>The Tuya app has a bunch of options. If you try and turn it on without water in there, it will refuse your request. Which is a good safety feature.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2022/03/Please-add-water.png" alt="Warning saying the device can't be operated without water." width="540" height="540" class="aligncenter size-full wp-image-42199">

<p>You can set the intensity of the misting, and set a timer for how long to run the device.
<img src="https://shkspr.mobi/blog/wp-content/uploads/2022/03/weak-mode.png" alt="Weak mode displayed on screen." width="540" height="405" class="aligncenter size-full wp-image-42197"></p>

<p>And there's a standard colour wheel so you can set the mood just right. Or set it to disco mode.
<img src="https://shkspr.mobi/blog/wp-content/uploads/2022/03/colour.png" alt="Colour wheel." width="540" height="540" class="aligncenter size-full wp-image-42198"></p>

<h2 id="downsides"><a href="https://shkspr.mobi/blog/2022/03/gadget-review-asakuki-essential-oil-diffuser-with-wifi/#downsides">Downsides</a></h2>

<p>There are a couple of small niggles. Mostly around power. The unit's power connector is on the bottom:
<img src="https://shkspr.mobi/blog/wp-content/uploads/2022/03/Bottom-with-power.jpg" alt="A wooden circle with a power socket on the bottom." width="800" height="600" class="aligncenter size-full wp-image-42195">
So you can't unplug it while there's water in the device without risking a spillage.</p>

<p>The connector is a barrel jack rather than USB. So make sure you don't damage it.</p>

<p>The Alexa integration is a bit weird.</p>

<p><img src="https://shkspr.mobi/blog/wp-content/uploads/2022/03/Alexa-options.png" alt="Screenshot of the Alexa control panel. " width="540" height="640" class="aligncenter size-full wp-image-42207">
You can turn the device on or off, but you can't set the colour of the light - nor its brightness.</p>

<h2 id="final-thoughts"><a href="https://shkspr.mobi/blog/2022/03/gadget-review-asakuki-essential-oil-diffuser-with-wifi/#final-thoughts">Final Thoughts?</a></h2>

<p>If you like a variety of scents, then this is a decent diffuser. For the £7 extra that it costs to put WiFi in this, I reckon it's worth it just to be able to yell "ALEXA! MAKE IT SMELL NICE!"</p>

<p>The Tuya app is basic, but works. Alexa integration could use a little polish but, for the price, it's hard to complain. I'd like to see a future version have a more sensibly placed power socket and USB-C.</p>

<p>I'm told that this will be part of Amazon's Spring Sale (April 1st to April 13) - so expect some discounts around then.</p>

<p>If there's a gadget you'd like me to review, <a href="https://edent.tel/">please contact me</a>!</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=42191&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2022/03/gadget-review-asakuki-essential-oil-diffuser-with-wifi/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Experiments with Far Infrared Heating ★★★★☆]]></title>
		<link>https://shkspr.mobi/blog/2022/03/experiments-with-far-infrared-heating/</link>
					<comments>https://shkspr.mobi/blog/2022/03/experiments-with-far-infrared-heating/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Thu, 10 Mar 2022 12:34:05 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[FIR]]></category>
		<category><![CDATA[green]]></category>
		<category><![CDATA[infrared]]></category>
		<category><![CDATA[IoT]]></category>
		<category><![CDATA[Smart Home]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=42086</guid>

					<description><![CDATA[What with the situation in the world, I&#039;ve been trying to reduce our domestic gas consumption. Looking through our smart meter readings, our biggest usage is heating (in winter) followed by hot water (showers and baths) then cooking.  We have a Tado smart thermostat which turns the heating off when we&#039;re out - but I wondered if there was something more efficient we could do.  Burning gas to heat…]]></description>
										<content:encoded><![CDATA[<p>What with the <em>situation</em> in the world, I've been trying to reduce our domestic gas consumption. Looking through our smart meter readings, our biggest usage is heating (in winter) followed by hot water (showers and baths) then cooking.  We have a <a href="https://shkspr.mobi/blog/tag/tado/">Tado smart thermostat</a> which turns the heating off when we're out - but I wondered if there was something more efficient we could do.</p>

<p>Burning gas to heat water to pump around a home is… daft. It's noisy, expensive, requires a yearly service, and is difficult to control on a per-room basis. It is a fossil fuel with a tendency to explode. Yuck!</p>

<p>Heat pumps are marginally better. But they require a huge box installed and, possibly, bigger radiators. They still rely on pumping fluids around. Eugh!</p>

<p>So I decided to experiment with <a href="https://web.archive.org/web/20220317213919/https://www.theideastring.com/infrared-heating/">Far Infrared Heating</a>.  The science is simple - a thin flat panel which pumps out infrared radiation - and <em>nothing else</em>. No light, no whirring fans, no stored oil - just heat.</p>

<p>Before replacing every single radiator in the house, I decided to get the cheapest panel I could find which included WiFi (hey, what else did you expect from this blog?!).  This is it:</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2022/03/white-square.jpeg" alt="A white square, about 60cm wide, with a europlug cable." width="680" height="680" class="aligncenter size-full wp-image-42111">

<p>Boring, innit? And it only cost £100 delivered.</p>

<p>It's the <a href="https://web.archive.org/web/20230122052452/https://euroelectronics.eu/products/maclean-mce513-ir-panel-heater-360w-wifi-remote-control-wall-mounted-or-free-standing?_pos=2&amp;_sid=a45354839&amp;_ss=r">Maclean 360W WiFi heater</a>. As far as I can tell, it's a rebadged OEM heater.  It uses the near-ubiquitous Tuya platform, which means there's a basic app and it can be controlled by Alexa.</p>

<p>There's also some on-panel buttons for controlling it, if you don't trust IoT devices.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2022/03/lights.jpeg" alt="LED display with lit up buttons." width="680" height="680" class="aligncenter size-full wp-image-42112">

<p>The controls are physically on the panel. The panel gets painfully hot to the touch so, sensibly, the area around the buttons has no heat. That said, it's easy to misjudge where your finger is going and feel a slight pain.  There's an infrared remote control which feels plasticy and clicky and is just grim to use.</p>

<p>It's pretty thin, only 35mm, which includes the power box - but closer to 40mm if you use the included mounting brackets. And it is light - only a couple of kilos. These things are designed to be mounted on ceilings or walls. Mine also came with little feet to make it free-standing.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2022/03/back.jpg" alt="Back of the heater - with attached mounting points." width="800" height="600" class="aligncenter size-full wp-image-42113">

<h2 id="thermal-imaging"><a href="https://shkspr.mobi/blog/2022/03/experiments-with-far-infrared-heating/#thermal-imaging">Thermal Imaging</a></h2>

<p>Using my <a href="https://shkspr.mobi/blog/2021/10/gadget-review-seek-infrared-camera/">cheap Thermal Camera</a>, I took a couple of photos of the device in use.</p>

<p>Here's the general heat distribution:
<img src="https://shkspr.mobi/blog/wp-content/uploads/2022/03/Heat-distribution.jpg" alt="Heat distribution on the panel rendered." width="480" height="640" class="aligncenter size-full wp-image-42140"></p>

<p>The top of the panel is quite a bit warmer than the bottom. This is also observable through touching the panel briefly.  What's more interesting is the right hand side of the panel - where the controls are:</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2022/03/Right-hand-side-cool.jpg" alt="Right hand side is quite cool." width="480" height="640" class="aligncenter size-full wp-image-42141">

<p>Despite the controls only being in the top corner, the entire column is considerably cooler. Effectively, this is a 50cm panel with a 10cm control space.</p>

<h2 id="what-i-like-about-the-system"><a href="https://shkspr.mobi/blog/2022/03/experiments-with-far-infrared-heating/#what-i-like-about-the-system">What I like about the system</a></h2>

<p>The heating is instant. With a gas-powered radiator, I have to wait for the water to heat up and get pumped to the room. With this, I flick a switch and it is on. You start feeling the heat straight away.</p>

<p>The heat is directional - the back of the panel doesn't get very warm. Unlike a normal radiator which quite often needs a "reflector" to make the best use of the heat.</p>

<p>The aim of FIR is to build up "thermal mass". Rather than heating the air - which can be swept away in an instant - it heats objects which then continue to radiate warmth.</p>

<p>Because each panel is wired in individually, I'm not wasting energy by heating rooms I'm not in. I know I could dial down the radiator valves - or even get smart ones - but this just targets the rooms I'm in.  And, when I leave - the heat can be instantly switched off.</p>

<p>Completely silent - no whooshing of gas or gurgling of water. Well, OK, there is a small speaker which beeps whenever it receives a command. And, as with anything, there can be the occasional creak due to thermal expansion. But it's a lot quieter than my existing heating system.</p>

<p>The Tuya app is a little basic, but it works. I can schedule rooms to be on or off, control them directly, or use the built-in thermostat. Or set the heating to come on when the local weather is a certain temperature,</p>

<h2 id="drawbacks"><a href="https://shkspr.mobi/blog/2022/03/experiments-with-far-infrared-heating/#drawbacks">Drawbacks</a></h2>

<p>FIR has a few issues which are worth knowing about.</p>

<p>FIR heats objects and people, not the air. It is a different type of heat to convection radiators. Think of being out in bright sunshine on a cold spring day.</p>

<p>The heat travels in a straight line. So a panel around a corner will only heat things in its line of sight.</p>

<p>Thermostats generally measure the air temperature - so traditional ones won't work. There <em>is</em> a thermostat built in to this panel but it is only really measuring the ambient temperature around the panel.</p>

<p>The heat cuts off instantly. With a gas-powered radiator, the rad stays warm even once the gas has been turned off. With this, you get a few minutes of residual heat before it cools down.</p>

<h2 id="product-specific-issues"><a href="https://shkspr.mobi/blog/2022/03/experiments-with-far-infrared-heating/#product-specific-issues">Product specific issues</a></h2>

<p>I deliberately chose the cheapest panel available. Longer term, I think I'd use someone like <a href="https://www.warm4less.com/">Warm4Less</a> who offer a much better service.</p>

<p>Anyway, problems with this unit:</p>

<ul>
<li>Long shipping times from Poland.</li>
<li>No wall mounting template - although they did provide screws &amp; rawlplugs.</li>
<li>Euro-style plug rather than BS 1363.</li>
<li>No long-term guarantee - although these sorts of panels typically have a 100,000 hour life.</li>
<li>The LED control panel will dim after a period of inactivity, but never switches off. When the unit is off, the power LED flashes. So you won't want it in your eyeline.</li>
<li>The panel is pretty shiny, so reflects LEDs from your other gadgets. A matt finish would have been better.</li>
<li>Only a 2m power cord. That's not really long enough for ceiling or wall mounting without extension leads.</li>
<li>The Tuya app <em>*sigh*</em></li>
</ul>

<h2 id="tuya-app"><a href="https://shkspr.mobi/blog/2022/03/experiments-with-far-infrared-heating/#tuya-app">Tuya App</a></h2>

<p>Tuya are near-ubiquitous when it comes to IoT and Home Automation. The <a href="https://play.google.com/store/apps/details?id=com.tuya.smart">Tuya Smart Life</a> is pretty basic - and really could do with some UI and UX attention to detail.  But, it works. Here are the sum total of the controls.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2022/03/panel-controls.jpeg" alt="panel controls allow for adjusting the temperature and setting a timer." width="368" height="680" class="aligncenter size-full wp-image-42115">

<p>OK, once you're in the belly of the app, you can set actions to happen based on timers, weather, geographic location, and voice commands.</p>

<p>The app also has an Alexa skill which - despite my best efforts - I couldn't get working. I followed the <a href="https://developer.tuya.com/en/docs/iot/amazonechoguide?id=K9j6yq88a3msw">Tuya Alexa Guide</a> but the Echo just couldn't detect the Espressif-powered device.  Annoyingly, there are <a href="https://www.amazon.co.uk/s?k=tuya&amp;i=alexa-skills">two different official Tuya skills</a>. I tried both of them, but no dice!</p>

<h2 id="security"><a href="https://shkspr.mobi/blog/2022/03/experiments-with-far-infrared-heating/#security">Security</a></h2>

<p>The panel only has one TCP port open - <a href="https://security.stackexchange.com/questions/224567/smart-lightbulb-using-common-irc-port-found-in-nmap-anything-to-worry-about">6668</a> - which is normal for these sort of devices.</p>

<p>As with any IoT device, unless you're prepared to spend ages configuring subnets, you have to take the risk that your devices could get compromised. <abbr title="You only live once">YOLO</abbr>!</p>

<h2 id="alternatives"><a href="https://shkspr.mobi/blog/2022/03/experiments-with-far-infrared-heating/#alternatives">Alternatives</a></h2>

<p>I deliberately bought the cheapest panel I could find which was free-standing, so I could move it between rooms. There are <a href="https://www.warm4less.com/category/infrared-heaters/">panels available in all different shapes and sizes</a>. Long, thin panels are great for hanging from a hallway ceiling, for example. There are picture panels if you want to use them as decoration, and mirror panels for bathrooms.</p>

<p>But all of them work in the same way.</p>

<h2 id="conclusion"><a href="https://shkspr.mobi/blog/2022/03/experiments-with-far-infrared-heating/#conclusion">Conclusion</a></h2>

<p>Depending on the size and shape of your home, Far Infrared <em>could</em> be a good source of heat. The panels are passive and don't require any maintenance. If/when they break - you won't need a plumber or electrician to replace them.  They're a lot simpler to install than a heat pump - and they're thin enough that you can place them in front of your old radiators if you want.</p>

<p>The 360W panel is enough for me to heat my home office. I have it set fairly close to me and it feels lovely. For larger rooms, you'll need much more powerful panels.</p>

<p>True, the cost effectiveness is <em>highly</em> dependent on the relatively price of gas and electricity.  But the use of gas is being phased out across the UK and investment in this technology is likely to make it cheaper.</p>

<p>Overall, I'm happy with this experiment. When I'm the only one WFH, I can just heat my office and it will get warm pretty quickly. <a href="https://shkspr.mobi/blog/2021/03/1-year-of-edent_solar-we-are-100-offset/">Most of my electricity comes from our solar panels</a>, which is a much greener and cheaper source than gas.</p>

<p>I think, by next winter, I'll have these panels in every room and the gas heater will only be used for showers and baths.</p>

<h2 id="further-reading"><a href="https://shkspr.mobi/blog/2022/03/experiments-with-far-infrared-heating/#further-reading">Further Reading</a></h2>

<p>I found these resources useful:</p>

<ul>
<li><a href="https://www.acchaus.com/blog/far-infrared-heating-its-heating-jim-but-not-as-we-know-it/">ACC Haus "Far Infrared Heating. It’s heating, Jim, but not as we know it! (but you may need more power, Scotty) "</a></li>
<li><a href="https://web.archive.org/web/20220310123641/https://www.warm4less.com/news/why-infrared-heating-wouldnt-work-for-you/">Why infrared heating wouldn’t work for you…</a></li>
<li><a href="https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3699878/">Far infrared radiation (FIR): its biological effects and medical applications</a></li>
</ul>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=42086&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2022/03/experiments-with-far-infrared-heating/feed/</wfw:commentRss>
			<slash:comments>12</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Blimey! A WiFi smoke alarm for twenty quid! ★★★☆☆]]></title>
		<link>https://shkspr.mobi/blog/2021/05/blimey-a-wifi-smoke-alarm-for-twenty-quid/</link>
					<comments>https://shkspr.mobi/blog/2021/05/blimey-a-wifi-smoke-alarm-for-twenty-quid/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Sun, 09 May 2021 11:34:33 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[gadget]]></category>
		<category><![CDATA[IoT]]></category>
		<category><![CDATA[Smart Home]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=38904</guid>

					<description><![CDATA[After my rant a few weeks ago, I finally found a cheap WiFi smoke alarm.  A few disclaimers before I get into this review:   It was shipped from China, not from the UK as stated. The device doesn&#039;t exist on the manufacturer&#039;s website. Stock on Amazon keeps appearing and disappearing, so may be difficult to get.   If you&#039;re happy with those limitations, let&#039;s crack on!    This is the CS01W /…]]></description>
										<content:encoded><![CDATA[<p>After <a href="https://shkspr.mobi/blog/2021/04/whatever-happened-to-iot-smoke-alarms/">my rant a few weeks ago</a>, I finally found a <em>cheap</em> WiFi smoke alarm.</p>

<p>A few disclaimers before I get into this review:</p>

<ol>
<li>It was shipped from China, not from the UK as stated.</li>
<li>The device doesn't exist on the manufacturer's website.</li>
<li>Stock on Amazon keeps appearing and disappearing, so may be difficult to get.</li>
</ol>

<p>If you're happy with those limitations, let's crack on!</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2021/05/Smoke-detector.jpeg" alt="Smoke detector and instruction manual." width="1024" height="768" class="aligncenter size-full wp-image-38907">

<p>This is the CS01W / CS01-7203. A WiFi enabled smoke and carbon monoxide detector.  It is <a href="https://www.aliexpress.com/item/1005002084644825.html">available online for about US$16 on Alibaba</a>.</p>

<p>It looks and feels like a normal smoke alarm. It is small, light, and noisy.</p>

<p>Powered by 2 AA batteries, it is utterly unremarkable.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2021/05/back-of-smoke-detector.jpeg" alt="back of smoke detector with open battery compartment." width="1024" height="768" class="aligncenter size-full wp-image-38906">

<p>Tuya are the company behind literally <em>hundreds</em> of smart devices. Everything from breast-pumps to washing machines.  You name it, they've stuck a WiFi chip in it.  Their app is a bit spartan, but does the job. It was simple to install, set up, and then send my WiFi password to the smoke detector.</p>

<blockquote class="social-embed" id="social-embed-1387097668439187458" lang="en" itemscope="" itemtype="https://schema.org/SocialMediaPosting"><header class="social-embed-header" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><a href="https://twitter.com/edent" class="social-embed-user" itemprop="url"><img class="social-embed-avatar social-embed-avatar-circle" src="data:image/webp;base64,UklGRkgBAABXRUJQVlA4IDwBAACQCACdASowADAAPrVQn0ynJCKiJyto4BaJaQAIIsx4Au9dhDqVA1i1RoRTO7nbdyy03nM5FhvV62goUj37tuxqpfpPeTBZvrJ78w0qAAD+/hVyFHvYXIrMCjny0z7wqsB9/QE08xls/AQdXJFX0adG9lISsm6kV96J5FINBFXzHwfzMCr4N6r3z5/Aa/wfEoVGX3H976she3jyS8RqJv7Jw7bOxoTSPlu4gNbfXYZ9TnbdQ0MNnMObyaRQLIu556jIj03zfJrVgqRM8GPwRoWb1M9AfzFe6Mtg13uEIqrTHmiuBpH+bTVB5EEQ3uby0C//XOAPJOFv4QV8RZDPQd517Khyba8Jlr97j2kIBJD9K3mbOHSHiQDasj6Y3forATbIg4QZHxWnCeqqMkVYfUAivuL0L/68mMnagAAA" alt="" itemprop="image"><div class="social-embed-user-names"><p class="social-embed-user-names-name" itemprop="name">Terence Eden is on Mastodon</p>@edent</div></a><img class="social-embed-logo" alt="Twitter" src="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%0Aaria-label%3D%22Twitter%22%20role%3D%22img%22%0AviewBox%3D%220%200%20512%20512%22%3E%3Cpath%0Ad%3D%22m0%200H512V512H0%22%0Afill%3D%22%23fff%22%2F%3E%3Cpath%20fill%3D%22%231d9bf0%22%20d%3D%22m458%20140q-23%2010-45%2012%2025-15%2034-43-24%2014-50%2019a79%2079%200%2000-135%2072q-101-7-163-83a80%2080%200%200024%20106q-17%200-36-10s-3%2062%2064%2079q-19%205-36%201s15%2053%2074%2055q-50%2040-117%2033a224%20224%200%2000346-200q23-16%2040-41%22%2F%3E%3C%2Fsvg%3E"></header><section class="social-embed-text" itemprop="articleBody">The app is… not bad! Good tutorial on how to configure. Easy settings. Quickly configured. <a href="https://x.com/edent/status/1387097668439187458/photo/1">pic.x.com/WldylAPp0L</a><div class="social-embed-media-grid"><a href="https://pbs.twimg.com/media/Ez_19CWXMAcgmH8.jpg" class="social-embed-media-link"><img class="social-embed-media" alt="In app video showing how to configure the unit. " src="data:image/webp;base64,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"></a><a href="https://pbs.twimg.com/media/Ez_19gnXIAI9wne.jpg" class="social-embed-media-link"><img class="social-embed-media" alt="Options to share data or not. " src="data:image/webp;base64,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"></a><a href="https://pbs.twimg.com/media/Ez_19-HXoAI6AUI.jpg" class="social-embed-media-link"><img class="social-embed-media" alt="Screen saying the battery level is high. " src="data:image/webp;base64,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"></a><a href="https://pbs.twimg.com/media/Ez_1-SXWUAkFF4c.jpg" class="social-embed-media-link"><img class="social-embed-media" alt="Screen saying the alarm isn't going. " src="data:image/webp;base64,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"></a></div></section><hr class="social-embed-hr"><footer class="social-embed-footer"><a href="https://twitter.com/edent/status/1387097668439187458"><span aria-label="1 likes" class="social-embed-meta">❤️ 1</span><span aria-label="1 replies" class="social-embed-meta">💬 1</span><span aria-label="0 reposts" class="social-embed-meta">🔁 0</span><time datetime="2021-04-27T17:33:49.000Z" itemprop="datePublished">17:33 - Tue 27 April 2021</time></a></footer></blockquote>

<h2 id="testing"><a href="https://shkspr.mobi/blog/2021/05/blimey-a-wifi-smoke-alarm-for-twenty-quid/#testing">Testing</a></h2>

<p>I waited until my wife burned her dinner (this isn't the set up of a joke - she likes her steak smokey!) held the alarm in the vicinity and <strong>BEEEP! BEEEEEEP!! BEEEEEEEP!!!!</strong></p>

<p>Yup! That worked! At the same time as it was screaming at me, my phone buzzed with a notification:</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2021/05/Smoke-alert-in-app.png" alt="Android notification." width="540" height="273" class="aligncenter size-full wp-image-38905">

<p>So, at a basic level, it works!  I didn't have a way to test its carbon monoxide sensor.</p>

<h2 id="why"><a href="https://shkspr.mobi/blog/2021/05/blimey-a-wifi-smoke-alarm-for-twenty-quid/#why">Why??!?!?</a></h2>

<p>I sometimes listen to very loud music on headphones. I would like my phone to gently buzz and tell me to escape if the house is on fire.</p>

<p>If I'm away from home, I want to be able to call the fire brigade, or my wife, or a neighbour - to see what's going on.</p>

<p>The WiFi functionality is to <em>supplement</em> the audible alarm - not to replace it.</p>

<p>I'd also like to integrate it into the rest of my smart home. Yell "Alexa, turn off the alarm". Or have it switch on all my smart lights when it detects smoke. Or automatically tell my robot vacuum cleaner to escape to safety.  You know. Stuff like that which proves I'm living in the future. Sadly, Tuya's platform doesn't work that well. Although some things seem to integrate with Alexa, the smoke alarm isn't one of them.</p>

<h2 id="thoughts"><a href="https://shkspr.mobi/blog/2021/05/blimey-a-wifi-smoke-alarm-for-twenty-quid/#thoughts">Thoughts</a></h2>

<p>As a basic smoke alarm, it seems to work.  In my brief tests, it also sent my phone a push notification - handy! The app isn't as polished as <a href="https://shkspr.mobi/blog/2016/09/dark-patterns-in-connected-devices/">Nest Protect </a>- but the thing costs a fifth of the price.</p>

<p>But it is severely restricted by the fact that is an obscure product. When I started writing this review, there were half-a-dozen sellers of it on Amazon. Now there are zero. It occasionally pops up on eBay, and then disappears.  So you'll need to get it on Alibaba.</p>

<p>If you can find it - and are happy with the limitations - grab it!</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=38904&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2021/05/blimey-a-wifi-smoke-alarm-for-twenty-quid/feed/</wfw:commentRss>
			<slash:comments>11</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Whatever happened to IoT smoke alarms?]]></title>
		<link>https://shkspr.mobi/blog/2021/04/whatever-happened-to-iot-smoke-alarms/</link>
					<comments>https://shkspr.mobi/blog/2021/04/whatever-happened-to-iot-smoke-alarms/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Sat, 10 Apr 2021 11:30:10 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[IoT]]></category>
		<category><![CDATA[nest]]></category>
		<category><![CDATA[Smart Home]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=38594</guid>

					<description><![CDATA[I&#039;ve had a Nest smoke alarm for about 7 years. It connects to my WiFi network and occasionally pings a message to my phone that I&#039;ve burnt my toast. Nifty!  But, due to planned obsolescence regulatory requirements, it needs to be replaced.    Back in 2014, the Nest cost £100.  In the exciting world of 2021, it costs... £100!  WTAF? Surely a combination of market capitalism and Moore&#039;s Law means t…]]></description>
										<content:encoded><![CDATA[<p>I've had a Nest smoke alarm for about 7 years. It connects to my WiFi network and occasionally pings a message to my phone that I've burnt my toast. Nifty!</p>

<p>But, due to <del>planned obsolescence</del> regulatory requirements, it needs to be replaced.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2021/04/ExfxsNlWgAEFnzq.jpeg" alt="In app warning that my Nest smoke alarm needs replacing." width="674" height="680" class="aligncenter size-full wp-image-38597">

<p>Back in 2014, <a href="https://www.theguardian.com/technology/2014/apr/04/nest-halts-sales-of-protect-smoke-and-carbon-monoxide-alarm-on-safety-fears">the Nest cost £100</a>.</p>

<p>In the exciting world of 2021, it costs... <a href="https://web.archive.org/web/20201111223140/https://store.google.com/gb/product/nest_protect_2nd_gen">£100</a>!</p>

<p>WTAF? Surely a combination of market capitalism and Moore's Law means these devices should have dropped in price significantly?  But I can't find any other Wi-Fi smoke/co alarms for sale in the UK.  Why is that?</p>

<p>(There's a <a href="https://amzn.to/2POmasG">Netamo WiFi smoke detector for £90</a> - but it doesn't do carbon monoxide.)</p>

<p>A basic smoke &amp; carbon monoxide detector is about £20 retail. There are hundreds of models at that price point.</p>

<p>A basic ESP32 WiFi board is a fiver. Call it a tenner if you want something like a Raspberry Pi Zero W.</p>

<p>Add in the cost of running some servers, and you're barely scraping £50.  Surely there's someone out there who wants to sell a million of these things?</p>

<p>But, I think I can understand why there aren't loads of these for sale:</p>

<ul>
<li>Low market desire. While not exactly Internet Fridge territory - there isn't a huge desire for mostly passive IoT devices. Things like flood sensors and open-window detectors just don't seem to interest people.</li>
<li>Compliance and insurance. I assume there's a high cost of certification for these things. And if someone's house burns down, but the detector didn't warn them, then insurance companies start to fight.</li>
<li>Software is hard. <a href="https://www.theguardian.com/technology/2014/apr/04/nest-halts-sales-of-protect-smoke-and-carbon-monoxide-alarm-on-safety-fears">Nest had a troubled history</a>. Apps need constant updating. Which either means a high cost for the device, or tying people into a subscription plan.</li>
<li>Patents. I'm sure Google has a bunch of these and it probably scares off most competitors.</li>
<li>Wi-Fi complexity. Wi-Fi is power hungry - which makes it hard to run on in-built batteries. It is also difficult to configure for the user - lots of faffing around with apps and having to reconfigure the device when your wireless password changes.</li>
</ul>

<h2 id="alternatives"><a href="https://shkspr.mobi/blog/2021/04/whatever-happened-to-iot-smoke-alarms/#alternatives">Alternatives</a></h2>

<p><a href="https://zigbeealliance.org/">ZigBee</a> is the low power, low cost, short range radio network for IoT. Found in lots of lightbulbs and other things. The downside is that it needs a central hub in your home in order to connect to the network. In theory, any hub should connect to any ZigBee devices - I use a bunch of <a href="https://shkspr.mobi/blog/2019/11/mixing-hue-and-innr-smart-lights/">generic lightbulbs with my Hue hub</a>.</p>

<p>But the reality is slightly different from the theory. I can't find any ZigBee smoke/co detectors for sale in the UK. There are a bunch which claim to work, which can be shipped direct from China. But they rarely have the requisite safety certification, and they all seem to need their own proprietary hub.</p>

<p>The <a href="https://web.archive.org/web/20210203182010/https://getroost.com/product-battery.html">Roost Battery</a> is a WiFi enabled battery suitable for placing in smoke alarms. When it detects a power draw that indicates the alarm is sounding, it connects to WiFi. But, again, it isn't sold in the UK any more.</p>

<h2 id="now-what"><a href="https://shkspr.mobi/blog/2021/04/whatever-happened-to-iot-smoke-alarms/#now-what">Now what?</a></h2>

<p>Do I <em>need</em> to be alerted that my house is burning down when I leave lockdown? No, probably not.  But it's fun!
Am I aware of the privacy risks? Yes - and I understand how to mitigate them.
Could I build my own out of a Pi and some scavenged components? Sure - but I can't be bothered.</p>

<p>So, unless one of you clever lot can recommend a smart smoke &amp; carbon mono detector which is available in the UK - it looks like I'm paying the Google Tax for the Nest. Bah!</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=38594&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2021/04/whatever-happened-to-iot-smoke-alarms/feed/</wfw:commentRss>
			<slash:comments>19</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[How many connected devices do you have at home?]]></title>
		<link>https://shkspr.mobi/blog/2020/12/how-many-connected-devices-do-you-have-at-home/</link>
					<comments>https://shkspr.mobi/blog/2020/12/how-many-connected-devices-do-you-have-at-home/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Mon, 21 Dec 2020 12:26:37 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[IoT]]></category>
		<category><![CDATA[Smart Home]]></category>
		<category><![CDATA[wifi]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=37575</guid>

					<description><![CDATA[Five years ago, I wrote that I had 30 connected devices at home.  How has that changed over the last half-decade?  Some of my devices have consolidated. My Eufy security cameras have a hub - so despite having more cameras, They&#039;re using fewer IP addresses. Similarly, I&#039;ve replaced most of my LIFX bulbs with Zigbee which also use a hub-and-spoke model.  So these are the devices I currently have…]]></description>
										<content:encoded><![CDATA[<p>Five years ago, I wrote that <a href="https://shkspr.mobi/blog/2015/08/128-wifi-devices-ought-to-be-enough-for-anyone/">I had 30 connected devices at home</a>.  How has that changed over the last half-decade?</p>

<p>Some of my devices have consolidated. My Eufy security cameras have a hub - so despite having more cameras, They're using fewer IP addresses. Similarly, I've replaced most of my LIFX bulbs with Zigbee which also use a hub-and-spoke model.</p>

<p>So these are the devices I currently have connected:</p>

<ol>
<li><a href="https://shkspr.mobi/blog/2019/11/gadget-review-dophigo-dv-200-wifi-doorbell/">Video Doorbell</a></li>
<li><a href="https://shkspr.mobi/blog/2020/11/review-moixa-battery/">Solar Battery</a></li>
<li>LIFX bulb in external light</li>
<li>Security camera</li>
<li><a href="https://shkspr.mobi/blog/2020/02/turn-an-old-ereader-into-an-information-screen-nook-str/">EInk display</a></li>
<li>Alexa</li>
<li><a href="https://shkspr.mobi/blog/2020/11/review-g9070-robot-vacuum/">Robot vacuum cleaner / mop</a></li>
<li>TV</li>
<li>Android TV box</li>
<li>Amazon Fire TV stick</li>
<li>Chromecast</li>
<li><a href="https://shkspr.mobi/blog/2020/08/broadcasting-vinyl-over-my-lan-aka-alsa2chromecast/">Internet Connected Record Player</a> (yes! Really!)</li>
<li>PS4</li>
<li>Nintendo Switch</li>
<li>AV Amplifier</li>
<li>Another Alexa</li>
<li>Home server</li>
<li><a href="https://shkspr.mobi/blog/2020/10/review-eufycam-2c-wireless-home-security-camera-system/">Eufy Cameras Hub</a></li>
<li><a href="https://shkspr.mobi/blog/2019/11/mixing-hue-and-innr-smart-lights/">Philips Hue Light Hub</a></li>
<li>Internal LIFX bulb</li>
<li><a href="https://shkspr.mobi/blog/2019/02/tado-api-guide-updated-for-2019/">Smart heating control</a></li>
<li>Office TV</li>
<li>Wife's work laptop</li>
<li>Wife's personal laptop</li>
<li>Wife's phone</li>
<li>My work laptop</li>
<li><a href="https://shkspr.mobi/blog/2020/05/review-clevo-n151cu-lafite-iv-system76-darter-pro-entroware-proteus/">My personal laptop</a></li>
<li><a href="https://shkspr.mobi/blog/2020/06/oneplus-5t-two-and-a-half-years-later/">My phone</a></li>
<li>My tablet</li>
<li><a href="https://shkspr.mobi/blog/2018/08/review-meross-smart-plugs-and-surge-protector/">Power strip</a></li>
<li>Lifx lamp</li>
<li>Internet connected plasma ball</li>
<li>Gym TV</li>
<li><a href="https://shkspr.mobi/blog/2015/03/adding-wifi-to-a-roomba/">Another robot vacuum cleaner</a></li>
<li><a href="https://shkspr.mobi/blog/2018/11/building-an-alexa-powered-electric-blanket/">Internet connected electric blanket</a> (my side)</li>
<li>Internet connected electric blanket (her side)</li>
<li><a href="https://shkspr.mobi/blog/2020/04/relaunching-edent_solar-part-5-getting-data-out-of-fronius-solarweb/">Solar panel inverter</a></li>
</ol>

<p>We have a lot of smarthome kit! I've probably forgotten some. And I haven't counted my various Raspberries Pi and obsolete computers. But we're only a family of two. Larger families are likely to have more phones, tablets, and many other devices.</p>

<p>Is the future the "hub" model? Most of these devices don't need a power-hungry WiFi connection. Keep the airwaves clear for high-bandwidth devices and move everything to ZigBee or similar?</p>

<p>Either way, the number of devices in a typical home is only going to increase. What do we need to do to prepare for that?</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=37575&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2020/12/how-many-connected-devices-do-you-have-at-home/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Hacking your Smart Meter - Part 1 - Zigbee]]></title>
		<link>https://shkspr.mobi/blog/2020/04/hacking-your-smart-meter-part-1-zigbee/</link>
					<comments>https://shkspr.mobi/blog/2020/04/hacking-your-smart-meter-part-1-zigbee/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Sun, 12 Apr 2020 11:55:54 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[electricity]]></category>
		<category><![CDATA[IoT]]></category>
		<category><![CDATA[Smart Home]]></category>
		<category><![CDATA[zigbee]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=34598</guid>

					<description><![CDATA[I have a new Smart Meter to measure my electricity and gas usage. It&#039;s the Honeywell AS302P.  It&#039;s a SMETS2 meter, which means it has a number of interesting features.   ALCS (Auxiliary Load Control Switch) - this means that a car charger can be remotely started and stopped based on network demand. DCC connection - this means it can report back to my energy supplier every 30 minutes, and I can…]]></description>
										<content:encoded><![CDATA[<p>I have a new Smart Meter to measure my electricity and gas usage. It's the Honeywell AS302P.</p>

<p>It's a SMETS2 meter, which means it has a number of interesting features.</p>

<ul>
<li><a href="https://assets.publishing.service.gov.uk/government/uploads/system/uploads/attachment_data/file/579774/291116_-_Smart_meters__Demand_Side_Response_leaflet_-_DR_-_FINAL.PDF">ALCS (Auxiliary Load Control Switch)</a> - this means that a car charger can be remotely started and stopped based on network demand.</li>
<li><a href="https://www.smartdcc.co.uk/">DCC connection</a> - this means it can report back to my energy supplier every 30 minutes, and I can swap between providers quickly.</li>
<li>High resolution usage - this means I can be <a href="https://shkspr.mobi/blog/2019/04/is-a-smart-electricity-tariff-worth-it/">charged on multiple time of day tariffs</a>.</li>
</ul>

<p>But, most importantly to me, it is <a href="https://zigbeealliance.org/zigbee_products/?product_type=certified_product&amp;se=as302p">Zigbee certified</a>.</p>

<blockquote><p>The meter offers ZigBee Communications for tunnelling information to the Comms Hub and to provide Customer Information for use with Type 1 or Type 2 Devices.</p></blockquote>

<p>This means it can connect to a <a href="https://www.silabs.com/documents/public/white-papers/ZigBee-based-HANs-for-Energy-Management.pdf">HAN (Home Area Network)</a> using the <a href="https://zigbeealliance.org/wp-content/uploads/2019/11/docs-07-5356-19-0zse-zigbee-smart-energy-profile-specification.pdf">ZigBee Smart Energy Profile (SEP) Version 1.2</a>.  This is the thing which sends data to your in-home display hub.</p>

<p>So, can we connect <em>anything</em> to the Smart Meter?</p>

<p>Our first stop is the <a href="https://web.archive.org/web/20200924194541/https://ssebe.thegateinteractive.com/wp-content/uploads/2020/03/honeywell-AS302P-smart-meter.pdf">Honeywell AS302P Manual</a>. The UI of the meter is dreadful. There are two buttons:</p>

<ol>
<li>A - the select button</li>
<li>B - the scroll down button</li>
</ol>

<p>In order to go "back" in the menu, you need to scroll down to the menu item which says back and then hit A.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2020/04/Zigbee-info-from-Honeywell-manual-fs8.png" alt="Zigbee info from Honeywell manual." width="577" height="446" class="aligncenter size-full wp-image-34599">

<p>There's lots of info in there. I've redacted the PAN, XPAN, Network Info, and EUID for privacy:
<img src="https://shkspr.mobi/blog/wp-content/uploads/2020/04/Zigbee-menu-items.jpg" alt="Zigbee menu items." width="440" height="520" class="aligncenter size-full wp-image-34601"></p>

<p>But here's the interesting one - the ability to leave the existing network!
<img src="https://shkspr.mobi/blog/wp-content/uploads/2020/04/Zigbee-leave-menu-screen.-Yes-or-No-options.jpg" alt="Zigbee leave menu screen. Yes or No options." width="440" height="260" class="aligncenter size-full wp-image-34602">
I'm not yet brave enough to press it. First, I need to <a href="https://amzn.to/4ih09uf">buy a Zigbee receiver</a> and <a href="https://www.zigbee2mqtt.io">learn how the software works</a>. Wish me luck!</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=34598&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2020/04/hacking-your-smart-meter-part-1-zigbee/feed/</wfw:commentRss>
			<slash:comments>11</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[What's the most annoying gadget you own?]]></title>
		<link>https://shkspr.mobi/blog/2020/01/whats-the-most-annoying-gadget-you-own/</link>
					<comments>https://shkspr.mobi/blog/2020/01/whats-the-most-annoying-gadget-you-own/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Fri, 10 Jan 2020 12:51:07 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[fridge]]></category>
		<category><![CDATA[gadget]]></category>
		<category><![CDATA[Smart Home]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=33786</guid>

					<description><![CDATA[Let me preface this post by saying that I am a lazy idiot.  I have a problem, I keep leaving the fridge door open. I&#039;ve come home a few times only to discover my half-hearted push hasn&#039;t properly closed the door and it has swung back open. Our new house has a built in fridge, so I can&#039;t adjust the feet to make it close automatically.  I can&#039;t easily attach springs and magnets to force it shut. …]]></description>
										<content:encoded><![CDATA[<p>Let me preface this post by saying that I am a lazy idiot.</p>

<p>I have a problem, I keep leaving the fridge door open. I've come home a few times only to discover my half-hearted push hasn't properly closed the door and it has swung back open. Our new house has a built in fridge, so I can't adjust the feet to make it close automatically.  I can't easily attach springs and magnets to force it shut.</p>

<p>The only solution? A new gadget!</p>

<p>Enter the <a href="https://amzn.to/2uw0UgL">EcoSavers Fridge Alarm Light</a>. It's a clever bit of kit.  It replaces the standard E14 bulb in your fridge with a combined light and alarm.  Once the fridge has been open too long, it makes a loud noise. Perfect!</p>

<p><a href="https://amzn.to/2uw0UgL"><img src="https://shkspr.mobi/blog/wp-content/uploads/2020/01/A-bulb-with-circuitry.jpg" alt="A bulb with circuitry." width="640" height="414" class="aligncenter size-full wp-image-33787"></a></p>

<p>Except... it is <em>really</em> annoying.</p>

<p>I mean <strong>amazingly</strong> annoying!  After the fridge has been open too long, the bulb starts flashing.  It is at a frequency which gives me a headache.  It's probably bad for epileptics as well.  But that wouldn't be so bad, if it gave you a decent amount of time to rummage in the fridge.</p>

<p>It doesn't.  Take a look at this video:</p>

<iframe title="fridge alert" width="620" height="349" src="https://www.youtube.com/embed/RgNk9wLgc0U?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen=""></iframe>

<p>TEN SECONDS!!!! That's not enough time for me to decided which condiments I want - let alone rearrange the fridge as a I grab them.</p>

<p>Ten seconds after that, the buzzer sounds. It is sufficiently loud to alert me to the distress my fridge is experiencing.</p>

<p>This <a href="https://worldwide.espacenet.com/patent/search/family/058633640/publication/NL1041506B1?q=1041506">patented bulb</a> has no user-adjustable settings. It would be great if I could stop it flashing, or give me a minute before it told me off, or even set a ringtone.  Bit it doesn't.  It just annoys me.</p>

<p>The worst thing? I deserve this.  If I wasn't a lazy idiot, I wouldn't need my fridge to shout at me.</p>

<p>⯪☆☆☆☆ Would buy again, reluctantly.</p>

<p>So, what's the most annoying gadget that you keep using?</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=33786&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2020/01/whats-the-most-annoying-gadget-you-own/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA["Alexa? Which bins do I need to take out?" - Reverse engineering the Bexley Council bin collection API]]></title>
		<link>https://shkspr.mobi/blog/2019/11/alexa-which-bins-do-i-need-to-take-out-reverse-engineering-the-bexley-council-bin-collection-api/</link>
					<comments>https://shkspr.mobi/blog/2019/11/alexa-which-bins-do-i-need-to-take-out-reverse-engineering-the-bexley-council-bin-collection-api/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Mon, 25 Nov 2019 07:46:50 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[alexa]]></category>
		<category><![CDATA[NaBloPoMo]]></category>
		<category><![CDATA[Smart Home]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=32975</guid>

					<description><![CDATA[A few years ago I wrote an Alexa skill to see what bin day it was. The skill only worked with my local council - Oxford.  I&#039;ve since moved house and wanted to recreate the service for my new council - Bexley.  Demo   Terence Eden is on Mastodon  @edent  Replying to @edent @AgileAppsGroup Success! Blog post coming soon for my Alexa powered bin day thing. pic.x.com/eCoHMii0nI  ❤️ 3💬 3🔁 007:58 - Mon …]]></description>
										<content:encoded><![CDATA[<p>A few years ago I wrote <a href="https://shkspr.mobi/blog/2017/07/alexa-what-bin-day-is-it/">an Alexa skill to see what bin day it was</a>. The skill only worked with my local council - Oxford.</p>

<p>I've since moved house and wanted to recreate the service for my new council - Bexley.</p>

<h2 id="demo"><a href="https://shkspr.mobi/blog/2019/11/alexa-which-bins-do-i-need-to-take-out-reverse-engineering-the-bexley-council-bin-collection-api/#demo">Demo</a></h2>

<blockquote class="social-embed" id="social-embed-1183653333392855041" lang=""><header class="social-embed-header"><a href="https://twitter.com/edent" class="social-embed-user"><img class="social-embed-avatar social-embed-avatar-circle" src="data:image/webp;base64,UklGRkgBAABXRUJQVlA4IDwBAACQCACdASowADAAPrVQn0ynJCKiJyto4BaJaQAIIsx4Au9dhDqVA1i1RoRTO7nbdyy03nM5FhvV62goUj37tuxqpfpPeTBZvrJ78w0qAAD+/hVyFHvYXIrMCjny0z7wqsB9/QE08xls/AQdXJFX0adG9lISsm6kV96J5FINBFXzHwfzMCr4N6r3z5/Aa/wfEoVGX3H976she3jyS8RqJv7Jw7bOxoTSPlu4gNbfXYZ9TnbdQ0MNnMObyaRQLIu556jIj03zfJrVgqRM8GPwRoWb1M9AfzFe6Mtg13uEIqrTHmiuBpH+bTVB5EEQ3uby0C//XOAPJOFv4QV8RZDPQd517Khyba8Jlr97j2kIBJD9K3mbOHSHiQDasj6Y3forATbIg4QZHxWnCeqqMkVYfUAivuL0L/68mMnagAAA" alt=""><div class="social-embed-user-names"> <p class="social-embed-user-names-name">Terence Eden is on Mastodon </p> @edent</div></a><img class="social-embed-logo" alt="Twitter" src="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%0Aaria-label%3D%22Twitter%22%20role%3D%22img%22%0AviewBox%3D%220%200%20512%20512%22%3E%3Cpath%0Ad%3D%22m0%200H512V512H0%22%0Afill%3D%22%23fff%22%2F%3E%3Cpath%20fill%3D%22%231d9bf0%22%20d%3D%22m458%20140q-23%2010-45%2012%2025-15%2034-43-24%2014-50%2019a79%2079%200%2000-135%2072q-101-7-163-83a80%2080%200%200024%20106q-17%200-36-10s-3%2062%2064%2079q-19%205-36%201s15%2053%2074%2055q-50%2040-117%2033a224%20224%200%2000346-200q23-16%2040-41%22%2F%3E%3C%2Fsvg%3E"> </header> <section class="social-embed-text"><small class="social-embed-reply"><a href="https://twitter.com/edent/status/1183401213175521286">Replying to @edent</a></small> <a href="https://twitter.com/AgileAppsGroup">@AgileAppsGroup</a> Success! Blog post coming soon for my Alexa powered bin day thing. <a href="https://x.com/edent/status/1183653333392855041/video/1">pic.x.com/eCoHMii0nI</a><div class="social-embed-media-grid"><video class="social-embed-video" controls="" src="https://video.twimg.com/ext_tw_video/1183653146851270658/pu/vid/1280x720/tmyNVKjaJNuEWap2.mp4?tag=10" poster="data:image/webp;base64,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" width="550"></video></div></section> <hr class="social-embed-hr"> <footer class="social-embed-footer"><a href=""><span aria-label="3 likes" class="social-embed-meta">❤️ 3</span><span aria-label="3 replies" class="social-embed-meta">💬 3</span><span aria-label="0 reposts" class="social-embed-meta">🔁 0</span><time datetime="{tweet_date}">07:58 - Mon 14 October 2019</time></a> </footer></blockquote>

<p>Brilliant, eh?</p>

<h2 id="the-api"><a href="https://shkspr.mobi/blog/2019/11/alexa-which-bins-do-i-need-to-take-out-reverse-engineering-the-bexley-council-bin-collection-api/#the-api">The API</a></h2>

<p>Bexley Council don't publish an API.  I initially thought about scraping their <a href="https://web.archive.org/web/20200616184740/https://mybexley.bexley.gov.uk/service/Missed_bin_collections">bin collection day web-form</a> but I couldn't work out the calls the site made.</p>

<p>But Bexley have an app! Well, they use <a href="https://web.archive.org/web/20200924204929/https://play.google.com/store/apps/details?id=com.contender.athome.android">the @HOME app</a> along with a bunch of councils.  The app is... not very good. And it isn't particularly secure. Which is good news for me, as I was able to intercept all the traffic between it and its server!</p>

<h3 id="the-api-call"><a href="https://shkspr.mobi/blog/2019/11/alexa-which-bins-do-i-need-to-take-out-reverse-engineering-the-bexley-council-bin-collection-api/#the-api-call">The API Call</a></h3>

<p>You need to register an email address along with your home address.  You pass that as your username.  If you know a resident's email address, you can probably find out their bin collection day. I don't know if that's a GDPR thing or not...</p>

<p><code>curl --header "X-email: whatever@example.com" "https://services.athomeapp.net/ServiceData/GetUserRoundJson"</code></p>

<p>The app also passes <code>--header "X-country: gb" --header "X-udprn: 1234567"</code> - that last one is your <a href="https://www.experian.co.uk/business/glossary/udprn/">UDPRN</a> a sort of standard reference for addresses. You don't need to supply them though.</p>

<h3 id="the-response"><a href="https://shkspr.mobi/blog/2019/11/alexa-which-bins-do-i-need-to-take-out-reverse-engineering-the-bexley-council-bin-collection-api/#the-response">The Response</a></h3>

<p>You get back JSON about when your bins are going to be collected. I've not yet seen how it handles bank holidays.  I've redacted any person information.</p>

<pre><code class="language-json">{
    "email": "whatever@example.com",
    "udprn": "",
    "managed": true,
    "userrounds": [{
        "roundid": "1234",
        "collectionday": "Fri",
        "containerid": "abcd",
        "collectioninterval": "Every 2 week",
        "containerdescription": "Chargeable garden waste bin",
        "containername": "Chargeable garden waste bin",
        "nextcollectiondates": [{
            "day": "18",
            "month": "10",
            "year": "2019",
            "hours": "0",
            "mins": "0",
            "datestring": "18 10 2019 12:00",
            "isaltered": false,
            "alteredmessage": null,
            "weeknumber": 0
        }, {
            "day": "1",
            "month": "11",
            "year": "2019",
            "hours": "0",
            "mins": "0",
            "datestring": "01 11 2019 12:00",
            "isaltered": false,
            "alteredmessage": null,
            "weeknumber": 0
        }, {
            "day": "15",
            "month": "11",
            "year": "2019",
            "hours": "0",
            "mins": "0",
            "datestring": "15 11 2019 12:00",
            "isaltered": false,
            "alteredmessage": null,
            "weeknumber": 0
        }, {
            "day": "29",
            "month": "11",
            "year": "2019",
            "hours": "0",
            "mins": "0",
            "datestring": "29 11 2019 12:00",
            "isaltered": false,
            "alteredmessage": null,
            "weeknumber": 0
        }, {
            "day": "13",
            "month": "12",
            "year": "2019",
            "hours": "0",
            "mins": "0",
            "datestring": "13 12 2019 12:00",
            "isaltered": false,
            "alteredmessage": null,
            "weeknumber": 0
        }, {
            "day": "27",
            "month": "12",
            "year": "2019",
            "hours": "0",
            "mins": "0",
            "datestring": "27 12 2019 12:00",
            "isaltered": false,
            "alteredmessage": null,
            "weeknumber": 0
        }],
        "containeritems": null,
        "roundbitmask": 0,
        "selected": true
    }, {
        "roundid": "2345",
        "collectionday": "Fri",
        "containerid": "xyz",
        "collectioninterval": "Every week",
        "containerdescription": "Food recycling box",
        "containername": "Food recycling box",
        "nextcollectiondates": [{
            "day": "18",
            "month": "10",
            "year": "2019",
            "hours": "0",
            "mins": "0",
            "datestring": "18 10 2019 12:00",
            "isaltered": false,
            "alteredmessage": null,
            "weeknumber": 0
        }],
        "containeritems": null,
        "roundbitmask": 0,
        "selected": true
    }, {
        "roundid": "987654",
        "collectionday": "Fri",
        "containerid": "qwerty",
        "collectioninterval": "Every week",
        "containerdescription": "Glass box",
        "containername": "Glass box",
        "nextcollectiondates": [{
            "day": "18",
            "month": "10",
            "year": "2019",
            "hours": "0",
            "mins": "0",
            "datestring": "18 10 2019 12:00",
            "isaltered": false,
            "alteredmessage": null,
            "weeknumber": 0
        }],
        "containeritems": null,
        "roundbitmask": 0,
        "selected": true
    }, {
        "roundid": "asdf",
        "collectionday": "Fri",
        "containerid": "zxcvb",
        "collectioninterval": "Every week",
        "containerdescription": "Paper &amp; Cardboard",
        "containername": "Paper &amp; Cardboard",
        "nextcollectiondates": [{
            "day": "18",
            "month": "10",
            "year": "2019",
            "hours": "0",
            "mins": "0",
            "datestring": "18 10 2019 12:00",
            "isaltered": false,
            "alteredmessage": null,
            "weeknumber": 0
        }],
        "containeritems": null,
        "roundbitmask": 0,
        "selected": true
    }, {
        "roundid": "poiuyt",
        "collectionday": "Fri",
        "containerid": "lkjhg",
        "collectioninterval": "Every week",
        "containerdescription": "Plastic and Cans",
        "containername": "Plastic and Cans",
        "nextcollectiondates": [{
            "day": "18",
            "month": "10",
            "year": "2019",
            "hours": "0",
            "mins": "0",
            "datestring": "18 10 2019 12:00",
            "isaltered": false,
            "alteredmessage": null,
            "weeknumber": 0
        }],
        "containeritems": null,
        "roundbitmask": 0,
        "selected": true
    }, {
        "roundid": "qazwsx",
        "collectionday": "Fri",
        "containerid": "wsxedc",
        "collectioninterval": "Every 2 week",
        "containerdescription": "Waste wheeled bin",
        "containername": "Waste wheeled bin",
        "nextcollectiondates": [{
            "day": "25",
            "month": "10",
            "year": "2019",
            "hours": "0",
            "mins": "0",
            "datestring": "25 10 2019 12:00",
            "isaltered": false,
            "alteredmessage": null,
            "weeknumber": 0
        }, {
            "day": "8",
            "month": "11",
            "year": "2019",
            "hours": "0",
            "mins": "0",
            "datestring": "08 11 2019 12:00",
            "isaltered": false,
            "alteredmessage": null,
            "weeknumber": 0
        }, {
            "day": "22",
            "month": "11",
            "year": "2019",
            "hours": "0",
            "mins": "0",
            "datestring": "22 11 2019 12:00",
            "isaltered": false,
            "alteredmessage": null,
            "weeknumber": 0
        }, {
            "day": "6",
            "month": "12",
            "year": "2019",
            "hours": "0",
            "mins": "0",
            "datestring": "06 12 2019 12:00",
            "isaltered": false,
            "alteredmessage": null,
            "weeknumber": 0
        }, {
            "day": "20",
            "month": "12",
            "year": "2019",
            "hours": "0",
            "mins": "0",
            "datestring": "20 12 2019 12:00",
            "isaltered": false,
            "alteredmessage": null,
            "weeknumber": 0
        }],
        "containeritems": null,
        "roundbitmask": 0,
        "selected": true
    }]
}
</code></pre>

<p>Yeah, not the greatest scrap of JSON I've seen. And a datestring of <code>18 10 2019 12:00</code> is particularly painful.</p>

<p>But, you know what? It gets the job done.  I was able to parse through it to get what bin day it is.</p>

<h2 id="building-the-skill"><a href="https://shkspr.mobi/blog/2019/11/alexa-which-bins-do-i-need-to-take-out-reverse-engineering-the-bexley-council-bin-collection-api/#building-the-skill">Building the skill</a></h2>

<p>I've written <a href="https://shkspr.mobi/blog/2019/09/quick-and-dirty-self-hosted-alexa-skills-2019/">a quick guide to self-hosting an Alexa skill</a>.</p>

<p>I can't release this to the public because it uses personal information. And I don't want to be responsible for storing your email address or physical address.</p>

<p>The <a href="https://gitlab.com/edent/bexley-bins-alexa-skill">crappy source code is on GitLab</a>. Enjoy!</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=32975&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2019/11/alexa-which-bins-do-i-need-to-take-out-reverse-engineering-the-bexley-council-bin-collection-api/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		<enclosure url="https://video.twimg.com/ext_tw_video/1183653146851270658/pu/vid/1280x720/tmyNVKjaJNuEWap2.mp4?tag=10" length="1078967" type="video/mp4" />

			</item>
		<item>
		<title><![CDATA[Mixing Hue and Innr Smart Lights]]></title>
		<link>https://shkspr.mobi/blog/2019/11/mixing-hue-and-innr-smart-lights/</link>
					<comments>https://shkspr.mobi/blog/2019/11/mixing-hue-and-innr-smart-lights/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Sun, 24 Nov 2019 12:17:55 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[hue]]></category>
		<category><![CDATA[lifx]]></category>
		<category><![CDATA[lights]]></category>
		<category><![CDATA[NaBloPoMo]]></category>
		<category><![CDATA[Smart Home]]></category>
		<category><![CDATA[zigbee]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=32925</guid>

					<description><![CDATA[I really wanted to write a rant about how incompatible smart lights are ruining the world. But... errr... Everything just works.  Previously on my smarthome adventures, I kitted my house out with LIFX Bulbs and some WisQo Switches. I&#039;ve moved home and none of my bulbs are compatible with the existing sockets!  What else am I going to do except BUY MORE LIGHTBULBS!  As much as I enjoy LIFX,…]]></description>
										<content:encoded><![CDATA[<p>I <em>really</em> wanted to write a rant about how incompatible smart lights are ruining the world. But... errr... Everything just works.</p>

<p>Previously on my smarthome adventures, I kitted my house out with <a href="https://shkspr.mobi/blog/tag/lifx/">LIFX Bulbs</a> and some <a href="https://shkspr.mobi/blog/2017/05/internet-connected-lightswitches-redux/">WisQo Switches</a>. I've moved home and <em>none</em> of my bulbs are compatible with the existing sockets!</p>

<p>What else am I going to do except BUY MORE LIGHTBULBS!</p>

<p>As much as I enjoy LIFX, they're bloody expensive. A single GU10 bulb is FIFTY QUID!  Our new kitchen has 17 bulbs. Even if bought in bulk, that would cost me £765.  Forget that noise!</p>

<p>So, I've gone with the Philips Hue system.  The <a href="https://amzn.to/2oRKWdX">hub was just under £50 on Amazon</a>.  The bulbs use <a href="https://zigbee.org/">Zigbee</a> rather than WiFi - which makes them cheaper and more energy efficient.</p>

<p>But <a href="https://amzn.to/2APqOf8">Hue's GU10 bulbs cost about £20 each</a> - that's still quite expensive.</p>

<p>Luckily, Zigbee is an open protocol, and there are loads of manufacturers of compatible bulbs.  I found a <a href="https://amzn.to/2AO6OK8">fourpack of Zigbee GU10 for £40</a> - a tenner per bulb. A fifth of the price of LIFX.
<img src="https://shkspr.mobi/blog/wp-content/uploads/2019/10/Hue-hub-and-Innr-lights.jpeg" alt="A lot of boxes." width="680" height="649" class="aligncenter size-full wp-image-32929">
Would they work together?  Yup.  I don't have anything to rant about. I configured the hub, installed the app, plugged in the bulbs, and - boom! - they were instantly discovered and started working.</p>

<p>There are three very minor niggles.</p>

<ol>
<li>Amazon Alexa went absolutely bananas. Discovering all those bulbs at once prompted her to keep saying "I have discovered a new light bulb. You can use it by saying..." Imagine that close to 20 times.</li>
<li>The Innr bulbs don't support firmware updates unless you have the Innr hub.  That's probably not a huge problem. Their <a href="https://innr.com/pages/support">website says</a>: "so far it has never been necessary to do a firmware update. All Innr lamps have the latest firmware approved and certified by Zigbee Alliance."
I guess I'll buy and return a hub if necessary.</li>
<li>The dimming curve is slightly uneven. Using the Hue app's manual control, I can fade the lights out gently. When I turn them off, they dim quickly to about 25% brightness and then shut off. Bit weird, but not a dealbreaker.</li>
</ol>

<p>If you can recommend a cheap supplier of Zigbee lights - or any other Zigbee gadgets - please let me know.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=32925&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2019/11/mixing-hue-and-innr-smart-lights/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Gadget Review: DophiGo DV-200 WiFi Doorbell]]></title>
		<link>https://shkspr.mobi/blog/2019/11/gadget-review-dophigo-dv-200-wifi-doorbell/</link>
					<comments>https://shkspr.mobi/blog/2019/11/gadget-review-dophigo-dv-200-wifi-doorbell/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Fri, 15 Nov 2019 08:02:28 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[gadgets]]></category>
		<category><![CDATA[IoT]]></category>
		<category><![CDATA[NaBloPoMo]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[Smart Home]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=32762</guid>

					<description><![CDATA[In my ongoing quest to open my house to hackers create the ultimate smarthome, I&#039;ve added a new toy. A video doorbell!  Why? I&#039;ve got a tall house and can&#039;t be bothered walking down several flights of stairs just to tell a peddler to piss off. And, when I&#039;m away, it&#039;s nice to know where couriers are leaving my packages.  So, here&#039;s my review of the DophiGo DV-200. It was £40 on special offer.    …]]></description>
										<content:encoded><![CDATA[<p>In my ongoing quest to <del>open my house to hackers</del> create the ultimate smarthome, I've added a new toy. A video doorbell!</p>

<p>Why? I've got a tall house and can't be bothered walking down several flights of stairs just to tell a peddler to piss off. And, when I'm away, it's nice to know where couriers are leaving my packages.</p>

<p>So, here's my review of the DophiGo DV-200. It was <a href="https://amzn.to/2oaqVPw">£40 on special offer</a>.</p>

<p><a href="https://amzn.to/2oaqVPw"><img src="https://shkspr.mobi/blog/wp-content/uploads/2019/11/dophigo-product-shot.jpeg" alt="dophigo product shot." width="680" height="645" class="aligncenter size-full wp-image-32870"></a></p>

<p>One thing to note - this is an energy efficient unit. There's no PIR sensor or movement detector. It doesn't continually stream. It doesn't have 4K resolution. It's designed to run off one battery and be recharged a few times per year.</p>

<h2 id="unboxing"><a href="https://shkspr.mobi/blog/2019/11/gadget-review-dophigo-dv-200-wifi-doorbell/#unboxing">Unboxing</a></h2>

<p>Comes with a (UK) plug in chime, doorbell, fixing kit. Button feels a little stiff. Not sure how obvious it is to a visitor.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2019/11/Unboxed-content.jpeg" alt="Unboxed content." width="633" height="680" class="aligncenter size-full wp-image-32874">

<p>But what's in the accessories box…?</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2019/11/Doorbell-accessories.jpeg" alt="Doorbell accessories." width="680" height="582" class="aligncenter size-full wp-image-32873">

<p>Screws, rawlplugs, screwdriver, instructions, and a sticker.
What's the micro-USB cable for? We'll come on to that!</p>

<h2 id="set-up"><a href="https://shkspr.mobi/blog/2019/11/gadget-review-dophigo-dv-200-wifi-doorbell/#set-up">Set Up</a></h2>

<p>Oh! Cool! It has a QR code to download the app. That'll make setting things up much easier…</p>

<p><img src="https://shkspr.mobi/blog/wp-content/uploads/2019/11/QR-code.jpeg" alt="QR code on the side of the box." width="545" height="680" class="aligncenter size-full wp-image-32872">
Ah...
<img src="https://shkspr.mobi/blog/wp-content/uploads/2019/11/Untrusted-connection.jpeg" alt="Untrusted connection error screen." width="546" height="638" class="aligncenter size-full wp-image-32871"></p>

<p>I've contacted the company, and they've now fixed it.</p>

<h2 id="charging"><a href="https://shkspr.mobi/blog/2019/11/gadget-review-dophigo-dv-200-wifi-doorbell/#charging">Charging</a></h2>

<p>There's a micro-USB port on the back. It's there for charging.
<img src="https://shkspr.mobi/blog/wp-content/uploads/2019/11/USB-port-on-back-of-the-unit.jpeg" alt="USB port on back of the unit." width="675" height="900" class="aligncenter size-full wp-image-32876">
Yeah, ideally it'd be USB-C, but it'll only be charged a few times per year. I plugged the unit into a Linux laptop and ran <code>lsusb</code> - nothing showed up. The port's just for charging - firmware updates are done via the app.</p>

<p>There's a single battery in the back:
<img src="https://shkspr.mobi/blog/wp-content/uploads/2019/11/Battery-in-the-unit.jpeg" alt="Battery in the unit." width="675" height="900" class="aligncenter size-full wp-image-32875"></p>

<p>That's an <a href="https://www.makeuseof.com/tag/18650-battery/">18650</a>.</p>

<h2 id="fitting"><a href="https://shkspr.mobi/blog/2019/11/gadget-review-dophigo-dv-200-wifi-doorbell/#fitting">Fitting</a></h2>

<p>As well as screws and rawlplugs, there are also stickers which fit to the back of the unit.
<img src="https://shkspr.mobi/blog/wp-content/uploads/2019/11/Stickers-on-the-back-of-the-unit.jpeg" alt="Stickers on the back of the unit." width="675" height="900" class="aligncenter size-full wp-image-32877">
The backing plate sticks to the door and the doorbell clips to the backing plate. There's a single screw at the bottom to prevent people nicking it. Not the most secure thing in the world but, hey, it's only forty quid.</p>

<h2 id="app"><a href="https://shkspr.mobi/blog/2019/11/gadget-review-dophigo-dv-200-wifi-doorbell/#app">App</a></h2>

<p>All smarthome apps are crap. That's an undeniable truth. <a href="https://play.google.com/store/apps/details?id=com.xiaotun.doorbell">Dophigo's WowCam app</a> is basically fine. It doesn't have the polish of a modern app, but it works.</p>

<p>It's quick too! You press the button, the unit and ringer sound, and a few seconds later your phone rings.
<img src="https://shkspr.mobi/blog/wp-content/uploads/2019/11/App-receiving-a-phone-call.jpeg" alt="App receiving a phone call." width="540" height="1080" class="aligncenter size-full wp-image-32880"></p>

<p>One down side, there's a <em>permanent</em> notification to keep the app awake. 
<img src="https://shkspr.mobi/blog/wp-content/uploads/2019/11/Permanent-notification.jpeg" alt="Permanent notification." width="1080" height="435" class="aligncenter size-full wp-image-32879">
Android really needs a better way to handle long-running background tasks.</p>

<h2 id="video"><a href="https://shkspr.mobi/blog/2019/11/gadget-review-dophigo-dv-200-wifi-doorbell/#video">Video</a></h2>

<p>The Dophigo proudly claims to have a 960p resolution. That's a bit optimistic! Downloaded video seems to be 640x480.</p>

<p>And, you know what? That's fine. It's good enough to see who is at the door. Here's my ugly mug caught on camera:
<img src="https://shkspr.mobi/blog/wp-content/uploads/2019/11/Answering-the-doorbell.jpeg" alt="Answering the doorbell." width="540" class="aligncenter size-full wp-image-32882"></p>

<p>When someone rings the bell, a 10 second video clip is stored somewhere in the cloud - so if you miss a call, you can see who was there:
<img src="https://shkspr.mobi/blog/wp-content/uploads/2019/11/List-of-videos.jpeg" alt="List of videos." width="600" height="1200" class="aligncenter size-full wp-image-32881"></p>

<h2 id="night-vision"><a href="https://shkspr.mobi/blog/2019/11/gadget-review-dophigo-dv-200-wifi-doorbell/#night-vision">Night vision</a></h2>

<p>Our road is reasonably well lit, and the camera copes well at night. It doesn't have a powerful flashlight - again, to save battery - but it claims to have "military level infrared night vision".
<img src="https://shkspr.mobi/blog/wp-content/uploads/2019/11/Night-Vision.jpg" alt="A grinning idiot. Me. I am the idiot." width="640" height="484" class="aligncenter size-full wp-image-32869"></p>

<h2 id="networking"><a href="https://shkspr.mobi/blog/2019/11/gadget-review-dophigo-dv-200-wifi-doorbell/#networking">Networking</a></h2>

<p>It is <a href="https://shkspr.mobi/blog/2016/03/designing-a-home-network-for-hostile-devices/">impossible to create a sensible WiFi configuration</a> for a smarthome. Luckily the device doesn't need a local network connection, just an Internet connection. So it is on a separate WiFi network. If it gets stolen, and if they can dump the flash memory, they'll find that my IoT network's password is <code>hunter2</code>.</p>

<p>It only connects to 2.4GHz - fine for this sort of thing - and copes well with my router being quite far away and behind several doors.</p>

<p>I ran a quick <code>nmap</code></p>

<pre><code class="language-_">PORT     STATE    SERVICE
554/tcp  open     rtsp
687/tcp  filtered asipregistry
1107/tcp filtered isoipsigport-2
4662/tcp filtered edonkey
9999/tcp filtered abyss
</code></pre>

<p>I wasn't able to connect to any of them without authentication - but I didn't try too hard. The app's connection to the cloud used SSL and was resistant to my MITM attacks.</p>

<h2 id="privacy"><a href="https://shkspr.mobi/blog/2019/11/gadget-review-dophigo-dv-200-wifi-doorbell/#privacy">Privacy</a></h2>

<p>The app makes it very clear what happens to your data.
<img src="https://shkspr.mobi/blog/wp-content/uploads/2019/11/Privacy-agreement.-All-your-data-belongs-to-China.jpeg" alt="Privacy agreement. All your data belongs to China." width="680" height="472" class="aligncenter size-full wp-image-32878"></p>

<h2 id="verdict"><a href="https://shkspr.mobi/blog/2019/11/gadget-review-dophigo-dv-200-wifi-doorbell/#verdict">Verdict</a></h2>

<p>It works! The audio quality isn't high-def, but it's good enough. The video isn't DVD quality, but it's good enough. The app isn't exactly a joy to use, but it's good enough.</p>

<p>There's no ongoing fees, unlike some other cameras, and it doesn't invade the privacy of your neighbours by going off every time someone walks down the street.</p>

<p>I paid <a href="https://amzn.to/2oaqVPw">£40 on special offer</a> - and I reckon that's a bloody good price.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=32762&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2019/11/gadget-review-dophigo-dv-200-wifi-doorbell/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Two years of home heating data]]></title>
		<link>https://shkspr.mobi/blog/2019/02/two-years-of-home-heating-data/</link>
					<comments>https://shkspr.mobi/blog/2019/02/two-years-of-home-heating-data/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Wed, 20 Feb 2019 08:14:07 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[Open Data]]></category>
		<category><![CDATA[Smart Home]]></category>
		<category><![CDATA[tado]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=31458</guid>

					<description><![CDATA[I have a Tado smart thermostat - part of my smarthome project.  As well as letting me set the temperature from my phone, it records environmental data, and provides a handy API for me to retrieve it.  This blog post will show you why I&#039;ve gathered the data, let you download the full dataset, and explain what I learned from it.  Why do this?  There&#039;s a long-standing plan to use waste-heat from a…]]></description>
										<content:encoded><![CDATA[<p>I have a Tado smart thermostat - part of my <a href="https://shkspr.mobi/blog/tag/smart-home/">smarthome project</a>.  As well as letting me set the temperature from my phone, it records environmental data, and <a href="https://shkspr.mobi/blog/2019/02/tado-api-guide-updated-for-2019/">provides a handy API</a> for me to retrieve it.</p>

<p>This blog post will show you why I've gathered the data, let you download the full dataset, and explain what I learned from it.</p>

<h2 id="why-do-this"><a href="https://shkspr.mobi/blog/2019/02/two-years-of-home-heating-data/#why-do-this">Why do this?</a></h2>

<p>There's a long-standing plan to <a href="https://www.oxfordtimes.co.uk/news/15264567.Supermarket_freezers_could_heat_homes_in_new___2_5m_scheme/">use waste-heat from a nearby supermarket</a> to provide communal heat to our neighbourhood.</p>

<blockquote><p>A low temperature heat main would connect directly to the chillers at the superstore via a heat recovery unit and circulate ~25° hot water around the neighbourhood. The homes will symbiotically draw on the waste heat produced by the supermarket.</p>

<p>A heat pump would be installed in each household, as a replacement to their existing gas boiler.</p>

<p>The properties will use the existing radiators to run their heating longer but at a lower temperature in order to deliver the same level of thermal comfort.</p>

<p><a href="https://rosehillnewsonline.files.wordpress.com/2017/03/bioregional-ucef-report-feb-2017-r.pdf">Bioregional's Rose Hill renewable energy feasibility study</a></p></blockquote>

<p>In order to assess whether this is feasible, we need to understand heating demand.</p>

<h2 id="graph-it-up"><a href="https://shkspr.mobi/blog/2019/02/two-years-of-home-heating-data/#graph-it-up">Graph it up!</a></h2>

<p>This graph shows February 14th 2017 - 2019.  The green graph line is the temperature inside my house.  The blue graph line is the external temperature as measured by a local weather sensor in Oxford.  The vertical lines represent when the heating was on - with yellow, orange, and red representing low-demand, medium-demand, and high-demand.</p>

<p><a href="https://shkspr.mobi/blog/wp-content/uploads/2019/02/2-years-full-fs8.png"><img src="https://shkspr.mobi/blog/wp-content/uploads/2019/02/2-years-full-fs8.png" alt="A complicated graph." width="1366" height="705" class="aligncenter size-full wp-image-31469"></a></p>

<ul>
<li>Fairly obviously, heating demand is highest in winter - but it surprised me just how late it starts.</li>
<li>Internal temperature doesn't vary as much as external.</li>
<li>Even in the depth of winter, with the heating off, the house didn't drop bellow 10°C. That's pretty good insulation!</li>
</ul>

<h2 id="zoom"><a href="https://shkspr.mobi/blog/2019/02/two-years-of-home-heating-data/#zoom">Zoom!</a></h2>

<p>Let's zoom in on December 2018 (tap for bigger):
<a href="https://shkspr.mobi/blog/wp-content/uploads/2019/02/December-2018-fs8.png"><img src="https://shkspr.mobi/blog/wp-content/uploads/2019/02/December-2018-fs8.png" alt="Another graph." width="1366" height="705" class="aligncenter size-full wp-image-31471"></a></p>

<p>We were away over the holidays, so the heating was set to stay off - unless the internal reading was under 10°C. Luckily, that didn't happen!</p>

<p>You can also see how rapidly the house cools when the external temperature drops.</p>

<p>Conversely, the rise in external temperature from 5 to 10 barely raised the internal temperature.</p>

<h2 id="enhance"><a href="https://shkspr.mobi/blog/2019/02/two-years-of-home-heating-data/#enhance">Enhance!</a></h2>

<p>Let's zoom in on a couple of days in December 2018.</p>

<p><a href="https://shkspr.mobi/blog/wp-content/uploads/2019/02/Dec-Days-fs8.png"><img src="https://shkspr.mobi/blog/wp-content/uploads/2019/02/Dec-Days-fs8.png" alt="Wibbly wobbly graphy warphy." width="1366" height="705" class="aligncenter size-full wp-image-31474"></a></p>

<p>Here you can see the heating demand. The theory is that Tado can use the weather forecast to see how much heat it needs to generate. I can't easily assess whether it works in practice, but there are a few instances where the heating cuts off before the house reaches the target temperature. Presumably because it know the environment will provide the rest of the thermal energy.</p>

<h2 id="get-the-data"><a href="https://shkspr.mobi/blog/2019/02/two-years-of-home-heating-data/#get-the-data">Get The Data!</a></h2>

<p>There are two datasets available.  Both are being released under <a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0</a>.</p>

<p>The first is <a href="https://shkspr.mobi/blog/wp-content/uploads/2019/02/2-Year-Heating-Demand-Data.csv.zip">a CSV file of heating demand (190KB).
<img src="https://shkspr.mobi/blog/wp-content/uploads/2019/02/Demand-CSV-fs8.png" alt="A CSV showing demand data." width="667" height="236" class="aligncenter size-full wp-image-31478"></a></p>

<p>The second is <a href="https://shkspr.mobi/blog/wp-content/uploads/2019/02/Heating-Data.zip">the complete Tado output (2.5MB Zip, 25MB unzipped)</a>.
It is a series of daily JSON files which contain:</p>

<ul>
<li>Internal temperature</li>
<li>External temperature</li>
<li>Internal humidity</li>
<li>Whether anyone was at home</li>
<li>What the thermostat was set to</li>
<li>If the heating was on</li>
<li>Heating demand</li>
<li>When the hot water was on</li>
</ul>

<p>Feel free to use this data for something interesting, or to make beautiful graphs. I make no claims to its accuracy or completeness.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=31458&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2019/02/two-years-of-home-heating-data/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Tado API Guide - updated for 2019]]></title>
		<link>https://shkspr.mobi/blog/2019/02/tado-api-guide-updated-for-2019/</link>
					<comments>https://shkspr.mobi/blog/2019/02/tado-api-guide-updated-for-2019/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Thu, 14 Feb 2019 12:22:17 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[IoT]]></category>
		<category><![CDATA[Smart Home]]></category>
		<category><![CDATA[tado]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=31397</guid>

					<description><![CDATA[Tado is a brilliant smart thermostat. But their API is very poorly documented. This is an updated guide for 2019.  I am indebted to Stephen C Phillips&#039; original documentation.  Getting started  You will need:   A Tado (duh!) Your Username (usually your email address) Your Password A Client Secret   Getting the client secret  I&#039;m using this client secret:…]]></description>
										<content:encoded><![CDATA[<p>Tado is a brilliant smart thermostat. But their API is very poorly documented. This is an updated guide for 2019.  I am indebted to <a href="http://blog.scphillips.com/posts/2017/01/the-tado-api-v2/">Stephen C Phillips' original documentation</a>.</p>

<h2 id="getting-started"><a href="https://shkspr.mobi/blog/2019/02/tado-api-guide-updated-for-2019/#getting-started">Getting started</a></h2>

<p>You will need:</p>

<ul>
<li>A <a href="https://amzn.to/2DyaNvb">Tado</a> (duh!)</li>
<li>Your Username (usually your email address)</li>
<li>Your Password</li>
<li>A Client Secret</li>
</ul>

<h3 id="getting-the-client-secret"><a href="https://shkspr.mobi/blog/2019/02/tado-api-guide-updated-for-2019/#getting-the-client-secret">Getting the client secret</a></h3>

<p>I'm using this client secret:
<code>wZaRN7rpjn3FoNyF5IFuxg9uMzYJcvOoQ8QWiIqS3hfk6gLhVlG57j5YNoZL2Rtc</code>
This secret may change in the future.  In the examples, I'll shorten it to <code>wZa</code> to make it easier to read. You will need to use the full length secret when running this code.</p>

<p>To get the current secret,  you can visit <a href="https://my.tado.com/webapp/env.js"><code>https://my.tado.com/webapp/env.js</code></a> and get the secret from there.</p>

<pre><code class="language-js">var TD = {
    config: {
        version: 'v587',
        tgaRestApiEndpoint: 'https://my.tado.com/api/v1',
        tgaRestApiV2Endpoint: 'https://my.tado.com/api/v2',
        susiApiEndpoint: 'https://susi.tado.com/api',
        oauth: {
            clientApiEndpoint: 'https://my.tado.com/oauth/clients',
            apiEndpoint: 'https://auth.tado.com/oauth',
            clientId: 'tado-web-app',
            clientSecret: 'wZaRN7rpjn3FoNyF5IFuxg9uMzYJcvOoQ8QWiIqS3hfk6gLhVlG57j5YNoZL2Rtc'
        }
    }
};
</code></pre>

<p>If that ever changes, you will need to open your web browser's development tools, and then look in the network tab.  Then, log in to <a href="https://my.tado.com/webapp/"></a><a href="https://my.tado.com/webapp/">https://my.tado.com/webapp/</a>.</p>

<p>You should see the token:
<img src="https://shkspr.mobi/blog/wp-content/uploads/2019/02/tado-token-fs8.png" alt="Debug screen of a web browser." width="464" height="353" class="aligncenter size-full wp-image-31398"></p>

<h2 id="get-bearer-token"><a href="https://shkspr.mobi/blog/2019/02/tado-api-guide-updated-for-2019/#get-bearer-token">Get Bearer Token</a></h2>

<p>These examples use the <code>curl</code> command on Linux.</p>

<p>Here's how to turn your username and password into a "Bearer Token" - this is needed for every subsequent API call:</p>

<pre><code class="language-_">curl -s "https://auth.tado.com/oauth/token" -d client_id=tado-web-app -d grant_type=password -d scope=home.user -d username="you@example.com" -d password="Password123" -d client_secret=wZa
</code></pre>

<p>The response will be:</p>

<pre><code class="language-json">{
    "access_token": "abc",
    "token_type": "bearer",
    "refresh_token": "def",
    "expires_in": 599,
    "scope": "home.user",
    "jti": "xyz-123"
}
</code></pre>

<p>The real <code>access_token</code> will be <em>very</em> long. I've shortened it to <code>abc</code> make things easier to read in these examples.</p>

<p>The access token expires after 600 seconds. You can either request a new one with the username and password, or use the provided <code>refresh_token</code> like so:</p>

<pre><code class="language-_">curl -s "https://auth.tado.com/oauth/token" -d grant_type=refresh_token -d refresh_token=def -d client_id=tado-web-app -d scope=home.user -d client_secret=wZa
</code></pre>

<h2 id="get-your-details"><a href="https://shkspr.mobi/blog/2019/02/tado-api-guide-updated-for-2019/#get-your-details">Get your details</a></h2>

<p>The next step is to get your <code>homeId</code> - this will also be needed for subsequent API calls:</p>

<pre><code class="language-_">curl -s "https://my.tado.com/api/v1/me" -H "Authorization: Bearer abc"
</code></pre>

<p>You'll get back your data, like this:</p>

<pre><code class="language-json">{
    "name": "Terence Eden",
    "email": "you@example.com",
    "username": "your_user_name",
    "enabled": true,
    "id": "987654321",
    "homeId": 123456,
    "locale": "en_GB",
    "type": "WEB_USER"
}
</code></pre>

<p>Your <code>homeId</code> is what's important here. I'm going to use the example <code>123456</code> - you should use your own.</p>

<h2 id="check-it-all-works"><a href="https://shkspr.mobi/blog/2019/02/tado-api-guide-updated-for-2019/#check-it-all-works">Check it all works</a></h2>

<p>This request will check that you've got the right details.</p>

<pre><code class="language-_">curl -s "https://my.tado.com/api/v2/homes/123456" -H "Authorization: Bearer abc"
</code></pre>

<p>You'll get back information about your installation. I've redacted mine for privacy.</p>

<pre><code class="language-json">{
    "id": 123456,
    "name": " ",
    "dateTimeZone": "Europe/London",
    "dateCreated": "2015-12-18T19:21:59.315Z",
    "temperatureUnit": "CELSIUS",
    "installationCompleted": true,
    "partner": " ",
    "simpleSmartScheduleEnabled": true,
    "awayRadiusInMeters": 123.45,
    "usePreSkillsApps": true,
    "skills": [],
    "christmasModeEnabled": true,
    "contactDetails": {
        "name": "Terence Eden",
        "email": " ",
        "phone": " "
    },
    "address": {
        "addressLine1": " ",
        "addressLine2": null,
        "zipCode": " ",
        "city": " ",
        "state": null,
        "country": "GBR"
    },
    "geolocation": {
        "latitude": 12.3456789,
        "longitude": -1.23456
    },
    "consentGrantSkippable": true
}
</code></pre>

<h2 id="get-your-data"><a href="https://shkspr.mobi/blog/2019/02/tado-api-guide-updated-for-2019/#get-your-data">Get your data</a></h2>

<p>OK, here's where the fun begins. This gets the data about your installation - including firmware details, device names, etc.</p>

<pre><code class="language-_">curl -s "https://my.tado.com/api/v2/homes/123456/zones" -H "Authorization: Bearer abc"
</code></pre>

<p>Here's what you get back - I've redacted some of my details.</p>

<pre><code class="language-json">[{
    "id": 1,
    "name": "Heating",
    "type": "HEATING",
    "dateCreated": "2015-12-21T15:46:45.000Z",
    "deviceTypes": ["RU01"],
    "devices": [{
        "deviceType": "RU01",
        "serialNo": " ",
        "shortSerialNo": " ",
        "currentFwVersion": "54.8",
        "connectionState": {
            "value": true,
            "timestamp": "2019-02-13T19:30:52.733Z"
        },
        "characteristics": {
            "capabilities": ["INSIDE_TEMPERATURE_MEASUREMENT", "IDENTIFY", "OPEN_WINDOW_DETECTION"]
        },
        "batteryState": "NORMAL",
        "duties": ["ZONE_UI", "ZONE_LEADER"]
    }],
    "reportAvailable": false,
    "supportsDazzle": true,
    "dazzleEnabled": true,
    "dazzleMode": {
        "supported": true,
        "enabled": true
    },
    "openWindowDetection": {
        "supported": true,
        "enabled": true,
        "timeoutInSeconds": 1800
    }
}, {
    "id": 0,
    "name": "Hot Water",
    "type": "HOT_WATER",
    "dateCreated": "2016-10-03T11:31:42.272Z",
    "deviceTypes": ["BU01", "RU01"],
    "devices": [{
        "deviceType": "BU01",
        "serialNo": " ",
        "shortSerialNo": " ",
        "currentFwVersion": "49.4",
        "connectionState": {
            "value": true,
            "timestamp": "2019-02-13T19:36:17.361Z"
        },
        "characteristics": {
            "capabilities": []
        },
        "isDriverConfigured": true,
        "duties": ["ZONE_DRIVER"]
    }, {
        "deviceType": "RU01",
        "serialNo": " ",
        "shortSerialNo": " ",
        "currentFwVersion": "54.8",
        "connectionState": {
            "value": true,
            "timestamp": "2019-02-13T19:30:52.733Z"
        },
        "characteristics": {
            "capabilities": ["INSIDE_TEMPERATURE_MEASUREMENT", "IDENTIFY", "OPEN_WINDOW_DETECTION"]
        },
        "batteryState": "NORMAL",
        "duties": ["ZONE_UI", "ZONE_LEADER"]
    }],
    "reportAvailable": false,
    "supportsDazzle": false,
    "dazzleEnabled": false,
    "dazzleMode": {
        "supported": false
    },
    "openWindowDetection": {
        "supported": false
    }
}]
</code></pre>

<h2 id="state"><a href="https://shkspr.mobi/blog/2019/02/tado-api-guide-updated-for-2019/#state">State</a></h2>

<p>This command will tell you if you're home or not. Or, in other words, whether the Tado thinks you're nearby:</p>

<pre><code class="language-_">curl -s https://my.tado.com/api/v2/homes/123465/state -H "Authorization: Bearer abc"
</code></pre>

<p>This is what you'll get back if you're at home</p>

<pre><code class="language-_">{"presence":"HOME"}
</code></pre>

<h2 id="zones"><a href="https://shkspr.mobi/blog/2019/02/tado-api-guide-updated-for-2019/#zones">Zones</a></h2>

<p>My Tado has two "Zones".  0 is for Hot Water, 1 is for Heating. Yours may be different.</p>

<h2 id="hot-water-information"><a href="https://shkspr.mobi/blog/2019/02/tado-api-guide-updated-for-2019/#hot-water-information">Hot Water Information</a></h2>

<pre><code class="language-_">curl -s https://my.tado.com/api/v2/homes/123456/zones/0/state -H "Authorization: Bearer abc"
</code></pre>

<p>Here's information about your hot water:</p>

<pre><code class="language-json">{
    "tadoMode": "HOME",
    "geolocationOverride": false,
    "geolocationOverrideDisableTime": null,
    "preparation": null,
    "setting": {
        "type": "HOT_WATER",
        "power": "OFF",
        "temperature": null
    },
    "overlayType": null,
    "overlay": null,
    "openWindow": null,
    "nextScheduleChange": {
        "start": "2019-02-13T19:00:00Z",
        "setting": {
            "type": "HOT_WATER",
            "power": "ON",
            "temperature": null
        }
    },
    "link": {
        "state": "ONLINE"
    },
    "activityDataPoints": {},
    "sensorDataPoints": {}
}
</code></pre>

<h3 id="heating"><a href="https://shkspr.mobi/blog/2019/02/tado-api-guide-updated-for-2019/#heating">Heating</a></h3>

<p>It's much the same for Heating information:</p>

<pre><code class="language-_">curl -s https://my.tado.com/api/v2/homes/123456/zones/1/state -H "Authorization: Bearer abc"
</code></pre>

<p>This also gets you humidity data etc:</p>

<pre><code class="language-json">{
    "tadoMode": "HOME",
    "geolocationOverride": false,
    "geolocationOverrideDisableTime": null,
    "preparation": null,
    "setting": {
        "type": "HEATING",
        "power": "ON",
        "temperature": {
            "celsius": 15.00,
            "fahrenheit": 59.00
        }
    },
    "overlayType": null,
    "overlay": null,
    "openWindow": null,
    "nextScheduleChange": {
        "start": "2019-02-13T17:30:00Z",
        "setting": {
            "type": "HEATING",
            "power": "ON",
            "temperature": {
                "celsius": 18.00,
                "fahrenheit": 64.40
            }
        }
    },
    "link": {
        "state": "ONLINE"
    },
    "activityDataPoints": {
        "heatingPower": {
            "type": "PERCENTAGE",
            "percentage": 0.00,
            "timestamp": "2019-02-13T10:19:37.135Z"
        }
    },
    "sensorDataPoints": {
        "insideTemperature": {
            "celsius": 16.59,
            "fahrenheit": 61.86,
            "timestamp": "2019-02-13T10:30:52.733Z",
            "type": "TEMPERATURE",
            "precision": {
                "celsius": 0.1,
                "fahrenheit": 0.1
            }
        },
        "humidity": {
            "type": "PERCENTAGE",
            "percentage": 57.20,
            "timestamp": "2019-02-13T10:30:52.733Z"
        }
    }
}
</code></pre>

<h2 id="weather"><a href="https://shkspr.mobi/blog/2019/02/tado-api-guide-updated-for-2019/#weather">Weather</a></h2>

<p>Tado also provides you with data about the external weather:</p>

<pre><code class="language-_">curl -s https://my.tado.com/api/v2/homes/123456/weather -H 'Authorization: Bearer abc'
</code></pre>

<p>You get back a basic weather report for your location:</p>

<pre><code class="language-json">{
    "solarIntensity": {
        "type": "PERCENTAGE",
        "percentage": 68.10,
        "timestamp": "2019-02-10T10:35:00.989Z"
    },
    "outsideTemperature": {
        "celsius": 8.00,
        "fahrenheit": 46.40,
        "timestamp": "2019-02-10T10:35:00.989Z",
        "type": "TEMPERATURE",
        "precision": {
            "celsius": 0.01,
            "fahrenheit": 0.01
        }
    },
    "weatherState": {
        "type": "WEATHER_STATE",
        "value": "CLOUDY_PARTLY",
        "timestamp": "2019-02-10T10:35:00.989Z"
    }
}
</code></pre>

<h2 id="controlling-your-home"><a href="https://shkspr.mobi/blog/2019/02/tado-api-guide-updated-for-2019/#controlling-your-home">Controlling your home</a></h2>

<p>It's possible to turn the heating and hot water on / off.</p>

<h3 id="turn-heating-on"><a href="https://shkspr.mobi/blog/2019/02/tado-api-guide-updated-for-2019/#turn-heating-on">Turn Heating On</a></h3>

<p>This is a <code>PUT</code> request</p>

<pre><code class="language-_">curl -s 'https://my.tado.com/api/v2/homes/123456/zones/1/overlay' -X PUT -H 'Authorization: Bearer abc' -H 'Content-Type: application/json;charset=utf-8' --data '{"setting":{"type":"HEATING","power":"ON","temperature":{"celsius":21,"fahrenheit":69.8}},"termination":{"type":"MANUAL"}}'
</code></pre>

<p>Just to make it easier to read, this is the JSON data that you have to <code>PUT</code>:</p>

<pre><code class="language-json">{
    "setting": {
        "type": "HEATING",
        "power": "ON",
        "temperature": {
            "celsius": 21,
            "fahrenheit": 69.8
        }
    },
    "termination": {
        "type": "MANUAL"
    }
}
</code></pre>

<p>If it has worked, you'll get back this response:</p>

<pre><code class="language-json">{
    "type": "MANUAL",
    "setting": {
        "type": "HEATING",
        "power": "ON",
        "temperature": {
            "celsius": 21.00,
            "fahrenheit": 69.80
        }
    },
    "termination": {
        "type": "MANUAL",
        "projectedExpiry": null
    }
}
</code></pre>

<h3 id="end-manual-heading-mode"><a href="https://shkspr.mobi/blog/2019/02/tado-api-guide-updated-for-2019/#end-manual-heading-mode">End Manual Heading Mode</a></h3>

<p>This is a simple <code>DELETE</code> command:</p>

<pre><code class="language-_">curl -s 'https://my.tado.com/api/v2/homes/123456/zones/1/overlay' -X DELETE -H 'Authorization: Bearer abc'
</code></pre>

<h3 id="turn-on-hot-water"><a href="https://shkspr.mobi/blog/2019/02/tado-api-guide-updated-for-2019/#turn-on-hot-water">Turn on Hot Water</a></h3>

<p>Much the same as before</p>

<pre><code class="language-_">curl -s 'https://my.tado.com/api/v2/homes/123456/zones/0/overlay' -X PUT -H 'Content-Type: application/json;charset=utf-8' -H 'Authorization: Bearer abc'--data '{"setting":{"type":"HOT_WATER","power":"ON"},"termination":{"type":"MANUAL"}}'
</code></pre>

<h3 id="turn-off-hot-water"><a href="https://shkspr.mobi/blog/2019/02/tado-api-guide-updated-for-2019/#turn-off-hot-water">Turn off Hot Water</a></h3>

<p>Again, a <code>DELETE</code></p>

<pre><code class="language-_">curl -s 'https://my.tado.com/api/v2/homes/123456/zones/0/overlay' -X DELETE -H 'Authorization: Bearer abc' 
</code></pre>

<h2 id="historic-information"><a href="https://shkspr.mobi/blog/2019/02/tado-api-guide-updated-for-2019/#historic-information">Historic Information</a></h2>

<p>You can get a complete view of historic data with:</p>

<pre><code class="language-_">curl -s 'https://my.tado.com/api/v2/homes/123456/zones/1/dayReport?date=2018-02-14' -H 'Authorization: Bearer abc' 
</code></pre>

<p>The <code>date</code> at the end is in ISO8601 format. You'll receive info on internal and external temperature, humidity levels, whether the heating and hot water were on, and a few other bits and bobs.</p>

<h2 id="whats-next"><a href="https://shkspr.mobi/blog/2019/02/tado-api-guide-updated-for-2019/#whats-next">What's Next?</a></h2>

<p>There are a bunch of other things you can do with the API, like setting a schedule etc. Sadly, I don't have time to document them all.  But this should be enough to get you detailed information, and basic control.</p>

<p>I'd love it if someone could make OpenAPI documentation for this.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=31397&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2019/02/tado-api-guide-updated-for-2019/feed/</wfw:commentRss>
			<slash:comments>65</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Building an Alexa-Powered Electric Blanket]]></title>
		<link>https://shkspr.mobi/blog/2018/11/building-an-alexa-powered-electric-blanket/</link>
					<comments>https://shkspr.mobi/blog/2018/11/building-an-alexa-powered-electric-blanket/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Wed, 28 Nov 2018 12:38:27 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[alexa]]></category>
		<category><![CDATA[IoT]]></category>
		<category><![CDATA[NaBloPoMo]]></category>
		<category><![CDATA[Smart Home]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=30814</guid>

					<description><![CDATA[One evening, my wife turned to me in bed and said, &#34;Winter is coming...&#34;  Well, what she actually said was &#34;Get your frozen feet away from me, you cold-blooded monster!&#34;  The only way to save our marriage?  HOOK OUR BED UP TO THE INTERNET!  I couldn&#039;t find an electric blanket with IoT connectivity - so I built my own.  Why?  As a person with cold feet, I want to yell at my robot servant to…]]></description>
										<content:encoded><![CDATA[<p>One evening, my wife turned to me in bed and said, "Winter is coming..."</p>

<p>Well, what she actually said was "Get your frozen feet away from me, you cold-blooded monster!"</p>

<p>The only way to save our marriage?  HOOK OUR BED UP TO THE INTERNET!</p>

<p>I couldn't find an electric blanket with IoT connectivity - so I built my own.</p>

<h2 id="why"><a href="https://shkspr.mobi/blog/2018/11/building-an-alexa-powered-electric-blanket/#why">Why?</a></h2>

<p>As a person with cold feet, I want to yell at my robot servant to pre-heat the bed, so that it is toasty warm by the time I've finished my evening ablutions.</p>

<h2 id="the-blanket"><a href="https://shkspr.mobi/blog/2018/11/building-an-alexa-powered-electric-blanket/#the-blanket">The Blanket</a></h2>

<p>The key was finding a blanket with dual-controls, which <em>also</em> could turn on from the plug socket.  Lots of blankets have a separate control unit.  I found this one which started heating as soon as it received power from the plug.</p>

<p><a href="https://amzn.to/3BVrH9j"><img src="https://images-na.ssl-images-amazon.com/images/I/71r1-j95wVL._SL600_.jpg" width="600" height="360" alt="An electric blanket." class="aligncenter size-medium"></a></p>

<p>I'm sure there are many different models available. Choose whichever one suits your needs, but make sure it defaults to "on".</p>

<p>Cost: <a href="https://amzn.to/3BVrH9j">£70 from Amazon</a></p>

<h2 id="the-plug"><a href="https://shkspr.mobi/blog/2018/11/building-an-alexa-powered-electric-blanket/#the-plug">The Plug</a></h2>

<p>My side of the bed is controlled by a <a href="https://shkspr.mobi/blog/2018/08/review-meross-smart-plugs-and-surge-protector/">Meross smart plug</a>.
<a href="https://amzn.to/2Mb5Ori"><img src="https://shkspr.mobi/blog/wp-content/uploads/2018/08/Plug-socket.jpg" alt="Pair of plug sockets." width="640" height="386" class="aligncenter size-full wp-image-30151"></a></p>

<p>Pretty simple. Plug in, use the app to configure the WiFi. Done.  It can now be controlled by a smartphone.</p>

<p>Cost: <a href="https://amzn.to/2Mb5Ori">£15 on Amazon</a></p>

<h2 id="the-other-plug"><a href="https://shkspr.mobi/blog/2018/11/building-an-alexa-powered-electric-blanket/#the-other-plug">The Other Plug</a></h2>

<p>I had a <a href="https://shkspr.mobi/blog/2017/05/review-sonoff-s20-wifi-plug/">Sonoff S20 smart plug</a> laying around.  It's an older model - but still works.</p>

<p><a href="https://shkspr.mobi/blog/2017/05/review-sonoff-s20-wifi-plug/"><img src="https://shkspr.mobi/blog/wp-content/uploads/2017/05/Sonoff-S20.jpg" alt="A schematic of a smart plug." width="1024" height="677" class="aligncenter size-full wp-image-27051"></a></p>

<p>Again, use the app to configure. Only takes a few minutes.</p>

<p>Cost: <a href="https://amzn.to/2TQMQGB">£10 on Amazon</a></p>

<h2 id="alexa"><a href="https://shkspr.mobi/blog/2018/11/building-an-alexa-powered-electric-blanket/#alexa">Alexa</a></h2>

<p>Configuring an <a href="https://shkspr.mobi/blog/2017/06/alexa-powered-smarthome-control-for-sonoff/">Alexa for a smarthome used to be a pain</a> - but it is much improved.  Once the "Skills" are installed for your plug sockets, the individual smart things can be renamed and configured.  Still takes a little bit of time, but fairly simple.</p>

<p>I've set up a group called "Electric Blanket".  It contains both plugs.
<img src="https://shkspr.mobi/blog/wp-content/uploads/2018/11/Electric-blanket-in-Alexa.png" alt="Electric blanket showing in Alexa's settings screen." width="270" height="526" class="aligncenter size-full wp-image-30816"></p>

<p>I've given a unique name to each side of the blanket.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2018/11/Separate-switches.png" alt="Alexa settings screen showing Terry's bed and Liz's bed." width="540" height="542" class="aligncenter size-full wp-image-30815">

<p>For some reason, Alexa thinks the Meross is a switch and the Sonoff is a plug. What's the difference? Who knows!</p>

<p>I can say "Alexa, switch on the electric blanket" or "switch on Liz's side of the bed."  But that's about the limit.</p>

<p>Cost: <a href="https://amzn.to/2QnSUHV">£25 on Amazon</a></p>

<h2 id="in-action"><a href="https://shkspr.mobi/blog/2018/11/building-an-alexa-powered-electric-blanket/#in-action">In Action</a></h2>

<p>It works!</p>

<iframe title="Alexa Powered Electric Blanket" width="620" height="349" src="https://www.youtube.com/embed/G1opkwpR9yw?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen=""></iframe>

<h2 id="it-doesnt-quite-work"><a href="https://shkspr.mobi/blog/2018/11/building-an-alexa-powered-electric-blanket/#it-doesnt-quite-work">It doesn't quite work</a></h2>

<p>There are some flaws in my plan.</p>

<p>Alexa doesn't recognise voices. So I can't say "Turn on <em>my</em> side of the bed" and my wife can't say "turn on <em>his</em> side of the bed."  As I've said before, voice interfaces are like the command-line. There's no room for error.</p>

<p>Secondly, the electric blanket automatically shuts off after an hour - but the plug socket stays live.  In order to turn on the blanket again, I need to turn it off first.  There is no way to tell Alexa to switch on a socket for an hour and then switch it off.  So there are two possible solutions:</p>

<ol>
<li>Set up a schedule in the plug's app to automatically turn off the plug at, say, 10 AM.</li>
<li>Every time we want to use the blanket, tell Alexa to turn it off first.</li>
</ol>

<p>Neither of those are particularly satisfactory.</p>

<p>There's also the minor risk that attackers could break through my firewall and burn down my house. <code>WONTFIX</code>.</p>

<h2 id="conclusion"><a href="https://shkspr.mobi/blog/2018/11/building-an-alexa-powered-electric-blanket/#conclusion">Conclusion</a></h2>

<p>For around £100 you can self-built an IoT heated blanket.  It mostly works. This will save your marriage, 100% guaranteed.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=30814&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2018/11/building-an-alexa-powered-electric-blanket/feed/</wfw:commentRss>
			<slash:comments>10</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[People who live in smart-houses, shouldn't throw parties]]></title>
		<link>https://shkspr.mobi/blog/2018/11/people-who-live-in-smart-houses-shouldnt-throw-parties/</link>
					<comments>https://shkspr.mobi/blog/2018/11/people-who-live-in-smart-houses-shouldnt-throw-parties/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Thu, 15 Nov 2018 08:07:44 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[lifx]]></category>
		<category><![CDATA[NaBloPoMo]]></category>
		<category><![CDATA[Smart Home]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=30547</guid>

					<description><![CDATA[I have friends. More than one! I also have a home full of smart-gadgets which are controlled by apps. The two don&#039;t mix.  This is yet another complaint about solipsistic app design.  Let&#039;s take my Lifx bulbs.  I have a friend staying for a few days, and he needs to be able to turn lights on and off.  Lifx make this functionally impossible.  The available options are...   Give my full email…]]></description>
										<content:encoded><![CDATA[<p>I have friends. More than one! I also have a home full of smart-gadgets which are controlled by apps. The two don't mix.</p>

<p>This is yet another complaint about <a href="https://shkspr.mobi/blog/2015/08/anti-social-app-design/">solipsistic app design</a>.</p>

<p>Let's take my Lifx bulbs.  I have a friend staying for a few days, and he needs to be able to turn lights on and off.  Lifx make this <a href="https://www.reddit.com/r/lifx/comments/9k5ga2/guest_access_without_being_on_the_same_wifi/">functionally impossible</a>.  The available options are...</p>

<ul>
<li>Give my full email address &amp; password to him.  This feels suboptimal.</li>
<li>Allow him on to my main WiFi. Again, suboptimal. This is why <a href="https://shkspr.mobi/blog/2014/04/virgin-media-just-gave-all-of-their-customers-plausible-deniability%e2%80%8e/">my ISP provided router has a guest mode</a>.</li>
</ul>

<p>Bleugh. Neither is a good solution. Luckily I have an Amazon Alexa hooked up to the lights.  But because Alexa's "AI" is barely above the level of a speak-n-spell, that's also unsatisfactory.</p>

<p>My guest tried to turn off the hall lights. Only he used the wrong invocation. "Alexa, turn off the landing light" just doesn't cut it. Such AI, much recognition, big data mood.</p>

<p>In a fit of pique, he asked Alexa what devices it had attached. The response was typical of Alexa's usefulness:
<img src="https://shkspr.mobi/blog/wp-content/uploads/2018/11/Alexa-What-devices-are-there.png" alt="Alexa app displaying a list of NASA devices in deep space." width="392" height="801" class="aligncenter size-full wp-image-30632">
What a load of bollocks!</p>

<p>There's an obvious solution to this. Guest accounts.</p>

<p>I know it is a cliche - but Silicon Valley geeks who are too anti-social to have friends and family is a right pain in the arse for everyone else.</p>

<h2 id="note-to-commenters"><a href="https://shkspr.mobi/blog/2018/11/people-who-live-in-smart-houses-shouldnt-throw-parties/#note-to-commenters">Note to commenters</a></h2>

<p>If your solution is "just buy this new bit of kit" or "configure this half-finished library from GitHub" - then you are part of the problem.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=30547&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2018/11/people-who-live-in-smart-houses-shouldnt-throw-parties/feed/</wfw:commentRss>
			<slash:comments>8</slash:comments>
		
		
			</item>
	</channel>
</rss>
