Appearance
Commissioning
The gateway reads its identities when it starts, so a change of instance number written as a parameter ends with a restart. Write those settings with --reboot.
Everything below is run on the boat's Brain.
1. Wire it and check it lives
MUXEN CAN to the boat's bus, one Blue Airco unit per serial port, power on. The system LED must blink once a second. Anything else: see Common mistakes.
2. Find it on the bus
sh
muxen-uds -i can0 uid --scanNote the UID. You will address the box by UID until its own I/O device has been given a number.
The same UID may appear on several lines — one per air conditioner already detected, plus one for the box itself. That is normal: every device this gateway publishes answers the scan with the box's UID.
3. Number the box's own I/O
sh
# the generic I/O device, here instance 4
muxen-uds -i can0 uid --uid <the-box-uid> --instance 4 --preferred-function-code 17
# and switch it on
muxen-uds -i can0 -F 17 -I 4 writeconfig --name EnGenIo --value 1 --rebootThis device ships not addressed (InstanceNum = 255) and silent (EnGenIo = 0), as on every gateway of this family. Number it first: it is also the address you use to configure the ports in step 5.
Do this one box at a time — two unconfigured boxes on the bus at once collide on the parking address.
4. Check the units are seen
Power the air conditioners up. Within a couple of seconds each port that has a unit on it should start publishing:
sh
mosquitto_sub -h 127.0.0.1 -t 'device/21/#' -vOne topic per unit must appear once a second:
| Topic | What it carries |
|---|---|
device/21/<instance>/life | cabin temperature, set point, mode, fan speed, on/off |
Silence means the gateway is not hearing that unit at all. A port with nothing on it publishes nothing — not zeros, nothing — and it takes its MUXEN identity only the moment a unit answers. Go to Common mistakes — Blue Airco gateway.
Out of the box the instance number of a unit is the number of the port it is wired to, counted from zero:
| Serial port | Default HVAC instance |
|---|---|
| 1 | 0 |
| 2 | 1 |
| 3 | 2 |
| 4 | 3 |
If that instance is already taken by another port of the same box, the gateway walks up to the first free one. It does not know what other boxes on the boat publish; see step 5.
5. Give each unit its instance number
Instance numbers must be unique per function across the whole boat. A second Blue Airco gateway, or another gateway that publishes HVAC devices, will otherwise answer on the same numbers.
Two ways, both permanent:
The unit is connected — write the parameter on the unit's own device and restart:
sh
muxen-uds -i can0 -F 21 -I <current> writeconfig --name InstanceNum --value <new> --rebootPort by port, unit present or not — addressed to the box's own I/O device, naming the port (0 to 3, for serial 1 to 4) and the device ID of the HVAC you want on it. An HVAC device ID is 1344 + instance (function 21 × 64):
sh
# serial port 1 -> HVAC instance 5 (1344 + 5 = 1349)
muxen-uds -i can0 -F 17 -I 4 factory --allocate-device-configuration 1349 --port 0This one takes effect immediately, no restart. If another port of the same box already held that instance, it loses it and goes back to unconfigured.
Check the result:
sh
muxen-uds -i can0 scanFunction 21 must appear once per real air conditioner, and no twice.
6. Decide what the batteries are allowed to do
Each unit is bound to a battery park, and the gateway switches it off by itself when that park is overloaded, low, off, or below MinSocToWork percent of charge.
The first time a unit is detected the gateway binds the port to standalone unless a park has been chosen. Standalone means no battery is watched and the unit is never stopped for an electrical reason.
sh
# leave it standalone (the default after first detection)
muxen-uds -i can0 -F 21 -I <instance> readconfig --name BindToParc
# or bind it to park 1 and let it stop below 30 %
muxen-uds -i can0 -F 21 -I <instance> writeconfig --name BindToParc --value 1 --reboot
muxen-uds -i can0 -F 21 -I <instance> writeconfig --name MinSocToWork --value 30 --rebootBind only to a park that exists
A park with no battery reporting on it is read as off, and the gateway then holds the unit switched off for good. Bind a unit to a park only once that park is on the bus and publishing.
7. Try a command
With a unit idle, ask it to start, then set a target, then stop it:
sh
mosquitto_pub -h 127.0.0.1 -t 'device/21/<instance>/command' -m '{"command":0,"parameter":1}'
mosquitto_pub -h 127.0.0.1 -t 'device/21/<instance>/command' -m '{"command":1,"parameter":22}'
mosquitto_pub -h 127.0.0.1 -t 'device/21/<instance>/command' -m '{"command":0,"parameter":0}'runningMode and tempSetPoint on the life topic must follow within a second or two. If they do not, the unit refused the write — its own controller has the last word — or the value was outside the window that unit accepts. The windows are in Reference — Blue Airco gateway; a value outside them is dropped in silence.
Mode and fan speed cannot be commanded. Set them on the unit's panel and check they are reported back correctly.
8. Check the alarms
Only the EVO units report faults. On one of those, make the unit unhappy — an obstructed intake or a closed sea cock is usually enough — and check that an alarm appears on the boat and clears when the situation is fixed. Compare the alarm with the E-code on the unit's own panel; the correspondence is in Reference — Blue Airco gateway.
On a pre-EVO unit, no alarm is ever raised. Its faults stay on its own panel.
9. Keep a copy
sh
muxen-uds -i can0 -F 21 -I <instance> readconfig --save-as-csv blue-airco-<instance>.csv
muxen-uds -i can0 -F 17 -I <io-instance> readconfig --save-as-csv blue-airco-io.csvOne file per air conditioner, plus one for the box's own I/O.
