Appearance
Reference — Frigomar gateway
The MUXEN devices this gateway publishes
| Device | Function | Instance | What it carries |
|---|---|---|---|
| HVAC, serial channel 1 | 21 | configured (InstanceNum), default 0 | the air conditioner on serial 1 |
| HVAC, serial channel 2 | 21 | configured (InstanceNum), default 1 | the air conditioner on serial 2 |
| HVAC, serial channel 3 | 21 | configured (InstanceNum), default 2 | the air conditioner on serial 3 |
| HVAC, serial channel 4 | 21 | configured (InstanceNum), default 3 | the air conditioner on serial 4 |
| Generic I/O | 17 | configured (InstanceNum), default 255 | the 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:
| Field | Meaning |
|---|---|
realTemp | the temperature the unit measures, in whole °C |
tempSetPoint | the set point the unit is holding, in whole °C |
currentMode, currentModeCode | 0 heating1 cooling2 dehumidify3 auto4 fan only |
fanSpeed, fanSpeedCode | 0 auto1 minimum2 medium3 maximum |
runningMode, runningModeCode | 0 off1 on |
BindToParc | the battery park this unit is counted in |
counter | a 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.
| Field | Meaning |
|---|---|
relay0 | the box's relay |
ana0 | the box's analog input, in millivolts |
input0, input1, relay1, ana1 | always 0 — this box has no second relay, no dry-contact inputs and no second analog input |
Commands
Published to device/21/<instance>/command:
| Payload | Effect |
|---|---|
{"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 reports | The gateway |
|---|---|
healthy, state of charge ≥ MinSocToWork | leaves the unit alone, and toggles it on each rising edge of RemoteCmdEqn |
healthy, state of charge < MinSocToWork | switches the unit off |
| overload, low battery, or no battery publishing | switches 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
| Parameter | Type | Default | Meaning |
|---|---|---|---|
InstanceNum | 0…62 | 255, read back as the channel number | this channel's instance. Unlike most devices of this family a fresh channel publishes immediately, as 0, 1, 2 or 3 |
BindToParc | park number, or 255 | 254 → rewritten to 255 at the first start | the battery park whose state gates the unit. 255 — standalone, protection disabled |
MinSocToWork | % | 20 | below this state of charge the unit is switched off |
RemoteAddr | Modbus address | 1 | the Modbus address of the unit on this channel |
RemoteCmdEqn | text, up to 255 characters | empty | logic expression whose rising edge toggles the unit — see below |
MinSetPoint, MaxSetPoint | °C | 18, 30 | not applied by this version — the accepted range is fixed at 18…30 °C |
ProductId, HardwareId, SoftwareId, SoftwareVersion | read-only | see 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
| Routine | Effect |
|---|---|
| 1 | factory reset — 0001 restores the instance number to its default, any higher bit the other parameters |
| 2 | locate — 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.
| Signal | Written | Meaning |
|---|---|---|
| Scheiber switch | SFSP(inst,btn) | button 1…8 |
| 8-button panel | F8T(inst,btn) | button 1…8 |
| Keypad | BLK(inst,btn,ctrl,color) | button 1…12 |
| Bloc 8 | B8S(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/O | GIO(inst,type,id,set,reset) | I dry input, V analog input in mV, R relay — id 1…2 |
| Lighting module | ECL(inst,output) | output 1…6 |
| Battery | BAT(inst,type,set,reset) | V 0.1 V, I 0.1 A, T °C, L state of charge % |
| Interconnect | INT(inst,type,id,set,reset) | I charge input state 1…4, M measurement 1…8 |
| Air conditioner | HVAC(inst) | running or not |
| Degraded mode | DEG(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 polled | in turn, one every 125 ms |
HVAC life published, per unit | about every 1 s |
| Modbus reply timeout | 500 ms — a silent channel slows the whole cycle |
| Generic I/O published every | 500 ms, and on change |
| Alarms published every | 1 s |
| Alarms carried at once | 32 |
| Reading expires on the Brain after | 30 s |
The Frigomar side
| Link | RS-485, 2-wire half-duplex, line termination switched on by the firmware |
| Protocol | Modbus RTU, gateway as client |
| Serial format | 9600 baud, 8 data bits, no parity, 1 stop bit — fixed by the firmware |
| Address | one per channel, RemoteAddr, default 1. The gateway never searches the line |
| Read | holding registers 1 to 14, in one transaction |
| Written | register 7 (running mode) and register 2 (temperature set point), one register at a time |
| Register | What it is | Used |
|---|---|---|
| 1 | measured temperature, 0.1 °C | published |
| 2 | temperature set point, 0.1 °C | published, and written |
| 3 | panel backlight time | read, not used |
| 4 | Celsius / Fahrenheit | read, not used |
| 5 | the unit's Modbus address | read, not used |
| 6 | sensor offset | read, not used |
| 7 | running mode | published, and written |
| 8 | fan speed | published |
| 9 | load defaults | read, not used |
| 10 | mode selection | published |
| 11 | sensor selection | read, not used |
| 12 | frequency-limitation word | turned into alarms |
| 13 | fault code | turned into alarms |
| 14 | alarm word | turned 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:
| Code | Alarm |
|---|---|
| 0 | Phase Current limitation |
| 1 | AC Current Limitation |
| 2 | Total Power Limitation |
| 3 | Power Factor Corrector failed |
From the fault code (register 13) — one value at a time:
| Unit reports | Code | Alarm |
|---|---|---|
| 1 | 4 | DC Voltage Overtop |
| 2 | 5 | DC Voltage Low |
| 3 | 6 | AC Current Overtop |
| 4 | 7 | Synch Loss |
| 5 | 8 | Phase Lack detected by speed |
| 6 | 9 | Phase Lack detected by current |
| 7 | 10 | IPM FO falling edge |
| 8 | 11 | IPM FO level |
| 12 | 12 | PFC Current Overtop |
| 13 | 13 | Total Power Overtop |
| 15 | 14 | AD Offset Abnormal |
| 23 | 15 | EEPROM driving failure |
| 25 | 16 | EEPROM control failure |
| 26 | 17 | IPM 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:
| Code | Alarm |
|---|---|
| 18 | Room temperature sensor failed |
| 19 | Indoor coil temperature sensor failed |
| 20 | Outdoor temperature sensor failed |
| 21 | Outdoor coil temperature sensor failed |
| 22 | Indoor DC fan failure |
| 23 | Compressor discharge temperature sensor failure |
| 24 | Low outdoor coil temperature in heating mode |
| 25 | Low pressure |
| 26 | High pressure |
| 27 | Communication 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;
MinSetPointandMaxSetPointhave no effect. EnAnalogPwrhas 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
| Hardware | Version | Image |
|---|---|---|
| CAN/Modbus (990010053) | 5.9 | 010010019-MODBUS-app_frigomar-firmware.srec |
| CAN/Serial v2 (990010063) | 6.4 | 010010019-SERIAL-V2-app_frigomar-firmware.srec |
