Add loadOptions for Home Assistant

This commit is contained in:
pemontto
2021-10-17 17:48:24 +01:00
parent 0243fc68d9
commit 095ce93cf7
5 changed files with 96 additions and 7 deletions

View File

@@ -4,7 +4,9 @@ import {
import {
IDataObject,
ILoadOptionsFunctions,
INodeExecutionData,
INodePropertyOptions,
INodeType,
INodeTypeDescription,
} from 'n8n-workflow';
@@ -49,6 +51,8 @@ import {
} from './CameraProxyDescription';
import {
getHomeAssistantEntities,
getHomeAssistantServices,
homeAssistantApiRequest,
} from './GenericFunctions';
@@ -133,6 +137,28 @@ export class HomeAssistant implements INodeType {
],
};
methods = {
loadOptions: {
async getAllEntities(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {
return await getHomeAssistantEntities.call(this);
},
async getCameraEntities(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {
return await getHomeAssistantEntities.call(this, 'camera');
},
async getDomains(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {
return await getHomeAssistantServices.call(this);
},
async getDomainServices(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {
const currentDomain = this.getCurrentNodeParameter('domain') as string;
if (currentDomain) {
return await getHomeAssistantServices.call(this, currentDomain);
} else {
return [];
}
},
},
};
async execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]> {
const items = this.getInputData();
const returnData: IDataObject[] = [];