Skip to content

Commit

Permalink
Refactor ANALOG_INPUT_SENSOR_TYPES into an array
Browse files Browse the repository at this point in the history
  • Loading branch information
Jalle19 committed Aug 16, 2024
1 parent 1ae5c8c commit 7515c44
Showing 1 changed file with 33 additions and 21 deletions.
54 changes: 33 additions & 21 deletions app/enervent.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -65,22 +65,34 @@ export const SENSOR_TYPE_CO2 = 'CO2'
export const SENSOR_TYPE_RH = 'RH'
export const SENSOR_TYPE_ROOM_TEMP = 'ROOM_TEMP'

// 0=NA, 1=CO2_1, 2=CO2_2, 3=CO2_3, 4=RH_1, 5=RH_2, 6=RH_3, 7=OUT_TERM, 8=ROOM_TERM_1,
// 9=ROOM_TERM_2, 10=ROOM_TERM_3, 11=TEMP_SP, 12=Time relay, 13=External heating disable, 14=External cooling disable,
// 15=PDE10, 16=PDE30
export const ANALOG_INPUT_SENSOR_TYPES = {
export const ANALOG_INPUT_SENSOR_TYPES = [
// Skip sensor types we can't handle
0: { type: SENSOR_TYPE_NONE },
1: { type: SENSOR_TYPE_CO2, name: 'analogInputCo21', description: 'CO2 #1' },
2: { type: SENSOR_TYPE_CO2, name: 'analogInputCo22', description: 'CO2 #1' },
3: { type: SENSOR_TYPE_CO2, name: 'analogInputCo23', description: 'CO2 #1' },
4: { type: SENSOR_TYPE_RH, name: 'analogInputHumidity1', description: 'RH #1' },
5: { type: SENSOR_TYPE_RH, name: 'analogInputHumidity2', description: 'RH #1' },
6: { type: SENSOR_TYPE_RH, name: 'analogInputHumidity3', description: 'RH #1' },
8: { type: SENSOR_TYPE_ROOM_TEMP, name: 'analogInputRoomTemperature1', description: 'Room temperature #1' },
9: { type: SENSOR_TYPE_ROOM_TEMP, name: 'analogInputRoomTemperature2', description: 'Room temperature #1' },
10: { type: SENSOR_TYPE_ROOM_TEMP, name: 'analogInputRoomTemperature3', description: 'Room temperature #1' },
}
{ type: 0, sensorType: SENSOR_TYPE_NONE },
{ type: 1, sensorType: SENSOR_TYPE_CO2, name: 'analogInputCo21', description: 'CO2 #1' },
{ type: 2, sensorType: SENSOR_TYPE_CO2, name: 'analogInputCo22', description: 'CO2 #1' },
{ type: 3, sensorType: SENSOR_TYPE_CO2, name: 'analogInputCo23', description: 'CO2 #1' },
{ type: 4, sensorType: SENSOR_TYPE_RH, name: 'analogInputHumidity1', description: 'RH #1' },
{ type: 5, sensorType: SENSOR_TYPE_RH, name: 'analogInputHumidity2', description: 'RH #1' },
{ type: 6, sensorType: SENSOR_TYPE_RH, name: 'analogInputHumidity3', description: 'RH #1' },
{
type: 8,
sensorType: SENSOR_TYPE_ROOM_TEMP,
name: 'analogInputRoomTemperature1',
description: 'Room temperature #1',
},
{
type: 9,
sensorType: SENSOR_TYPE_ROOM_TEMP,
name: 'analogInputRoomTemperature2',
description: 'Room temperature #1',
},
{
type: 10,
sensorType: SENSOR_TYPE_ROOM_TEMP,
name: 'analogInputRoomTemperature3',
description: 'Room temperature #1',
},
]

export const AUTOMATION_TYPE_LEGACY_EDA = 'LEGACY_EDA'
export const AUTOMATION_TYPE_EDA = 'EDA'
Expand Down Expand Up @@ -196,9 +208,9 @@ export const parseStateBitField = (state) => {

export const hasRoomTemperatureSensor = (sensorTypesResult) => {
for (let i = 0; i < 6; i++) {
const sensorType = ANALOG_INPUT_SENSOR_TYPES[sensorTypesResult.data[i]]
const sensor = ANALOG_INPUT_SENSOR_TYPES.find((sensor) => sensor.type === sensorTypesResult.data[i])

if (sensorType.type === SENSOR_TYPE_ROOM_TEMP) {
if (sensor?.sensorType === SENSOR_TYPE_ROOM_TEMP) {
return true
}
}
Expand All @@ -210,17 +222,17 @@ export const parseAnalogSensors = (sensorTypesResult, sensorValuesResult) => {
const sensorReadings = {}

for (let i = 0; i < 6; i++) {
const sensorType = ANALOG_INPUT_SENSOR_TYPES[sensorTypesResult.data[i]]
const sensor = ANALOG_INPUT_SENSOR_TYPES.find((sensor) => sensor.type === sensorTypesResult.data[i])

switch (sensorType.type) {
switch (sensor?.sensorType) {
// Use raw value
case SENSOR_TYPE_CO2:
case SENSOR_TYPE_RH:
sensorReadings[sensorType.name] = sensorValuesResult.data[i]
sensorReadings[sensor.name] = sensorValuesResult.data[i]
break
// Parse as temperature
case SENSOR_TYPE_ROOM_TEMP:
sensorReadings[sensorType.name] = parseTemperature(sensorValuesResult.data[i])
sensorReadings[sensor.name] = parseTemperature(sensorValuesResult.data[i])
break
}
}
Expand Down

0 comments on commit 7515c44

Please sign in to comment.