node-red-contrib-sun-position
Version:
NodeRED nodes to get sun and moon position
557 lines • 11.5 kB
TypeScript
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