# HABot

HABot is a chatbot for openHAB, running inside the Eclipse SmartHome 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). In that scenario it can even be added to the Android homescreen as a Progressive Web App, 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 for intent classification and entity extraction (thanks to nlp-intent-toolkit);
  • 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 and its companion REST API to interact with the bot;
  • an Eclipse SmartHome Human Language Interpreter - 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 ESH, 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 to learn more HABot, its features and how to make the most out of it.