UNPKG

signalk-weatherflow

Version:

SignalK plugin for WeatherFlow weather station data ingestion

318 lines 8.35 kB
export interface SignalKApp { debug: (msg: string) => void; error: (msg: string) => void; handleMessage: (pluginId: string, delta: SignalKDelta) => void; savePluginOptions: (options: any, callback: (err?: any) => void) => void; setProviderStatus: (msg: string) => void; getDataDirPath: () => string; subscriptionmanager: { subscribe: (subscription: SubscriptionRequest, unsubscribes: Array<() => void>, subscriptionError: (err: unknown) => void, dataCallback: (delta: SignalKDelta) => void) => void; }; registerPutHandler: (context: string, path: string, handler: (context: string, path: string, value: any, callback?: (result: { state: string; statusCode?: number; }) => void) => { state: string; statusCode?: number; }, source?: string) => void; } export interface SignalKPlugin { id: string; name: string; description: string; schema: any; start: (options: Partial<PluginConfig>, restartPlugin?: () => void) => void; stop: () => void; config?: PluginConfig; } export interface PluginConfig { stationId: number; vesselName?: string; apiToken: string; udpPort: number; enableWebSocket: boolean; enableForecast: boolean; forecastInterval: number; enableWindCalculations: boolean; deviceId: number; enablePutControl: boolean; webSocketControlPath: string; forecastControlPath: string; windCalculationsControlPath: string; } export type PutHandler = (context: string, path: string, value: any, callback?: (result: { state: string; statusCode?: number; }) => void) => { state: string; statusCode?: number; }; export interface PluginState { udpServer: any; wsConnection: any; forecastInterval: NodeJS.Timeout | null; windyInterval: NodeJS.Timeout | null; windCalculations: any; navigationSubscriptions: Array<() => void>; currentConfig?: PluginConfig; webSocketEnabled: boolean; forecastEnabled: boolean; windCalculationsEnabled: boolean; putHandlers: Map<string, PutHandler>; } export interface WeatherFlowMessage { type: string; serial_number?: string; hub_sn?: string; ob?: number[]; obs?: number[][]; evt?: number[]; device_id?: number; source?: string; } export interface RapidWindData { type: 'rapid_wind'; serial_number: string; hub_sn: string; ob: [number, number, number]; device_id: number; source: string; } export interface TempestObservationData { type: 'obs_st'; serial_number: string; hub_sn: string; obs: number[][]; firmware_revision: number; device_id: number; source: string; } export interface AirObservationData { type: 'obs_air'; serial_number: string; hub_sn: string; obs: number[][]; firmware_revision: number; device_id: number; source: string; } export interface RainEventData { type: 'evt_precip'; serial_number: string; hub_sn: string; evt: [number]; device_id: number; source: string; } export interface LightningEventData { type: 'evt_strike'; serial_number: string; hub_sn: string; evt: [number, number, number]; device_id: number; source: string; } export interface ProcessedWindData { timeEpoch: number; windSpeed: number; windDirection: number; utcDate: string; } export interface ProcessedTempestData { timeEpoch: number; windLull: number; windAvg: number; windGust: number; windDirection: number; windSampleInterval: number; stationPressure: number; airTemperature: number; relativeHumidity: number; illuminance: number; uvIndex: number; solarRadiation: number; rainAccumulated: number; precipitationType: number; lightningStrikeAvgDistance: number; lightningStrikeCount: number; battery: number; reportInterval: number; localDailyRainAccumulation: number; rainAccumulatedFinal: number; localDailyRainAccumulationFinal: number; precipitationAnalysisType: number; utcDate: string; } export interface ProcessedAirData { timeEpoch: number; stationPressure: number; airTemperature: number; relativeHumidity: number; lightningStrikeCount: number; lightningStrikeAvgDistance: number; battery: number; reportInterval: number; utcDate: string; } export interface ProcessedRainData { timeEpoch: number; utcDate: string; } export interface ProcessedLightningData { timeEpoch: number; lightningStrikeAvgDistance: number; energy: number; utcDate: string; } export interface WebSocketMessage { type?: string; device_id?: number; id?: string; summary?: any; status?: any; obs?: number[][]; utcDate?: string; } export interface ForecastData { current_conditions?: CurrentConditions; forecast?: { hourly?: HourlyForecast[]; daily?: DailyForecast[]; }; } export interface CurrentConditions { time?: number; conditions?: string; icon?: string; air_temperature?: number; feels_like?: number; relative_humidity?: number; wind_avg?: number; wind_direction?: number; wind_gust?: number; uv?: number; brightness?: number; solar_radiation?: number; lightning_strike_count_last_1hr?: number; lightning_strike_count_last_3hr?: number; lightning_strike_last_distance?: number; lightning_strike_last_epoch?: number; precip_accum_local_yesterday?: number; precip_accum_local_yesterday_final?: number; precip_analysis_type_yesterday?: number; pressure_trend?: string; station_pressure?: number; sea_level_pressure?: number; } export interface HourlyForecast { time?: number; conditions?: string; icon?: string; air_temperature?: number; feels_like?: number; relative_humidity?: number; wind_avg?: number; wind_direction?: number; wind_gust?: number; precip?: number; precip_probability?: number; precip_type?: string; uv?: number; sea_level_pressure?: number; station_pressure?: number; datetime?: string; } export interface DailyForecast { day_start_local?: number; day_num?: number; month_num?: number; conditions?: string; icon?: string; sunrise?: number; sunset?: number; air_temp_high?: number; air_temp_low?: number; precip_probability?: number; precip_icon?: string; precip_type?: string; wind_avg?: number; wind_direction?: number; day_start_local_iso?: string; sunrise_iso?: string; sunset_iso?: string; } export interface WindInput { windSpeed: number; windDirection: number; airTemperature?: number; } export interface ApparentWindData { windSpeed: number; windAngleRelative: number; windAngleRelativeRad: number; apparentTrueDeg: number; apparentMagneticDeg: number; apparentTrueRad: number; apparentMagneticRad: number; airTemperature: number; } export interface DerivedWindValues { speedApparent: number; angleApparent: number; angleTrueGround: number; angleTrueWater: number; directionTrue: number; directionMagnetic: number; speedTrue: number; windChill: number | null; heatIndex: number | null; feelsLike: number; timestamp: string; source: string; } export interface ConvertedValue { value: any; units: string | null; } export interface SignalKDelta { context: string; updates: SignalKUpdate[]; } export interface SignalKUpdate { $source?: string; source?: { label: string; type?: string; }; timestamp: string; values: SignalKValue[]; meta?: SignalKMeta[]; } export interface SignalKValue { path: string; value: any; } export interface SignalKMeta { path: string; value: { units?: string; description?: string; }; } export interface SubscriptionRequest { context: string; subscribe: SubscriptionItem[]; } export interface SubscriptionItem { path: string; policy: 'fixed' | 'ideal' | 'instant'; period?: number; format: 'delta' | 'full'; } export interface SubscriptionValue { path: string; value: any; timestamp: string; $source?: string; } //# sourceMappingURL=types.d.ts.map