Almond & Ada: privacy-focused voice assistant

Almond seems to misunderstood quite often. For example, I have switches called Humidifier and Coffee Machine in HA. I DO see these in Almond’s My Skills, with correct names. But when I actually issue a “turn on Humidifier” or Coffee Machine command, it always goes:

which is obviously wrong. There are no errors or warnings in Almond’s log. Any tips?

1 Like

Love where this is heading.
It would be great if Almond could use light groups to create automations though. Currently it can only use physical lights, which is a pain when I want to say turn all interior lights off when I leave home, which I have in a light group called light.interior.
For now, I will still be primarily needing to skip Almond.
Is there a way to set the automation editor to manual and not have Almond pop up first?

1 Like

This sounds promising to me. I updated my HA from 0.92 to 0.102 because of this.

From my understanding, the Almond server that I have installed locally will not work when there is no internet, right? Because it needs to communicate with LUInet?

im trying to do the same. did you have any success?

I created a folder called “telegram_bot_conversation” in custom_components folder and added the 2 files into it; init.py and manifest.json

But what is the next step? Do I need to add anything into the configuration file?

If you have the telegram bot configured, that will be all, but it’s not working for me

I managed to make it works (sort of). You need to add this into the configuration.yaml file…

telegram_bot_conversation:

It can tell me jokes, etc… but when I asked it to turn on lights, it responds “Sorry, I did not understand that. You might need to enable a new skill before I understand that command.”. I got the same response from HA frontend.

2019-12-04_144436

1 Like

@balloob, I have tried out the telegram_bot_conversation custom component. Actually, there is something that concern me greatly. Anyone who knows my bot ID can actually start a conversation with my bot and thus able to control my home. Is there anyway, to prevent that?

There is a new “Voice Assistant” :tada: subforum. I’ve created a topic Replacing Alexa or Google Home by Almond and Ada that some here might find interesting!

I would love to completely replace Alexa but I am still in the research phase. If anyone has ideas, please share :slight_smile:

1 Like

Hi, I’m on 100.3, got notification that the component telegram_bot_conversation could not be set up, did you see this?

If you need some support implementation-wise or only for testing, I’ve already worked on HA integrations for snips (e.g. GitHub - patrickjane/snipslightsha: Skills for homeassistant lights to use with snips voice assistant (german)), so I would be glad to help.

Since snips console is shutting down, I’ll probably move to some other solution, and my first try is going to be rhasspy. At some point, I’ll probably also port my other snips skills.

BTW: Is there some sort of skill-server already for rhasspy?

@masterkenobi This is actually why I stopped using Telegram… there’s no configuration in Telegram to make a bot “private”, as soon as you make the bot, it’s publicly available for anyone to use. You have to add in the “authentication logic” into your bot’s code, which basically involves making a check against a “white list” of user IDs before executing commands from Telegram. I didn’t want to deal with the overhead/concern of possibly compromising my entire home automation service if I messed it up at some point (or if Telegram changed something about their service), so I abandoned Telegram.

Obviously the odds of someone stumbling upon your specific Telegram bot and knowing the correct commands to activate your home automation is probably pretty small, but I really didn’t like how Telegram makes every bot public automatically, it just felt like I was forcing their tool to do something it wasn’t meant to do, which felt like shaky ground for me.

I wound up using Slack as my communication platform of choice, since privacy/security are baked into the service there (and I can even control specific people’s access to specific channels), and it even allows me to have some simple “cloud based logging” by having the bot write certain events to specific channels so I can easily review what’s happening at my house without having to open up ports or anything. Of course, I’m not sure if Slack has the same level of integration with the Almond components yet or not, haven’t dug into Almond much.

I am also getting error message on telegram_bot_conversation loading.

Component error: telegram_bot_conversation - cannot import name 'process' from 'homeassistant.components.conversation' (/usr/src/homeassistant/homeassistant/components/conversation/__init__.py).

Hass.io version 0.103.3

Hope someone look into this

Looking at this commit: (https://github.com/home-assistant/home-assistant/commit/c76f768a823f659f78be0cd58b26ffe008736068#diff-8eb3b929d6f5af4c3a2f52236df0948f)
I fixed it by changing the code to:

# Create as custom_components/telegram_bot_conversation/__init__.py
# Requires telegram_bot to be set up. 
from homeassistant import core
from homeassistant.core import Context
from homeassistant.components.telegram_bot import (
    EVENT_TELEGRAM_TEXT,
    ATTR_TEXT,
    SERVICE_SEND_MESSAGE,
    DOMAIN as TELEGRAM_DOMAIN,
    ATTR_MESSAGE,
    ATTR_TARGET,
    ATTR_USER_ID,
    ATTR_CHAT_ID,
)
from homeassistant.components.conversation import _async_converse

DOMAIN = "telegram_bot_conversation"


async def async_setup(hass: core.HomeAssistant, config: dict) -> bool:
    async def text_events(event: core.Event):
        # Only deal with private chats.
        if event.data[ATTR_CHAT_ID] != event.data[ATTR_USER_ID]:
            return

        response = await _async_converse(hass, event.data[ATTR_TEXT], "telegram-bot", Context())

        await hass.services.async_call(
            TELEGRAM_DOMAIN,
            SERVICE_SEND_MESSAGE,
            {
                ATTR_MESSAGE: response.speech["plain"]["speech"],
                ATTR_TARGET: event.data[ATTR_USER_ID],
            },
        )

    hass.bus.async_listen(EVENT_TELEGRAM_TEXT, text_events)
    return True

Thank you!

That works, thank you

Regarding telegram_bot_conversation, i am still having issues with getting it to work.
Using the newest version that @daenny posted, but still not working.
Looking through HA logs i see the component being initialized and started, but nothing more.

Btw, i added the init.py file and domain.json + add
"telegram_bot_conversation: "
to configuration.yaml
Am i missing a step?
Do i need HeyAda installed, or just Almond?

This is awesome! Has anyone seen anything about using an existing Echo Dot for the speaker and microphone tech and hooking Ada up to it? The tech in the echo dot is great, just the software we don’t like. :wink:

So I’m very interested in going down this route, but I host my HA on a VM in my homelab closet. I’d like to use wifi speakers or standalone Ada devices that I can place remotely in the kitchen, living room, etc… Any thoughts on remote distributed deployment of these features with other devices? Would love to have a wifi speaker feed my Home Assistant/ada/Almond deployment.

1 Like

I’m just wondering where the repo for the forum is?


I’ve submitted multiple submissions, and I’m wondering whether anyone is actually going to help train Almond.