@di-zed/yandex-smart-home
Version:
The Yandex Smart Home skills for the different device types.
103 lines (102 loc) • 2 kB
TypeScript
/**
* @author DiZed Team
* @copyright Copyright (c) DiZed Team (https://github.com/di-zed/)
*/
/**
* MQTT Interface.
* https://www.home-assistant.io/integrations/mqtt/
*
* @interface
*/
export interface MqttInterface {
/**
* Subscribe to the Topic by default.
*/
subscribeTopic: string;
/**
* Topics.
*/
topics: MqttTopicInterface[];
}
/**
* MQTT Topic Interface.
*/
export interface MqttTopicInterface {
/**
* Device Type.
*/
deviceType: string;
/**
* Name of the State Topic.
*/
stateTopic: string;
/**
* Name of the Config Topic.
*/
configTopic: string;
/**
* Name of the Available Topic.
*/
availableTopic: 'online' | 'offline';
/**
* Command Topics.
*/
commandTopics: MqttCommandTopicInterface[];
}
/**
* MQTT Command Topic Interface.
*/
export interface MqttCommandTopicInterface {
/**
* Capability.
*/
capability?: MqttCommandTopicCapabilityInterface;
/**
* Property.
*/
property?: MqttCommandTopicPropertyInterface;
/**
* Name of the Command Topic.
*/
topic: string;
/**
* Name of key for the scope of values in the Config topic.
*/
topicConfigKey?: string;
/**
* Name of keys for the same value in the State topic.
*/
topicStateKeys?: string[];
/**
* Message Value Mapping [MQTT Message => Alice Value].
*/
messageValueMapping?: {
[key: string]: any;
};
}
/**
* MQTT Command Topic Capability Interface.
*/
export interface MqttCommandTopicCapabilityInterface {
/**
* Capability Type.
*/
type: string;
/**
* Capability State Instance.
*/
stateInstance: string;
}
/**
* MQTT Command Topic Property Interface.
*/
export interface MqttCommandTopicPropertyInterface {
/**
* Property Type.
*/
type: string;
/**
* Property State Instance.
*/
stateInstance: string;
}