Skip to content

Reference — Frigomar gateway ​

The MUXEN devices this gateway publishes ​

DeviceFunctionInstanceWhat it carries
HVAC, serial channel 121configured (InstanceNum), default 0the air conditioner on serial 1
HVAC, serial channel 221configured (InstanceNum), default 1the air conditioner on serial 2
HVAC, serial channel 321configured (InstanceNum), default 2the air conditioner on serial 3
HVAC, serial channel 421configured (InstanceNum), default 3the air conditioner on serial 4
Generic I/O17configured (InstanceNum), default 255the box's own relay and analog input

The instance is chosen per channel, by writing that channel's InstanceNum and restarting. The four channels have separate settings; the serial connector a unit is plugged into is what decides which of the four it is. A channel whose InstanceNum has never been written falls back to its channel number — 0 for serial 1, 3 for serial 4.

MQTT topics on the Brain follow device/<function>/<instance>/<frame>, so a unit left on its default instance is device/21/0/life.

What it publishes ​

device/21/<instance>/life, about once a second, only while the unit answers:

FieldMeaning
realTempthe temperature the unit measures, in whole °C
tempSetPointthe set point the unit is holding, in whole °C
currentMode, currentModeCode0 heating
1 cooling
2 dehumidify
3 auto
4 fan only
fanSpeed, fanSpeedCode0 auto
1 minimum
2 medium
3 maximum
runningMode, runningModeCode0 off
1 on
BindToParcthe battery park this unit is counted in
countera rolling counter, to tell a fresh message from a repeat

Tenths of a degree are dropped: the unit reports 0.1 °C, the MUXEN bus carries whole degrees.

device/17/<instance>/life, when the generic I/O is addressed and EnGenIo is 1: every 500 ms and on change.

FieldMeaning
relay0the box's relay
ana0the box's analog input, in millivolts
input0, input1, relay1, ana1always 0 — this box has no second relay, no dry-contact inputs and no second analog input

Commands ​

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

PayloadEffect
{"command":0,"parameter":0}switch off, and hold the unit in forced mode
{"command":0,"parameter":1}switch on, and hold the unit in forced mode
{"command":0,"parameter":2}back to automatic — battery protection and wall switch active again
{"command":1,"parameter":<18…30>}write the temperature set point, in °C

Anything else is discarded. A set point below 18 or above 30 is discarded. Nothing is written to a unit that is not answering, and nothing is queued or retried.

Operating mode, fan speed and the panel settings are read only — this gateway never writes them.

The generic I/O relay is commanded on device/17/<instance>/command with {"channel":0,"requestOn":true} / {"channel":0,"requestOff":true}.

Automatic running control ​

Active only while the unit is in automatic mode — that is, until the first forced on/off command, and again after a restart of the gateway.

The battery park reportsThe gateway
healthy, state of charge ≥ MinSocToWorkleaves the unit alone, and toggles it on each rising edge of RemoteCmdEqn
healthy, state of charge < MinSocToWorkswitches the unit off
overload, low battery, or no battery publishingswitches the unit off

It never switches a unit back on by itself.

The park is BindToParc. 255 means standalone: no park is watched, a permanently healthy battery is assumed, and the protection therefore never acts. An air conditioner cannot detect its park on its own, so the gateway writes 255 at its first start and keeps it until an installer writes a real park number.

Parameters — HVAC (function 21), per channel ​

ParameterTypeDefaultMeaning
InstanceNum0…62255, read back as the channel numberthis channel's instance. Unlike most devices of this family a fresh channel publishes immediately, as 0, 1, 2 or 3
BindToParcpark number, or 255254 → rewritten to 255 at the first startthe battery park whose state gates the unit. 255 — standalone, protection disabled
MinSocToWork%20below this state of charge the unit is switched off
RemoteAddrModbus address1the Modbus address of the unit on this channel
RemoteCmdEqntext, up to 255 charactersemptylogic expression whose rising edge toggles the unit — see below
MinSetPoint, MaxSetPoint°C18, 30not applied by this version — the accepted range is fixed at 18…30 °C
ProductId, HardwareId, SoftwareId, SoftwareVersionread-onlysee Reference

Changes take effect at the next restart — write with --reboot. One restart restarts all four channels.

Parameters of the generic I/O device are the ones common to every box of this family: Reference. EnAnalogPwr is not honoured by this version: the sensor supply follows the hardware, not the parameter.

Routines ​

RoutineEffect
1factory reset — 0001 restores the instance number to its default, any higher bit the other parameters
2locate — the system LED blinks fast for about four seconds. muxen-uds … locate

The wall-switch expression ​

RemoteCmdEqn is a logic expression over signals seen on the MUXEN bus. It is evaluated whenever one of those signals changes; each time the result goes from false to true, that unit toggles on/off.

Operators: & (and), | (or), ! in front of a signal (not).

Instance numbers inside an expression are written one higher than the device's instance number — the switch published as instance 3 is written 4.

SignalWrittenMeaning
Scheiber switchSFSP(inst,btn)button 1…8
8-button panelF8T(inst,btn)button 1…8
KeypadBLK(inst,btn,ctrl,color)button 1…12
Bloc 8B8S(inst,type,id,set,reset)O output 1…8, I dry input 1…6, V analog input 1…3 in mV, C output current 1…8 in 0.1 A
Generic I/OGIO(inst,type,id,set,reset)I dry input, V analog input in mV, R relay — id 1…2
Lighting moduleECL(inst,output)output 1…6
BatteryBAT(inst,type,set,reset)V 0.1 V, I 0.1 A, T °C, L state of charge %
InterconnectINT(inst,type,id,set,reset)I charge input state 1…4, M measurement 1…8
Air conditionerHVAC(inst)running or not
Degraded modeDEG(inst,level)level 1…15

set and reset are the two thresholds of an analog signal and give it its hysteresis; they are written as 0 for on/off signals.

Example — button 1 of Scheiber switch 4, but only while the lighting output is off:

SFSP(4,1)&!ECL(2,1)

Timings ​

Channels polledin turn, one every 125 ms
HVAC life published, per unitabout every 1 s
Modbus reply timeout500 ms — a silent channel slows the whole cycle
Generic I/O published every500 ms, and on change
Alarms published every1 s
Alarms carried at once32
Reading expires on the Brain after30 s

The Frigomar side ​

LinkRS-485, 2-wire half-duplex, line termination switched on by the firmware
ProtocolModbus RTU, gateway as client
Serial format9600 baud, 8 data bits, no parity, 1 stop bit — fixed by the firmware
Addressone per channel, RemoteAddr, default 1. The gateway never searches the line
Readholding registers 1 to 14, in one transaction
Writtenregister 7 (running mode) and register 2 (temperature set point), one register at a time
RegisterWhat it isUsed
1measured temperature, 0.1 °Cpublished
2temperature set point, 0.1 °Cpublished, and written
3panel backlight timeread, not used
4Celsius / Fahrenheitread, not used
5the unit's Modbus addressread, not used
6sensor offsetread, not used
7running modepublished, and written
8fan speedpublished
9load defaultsread, not used
10mode selectionpublished
11sensor selectionread, not used
12frequency-limitation wordturned into alarms
13fault codeturned into alarms
14alarm wordturned into alarms

Alarms ​

The gateway raises MUXEN alarms on function 21, on the instance of the unit concerned. Codes 0 to 17 are warnings, 18 to 27 are alarms.

From the frequency-limitation word (register 12) — each bit raises and clears its own alarm:

CodeAlarm
0Phase Current limitation
1AC Current Limitation
2Total Power Limitation
3Power Factor Corrector failed

From the fault code (register 13) — one value at a time:

Unit reportsCodeAlarm
14DC Voltage Overtop
25DC Voltage Low
36AC Current Overtop
47Synch Loss
58Phase Lack detected by speed
69Phase Lack detected by current
710IPM FO falling edge
811IPM FO level
1212PFC Current Overtop
1313Total Power Overtop
1514AD Offset Abnormal
2315EEPROM driving failure
2516EEPROM control failure
2617IPM abnormal temperature

These clear only when the unit reports no fault at all. A unit that moves from one fault to another shows both until it settles.

From the alarm word (register 14) — each bit raises and clears its own alarm:

CodeAlarm
18Room temperature sensor failed
19Indoor coil temperature sensor failed
20Outdoor temperature sensor failed
21Outdoor coil temperature sensor failed
22Indoor DC fan failure
23Compressor discharge temperature sensor failure
24Low outdoor coil temperature in heating mode
25Low pressure
26High pressure
27Communication error inside the unit

Alarms are refreshed only when the unit answers: they stay as they were while it is silent.

Known limitations ​

  • Operating mode and fan speed are read but never written.
  • The set point range is fixed at 18…30 °C; MinSetPoint and MaxSetPoint have no effect.
  • EnAnalogPwr has no effect on this box.
  • The fault code clears only on "no fault" — see above.
  • Sub-zero measured temperatures are not published correctly.
  • A forced on/off command disables the battery protection until an auto command or a restart.

Versions ​

HardwareVersionImage
CAN/Modbus (990010053)5.9010010019-MODBUS-app_frigomar-firmware.srec
CAN/Serial v2 (990010063)6.4010010019-SERIAL-V2-app_frigomar-firmware.srec

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