Smarter Coffee / iKettle

Is there anyone who can whip up a component for the Smarter Coffee and iKettle?
Full focus on Smarter Coffee ofcourse (who needs a cup of boiling water in the morning.)

Would love to see a component which shows

  • status
  • water level
  • start/stop option
  • strenght setting
  • number of cups

I know use the above scripts with switches in HA (which is how I am using it now) but would like to see a proper component created.


Just be patient. The community may not be that large, but someone might be interested in making a component for what you wanted.

I hope someone is working on this.

Did anyone progress this? There’s this project on github which looks fairly complete:

iBrew! :slight_smile:

I am still working on the web interface (e.t.a. december, if anyone wants to help :-).
But the json rest api and the command line is are done and fully working.
Also almost the whole protocol description is mapped out…

If you figure out how to bridge it, please post it in the issues, i will update the readme :slight_smile:
Already added homekit support through homebridge :slight_smile:



@Tristan79, will you create a HASS component at some point? Was looking into buying the ikettle but would only get it if I can add it to my HASS. Anyway, thanks for all that you’ve done already! Checked out the github repo and it looks awesome so far :slight_smile:

I think you can use:

with the command line or

with the rest api

and with the upcoming triggers (not on github yet, still testing) you could use

and you could also try it all out without the kettle or smarter coffee appliance…

cuz ibrew can simulate one :slight_smile:


If you do figure out the right config, please let me know… post in the issues on github. :smiley:

This looks awesome! A more robust component would be neat, not sure if we have anything even close to this currently.

Would need a temperate setting in addition what was suggested by @dennisaion. for those of us who want a cup of (slightly less than) boiling water in the morning. :wink:

Could be a bit till I investigate further, start of ski season has not been kind to the budget.

Also added a trigger event system, so now you can push data with a script or with http :slight_smile:

1 Like

I can confirm this is indeed EXCELLENT! Thanks so much Tristan.

If anyone is interested, I have got it working with 2 scripts. (I haven’t tried to integrate the web front end yet).

Here is my code in configuration.yaml:

  - platform: command_line
        command_on: "/home/hass/ start"
        command_off: "/home/hass/ stop"
        command_state: "/home/hass/"
        friendly_name: Kettle

Then for the two scripts:

ibrew $COMMAND <your Kettle IP>

CMD=`ibrew shortstatus <your kettle IP> |grep ready`
if [ -z "$CMD" ];then
        exit 0
        exit 1

I also set a notifier to let me know when it boils (from the configuration.yaml):
- alias: ‘The Kettle has boiled’
platform: state
entity_id: switch.my_kettle
to: ‘off’
service: notify.notify
message: ‘Kettle has Boiled’

All works great!!!

I’ll play around with the JSON interface this weekend. Thanks again Tristan for a lot of work!

1 Like

Thanks :slight_smile:

The http push trigger system is running nicely, and I added a lot of stuff to the json :slight_smile:

And its more accurate to push then to pull values :slight_smile:

Any problems or features request post them in the issues on github :slight_smile:

Now with precompiled windows support :wink:

1 Like

Hi Tristan,

Great work on this, im impressed.

Any chance you can point out where im going wrong.

I have cloned the repository and followed the install on pi steps, and setup the switch but when i toggle the button nothing happens.

Im also unable to start the webserver, i get the following error: ERROR - Web Server: Couldn’t open socket on port :2080 and various other messages when trying to run any of the commands via a terminal window

Any help would be greatly appreciated.

Here is the output i get when trying to run the status command:

pi@HomeAssistant:~ $ ibrew status

  Starting please wait...

2017-01-06 23:06:38,501 - DEBUG - Traceback (most recent call last):
  File "/home/pi/iBrew/source/smarter/", line 2414, in connect
    self.__socket.connect((, self.port))
  File "/usr/lib/python2.7/", line 224, in meth
    return getattr(self._sock,name)(*args)
timeout: timed out

2017-01-06 23:06:38,519 - DEBUG - timed out
2017-01-06 23:06:38,524 - ERROR - [] Could not connect to
2017-01-06 23:06:38,528 - DEBUG -
2017-01-06 23:06:38,531 - INFO - iBrew: Could not connect to []

You mixed up the order :slight_smile: Are you trying to connect to the original iKettle? Seeing you want to use port 2000 then try:

./ibrew legacy status

The original ikettle webserver support is none existing at the moment. I have to find a method to detect it (and write a passthrough but that is the easy part)… but I do not have an iKettle to play with… so I have no way of knowing how to do that. I will slowly add stuff with guesswork and hope someone corrects me :slight_smile:

Hi Tristan,

thanks for getting back to me :slight_smile:, i’ll give that a go in a sec

I do have an original one yes, i can open the port up if you need that, and you should be able to access remotely?

Happy to help, just let me know

Thats all working fine now, i guess i just missed that in the documentation, thank you again

Hi @Tristan79 @markbajaj

i was wondering if you where able to give me hand, still very new to Python, Bash and Home assistant

I have manged to get the switch to work in my config, and turning the kettle on via the interface is working fine.

But my issue is the switch doesn’t stay active, so i’m unable to stop the boiling if needed, i’m aware that this means the command_state is not evaluating to 0 but im not sure how to fix it…

When running the status command ibrew legacy status after triggering the start command, i get iBrew: Legacy iKettle: Heating water 100 C returned.

I have attempted to amend the bash scrip posted both, above and on the github page but cant seems to get the status to work.
In both examples i changed the ready/busy grep filter to Heating but still it fails to stay Active.

As i said before im new so please go easy on me :stuck_out_tongue:

Thank you for any help you can give


Just a quick update on this, i have managed to resolve the issue of the switch no staying “on”

Here is the status script i have used encase anyone else comes across this topic in the future:

if ibrew legacy status <IP Address> | grep Heating
        exit 0
        exit 1

Is this still working for any of your guys? I have attempted but doesn’t seam to work. This is my first attempt including a component using scripts

Im running both HASS and iBrew in docker containers IBrew can control the kettle/coffee machine but I’m unable to control through HASS using the instructions from iBrew below any ideas?

Does anyone has the smarter coffee working with HA?
With the info in this post it doesn’t work…