{
  "version": "1.2.0",
  "chapters": [
    {
      "startTime": 0,
      "title": "Intro"
    },
    {
      "startTime": 16,
      "title": "Welcome Jan"
    },
    {
      "startTime": 28,
      "title": "The start of the weather system"
    },
    {
      "startTime": 129,
      "title": "How to solve the corrosion problem"
    },
    {
      "startTime": 290,
      "title": "Internet connected sensors with a PyPortal and Adafruit IO"
    },
    {
      "startTime": 463,
      "title": "Adding external weather conditions from an API to Adafruit IO"
    },
    {
      "startTime": 597,
      "title": "Evolving into a combined weather system"
    },
    {
      "startTime": 760,
      "title": "Discovering Apple WeatherKit integration in Adafruit IO+",
      "url": "https://adafruit-playground.com/u/CGrover/pages/aio-weather-a-premium-alternative-for-local-observations"
    },
    {
      "startTime": 840,
      "title": "Version 1 of the weather system architecture",
      "img": "https://silversaucer.com/static/cps/38/v1.png",
      "url": "https://adafruit-playground.com/u/CGrover/pages/display-aio-local-weather-conditions-matrixweather-system"
    },
    {
      "startTime": 892,
      "title": "What were the challenges in the new architecture?"
    },
    {
      "startTime": 1040,
      "title": "Multiple display devices and Adafruit IO throttling"
    },
    {
      "startTime": 1255,
      "title": "Version 2 architecture: Remix",
      "img": "https://silversaucer.com/static/cps/38/v2.png",
      "url": "https://adafruit-playground.com/u/CGrover/pages/remix-cedar-grove-weather-architecture-v2-0"
    },
    {
      "startTime": 1255,
      "title": "The user interfaces",
      "img": "https://silversaucer.com/static/cps/38/ui.jpeg"
    },
    {
      "startTime": 1629,
      "title": "What's next?"
    },
    {
      "startTime": 1749,
      "title": "Wrap-up"
    }
  ]
}
