[
  {
    "version": "v0.15.5",
    "channel": "stable",
    "releaseDate": "2026-06-29T16:01:32.404Z",
    "releaseNotes": "new update site",
    "bundleUrl": "https://updates.senoro.de/stable/v0.15.5/senoro-hub-v0.15.5.zip",
    "bundleSize": 345180206,
    "checksum": "e2a706c79380e94bce4737842cb0547e99e82e6ee9ed010bd78b9528f4d68f63",
    "manifestUrl": "https://updates.senoro.de/stable/v0.15.5/bundle-manifest.json",
    "minVersion": "v0.1.100",
    "critical": false,
    "bundledImages": [
      "backend",
      "updater",
      "webui"
    ],
    "services": {
      "backend": "v0.15.5",
      "updater": "v0.15.5",
      "webui": "v0.15.5",
      "mosquitto": "2.0.22",
      "zigbee2mqtt": "2.9.2"
    }
  },
  {
    "version": "v0.15.4",
    "channel": "stable",
    "releaseDate": "2026-06-29T15:54:47.460Z",
    "releaseNotes": "new update site",
    "bundleUrl": "https://updates.senoro.de/stable/v0.15.4/senoro-hub-v0.15.4.zip",
    "bundleSize": 345187127,
    "checksum": "353de2dc8f3c93dc41e666fb9aa995d5f97dbe3c36db340bb1470b911228af17",
    "manifestUrl": "https://updates.senoro.de/stable/v0.15.4/bundle-manifest.json",
    "minVersion": "v0.1.100",
    "critical": false,
    "bundledImages": [
      "backend",
      "updater",
      "webui"
    ],
    "services": {
      "backend": "v0.15.4",
      "updater": "v0.15.4",
      "webui": "v0.15.4",
      "mosquitto": "2.0.22",
      "zigbee2mqtt": "2.9.2"
    }
  },
  {
    "version": "v0.15.3",
    "channel": "stable",
    "releaseDate": "2026-06-20T17:37:09.818Z",
    "releaseNotes": "• Automatic hub discovery — the hub announces itself on the local network via mDNS/Bonjour (_senoro._tcp.local.), so mobile clients can find it without manual IP entry\n• Hub ID in discovery — the hub's unique ID is published as a DNS TXT record alongside the mDNS announcement, allowing clients to identify the correct hub on the network",
    "bundleUrl": "http://senoro.grewenig.de/stable/v0.15.3/senoro-hub-v0.15.3.zip",
    "bundleSize": 347994788,
    "checksum": "a4941f8752959f2a3e4386ec5a32739eb163362156e61f918182b734746faaec",
    "manifestUrl": "http://senoro.grewenig.de/stable/v0.15.3/bundle-manifest.json",
    "minVersion": "v0.1.100",
    "critical": false,
    "bundledImages": [
      "backend",
      "updater",
      "webui"
    ],
    "services": {
      "backend": "v0.15.3",
      "updater": "v0.15.3",
      "webui": "v0.15.3",
      "mosquitto": "2.0.22",
      "zigbee2mqtt": "2.9.2"
    }
  },
  {
    "version": "v0.15.3-rc.1",
    "channel": "pre-release",
    "releaseDate": "2026-06-20T17:32:24.885Z",
    "releaseNotes": "• Automatic hub discovery — the hub announces itself on the local network via mDNS/Bonjour (_senoro._tcp.local.), so mobile clients can find it without manual IP entry\n• Hub ID in discovery — the hub's unique ID is published as a DNS TXT record alongside the mDNS announcement, allowing clients to identify the correct hub on the network",
    "bundleUrl": "http://senoro.grewenig.de/pre/v0.15.3-rc.1/senoro-hub-v0.15.3-rc.1.zip",
    "bundleSize": 347992967,
    "checksum": "0c53aa8f520f1c032589c35c8b1358d89a567a49bf26df6b8c4958382d76693b",
    "manifestUrl": "http://senoro.grewenig.de/pre/v0.15.3-rc.1/bundle-manifest.json",
    "minVersion": "v0.1.100",
    "critical": false,
    "bundledImages": [
      "backend",
      "updater",
      "webui"
    ],
    "services": {
      "backend": "v0.15.3-rc.1",
      "updater": "v0.15.3-rc.1",
      "webui": "v0.15.3-rc.1",
      "mosquitto": "2.0.22",
      "zigbee2mqtt": "2.9.2"
    }
  },
  {
    "version": "v0.15.2",
    "channel": "stable",
    "releaseDate": "2026-06-19T16:53:26.276Z",
    "releaseNotes": "• Automatic hub discovery — the hub announces itself on the local network via mDNS/Bonjour (_senoro._tcp.local.), so mobile clients can find it without manual IP entry\n• Hub ID in discovery — the hub's unique ID is published as a DNS TXT record alongside the mDNS announcement, allowing clients to identify the correct hub on the network",
    "bundleUrl": "http://senoro.grewenig.de/stable/v0.15.2/senoro-hub-v0.15.2.zip",
    "bundleSize": 348076529,
    "checksum": "e350f264de8c2b064a1af8ebbb4980f0259b2274823b817677e862f25e3f806b",
    "manifestUrl": "http://senoro.grewenig.de/stable/v0.15.2/bundle-manifest.json",
    "minVersion": "v0.1.100",
    "critical": false,
    "bundledImages": [
      "backend",
      "updater",
      "webui"
    ],
    "services": {
      "backend": "v0.15.2",
      "updater": "v0.15.2",
      "webui": "v0.15.2",
      "mosquitto": "2.0.22",
      "zigbee2mqtt": "2.9.2"
    }
  },
  {
    "version": "v0.15.1",
    "channel": "stable",
    "releaseDate": "2026-06-19T16:28:44.950Z",
    "releaseNotes": "• Automatic hub discovery — the hub announces itself on the local network via mDNS/Bonjour (_senoro._tcp.local.), so mobile clients can find it without manual IP entry\n• Hub ID in discovery — the hub's unique ID is published as a DNS TXT record alongside the mDNS announcement, allowing clients to identify the correct hub on the network",
    "bundleUrl": "http://senoro.grewenig.de/stable/v0.15.1/senoro-hub-v0.15.1.zip",
    "bundleSize": 348074264,
    "checksum": "ec4c81f378ce60b4208741f254b1567b14ada8520bfcdb8d466552326805ff20",
    "manifestUrl": "http://senoro.grewenig.de/stable/v0.15.1/bundle-manifest.json",
    "minVersion": "v0.1.100",
    "critical": false,
    "bundledImages": [
      "backend",
      "updater",
      "webui"
    ],
    "services": {
      "backend": "v0.15.1",
      "updater": "v0.15.1",
      "webui": "v0.15.1",
      "mosquitto": "2.0.22",
      "zigbee2mqtt": "2.9.2"
    }
  },
  {
    "version": "v0.15.0",
    "channel": "stable",
    "releaseDate": "2026-06-19T11:37:15.640Z",
    "releaseNotes": "• Automatic hub discovery — the hub announces itself on the local network via mDNS/Bonjour (_senoro._tcp.local.), so mobile clients can find it without manual IP entry\n• Hub ID in discovery — the hub's unique ID is published as a DNS TXT record alongside the mDNS announcement, allowing clients to identify the correct hub on the network",
    "bundleUrl": "http://senoro.grewenig.de/stable/v0.15.0/senoro-hub-v0.15.0.zip",
    "bundleSize": 348086807,
    "checksum": "072e1e82f1423f7fb71f05f74b71753a681ec9c441c9be8e2411f9701ab59b6c",
    "manifestUrl": "http://senoro.grewenig.de/stable/v0.15.0/bundle-manifest.json",
    "minVersion": "v0.1.100",
    "critical": false,
    "bundledImages": [
      "backend",
      "updater",
      "webui"
    ],
    "services": {
      "backend": "v0.15.0",
      "updater": "v0.15.0",
      "webui": "v0.15.0",
      "mosquitto": "2.0.22",
      "zigbee2mqtt": "2.9.2"
    }
  },
  {
    "version": "v0.15.0-rc.1",
    "channel": "pre-release",
    "releaseDate": "2026-06-19T11:29:01.626Z",
    "releaseNotes": "• Automatic hub discovery — the hub announces itself on the local network via mDNS/Bonjour (_senoro._tcp.local.), so mobile clients can find it without manual IP entry\n• Hub ID in discovery — the hub's unique ID is published as a DNS TXT record alongside the mDNS announcement, allowing clients to identify the correct hub on the network",
    "bundleUrl": "http://senoro.grewenig.de/pre/v0.15.0-rc.1/senoro-hub-v0.15.0-rc.1.zip",
    "bundleSize": 348077382,
    "checksum": "a54be1e46dd9d84fbd4075665bc0d83a07157ea6d7a5f5329648ffbc96509ae6",
    "manifestUrl": "http://senoro.grewenig.de/pre/v0.15.0-rc.1/bundle-manifest.json",
    "minVersion": "v0.1.100",
    "critical": false,
    "bundledImages": [
      "backend",
      "updater",
      "webui"
    ],
    "services": {
      "backend": "v0.15.0-rc.1",
      "updater": "v0.15.0-rc.1",
      "webui": "v0.15.0-rc.1",
      "mosquitto": "2.0.22",
      "zigbee2mqtt": "2.9.2"
    }
  },
  {
    "version": "v0.14.2",
    "channel": "stable",
    "releaseDate": "2026-06-14T21:43:39.276Z",
    "releaseNotes": "• Hub certificate — a unique security certificate is generated automatically on first start\n• Certificate status and expiry date are visible in the system settings\n• Automatic certificate renewal — the hub renews its certificate before it expires (configurable)",
    "bundleUrl": "http://senoro.grewenig.de/stable/v0.14.2/senoro-hub-v0.14.2.zip",
    "bundleSize": 344821920,
    "checksum": "f2fa8cec388608fcc02d5129dacfe87ac0b2e977ef1933090b29b8294e88b0f3",
    "manifestUrl": "http://senoro.grewenig.de/stable/v0.14.2/bundle-manifest.json",
    "minVersion": "v0.1.100",
    "critical": false,
    "bundledImages": [
      "backend",
      "updater",
      "webui"
    ],
    "services": {
      "backend": "v0.14.2",
      "updater": "v0.14.2",
      "webui": "v0.14.2",
      "mosquitto": "2.0.22",
      "zigbee2mqtt": "2.9.2"
    }
  },
  {
    "version": "v0.14.3",
    "channel": "stable",
    "releaseDate": "2026-06-14T21:32:56.369Z",
    "releaseNotes": "• Hub certificate — a unique security certificate is generated automatically on first start\n• Certificate status and expiry date are visible in the system settings\n• Automatic certificate renewal — the hub renews its certificate before it expires (configurable)",
    "bundleUrl": "/stable/v0.14.3/senoro-hub-v0.14.3.zip",
    "bundleSize": 344826992,
    "checksum": "fc3f51cdfd9adf6067487b8e20239a2ed5c6795781919c92c5276a9ab5e780e9",
    "manifestUrl": "/stable/v0.14.3/bundle-manifest.json",
    "minVersion": "v0.1.100",
    "critical": false,
    "bundledImages": [
      "backend",
      "updater",
      "webui"
    ],
    "services": {
      "backend": "v0.14.3",
      "updater": "v0.14.3",
      "webui": "v0.14.3",
      "mosquitto": "2.0.22",
      "zigbee2mqtt": "2.9.2"
    }
  }
]