Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.wattshift.com/llms.txt

Use this file to discover all available pages before exploring further.

Once a user has onboarded, you can set and get user preferences for their devices. The examples below assume wattshiftApiCall is your authenticated WattShift API helper.

Previewing Schedules

Before saving user preferences, you can preview the suggested set-point schedules.
const userPreferences = {
  tempUnits: "F",
  defaultMode: "AUTO",
  defaultMaxTemp: "75",
  defaultMinTemp: "65",
  scheduleBlocks: [
    {
      daysOfWeek: [1, 2, 3, 4, 5],
      startTimeMinutes: "0",
      endTimeMinutes: "1439",
      targetTemp: "70",
    },
    {
      daysOfWeek: [0, 6],
      startTimeMinutes: "0",
      endTimeMinutes: "1439",
      targetTemp: "68",
    },
  ],
};

// Preview the data.
const hvacId = "ws_device_123efg";
const { blocks } = await wattshiftApiCall(
  `/devices/hvac/${hvacId}/preview`,
  userPreferences,
);
const tempData = blocks.map((b) => ({
  startTime: b.startTime,
  endTime: b.endTime,
  targetTemp: b.targetTemp,
}));

Saving Preferences

If all looks good, you can save the user preferences.
const hvacId = "ws_device_123efg";
const userPreferences = {
  tempUnits: "F",
  defaultMode: "AUTO",
  defaultMaxTemp: "75",
  defaultMinTemp: "65",
  scheduleBlocks: [
    {
      daysOfWeek: [1, 2, 3, 4, 5],
      startTimeMinutes: "0",
      endTimeMinutes: "1439",
      targetTemp: "70",
    },
  ],
};

await wattshiftApiCall(
  `/devices/hvac/${hvacId}/user_preferences/set`,
  userPreferences,
);