The learningHouse Service provides machine learning algorithms based on the scikit-learn Python library as a RESTful API. Its purpose is to offer smart home enthusiasts an easy way to teach their homes.
You push sensor data into the service, tell it what the right answer was, and it learns the connection. A brain is one such trained model: "is it dark enough to switch the light on?", "which setpoint should the heating run at?" - whatever your own house does, learned from your own house's data.
📖 Full documentation: learninghouseservice.github.io/learninghouse
- 🧠 Brains: named models, each one a
classifierfor categorical answers or aregressorfor numerical ones, built on scikit-learn's random forest estimators - 📡 Sensors: your data fields, declared once as
numericalorcategorical, preprocessed for you - 🔌 Training and prediction over REST, so any home automation system that can send an HTTP request can use it
- 🕒 Automatic time features: month, day, weekday, hour and minute derived from every training row
- 🩹 Missing sensor values are handled, not rejected
- 🖥️ A small web UI for sensors, brains, API keys and the administration password
- 🔐 JWT and API key authorization, with
userandtrainerroles - 🐳 Docker images for
linux/amd64andlinux/arm64
pip install -U learninghouse
mkdir -p brains
learninghouseThe service listens on http://localhost:5000/, the UI is at http://localhost:5000/ui. Log in
with the fallback password learninghouse and change it - until you do, every other endpoint
stays disabled.
Or with Docker:
docker run --name learninghouse --rm \
-v brains:/learninghouse/brains \
-p 5000:5000 \
-e "TZ=Europe/Berlin" \
ghcr.io/learninghouseservice/learninghouse:latestStep by step, with every option explained: Installation guide
| Guide | What it covers |
|---|---|
| Getting Started | Installation, first configuration, running the service |
| Configuration Reference | Every configuration.yaml key, sensors, brains, security |
| Usage | Training, prediction, the UI, where the API documentation lives |
| Deployment | Docker and Docker Compose |
| Migration | Upgrading to 2.0.0 from the LEARNINGHOUSE_* environment variables |
| Troubleshooting | Known symptoms and what to do about them |
| Architecture Decisions | Why the project is built the way it is |
| Contributing | Project architecture, conventions and developer commands |
If you have any questions, please contact us on Discord.
Please share your ideas on what you want to teach your home, suggestions or problems by opening an issue. We are really looking forward to your feedback.
