move device types to types.ts

This commit is contained in:
proddy
2023-05-07 09:47:13 +02:00
parent 348ffcd077
commit 3c003657b9
3 changed files with 47 additions and 41 deletions

View File

@@ -38,7 +38,7 @@ import DeviceIcon from './DeviceIcon';
import * as EMSESP from './api'; import * as EMSESP from './api';
import { formatValue } from './deviceValue'; import { formatValue } from './deviceValue';
import { DeviceValueUOM_s, DeviceEntityMask } from './types'; import { DeviceValueUOM_s, DeviceEntityMask, DeviceType } from './types';
import { deviceValueItemValidation } from './validators'; import { deviceValueItemValidation } from './validators';
import type { Device, CoreData, DeviceData, DeviceValue } from './types'; import type { Device, CoreData, DeviceData, DeviceValue } from './types';
import type { FC } from 'react'; import type { FC } from 'react';
@@ -315,32 +315,37 @@ const DashboardDevices: FC = () => {
const renderDeviceDetails = () => { const renderDeviceDetails = () => {
if (coreData && coreData.devices.length > 0 && deviceDetails !== -1) { if (coreData && coreData.devices.length > 0 && deviceDetails !== -1) {
const device = coreData.devices[deviceDetails];
return ( return (
<Dialog open={deviceDetails !== -1} onClose={() => setDeviceDetails(-1)}> <Dialog open={deviceDetails !== -1} onClose={() => setDeviceDetails(-1)}>
<DialogTitle>{LL.DEVICE_DETAILS()}</DialogTitle> <DialogTitle>{LL.DEVICE_DETAILS()}</DialogTitle>
<DialogContent dividers> <DialogContent dividers>
<List dense={true}> <List dense={true}>
<ListItem> <ListItem>
<ListItemText primary={LL.TYPE(0)} secondary={coreData.devices[deviceDetails].tn} /> <ListItemText primary={LL.TYPE(0)} secondary={device.tn} />
</ListItem> </ListItem>
<ListItem> <ListItem>
<ListItemText primary={LL.NAME(0)} secondary={coreData.devices[deviceDetails].n} /> <ListItemText primary={LL.NAME(0)} secondary={device.n} />
</ListItem> </ListItem>
{device.t !== DeviceType.CUSTOM && (
<>
<ListItem> <ListItem>
<ListItemText primary={LL.BRAND()} secondary={coreData.devices[deviceDetails].b} /> <ListItemText primary={LL.BRAND()} secondary={device.b} />
</ListItem> </ListItem>
<ListItem> <ListItem>
<ListItemText <ListItemText
primary={LL.ID_OF(LL.DEVICE())} primary={LL.ID_OF(LL.DEVICE())}
secondary={'0x' + ('00' + coreData.devices[deviceDetails].d.toString(16).toUpperCase()).slice(-2)} secondary={'0x' + ('00' + device.d.toString(16).toUpperCase()).slice(-2)}
/> />
</ListItem> </ListItem>
<ListItem> <ListItem>
<ListItemText primary={LL.ID_OF(LL.PRODUCT())} secondary={coreData.devices[deviceDetails].p} /> <ListItemText primary={LL.ID_OF(LL.PRODUCT())} secondary={device.p} />
</ListItem> </ListItem>
<ListItem> <ListItem>
<ListItemText primary={LL.VERSION()} secondary={coreData.devices[deviceDetails].v} /> <ListItemText primary={LL.VERSION()} secondary={device.v} />
</ListItem> </ListItem>
</>
)}
</List> </List>
</DialogContent> </DialogContent>
<DialogActions> <DialogActions>

View File

@@ -6,35 +6,13 @@ import { GiHeatHaze } from 'react-icons/gi';
import { MdThermostatAuto, MdOutlineSensors, MdOutlineExtension } from 'react-icons/md'; import { MdThermostatAuto, MdOutlineSensors, MdOutlineExtension } from 'react-icons/md';
import { TiFlowSwitch } from 'react-icons/ti'; import { TiFlowSwitch } from 'react-icons/ti';
import { VscVmConnect } from 'react-icons/vsc'; import { VscVmConnect } from 'react-icons/vsc';
import { DeviceType } from './types';
import type { FC } from 'react'; import type { FC } from 'react';
interface DeviceIconProps { interface DeviceIconProps {
type_id: number; type_id: number;
} }
// matches emsdevice.h DeviceType
const enum DeviceType {
SYSTEM = 0,
TEMPERATURESENSOR,
ANALOGSENSOR,
SCHEDULER,
BOILER,
THERMOSTAT,
MIXER,
SOLAR,
HEATPUMP,
GATEWAY,
SWITCH,
CONTROLLER,
CONNECT,
ALERT,
PUMP,
GENERIC,
HEATSOURCE,
CUSTOM,
UNKNOWN
}
const DeviceIcon: FC<DeviceIconProps> = ({ type_id }) => { const DeviceIcon: FC<DeviceIconProps> = ({ type_id }) => {
switch (type_id) { switch (type_id) {
case DeviceType.TEMPERATURESENSOR: case DeviceType.TEMPERATURESENSOR:

View File

@@ -367,3 +367,26 @@ export interface EntityItem {
export interface Entities { export interface Entities {
entities: EntityItem[]; entities: EntityItem[];
} }
// matches emsdevice.h DeviceType
export const enum DeviceType {
SYSTEM = 0,
TEMPERATURESENSOR,
ANALOGSENSOR,
SCHEDULER,
BOILER,
THERMOSTAT,
MIXER,
SOLAR,
HEATPUMP,
GATEWAY,
SWITCH,
CONTROLLER,
CONNECT,
ALERT,
PUMP,
GENERIC,
HEATSOURCE,
CUSTOM,
UNKNOWN
}