UNPKG

farmbot

Version:
272 lines (271 loc) 7.72 kB
import { ALLOWED_MESSAGE_TYPES, ALLOWED_CHANNEL_NAMES, PlantStage, Color, Sequence, InternalFarmEventBodyItem } from ".."; import { VariableDeclaration, ParameterDeclaration, ParameterApplication } from "../corpus"; export type TimeUnit = "never" | "minutely" | "hourly" | "daily" | "weekly" | "monthly" | "yearly"; export type ExecutableType = "Sequence" | "Regimen"; export declare enum ToolPulloutDirection { NONE = 0, POSITIVE_X = 1, NEGATIVE_X = 2, POSITIVE_Y = 3, NEGATIVE_Y = 4 } export interface ResourceBase { id?: number | undefined; created_at?: string | undefined; updated_at?: string | undefined; } export interface FarmEvent extends ResourceBase { start_time: string; end_time?: string | undefined; repeat?: number | undefined; time_unit: TimeUnit; executable_id: number; executable_type: ExecutableType; body?: InternalFarmEventBodyItem[]; } export interface FarmwareInstallation extends ResourceBase { url: string; package: string | undefined; package_error: string | undefined; } export interface Image { id?: number | undefined; created_at: string; updated_at: string; device_id: number; attachment_processed_at: string | undefined; attachment_url: string; meta: { x: number | undefined; y: number | undefined; z: number | undefined; name?: string; }; } export interface Log { id?: number; updated_at?: string; created_at?: number; message: string; type: ALLOWED_MESSAGE_TYPES; x?: number; y?: number; z?: number; verbosity?: number; major_version?: number; minor_version?: number; patch_version?: number; channels: ALLOWED_CHANNEL_NAMES[]; } export interface Peripheral extends ResourceBase { pin: number | undefined; mode: number; label: string; } interface PinBindingBase extends ResourceBase { pin_num: number; } export declare enum PinBindingType { special = "special", standard = "standard" } export declare enum PinBindingSpecialAction { emergency_lock = "emergency_lock", emergency_unlock = "emergency_unlock", sync = "sync", reboot = "reboot", power_off = "power_off", read_status = "read_status", take_photo = "take_photo" } export interface StandardPinBinding extends PinBindingBase { binding_type: PinBindingType.standard; sequence_id: number; } export interface SpecialPinBinding extends PinBindingBase { binding_type: PinBindingType.special; special_action: PinBindingSpecialAction; } export type PinBinding = StandardPinBinding | SpecialPinBinding; export interface PlantTemplate extends ResourceBase { saved_garden_id: number; radius: number; x: number; y: number; z: number; name: string; openfarm_slug: string; } interface BasePoint extends ResourceBase { x: number; y: number; z: number; pointer_id?: number | undefined; meta: { [key: string]: (string | undefined); }; name: string; } export interface PlantPointer extends BasePoint { pointer_type: "Plant"; openfarm_slug: string; planted_at?: string; plant_stage: PlantStage; radius: number; depth: number; water_curve_id?: number; spread_curve_id?: number; height_curve_id?: number; } export interface ToolSlotPointer extends BasePoint { pointer_type: "ToolSlot"; tool_id: number | undefined; pullout_direction: ToolPulloutDirection; gantry_mounted: boolean; } export interface GenericPointer extends BasePoint { pointer_type: "GenericPointer"; radius: number; } export interface WeedPointer extends BasePoint { pointer_type: "Weed"; plant_stage: PlantStage; radius: number; } export type Point = GenericPointer | PlantPointer | ToolSlotPointer | WeedPointer; /** Individual step that a regimen will execute at a point in time. */ export interface RegimenItem { id?: number; sequence_id: number; regimen_id?: number; /** Time (in milliseconds) to wait before executing the sequence */ time_offset: number; } /** A list of "Sequence" scheduled after a starting point (epoch). */ export interface Regimen extends ResourceBase { /** Friendly identifier for humans to easily identify regimens. */ name: string; color: Color; regimen_items: RegimenItem[]; body: (ParameterDeclaration | VariableDeclaration | ParameterApplication)[]; } export interface SavedGarden extends ResourceBase { name?: string; notes?: string; } export interface Sensor extends ResourceBase { pin: number | undefined; mode: number; label: string; } export interface SensorReading extends ResourceBase { x: number | undefined; y: number | undefined; z: number | undefined; value: number; mode: number; pin: number; read_at: string; } export interface Telemetry { id: number; updated_at: string; created_at: number; target: string; soc_temp?: number; throttled?: string; wifi_level_percent?: number; uptime?: number; memory_usage?: number; disk_usage?: number; cpu_usage?: number; fbos_version?: string; firmware_hardware?: string; } export interface Tool extends ResourceBase { name?: string; flow_rate_ml_per_s: number; } export interface WebcamFeed extends ResourceBase { url: string; name: string; } export interface Folder extends ResourceBase { color: Color; parent_id?: number; name: string; } export interface SequenceResource extends Sequence, ResourceBase { color: Color; name: string; folder_id: number | undefined; pinned: boolean; description: string; forked: boolean; sequence_version_id?: number; sequence_versions?: number[]; copyright?: string; } export interface Curve extends ResourceBase { name: string; type: "water" | "spread" | "height"; data: Record<number, number>; } export interface Crop extends ResourceBase { svg_icon?: string | undefined; spread?: number | undefined; slug: string; } export interface FarmwareEnv extends ResourceBase { key: string; value: string | number | boolean; } export interface User extends ResourceBase { name: string; email: string; language: string; } export interface DeviceAccountSettings extends ResourceBase { name: string; timezone?: string | undefined; tz_offset_hrs: number; throttled_until?: string; throttled_at?: string; fbos_version?: string | undefined; last_saw_api?: string | undefined; setup_completed_at?: string | undefined; ota_hour?: number; ota_hour_utc?: number; mounted_tool_id?: number | undefined; fb_order_number?: string; lat: number | undefined; lng: number | undefined; indoor: boolean; rpi: string | undefined; max_log_age_in_days: number; max_sequence_count: number; max_sequence_length: number; } export type PointGroupSortType = "random" | "xy_ascending" | "xy_descending" | "yx_ascending" | "yx_descending" | "xy_alternating" | "yx_alternating" | "nn"; interface PointGroupCriteria { day: { op: ">" | "<"; days_ago: number; }; string_eq: Record<string, string[] | undefined>; number_eq: Record<string, number[] | undefined>; number_gt: Record<string, number | undefined>; number_lt: Record<string, number | undefined>; } export interface PointGroup extends ResourceBase { name: string; sort_type: PointGroupSortType; point_ids: number[]; criteria: PointGroupCriteria; } export interface WizardStepResult extends ResourceBase { slug: string; answer?: boolean; outcome?: string; } export {};