The World's Smartest House.
Also NLP, IoT, Photography, ...
Over 15 years of experimentation with home automation
Welcome to my blog. In here you'll find articles about my multi-decade-long pursuit of the "world's smartest house" and other passions. My smart house technology controls heating, lighting, sprinklers, music and more. It talks over the speakers, it plays music by tags in any collection of rooms, and you can even chat to it on messenger using natural language.
Articles about #homeautomation describe a system that includes over 200 sensors within a house and nearby barn that together create an environment where you don't need to touch a light switch during the course of a typical day, where the heating operates in an optimum manner, and where music plays across multiple rooms controlled by a natural language interface.
You'll find blog posts on my favorite features, a discussion on representing the home as a graph and much more.
You'll find posts about #sensors including strain-gauges, PIR, optical beam, microwave-doppler and Bluetooth including the pros and cons of each technology and my experiences with them.
If you want to dive into the technical details around how the house became smart you'll find articles on many of the techniques I've tried including things like #multiple-hypothesis-tracking. So take a look at #homeautomation.
Natural Language Engine
You'll find a few articles here about the history behind my natural language engine for .NET, but head over to nlp.abodit.com for the full picture. My NLP engine is unique in the way it integrates into an existing .NET desktop or server application. Responding to sentences is as simple as writing a method with the permutations of tokens you want to recognize. It offers full intellisense support for meanings (Synsets) with dictionary-like definitions. It handles permutations and optional phrases, it handles grammar production rules and it includes a large set of existing tokens that can recognize numbers, formulas, units of measure and the widest set of temporal expressions possible. And by temporal expressions, I don't just mean picking a datetime from the input, I mean expressions that can represent infinite ranges (
every sunday in May) and complex expressions like
last sunday after 5pm. My natural language engine is also a probailistic parser able to return a sequence of possible parses in descending order of likelihood. It understands some of the ambiguity in the english language like the fact that 'and' sometimes means 'or'.
Travel and Photography
And last, but not least, I'm also documenting some of my favorite travels and photos, so check out the Photography and soon Travel topics below.
This blog was created using
ReactJS static web-site generator. I converted an existing sample blog to Typescript and added a recommendation engine to display relevant "More reading..." articles after each article that you read. This is all driven using YAML front matter on markdown posts, the entire navigation structure is derived from a 'priority' field, a 'date' field and a 'tags' field on each post.
Time Series Data Compression
This new technique to compress the time series data collected by my home automation system seems to be working really well.
I've been working on home automation for over 15 years and I'm close to achieving my goal which is a house that understands where everyone is at all times, can predict where you are going next and can control lighting, heating and other systems without you having to do or say anything. That's a true "smart home".
Natural Language Processing
I could not find a Natural Language Processing engine when I needed one for my home automation system so I developed my own. After 10 years of on and off development I now have a unique NLP engine for .NET that is easy to configure but incredibly powerful for precise command and control applications. It doesn't use a tokenizer so it doesn't care if you run words together.
My photo collection now has over 150,000 photos taken around the world and close to home. Most recently I've been shooting with a Sony A9. Prior to that most photos were taken with a Canon 5D III
Bluetooth Tracking Project
My year long Bluetooth project that won the $20,000 HCI and Microsoft competition during lockdown has continued to grow and now reliably tracks how many people are in the house and outside and can locate any device down to room level.
Digital Twins are never identical
Digital Twin are an online representation of a real world object, a copy of its properties in the digital world and a way to send updated and commands to it. In effect I've been making them for years but now they have a trendy name.
Home Automation Sensors
An overview of the many sensors I've experimented with for home automation including my favorite under-floor strain gauge, through all the usual PIR, beam and contact sensors to some more esoteric devices like an 8x8 thermal camera.
Why smarthomes are hard
Why automated learning is hard for a smart home. The perils of over-fitting, under-fitting and how the general unpredictable nature of life makes it hard to build a system that learns your behavior.