Tire Pressure Monitoring

There is nothing more important to the overall safety of an RV as maintaining good tire pressure and being alerted when tire pressure suddenly drops. That’s what a TPMS (Tire Pressure Monitoring System) does. All modern vehicles come with TPMS installed, but older ones, like Beastie, don’t have a TPMS system. A typical TPMS system consists of 3 components: (1) the wireless sensors; (2) a gateway that reads data from the sensors; (3) a display that shows the values and any alerts.

Our key objective, as explained here, was to make TPMS an integrated part of our Smart RV, hence we had to figure out a way to integrate the data with Home Assistant. We looked at two different ways of achieving this:

1. DIY Gateway

Our first thought was to just buy TPMS sensors and build our own gateway based on the excellent open-source RTL-SDR and rtl_433 software. There are several advantages to this approach:

  1. Cheap. You can just buy the sensors, buy a USB SDR radio (like this), install the RTL-SDR/ rtl_433 integration in Home Assistant, and you’re pretty much done (theoretically).
  2. Flexible integration. Because the RTL-SDR/rtl_433 software is available as a HA integration, it’s super easy to install and manage.

However, things turned out to be more complicated than that:

  1. Compatible sensors. Each type of sensor uses a proprietary protocol to communicate over 433 Mhz. While the rtl_433 software supports a number of TPMS sensors, most are after-market sensors for modern vehicles that use sensors that are built into the tires. I couldn’t find a screw-on TPMS sensor that was recognized by rtl_433.
  2. Wireless range. Using an RTL-SDR USB stick with attached antenna significantly limits the wireless range. The short antenna was sitting in an overhead cabinet (plugged into our HA server) far away from the tires (especially the rear ones). Communication was just not reliable.

After a lot of trial and error, we decided to abandon this solution.

2. Commercial Gateway

There are many after-market TPMS systems available. Most come with the 3 components we listed before: sensor, gateway, and display. Most are proprietary and hence difficult to integrate with HA. Also, we wanted a system that doesn’t require a display, since the display part will be handled by HA.

We finally settled on a commercial grade product by Pressure Pro. The Gateway Lite, aka. LINK LT is a system designed for the trucking industry and acts as a gateway to send tire pressures to fleet management systems. As such, it doesn’t have any display unit, which is exactly what we wanted.

The Sensors

The sensors screw directly onto the valve stem, reporting both tire pressure and temperature. The sensors are sealed and submersible and the internal battery lasts about 5 years. Pressure accuracy is +- 2-3 PSI and temperature accuracy 1.4C.

Gateway Lite

The Gateway Lite is mounted in our dinette electrical cabinet with a connection to an internal antenna mounted under Beastie. The Gateway Lite is connected to 12V and, via serial, to a small ESP processor that reads the sensor data and transmits them over MQTT.

System Set up

The Pressure Pro gateway communicates sensor values and alerts over a serial interface. The communication protocol is proprietary but the company was kind enough to share the protocol details with us. This allows us to read the status and alert messages for pressure and temperature and communicate them to Home Assistant. In order to do so, we needed a small processor with a serial port to read the data and with embedded WiFi to output the data to our MQTT server. We decided to install an M5Stack RS232 Atom device to handle this task. It’s super cheap and, because it contains an ESP processor, allows us to use ESPHome software to control the device and its functionality.

Installation

Installation is very straightforward. The sensors screw directly on to the valve stem. For the inner tire of our dualies, we use a 12″ extension to make it easier to inflate the tire while the sensor is still on.

The Gateway Lite and Atom processor are mounted under our dinette.

The antenna is mounted underneath the frame, close to the tires.

Software

1. ESPHome

The purpose of the ESPHome software running on the Atom device is to read the incoming status and alert messages over serial, convert them to a JSON format and send the serialized JSON structure over MQTT.

Because the protocol is proprietary, we can’t share details but it’s fairly straightforward. The gateway is configured to push a status message every minute; alert messages are sent as soon as an alert gets triggered. Both types of messages are decoded by the ESPHome software and converted to a JSON object. Besides temperature and pressure, we track alert status, tire position, reference pressure, rfQuality as well as update recency.

2. Home Assistant

In order to display the data within the Home Assistant environment, we’ve set up MQTT sensors for each of the 7 datapoints we’re tracking. This is what the sensor definition looks like for 4 of the 7 sensors of 1 tire (front left):

- name: "TPMS - FL position"
  state_topic: "pressurepro/tpms/status"
  unique_id: "300_11"
  value_template: "{{ value_json.fl is defined | iif(value_json.fl.position, states(entity_id)) }}"
- name: "TPMS - FL psi"
  state_topic: "pressurepro/tpms/status"
  unique_id: "300_12"
  unit_of_measurement: "psi"
  value_template: "{{ value_json.fl is defined | iif(value_json.fl.psi, states(entity_id)) }}"
- name: "TPMS - FL timeout"
  state_topic: "pressurepro/tpms/status"
  unique_id: "300_13"
  value_template: "{{ value_json.fl is defined | iif(value_json.fl.timeout, states(entity_id)) }}"
- name: "TPMS - FL temperature"
  state_topic: "pressurepro/tpms/status"
  unique_id: "300_14"
  unit_of_measurement: "°C"
  value_template: "{{ value_json.fl is defined | iif(value_json.fl.temperature, states(entity_id)) }}"
3. NSPanel

The Sonoff NSPanel is our dedicated touchscreen interface to the Smart RV. We created a specific screen to show the tire pressure and temperature in a more visual manner. Because the NSPanel also contains and ESP chip and is connected the Smart RV WiFi network, it is quite trivial for it to get the data by just subscribing to the right MQTT topics and then pushing the values to the on-board Nextion screen. The tires (represented by green lines) will turn flashing red when either temperature or pressure are out of predefined bounds.

4. Alerting

Now that the tires are fully instrumented, the next step is to implement a proper alerting system. For now, alerts are sent to the mobile app and are displayed on the Apple Watch, but more can be done to create more urgent visual and auditory queues. To be continued …

Home Assistant Display
NSPanel Display

Leave a Reply

Your email address will not be published. Required fields are marked *