Smarter Coffee / iKettle

New version with robust kettle reconnect and some bugfixes online.

@thex

Canā€™t get it to connect.

Sorry, on phone so canā€™t copy/paste log

I put some additional questions to the ticket you created on github.

With the information in the screenshot I can only tell that it canā€™t connectā€¦

The error message is on network level so my best guess is that 192.168.0.9 is not the IP of the kettle but something else that is refusing a connection on the port.

As discussed on github, sadly my plugin only works for the iKettle 2.0 v1 and v3 seem to have completely different protocols.

Heya @gregscher, youā€™re not alone, Iā€™ve been running into this same pybonjour.py error on hassio on a pi 4. For clarification, Iā€™m using the 0.0.9 addon from

The web interface loads just fine, but I canā€™t send commands or request a status to the ip of my kettle. My only guess is that it might be caused by that error.

Stack trace btw if anybody has any more info:

[Info] Starting iBrew docker!
[INFO] Startting ibrew Web
2021-03-11 08:33:36,546 [INFO] GUI Started
Exception in thread 9dd13c5f-ibrew:
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/threading.py", line 801, in __bootstrap_inner
    self.run()
  File "/home/app/iBrew/source/iBrewBonjour.py", line 49, in run
    callBack = self.register_callback)
  File "/home/app/iBrew/source/pybonjour.py", line 1132, in DNSServiceRegister
    None)
  File "/home/app/iBrew/source/pybonjour.py", line 286, in _errcheck
    raise cls(result)
BonjourError: (-65537, 'unknown')
MacOS & Windows only
No coffee machine or kettle found
No coffee machine or kettle found
2021-03-11 08:33:40,679 [INFO] iBrew: Starting Web Interface & REST API on port 2080

UPDATE: Iā€™ve installed the command line manually via git clone + sudo make, and it canā€™t connect through there either, so I donā€™t think itā€™s a bonjour issue. Iā€™m just going to chalk it up to having the American version of the kettle which seems to get shoddy support from Smarter anyway

Hello @thex, thank you very much for your great work. I set everything up according to your instructions and it worked fine. My kettle has been recognized and I can turn it on and off. Unfortunately, the temperature cannot be changed. Regardless of whether I start with 70 Ā°, 80 Ā°, 90 Ā° or 100 Ā°, the kettle always starts with 90 Ā°. Do you know what the problem could be? Thank you!

Hmm can you use something like MQTTexplorer and check what is sent to the Kettle?
Also check the logs in the supervisor for the addon (they are quite extensive still)
Example for heating to 70Ā°C and stopping shortly after. you can see I sen 0x46 in HEX to the kettle which is 70 in decimal.

Command:startHeatingCustom
Smarter devices(debug): Sending: 0x15,0x46,0x00,0x7E
Smarter devices(debug): Received: 0x03,0x00,0x7E
Smarter devices(debug): Received: 0x14,0x01,0x1E,0x08,0x6A,0x00,0x7E
Status:{"ready":false,"heating":true,"keep_warm":false,"cycle_finished":false,"formula_cooling":false,"temperature":30,"onBase":true,"waterlevel":2154,"waterlevelLiters":0.7}
Smarter devices(debug): Received: 0x14,0x01,0x1E,0x08,0x6A,0x00,0x7E
Status:{"ready":false,"heating":true,"keep_warm":false,"cycle_finished":false,"formula_cooling":false,"temperature":30,"onBase":true,"waterlevel":2154,"waterlevelLiters":0.7}
Smarter devices(debug): Received: 0x14,0x01,0x1E,0x08,0x81,0x00,0x7E
Status:{"ready":false,"heating":true,"keep_warm":false,"cycle_finished":false,"formula_cooling":false,"temperature":30,"onBase":true,"waterlevel":2177,"waterlevelLiters":1}
message is stopHeating
topic is iKettle/electric_kettle_mqtt/command
Command:stopHeating
Smarter devices(debug): Sending: 0x16,0x7E
Smarter devices(debug): Received: 0x03,0x00,0x7E
Smarter devices(debug): Received: 0x14,0x00,0x1F,0x08,0x81,0x00,0x7E

I mostly use 100 and 70Ā°C and 70 gives me more like 80Ā°C as the temperature control is not the best and also depends on the amount of water. So maybe if you want to go to 80 you can try 70 or even add 60.

Nevertheless as said I did not use the temp control to much so there still could be a bug on my side.

1 Like

I get that when I switch the kettle on and off at 70 Ā°.

Smarter devices(debug): Received: 0x14,0x00,0x24,0x08,0xAB,0x00,0x7E
Status:{"ready":true,"heating":false,"keep_warm":false,"cycle_finished":false,"formula_cooling":false,"temperature":36,"onBase":true,"waterlevel":2219,"waterlevelLiters":1.6}
message is startHeatingCustom:70
topic is iKettle/electric_kettle_mqtt/command
Command:startHeatingCustom
Smarter devices(debug): Sending: 0x15,0x46,0x00,0x7E
Smarter devices(debug): Received: 0x03,0x00,0x7E
Smarter devices(debug): Received: 0x14,0x01,0x24,0x08,0xAA,0x00,0x7E
Status:{"ready":false,"heating":true,"keep_warm":false,"cycle_finished":false,"formula_cooling":false,"temperature":36,"onBase":true,"waterlevel":2218,"waterlevelLiters":1.6}
Smarter devices(debug): Received: 0x14,0x01,0x24,0x08,0xAA,0x00,0x7E
Status:{"ready":false,"heating":true,"keep_warm":false,"cycle_finished":false,"formula_cooling":false,"temperature":36,"onBase":true,"waterlevel":2218,"waterlevelLiters":1.6}
message is stopHeating
topic is iKettle/electric_kettle_mqtt/command
Command:stopHeating
Smarter devices(debug): Sending: 0x16,0x7E
Smarter devices(debug): Received: 0x03,0x00,0x7E
Smarter devices(debug): Received: 0x14,0x00,0x24,0x08,0xC0,0x00,0x7E
Status:{"ready":true,"heating":false,"keep_warm":false,"cycle_finished":false,"formula_cooling":false,"temperature":36,"onBase":true,"waterlevel":2240,"waterlevelLiters":1.9}

In the Smarter App I have set 90 Ā° as the standard temperature. Could the problem come from there?

Looks like the ā€œrightā€ command to the Kettle is sent.
Iā€™m using the ā€œheatCustomā€ command thus the default temperature should not have an impact. However the kettle always can only connect to one device so tha app should not be used under any circumstances when the kettle is connected to HA.

I would suggest to test if it really is not trying to reach different temperatures. Fill the Kettle to max so that the target temperatures are approached slowly. Heat to 70 (stops at 8XĀ°C for me) then heat to 90Ā°C (stops at 9X for me) and if its in the low 90s if I heat to 100Ā° it will shortly activate again.

However the temperature control is not very good thus maybe one could work with an offsett. Put the usual amount of cold water you normally boil into the Kettle and start with a lower temp. I for example always use 70 to get into the 80 ballparkā€¦ I already thought about adding a template button with different names to represent the offsetā€¦

1 Like

Hello @thex , I tested this as you wrote and it worked. Thank you for your work!

To get an open API and make it all a lot easier, I contacted the support desk from Smarter about it. This was the response:
The APIs are still closed. We will be looking at Home assistant later In the year but have no confirmed date when this will be done. I will add you to the number of customers asking for this and pass this onto the development team.

SO PLEASE, contact them all to get on the list and so they see that we really want it!

Kind regards,

Wim Hagenauw,

4 Likes

I have heard that Smarter may be opening their APIā€™s early next year and then you should see it come officially to HA.

1 Like

:sob: My 3.0 just arrived today, any my brewer next week.

I just wrote them too asking for the same! I am on the list too!

Interesting, I wrote them too requesting to be included, and they replied that I should use IFTTT as its the only thing they are working on.

Just in case anybody needs it - HA Integration for CoffeeMaker v 1.0 - made two years ago and now released to the public.

very cool, thanks. I just set this up. I was previously using the integration with iBrew but this looks more complete. I have one suggestion, I created a binary sensor called ā€˜grounds emptiedā€™ which switches to false when coffee is made. When I empty out the old coffee grounds I set it back to true (I have an RFID tag on the coffee maker to do that) Then, in my ā€˜make coffeeā€™ script it only proceeds if the coffee grounds have been emptied.

Do you suggest incorporating such a binary sensor into integration? Could you please elaborate more on what would trigger it? State of the coffee machine ā€˜just doneā€™?

Once the machine status has moved from ā€˜grindingā€™ to ā€˜boilingā€™ the filter is considered dirty right ? So you probably donā€™t want to allow making coffee again until itā€™s been emptied/cleaned. (I realise some people might use filter papers which they remove/replace immediately, so maybe it should be optional :wink: )

1 Like

@thex long waiting for that plugin. Congratulate and thank You.

Few questions:

  1. Is there a chance to have few additional sensors/switches as keep_warm, cycle_finished, water_level, waterlevellitres or custom temperature?

  2. Where I can find a list of commands?

  3. Does your iKettle disconnect every ~30 sec? It is no problem for controling device (most probably thanks to the code resistant for that) but sensors stop responding and it is sometimes not good (we donā€™t know how much water is there, is it on baseā€¦)

  4. Does keep_warm and formula_cooling status works for You?