Bluetooth MQTT gateway for eq3 thermostat / xiaomi scale /

image
image

Do you think this maybe a permission thing I still get this message when trying to execute the script

image

I think there is something broken with pip. Try to install via pip with --user flag. Looks like when running from user it can’t see pyyaml module. I’m not python expert, so not sure whats wrong here :\

1 Like

Thanks for your reply, I managed to get the script running by completly wiping and using a vanilla install of raspbian. I was using one with pip3 already installed and this seemed to be causing the issue. I started again with fresh install and just the required dependancies for your script and its working. Is anyone else using this with other services or just dedicated? I installed on raspberry pi 3b+ but would be a waste if dedicated so might push this just to a pi zero.

Its rather low on cpu usage, so it possible to run other stuff on rpi 3+ for sure. Except of other bluetooth connectivity services. I’m running this on dedicated rpi zero w, along with arduino nano via gpio pins and mysensors worker.

1 Like

What is the expected payload from the xiaomi scale?

I’ve copied some code, payload is here https://github.com/zewelor/bt-mqtt-gateway/blob/master/workers/miscale.py#L43 . Its not payload, its from BLE scan, last weight is broadcasted, from what I understand. I think best summary is here: Integrating Xiaomi Mi Scale

Can this work with Xiaomi Bluetooth tooth rush also?

Possible yes, there is support for one toothbrush, maybe xiaomi is similar

Hello
I’ve installed bt-mqtt-gateway step by step as is decribed here: https://github.com/zewelor/bt-mqtt-gateway and for equiva eq3 it is working. But after I’ve added Miflora it has stopped working and I’ve got the error: “Cache entry deserialization failed, entry ignored” after them “ModuleNotFoundError: No module named ‘miflora’”.
Here it is my config.yaml:

  workers:
    thermostat:
      args:
        devices:
          test: 00:1A:22:0E:0A:3A
        topic_prefix: thermostat
      topic_subscription: thermostat/+/+/set
      update_interval: 30
    miflora:
      args:
        devices:
          herbs: C4:7C:8D:6B:26:87
        topic_prefix: miflora
      update_interval: 300

Anybody knows what’s going on?```

Hi, i am using three Eq3 thermostats with by mqtt gateway on a second pi. So far so good, better working than the HA eq3bt integration. But I keep getting this messages in my logs. Why?


2019-12-16 06:43:34 ERROR (MainThread) [homeassistant.components.mqtt.climate] Invalid modes mode: manual
2019-12-16 06:43:37 ERROR (MainThread) [homeassistant.components.mqtt.climate] Invalid modes mode: manual
2019-12-16 06:43:53 ERROR (MainThread) [homeassistant.components.mqtt.climate] Invalid modes mode: manual
2019-12-16 06:43:53 ERROR (MainThread) [homeassistant.components.mqtt.climate] Invalid modes mode: manual
2019-12-16 06:43:53 ERROR (MainThread) [homeassistant.components.mqtt.climate] Invalid modes mode: manual
2019-12-16 06:44:51 ERROR (MainThread) [homeassistant.components.mqtt.climate] Invalid modes mode: manual
2019-12-16 06:44:52 ERROR (MainThread) [homeassistant.components.mqtt.climate] Invalid modes mode: manual
2019-12-16 06:44:52 ERROR (MainThread) [homeassistant.components.mqtt.climate] Invalid modes mode: manual
2019-12-16 06:45:50 ERROR (MainThread) [homeassistant.components.mqtt.climate] Invalid modes mode: manual
2019-12-16 06:45:50 ERROR (MainThread) [homeassistant.components.mqtt.climate] Invalid modes mode: manual
2019-12-16 06:45:50 ERROR (MainThread) [homeassistant.components.mqtt.climate] Invalid modes mode: manual

Hi

be sure to upgrade HA to 0.103 and upgrade bt-mqtt-gateway to newest code. There were some changes in mqtt climate component in newest HA, and gateway was updated.

1 Like

@Michal_Ciemiega , your gateway is AWESMOME!

It does exactly what I need! I put a little Raspberry Pi Zero W in each area where I need to extend the bluetooth :slight_smile:

What I did is the following:

  • burnt an SD with Rasbian
  • SSH into the Pi Zero W
  • Installed Python

Copy to clipboard

sudo apt-get install git python3 python3-pip bluetooth bluez
git clone https://github.com/zewelor/bt-mqtt-gateway.git
cd bt-mqtt-gateway
sudo pip3 install -r requirements.txt
  • Create a copy of the config file “to star making around”

Copy to clipboard

cp config.yaml.example config.yaml
sudo nano config.yaml

And nowI am here “stacked” … I am struggling to configure the config.yaml and specifically:

Copy to clipboard

mqtt:
  host: 192.168.1.100
  port: 1883
  username: user
  password: password
  #ca_cert: /etc/ssl/certs/ca-certificates.crt # Uncomment to enable MQTT TLS, update path to appropriate location.
  #ca_verify: False              # Verify TLS certificate chain and host, disable for testing with self-signed certificates, default to True
  topic_prefix: hostname         # All messages will have that prefix added, remove if you dont need this.
  client_id: bt-mqtt-gateway
  availability_topic: lwt_topic

I have installed under supervisor the Mosquitto broker Add-on but I have also internet faced with DuckDNS Add-on (including ssl certificate), therefore I am not sure how to configure the host in config file above…

how I specify the https? internally i get to Home Assistant via external url (https://my-home.duckdns.org)

in the sample config, there is a CA_cert field commented out… should I use that?

Please let me know what I should do :slight_smile:

Thank you

Not sure if mosquitto addon supports mqtt over ssl. You can try my-home.duckdns.org, or some internal ip, of the host with HA.

it does
image

but I am not sure how to use the certificate and or where specify that it is https and not http in the config.yaml of the gateway :frowning:

You can just skip cert and stick with port 1883. With certs I’m not sure are I’m not using them for mqtt. In mqtt you don’t specify http or https. Put that duckdns host in host field and that should work. If not you need to find lan ip for HA.

One more time thank you @Michal_Ciemiega

I got now stack on an error when I start the gateway:

Error: unsatisfied requirements:
The 'bluepy' distribution was not found and is required by the application
You may install those with pip: python -m pip install bluepy

and if I run the

python -m pip install bluepy

I get the followign message:

Requirement already satisfied: bluepy in /home/pi/.local/lib/python2.7/site-package (1.3.0)

I have tried to google, but no luck :frowning: is there something wrong that I am doing?

Looks like you got python 2 as default python version. Try: python3 -m pip install or pip3 install.

Fixed that misleading help text

thank you for your help and support…

I have actually reinstalled everything from scratch in the hope that this might fix issue, but I got back to where I started :frowning:

system still says I don’t have bluepy but when I try to install it it says I already have it :frowning:

how can I proceed from here? please

Thank you

When you run gateway as root, you need to install requirements as root also. Prepend sudo before pip, sudo pip install bluepy. I’ve improved message in gateway, so that it will print sudo pip if gateway ran as root.

i first tried to use cybele for ble to mqtt, but got an error. Now i use this as docker.
For cybele there was a note:

As of now (2020-10-30), there’s a bug in bluetoothd which causes it to constantly write all state changes of everything all the time to disk. This has caused the death of multiple brave 16GB micro sd cards which couldn’t handle 50+TBW :frowning:

Does someone know if this is still a problem? Or does the docker handle it by itself?