# HABot

HABot is a chatbot for openHAB (opens new window), running inside the openHAB runtime with no dependency; it can run offline and keep your data out of third-party clouds, but works very well remotely if served from an openHAB Cloud instance (like myopenhab.org (opens new window)). In that scenario it can even be added to the Android homescreen as a Progressive Web App (opens new window), and adds features working only on "secure origins" like push notifications, speech recognition and resource caching.

It consists in:

  • a machine-learning natural language processor based on Apache OpenNLP (opens new window) for intent classification and entity extraction (thanks to nlp-intent-toolkit (opens new window));
  • a modular intent-based skill system with learning data provisioning (basic skills to retrieve item statuses, historical data and send basic commands are built-in, but more can be injected by other OSGi dependency injection);
  • a fully-featured responsive card-based user interface built with the Quasar Framework (opens new window) and its companion REST API to interact with the bot;
  • an openHAB Human Language Interpreter (opens new window) - this means once the natural language answers expand to more than "here's what I found" and "there you go", you will eventually be able to ask HABot questions and give it orders without a visual UI when coupled with speech-to-text and text-to-speech engines in openHAB, for instance to build privacy-focused specialized voice assistant.

It is another step to have a full, open source, privacy-focused, integrated natural language processing toolchain for your openHAB smart home.

# Screenshots

# Walkthrough Series

Follow the Walkthrough Series on the Community Forum (opens new window) to learn more HABot, its features and how to make the most out of it.