/habot

A chatbot for openHAB using machine-learning natural language processing from OpenNLP

Primary LanguageJavaEclipse Public License 1.0EPL-1.0

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.