openhab / org.openhab.ui.habot

A chatbot for openHAB using machine-learning natural language processing from OpenNLP
Eclipse Public License 1.0
65 stars 31 forks source link

Support of "shortcuts" #5

Open stritti opened 6 years ago

stritti commented 6 years ago

I think there should be some mappings for short commands like:

ghys commented 6 years ago

Yeah OpenNLP is sometimes confused with short sentences like this. I planned "increase" and "decrease" skills for later, as well as player controls ("previous track/next track/play/pause etc."). In theory "Licht aus" should work after enough training ("<OBJECT:object> Licht <END> aus" and a couple other similar lines in deactivate-object.txt). There is one implemented shortcut though: if you simply state the name of a tag without "object:" or "location:" it will simply interpret it as a get-status intent for the tag, that way you're presented with controls and can operate yourself. It will only work as long as you have visual feedback though (i.e. not audio only).

stritti commented 6 years ago

You are correct "Licht aus" should be a deactivate-intent. On the other hand I found (especially in German), that you will talk/write in telegram fashion. I think some "shortcuts" or "aliases" could solve this because otherwise we have to add a lot attributes in the items-config.

One example (I translate 1:1 in worse English):

ghys commented 6 years ago

Understood.

Later on there will be a way to configure new intents and supply the training data without code. So for instance you would be able to add a "get-temperature" intent with training sentences like wie warm ist es im <object:location> Wohnzimmer <END> which would forward to get-status and add the "object:temperatur" entity. You could also run a rule or send a command. It's not very clear in my head how that'll be specified.

For now you can simply state "Temperatur" or "Wohnzimmer" or "Temperatur im Wohnzimmer" and the existing shortcuts or the get-status training should yield what you expect :)