use crate::schema::*;
#[rustfmt::skip]
pub const CODES_10_001_DAY: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "no day" },
CodeEntry { code: 1, label: "Monday" },
CodeEntry { code: 2, label: "Tuesday" },
CodeEntry { code: 3, label: "Wednesday" },
CodeEntry { code: 4, label: "Thursday" },
CodeEntry { code: 5, label: "Friday" },
CodeEntry { code: 6, label: "Saturday" },
CodeEntry { code: 7, label: "Sunday" },
],
bands: &[
],
};
#[rustfmt::skip]
pub const CODES_18_001_C: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "Activate the addressed scene" },
CodeEntry { code: 1, label: "Learn and store the addressed scene" },
],
bands: &[
],
};
#[rustfmt::skip]
pub const CODES_1_001: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "Off" },
CodeEntry { code: 1, label: "On" },
],
bands: &[
],
};
#[rustfmt::skip]
pub const CODES_1_002: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "False" },
CodeEntry { code: 1, label: "True" },
],
bands: &[
],
};
#[rustfmt::skip]
pub const CODES_1_003: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "Disable" },
CodeEntry { code: 1, label: "Enable" },
],
bands: &[
],
};
#[rustfmt::skip]
pub const CODES_1_004: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "No ramp" },
CodeEntry { code: 1, label: "Ramp" },
],
bands: &[
],
};
#[rustfmt::skip]
pub const CODES_1_005: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "No alarm" },
CodeEntry { code: 1, label: "Alarm" },
],
bands: &[
],
};
#[rustfmt::skip]
pub const CODES_1_006: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "Low" },
CodeEntry { code: 1, label: "High" },
],
bands: &[
],
};
#[rustfmt::skip]
pub const CODES_1_007: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "Decrease" },
CodeEntry { code: 1, label: "Increase" },
],
bands: &[
],
};
#[rustfmt::skip]
pub const CODES_1_008: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "Up" },
CodeEntry { code: 1, label: "Down" },
],
bands: &[
],
};
#[rustfmt::skip]
pub const CODES_1_009: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "Open" },
CodeEntry { code: 1, label: "Close" },
],
bands: &[
],
};
#[rustfmt::skip]
pub const CODES_1_010: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "Stop" },
CodeEntry { code: 1, label: "Start" },
],
bands: &[
],
};
#[rustfmt::skip]
pub const CODES_1_011: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "Inactive" },
CodeEntry { code: 1, label: "Active" },
],
bands: &[
],
};
#[rustfmt::skip]
pub const CODES_1_012: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "Not inverted" },
CodeEntry { code: 1, label: "Inverted" },
],
bands: &[
],
};
#[rustfmt::skip]
pub const CODES_1_013: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "Start/stop" },
CodeEntry { code: 1, label: "Cyclically" },
],
bands: &[
],
};
#[rustfmt::skip]
pub const CODES_1_014: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "Fixed" },
CodeEntry { code: 1, label: "Calculated" },
],
bands: &[
],
};
#[rustfmt::skip]
pub const CODES_1_015: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "no action (dummy)" },
CodeEntry { code: 1, label: "reset command (trigger)" },
],
bands: &[
],
};
#[rustfmt::skip]
pub const CODES_1_016: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "no action (dummy)" },
CodeEntry { code: 1, label: "acknowledge command (trigger)" },
],
bands: &[
],
};
#[rustfmt::skip]
pub const CODES_1_017: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "trigger" },
CodeEntry { code: 1, label: "trigger" },
],
bands: &[
],
};
#[rustfmt::skip]
pub const CODES_1_018: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "not occupied" },
CodeEntry { code: 1, label: "occupied" },
],
bands: &[
],
};
#[rustfmt::skip]
pub const CODES_1_019: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "closed" },
CodeEntry { code: 1, label: "open" },
],
bands: &[
],
};
#[rustfmt::skip]
pub const CODES_1_021: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "logical function OR" },
CodeEntry { code: 1, label: "logical function AND" },
],
bands: &[
],
};
#[rustfmt::skip]
pub const CODES_1_022: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "scene A" },
CodeEntry { code: 1, label: "scene B" },
],
bands: &[
],
};
#[rustfmt::skip]
pub const CODES_1_023: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "only move Up/Down mode (shutter)" },
CodeEntry { code: 1, label: "Blind mode with Up/Down and Step/Stop" },
],
bands: &[
],
};
#[rustfmt::skip]
pub const CODES_1_024: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "Day" },
CodeEntry { code: 1, label: "Night" },
],
bands: &[
],
};
#[rustfmt::skip]
pub const CODES_1_100: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "cooling" },
CodeEntry { code: 1, label: "heating" },
],
bands: &[
],
};
#[rustfmt::skip]
pub const CODES_1_1200: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "Consumer" },
CodeEntry { code: 1, label: "Producer" },
],
bands: &[
],
};
#[rustfmt::skip]
pub const CODES_1_1201: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "Positive" },
CodeEntry { code: 1, label: "Negative" },
],
bands: &[
],
};
#[rustfmt::skip]
pub const CODES_1_1202: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "Inductive" },
CodeEntry { code: 1, label: "Capacitive" },
],
bands: &[
],
};
#[rustfmt::skip]
pub const CODES_201_105: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "disabled" },
CodeEntry { code: 1, label: "enable stage A" },
CodeEntry { code: 2, label: "enable stage B" },
CodeEntry { code: 3, label: "enable both stages" },
],
bands: &[
],
};
#[rustfmt::skip]
pub const CODES_201_107: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "Building in use" },
CodeEntry { code: 1, label: "Building not used" },
CodeEntry { code: 2, label: "Building Protection" },
],
bands: &[
],
};
#[rustfmt::skip]
pub const CODES_201_108: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "Occupied" },
CodeEntry { code: 1, label: "Standby" },
CodeEntry { code: 2, label: "Not occupied" },
],
bands: &[
],
};
#[rustfmt::skip]
pub const CODES_206_100: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "Undefined" },
CodeEntry { code: 1, label: "Comfort" },
CodeEntry { code: 2, label: "Standby" },
CodeEntry { code: 3, label: "Economy" },
CodeEntry { code: 4, label: "Bldg.Prot" },
],
bands: &[
CodeBand { start: 5, end: 255, label: "reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_206_102: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "Undefined" },
CodeEntry { code: 1, label: "LegioProtect" },
CodeEntry { code: 2, label: "Normal" },
CodeEntry { code: 3, label: "Reduced" },
CodeEntry { code: 4, label: "Off/FrostProtect" },
],
bands: &[
CodeBand { start: 5, end: 255, label: "reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_206_104: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "Occupied" },
CodeEntry { code: 1, label: "Standby" },
CodeEntry { code: 2, label: "Not occupied" },
],
bands: &[
CodeBand { start: 3, end: 255, label: "reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_206_105: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "Building in use" },
CodeEntry { code: 1, label: "Building not used" },
CodeEntry { code: 2, label: "Building Protection" },
],
bands: &[
CodeBand { start: 3, end: 255, label: "reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_20_001: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "autonomous" },
CodeEntry { code: 1, label: "slave" },
CodeEntry { code: 2, label: "master" },
],
bands: &[
CodeBand { start: 3, end: 255, label: "not used; reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_20_002: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "Building in use" },
CodeEntry { code: 1, label: "Building not used" },
CodeEntry { code: 2, label: "Building protection" },
],
bands: &[
CodeBand { start: 3, end: 255, label: "reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_20_003: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "occupied" },
CodeEntry { code: 1, label: "standby" },
CodeEntry { code: 2, label: "not occupied" },
],
bands: &[
CodeBand { start: 3, end: 255, label: "not used; reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_20_004: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "High" },
CodeEntry { code: 1, label: "Medium" },
CodeEntry { code: 2, label: "Low" },
CodeEntry { code: 3, label: "'void'" },
],
bands: &[
CodeBand { start: 4, end: 255, label: "not used; reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_20_005: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "normal" },
CodeEntry { code: 1, label: "presence simulation" },
CodeEntry { code: 2, label: "night round" },
],
bands: &[
CodeBand { start: 3, end: 16, label: "reserved", disposition: None },
CodeBand { start: 17, end: 255, label: "manufacturer specific", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_20_006: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "no fault" },
CodeEntry { code: 1, label: "Common/system functions" },
CodeEntry { code: 10, label: "HVAC general FBs" },
CodeEntry { code: 11, label: "HVAC Hot Water Heating" },
CodeEntry { code: 12, label: "HVAC Direct Electrical Heating" },
CodeEntry { code: 13, label: "HVAC Terminal Units" },
CodeEntry { code: 14, label: "HVAC VAC" },
CodeEntry { code: 20, label: "Lighting" },
CodeEntry { code: 30, label: "Security" },
CodeEntry { code: 40, label: "Load Management" },
CodeEntry { code: 50, label: "Shutters and blinds" },
],
bands: &[
CodeBand { start: 2, end: 9, label: "reserved", disposition: None },
CodeBand { start: 15, end: 19, label: "reserved (HVAC)", disposition: None },
CodeBand { start: 21, end: 29, label: "reserved (Lighting)", disposition: None },
CodeBand { start: 31, end: 39, label: "reserved (Security)", disposition: None },
CodeBand { start: 41, end: 49, label: "reserved (Load Management)", disposition: None },
CodeBand { start: 51, end: 255, label: "reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_20_007: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 1, label: "simple alarm" },
CodeEntry { code: 2, label: "basic alarm" },
CodeEntry { code: 3, label: "extended alarm" },
],
bands: &[
CodeBand { start: 0, end: 0, label: "reserved (not used)", disposition: None },
CodeBand { start: 4, end: 255, label: "reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_20_008: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "disabled (PSU/DPSU fixed off)" },
CodeEntry { code: 1, label: "enabled (PSU/DPSU fixed on)" },
CodeEntry { code: 2, label: "auto (PSU/DPSU automatic on/off)" },
],
bands: &[
CodeBand { start: 3, end: 255, label: "reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_20_011: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "no fault" },
CodeEntry { code: 1, label: "General device fault" },
CodeEntry { code: 2, label: "communication fault" },
CodeEntry { code: 3, label: "configuration fault" },
CodeEntry { code: 4, label: "hardware fault" },
CodeEntry { code: 5, label: "software fault" },
CodeEntry { code: 6, label: "insufficient non volatile memory" },
CodeEntry { code: 7, label: "insufficient volatile memory" },
CodeEntry { code: 8, label: "Zero-size allocation command" },
CodeEntry { code: 9, label: "CRC-error" },
CodeEntry { code: 10, label: "watchdog reset detected" },
CodeEntry { code: 11, label: "invalid opcode detected" },
CodeEntry { code: 12, label: "general protection fault" },
CodeEntry { code: 13, label: "maximal table length exceeded" },
CodeEntry { code: 14, label: "undefined load command received" },
CodeEntry { code: 15, label: "Unsorted group address table" },
CodeEntry { code: 16, label: "invalid connection number (TSAP)" },
CodeEntry { code: 17, label: "invalid Group Object number (ASAP)" },
CodeEntry { code: 18, label: "PID_MAX_APDU_LENGTH minus 2 too small for the group-object type" },
],
bands: &[
CodeBand { start: 19, end: 255, label: "reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_20_012: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "no fault" },
CodeEntry { code: 1, label: "sensor fault" },
CodeEntry { code: 2, label: "process fault / controller fault" },
CodeEntry { code: 3, label: "actuator fault" },
CodeEntry { code: 4, label: "other fault" },
],
bands: &[
CodeBand { start: 5, end: 255, label: "reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_20_013: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "not active" },
CodeEntry { code: 1, label: "1 s" },
CodeEntry { code: 2, label: "2 s" },
CodeEntry { code: 3, label: "3 s" },
CodeEntry { code: 4, label: "5 s" },
CodeEntry { code: 5, label: "10 s" },
CodeEntry { code: 6, label: "15 s" },
CodeEntry { code: 7, label: "20 s" },
CodeEntry { code: 8, label: "30 s" },
CodeEntry { code: 9, label: "45 s" },
CodeEntry { code: 10, label: "1 min" },
CodeEntry { code: 11, label: "1,25 min" },
CodeEntry { code: 12, label: "1,5 min" },
CodeEntry { code: 13, label: "2 min" },
CodeEntry { code: 14, label: "2,5 min" },
CodeEntry { code: 15, label: "3 min" },
CodeEntry { code: 16, label: "5 min" },
CodeEntry { code: 17, label: "15 min" },
CodeEntry { code: 18, label: "20 min" },
CodeEntry { code: 19, label: "30 min" },
CodeEntry { code: 20, label: "1 h" },
CodeEntry { code: 21, label: "2 h" },
CodeEntry { code: 22, label: "3 h" },
CodeEntry { code: 23, label: "5 h" },
CodeEntry { code: 24, label: "12 h" },
CodeEntry { code: 25, label: "24 h" },
],
bands: &[
CodeBand { start: 26, end: 255, label: "reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_20_014: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "calm (no wind)" },
CodeEntry { code: 1, label: "light air" },
CodeEntry { code: 2, label: "light breeze" },
CodeEntry { code: 3, label: "gentle breeze" },
CodeEntry { code: 4, label: "moderate breeze" },
CodeEntry { code: 5, label: "fresh breeze" },
CodeEntry { code: 6, label: "strong breeze" },
CodeEntry { code: 7, label: "near gale / moderate gale" },
CodeEntry { code: 8, label: "fresh gale" },
CodeEntry { code: 9, label: "strong gale" },
CodeEntry { code: 10, label: "whole gale / storm" },
CodeEntry { code: 11, label: "violent storm" },
CodeEntry { code: 12, label: "hurricane" },
],
bands: &[
CodeBand { start: 13, end: 255, label: "reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_20_017: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "inactive" },
CodeEntry { code: 1, label: "digital input not inverted" },
CodeEntry { code: 2, label: "digital input inverted" },
CodeEntry { code: 3, label: "Analog input 0-100%" },
CodeEntry { code: 4, label: "temperature sensor input" },
],
bands: &[
CodeBand { start: 5, end: 255, label: "reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_20_020: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 1, label: "SensorConnection" },
CodeEntry { code: 2, label: "ControllerConnection" },
],
bands: &[
CodeBand { start: 0, end: 0, label: "reserved", disposition: None },
CodeBand { start: 3, end: 255, label: "reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_20_021: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "Cloudless" },
CodeEntry { code: 1, label: "Sunny" },
CodeEntry { code: 2, label: "Sunshiny" },
CodeEntry { code: 3, label: "Lightly cloudy" },
CodeEntry { code: 4, label: "Scattered clouds" },
CodeEntry { code: 5, label: "Cloudy" },
CodeEntry { code: 6, label: "stark bewoelkt" },
CodeEntry { code: 7, label: "fast bedeckt" },
CodeEntry { code: 8, label: "Overcast" },
CodeEntry { code: 9, label: "Sky obstructed from view" },
],
bands: &[
CodeBand { start: 10, end: 255, label: "reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_20_022: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "do not send" },
CodeEntry { code: 1, label: "send always" },
CodeEntry { code: 2, label: "Only values changed while unpowered are sent" },
],
bands: &[
CodeBand { start: 3, end: 255, label: "not used; reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_20_100: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "auto" },
CodeEntry { code: 1, label: "oil" },
CodeEntry { code: 2, label: "gas" },
CodeEntry { code: 3, label: "solid state fuel" },
],
bands: &[
CodeBand { start: 4, end: 255, label: "not used, reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_20_1000: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "Data Link Layer" },
CodeEntry { code: 1, label: "Data Link Layer Busmonitor" },
CodeEntry { code: 2, label: "Data Link Layer Raw Frames" },
CodeEntry { code: 6, label: "cEMI Transport Layer" },
CodeEntry { code: 255, label: "no layer" },
],
bands: &[
CodeBand { start: 3, end: 5, label: "not used", disposition: None },
CodeBand { start: 7, end: 239, label: "not used", disposition: None },
CodeBand { start: 240, end: 254, label: "reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_20_1001: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 1, label: "PL medium Domain Address" },
CodeEntry { code: 2, label: "RF data link: RF-info plus KNX serial number or domain address" },
CodeEntry { code: 3, label: "Busmonitor Error Flags" },
CodeEntry { code: 4, label: "Relative timestamp" },
CodeEntry { code: 5, label: "Time delay" },
CodeEntry { code: 6, label: "Extended Relative Timestamp" },
CodeEntry { code: 7, label: "BiBat information" },
],
bands: &[
CodeBand { start: 0, end: 0, label: "reserved", disposition: None },
CodeBand { start: 8, end: 254, label: "reserved", disposition: None },
CodeBand { start: 255, end: 255, label: "Reserved escape code for extending additional-information types", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_20_1002: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "asynchronous" },
CodeEntry { code: 1, label: "asynchronous + BiBat Master" },
CodeEntry { code: 2, label: "asynchronous + BiBat Slave" },
],
bands: &[
CodeBand { start: 3, end: 255, label: "reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_20_1003: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "Filtering off; the cEMI client receives every supported frame via L_Data.ind" },
CodeEntry { code: 1, label: "filtering by Domain Address" },
CodeEntry { code: 2, label: "Admits frames listed in the serial-number table" },
CodeEntry { code: 3, label: "Admits frames listed in either the domain-address or serial-number table" },
],
bands: &[
CodeBand { start: 4, end: 255, label: "reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_20_1004: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "KNX TP1" },
CodeEntry { code: 1, label: "KNX PL110" },
CodeEntry { code: 2, label: "KNX RF" },
CodeEntry { code: 5, label: "KNX IP" },
],
bands: &[
CodeBand { start: 3, end: 3, label: "reserved", disposition: None },
CodeBand { start: 4, end: 4, label: "reserved", disposition: None },
CodeBand { start: 63, end: 255, label: "not used; reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_20_1005: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 1, label: "default function" },
CodeEntry { code: 2, label: "ON" },
CodeEntry { code: 3, label: "OFF" },
CodeEntry { code: 4, label: "Toggle" },
CodeEntry { code: 5, label: "Dimming Up Down" },
CodeEntry { code: 6, label: "Dimming Up" },
CodeEntry { code: 7, label: "Dimming Down" },
CodeEntry { code: 8, label: "On / Off" },
CodeEntry { code: 9, label: "Timed On Off" },
CodeEntry { code: 10, label: "Forced On" },
CodeEntry { code: 11, label: "Forced Off" },
CodeEntry { code: 12, label: "Shutter Up (for PB)" },
CodeEntry { code: 13, label: "Shutter Down (for (PB)" },
CodeEntry { code: 14, label: "Shutter Up Down (for PB)" },
CodeEntry { code: 16, label: "Forced Up" },
CodeEntry { code: 17, label: "Forced Down" },
CodeEntry { code: 18, label: "Wind Alarm" },
CodeEntry { code: 19, label: "Rain Alarm" },
CodeEntry { code: 20, label: "HVAC Mode Comfort / Economy" },
CodeEntry { code: 21, label: "HVAC Mode Comfort / -" },
CodeEntry { code: 22, label: "HVAC Mode Economy / -" },
CodeEntry { code: 23, label: "HVAC mode switch: building protection first, then Auto" },
CodeEntry { code: 24, label: "Shutter Stop" },
CodeEntry { code: 25, label: "Timed Comfort Standby" },
CodeEntry { code: 26, label: "Forced Comfort" },
CodeEntry { code: 27, label: "Forced Building protection" },
CodeEntry { code: 28, label: "Scene 1" },
CodeEntry { code: 29, label: "Scene 2" },
CodeEntry { code: 30, label: "Scene 3" },
CodeEntry { code: 31, label: "Scene 4" },
CodeEntry { code: 32, label: "Scene 5" },
CodeEntry { code: 33, label: "Scene 6" },
CodeEntry { code: 34, label: "Scene 7" },
CodeEntry { code: 35, label: "Scene 8" },
CodeEntry { code: 36, label: "Absolute dimming 25 %" },
CodeEntry { code: 37, label: "Absolute dimming 50 %" },
CodeEntry { code: 38, label: "Absolute dimming 75 %" },
CodeEntry { code: 39, label: "Absolute dimming 100 %" },
CodeEntry { code: 40, label: "Switch-driven shutter: up first, then nothing" },
CodeEntry { code: 41, label: "Switch-driven shutter: down first, then nothing" },
CodeEntry { code: 42, label: "Switch-driven shutter: up first, then down" },
CodeEntry { code: 43, label: "Switch-driven shutter: down first, then up" },
CodeEntry { code: 44, label: "Light sensor" },
CodeEntry { code: 45, label: "System clock" },
CodeEntry { code: 46, label: "Battery status" },
CodeEntry { code: 47, label: "HVAC Mode Standby / -" },
CodeEntry { code: 48, label: "HVAC Mode Auto / -" },
CodeEntry { code: 49, label: "HVAC Mode Comfort / Standby" },
CodeEntry { code: 50, label: "HVAC mode switch: building protection first, then nothing" },
CodeEntry { code: 51, label: "Timed toggle" },
CodeEntry { code: 52, label: "Dimming Absolute switch" },
CodeEntry { code: 53, label: "Scene switch" },
CodeEntry { code: 54, label: "Smoke alarm" },
CodeEntry { code: 55, label: "Sub detector" },
],
bands: &[
CodeBand { start: 0, end: 0, label: "reserved", disposition: None },
CodeBand { start: 15, end: 15, label: "reserved", disposition: None },
CodeBand { start: 56, end: 255, label: "reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_20_101: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 1, label: "1 stage" },
CodeEntry { code: 2, label: "2 stage" },
CodeEntry { code: 3, label: "modulating" },
],
bands: &[
CodeBand { start: 0, end: 0, label: "reserved", disposition: None },
CodeBand { start: 4, end: 255, label: "reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_20_102: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "Auto" },
CodeEntry { code: 1, label: "Comfort" },
CodeEntry { code: 2, label: "Standby" },
CodeEntry { code: 3, label: "Economy" },
CodeEntry { code: 4, label: "Building Protection" },
],
bands: &[
CodeBand { start: 5, end: 255, label: "reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_20_103: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "Auto" },
CodeEntry { code: 1, label: "LegioProtect" },
CodeEntry { code: 2, label: "Normal" },
CodeEntry { code: 3, label: "Reduced" },
CodeEntry { code: 4, label: "Off/FrostProtect" },
],
bands: &[
CodeBand { start: 5, end: 255, label: "reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_20_104: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "None" },
CodeEntry { code: 1, label: "Shift load priority" },
CodeEntry { code: 2, label: "Absolute load priority" },
],
bands: &[
CodeBand { start: 3, end: 255, label: "reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_20_105: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "Auto" },
CodeEntry { code: 1, label: "Heat" },
CodeEntry { code: 2, label: "Morning Warmup" },
CodeEntry { code: 3, label: "Cool" },
CodeEntry { code: 4, label: "Night Purge" },
CodeEntry { code: 5, label: "Precool" },
CodeEntry { code: 6, label: "Off" },
CodeEntry { code: 7, label: "Test" },
CodeEntry { code: 8, label: "Emergency Heat" },
CodeEntry { code: 9, label: "Fan only" },
CodeEntry { code: 10, label: "Free Cool" },
CodeEntry { code: 11, label: "Ice" },
CodeEntry { code: 12, label: "Maximum Heating Mode" },
CodeEntry { code: 13, label: "Economic Heat/Cool Mode" },
CodeEntry { code: 14, label: "Dehumidification" },
CodeEntry { code: 15, label: "Calibration Mode" },
CodeEntry { code: 16, label: "Emergency Cool Mode" },
CodeEntry { code: 17, label: "Emergency Steam Mode" },
CodeEntry { code: 20, label: "NoDem" },
],
bands: &[
CodeBand { start: 18, end: 19, label: "reserved", disposition: None },
CodeBand { start: 21, end: 255, label: "reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_20_106: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "Normal" },
CodeEntry { code: 1, label: "EmergPressure" },
CodeEntry { code: 2, label: "EmergDepressure" },
CodeEntry { code: 3, label: "EmergPurge" },
CodeEntry { code: 4, label: "EmergShutdown" },
CodeEntry { code: 5, label: "EmergFire" },
],
bands: &[
CodeBand { start: 6, end: 255, label: "reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_20_107: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "Auto" },
CodeEntry { code: 1, label: "CoolingOnly" },
CodeEntry { code: 2, label: "HeatingOnly" },
],
bands: &[
CodeBand { start: 3, end: 255, label: "reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_20_108: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 1, label: "Heat stage A" },
CodeEntry { code: 2, label: "Heat stage B, two-stage heating" },
CodeEntry { code: 3, label: "Cool stage A" },
CodeEntry { code: 4, label: "Cool stage B, two-stage cooling" },
CodeEntry { code: 5, label: "Heat/Cool for changeover applications" },
],
bands: &[
CodeBand { start: 0, end: 0, label: "reserved", disposition: None },
CodeBand { start: 6, end: 255, label: "reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_20_109: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 1, label: "Fresh air, e.g. for fancoils" },
CodeEntry { code: 2, label: "Supply air, typically for VAV" },
CodeEntry { code: 3, label: "Discharge Air e.g. for VAV" },
CodeEntry { code: 4, label: "Extract Air e.g. for VAV" },
],
bands: &[
CodeBand { start: 0, end: 0, label: "reserved", disposition: None },
CodeBand { start: 5, end: 255, label: "reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_20_110: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 1, label: "Heat Stage A On/Off" },
CodeEntry { code: 2, label: "Heat Stage A Proportional" },
CodeEntry { code: 3, label: "Heat Stage B Proportional" },
],
bands: &[
CodeBand { start: 0, end: 0, label: "reserved", disposition: None },
CodeBand { start: 4, end: 255, label: "reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_20_111: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "not running" },
CodeEntry { code: 1, label: "permanently running" },
CodeEntry { code: 2, label: "running in intervals" },
],
bands: &[
CodeBand { start: 3, end: 255, label: "reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_20_112: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "autonomous" },
CodeEntry { code: 1, label: "master" },
CodeEntry { code: 2, label: "slave" },
],
bands: &[
CodeBand { start: 3, end: 255, label: "reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_20_113: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "normal setpoint" },
CodeEntry { code: 1, label: "alternative setpoint" },
CodeEntry { code: 2, label: "building protection setpoint" },
],
bands: &[
CodeBand { start: 3, end: 255, label: "reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_20_114: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "Other device type" },
CodeEntry { code: 1, label: "Oil meter" },
CodeEntry { code: 2, label: "Electricity meter" },
CodeEntry { code: 3, label: "Gas meter" },
CodeEntry { code: 4, label: "Heat meter" },
CodeEntry { code: 5, label: "Steam meter" },
CodeEntry { code: 6, label: "Warm Water meter" },
CodeEntry { code: 7, label: "Water meter" },
CodeEntry { code: 8, label: "Heat cost allocator" },
CodeEntry { code: 10, label: "Cooling Load meter (outlet)" },
CodeEntry { code: 11, label: "Cooling Load meter (inlet" },
CodeEntry { code: 12, label: "Heat (inlet)" },
CodeEntry { code: 13, label: "Heat and Cool" },
CodeEntry { code: 32, label: "breaker (electricity)" },
CodeEntry { code: 33, label: "valve (gas or water)" },
CodeEntry { code: 40, label: "waste water meter" },
CodeEntry { code: 41, label: "garbage" },
CodeEntry { code: 255, label: "void device type" },
],
bands: &[
CodeBand { start: 9, end: 9, label: "reserved", disposition: None },
CodeBand { start: 14, end: 14, label: "reserved", disposition: None },
CodeBand { start: 15, end: 15, label: "reserved", disposition: None },
CodeBand { start: 16, end: 31, label: "reserved, unused", disposition: None },
CodeBand { start: 34, end: 39, label: "reserved, unused", disposition: None },
CodeBand { start: 42, end: 254, label: "reserved, unused", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_20_115: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "inactive" },
CodeEntry { code: 1, label: "humidification" },
CodeEntry { code: 2, label: "dehumidification" },
],
bands: &[
CodeBand { start: 3, end: 255, label: "not used, reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_20_120: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 1, label: "Air Damper" },
CodeEntry { code: 2, label: "VAV" },
],
bands: &[
CodeBand { start: 0, end: 0, label: "not used, reserved", disposition: None },
CodeBand { start: 3, end: 255, label: "not used, reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_20_1200: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "Breaker/Valve is closed" },
CodeEntry { code: 1, label: "Breaker/Valve is open" },
CodeEntry { code: 2, label: "Breaker/Valve is released" },
CodeEntry { code: 255, label: "invalid" },
],
bands: &[
CodeBand { start: 3, end: 254, label: "reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_20_1202: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "unknown" },
CodeEntry { code: 1, label: "temperature converted" },
CodeEntry { code: 2, label: "at base condition" },
CodeEntry { code: 3, label: "at measurement condition" },
],
bands: &[
CodeBand { start: 4, end: 255, label: "reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_20_1203: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "closed" },
CodeEntry { code: 1, label: "open on overload" },
CodeEntry { code: 2, label: "open on overvoltage" },
CodeEntry { code: 3, label: "open on load shedding" },
CodeEntry { code: 4, label: "PLC or Euridis command opened the breaker" },
CodeEntry { code: 5, label: "Overheat trip while the current exceeds the switching maximum" },
CodeEntry { code: 6, label: "Overheat trip while the current is under the switching maximum" },
],
bands: &[
],
};
#[rustfmt::skip]
pub const CODES_20_1204: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "deactivated" },
CodeEntry { code: 1, label: "activated without security" },
CodeEntry { code: 2, label: "activated with security" },
],
bands: &[
],
};
#[rustfmt::skip]
pub const CODES_20_1205: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "S-FSK new/unlock or G3-PLC not associated" },
CodeEntry { code: 1, label: "S-FSK new/lock or G3-PLC associated" },
CodeEntry { code: 2, label: "Registered (S-FSK) - reserved (G3-PLC)" },
],
bands: &[
],
};
#[rustfmt::skip]
pub const CODES_20_1206: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "no notice in progress" },
CodeEntry { code: 1, label: "notice PE1 in progress" },
CodeEntry { code: 2, label: "notice PE2 in progress" },
CodeEntry { code: 3, label: "notice PE3 in progress" },
],
bands: &[
],
};
#[rustfmt::skip]
pub const CODES_20_1207: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "no peak event" },
CodeEntry { code: 1, label: "PE1 in progress" },
CodeEntry { code: 2, label: "PE2 in progress" },
CodeEntry { code: 3, label: "PE3 in progress" },
],
bands: &[
],
};
#[rustfmt::skip]
pub const CODES_20_1208: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "Historical" },
CodeEntry { code: 1, label: "Standard" },
],
bands: &[
],
};
#[rustfmt::skip]
pub const CODES_20_1209: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "None" },
CodeEntry { code: 1, label: "Historical single-phase" },
CodeEntry { code: 2, label: "Historical three-phase" },
CodeEntry { code: 3, label: "Standard single-phase" },
CodeEntry { code: 4, label: "Standard three-phase" },
],
bands: &[
],
};
#[rustfmt::skip]
pub const CODES_20_121: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "Backup Value" },
CodeEntry { code: 1, label: "Keep Last State" },
],
bands: &[
CodeBand { start: 2, end: 255, label: "reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_20_122: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "Position unchanged" },
CodeEntry { code: 1, label: "Single close" },
CodeEntry { code: 2, label: "Single open" },
],
bands: &[
CodeBand { start: 3, end: 255, label: "reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_20_600: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "off" },
CodeEntry { code: 1, label: "on" },
CodeEntry { code: 2, label: "no change" },
CodeEntry { code: 3, label: "value according to additional parameter" },
CodeEntry { code: 4, label: "memory function value" },
CodeEntry { code: 5, label: "updated value" },
CodeEntry { code: 6, label: "value before locking" },
],
bands: &[
CodeBand { start: 7, end: 255, label: "reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_20_601: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "off" },
CodeEntry { code: 1, label: "on" },
CodeEntry { code: 2, label: "no change" },
CodeEntry { code: 3, label: "value according to additional parameter" },
CodeEntry { code: 4, label: "Keeps whatever the field held across the power interruption" },
],
bands: &[
CodeBand { start: 5, end: 255, label: "reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_20_602: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "0 s (no fade)" },
CodeEntry { code: 1, label: "0,7 s" },
CodeEntry { code: 2, label: "1,0 s" },
CodeEntry { code: 3, label: "1,4 s" },
CodeEntry { code: 4, label: "2,0 s" },
CodeEntry { code: 5, label: "2,8 s" },
CodeEntry { code: 6, label: "4,0 s" },
CodeEntry { code: 7, label: "5,7 s" },
CodeEntry { code: 8, label: "8,0 s" },
CodeEntry { code: 9, label: "11,3 s" },
CodeEntry { code: 10, label: "16,0 s" },
CodeEntry { code: 11, label: "22,6 s" },
CodeEntry { code: 12, label: "32,0 s" },
CodeEntry { code: 13, label: "45,3 s" },
CodeEntry { code: 14, label: "64,0 s" },
CodeEntry { code: 15, label: "90,5 s" },
],
bands: &[
CodeBand { start: 16, end: 255, label: "reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_20_603: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "BlinkingDisabled" },
CodeEntry { code: 1, label: "WithoutAcknowledge" },
CodeEntry { code: 2, label: "BlinkingWithAcknowledge" },
],
bands: &[
CodeBand { start: 3, end: 255, label: "reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_20_604: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "automatic light control" },
CodeEntry { code: 1, label: "manual light control" },
],
bands: &[
CodeBand { start: 2, end: 255, label: "reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_20_605: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 1, label: "one PB/binary input mode" },
CodeEntry { code: 2, label: "two PBs/binary inputs mode" },
],
bands: &[
CodeBand { start: 0, end: 0, label: "reserved", disposition: None },
CodeBand { start: 3, end: 255, label: "reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_20_606: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "inactive (no message sent)" },
CodeEntry { code: 1, label: "SwitchOff message sent" },
CodeEntry { code: 2, label: "SwitchOn message sent" },
CodeEntry { code: 3, label: "Transmits the negation of InfoOnOff" },
],
bands: &[
CodeBand { start: 4, end: 255, label: "reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_20_607: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 1, label: "SwitchOnOff value alternates each telegram, single-button model" },
CodeEntry { code: 2, label: "One-button On/DimUp mode" },
CodeEntry { code: 3, label: "One-button Off/DimDown mode" },
CodeEntry { code: 4, label: "two PBs/binary inputs mode" },
],
bands: &[
CodeBand { start: 0, end: 0, label: "reserved", disposition: None },
CodeBand { start: 5, end: 255, label: "reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_20_608: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "last actual value" },
CodeEntry { code: 1, label: "value according additional parameter" },
CodeEntry { code: 2, label: "last received absolute setvalue" },
],
bands: &[
CodeBand { start: 3, end: 255, label: "reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_20_609: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "Detects the load type automatically" },
CodeEntry { code: 1, label: "leading edge (inductive load)" },
CodeEntry { code: 2, label: "Trailing edge: timed turn-off mid half-cycle; resistive and capacitive loads" },
CodeEntry { code: 3, label: "switch mode only (non-dimmable load)" },
CodeEntry { code: 4, label: "automatic once" },
CodeEntry { code: 5, label: "CFL, leading" },
CodeEntry { code: 6, label: "CFL, trailing" },
CodeEntry { code: 7, label: "LED, leading" },
CodeEntry { code: 8, label: "LED, trailing" },
],
bands: &[
CodeBand { start: 9, end: 255, label: "reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_20_610: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "undefined" },
CodeEntry { code: 1, label: "leading edge (inductive load)" },
CodeEntry { code: 2, label: "trailing edge (capacitive load)" },
CodeEntry { code: 3, label: "detection not possible or error" },
CodeEntry { code: 4, label: "calibration pending, waiting on trigger" },
CodeEntry { code: 5, label: "CFL, leading" },
CodeEntry { code: 6, label: "CFL, trailing" },
CodeEntry { code: 7, label: "LED, leading" },
CodeEntry { code: 8, label: "LED, trailing" },
],
bands: &[
CodeBand { start: 9, end: 255, label: "reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_20_611: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 1, label: "Start Function Test (FT)" },
CodeEntry { code: 2, label: "Start Duration Test (DT)" },
CodeEntry { code: 3, label: "Start Partial Duration Test (PDT)" },
CodeEntry { code: 4, label: "Stop Test" },
CodeEntry { code: 5, label: "Reset Function Test Done Flag" },
CodeEntry { code: 6, label: "Reset Duration Test Done" },
],
bands: &[
CodeBand { start: 0, end: 0, label: "Reserved, no effect", disposition: Some(ReceiveDisposition::AcceptWithoutAction) },
CodeBand { start: 7, end: 255, label: "Reserved, no effect", disposition: Some(ReceiveDisposition::AcceptWithoutAction) },
],
};
#[rustfmt::skip]
pub const CODES_20_612: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "Restore Factory Default Settings" },
CodeEntry { code: 1, label: "Goto Rest Mode" },
CodeEntry { code: 2, label: "Goto Inhibit Mode" },
CodeEntry { code: 3, label: "Re-Light / Reset Inhibit" },
CodeEntry { code: 4, label: "Clears the lamp emergency and running-hour counters" },
],
bands: &[
CodeBand { start: 5, end: 255, label: "Reserved, no effect", disposition: Some(ReceiveDisposition::AcceptWithoutAction) },
],
};
#[rustfmt::skip]
pub const CODES_20_613: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 1, label: "Request Converter Status" },
CodeEntry { code: 2, label: "Request Converter Test Result" },
CodeEntry { code: 3, label: "Request Battery Info" },
CodeEntry { code: 4, label: "Request Converter FT Info" },
CodeEntry { code: 5, label: "Request Converter DT Info" },
CodeEntry { code: 6, label: "Request Converter PDT Info" },
CodeEntry { code: 7, label: "Request Converter Info" },
CodeEntry { code: 8, label: "Request Converter Info Fix" },
],
bands: &[
CodeBand { start: 0, end: 0, label: "Reserved, no effect", disposition: Some(ReceiveDisposition::AcceptWithoutAction) },
CodeBand { start: 9, end: 255, label: "Reserved, no effect", disposition: Some(ReceiveDisposition::AcceptWithoutAction) },
],
};
#[rustfmt::skip]
pub const CODES_20_801: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "up" },
CodeEntry { code: 1, label: "down" },
CodeEntry { code: 2, label: "no change" },
CodeEntry { code: 3, label: "value according to additional parameter" },
CodeEntry { code: 4, label: "stop" },
],
bands: &[
CodeBand { start: 5, end: 255, label: "reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_20_802: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "up" },
CodeEntry { code: 1, label: "down" },
CodeEntry { code: 2, label: "no change" },
CodeEntry { code: 3, label: "value according to additional parameter" },
CodeEntry { code: 4, label: "stop" },
CodeEntry { code: 5, label: "updated value" },
CodeEntry { code: 6, label: "value before locking" },
],
bands: &[
CodeBand { start: 7, end: 255, label: "reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_20_803: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 1, label: "MoveUpDown value alternates each telegram, single-button mode" },
CodeEntry { code: 2, label: "One-button MoveUp/StepUp mode" },
CodeEntry { code: 3, label: "One-button MoveDown/StepDown mode" },
CodeEntry { code: 4, label: "two push buttons/binary inputs mode" },
],
bands: &[
CodeBand { start: 5, end: 255, label: "reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_20_804: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "Automatic Control" },
CodeEntry { code: 1, label: "Manual Control" },
],
bands: &[
CodeBand { start: 2, end: 255, label: "reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_211_100: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "Auto" },
CodeEntry { code: 1, label: "Heat" },
CodeEntry { code: 2, label: "Morning Warmup" },
CodeEntry { code: 3, label: "Cool" },
CodeEntry { code: 4, label: "Night Purge" },
CodeEntry { code: 5, label: "Precool" },
CodeEntry { code: 6, label: "Off" },
CodeEntry { code: 7, label: "Test" },
CodeEntry { code: 8, label: "Emergency Heat" },
CodeEntry { code: 9, label: "Fan only" },
CodeEntry { code: 10, label: "Free Cool" },
CodeEntry { code: 11, label: "Ice" },
CodeEntry { code: 20, label: "NoDem" },
],
bands: &[
CodeBand { start: 12, end: 19, label: "reserved", disposition: None },
CodeBand { start: 21, end: 255, label: "reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_216_100: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 1, label: "1 stage" },
CodeEntry { code: 2, label: "2 stage" },
CodeEntry { code: 3, label: "modulating" },
],
bands: &[
CodeBand { start: 0, end: 0, label: "reserved", disposition: None },
CodeBand { start: 4, end: 255, label: "reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_223_100: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "Auto" },
CodeEntry { code: 1, label: "Heat" },
CodeEntry { code: 2, label: "Morning Warmup" },
CodeEntry { code: 3, label: "Cool" },
CodeEntry { code: 4, label: "Night Purge" },
CodeEntry { code: 5, label: "Precool" },
CodeEntry { code: 6, label: "Off" },
CodeEntry { code: 7, label: "Test" },
CodeEntry { code: 8, label: "Emergency Heat" },
CodeEntry { code: 9, label: "Fan only" },
CodeEntry { code: 10, label: "Free Cool" },
CodeEntry { code: 11, label: "Ice" },
CodeEntry { code: 20, label: "NoDem" },
],
bands: &[
CodeBand { start: 12, end: 19, label: "reserved", disposition: None },
CodeBand { start: 21, end: 255, label: "reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_224_100: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "Auto" },
CodeEntry { code: 1, label: "Heat" },
CodeEntry { code: 2, label: "Morning Warmup" },
CodeEntry { code: 3, label: "Cool" },
CodeEntry { code: 4, label: "Night Purge" },
CodeEntry { code: 5, label: "Precool" },
CodeEntry { code: 6, label: "Off" },
CodeEntry { code: 7, label: "Test" },
CodeEntry { code: 8, label: "Emergency Heat" },
CodeEntry { code: 9, label: "Fan only" },
CodeEntry { code: 10, label: "Free Cool" },
CodeEntry { code: 11, label: "Ice" },
CodeEntry { code: 20, label: "NoDem" },
],
bands: &[
CodeBand { start: 12, end: 19, label: "reserved", disposition: None },
CodeBand { start: 21, end: 255, label: "reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_224_100_EMERG: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "Normal" },
CodeEntry { code: 1, label: "EmergPressure" },
CodeEntry { code: 2, label: "EmergDepressure" },
CodeEntry { code: 3, label: "EmergPurge" },
CodeEntry { code: 4, label: "EmergShutdown" },
CodeEntry { code: 5, label: "EmergFire" },
],
bands: &[
CodeBand { start: 6, end: 255, label: "reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_229_001: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "energy 0.001 Wh" },
CodeEntry { code: 1, label: "energy 0.01 Wh" },
CodeEntry { code: 2, label: "energy 0.1 Wh" },
CodeEntry { code: 3, label: "energy 1 Wh" },
CodeEntry { code: 4, label: "energy 10 Wh" },
CodeEntry { code: 5, label: "energy 100 Wh" },
CodeEntry { code: 6, label: "energy 1000 Wh" },
CodeEntry { code: 7, label: "energy 10000 Wh" },
CodeEntry { code: 8, label: "energy 1 J" },
CodeEntry { code: 9, label: "energy 10 J" },
CodeEntry { code: 10, label: "energy 100 J" },
CodeEntry { code: 11, label: "energy 1000 J" },
CodeEntry { code: 12, label: "energy 10000 J" },
CodeEntry { code: 13, label: "energy 100000 J" },
CodeEntry { code: 14, label: "energy 1000000 J" },
CodeEntry { code: 15, label: "energy 10000000 J" },
CodeEntry { code: 16, label: "volume 0.000001 m3" },
CodeEntry { code: 17, label: "volume 0.00001 m3" },
CodeEntry { code: 18, label: "volume 0.0001 m3" },
CodeEntry { code: 19, label: "volume 0.001 m3" },
CodeEntry { code: 20, label: "volume 0.01 m3" },
CodeEntry { code: 21, label: "volume 0.1 m3" },
CodeEntry { code: 22, label: "volume 1 m3" },
CodeEntry { code: 23, label: "volume 10 m3" },
CodeEntry { code: 24, label: "mass 0.001 kg" },
CodeEntry { code: 25, label: "mass 0.01 kg" },
CodeEntry { code: 26, label: "mass 0.1 kg" },
CodeEntry { code: 27, label: "mass 1 kg" },
CodeEntry { code: 28, label: "mass 10 kg" },
CodeEntry { code: 29, label: "mass 100 kg" },
CodeEntry { code: 30, label: "mass 1000 kg" },
CodeEntry { code: 31, label: "mass 10000 kg" },
CodeEntry { code: 40, label: "power 0.001 W" },
CodeEntry { code: 41, label: "power 0.01 W" },
CodeEntry { code: 42, label: "power 0.1 W" },
CodeEntry { code: 43, label: "power 1 W" },
CodeEntry { code: 44, label: "power 10 W" },
CodeEntry { code: 45, label: "power 100 W" },
CodeEntry { code: 46, label: "power 1000 W" },
CodeEntry { code: 47, label: "power 10000 W" },
CodeEntry { code: 48, label: "power 1 J/h" },
CodeEntry { code: 49, label: "power 10 J/h" },
CodeEntry { code: 50, label: "power 100 J/h" },
CodeEntry { code: 51, label: "power 1000 J/h" },
CodeEntry { code: 52, label: "power 10000 J/h" },
CodeEntry { code: 53, label: "power 100000 J/h" },
CodeEntry { code: 54, label: "power 1000000 J/h" },
CodeEntry { code: 55, label: "power 10000000 J/h" },
CodeEntry { code: 56, label: "volume flow 0.000001 m3/h" },
CodeEntry { code: 57, label: "volume flow 0.00001 m3/h" },
CodeEntry { code: 58, label: "volume flow 0.0001 m3/h" },
CodeEntry { code: 59, label: "volume flow 0.001 m3/h" },
CodeEntry { code: 60, label: "volume flow 0.01 m3/h" },
CodeEntry { code: 61, label: "volume flow 0.1 m3/h" },
CodeEntry { code: 62, label: "volume flow 1 m3/h" },
CodeEntry { code: 63, label: "volume flow 10 m3/h" },
CodeEntry { code: 64, label: "volume flow 0.0000001 m3/min" },
CodeEntry { code: 65, label: "volume flow 0.000001 m3/min" },
CodeEntry { code: 66, label: "volume flow 0.00001 m3/min" },
CodeEntry { code: 67, label: "volume flow 0.0001 m3/min" },
CodeEntry { code: 68, label: "volume flow 0.001 m3/min" },
CodeEntry { code: 69, label: "volume flow 0.01 m3/min" },
CodeEntry { code: 70, label: "volume flow 0.1 m3/min" },
CodeEntry { code: 71, label: "volume flow 1 m3/min" },
CodeEntry { code: 72, label: "volume flow 0.000000001 m3/sec" },
CodeEntry { code: 73, label: "volume flow 0.00000001 m3/sec" },
CodeEntry { code: 74, label: "volume flow 0.0000001 m3/sec" },
CodeEntry { code: 75, label: "volume flow 0.000001 m3/sec" },
CodeEntry { code: 76, label: "volume flow 0.00001 m3/sec" },
CodeEntry { code: 77, label: "volume flow 0.0001 m3/sec" },
CodeEntry { code: 78, label: "volume flow 0.001 m3/sec" },
CodeEntry { code: 79, label: "volume flow 0.01 m3/sec" },
CodeEntry { code: 80, label: "mass flow 0.001 kg/h" },
CodeEntry { code: 81, label: "mass flow 0.01 kg/h" },
CodeEntry { code: 82, label: "mass flow 0.1 kg/h" },
CodeEntry { code: 83, label: "mass flow 1 kg/h" },
CodeEntry { code: 84, label: "mass flow 10 kg/h" },
CodeEntry { code: 85, label: "mass flow 100 kg/h" },
CodeEntry { code: 86, label: "mass flow 1000 kg/h" },
CodeEntry { code: 87, label: "mass flow 10000 kg/h" },
CodeEntry { code: 110, label: "units for HCA" },
CodeEntry { code: 128, label: "energy 100000 Wh" },
CodeEntry { code: 129, label: "energy 1000000 Wh" },
CodeEntry { code: 136, label: "energy 100000000 J" },
CodeEntry { code: 137, label: "energy 1000000000 J" },
CodeEntry { code: 168, label: "power 100000 W" },
CodeEntry { code: 169, label: "power 1000000 W" },
CodeEntry { code: 176, label: "power 100000000 J/h" },
CodeEntry { code: 177, label: "power 1000000000 J/h" },
CodeEntry { code: 186, label: "dimensionless counter" },
],
bands: &[
],
};
#[rustfmt::skip]
pub const CODES_236_001_D: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "activation of priority" },
CodeEntry { code: 1, label: "deactivation of priority" },
],
bands: &[
],
};
#[rustfmt::skip]
pub const CODES_239_001_CA: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "Inactive" },
CodeEntry { code: 1, label: "Active" },
],
bands: &[
],
};
#[rustfmt::skip]
pub const CODES_23_001: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "off" },
CodeEntry { code: 1, label: "on" },
CodeEntry { code: 2, label: "off/on" },
CodeEntry { code: 3, label: "on/off" },
],
bands: &[
],
};
#[rustfmt::skip]
pub const CODES_23_002: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "no alarm is used" },
CodeEntry { code: 1, label: "alarm position is UP" },
CodeEntry { code: 2, label: "alarm position is DOWN" },
],
bands: &[
CodeBand { start: 3, end: 3, label: "reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_23_003: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "Up" },
CodeEntry { code: 1, label: "Down" },
CodeEntry { code: 2, label: "UpDown" },
CodeEntry { code: 3, label: "DownUp" },
],
bands: &[
],
};
#[rustfmt::skip]
pub const CODES_23_102: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "Comfort/Economy" },
CodeEntry { code: 1, label: "Comfort/Nothing" },
CodeEntry { code: 2, label: "Economy/Nothing" },
CodeEntry { code: 3, label: "Building prot/Auto" },
],
bands: &[
],
};
#[rustfmt::skip]
pub const CODES_244_600_CF: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "Unknown" },
CodeEntry { code: 1, label: "No failure detected" },
CodeEntry { code: 2, label: "Failure detected" },
],
bands: &[
CodeBand { start: 3, end: 3, label: "Reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_244_600_CM: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "Unknown" },
CodeEntry { code: 1, label: "Normal mode active, all OK" },
CodeEntry { code: 2, label: "Inhibit mode active" },
CodeEntry { code: 3, label: "Hardwired inhibit mode active" },
CodeEntry { code: 4, label: "Rest mode active" },
CodeEntry { code: 5, label: "Emergency mode active" },
CodeEntry { code: 6, label: "Extended emergency mode active" },
CodeEntry { code: 7, label: "FT in progress" },
CodeEntry { code: 8, label: "DT in progress" },
CodeEntry { code: 9, label: "PDT in progress" },
],
bands: &[
CodeBand { start: 10, end: 15, label: "Reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_244_600_PENDING: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "Unknown" },
CodeEntry { code: 1, label: "No test pending" },
CodeEntry { code: 2, label: "Test pending" },
],
bands: &[
CodeBand { start: 3, end: 3, label: "Reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_245_600_LTR: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "Unknown" },
CodeEntry { code: 1, label: "Passed in time" },
CodeEntry { code: 2, label: "Passed max delay exceeded" },
CodeEntry { code: 3, label: "Failed, test executed in time" },
CodeEntry { code: 4, label: "Failed, max delay exceeded" },
CodeEntry { code: 5, label: "Test manually stopped" },
],
bands: &[
CodeBand { start: 6, end: 15, label: "Reserved, do not use", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_245_600_START: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "Unknown" },
CodeEntry { code: 1, label: "Started automatically" },
CodeEntry { code: 2, label: "Started by Gateway" },
],
bands: &[
CodeBand { start: 3, end: 3, label: "Reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_248_600_INFO: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "No converter, or nothing known about it" },
CodeEntry { code: 1, label: "Converter information is valid" },
CodeEntry { code: 2, label: "Converter information is invalid" },
],
bands: &[
CodeBand { start: 3, end: 255, label: "Reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_250_600_C: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "decrease" },
CodeEntry { code: 1, label: "increase" },
],
bands: &[
],
};
#[rustfmt::skip]
pub const CODES_252_600_C: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "decrease" },
CodeEntry { code: 1, label: "increase" },
],
bands: &[
],
};
#[rustfmt::skip]
pub const CODES_253_600_C: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "decrease" },
CodeEntry { code: 1, label: "increase" },
],
bands: &[
],
};
#[rustfmt::skip]
pub const CODES_254_600_C: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "decrease" },
CodeEntry { code: 1, label: "increase" },
],
bands: &[
],
};
#[rustfmt::skip]
pub const CODES_26_001_B: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "scene is active" },
CodeEntry { code: 1, label: "scene is inactive" },
],
bands: &[
],
};
#[rustfmt::skip]
pub const CODES_271_1200_DRY_CONTACT: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "No switching, contact position unchanged" },
CodeEntry { code: 1, label: "Tempo dry contact configuration sets dry contact and VC1; non-Tempo unchanged" },
CodeEntry { code: 2, label: "Open dry contact and keep open" },
CodeEntry { code: 3, label: "Close dry contact and keep closed" },
],
bands: &[
],
};
#[rustfmt::skip]
pub const CODES_272_600_INFO: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "No converter, or nothing known about it" },
CodeEntry { code: 1, label: "Converter information is valid" },
CodeEntry { code: 2, label: "Converter information is invalid" },
],
bands: &[
CodeBand { start: 3, end: 255, label: "Reserved", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_31_101: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "press Comfort / release Economy" },
CodeEntry { code: 1, label: "press Comfort / release no transmission" },
CodeEntry { code: 2, label: "press Economy / release no transmission" },
CodeEntry { code: 3, label: "press Building Protection / release Auto" },
CodeEntry { code: 4, label: "press Building Protection / release no transmission" },
CodeEntry { code: 5, label: "press Auto / release no transmission" },
CodeEntry { code: 6, label: "press Standby / release no transmission" },
CodeEntry { code: 7, label: "press Comfort / release Standby" },
],
bands: &[
],
};
#[rustfmt::skip]
pub const CODES_3_007_C: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "Decrease" },
CodeEntry { code: 1, label: "Increase" },
],
bands: &[
],
};
#[rustfmt::skip]
pub const CODES_3_007_STEP_CODE: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "Break" },
],
bands: &[
CodeBand { start: 1, end: 7, label: "Step", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_3_008_C: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "Up" },
CodeEntry { code: 1, label: "Down" },
],
bands: &[
],
};
#[rustfmt::skip]
pub const CODES_3_008_STEP_CODE: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "Break" },
],
bands: &[
CodeBand { start: 1, end: 7, label: "Step", disposition: None },
],
};
#[rustfmt::skip]
pub const CODES_6_020_MODE: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 1, label: "mode 0 is active" },
CodeEntry { code: 2, label: "mode 1 is active" },
CodeEntry { code: 4, label: "mode 2 is active" },
],
bands: &[
],
};
#[rustfmt::skip]
pub const CODES_Z8_FAULT_INFO: CodeTable = CodeTable {
entries: &[
CodeEntry { code: 0, label: "general fault" },
CodeEntry { code: 1, label: "sensor open circuit" },
CodeEntry { code: 2, label: "sensor short circuit" },
],
bands: &[
CodeBand { start: 3, end: 255, label: "reserved", disposition: None },
],
};