Skip to main content

No project description provided

Project description

inetbox.py

This is a software implementation of a Truma iNet box, a device for controlling mobile heater and AC units by Truma and Alde.

This software is not provided, endorsed, supported, or sponsored by Truma or Alde. It may or may not be working with their products. Please read the license file, in particular:

IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM.

That said, it is working for me, and I hope it will work for you, too.

Hardware Requirements

This has been tested with a Truma Combi 4 and the CP Plus control panel (inet ready). I don't see why this wouldn't be working with the Combi 6 and E models as well.

The software runs on a Raspberry Pi, any newer model should do. This could also be ported to a Pi Pico Microcontroller, but I haven't done that yet.

You need a LIN to UART Transceiver (Affiliate Link!) for connecting the Raspberry Pi to the LIN bus. On the transceiver module, the connections are as follows:

  • LIN connects to Pin 4 on an RJ12 connector (the one with the 6 pins) going into any port on the Truma Combi heating, or using a splitter module (Affiliate Link!) into the existing connection between Combi and the control panel. The cable for Pin 4 should be colored green.
  • GND (any of the two) connects to a ground connection - e.g. on the power supply.
  • 12V connects to a 12V power supply that also powers the Combi and CP Plus.
  • TX connects to pin 15 on the Raspberry Pi.
  • RX connects to pin 14 on the Raspberry Pi (14/15 might be the other way round, not sure).

The other pins (INH, SLP, second GND) are not used.

Installation

pip3 install inetbox[truma_service] is what you normally want to do.

pip3 install inetbox installs just the library in case you want to develop your own code using it.

Usage

In the following, only the MQTT service will be explained. You need an MQTT broker running (e.g. Mosquitto) for this to work and you should be familiar with basic MQTT concepts.

To run the service:

truma_service

If you want to enable debugging, you can set the environment variables DEBUG_LIN=1, DEBUG_PROTOCOL=1, and DEBUG_APP=1, to debug the LIN bus (byte level communication), the protocol layer (handing LIN bus specifics), and the application layer (handling the actual data), respectively.

Example:

DEBUG_LIN=1 truma_service

If you want to define a different MQTT broker or define a log level for the MQTT messages, create a file /etc/miqro.yml as described here: https://github.com/danielfett/miqro#configuration-file (note that there is no service-specific configuration for the truma service as of now).

Initializing

This script plays the role of the inet box. You might need to initialize CP Plus again to make the fake inet box known to the system. This is an easy step that can safely be repeated (no settings are lost): After starting the software, go to the settings menu on the CP Plus and select "PR SET". The display will show "Init..." and after a few seconds, the initialization will be completed.

MQTT Topics

When started, the service will connect to the LIN bus and publish any status updates acquired from there. When you send a command to modify a setting (e.g., to turn on the heating), the service will send the command to the LIN bus and publish the new status once the setting has been confirmed.

MQTT topics for receiving status

service/truma/error - some error messages are published here

service/truma/display_status/# - frequent updates from CP Plus, similar to what is shown on the display. Note that not all values have been decoded yet.

service/truma/control_status/# - less frequent updates, but includes values that can be modified. These are the values that would otherwise be available in the Truma inet app.

Changing settings

In general, publish a message to service/truma/set/<setting> with the value you want to set. After restarting the service, wait a minute or so until the first set of values has been published before changing settings.

For example:

mosquitto_pub -t 'service/truma/set/target_temp_water' -m '40'

or

mosquitto_pub -t 'service/truma/set/target_temp_room' -m '10'; mosquitto_pub -t 'service/truma/set/heating_mode' -m 'eco'

There are some specifics for certain settings:

  • target_temp_room and heating_mode must both be enabled for the heating to work. It's best to set both together as in the example above.
  • target_temp_room can be set to 0 to turn off the heating, and 5-30 degrees otherwise.
  • heating_mode can be set to off, eco and high and defines the fan intensity for room heating.
  • target_temp_water must be set to one of 0 (off), 40 (equivalent to selecting 'eco' on the display), 60 ('high'), or 200 (boost)
  • energy_mix can be one of none/gas/electricity/mix
  • el_power_level can be set to 0/900/1800 when electric heating or mix is enabled

Acknowledgements

This project is based on the work of the WomoLIN project, especially the initial protocol decoding and the inet box log files.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

inetbox-py-0.1.0.tar.gz (26.6 kB view hashes)

Uploaded Source

Built Distribution

inetbox_py-0.1.0-py3-none-any.whl (26.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page