UNPKG

node-red-contrib-sun-position

Version:
557 lines 11.5 kB
declare function _exports(RED: runtimeRED): void; export = _exports; /** * --- Type Defs --- */ export type runtimeRED = import('./types/typedefs.js').runtimeRED; /** * --- Type Defs --- */ export type runtimeNode = import('./types/typedefs.js').runtimeNode; /** * --- Type Defs --- */ export type runtimeNodeConfig = import('./types/typedefs.js').runtimeNodeConfig; /** * --- Type Defs --- */ export type ITimeObject = import("./lib/dateTimeHelper").ITimeObject; /** * --- Type Defs --- */ export type ILimitationsObj = import("./lib/dateTimeHelper").ILimitationsObj; /** * --- Type Defs --- */ export type ISunTimeDef = any; /** * --- Type Defs --- */ export type ISunTimeSingle = any; /** * --- Type Defs --- */ export type ISunTimeList = any; /** * --- Type Defs --- */ export type ISunPosition = any; /** * --- Type Defs --- */ export type IMoonPosition = any; /** * --- Type Defs --- */ export type IMoonIllumination = any; /** * --- Type Defs --- */ export type IMoonData = any; /** * --- Type Defs --- */ export type IMoonTimes = any; /** * Extensions for the nodeInstance object type */ export type IPositionConfigNode = { valid: boolean; latitude: number; longitude: number; angleType: ('deg' | 'rad'); tzOffset: number; tzDST: number; contextStore: string; cache: object; /** * register a node as child */ register: FktRegister; /** * remove a previous registered node as child */ deregister: FktDeregister; /** * checks the node configuration */ checkNode: FktCheckNode; /** * Formate a Date Object to a Date and Time String */ toDateTimeString: FktFormatDate; /** * Formate a Date Object to a Time String */ toTimeString: FktFormatDate; /** * Formate a Date Object to a Date String */ toDateString: FktFormatDate; /** * get list of custom angles */ getCustomAngles: FktGetCustomAngles; /** * get list of all suntimes including custom ones */ getSunTimesList: FktGetSunTimesList; /** * get a float value from a type input in Node-Red */ getFloatProp: FktGetFloatProp; /** * get an formated date prepared for output */ formatOutDate: FktFormatOutDate; /** * get the time Data prepared for output */ getOutDataProp: FktGetOutDataProp; /** * Creates a out object, based on input data */ setMessageProp: FktSetMessageProp; /** * get the time Data from a typed input */ getTimeProp: FktGetTimeProp; /** * get a prepared JSONATA Expression */ getJSONataExpression: FktGetJSONataExpression; /** * get a property value from a type input in Node-Red */ getPropValue: FktGetPropValue; /** * compared two property's */ comparePropValue: FktComparePropValue; getSunCalc: FktGetSunCalc; /** * ... obviously there are more ... */ getMoonCalc: FktGetMoonCalc; }; /** * This callback is displayed as a global member. */ export type IValuePropertyTypeCallback = (result: any, data: IValuePropertyType) => any; export type ITypedValue = { /** * - type of the value */ type: string; /** * - value */ value: any; }; export type IValuePropertyType = { /** * - type of the value */ type: string; /** * - value */ value: any; /** * - optional prepared Jsonata expression */ expr?: any; /** * - function which should be called after value was recived */ callback?: IValuePropertyTypeCallback; /** * - true if no error shoudl be given in GUI */ noError?: boolean; /** * base Date to use for Date time functions */ now?: Date; }; export type INodeCacheSunData = { times: any; dayId: number; sunPosAtSolarNoon?: any; }; export type INodeCacheMoonData = { times: any; dayId: number; positionAtRise: any; positionAtSet: any; }; export type INodeCacheData = { /** * - last mooncalc */ lastSunCalc: ISunDataResult | { ts: number; }; /** * - last mooncalc */ lastMoonCalc: any; /** * - last mooncalc */ sunTimesToday: INodeCacheSunData; /** * - last mooncalc */ sunTimesTomorrow: INodeCacheSunData; /** * - last mooncalc */ sunTimesAdd1: INodeCacheSunData; /** * - last mooncalc */ sunTimesAdd2: INodeCacheSunData; /** * - last mooncalc */ moonTimesToday: INodeCacheMoonData; /** * - last mooncalc */ moonTimesTomorrow: INodeCacheMoonData; /** * - last mooncalc */ moonTimes2Days: INodeCacheMoonData; }; export type ISunDataResult = { /** * - the date of the calculated sun data as timestamp */ ts: number; /** * - the date of the calculated sun data */ lastUpdate: Date; /** * - date as string */ lastUpdateStr: string; /** * - latitude */ latitude: number; /** * - longitude */ longitude: number; /** * -observer height */ height: number; angleType: ('deg' | 'rad'); azimuth: number; altitude: number; altitudeDegrees: number; azimuthDegrees: number; altitudeRadians: number; azimuthRadians: number; times: any; positionAtSolarNoon?: any; altitudePercent?: number; }; export type IMoonDataResult = { /** * - the date of the calculated sun data as timestamp */ ts: number; /** * - the date of the calculated sun data */ lastUpdate: Date; /** * - date as string */ lastUpdateStr: string; /** * - latitude */ latitude: number; /** * - longitude */ longitude: number; angleType: ('deg' | 'rad'); azimuth: number; altitude: number; altitudeDegrees: number; azimuthDegrees: number; altitudeRadians: number; azimuthRadians: number; distance: number; parallacticAngle: number; illumination: any; zenithAngle: number; times: any; timesNext?: any; positionAtRise?: any; positionAtSet?: any; altitudePercent?: number; highestPosition?: any; isUp?: boolean; }; export type ITimeResult = { /** * - a Date object of the neesed date/time */ value: Date; /** * - The time as unix timestamp */ ts: number; /** * - The position of the sun on the time */ pos: number; /** * - Angle of the sun on the time */ angle: number; /** * - The time as julian calendar */ julian: number; /** * - indicates if the time is valid or not */ valid: boolean; /** * - string of an error message if an error occurs */ error?: string; }; export type ISunTimeDefRed = { /** * - The Name of the time */ name: string; /** * - Date object with the calculated sun-time */ value: Date; /** * - The position of the sun on the time */ pos: number; /** * - The elevation angle */ elevation: number; /** * - indicates if the time is valid or not */ valid: boolean; }; export type ISunTimeDefNextLast = { /** * - next sun time */ next: ISunTimeDefRed; /** * - previous sun time */ last: ISunTimeDefRed; }; export type IMoonTime = { /** * - a Date object of the neesed date/time */ value: Date | number; /** * - string of an error message if an error occurs */ error?: string; }; export type IOffsetData = { /** * - value of the offset */ offset?: string; /** * - type name of the offset */ offsetType?: string; /** * - callback function for getting getPropValue */ offsetCallback?: IValuePropertyTypeCallback; /** * - true if no error should be given in GUI */ noOffsetError?: boolean; /** * - multiplier to the time */ multiplier?: number; }; export type ITimePropertyTypeInt = { /** * - format of the input */ format?: string; /** * - valid days */ days?: string; /** * - valid monthss */ months?: string; /** * - base date, current time as default */ now?: Date; /** * - latitude */ latitude?: number; /** * - longitude */ longitude?: number; /** * - height definition */ height?: number; /** * - optional prepared Jsonata expression */ expr?: any; }; export type ITimePropertyType = ITimePropertyTypeInt & ILimitationsObj & ITypedValue & IOffsetData; /** * get a float value from a type input in Node-Red */ export type IGetFloatPropData = { /** * - type of the value */ type: string; /** * - value */ value: any; /** * - optional prepared Jsonata expression */ expr?: any; /** * - default value if can not get float value */ def?: number; /** * - callback function for getting getPropValue */ callback?: IValuePropertyTypeCallback; /** * - true if no error should be given in GUI */ noError?: boolean; /** * base Date to use for Date time functions */ now?: Date; }; export type ITimePropertyResult = { /** * - the Date value */ value: Date; /** * - error message if an error has occured */ error: string; /** * - indicator if the given time value is a fix date */ fix: boolean; }; /** * check this node for configuration errors */ export type FktRegister = Function; /** * check this node for configuration errors */ export type FktDeregister = Function; /** * check this node for configuration errors */ export type FktCheckNode = Function; /** * Formate a Date Object */ export type FktFormatDate = Function; /** * get list of custom angles */ export type FktGetCustomAngles = Function; /** * get list of all suntimes including custom ones */ export type FktGetSunTimesList = Function; /** * get a float value from a type input in Node-Red */ export type FktGetFloatProp = Function; /** * get an formated date prepared for output */ export type FktFormatOutDate = Function; /** * get the time Data prepared for output */ export type FktGetOutDataProp = Function; /** * Creates a out object, based on input data */ export type FktSetMessageProp = Function; /** * get the time Data from a typed input */ export type FktGetTimeProp = Function; /** * get a prepared JSONATA Expression */ export type FktGetJSONataExpression = Function; /** * get a property value from a type input in Node-Red */ export type FktGetPropValue = Function; /** * compared two property's */ export type FktComparePropValue = Function; /** * compared two property's */ export type FktGetSunCalc = Function; /** * compared two property's */ export type FktGetMoonCalc = Function; /** * check an array if an array has duplicates. */ export type FktHasDuplicates = (arr: Array<string>) => boolean; /** * check an array if an array has duplicates. */ export type FktValidateCustomTimes = (riseName: Array<{ riseName: string; setName: string; angle: number; rad: boolean; }>) => boolean; //# sourceMappingURL=10-position-config.d.ts.map