node-red-contrib-mysensors
Version:
Mysensors related nodes, for decoding / encoding mysensors serial protocol and MQTT topic, and wrapping arbitrary messages into mysensors compatible messages
92 lines (80 loc) • 2.19 kB
text/typescript
/* istanbul ignore next */
import { Node, NodeDef } from 'node-red';
import { IStorage } from '../lib/storage-interface';
import { IDecoder } from '../lib/decoder/decoder-interface';
import { MysensorsController } from '../lib/mysensors-controller';
import { MysensorsDebugDecode } from '../lib/mysensors-debug';
import { IMysensorsMsg } from '../lib/mysensors-msg';
import { mysensor_sensor } from '../lib/mysensors-types';
/* Encode */
export interface IEncodeProperties extends NodeDef {
mqtt: boolean
mqtttopic: string
}
/* Decode */
export interface IDecodeProperties extends NodeDef {
mqtt: boolean
enrich: boolean
database?: string
}
export interface IDecodeEncodeConf extends Node {
decoder: IDecoder
database?: IDbConfigNode
enrich: boolean
}
/* DB */
export interface IDbConfigNode extends Node {
database: IStorage
contextType: 'flow' | 'global'
contextKey: {
store?: string;
key: string;
}
}
export interface IDBProperties extends NodeDef {
store: string,
contextType: 'flow' | 'global',
}
/* Controller */
export interface IControllerProperties extends NodeDef {
database?: string
handleid?: boolean
timeresponse?: boolean
timezone?: string
measurementsystem?: string
mqttroot?: string
addSerialNewline?: boolean
}
export interface IControllerConfig extends Node {
controller: MysensorsController
database: IDbConfigNode
handleid: boolean
}
/* Encapsulate */
export interface IEncapsulateConfig extends Node {
sensor: IMysensorsMsg
presentation: boolean
presentationtext: string
presentationtype: mysensor_sensor
fullpresentation: boolean
internal: number
firmwarename: string
firmwareversion: string
}
export interface IEncapsulateProperties extends NodeDef {
nodeid: number
childid: number
subtype: number
internal: number
ack: boolean
msgtype: number
presentation: boolean
presentationtype: number
presentationtext: string
fullpresentation: boolean
firmwarename: string
firmwareversion: string
}
export interface IDebugConfig extends Node {
mysDbg: MysensorsDebugDecode
}