Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
183 changes: 47 additions & 136 deletions components/genvexv2/optima250.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -191,146 +191,15 @@ text_sensor:

- platform: modbus_controller
modbus_controller_id: genvex_modbus_controller
name: "Genvex Alarm"
id: genvex_alarm
name: "Genvex Alarm Bitfield"
id: genvex_alarm_bitfield
# device_class: None
register_type: read
address: 101
lambda: !lambda |-
lambda: |-
uint16_t int_mode = (data[item->offset] << 8) + data[item->offset+1];
ESP_LOGD("main","Parsed operation mode int : %d", int_mode);
std::string mode_str;
switch (int_mode) {
case 0: mode_str = "Off"; break;
case 1: mode_str = "External Stop"; break;
case 2: mode_str = "Main Filter"; break;
case 3: mode_str = "External Stop & Main Filter"; break;
case 4: mode_str = "High Pressure"; break;
case 5: mode_str = "High Pressure & External Stop"; break;
case 6: mode_str = "High Pressure & Main Filter"; break;
case 7: mode_str = "High Pressure & External Stop & Main Filter"; break;
case 8: mode_str = "Frost"; break;
case 9: mode_str = "Frost & External Stop"; break;
case 10: mode_str = "Frost & Main Filter"; break;
case 11: mode_str = "Frost & External Stop & Main Filter"; break;
case 12: mode_str = "Frost & High Pressure"; break;
case 13: mode_str = "Frost & High Pressure & External Stop"; break;
case 14: mode_str = "Frost & High Pressure & Main Filter"; break;
case 15: mode_str = "Frost & High Pressure & Main Filter & External Stop"; break;
case 16: mode_str = "CommError Panel->Controller"; break;
case 17: mode_str = "CommError Panel->Controller & External Stop"; break;
case 18: mode_str = "CommError Panel->Controller & Main Filter"; break;
case 19: mode_str = "CommError Panel->Controller & External Stop & Main Filter"; break;
case 20: mode_str = "CommError Panel->Controller & High Pressure"; break;
case 21: mode_str = "CommError Panel->Controller & High Pressure & External Stop"; break;
case 22: mode_str = "CommError Panel->Controller & High Pressure & Main Filter"; break;
case 23: mode_str = "CommError Panel->Controller & High Pressure & External Stop & Main Filter"; break;
case 24: mode_str = "CommError Panel->Controller & Frost"; break;
case 25: mode_str = "CommError Panel->Controller & Frost & External Stop"; break;
case 26: mode_str = "CommError Panel->Controller & Frost & Main Filter"; break;
case 27: mode_str = "CommError Panel->Controller & Frost & External Stop & Main Filter"; break;
case 28: mode_str = "CommError Panel->Controller & Frost & High Pressure"; break;
case 29: mode_str = "CommError Panel->Controller & Frost & High Pressure & External Stop"; break;
case 30: mode_str = "CommError Panel->Controller & Frost & High Pressure & Main Filter"; break;
case 31: mode_str = "CommError Panel->Controller & Frost & High Pressure & External Stop & Main Filter"; break;
case 32: mode_str = "External Filter"; break;
case 33: mode_str = "External Filter & External Stop"; break;
case 34: mode_str = "External Filter & Main Filter"; break;
case 35: mode_str = "External Filter & External Stop & Main Filter"; break;
case 36: mode_str = "External Filter & High Pressure"; break;
case 37: mode_str = "External Filter & High Pressure & External Stop"; break;
case 38: mode_str = "External Filter & High Pressure & Main Filter"; break;
case 39: mode_str = "External Filter & High Pressure & External Stop & Main Filter"; break;
case 40: mode_str = "External Filter & Frost"; break;
case 41: mode_str = "External Filter & Frost & External Stop"; break;
case 42: mode_str = "External Filter & Frost & Main Filter"; break;
case 43: mode_str = "External Filter & Frost & External Stop & Main Filter"; break;
case 44: mode_str = "External Filter & Frost & High Pressure"; break;
case 45: mode_str = "External Filter & Frost & High Pressure & External Stop"; break;
case 46: mode_str = "External Filter & Frost & High Pressure & Main Filter"; break;
case 47: mode_str = "External Filter & Frost & High Pressure & External Stop & Main Filter"; break;
case 48: mode_str = "External Filter & CommError Panel->Controller"; break;
case 49: mode_str = "External Filter & CommError Panel->Controller & External Stop"; break;
case 50: mode_str = "External Filter & CommError Panel->Controller & Main Filter"; break;
case 51: mode_str = "External Filter & CommError Panel->Controller & External Stop & Main Filter"; break;
case 52: mode_str = "External Filter & CommError Panel->Controller & High Pressure"; break;
case 53: mode_str = "External Filter & CommError Panel->Controller & High Pressure & External Stop"; break;
case 54: mode_str = "External Filter & CommError Panel->Controller & High Pressure & Main Filter"; break;
case 55: mode_str = "External Filter & CommError Panel->Controller & High Pressure & External Stop & Main Filter"; break;
case 56: mode_str = "External Filter & CommError Panel->Controller & Frost"; break;
case 57: mode_str = "External Filter & CommError Panel->Controller & Frost & External Stop"; break;
case 58: mode_str = "External Filter & CommError Panel->Controller & Frost & Main Filter"; break;
case 59: mode_str = "External Filter & CommError Panel->Controller & Frost & External Stop & Main Filter"; break;
case 60: mode_str = "External Filter & CommError Panel->Controller & Frost & High Pressure"; break;
case 61: mode_str = "External Filter & CommError Panel->Controller & Frost & High Pressure & External Stop"; break;
case 62: mode_str = "External Filter & CommError Panel->Controller & Frost & High Pressure & Main Filter"; break;
case 63: mode_str = "External Filter & CommError Panel->Controller & Frost & High Pressure & External Stop & Main Filter"; break;
case 64: mode_str = "Fan Speed"; break;
case 65: mode_str = "Fan Speed & External Stop"; break;
case 66: mode_str = "Fan Speed & Main Filter"; break;
case 67: mode_str = "Fan Speed & External Stop & Main Filter"; break;
case 68: mode_str = "Fan Speed & High Pressure"; break;
case 69: mode_str = "Fan Speed & High Pressure & External Stop"; break;
case 70: mode_str = "Fan Speed & High Pressure & Main Filter"; break;
case 71: mode_str = "Fan Speed & High Pressure & External Stop & Main Filter"; break;
case 72: mode_str = "Fan Speed & Frost"; break;
case 73: mode_str = "Fan Speed & Frost & External Stop"; break;
case 74: mode_str = "Fan Speed & Frost & Main Filter"; break;
case 75: mode_str = "Fan Speed & Frost & External Stop & Main Filter"; break;
case 76: mode_str = "Fan Speed & Frost & High Pressure"; break;
case 77: mode_str = "Fan Speed & Frost & High Pressure & External Stop"; break;
case 78: mode_str = "Fan Speed & Frost & High Pressure & Main Filter"; break;
case 79: mode_str = "Fan Speed & Frost & High Pressure & External Stop & Main Filter"; break;
case 80: mode_str = "Fan Speed & CommError Panel->Controller"; break;
case 81: mode_str = "Fan Speed & CommError Panel->Controller & External Stop"; break;
case 82: mode_str = "Fan Speed & CommError Panel->Controller & Main Filter"; break;
case 83: mode_str = "Fan Speed & CommError Panel->Controller & External Stop & Main Filter"; break;
case 84: mode_str = "Fan Speed & CommError Panel->Controller & High Pressure"; break;
case 85: mode_str = "Fan Speed & CommError Panel->Controller & High Pressure & External Stop"; break;
case 86: mode_str = "Fan Speed & CommError Panel->Controller & High Pressure & Main Filter"; break;
case 87: mode_str = "Fan Speed & CommError Panel->Controller & High Pressure & External Stop & Main Filter"; break;
case 88: mode_str = "Fan Speed & CommError Panel->Controller & Frost"; break;
case 89: mode_str = "Fan Speed & CommError Panel->Controller & Frost & External Stop"; break;
case 90: mode_str = "Fan Speed & CommError Panel->Controller & Frost & Main Filter"; break;
case 91: mode_str = "Fan Speed & CommError Panel->Controller & Frost & External Stop & Main Filter"; break;
case 92: mode_str = "Fan Speed & CommError Panel->Controller & Frost & High Pressure"; break;
case 93: mode_str = "Fan Speed & CommError Panel->Controller & Frost & High Pressure & External Stop"; break;
case 94: mode_str = "Fan Speed & CommError Panel->Controller & Frost & High Pressure & Main Filter"; break;
case 95: mode_str = "Fan Speed & CommError Panel->Controller & Frost & High Pressure & External Stop & Main Filter"; break;
case 96: mode_str = "Fan Speed & External Filter"; break;
case 97: mode_str = "Fan Speed & External Filter & External Stop"; break;
case 98: mode_str = "Fan Speed & External Filter & Main Filter"; break;
case 99: mode_str = "Fan Speed & External Filter & External Stop & Main Filter"; break;
case 100: mode_str = "Fan Speed & External Filter & High Pressure"; break;
case 101: mode_str = "Fan Speed & External Filter & High Pressure & External Stop"; break;
case 102: mode_str = "Fan Speed & External Filter & High Pressure & Main Filter"; break;
case 103: mode_str = "Fan Speed & External Filter & High Pressure & External Stop & Main Filter"; break;
case 104: mode_str = "Fan Speed & External Filter & Frost"; break;
case 105: mode_str = "Fan Speed & External Filter & Frost & External Stop"; break;
case 106: mode_str = "Fan Speed & External Filter & Frost & Main Filter"; break;
case 107: mode_str = "Fan Speed & External Filter & Frost & External Stop & Main Filter"; break;
case 108: mode_str = "Fan Speed & External Filter & Frost & High Pressure"; break;
case 109: mode_str = "Fan Speed & External Filter & Frost & High Pressure & External Stop"; break;
case 110: mode_str = "Fan Speed & External Filter & Frost & High Pressure & Main Filter"; break;
case 111: mode_str = "Fan Speed & External Filter & Frost & High Pressure & External Stop & Main Filter"; break;
case 112: mode_str = "Fan Speed & External Filter & CommError Panel->Controller"; break;
case 113: mode_str = "Fan Speed & External Filter & CommError Panel->Controller & External Stop"; break;
case 114: mode_str = "Fan Speed & External Filter & CommError Panel->Controller & Main Filter"; break;
case 115: mode_str = "Fan Speed & External Filter & CommError Panel->Controller & External Stop & Main Filter"; break;
case 116: mode_str = "Fan Speed & External Filter & CommError Panel->Controller & High Pressure"; break;
case 117: mode_str = "Fan Speed & External Filter & CommError Panel->Controller & High Pressure & External Stop"; break;
case 118: mode_str = "Fan Speed & External Filter & CommError Panel->Controller & High Pressure & Main Filter"; break;
case 119: mode_str = "Fan Speed & External Filter & CommError Panel->Controller & High Pressure & External Stop & Main Filter"; break;
case 120: mode_str = "Fan Speed & External Filter & CommError Panel->Controller & Frost"; break;
case 121: mode_str = "Fan Speed & External Filter & CommError Panel->Controller & Frost & External Stop"; break;
case 122: mode_str = "Fan Speed & External Filter & CommError Panel->Controller & Frost & Main Filter"; break;
case 123: mode_str = "Fan Speed & External Filter & CommError Panel->Controller & Frost & External Stop & Main Filter"; break;
case 124: mode_str = "Fan Speed & External Filter & CommError Panel->Controller & Frost & High Pressure"; break;
case 125: mode_str = "Fan Speed & External Filter & CommError Panel->Controller & Frost & High Pressure & External Stop"; break;
case 126: mode_str = "Fan Speed & External Filter & CommError Panel->Controller & Frost & High Pressure & Main Filter"; break;
case 127: mode_str = "Fan Speed & External Filter & CommError Panel->Controller & Frost & High Pressure & External Stop & Main Filter"; break;
default: mode_str = "Unknown"; break;
}
return mode_str;
return std::to_string(int_mode);

number:
- platform: modbus_controller
Expand Down Expand Up @@ -371,6 +240,48 @@ binary_sensor:
register_type: holding
address: 1

- platform: template
name: "Water Freeze Error"
lambda: |-
uint16_t alarmcode = strtoul(id(genvex_alarm_bitfield).state.c_str(), nullptr, 10);
bool bActive = alarmcode & 0x0010;
return bActive;

- platform: template
name: "Hygrostat"
lambda: |-
uint16_t alarmcode = strtoul(id(genvex_alarm_bitfield).state.c_str(), nullptr, 10);
bool bActive = alarmcode & 0x0040;
return bActive;

- platform: template
name: "Reset Filter"
lambda: |-
uint16_t alarmcode = strtoul(id(genvex_alarm_bitfield).state.c_str(), nullptr, 10);
bool bActive = alarmcode & 0x0080;
return bActive;

- platform: template
name: "Operation"
lambda: |-
uint16_t alarmcode = strtoul(id(genvex_alarm_bitfield).state.c_str(), nullptr, 10);
bool bActive = alarmcode & 0x1000;
return bActive;

- platform: template
name: "Electric post-heating"
lambda: |-
uint16_t alarmcode = strtoul(id(genvex_alarm_bitfield).state.c_str(), nullptr, 10);
bool bActive = alarmcode & 0x2000;
return bActive;

- platform: template
name: "Extra cooling"
lambda: |-
uint16_t alarmcode = strtoul(id(genvex_alarm_bitfield).state.c_str(), nullptr, 10);
bool bActive = alarmcode & 0x4000;
return bActive;

- platform: status
name: "Genvex Controller Status"

Expand Down