Showing posts with label Docker. Show all posts
Showing posts with label Docker. Show all posts

Friday, 20 September 2024

Updates to announcing Reolink doorbells on Alexa

A while back, I wrote a post on how I build a Node-Red flow to allow me ask specific echo devices to announce visitors pressing my ReoLink doorbell. This worked great, but there were a couple of shortcomings; 
 
  • The list of registered devices would last only as long as Node-Red was active. If I needed to restart the Node-Red docker for any reason, I would also need to re-register announcement devices. 

  • The ONVIF node the flow relies on is a little flaky, and will occasionally just disappear from Node Red. 

I've added functionality to store the list of devices in a text file, so it persists between Node-Red restarts. I also added some notes on how to recover from the self-destructing ONVIF nodes, bring this all up to v1.1.1.


The device list saving is managed automatically as part of the voice registration process, but there's also a manual trigger that can be used in testing. If you use this, you might need to adjust the save and read file locations, particularly if you're not running Node-Red in a docker, like me.

The full flow is pasted below;

Wednesday, 19 July 2023

Building an UnRaid Home Server for Media Storage and Automation

Are you looking to create a versatile and efficient home server that can handle your media storage needs while seamlessly integrating with your home automation system? If so, building an unRaid home server might be the solution you've been searching for. In this post, we'll explore the benefits of unRaid and provide practical advice on building your own home server for media storage and automation.

I've been using unRaid for home storage and automation for about 10 years now, and have been blogging about it here for almost as long. A lot of my posts are quite specific, so I thought I'd try a high level guide for those starting out. Let me know what you think, or if there are other specific topics you'd like to see covered.

Monday, 11 April 2022

Streamer, with benefits

I've spent a while refining my a/v setup and finally got around to building a decent home for all the kit. It now all rests on a DIY pull-out and swivel rack that allows for access as needed. However, one of the problems with any rack is the proliferation of devices and cables. 

In the spirit of consolidation that underpins this blog,  I thought there must be a way of tidying all that up. So I started with a svelte computer case and starting adding stuff in until I was happy. 

Sunday, 17 January 2021

User Presence Detection using Node-Red and Unifi


A big challenge in Home Automation is implementing a reliable mechanism for presence detection - figuring out who's home, and tailoring logic accordingly.

Here's how I do it using Node-Red, Unifi and MQTT.

Many approaches to presence detection rely on interacting with the device itself, either by way of software running on the mobile handset, or having the mobile ping or poll an external service. None of these approaches really appealed to me as they are fiddly, rely on handset configuration & maintenance and need to be reset every time someone gets a new phone.

The approach I've taken here is to rely on the fact that all the families' mobile phones are configured to connect to home WiFi (to save on data charges!). This method interrogates the home network to see what phones are present - a good indication that the person is home.

In short, I have a Node-Red flow that polls the network on a schedule, looks for named devices, and updates presence status in MQTT based on that.

I could have used a database, or flat file storage for storing state, but as I have an MQTT broker running anyway, it's a convenient and flexible approach for me.

Saturday, 24 August 2019

UNIFI: The start of something big....


'Dad, the internet's slow!'
'Dad, can you restart the Wifi?'
'Dad, will we ever have WiFi in the kitchen?'

It was getting tiresome. A few years ago, I'd augmented the ISP all-in-one modem/router/WiFi with an Archer wireless router and a couple of Huawei extenders. This was an improvement, but never a satisfactory, long-term solution.

I'd been reading a lot about the Unifi range from Ubiquity and this week bit the bullet and purchased;


The idea was to provide decent wifi throughout the house, with 2x access points connected to the Switch from which they would receive both data and power. As an added bonus, the fully managed switch also supports link aggregation, so I could leverage both ethernet ports on my recently reconstructed MediaServer8.

Despite copious amounts of reading & research, and pre-installing the Unifi Controller Docker on unRaid, setup was not as smooth as it might have been.

Thursday, 12 January 2017

unRAID as a software dev. platform

unRaid continues to amaze.

I find myself in the middle of a spare-time software development project that quickly grew from a personal home automation idea to a quite public 'when's it ready' kind of thing. It's the development of an Alexa Skill to allow spoken commands to an Amazon Echo to control Squeezebox devices. (see Hab-Tunes.com for the project details).

Thursday, 1 December 2016

Tidy up unRAID Docker folders


Since the latest unRAID update introduced the /mnt/users/docker share, my Docker files seem to be all over the place. I have some there and some in an /appdata share which seems to have scattered them on across the cache and the array.

I wanted to update all my Dockers to use the new /docker share and this is what I needed to do.
It turns out it's not just a matter of updating the AppData Config Path field for each docker - it doesn't seem possible to do that for an installed Docker, (changes don't stick). Instead, it's necessary to go through the worrying process of removing the Docker and reinstalling it!

Here's the steps I followed;

Friday, 11 November 2016

Importing a lib for use in Node-Red in a Docker

In one of my Node-Red flows, I wanted to use the fuzzyset.js library. This has an npm installer but it didn't work inside the docker. The recommended approach is to install to the /data directory (appdata/nodered) from the host system but as unRAID doesn't support npm, I couldn't do that either.

So, I had a .js library that I needed to manually install and use. Here's how I did it;

First, from unRaid console, I created a 'fuzzyset' folder inside /mnt/user/docker/appdata/nodered/lib/. Then, I copied the fuzzyset.js file to this folder.

Next, I edited this part of the/mnt/user/docker/appdata/nodered/settings.js file to include the library;


 functionGlobalContext: {

      fuzzyset:require('/data/lib/fuzzyset/fuzzyset.js')

    },


Then, I could call and use the fuzzyset functions inside a node-red function like this



  
   var FuzzySet = context.global.get('fuzzyset');


   var a = FuzzySet(someArray);
   var result = a.get("Some String");