Skip to content

Reference — Blue Airco gateway ​

The MUXEN devices this gateway publishes ​

DeviceFunctionInstanceWhat it carries
HVAC21one per port — see belowone air conditioner: temperature, set point, mode, fan speed, on/off
Generic I/O17configured (InstanceNum), default 255 (not addressed)the box's own relay and analog input

A gateway publishes one HVAC device per port that has a unit answering on it, so between zero and four, plus its own I/O device.

How an HVAC instance is chosen, in this order:

  1. If the port has a stored InstanceNum — written as a parameter, or allocated with the port configuration routine — it takes that one, and keeps it even while its unit is absent.
  2. Otherwise, the first time a unit answers, it takes the number of the port, counted from zero: serial 1 → 0, serial 2 → 1, serial 3 → 2, serial 4 → 3.
  3. If that number is already held by another port of the same box, it walks up to the first free one. Other boxes on the boat are not consulted.

The generic I/O device takes its instance from InstanceNum and publishes nothing until that number is below 63 and EnGenIo is 1.

MQTT topics on the Brain follow device/<function>/<instance>/<frame>, so an air conditioner left on the first port is device/21/0/life.

What it publishes ​

device/21/<instance>/life, once a second:

FieldMeaning
realTempthe temperature the unit measures — return air on an EVO, room temperature on a pre-EVO — in whole °C
tempSetPointthe temperature the unit is aiming at, in whole °C, rounded to the nearest degree
currentMode, currentModeCodeheating 0 · cooling 1 · deshum 2 · auto 3 · fan 4
fanSpeed, fanSpeedCodeauto 0 · min 1 · med 2 · max 3 · eco 4
runningMode, runningModeCodeOFF 0 · ON 1
BindToParcthe battery park this unit is counted in, and stopped by
countera rolling counter, to tell a fresh message from a repeat

An EVO unit reports its fan speed as auto, min, med or max; a pre-EVO one as auto, eco, med or max.

device/17/<instance>/… carries the box's own relay and analog input; its fields are the ones common to every gateway of this family, see Reference.

Commands ​

Published to device/21/<instance>/command:

PayloadEffect
{"command":0,"parameter":0}switch the unit off
{"command":0,"parameter":1}switch the unit on
{"command":0,"parameter":2}auto — this gateway treats it exactly like on
{"command":1,"parameter":<°C>}set the target temperature, whole degrees

Nothing else is carried: mode and fan speed cannot be commanded.

Commands are discarded while the unit is absent, and the unit's own controller may refuse them. An EVO unit that raises its "operation prohibited" flag rejects every write, and the gateway does not even attempt one.

Set-point windows ​

A value outside the window of the unit is dropped in silence — it is never clamped, and never sent.

UnitModeAccepted
EVOheating20 … 40 °C
EVOany other mode10 … 30 °C
pre-EVOany18 … 30 °C

What the gateway does on its own ​

Two things move a unit without the boat asking.

The battery park. Once a second per unit, the gateway reads the park named by BindToParc and forces the unit off unless that park reports no charge needed or moderate load and its charge is at least MinSocToWork percent. A park that is overloaded, low, off or simply not reporting therefore keeps the unit off.

A port bound to 255 (standalone) watches no battery and never stops its unit. That is what a port takes the first time a unit is detected on it, unless a park has already been chosen.

The logic expression. If RemoteCmdEqn is not empty it is evaluated against MUXEN bus signals, and every rising edge of its result toggles the unit on or off. The toggle is applied only while the battery conditions above allow the unit to run.

Parameters — HVAC (function 21) ​

One set per port. They follow the port, not the instance number: giving a port a new instance keeps its settings.

ParameterTypeDefaultMeaning
InstanceNum0…63255 — not configuredthe instance of this air conditioner. Left at 255, the port takes the port number when a unit answers
BindToParc0…63, or 255254 (autodetect), becomes 255 on first detectionthe battery park this unit is stopped by. 255 = standalone, never stopped
MinSocToWork%20below this charge of the bound park, the unit is switched off
RemoteCmdEqntextemptylogic expression over MUXEN bus signals; each rising edge toggles the unit on/off
RemoteAddr1not used by this gateway — the Modbus address is fixed at 1
MinSetPoint, MaxSetPoint°C18, 30not used by this gateway — the windows come from the unit's own protocol
ProductId, HardwareId, SoftwareId, SoftwareVersionread-onlysee Reference

Changes take effect at the next restart — write with --reboot.

Parameters of the generic I/O device are the ones common to every gateway of this family: Reference. EnAnalogPwr is not used by this firmware: on the board that has a switchable sensor supply, that supply is switched on at every start whatever the parameter says.

Timings ​

Each port polled every500 ms
HVAC life published every1 s per unit
Unit declared absent after30 s without a valid answer
A silent port tries one register map every500 ms — both are tried within about a second
Modbus response timeout500 ms
Generic I/O published every500 ms, and on change
Alarms republished every1 s
Alarms carried at once32

The Blue Airco side ​

LinkRS-485, 2-wire half duplex, line termination enabled by the firmware
ProtocolModbus RTU, 9600 8N1, slave address 1 — all fixed by the firmware
Unitsone per port, four ports
Register mapsEVO and pre-EVO, detected by probing, one map per pass

On an EVO unit the gateway reads the on/off coil, the mode, fan speed and set-point holding registers, and the input block that carries the return-air, indoor-coil, outdoor-coil and discharge temperatures plus the two fault words. Only the return-air temperature is published; the other three are read as part of the block and not used. It writes the on/off coil and the set-point register.

On a pre-EVO unit it reads one block of input registers and publishes the room temperature, the set temperature, the run mode, the fan speed and the on/off flag from it. It writes the on/off register and the set-point register.

Nothing else is written. In particular the gateway never changes a unit's Modbus address, its mode or its fan speed.

Fault codes — EVO units only ​

An EVO unit reports its faults in two words, one per board. The gateway raises the matching MUXEN alarm while a bit is set and clears it when the bit goes away.

Unit codeFaultMUXEN alarm
E1return-air temperature sensor18 HvacAlarm_TroomSensorFailed
E2indoor coil temperature sensor19 HvacAlarm_TincoilSensorFailed
E3outdoor coil temperature sensor21 HvacAlarm_ToutcoilSensorFailed
E4indoor fan22 HvacAlarm_FanMotorFailed
E5discharge temperature too high38 HvacAlarm_TdisOvertop
E6, E26communication27 HvacAlarm_CommError
E7discharge temperature sensor23 HvacAlarm_TdisSensorFailed
E8outdoor coil too cold24 HvacAlarm_LowTemp
E9refrigerant low pressure25 HvacAlarm_LowPressure
E10refrigerant high pressure26 HvacAlarm_HighPressure
E11, E14, E25AC current too high6 HvacFault_AcCurrentOvertop
E12, E21DC bus voltage too low5 HvacFault_DcVoltageLow
E13, E22DC bus voltage too high4 HvacFault_DcVoltageOvertop
E15, E27DC bus imbalance37 HvacAlarm_board_failure
E18compressor blocked7 HvacFault_SynchLoss
E19drive temperature sensor32 HvacAlarm_internal_sensor_failure
E20drive board too hot17 HvacFault_IPM_TempAbnormal
E23output phase loss9 HvacFault_PhaseLackCurrent
E24input phase loss8 HvacFault_PhaseLackSpeed
E28input voltage too low39 HvacFault_AcVoltageLow
E32current detection circuit14 HvacFault_ADOffsetAbnormal

Bit 15 of the first word is not a fault: it is the unit's "operation prohibited" flag. No alarm is raised for it, and while it is set the gateway attempts no write at all.

E15 and E27 share a MUXEN code with nothing of their own. They are reported as a board failure so that a unit in fault never looks healthy on the bus, but the label does not name the real problem. Read the E-code on the unit's panel.

Not reported: E17, E29, E30 and E31 have no MUXEN equivalent and raise no alarm.

Known limitations ​

  • Pre-EVO units raise no alarm at all. They carry no fault word for the gateway to read.
  • E15/E27 are reported under a shared, unspecific code, and E17, E29, E30, E31 are not reported.
  • Mode and fan speed are read-only.
  • Temperatures and set points are carried in whole degrees, so a set point entered in tenths on the unit's panel is rounded on the boat.
  • RemoteAddr, MinSetPoint and MaxSetPoint exist in the parameter list but have no effect.

Versions ​

HardwareVersionImage
CAN/Modbus (990010053)5.17010010028-MODBUS-app_blue_airco-firmware.srec
CAN/Serial v2 (990010063)6.6010010028-SERIAL-V2-app_blue_airco-firmware.srec

Integration of multiplexed solutions
MUXEN and the MUXEN logo are trademarks of MUXEN SAS.