UNPKG

iobroker.openmediavault

Version:
171 lines (170 loc) 7.97 kB
import type { myTreeData } from './myTypes.js'; type ReadValFunction<Type extends ioBroker.StateValue = ioBroker.StateValue, Device extends myTreeData = myTreeData, Adapter extends ioBroker.Adapter | ioBroker.myAdapter = ioBroker.Adapter | ioBroker.myAdapter> = (val: Type, adapter: Adapter, device: Device, channel: Device, id: string) => ioBroker.StateValue | Promise<ioBroker.StateValue>; export type WriteValFunction<Type extends ioBroker.StateValue = ioBroker.StateValue, Device extends myTreeData = myTreeData, Adapter extends ioBroker.Adapter | ioBroker.myAdapter = ioBroker.Adapter | ioBroker.myAdapter> = (val: Type, id: string, device: Device, adapter: Adapter) => any | Promise<any>; type ConditionToCreateStateFunction<Device extends myTreeData = myTreeData, Adapter extends ioBroker.Adapter | ioBroker.myAdapter = ioBroker.Adapter | ioBroker.myAdapter> = (objDevice: Device, objChannel: Device, adapter: Adapter) => boolean; export type myTreeDefinition<Type extends ioBroker.StateValue = ioBroker.StateValue, Device extends myTreeData = myTreeData, Adapter extends ioBroker.Adapter | ioBroker.myAdapter = ioBroker.Adapter | ioBroker.myAdapter> = myTreeState<Type, Device, Adapter> | myTreeObject<Type, Device, Adapter> | myTreeArray<Type, Device, Adapter>; export type unitDefinition<Device extends myTreeData = myTreeData, Adapter extends ioBroker.Adapter | ioBroker.myAdapter = ioBroker.Adapter | ioBroker.myAdapter> = string | ((objDevice: Device, objChannel: Device, adapter: Adapter) => string); export interface myTreeState<Type extends ioBroker.StateValue = ioBroker.StateValue, Device extends myTreeData = myTreeData, Adapter extends ioBroker.Adapter | ioBroker.myAdapter = ioBroker.Adapter | ioBroker.myAdapter> { id?: string; iobType: ioBroker.CommonType; name?: string; role?: string; read?: boolean; write?: boolean; unit?: unitDefinition<Device, Adapter>; min?: number; max?: number; step?: number; states?: Record<string, string> | string[] | string; expert?: true; icon?: string; def?: ioBroker.StateValue; desc?: string; readVal?: ReadValFunction<Type, Device, Adapter>; writeVal?: WriteValFunction<Type, Device, Adapter>; valFromProperty?: string; statesFromProperty?(objDevice: myTreeData, objChannel: myTreeData, adapter: ioBroker.Adapter | ioBroker.myAdapter): Record<string, string> | string[] | string; conditionToCreateState?: ConditionToCreateStateFunction<Device, Adapter>; subscribeMe?: true; required?: true; updateTs?: true; } export type nameDefinition<Device extends myTreeData = myTreeData, Adapter extends ioBroker.Adapter | ioBroker.myAdapter = ioBroker.Adapter | ioBroker.myAdapter> = string | ((objDevice: Device, objChannel: Device, adapter: Adapter) => string | ioBroker.Translated); export interface myTreeObject<Type extends ioBroker.StateValue = ioBroker.StateValue, Device extends myTreeData = myTreeData, Adapter extends ioBroker.Adapter | ioBroker.myAdapter = ioBroker.Adapter | ioBroker.myAdapter> { idChannel?: string; name?: nameDefinition<Device, Adapter>; icon?: string; object: { [key: string]: myTreeDefinition<Type, Device, Adapter>; }; conditionToCreateState?: ConditionToCreateStateFunction<Device, Adapter>; } export type arrayChannelIdFromPropertyFunction<Device extends myTreeData = myTreeData, Adapter extends ioBroker.Adapter | ioBroker.myAdapter = ioBroker.Adapter | ioBroker.myAdapter> = (objDevice: Device, objChannel: Device, i: number, adapter: Adapter) => string | undefined; export interface myTreeArray<Type extends ioBroker.StateValue = ioBroker.StateValue, Device extends myTreeData = myTreeData, Adapter extends ioBroker.Adapter | ioBroker.myAdapter = ioBroker.Adapter | ioBroker.myAdapter> { idChannel?: string; name?: string; icon?: string; arrayChannelIdPrefix?: string; arrayChannelIdZeroPad?: number; arrayChannelIdFromProperty?: arrayChannelIdFromPropertyFunction<Device, Adapter>; arrayChannelNamePrefix?: string; arrayChannelNameFromProperty?(objDevice: myTreeData, objChannel: myTreeData, i: number, adapter: ioBroker.Adapter | ioBroker.myAdapter): string | ioBroker.Translated; arrayStartNumber?: number; array: { [key: string]: myTreeDefinition<Type, Device, Adapter>; }; conditionToCreateState?: ConditionToCreateStateFunction<Device, Adapter>; } export declare class myIob { private adapter; private log; utils: typeof import("@iobroker/adapter-core"); private statesUsingValAsLastChanged; private subscribedStates; statesWithWriteFunction: { [key: string]: WriteValFunction; }; constructor(adapter: ioBroker.Adapter, utils: typeof import("@iobroker/adapter-core"), statesUsingValAsLastChanged?: string[]); /** * create or update a device object, update will only be done on adapter start * * @param id * @param name * @param onlineId * @param errorId * @param icon * @param updateObject * @param logChanges * @param native */ createOrUpdateDevice(id: string, name: string | ioBroker.Translated | undefined, onlineId?: string | undefined, errorId?: string | undefined, icon?: string | undefined, updateObject?: boolean, logChanges?: boolean, native?: Record<string, any>): Promise<void>; /** * create or update a channel object, update will only be done on adapter start * * @param id * @param name * @param icon * @param updateObject * @param native */ createOrUpdateChannel(id: string, name: string | ioBroker.Translated | undefined, icon?: string | undefined, updateObject?: boolean, native?: Record<string, any>): Promise<void>; createOrUpdateStates(idChannel: string, treeDefinition: { [key: string]: myTreeDefinition<any, any, ioBroker.myAdapter>; }, partialData: myTreeData, fullData: myTreeData, blacklistFilter?: { id: string; }[] | undefined, isWhiteList?: boolean, logDeviceName?: string, updateObject?: boolean): Promise<boolean>; private _createOrUpdateStates; private getCommonForState; private assignPredefinedRoles; /** * check if state exists before setting value * * @param id * @param val * @param adapter * @param onlyChanges */ setStateExists(id: string, val: any, adapter: ioBroker.Adapter, onlyChanges?: boolean): Promise<void>; /** * Id without last part * * @param id * @returns */ getIdWithoutLastPart(id: string): string; /** * last part of id * * @param id * @returns */ getIdLastPart(id: string): string; /** * Compare common properties of device * * @param objCommon * @param myCommon * @returns */ private isDeviceCommonEqual; /** * Compare common properties of channel * * @param objCommon * @param myCommon * @returns */ private isChannelCommonEqual; /** * Compare common properties of state * * @param objCommon * @param myCommon * @returns */ private isStateCommonEqual; /** * Compare two objects and return properties that are diffrent * * @param object * @param base * @param adapter * @param allowedKeys * @param prefix * @returns */ deepDiffBetweenObjects: (object: any, base: any, adapter: ioBroker.Adapter, allowedKeys?: any, prefix?: string) => any; findMissingTranslation(): void; _findMissingTranslation(obj: any, logSuffix?: string | undefined): void; /** * generate a list with all defined names, that can be used for translation * * @param tree * @param adapter * @param i18n */ private tree2Translation; private getTreeNameOrKey; hasKey<T extends object>(obj: T, key: PropertyKey | undefined): key is keyof T; } export {};