Page 1 of 3

Integration of Medisana BS440 Connected scale

Posted: Monday 28 March 2016 22:44
by Keptenkurk
Finally, 2 years after buying my Medisana BS440 Connect scale (see post) i managed to get it connected to Domoticz.
Connection uses a dedicated Pi2 near the scale which is equiped with Bluetooth and Wireless adapters (or a Pi3 could be used).
A Python program polls activity at the scale and upon reception of data e-mails last 3 weighings and updates the appropriate Domoticz virtual BWR102 scale.
<shameles promotion>
Code can be found at Github and a description at my blog.
</shameles promotion>
Have fun!

Re: Integration of Medisana BS440 Connected scale

Posted: Monday 04 April 2016 15:24
by duanejackson
Really,

Very nice.!

Re: Integration of Medisana BS440 Connected scale

Posted: Tuesday 30 August 2016 20:32
by scarabee
Hello I have a BS444 and want to connect it.
Does this code already found his way in an official release?

Re: Integration of Medisana BS440 Connected scale

Posted: Tuesday 30 August 2016 20:45
by Keptenkurk
@scarabe
No. It's not widely used anyway. And i remember a post of Gizmocuz questioning the use of a body scale in a home automation system.
On the other hand: The BS444 appears to be using the same protocol so the published code can be used for the BS444 too. But only as a separate add-on.
/paul

Re: Integration of Medisana BS440 Connected scale

Posted: Tuesday 30 August 2016 20:49
by scarabee
I try to follow your instruction but i'm failing to install Gatttool:

If I enter
wget https://www.kernel.org/pub/linux/blueto ... 5.4.tar.xz tar xvf bluez-5.4.tar.xz
I get wget: symbol lookup error: /lib/arm-linux-gnueabihf/libc.so.6: undefined symbol: error_one_per_line, version GLIBC_2.4

Re: Integration of Medisana BS440 Connected scale

Posted: Tuesday 30 August 2016 21:53
by scarabee
now it downloaded and it's unpacked
but if I enter
./configure --disable-systemd
.....
-->checking whether the C compiler works... no

in the log file I get
gcc: Internal error: Segmentation fault (program cc1)

looks like gcc does not work well what do I need to do?

Re: Integration of Medisana BS440 Connected scale

Posted: Tuesday 30 August 2016 22:59
by Keptenkurk
I'm no expert but from this info you might try to do a:
apt-get install build-essential

Maybe Bluez is available as a pre compiled package.

These were the exact steps i did on y install:

Code: Select all

   sudo apt-get install libdbus-1-dev libdbus-glib-1-dev libglib2.0-dev libical-dev libreadline-dev libudev-dev libusb-dev make
   mkdir -p work/bluepy
   cd work/bluepy
   wget https://www.kernel.org/pub/linux/bluetooth/bluez-5.37.tar.xz
   tar xvf bluez-5.37.tar.xz
   cd bluez-5.37
   ./configure --disable-systemd
   make
...30 min...
   sudo make install
I recall that i did a ctrl-c after the make because there was no output to the console for quite a few minutes. Just had to be more patient (check to see that the compiler is still busy in a seconde ssh window with the "top" command).

BTW my system is a separate Raspberry with RASPBIAN JESSIE LITE 2016-02-09, not the Domoticz image.

/paul

Re: Integration of Medisana BS440 Connected scale

Posted: Friday 02 September 2016 7:37
by scarabee
Hello,

I managed to install bluez by doing reinstalling a domoticz pi:

and then as u said run:

# wget https://www.kernel.org/pub/linux/blueto ... 5.4.tar.xz
# tar xvf bluez-5.4.tar.xz
# apt-get install libusb-dev libdbus-1-dev libglib2.0-dev automake libudev-dev libical-dev libreadline-dev
# cd bluez-5.4
# ./configure --disable-systemd
# make
# make install
# cp attrib/gatttool /usr/local/bin/

it run all complete without any errors

but now at the end I'm not able to run
btmgmt
nor
btmgmt le on

It always responds btmgmt command not found

I'm epecting btmgmt to be in the bluez folder below tools and I found there the btmgmt.c file but no application.

I also found:
https://urbanjack.wordpress.com/2014/06 ... e-ibeacon/
and run this commands --enable-tools to reconfigure bluez with
But still no progress

Any iddea?

Re: Integration of Medisana BS440 Connected scale

Posted: Saturday 03 September 2016 19:52
by Keptenkurk
I googled this and it appears that btmgmt is not installed per default (here)

It looks like that
./configure --disable-systemd
should be
./configure --disable-systemd --enable-tools

and copy the btmgmt to /usr/local/bin when done

it's been a while but recall having done something like this :oops:
/paul

Re: Integration of Medisana BS440 Connected scale

Posted: Sunday 11 September 2016 20:03
by scarabee
Hello,

I managed to install it.
The problem is that the version bluez-5.4.tar.xz does not install the btmgmt like it should, using the version bluez-5.41.tar.xz made the difference.

No I can run sudo btmgmt le on, as well as gattool.

But I have still an issue:

Then I run sudo python BS440.py &
I get BS440.log

Sun, 11 Sep 2016 19:48:17 DEBUG start gatttool_cmd=gatttool -i hci0 -I
Sun, 11 Sep 2016 19:48:18 INFO scan Starting BLE scan
Sun, 11 Sep 2016 19:48:18 INFO run Running...
Sun, 11 Sep 2016 19:48:28 INFO scan Found 0 BLE devices
Sun, 11 Sep 2016 19:48:28 INFO scan Starting BLE scan
Sun, 11 Sep 2016 19:48:28 ERROR scan Unexpected error when scanning
Sun, 11 Sep 2016 19:48:51 INFO scan Starting BLE scan
Sun, 11 Sep 2016 19:48:51 ERROR scan Unexpected error when scanning
Sun, 11 Sep 2016 19:48:52 INFO scan Starting BLE scan
Sun, 11 Sep 2016 19:49:02 INFO scan Discovered D6:DC:42:2A:B9:A8 (013197A8B92A42DCD6)
Sun, 11 Sep 2016 19:49:02 INFO scan Found 1 BLE devices
Sun, 11 Sep 2016 19:49:03 INFO scan Starting BLE scan
Sun, 11 Sep 2016 19:49:03 ERROR scan Unexpected error when scanning


sudo gatttool -i hci0 -b D6:DC:42:2A:B9:A8 -I
connect
Error: connect error: Transport endpoint is not connected (107)

Any iddeaa what is going wrong?

Re: Integration of Medisana BS440 Connected scale

Posted: Sunday 11 September 2016 23:03
by Keptenkurk
Hi Scarabee,
Good to see you didn't give up!
Trying to see what's going on using gatttool on the commandline is a good way of debugging as you found out (in fact, pygatt runs gatttool to talk to BT devices). The problem with using gatttool when talking to the scale is that it's just switched on for a minute or so. So you really gotta be quick in typing the commands.

As to your question:

1. Try running gatttool with the "random" option like:
sudo gatttool -i hci0 -t random -b D6:DC:42:2A:B9:A8 -I

2. Also you can check if just switching on LE is enough. You might also need to switch BREDR off. The whole sequence becoming:

$ sudo hciconfig hci0 down
$ sudo ./btmgmt le on
$ sudo ./btmgmt bredr off
hci0 Set BR/EDR complete, settings: connectable bondable le
$ sudo hciconfig hci0 up
$ sudo hciconfig hci0 leadv

That's what i got from my notes (later it appeared that "btmgmt le on" was enough to get things running but things could be different in your setup).

Sorry that i wasn't able to document all the dark magic i googled over the 3 months before things started working here :-) Bluetooth appeared a whole lot more complex than i ever suspected...
/paul

Re: Integration of Medisana BS440 Connected scale

Posted: Sunday 18 September 2016 11:37
by remb0
maybe a update / change for your blog?
Keptenkurk wrote:I googled this and it appears that btmgmt is not installed per default (here)

It looks like that
./configure --disable-systemd
should be
./configure --disable-systemd --enable-tools

and copy the btmgmt to /usr/local/bin when done

it's been a while but recall having done something like this :oops:
/paul

Re: Integration of Medisana BS440 Connected scale

Posted: Tuesday 20 September 2016 19:37
by remb0
Keptenkurk thanks for your work and help!

I have some questions and feedback (maybe also for other users)


scale shows bluetooth connected icon, log is showing:

Code: Select all

Tue, 20 Sep 2016 19:15:13 INFO     <module> Done receiving data from scale
Tue, 20 Sep 2016 19:15:13 INFO     UpdateDomoticz Updating Domoticz for user Remco at index 1106 with weight 72.7
Tue, 20 Sep 2016 19:15:13 INFO     UpdateDomoticz Domoticz succesfully updated
Tue, 20 Sep 2016 19:15:13 INFO     scan Starting BLE scan
but the weight isn't updated for device "weegschaal remco"

- I'm not using google authentication.
But in BS440.py it always is included by: from BS440google import *
when not using it it gave errors so I excluded: #from BS440google import *

If there is already running a python instance kill and start over.

I'm using a form authenthication when using a domain externally, and internal adresses don't need a username/password.but the scripts are user basic auth.
what to enter in the ini file?
as url I entered: 192.168.0.8:8080
so included portnumber. (maybe something as comment or wiki)


when getting a error, it would be very handy to log every parameters.
so users can debug what setting is wrong.

IN BS440domoticz.py
unit Hardwareid and unit are hardcoded. can this be placed in the ini?


logrotation ( the log is growing very fast when enabling the python without cronjob)

Re: Integration of Medisana BS440 Connected scale

Posted: Saturday 24 December 2016 14:52
by trixwood
I made it that it adds the sensors automatically to domoticz. No setup...

So if you installed all the bluetooth stuff and you got it working :-) Setting it up with Domoticz is just like a summer breeze :-), uncomment Domoticz and fill in the url in the ini, and run it...
all automatically... plus I expanded the sensors to include all...

https://github.com/keptenkurk/BS440
BS440domoticz.png
BS440domoticz.png (180.63 KiB) Viewed 7874 times

Re: Integration of Medisana BS440 Connected scale

Posted: Thursday 29 December 2016 23:03
by domdomgo
Hi guys,

I have been using this weight scale integration for some time now running on a pi. Currently I'm trying to move over to my Synology NAS. However the BlueZ tools made available by JumboTroll does not include the gatttool and btmgmt binaries which results in a python error. Is there anyway around this or are these tools required for functioning?

/Domdomgo

Re: Integration of Medisana BS440 Connected scale

Posted: Friday 30 December 2016 0:06
by trixwood
required.

pygatt just calls it (on linux, on windows or osx its call its replacements)

maybe you could compile it?

Re: Integration of Medisana BS440 Connected scale

Posted: Friday 30 December 2016 0:10
by trixwood
you can compile the tools itself as separate.

at least, thats what I figured out, when it was not working for me:

https://urbanjack.wordpress.com/2014/06 ... e-ibeacon/

Re: Integration of Medisana BS440 Connected scale

Posted: Friday 30 December 2016 10:30
by remb0
is this not something that can be added to the new domoticz python framework, so 1 script can be used from al users whitout advached scripting skills? the new python framework in domoticz gives the option to create 1 script and add the scale into domoticz hardware.

who want and can try this? If I could I have done it!

Re: Integration of Medisana BS440 Connected scale

Posted: Friday 30 December 2016 10:57
by trixwood
You still need gatttool, whetever you use this script or migrate it to the new plugin system... the python library is based on it... and why migrate to a new plugin system, if it already working perfectly if you have gatttool that is, thus only moving the problem, plus creating extra work. Besides, it auto creates the hardware and the virtual devices already.

But you're welcome to rewrite it, and on a more general note, has the new plug in system has a ble scanner and interperter? that would be nice... there are a lot of ble devices out there! BLe plugin... :-)

Re: Integration of Medisana BS440 Connected scale

Posted: Saturday 31 December 2016 11:30
by domdomgo
Guys,

Jumbotroll has been kind enough to compile a new bluez version which includes the gatttool and btmgmt tools. So I'm going to test it out and see if it works like it did on my Pi.

/Domdomgo