From 99690233baeb6936262474a705a449e5b17ea255 Mon Sep 17 00:00:00 2001 From: Fredrik Ahlgren Date: Fri, 31 Jul 2026 19:44:52 +0200 Subject: [PATCH] feat(web): set a heat pump's curve offset from the Heating view MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A pump whose driver declares a control gets a row on its card: the value in force, when the hold ends, and buttons to move or release it. A pump that declares nothing looks exactly as it did. On the Heating card rather than Settings → Devices, because that is where the pump's own state already is — the offset sits next to the temperatures it moves. Settings is for connecting a device, not running it. Rendered entirely from the declaration; nothing here knows a driver by name. Stepper buttons rather than a slider or number field: the card is re-rendered wholesale every 30 s and a control holding input state would lose a half-typed value on every refresh. Control clicks stop propagating, or the card — which is itself a button into the all-signals view — opens over the thing the operator just pressed. With no hold the row reads "Auto" rather than 0: nothing in the browser knows what offset the pump settled on internally. Held state is carried by text and weight, never colour, since the theme's green/red pair is not separable under deuteranopia. A driver declaring write_ack rather than readback says so in the row. Verified against a running FTW with a probe driver: pressing + drove the driver's own hp_z1_heat_offset to 1, raise disabled at the declared +3, Release returned it to 0 through driver_default_mode, and a control click did not open the detail view while a card click still did. Co-Authored-By: Claude Opus 5 --- .changeset/heating-control-ui.md | 28 +++ .../cache/ftw-official-beta.json | 1 + go/driver-repository/cache/ftw-official.json | 1 + go/state.db.clean | 0 go/state.db.snapshot | Bin 0 -> 212992 bytes web/heating-control.test.mjs | 71 +++++++ web/heating.js | 177 +++++++++++++++++- 7 files changed, 277 insertions(+), 1 deletion(-) create mode 100644 .changeset/heating-control-ui.md create mode 100644 go/driver-repository/cache/ftw-official-beta.json create mode 100644 go/driver-repository/cache/ftw-official.json create mode 100644 go/state.db.clean create mode 100644 go/state.db.snapshot create mode 100644 web/heating-control.test.mjs diff --git a/.changeset/heating-control-ui.md b/.changeset/heating-control-ui.md new file mode 100644 index 00000000..adf53f56 --- /dev/null +++ b/.changeset/heating-control-ui.md @@ -0,0 +1,28 @@ +--- +"ftw": minor +--- + +The Heating view can now set a heat pump's curve offset. A pump whose driver +declares a control gets a row on its card: the value in force, when the hold +ends, and buttons to move it or release it. A pump that declares nothing looks +exactly as it did. + +It lives on the Heating card rather than in Settings → Devices because that is +where the pump's own state already is — the offset sits next to the +temperatures it moves. Settings is for connecting a device, not for running it. + +Rendered entirely from the declaration: label, bounds, step and unit come from +the driver, and nothing in the view knows a driver by name. Stepper buttons +rather than a slider or a number field, because the card is re-rendered every +30 s and a control holding input state would lose a half-typed value on each +refresh. + +With no hold the row reads "Auto" rather than a number. Nothing in the browser +knows what offset the pump has settled on internally, and printing 0 would +claim knowledge we do not have. Held state is carried by the text and the +weight of the value, never by colour: the theme's green/red pair is not +separable under deuteranopia. + +A driver that declares `evidence: "write_ack"` instead of `"readback"` says so +in the row — "the pump does not confirm this setting". The weaker guarantee +belongs where the operator is standing. diff --git a/go/driver-repository/cache/ftw-official-beta.json b/go/driver-repository/cache/ftw-official-beta.json new file mode 100644 index 00000000..045b9d41 --- /dev/null +++ b/go/driver-repository/cache/ftw-official-beta.json @@ -0,0 +1 @@ +{"key_id":"ftw-drivers-2026-01","payload":{"commit":"4b5b474adfa0a40604611516edfb471f38e79b08","drivers":[{"channel":"beta","control_enabled":false,"filename":"abb_meter.lua","host_api":{"max":1,"min":1},"id":"abb_meter","metadata":{"capabilities":["meter"],"filename":"abb_meter.lua","host_api_max":1,"host_api_min":1,"id":"abb_meter","manufacturer":"ABB","name":"Abb Meter","path":"drivers/abb_meter.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["B Series / M4M"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.6"},"path":"drivers/abb_meter.lua","permissions":["modbus.read"],"read_only":true,"sha256":"e56c59261929df84abec90c8096bc6c302b80f8f66429f7e7a4bd14b721974b9","size_bytes":6122,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-abb_meter-v1.0.6-e56c59261929df84.lua","version":"1.0.6"},{"channel":"beta","control_enabled":false,"filename":"abb_terra.lua","host_api":{"max":1,"min":1},"id":"abb_terra","metadata":{"capabilities":["v2x_charger"],"filename":"abb_terra.lua","host_api_max":1,"host_api_min":1,"id":"abb_terra","manufacturer":"ABB","name":"Abb Terra","path":"drivers/abb_terra.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["Terra AC"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.3"},"path":"drivers/abb_terra.lua","permissions":["modbus.read"],"read_only":true,"sha256":"b6705e33c4c4d2805d543ea398e892dfee0dc04357337c0e701b26f18132014b","size_bytes":6036,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-abb_terra-v1.0.3-b6705e33c4c4d280.lua","version":"1.0.3"},{"channel":"beta","control_enabled":false,"filename":"acrel.lua","host_api":{"max":1,"min":1},"id":"acrel","metadata":{"capabilities":["meter"],"filename":"acrel.lua","host_api_max":1,"host_api_min":1,"id":"acrel","manufacturer":"Acrel","name":"Acrel","path":"drivers/acrel.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["DTSD Series"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.4"},"path":"drivers/acrel.lua","permissions":["modbus.read"],"read_only":true,"sha256":"45978f244d33b112ac6ad9953e691dffa76c5d7f5c43ecbbe4efdd2a003ecea4","size_bytes":5660,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-acrel-v1.0.4-45978f244d33b112.lua","version":"1.0.4"},{"channel":"beta","control_enabled":false,"filename":"alfen.lua","host_api":{"max":1,"min":1},"id":"alfen","metadata":{"capabilities":["v2x_charger"],"filename":"alfen.lua","host_api_max":1,"host_api_min":1,"id":"alfen","manufacturer":"Alfen","name":"Alfen","path":"drivers/alfen.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["Eve Series"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.4"},"path":"drivers/alfen.lua","permissions":["modbus.read"],"read_only":true,"sha256":"06f7d7d53f1f07ef672a3eed0bd841e2b6e60fa6062ff65490565c0200acab3f","size_bytes":6902,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-alfen-v1.0.4-06f7d7d53f1f07ef.lua","version":"1.0.4"},{"channel":"beta","control_enabled":true,"filename":"alphaess.lua","host_api":{"max":1,"min":1},"id":"alphaess","metadata":{"capabilities":["pv","battery","meter"],"filename":"alphaess.lua","host_api_max":1,"host_api_min":1,"id":"alphaess","manufacturer":"AlphaESS","name":"Alphaess","path":"drivers/alphaess.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["Smile Series","G2 Series"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.1.1"},"path":"drivers/alphaess.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"a86b66f26198d4c3f8b6efea075f863e2d224f180ebf4dea0aead6323e5a62d8","size_bytes":5745,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-alphaess-v1.1.1-a86b66f26198d4c3.lua","version":"1.1.1"},{"channel":"beta","control_enabled":true,"filename":"ambibox.lua","host_api":{"max":1,"min":1},"id":"ambibox","metadata":{"capabilities":["battery","meter","v2x_charger"],"filename":"ambibox.lua","host_api_max":1,"host_api_min":1,"id":"ambibox","manufacturer":"Ambibox","name":"Ambibox","path":"drivers/ambibox.lua","protocols":["mqtt"],"read_only":false,"source":"upstream","tested_models":["V2X Charger"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.2.0"},"path":"drivers/ambibox.lua","permissions":["mqtt.subscribe","mqtt.publish"],"read_only":false,"sha256":"641326c0c7a3d71dd46973ec81a9aee9eb360bc33c2ab152d0647a9c31bab390","size_bytes":8907,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-ambibox-v1.2.0-641326c0c7a3d71d.lua","version":"1.2.0"},{"channel":"beta","control_enabled":true,"filename":"ambibox_v2x.lua","host_api":{"max":1,"min":1},"id":"ambibox_v2x","metadata":{"capabilities":["v2x_charger"],"description":"Ambibox bidirectional V2X charger via MQTT.","filename":"ambibox_v2x.lua","host_api_max":1,"host_api_min":1,"id":"ambibox_v2x","manufacturer":"Ambibox","name":"Ambibox V2X","path":"drivers/ambibox_v2x.lua","protocols":["mqtt"],"read_only":false,"source":"upstream","tested_models":["Ambibox V2X"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.1.0"},"path":"drivers/ambibox_v2x.lua","permissions":["mqtt.subscribe","mqtt.publish"],"read_only":false,"sha256":"4e764ec54d82eb07ebba8c5e6836602c86a5717221a7fc4677ac4df405baaefe","size_bytes":9263,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-ambibox_v2x-v1.1.0-4e764ec54d82eb07.lua","version":"1.1.0"},{"channel":"beta","control_enabled":true,"filename":"atmoce.lua","host_api":{"max":1,"min":1},"id":"atmoce","metadata":{"capabilities":["battery","meter","pv"],"filename":"atmoce.lua","host_api_max":1,"host_api_min":1,"id":"atmoce","manufacturer":"ATMOCE","name":"Atmoce","path":"drivers/atmoce.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["MC100-T Three-Phase M-Combiner","MC100 M-Combiner","MG100 M-Gateway"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.1.1"},"path":"drivers/atmoce.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"33274ceca771596de473369864693e83957cc0840d8db5ad7ecaff1a9cbe7b1b","size_bytes":8542,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-atmoce-v1.1.1-33274ceca771596d.lua","version":"1.1.1"},{"channel":"beta","control_enabled":false,"filename":"carlo_gavazzi.lua","host_api":{"max":1,"min":1},"id":"carlo_gavazzi","metadata":{"capabilities":["meter"],"filename":"carlo_gavazzi.lua","host_api_max":1,"host_api_min":1,"id":"carlo_gavazzi","manufacturer":"Carlo Gavazzi","name":"Carlo Gavazzi","path":"drivers/carlo_gavazzi.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["EM Series"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.5"},"path":"drivers/carlo_gavazzi.lua","permissions":["modbus.read"],"read_only":true,"sha256":"b5d5651e5db145e5e148b594b66b89e180aaca20bf8c9646f140533031a432df","size_bytes":6761,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-carlo_gavazzi-v1.0.5-b5d5651e5db145e5.lua","version":"1.0.5"},{"channel":"beta","control_enabled":false,"filename":"chint.lua","host_api":{"max":1,"min":1},"id":"chint","metadata":{"capabilities":["meter"],"filename":"chint.lua","host_api_max":1,"host_api_min":1,"id":"chint","manufacturer":"Chint","name":"Chint","path":"drivers/chint.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["DSU Series"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.5"},"path":"drivers/chint.lua","permissions":["modbus.read"],"read_only":true,"sha256":"9489c17a22ea21176a0763a2e2761873c8e3e3d9b261adf1a4f29cfc7c1890be","size_bytes":6294,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-chint-v1.0.5-9489c17a22ea2117.lua","version":"1.0.5"},{"channel":"beta","control_enabled":false,"filename":"circutor.lua","host_api":{"max":1,"min":1},"id":"circutor","metadata":{"capabilities":["meter"],"filename":"circutor.lua","host_api_max":1,"host_api_min":1,"id":"circutor","manufacturer":"Circutor","name":"Circutor","path":"drivers/circutor.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["CEM / CVM"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.5"},"path":"drivers/circutor.lua","permissions":["modbus.read"],"read_only":true,"sha256":"37503f4411fe4f9bd591207553592169a26348fc547a13a818c404a6d7143350","size_bytes":7004,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-circutor-v1.0.5-37503f4411fe4f9b.lua","version":"1.0.5"},{"channel":"beta","control_enabled":true,"filename":"ctek.lua","host_api":{"max":1,"min":1},"id":"ctek","metadata":{"capabilities":["ev"],"description":"CTEK Chargestorm Connected 2/3 via Modbus/TCP Automation API v1 (CSOS ≥ 4.9.3). Full telemetry + current-limit control.","filename":"ctek.lua","homepage":"https://www.ctek.com","host_api_max":1,"host_api_min":1,"id":"ctek","manufacturer":"CTEK","name":"CTEK Chargestorm (API v1)","path":"drivers/ctek.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["CTEK Chargestorm (API v1)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"0.3.1"},"path":"drivers/ctek.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"38d05b29f92ced679d08633ea7182f3a3acb15b58b33320d4073385da9785269","size_bytes":16806,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-ctek-v0.3.1-38d05b29f92ced67.lua","version":"0.3.1"},{"channel":"beta","control_enabled":true,"filename":"ctek_hybrid.lua","host_api":{"max":1,"min":1},"id":"ctek_hybrid","metadata":{"capabilities":["ev"],"description":"CTEK Chargestorm Connected 2/3 — MQTT for state + live telemetry (preferred), Modbus/TCP for control + telemetry fallback.","filename":"ctek_hybrid.lua","homepage":"https://www.ctek.com","host_api_max":1,"host_api_min":1,"id":"ctek_hybrid","manufacturer":"CTEK","name":"CTEK Chargestorm (Modbus + MQTT)","path":"drivers/ctek_hybrid.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["CTEK Chargestorm (Modbus + MQTT)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"0.3.1"},"path":"drivers/ctek_hybrid.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"85fc07c24efd8fbb55b657448b9bcba66aa0d1f4d50b7ae637a18b1fe5e18a41","size_bytes":29200,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-ctek_hybrid-v0.3.1-85fc07c24efd8fbb.lua","version":"0.3.1"},{"channel":"beta","control_enabled":true,"filename":"ctek_v2.lua","host_api":{"max":1,"min":1},"id":"ctek_v2","metadata":{"capabilities":["ev"],"description":"CTEK Chargestorm Connected 2/3 via Modbus/TCP Automation API v2 (CSOS ≥ 4.9.3). Full telemetry + current-limit control.","filename":"ctek_v2.lua","homepage":"https://www.ctek.com","host_api_max":1,"host_api_min":1,"id":"ctek_v2","manufacturer":"CTEK","name":"CTEK Chargestorm (API v2)","path":"drivers/ctek_v2.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["CTEK Chargestorm (API v2)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"0.3.1"},"path":"drivers/ctek_v2.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"50a55459b2c6a5b2f8a6762f17d6b9334df6ff76ea7788bb7aab6b6594638fa7","size_bytes":13960,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-ctek_v2-v0.3.1-50a55459b2c6a5b2.lua","version":"0.3.1"},{"channel":"beta","control_enabled":true,"filename":"deye.lua","host_api":{"max":1,"min":1},"id":"deye","metadata":{"capabilities":["battery","meter","pv"],"description":"Deye SUN-SG series hybrid inverters via Modbus. Auto-detects LV vs HV battery at init.","filename":"deye.lua","homepage":"https://www.deyeinverter.com","host_api_max":1,"host_api_min":1,"id":"deye","manufacturer":"Deye","name":"Deye hybrid inverter","path":"drivers/deye.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["SUN Single-Phase Hybrid (LV)","SUN Three-Phase Hybrid","SUN Three-Phase HV Hybrid","SUN String (Grid-Tie)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.1.1"},"path":"drivers/deye.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"5c63deb63c96e2d1845d91fd5acccc3518966364c432e13816bcfc5503de9794","size_bytes":25423,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-deye-v2.1.1-5c63deb63c96e2d1.lua","version":"2.1.1"},{"channel":"beta","control_enabled":false,"filename":"easee.lua","host_api":{"max":1,"min":1},"id":"easee","metadata":{"capabilities":["v2x_charger"],"filename":"easee.lua","host_api_max":1,"host_api_min":1,"id":"easee","manufacturer":"Easee","name":"Easee","path":"drivers/easee.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["Easee"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.4"},"path":"drivers/easee.lua","permissions":["modbus.read"],"read_only":true,"sha256":"5424f3c28583e6c0d765d5391ca2cb34c92bb095aa64c682e5dfd786cb309119","size_bytes":6302,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-easee-v1.0.4-5424f3c28583e6c0.lua","version":"1.0.4"},{"channel":"beta","control_enabled":true,"filename":"easee_cloud.lua","host_api":{"max":1,"min":1},"id":"easee_cloud","metadata":{"capabilities":["ev"],"description":"Easee Home/Charge via Cloud REST API. No local protocol needed.","filename":"easee_cloud.lua","homepage":"https://easee.com","host_api_max":1,"host_api_min":1,"id":"easee_cloud","manufacturer":"Easee","name":"Easee Cloud","path":"drivers/easee_cloud.lua","protocols":["http"],"read_only":false,"source":"upstream","tested_models":["Easee Cloud"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.1.0"},"path":"drivers/easee_cloud.lua","permissions":["http.get","http.post"],"read_only":false,"sha256":"e32a46eac47d1cb6e0233dfe9e92981d251497010daac54594f81c07c7bebc03","size_bytes":33114,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-easee_cloud-v1.1.0-e32a46eac47d1cb6.lua","version":"1.1.0"},{"channel":"beta","control_enabled":false,"filename":"esphome-dsmr.lua","host_api":{"max":1,"min":1},"id":"esphome-dsmr","metadata":{"capabilities":["meter"],"description":"Smart meter via ESPHome web_server v3 + dsmr component (Sourceful Zap on open firmware, DIY ESP32+P1, etc.).","filename":"esphome-dsmr.lua","homepage":"https://github.com/erikarenhill/sourceful-zap-esphome","host_api_max":1,"host_api_min":1,"id":"esphome-dsmr","manufacturer":"ESPHome","name":"ESPHome DSMR (P1)","path":"drivers/esphome-dsmr.lua","protocols":["http"],"read_only":true,"source":"upstream","tested_models":["DSMR web_server v3 P1 reader"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.3"},"path":"drivers/esphome-dsmr.lua","permissions":["http.get"],"read_only":true,"sha256":"f1f84fcb8f46a3b03ffba05e35b08c516fd285dd51453eb0a18312348b9befee","size_bytes":19258,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-esphome-dsmr-v1.0.3-f1f84fcb8f46a3b0.lua","version":"1.0.3"},{"channel":"beta","control_enabled":false,"filename":"esphome_dsmr.lua","host_api":{"max":1,"min":1},"id":"esphome_dsmr","metadata":{"capabilities":["meter"],"description":"Smart meter via ESPHome web_server v3 + dsmr component (Sourceful Zap on open firmware, DIY ESP32+P1, etc.).","filename":"esphome_dsmr.lua","homepage":"https://github.com/erikarenhill/sourceful-zap-esphome","host_api_max":1,"host_api_min":1,"id":"esphome_dsmr","manufacturer":"ESPHome","name":"ESPHome DSMR (P1)","path":"drivers/esphome_dsmr.lua","protocols":["http"],"read_only":true,"source":"upstream","tested_models":["ESPHome DSMR (P1)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.3"},"path":"drivers/esphome_dsmr.lua","permissions":["http.get"],"read_only":true,"sha256":"516b9847eb0126480b81cf6ea74999ba4b646dbf886d6f1d6d307b6efa8b52ef","size_bytes":21828,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-esphome_dsmr-v1.0.3-516b9847eb012648.lua","version":"1.0.3"},{"channel":"beta","control_enabled":false,"filename":"etrel.lua","host_api":{"max":1,"min":1},"id":"etrel","metadata":{"capabilities":["v2x_charger"],"filename":"etrel.lua","host_api_max":1,"host_api_min":1,"id":"etrel","manufacturer":"Etrel","name":"Etrel","path":"drivers/etrel.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["INCH"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.3"},"path":"drivers/etrel.lua","permissions":["modbus.read"],"read_only":true,"sha256":"af260561aba83b50caf9dda31f949b0f092631c7e8a7bfa4cc768b892d9dafbe","size_bytes":5792,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-etrel-v1.0.3-af260561aba83b50.lua","version":"1.0.3"},{"channel":"beta","control_enabled":true,"filename":"ferroamp.lua","host_api":{"max":1,"min":1},"id":"ferroamp","metadata":{"capabilities":["battery","meter","pv"],"description":"Ferroamp EnergyHub with ESO battery + SSO solar strings (3-phase).","filename":"ferroamp.lua","homepage":"https://ferroamp.com","host_api_max":1,"host_api_min":1,"id":"ferroamp","manufacturer":"Ferroamp","name":"Ferroamp EnergyHub","path":"drivers/ferroamp.lua","protocols":["mqtt"],"read_only":false,"source":"upstream","tested_models":["EnergyHub"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.1.0"},"path":"drivers/ferroamp.lua","permissions":["mqtt.subscribe","mqtt.publish"],"read_only":false,"sha256":"5a5dbd25c24c0dac31673068506ee6f46990f4ba7da49da79bd50c35888f03aa","size_bytes":56891,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-ferroamp-v2.1.0-5a5dbd25c24c0dac.lua","version":"2.1.0"},{"channel":"beta","control_enabled":true,"filename":"ferroamp_dc2_v2x.lua","host_api":{"max":1,"min":1},"id":"ferroamp_dc2_v2x","metadata":{"capabilities":["v2x_charger"],"description":"Ferroamp DC2 V2X 20 kW bidirectional CCS2 charger via local MQTT.","filename":"ferroamp_dc2_v2x.lua","homepage":"https://ferroamp.com","host_api_max":1,"host_api_min":1,"id":"ferroamp_dc2_v2x","manufacturer":"Ferroamp","name":"Ferroamp DC2 V2X","path":"drivers/ferroamp_dc2_v2x.lua","protocols":["mqtt"],"read_only":false,"source":"upstream","tested_models":["DC2 V2X"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.1.0"},"path":"drivers/ferroamp_dc2_v2x.lua","permissions":["mqtt.subscribe","mqtt.publish"],"read_only":false,"sha256":"4020f61189369526826f8999875038950b2f53f30dd5bebbc1171a308bd6752d","size_bytes":15146,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-ferroamp_dc2_v2x-v2.1.0-4020f61189369526.lua","version":"2.1.0"},{"channel":"beta","control_enabled":true,"filename":"ferroamp_modbus.lua","host_api":{"max":1,"min":1},"id":"ferroamp_modbus","metadata":{"capabilities":["battery","meter","pv"],"description":"Ferroamp EnergyHub XL via Modbus TCP (alternative transport to drivers/ferroamp.lua).","filename":"ferroamp_modbus.lua","homepage":"https://ferroamp.com","host_api_max":1,"host_api_min":1,"id":"ferroamp_modbus","manufacturer":"Ferroamp","name":"Ferroamp EnergyHub (Modbus)","path":"drivers/ferroamp_modbus.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["EnergyHub"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.1.1"},"path":"drivers/ferroamp_modbus.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"2c15acee1e56df73ab9a52a67995e3a0f5b38ecfe2bb7ddaa99f8526cf2fc258","size_bytes":16320,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-ferroamp_modbus-v2.1.1-2c15acee1e56df73.lua","version":"2.1.1"},{"channel":"beta","control_enabled":true,"filename":"foxess.lua","host_api":{"max":1,"min":1},"id":"foxess","metadata":{"capabilities":["pv","battery","meter"],"filename":"foxess.lua","host_api_max":1,"host_api_min":1,"id":"foxess","manufacturer":"Fox ESS","name":"Foxess","path":"drivers/foxess.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["H1 (Single-Phase Hybrid)","H3 (Three-Phase Hybrid)","H3 PRO","AIO-H3 (All-in-One)","KH Series"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.1.1"},"path":"drivers/foxess.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"46bd9be5d930f7ecfa78191c5f7ee8d145459cd71d05c3ef4149314d1ce4cb1a","size_bytes":8714,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-foxess-v1.1.1-46bd9be5d930f7ec.lua","version":"1.1.1"},{"channel":"beta","control_enabled":true,"filename":"fronius.lua","host_api":{"max":1,"min":1},"id":"fronius","metadata":{"capabilities":["battery","meter","pv"],"description":"Fronius Symo / Primo GEN24 hybrid inverters via Modbus TCP (SunSpec).","filename":"fronius.lua","homepage":"https://www.fronius.com","host_api_max":1,"host_api_min":1,"id":"fronius","manufacturer":"Fronius","name":"Fronius GEN24","path":"drivers/fronius.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["Primo GEN24","Symo GEN24","Fronius Verto","Fronius Tauro","Fronius Symo (Classic)","Fronius Primo (Classic)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.1.1"},"path":"drivers/fronius.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"9f22efdf8a8ff746036bc06c92cf4c5bf6125102e539b20fe72cb9c84eeadb78","size_bytes":14658,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-fronius-v2.1.1-9f22efdf8a8ff746.lua","version":"2.1.1"},{"channel":"beta","control_enabled":false,"filename":"fronius_api.lua","host_api":{"max":1,"min":1},"id":"fronius_api","metadata":{"capabilities":["pv","meter"],"filename":"fronius_api.lua","host_api_max":1,"host_api_min":1,"id":"fronius_api","manufacturer":"Fronius","name":"Fronius Api","path":"drivers/fronius_api.lua","protocols":["http"],"read_only":true,"source":"upstream","tested_models":["Solar API (All Models)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.2"},"path":"drivers/fronius_api.lua","permissions":["http.get"],"read_only":true,"sha256":"e84a1658930da0619152b9281d5ec1e0b7a357495e730a7d4a7b6c5e93995a65","size_bytes":4357,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-fronius_api-v1.0.2-e84a1658930da061.lua","version":"1.0.2"},{"channel":"beta","control_enabled":true,"filename":"fronius_smart_meter.lua","host_api":{"max":1,"min":1},"id":"fronius_smart_meter","metadata":{"capabilities":["meter"],"description":"Fronius Smart Meter three-phase energy meter via Modbus TCP (SunSpec).","filename":"fronius_smart_meter.lua","homepage":"https://www.fronius.com","host_api_max":1,"host_api_min":1,"id":"fronius_smart_meter","manufacturer":"Fronius","name":"Fronius Smart Meter","path":"drivers/fronius_smart_meter.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["Smart Meter TS"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.1.1"},"path":"drivers/fronius_smart_meter.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"7029cb4ff8c32b948f592b436dd1fcdbf71a6d4124f08516f82a5be424c10b08","size_bytes":9362,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-fronius_smart_meter-v2.1.1-7029cb4ff8c32b94.lua","version":"2.1.1"},{"channel":"beta","control_enabled":false,"filename":"goe.lua","host_api":{"max":1,"min":1},"id":"goe","metadata":{"capabilities":["v2x_charger"],"filename":"goe.lua","host_api_max":1,"host_api_min":1,"id":"goe","manufacturer":"go-e","name":"Goe","path":"drivers/goe.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["Gemini"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.3"},"path":"drivers/goe.lua","permissions":["modbus.read"],"read_only":true,"sha256":"73e859ab4a0dfa2db6de1ae094510cd57037890c601c144093e329bc2c1b96d9","size_bytes":5944,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-goe-v1.0.3-73e859ab4a0dfa2d.lua","version":"1.0.3"},{"channel":"beta","control_enabled":false,"filename":"goe_http.lua","host_api":{"max":1,"min":1},"id":"goe_http","metadata":{"capabilities":["v2x_charger"],"filename":"goe_http.lua","host_api_max":1,"host_api_min":1,"id":"goe_http","manufacturer":"go-e","name":"Goe Http","path":"drivers/goe_http.lua","protocols":["http"],"read_only":true,"source":"upstream","tested_models":["Gemini HTTP"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.1"},"path":"drivers/goe_http.lua","permissions":["http.get"],"read_only":true,"sha256":"d87bf3ab04b9db5cbfed76be61e36734b6f146b3e781ebed4767f66ce0962664","size_bytes":5597,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-goe_http-v1.0.1-d87bf3ab04b9db5c.lua","version":"1.0.1"},{"channel":"beta","control_enabled":true,"filename":"goodwe.lua","host_api":{"max":1,"min":1},"id":"goodwe","metadata":{"capabilities":["pv","battery","meter"],"description":"GoodWe ET-Plus / EH series hybrid inverters via Modbus TCP.","filename":"goodwe.lua","homepage":"https://en.goodwe.com","host_api_max":1,"host_api_min":1,"id":"goodwe","manufacturer":"GoodWe","name":"GoodWe hybrid inverter","path":"drivers/goodwe.lua","protocols":["modbus"],"read_only":false,"source":"upstream","verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.1.1"},"path":"drivers/goodwe.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"0dc95e052a4d010f4204f6ff42c8cb3b59a14875c2364bcbc8e9ccfe77c45a0e","size_bytes":11335,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-goodwe-v2.1.1-0dc95e052a4d010f.lua","version":"2.1.1"},{"channel":"beta","control_enabled":true,"filename":"growatt.lua","host_api":{"max":1,"min":1},"id":"growatt","metadata":{"capabilities":["pv","battery","meter"],"description":"Growatt SPH / MOD hybrid inverters via Modbus TCP.","filename":"growatt.lua","homepage":"https://www.growatt.com","host_api_max":1,"host_api_min":1,"id":"growatt","manufacturer":"Growatt","name":"Growatt hybrid inverter","path":"drivers/growatt.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["SPH Series (Single-Phase Hybrid)","SPH-TL3 Series (Three-Phase Hybrid)","MIN Series (Single-Phase String)","MIC Series (Micro)","MOD Series (Three-Phase String)","MAX Series (Three-Phase Commercial)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.1.1"},"path":"drivers/growatt.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"ac5bb14639db90e2d840a6b72e5de681f9dc206304ea3c0d7d903cf3b153fc4d","size_bytes":11372,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-growatt-v2.1.1-ac5bb14639db90e2.lua","version":"2.1.1"},{"channel":"beta","control_enabled":false,"filename":"hardybarth.lua","host_api":{"max":1,"min":1},"id":"hardybarth","metadata":{"capabilities":["v2x_charger"],"filename":"hardybarth.lua","host_api_max":1,"host_api_min":1,"id":"hardybarth","manufacturer":"HardyBarth","name":"Hardybarth","path":"drivers/hardybarth.lua","protocols":["http"],"read_only":true,"source":"upstream","tested_models":["cPH / Salia"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.1"},"path":"drivers/hardybarth.lua","permissions":["http.get"],"read_only":true,"sha256":"8d1749197ee7328c8641c0554c04c801ddfd86e1de7136a22ca8e91755e87799","size_bytes":4460,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-hardybarth-v1.0.1-8d1749197ee7328c.lua","version":"1.0.1"},{"channel":"beta","control_enabled":true,"filename":"heishamon.lua","host_api":{"max":1,"min":1},"id":"heishamon","metadata":{"capabilities":["heatpump"],"description":"Panasonic Aquarea H/J/K/L/M-series heat pump via Heishamon MQTT bridge. Controls Zone 1 heat curve offset (Z1_Heat_Request_Temp) in range -3..+3 °C.","filename":"heishamon.lua","homepage":"https://github.com/Egyjs/HeishaMon","host_api_max":1,"host_api_min":1,"id":"heishamon","manufacturer":"Panasonic","name":"Panasonic Aquarea (Heishamon)","path":"drivers/heishamon.lua","protocols":["mqtt"],"read_only":false,"source":"upstream","tested_models":["Panasonic Aquarea (Heishamon)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"0.5.0"},"path":"drivers/heishamon.lua","permissions":["mqtt.subscribe","mqtt.publish"],"read_only":false,"sha256":"38dd4879a9fe3abf2c731f81900e5a899388c16ae6a25889154fb9fdb78a3bfb","size_bytes":8922,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-heishamon-v0.5.0-38dd4879a9fe3abf.lua","version":"0.5.0"},{"channel":"beta","control_enabled":false,"filename":"hello.lua","host_api":{"max":1,"min":1},"id":"hello","metadata":{"capabilities":["meter"],"filename":"hello.lua","host_api_max":1,"host_api_min":1,"id":"hello","name":"Hello","path":"drivers/hello.lua","protocols":[],"read_only":true,"source":"upstream","verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.1.2"},"path":"drivers/hello.lua","permissions":[],"read_only":true,"sha256":"a5b6216497c093ae81891ccace29406aec9e207186959eaea4d8dd911cc10c3a","size_bytes":3535,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-hello-v1.1.2-a5b6216497c093ae.lua","version":"1.1.2"},{"channel":"beta","control_enabled":true,"filename":"huawei.lua","host_api":{"max":1,"min":1},"id":"huawei","metadata":{"capabilities":["battery","meter","pv"],"description":"Huawei SUN2000 hybrid inverters with LUNA2000 battery via Modbus TCP.","filename":"huawei.lua","homepage":"https://solar.huawei.com","host_api_max":1,"host_api_min":1,"id":"huawei","manufacturer":"Huawei","name":"Huawei SUN2000 Hybrid Inverter","path":"drivers/huawei.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["SUN2000 (Single-Phase)","SUN2000 (Three-Phase Residential)","SUN2000 (Three-Phase Commercial)","LUNA2000 (Battery)","SmartLogger"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.1.1"},"path":"drivers/huawei.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"ac334535ff18c7a7f6408d9e8f3c699ce8948f41aab218c90335c2db0db73855","size_bytes":17230,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-huawei-v2.1.1-ac334535ff18c7a7.lua","version":"2.1.1"},{"channel":"beta","control_enabled":false,"filename":"janitza.lua","host_api":{"max":1,"min":1},"id":"janitza","metadata":{"capabilities":["meter"],"filename":"janitza.lua","host_api_max":1,"host_api_min":1,"id":"janitza","manufacturer":"Janitza","name":"Janitza","path":"drivers/janitza.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["UMG Series"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.5"},"path":"drivers/janitza.lua","permissions":["modbus.read"],"read_only":true,"sha256":"7898391a3e7ea513264a936533035d935128b7b22792b02e7029455e78294752","size_bytes":6777,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-janitza-v1.0.5-7898391a3e7ea513.lua","version":"1.0.5"},{"channel":"beta","control_enabled":false,"filename":"keba.lua","host_api":{"max":1,"min":1},"id":"keba","metadata":{"capabilities":["v2x_charger"],"filename":"keba.lua","host_api_max":1,"host_api_min":1,"id":"keba","manufacturer":"Keba","name":"Keba","path":"drivers/keba.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["KeContact P30"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.3"},"path":"drivers/keba.lua","permissions":["modbus.read"],"read_only":true,"sha256":"c44dd7b196d550a305adf75f5c13938ab428dc3977e654baad00cd596951b6b5","size_bytes":6873,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-keba-v1.0.3-c44dd7b196d550a3.lua","version":"1.0.3"},{"channel":"beta","control_enabled":true,"filename":"kostal.lua","host_api":{"max":1,"min":1},"id":"kostal","metadata":{"capabilities":["pv","battery","meter"],"description":"Kostal Plenticore Plus and Piko IQ via Modbus TCP (SunSpec plus Kostal custom map).","filename":"kostal.lua","homepage":"https://www.kostal-solar-electric.com","host_api_max":1,"host_api_min":1,"id":"kostal","manufacturer":"Kostal","name":"Kostal Plenticore","path":"drivers/kostal.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["Plenticore Plus","Plenticore BI","PIKO MP Plus","PIKO IQ"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.1.1"},"path":"drivers/kostal.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"60d2217e66bfe4d9ec466fb5631ab5aa55d0aa825ebe44e3465ac2e1132b4f52","size_bytes":13113,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-kostal-v2.1.1-60d2217e66bfe4d9.lua","version":"2.1.1"},{"channel":"beta","control_enabled":true,"filename":"kstar.lua","host_api":{"max":1,"min":1},"id":"kstar","metadata":{"capabilities":["pv","battery","meter"],"filename":"kstar.lua","host_api_max":1,"host_api_min":1,"id":"kstar","manufacturer":"KSTAR","name":"Kstar","path":"drivers/kstar.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["KSE (Hybrid)","BluE-S Series"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.1.1"},"path":"drivers/kstar.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"0fedbc42700e08e810263e5210c91a1c008bc3a68060d18ae979806da40a1871","size_bytes":5324,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-kstar-v1.1.1-0fedbc42700e08e8.lua","version":"1.1.1"},{"channel":"beta","control_enabled":false,"filename":"mennekes.lua","host_api":{"max":1,"min":1},"id":"mennekes","metadata":{"capabilities":["v2x_charger"],"filename":"mennekes.lua","host_api_max":1,"host_api_min":1,"id":"mennekes","manufacturer":"Mennekes","name":"Mennekes","path":"drivers/mennekes.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["AMTRON"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.3"},"path":"drivers/mennekes.lua","permissions":["modbus.read"],"read_only":true,"sha256":"c8721643a3d713e30d9251603c9b66a4597aceb1cf9e46ea813ea5c09a0bd9dc","size_bytes":6024,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-mennekes-v1.0.3-c8721643a3d713e3.lua","version":"1.0.3"},{"channel":"beta","control_enabled":true,"filename":"myuplink.lua","host_api":{"max":1,"min":1},"id":"myuplink","metadata":{"capabilities":["heatpump"],"description":"Read-only heat-pump telemetry via MyUplink Cloud REST API v2: compressor power + hot-water/indoor/outdoor temperatures. Observe-only — no control. OAuth: authorization-code + refresh-token (connect in Settings → Devices).","filename":"myuplink.lua","homepage":"https://dev.myuplink.com","host_api_max":1,"host_api_min":1,"id":"myuplink","manufacturer":"MyUplink (NIBE, Bosch, Atlantic, Daikin, ...)","name":"MyUplink Heat Pump (telemetry)","path":"drivers/myuplink.lua","protocols":["http"],"read_only":false,"source":"upstream","tested_models":["MyUplink Heat Pump (telemetry)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.1.1"},"path":"drivers/myuplink.lua","permissions":["http.get","http.post"],"read_only":false,"sha256":"5c6fefec7da3213223554c82242554672d739cc97b0f3c84eeb23fc9f95a3eb8","size_bytes":17330,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-myuplink-v1.1.1-5c6fefec7da32132.lua","version":"1.1.1"},{"channel":"beta","control_enabled":true,"filename":"nibe_local.lua","host_api":{"max":1,"min":1},"id":"nibe_local","metadata":{"capabilities":["heatpump"],"description":"Read-only NIBE S-series heat-pump telemetry over the on-prem Local REST API (HTTPS + Basic auth, self-signed cert pinned via tls_pin_sha256). Emits compressor/used power, lifetime energy meters, and the full ~980-point register map. Observe-only — no control.","filename":"nibe_local.lua","homepage":"https://www.nibe.eu","host_api_max":1,"host_api_min":1,"id":"nibe_local","manufacturer":"NIBE","name":"NIBE REST API S-series","path":"drivers/nibe_local.lua","protocols":["http"],"read_only":false,"source":"upstream","tested_models":["NIBE REST API S-series"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.1.1"},"path":"drivers/nibe_local.lua","permissions":["http.get","http.post"],"read_only":false,"sha256":"e9f4f624bc71bce27909b5e0c30fc9489c23e0992127f344966d01218cf5e6be","size_bytes":20255,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-nibe_local-v1.1.1-e9f4f624bc71bce2.lua","version":"1.1.1"},{"channel":"beta","control_enabled":false,"filename":"opendtu.lua","host_api":{"max":1,"min":1},"id":"opendtu","metadata":{"capabilities":["pv","meter"],"filename":"opendtu.lua","host_api_max":1,"host_api_min":1,"id":"opendtu","manufacturer":"Hoymiles","name":"Opendtu","path":"drivers/opendtu.lua","protocols":["http"],"read_only":true,"source":"upstream","tested_models":["HM Series","HMS Series (WiFi)","HMT Series (Three-Phase)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.2"},"path":"drivers/opendtu.lua","permissions":["http.get"],"read_only":true,"sha256":"ffcf5f2512bb0e677d7e058b96a0ca4d6229175ababf3be271c12b15c31d1b4f","size_bytes":6072,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-opendtu-v1.0.2-ffcf5f2512bb0e67.lua","version":"1.0.2"},{"channel":"beta","control_enabled":false,"filename":"opendtu_mqtt.lua","host_api":{"max":1,"min":1},"id":"opendtu_mqtt","metadata":{"capabilities":["pv","meter"],"filename":"opendtu_mqtt.lua","host_api_max":1,"host_api_min":1,"id":"opendtu_mqtt","manufacturer":"Hoymiles","name":"Opendtu Mqtt","path":"drivers/opendtu_mqtt.lua","protocols":["mqtt"],"read_only":true,"source":"upstream","tested_models":["HM Series","HMS Series","HMT Series"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.3"},"path":"drivers/opendtu_mqtt.lua","permissions":["mqtt.subscribe"],"read_only":true,"sha256":"05cf9286a023a551acda84370be11ea5800af2fd2e52249d34871e3a51151161","size_bytes":6304,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-opendtu_mqtt-v1.0.3-05cf9286a023a551.lua","version":"1.0.3"},{"channel":"beta","control_enabled":false,"filename":"openevse.lua","host_api":{"max":1,"min":1},"id":"openevse","metadata":{"capabilities":["v2x_charger"],"filename":"openevse.lua","host_api_max":1,"host_api_min":1,"id":"openevse","manufacturer":"OpenEVSE","name":"Openevse","path":"drivers/openevse.lua","protocols":["http"],"read_only":true,"source":"upstream","tested_models":["OpenEVSE"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.1"},"path":"drivers/openevse.lua","permissions":["http.get"],"read_only":true,"sha256":"e7715280de81b75a7288a700da2dec8f1c52ba2f820631650261b4cf53bc8502","size_bytes":4704,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-openevse-v1.0.1-e7715280de81b75a.lua","version":"1.0.1"},{"channel":"beta","control_enabled":false,"filename":"p1_dsmr.lua","host_api":{"max":1,"min":1},"id":"p1_dsmr","metadata":{"capabilities":["meter"],"filename":"p1_dsmr.lua","host_api_max":1,"host_api_min":1,"id":"p1_dsmr","manufacturer":"Various (DSMR)","name":"P1 Dsmr","path":"drivers/p1_dsmr.lua","protocols":["serial"],"read_only":true,"source":"upstream","tested_models":["DSMR v2.2/v4/v5"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.0.2"},"path":"drivers/p1_dsmr.lua","permissions":["serial.read"],"read_only":true,"sha256":"89cf07f7d26caa4c26aede46f74a8db7634806628a36f3985e7018e4be3043a2","size_bytes":9466,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-p1_dsmr-v2.0.2-89cf07f7d26caa4c.lua","version":"2.0.2"},{"channel":"beta","control_enabled":false,"filename":"p1_encrypted.lua","host_api":{"max":1,"min":1},"id":"p1_encrypted","metadata":{"capabilities":["meter"],"filename":"p1_encrypted.lua","host_api_max":1,"host_api_min":1,"id":"p1_encrypted","manufacturer":"Various (Belgian)","name":"P1 Encrypted","path":"drivers/p1_encrypted.lua","protocols":["serial"],"read_only":true,"source":"upstream","tested_models":["Belgian e-MUCS/SMR5","Austrian Smart Meter"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.0.2"},"path":"drivers/p1_encrypted.lua","permissions":["serial.read"],"read_only":true,"sha256":"90ed83ddc269ea1e79cc4c3ad28fb783a11649ea5a89088a4167e0d8a44d19e0","size_bytes":13377,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-p1_encrypted-v2.0.2-90ed83ddc269ea1e.lua","version":"2.0.2"},{"channel":"beta","control_enabled":false,"filename":"p1_hdlc.lua","host_api":{"max":1,"min":1},"id":"p1_hdlc","metadata":{"capabilities":["meter"],"filename":"p1_hdlc.lua","host_api_max":1,"host_api_min":1,"id":"p1_hdlc","manufacturer":"Aidon","name":"P1 Hdlc","path":"drivers/p1_hdlc.lua","protocols":["serial"],"read_only":true,"source":"upstream","tested_models":["RJ45 HAN/NVE","MA Series HAN"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.0.2"},"path":"drivers/p1_hdlc.lua","permissions":["serial.read"],"read_only":true,"sha256":"54ceb2659f22923d59d4bbf6c602dd5e772517b3840e1e7ace085176104acbfe","size_bytes":11473,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-p1_hdlc-v2.0.2-54ceb2659f22923d.lua","version":"2.0.2"},{"channel":"beta","control_enabled":false,"filename":"p1_meter.lua","host_api":{"max":1,"min":1},"id":"p1_meter","metadata":{"capabilities":["meter"],"filename":"p1_meter.lua","host_api_max":1,"host_api_min":1,"id":"p1_meter","manufacturer":"Aidon","name":"P1 Meter","path":"drivers/p1_meter.lua","protocols":["serial"],"read_only":true,"source":"upstream","tested_models":["RJ11 P1/DSMR","RJ45 HAN/NVE","AM550","MA Series HAN","MA Series DLMS (AT)","Omnia","Omnipower HAN","E350","E360","E450","G5","S/T211 P1","T210-D/S210 DLMS","S34U18","DSMR v2.2","DSMR v4.x","DSMR v5.0","Belgian e-MUCS/SMR5","Austrian Smart Meter"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.0.2"},"path":"drivers/p1_meter.lua","permissions":["serial.read"],"read_only":true,"sha256":"169e1dddd33a37290d07ca6cb6f8ab24bed3de240d53c846228b94869a2c799c","size_bytes":21849,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-p1_meter-v2.0.2-169e1dddd33a3729.lua","version":"2.0.2"},{"channel":"beta","control_enabled":true,"filename":"pixii.lua","host_api":{"max":1,"min":1},"id":"pixii","metadata":{"capabilities":["battery","meter"],"description":"Pixii PowerShaper commercial battery storage via Modbus TCP.","filename":"pixii.lua","homepage":"https://pixii.com","host_api_max":1,"host_api_min":1,"id":"pixii","manufacturer":"Pixii","name":"Pixii PowerShaper","path":"drivers/pixii.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["PowerShaper"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.1.3"},"path":"drivers/pixii.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"cbeb71bb8cc1af22120af457ffadff8fd109bebc51392805e6a82895d26f2dd3","size_bytes":29668,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-pixii-v2.1.3-cbeb71bb8cc1af22.lua","version":"2.1.3"},{"channel":"beta","control_enabled":true,"filename":"pixii_pv.lua","host_api":{"max":1,"min":1},"id":"pixii_pv","metadata":{"capabilities":["pv","meter"],"description":"Read-only Pixii telemetry: PV (external CTs) + grid meter (meter_w). Battery / SoC comes from the Modbus driver, not this one.","filename":"pixii_pv.lua","homepage":"https://pixii.com","host_api_max":1,"host_api_min":1,"id":"pixii_pv","manufacturer":"Pixii","name":"Pixii PowerShaper (PV + meter)","path":"drivers/pixii_pv.lua","protocols":["mqtt"],"read_only":false,"source":"upstream","tested_models":["Pixii PowerShaper (PV + meter)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"0.3.0"},"path":"drivers/pixii_pv.lua","permissions":["mqtt.subscribe","mqtt.publish"],"read_only":false,"sha256":"d686d6b267aba232543f187bb66111e3d923eb3b9dbbb5e79a385d24dad116be","size_bytes":8601,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-pixii_pv-v0.3.0-d686d6b267aba232.lua","version":"0.3.0"},{"channel":"beta","control_enabled":true,"filename":"saj.lua","host_api":{"max":1,"min":1},"id":"saj","metadata":{"capabilities":["pv","battery","meter"],"filename":"saj.lua","host_api_max":1,"host_api_min":1,"id":"saj","manufacturer":"SAJ","name":"Saj","path":"drivers/saj.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["H2 (Three-Phase Hybrid)","HS2 (Single-Phase Hybrid)","AS2 (Three-Phase String)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.1.1"},"path":"drivers/saj.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"13e76c1fe27f31f50994f0954f3e04b4c02219addea7d33faaed91949d607e59","size_bytes":6609,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-saj-v1.1.1-13e76c1fe27f31f5.lua","version":"1.1.1"},{"channel":"beta","control_enabled":false,"filename":"schneider_meter.lua","host_api":{"max":1,"min":1},"id":"schneider_meter","metadata":{"capabilities":["meter"],"filename":"schneider_meter.lua","host_api_max":1,"host_api_min":1,"id":"schneider_meter","manufacturer":"Schneider Electric","name":"Schneider Meter","path":"drivers/schneider_meter.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["iEM3xxx/PM5xxx"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.5"},"path":"drivers/schneider_meter.lua","permissions":["modbus.read"],"read_only":true,"sha256":"b22f55c2b612b0bf424df8e81330bd7814d223b26f5ddfa9068cd48eac002b4c","size_bytes":6899,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-schneider_meter-v1.0.5-b22f55c2b612b0bf.lua","version":"1.0.5"},{"channel":"beta","control_enabled":false,"filename":"schrack_ev.lua","host_api":{"max":1,"min":1},"id":"schrack_ev","metadata":{"capabilities":["v2x_charger"],"filename":"schrack_ev.lua","host_api_max":1,"host_api_min":1,"id":"schrack_ev","manufacturer":"Schrack","name":"Schrack Ev","path":"drivers/schrack_ev.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["i-CHARGE"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.3"},"path":"drivers/schrack_ev.lua","permissions":["modbus.read"],"read_only":true,"sha256":"addb241dcd4978ca95e6f6b4bab29cff0391c3243708c5d2869aa70885ceedfb","size_bytes":5817,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-schrack_ev-v1.0.3-addb241dcd4978ca.lua","version":"1.0.3"},{"channel":"beta","control_enabled":false,"filename":"sdm630.lua","host_api":{"max":1,"min":1},"id":"sdm630","metadata":{"capabilities":["meter"],"description":"Eastron SDM630 three-phase meter via Modbus TCP or RTU.","filename":"sdm630.lua","homepage":"https://www.eastrongroup.com","host_api_max":1,"host_api_min":1,"id":"sdm630","manufacturer":"Eastron","name":"Eastron SDM630 meter","path":"drivers/sdm630.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["SDM630"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.0.1"},"path":"drivers/sdm630.lua","permissions":["modbus.read"],"read_only":true,"sha256":"f08d6bb63705e5fa880f58d9e10950c5d44b142994a393f9d549023b6fc969b3","size_bytes":7873,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-sdm630-v2.0.1-f08d6bb63705e5fa.lua","version":"2.0.1"},{"channel":"beta","control_enabled":false,"filename":"shelly.lua","host_api":{"max":1,"min":1},"id":"shelly","metadata":{"capabilities":["meter"],"filename":"shelly.lua","host_api_max":1,"host_api_min":1,"id":"shelly","manufacturer":"Shelly","name":"Shelly","path":"drivers/shelly.lua","protocols":["http"],"read_only":true,"source":"upstream","tested_models":["Pro 3EM","3EM Gen3","Pro EM-50","EM Gen3","Mini PM Gen3","Plus 1PM","1PM Gen3","Plus 2PM","2PM Gen3","Pro 4PM","Plus Plug S","Plug S Gen3"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.1.2"},"path":"drivers/shelly.lua","permissions":["http.get"],"read_only":true,"sha256":"5985937179ccbb163f630429d43b806b9826f733bf9bdbae3c69dbcc56bd3259","size_bytes":14264,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-shelly-v1.1.2-5985937179ccbb16.lua","version":"1.1.2"},{"channel":"beta","control_enabled":false,"filename":"siemens_pac.lua","host_api":{"max":1,"min":1},"id":"siemens_pac","metadata":{"capabilities":["meter"],"filename":"siemens_pac.lua","host_api_max":1,"host_api_min":1,"id":"siemens_pac","manufacturer":"Siemens","name":"Siemens Pac","path":"drivers/siemens_pac.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["PAC Series"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.5"},"path":"drivers/siemens_pac.lua","permissions":["modbus.read"],"read_only":true,"sha256":"d530be17ddadd637aaf508b8ed6ef22c2661c95b2fbabfb41345a728d350dc0e","size_bytes":6637,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-siemens_pac-v1.0.5-d530be17ddadd637.lua","version":"1.0.5"},{"channel":"beta","control_enabled":true,"filename":"sigenergy.lua","host_api":{"max":1,"min":1},"id":"sigenergy","metadata":{"capabilities":["battery","meter","pv"],"filename":"sigenergy.lua","host_api_max":1,"host_api_min":1,"id":"sigenergy","manufacturer":"Sigenergy","name":"Sigenergy","path":"drivers/sigenergy.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["SigenStor EC Single-Phase (3-12kW)","Sigen Hybrid Single-Phase (3-6kW)","Sigen Hybrid Three-Phase (5-30kW)","SigenStor EC Three-Phase (5-30kW)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.1.2"},"path":"drivers/sigenergy.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"f412ef3d69da4e7040c08a38ea476d1b56c4469a0c8e0283a5503fb3d20c0c95","size_bytes":6678,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-sigenergy-v1.1.2-f412ef3d69da4e70.lua","version":"1.1.2"},{"channel":"beta","control_enabled":true,"filename":"sma.lua","host_api":{"max":1,"min":1},"id":"sma","metadata":{"capabilities":["battery","meter","pv"],"description":"SMA Sunny Tripower / Sunny Boy Storage via Modbus TCP (SunSpec).","filename":"sma.lua","homepage":"https://www.sma.de","host_api_max":1,"host_api_min":1,"id":"sma","manufacturer":"SMA","name":"SMA hybrid inverter","path":"drivers/sma.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["Sunny Tripower X","Sunny Tripower","Sunny Tripower CORE1","Sunny Tripower CORE2","Sunny Boy","Sunny Island","SMA Home Manager 2.0"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.1.1"},"path":"drivers/sma.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"45d51c815a153e7855afd8b9a7f5e6b755acfe234c46188e31209ead7f0d4fd0","size_bytes":15899,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-sma-v2.1.1-45d51c815a153e78.lua","version":"2.1.1"},{"channel":"beta","control_enabled":true,"filename":"sma_pv.lua","host_api":{"max":1,"min":1},"id":"sma_pv","metadata":{"capabilities":["pv","meter"],"description":"SMA Sunny Tripower commercial string inverters (STP 50-40 / 50-41 / X-class) via Modbus TCP, with active-power curtailment over Modbus holding register 40915.","filename":"sma_pv.lua","homepage":"https://www.sma.de","host_api_max":1,"host_api_min":1,"id":"sma_pv","manufacturer":"SMA","name":"SMA PV inverter (non-hybrid)","path":"drivers/sma_pv.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["SMA PV inverter (non-hybrid)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.1.1"},"path":"drivers/sma_pv.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"24aaecaff66793be4bd2a42559c1e4c5d5c469fa2905831d88a82b16033e7fe4","size_bytes":21503,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-sma_pv-v1.1.1-24aaecaff66793be.lua","version":"1.1.1"},{"channel":"beta","control_enabled":false,"filename":"socomec.lua","host_api":{"max":1,"min":1},"id":"socomec","metadata":{"capabilities":["meter"],"filename":"socomec.lua","host_api_max":1,"host_api_min":1,"id":"socomec","manufacturer":"Socomec","name":"Socomec","path":"drivers/socomec.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["Diris / countis"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.4"},"path":"drivers/socomec.lua","permissions":["modbus.read"],"read_only":true,"sha256":"48b978d82a864dc7637efeb5b405af9274e3b17122c763b6b86040fed1f8e0d2","size_bytes":6076,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-socomec-v1.0.4-48b978d82a864dc7.lua","version":"1.0.4"},{"channel":"beta","control_enabled":true,"filename":"sofar.lua","host_api":{"max":1,"min":1},"id":"sofar","metadata":{"capabilities":["pv","battery","meter"],"description":"Sofar Solar HYD-ES / HYD-EP hybrid inverters via Modbus TCP.","filename":"sofar.lua","homepage":"https://www.sofarsolar.com","host_api_max":1,"host_api_min":1,"id":"sofar","manufacturer":"Sofar Solar","name":"Sofar hybrid inverter","path":"drivers/sofar.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["HYD Series (Three-Phase Hybrid)","ME Series (Single-Phase Hybrid)","HYD-ES (Single-Phase Hybrid)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.1.1"},"path":"drivers/sofar.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"81b61299e22980a2e451a33f24d6bb08c5d111e4a9f695252f40dd1cebceb593","size_bytes":11010,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-sofar-v2.1.1-81b61299e22980a2.lua","version":"2.1.1"},{"channel":"beta","control_enabled":true,"filename":"solaredge.lua","host_api":{"max":1,"min":1},"id":"solaredge","metadata":{"capabilities":["meter","pv"],"description":"SolarEdge HD-Wave / StorEdge via Modbus TCP (SunSpec) with PV active-power-limit curtail.","filename":"solaredge.lua","homepage":"https://www.solaredge.com","host_api_max":1,"host_api_min":1,"id":"solaredge","manufacturer":"SolarEdge","name":"SolarEdge inverter + meter","path":"drivers/solaredge.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["SE Series (Single-Phase)","SE Series (Three-Phase)","StorEdge","SolarEdge Home"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.1.1"},"path":"drivers/solaredge.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"bf652dab14494349a279aee6f2bcd00b034607992e00e12982a06f1a25a07ce3","size_bytes":23489,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-solaredge-v2.1.1-bf652dab14494349.lua","version":"2.1.1"},{"channel":"beta","control_enabled":true,"filename":"solaredge_legacy.lua","host_api":{"max":1,"min":1},"id":"solaredge_legacy","metadata":{"capabilities":["pv"],"description":"SolarEdge K-series (SE7K / SE10K / SE17K / SE25K) PV inverter via Modbus TCP — reads use FC 0x03 holding; curtail writes use FC 0x10 multi-holding on the same Advanced Power Control registers (0xF000/0xF001) as HD-Wave.","filename":"solaredge_legacy.lua","homepage":"https://www.solaredge.com","host_api_max":1,"host_api_min":1,"id":"solaredge_legacy","manufacturer":"SolarEdge","name":"SolarEdge legacy (K-series with display)","path":"drivers/solaredge_legacy.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["SolarEdge legacy (K-series with display)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"0.3.2"},"path":"drivers/solaredge_legacy.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"03339c4afe06b211d4123bb3b5a0d8233d9c749c813630ed28239f60e333fa1c","size_bytes":20283,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-solaredge_legacy-v0.3.2-03339c4afe06b211.lua","version":"0.3.2"},{"channel":"beta","control_enabled":true,"filename":"solaredge_pv.lua","host_api":{"max":1,"min":1},"id":"solaredge_pv","metadata":{"capabilities":["pv"],"description":"SolarEdge HD-Wave / StorEdge PV-only via Modbus TCP (SunSpec) with PV active-power-limit curtail.","filename":"solaredge_pv.lua","homepage":"https://www.solaredge.com","host_api_max":1,"host_api_min":1,"id":"solaredge_pv","manufacturer":"SolarEdge","name":"SolarEdge inverter (PV only)","path":"drivers/solaredge_pv.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["SolarEdge inverter (PV only)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.2.1"},"path":"drivers/solaredge_pv.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"65242e70b6647e4e0ff44df3e5bef1e7fcaad7da689dd292f37f7e27ea48094d","size_bytes":14006,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-solaredge_pv-v1.2.1-65242e70b6647e4e.lua","version":"1.2.1"},{"channel":"beta","control_enabled":true,"filename":"solax.lua","host_api":{"max":1,"min":1},"id":"solax","metadata":{"capabilities":["pv","battery","meter"],"filename":"solax.lua","host_api_max":1,"host_api_min":1,"id":"solax","manufacturer":"SolaX","name":"Solax","path":"drivers/solax.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["X1 Hybrid G4","X3 Hybrid G4","X3 Hybrid G4 PRO","X3 MIC/PRO G2 (String)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.1.1"},"path":"drivers/solax.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"08f6b51af8941931fca89ea33d33989807aa987badcda6e07ba5ae175a72a315","size_bytes":6864,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-solax-v1.1.1-08f6b51af8941931.lua","version":"1.1.1"},{"channel":"beta","control_enabled":true,"filename":"solinteg.lua","host_api":{"max":1,"min":1},"id":"solinteg","metadata":{"capabilities":["battery","meter","pv"],"filename":"solinteg.lua","host_api_max":1,"host_api_min":1,"id":"solinteg","manufacturer":"Solinteg","name":"Solinteg","path":"drivers/solinteg.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["MHT Gen1 Three-Phase 2-MPPT (4-20kW)","MHT Gen1 Three-Phase 4-MPPT (25-50kW)","MHS Gen1 Single-Phase","M2HT Gen2 Three-Phase (25-50kW)","M2HS Gen2 Single-Phase"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.1.1"},"path":"drivers/solinteg.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"349d3fb3a7abf169702b33d8164056213657669ce34466c6b9eabf10fb6e7814","size_bytes":10689,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-solinteg-v1.1.1-349d3fb3a7abf169.lua","version":"1.1.1"},{"channel":"beta","control_enabled":true,"filename":"solis.lua","host_api":{"max":1,"min":1},"id":"solis","metadata":{"capabilities":["battery","meter","pv"],"description":"Solis S5/S6 hybrid inverters via Modbus TCP.","filename":"solis.lua","homepage":"https://www.ginlong.com","host_api_max":1,"host_api_min":1,"id":"solis","manufacturer":"Ginlong Solis","name":"Solis hybrid inverter","path":"drivers/solis.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["S6-EH3P (Three-Phase Hybrid)","S6-EH1P (Single-Phase Hybrid)","S5-GR3P (Three-Phase String)","S6-GR3P (Three-Phase String)","Solis C&I (Commercial)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.1.1"},"path":"drivers/solis.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"6f3781f447d964ab955a6cda5a327c44e493684bbced288a2f280e685556f97f","size_bytes":19426,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-solis-v2.1.1-6f3781f447d964ab.lua","version":"2.1.1"},{"channel":"beta","control_enabled":true,"filename":"solis_string.lua","host_api":{"max":1,"min":1},"id":"solis_string","metadata":{"capabilities":["pv"],"description":"Solis non-hybrid PV inverters via Modbus TCP.","filename":"solis_string.lua","homepage":"https://www.ginlong.com","host_api_max":1,"host_api_min":1,"id":"solis_string","manufacturer":"Ginlong Solis","name":"Solis string inverter","path":"drivers/solis_string.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["Solis string inverter"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.1.1"},"path":"drivers/solis_string.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"6d31f99996cef294a889f845a0ff0340a378f396f62bdfcb12f28101e7376df2","size_bytes":7605,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-solis_string-v1.1.1-6d31f99996cef294.lua","version":"1.1.1"},{"channel":"beta","control_enabled":false,"filename":"sonnen.lua","host_api":{"max":1,"min":1},"id":"sonnen","metadata":{"capabilities":["battery","meter"],"description":"sonnenBatterie local JSON API v2: SoC + charge/discharge power. Read-only.","filename":"sonnen.lua","homepage":"https://sonnen.de","host_api_max":1,"host_api_min":1,"id":"sonnen","manufacturer":"sonnen","name":"sonnenBatterie (local API)","path":"drivers/sonnen.lua","protocols":["http"],"read_only":true,"source":"upstream","tested_models":["sonnenBatterie"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.0.1"},"path":"drivers/sonnen.lua","permissions":["http.get"],"read_only":true,"sha256":"46c9eeb0de6ae8326adae0917d421e523555f8a27dd0c2a6a049cc06c9424dde","size_bytes":8573,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-sonnen-v2.0.1-46c9eeb0de6ae832.lua","version":"2.0.1"},{"channel":"beta","control_enabled":true,"filename":"sungrow.lua","host_api":{"max":1,"min":1},"id":"sungrow","metadata":{"capabilities":["battery","meter","pv"],"description":"Sungrow SH-series hybrid inverters with LFP battery, via Modbus TCP.","filename":"sungrow.lua","homepage":"https://en.sungrowpower.com","host_api_max":1,"host_api_min":1,"id":"sungrow","manufacturer":"Sungrow","name":"Sungrow SH Hybrid Inverter","path":"drivers/sungrow.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["SH-RT (Three-Phase Hybrid)","SH-RS (Single-Phase Hybrid)","SH-T (Three-Phase Hybrid High-Power)","SG-RT (Three-Phase String)","SG-CX (Three-Phase Commercial)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.5.7"},"path":"drivers/sungrow.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"7753131e8e99c4b7c4df9b934600e1180075f30ff896df39ab472dbb6f51bb80","size_bytes":50891,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-sungrow-v1.5.7-7753131e8e99c4b7.lua","version":"1.5.7"},{"channel":"beta","control_enabled":true,"filename":"tesla_vehicle.lua","host_api":{"max":1,"min":1},"id":"tesla_vehicle","metadata":{"capabilities":["vehicle"],"description":"Read-only vehicle SoC + charge limit via Tesla API-compatible HTTP endpoint (e.g. TeslaBLEProxy).","filename":"tesla_vehicle.lua","homepage":"https://github.com/wimaha/TeslaBleHttpProxy","host_api_max":1,"host_api_min":1,"id":"tesla_vehicle","manufacturer":"Tesla","name":"Tesla Vehicle (BLE Proxy)","path":"drivers/tesla_vehicle.lua","protocols":["http"],"read_only":false,"source":"upstream","tested_models":["Tesla Vehicle (BLE Proxy)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"0.2.0"},"path":"drivers/tesla_vehicle.lua","permissions":["http.get","http.post"],"read_only":false,"sha256":"00dbf0cdb4deca72a473f1370b4f896627da8927aa50b23b66a3e7d03aaf6a5f","size_bytes":25051,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-tesla_vehicle-v0.2.0-00dbf0cdb4deca72.lua","version":"0.2.0"},{"channel":"beta","control_enabled":true,"filename":"tibber.lua","host_api":{"max":1,"min":1},"id":"tibber","metadata":{"capabilities":["meter"],"description":"Tibber Pulse grid meter via GraphQL-transport-ws liveMeasurement stream.","filename":"tibber.lua","homepage":"https://tibber.com","host_api_max":1,"host_api_min":1,"id":"tibber","manufacturer":"Tibber","name":"Tibber Pulse","path":"drivers/tibber.lua","protocols":["http"],"read_only":false,"source":"upstream","tested_models":["Tibber Pulse"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.1.0"},"path":"drivers/tibber.lua","permissions":["http.get","http.post"],"read_only":false,"sha256":"6c92efee79d2101fe3f1d3547c3b7ef328d53b7f96f1627c4264e67f7dd1312c","size_bytes":14223,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-tibber-v1.1.0-6c92efee79d2101f.lua","version":"1.1.0"},{"channel":"beta","control_enabled":true,"filename":"varta.lua","host_api":{"max":1,"min":1},"id":"varta","metadata":{"capabilities":["battery","meter"],"filename":"varta.lua","host_api_max":1,"host_api_min":1,"id":"varta","manufacturer":"VARTA","name":"Varta","path":"drivers/varta.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["pulse neo","element","link"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.1.1"},"path":"drivers/varta.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"c6e4657402a31e3d78ff463efc919077b38ddc4a0cf302580ec53455a84dd8ef","size_bytes":4496,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-varta-v1.1.1-c6e4657402a31e3d.lua","version":"1.1.1"},{"channel":"beta","control_enabled":true,"filename":"victron.lua","host_api":{"max":1,"min":1},"id":"victron","metadata":{"capabilities":["pv","battery","meter"],"description":"Victron Cerbo GX / Venus GX monitoring via Modbus TCP.","filename":"victron.lua","homepage":"https://www.victronenergy.com","host_api_max":1,"host_api_min":1,"id":"victron","manufacturer":"Victron Energy","name":"Victron Energy GX","path":"drivers/victron.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["GX Devices","MultiPlus-II","Quattro-II","SmartSolar MPPT","SmartShunt"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.1.1"},"path":"drivers/victron.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"c9e31044681999f60b872d0f9e1441be8f67124cb1ca789a9394c3896a5b0333","size_bytes":9898,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-victron-v2.1.1-c9e31044681999f6.lua","version":"2.1.1"},{"channel":"beta","control_enabled":false,"filename":"victron_mqtt.lua","host_api":{"max":1,"min":1},"id":"victron_mqtt","metadata":{"capabilities":["pv","battery","meter"],"filename":"victron_mqtt.lua","host_api_max":1,"host_api_min":1,"id":"victron_mqtt","manufacturer":"Victron Energy","name":"Victron Mqtt","path":"drivers/victron_mqtt.lua","protocols":["mqtt"],"read_only":true,"source":"upstream","tested_models":["GX Devices","MultiPlus-II","Quattro-II","SmartSolar MPPT","SmartShunt"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.3"},"path":"drivers/victron_mqtt.lua","permissions":["mqtt.subscribe"],"read_only":true,"sha256":"e08808c83d7a85921ffea273b65ed0e7c19b07672f16209fed5b4f340528624e","size_bytes":8127,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-victron_mqtt-v1.0.3-e08808c83d7a8592.lua","version":"1.0.3"},{"channel":"beta","control_enabled":false,"filename":"wallbox.lua","host_api":{"max":1,"min":1},"id":"wallbox","metadata":{"capabilities":["v2x_charger"],"filename":"wallbox.lua","host_api_max":1,"host_api_min":1,"id":"wallbox","manufacturer":"Wallbox","name":"Wallbox","path":"drivers/wallbox.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["Commander/Pulsar"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.3"},"path":"drivers/wallbox.lua","permissions":["modbus.read"],"read_only":true,"sha256":"4414bb42492b346a53b55ec3544bde3635955e538d16a8be356be44c78641c76","size_bytes":5107,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-wallbox-v1.0.3-4414bb42492b346a.lua","version":"1.0.3"},{"channel":"beta","control_enabled":false,"filename":"zap.lua","host_api":{"max":1,"min":1},"id":"zap","metadata":{"capabilities":["meter","pv","battery","v2x_charger"],"description":"Official Sourceful Zap local-API integration for meter, PV, battery and V2X telemetry; safe leased control is pending firmware support.","filename":"zap.lua","homepage":"https://developer.sourceful.energy/docs/api/zap-local-api","host_api_max":1,"host_api_min":1,"id":"zap","manufacturer":"Sourceful","name":"Sourceful Zap","path":"drivers/zap.lua","protocols":["http"],"read_only":true,"source":"upstream","tested_models":["Sourceful Zap"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.0.1"},"path":"drivers/zap.lua","permissions":["http.get"],"read_only":true,"sha256":"a1da3708b24edd7c05f2ed998d4f3df641276d4d74ab068d8601c551450b2ebf","size_bytes":33037,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-zap-v2.0.1-a1da3708b24edd7c.lua","version":"2.0.1"},{"channel":"beta","control_enabled":false,"filename":"zaptec.lua","host_api":{"max":1,"min":1},"id":"zaptec","metadata":{"capabilities":["v2x_charger"],"filename":"zaptec.lua","host_api_max":1,"host_api_min":1,"id":"zaptec","manufacturer":"Zaptec","name":"Zaptec","path":"drivers/zaptec.lua","protocols":["http"],"read_only":true,"source":"upstream","tested_models":["Zaptec"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.1"},"path":"drivers/zaptec.lua","permissions":["http.get"],"read_only":true,"sha256":"d940f5b6fff111ccaaeb79f95444f076552c67e1535117e0963b523eb7ff4e81","size_bytes":4531,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-zaptec-v1.0.1-d940f5b6fff111cc.lua","version":"1.0.1"},{"channel":"beta","control_enabled":true,"filename":"zuidwijk_p1.lua","host_api":{"max":1,"min":1},"id":"zuidwijk_p1","metadata":{"capabilities":["meter"],"description":"Dutch DSMR P1 smart-meter via Zuidwijk Serial-to-Ethernet bridge (raw TCP, port 23).","filename":"zuidwijk_p1.lua","homepage":"https://www.zuidwijk.com/product/p1-reader-ethernet/","host_api_max":1,"host_api_min":1,"id":"zuidwijk_p1","manufacturer":"Zuidwijk","name":"Zuidwijk P1 Reader Ethernet","path":"drivers/zuidwijk_p1.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["Zuidwijk P1 Reader Ethernet"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.1.0"},"path":"drivers/zuidwijk_p1.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"3d540f0d86ff26458557d7d8fd011003332152b5f643761829ea17e5d8796560","size_bytes":18115,"source_commit":"4b5b474adfa0a40604611516edfb471f38e79b08","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-zuidwijk_p1-v1.1.0-3d540f0d86ff2645.lua","version":"1.1.0"}],"generated_at":"2026-07-31T10:38:29Z","history":[{"channel":"beta","control_enabled":false,"filename":"abb_meter.lua","host_api":{"max":1,"min":1},"id":"abb_meter","metadata":{"capabilities":["meter"],"filename":"abb_meter.lua","host_api_max":1,"host_api_min":1,"id":"abb_meter","manufacturer":"ABB","name":"Abb Meter","path":"drivers/abb_meter.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["B Series / M4M"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/abb_meter.lua","permissions":["modbus.read"],"read_only":true,"sha256":"c7ad2e2d1b0c81bdb040eb7d65903c9e547836e29534e41c62150467e0847c9c","size_bytes":5179,"source_commit":"535ee3e4ae0134b64081ba8a5dc71a4860286a58","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-abb_meter-v1.0.0-c7ad2e2d1b0c81bd.lua","version":"1.0.0"},{"channel":"beta","control_enabled":false,"filename":"abb_meter.lua","host_api":{"max":1,"min":1},"id":"abb_meter","metadata":{"capabilities":["meter"],"filename":"abb_meter.lua","host_api_max":1,"host_api_min":1,"id":"abb_meter","manufacturer":"ABB","name":"Abb Meter","path":"drivers/abb_meter.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["B Series / M4M"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.2"},"path":"drivers/abb_meter.lua","permissions":["modbus.read"],"read_only":true,"sha256":"b19bfce6ad676230eece5f7295e957e5eebb6d8b1834e1cc5ff2706cd36127f6","size_bytes":5215,"source_commit":"3f57bff52a393a88d0f81f9226e0b10d1c3448fb","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-abb_meter-v1.0.2-b19bfce6ad676230.lua","version":"1.0.2"},{"channel":"beta","control_enabled":false,"filename":"abb_meter.lua","host_api":{"max":1,"min":1},"id":"abb_meter","metadata":{"capabilities":["meter"],"filename":"abb_meter.lua","host_api_max":1,"host_api_min":1,"id":"abb_meter","manufacturer":"ABB","name":"Abb Meter","path":"drivers/abb_meter.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["B Series / M4M"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.4"},"path":"drivers/abb_meter.lua","permissions":["modbus.read"],"read_only":true,"sha256":"e87106a5703a0e9bb750c027e2ea9ee528eef824f7a3ed26ef21a87db5cb0e19","size_bytes":5227,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-abb_meter-v1.0.4-e87106a5703a0e9b.lua","version":"1.0.4"},{"channel":"beta","control_enabled":false,"filename":"abb_meter.lua","host_api":{"max":1,"min":1},"id":"abb_meter","metadata":{"capabilities":["meter"],"filename":"abb_meter.lua","host_api_max":1,"host_api_min":1,"id":"abb_meter","manufacturer":"ABB","name":"Abb Meter","path":"drivers/abb_meter.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["B Series / M4M"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.5"},"path":"drivers/abb_meter.lua","permissions":["modbus.read"],"read_only":true,"sha256":"0ab5c25d7b58ca09cc0e9b8ac1a01ecd5120102fc97b2752d692ef76dd067c9b","size_bytes":5132,"source_commit":"619659c9c161289fdb890fe1f7c5676028f84fc5","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-abb_meter-v1.0.5-0ab5c25d7b58ca09.lua","version":"1.0.5"},{"channel":"beta","control_enabled":false,"filename":"abb_terra.lua","host_api":{"max":1,"min":1},"id":"abb_terra","metadata":{"capabilities":["v2x_charger"],"filename":"abb_terra.lua","host_api_max":1,"host_api_min":1,"id":"abb_terra","manufacturer":"ABB","name":"Abb Terra","path":"drivers/abb_terra.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["Terra AC"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/abb_terra.lua","permissions":["modbus.read"],"read_only":true,"sha256":"8140d1b96d509f630ef6c4c3f6a45494f4ed4b5ef32ee82942e964728348c7ab","size_bytes":4892,"source_commit":"535ee3e4ae0134b64081ba8a5dc71a4860286a58","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-abb_terra-v1.0.0-8140d1b96d509f63.lua","version":"1.0.0"},{"channel":"beta","control_enabled":false,"filename":"abb_terra.lua","host_api":{"max":1,"min":1},"id":"abb_terra","metadata":{"capabilities":["v2x_charger"],"filename":"abb_terra.lua","host_api_max":1,"host_api_min":1,"id":"abb_terra","manufacturer":"ABB","name":"Abb Terra","path":"drivers/abb_terra.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["Terra AC"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.1"},"path":"drivers/abb_terra.lua","permissions":["modbus.read"],"read_only":true,"sha256":"b74ab8e53ce3534fe74bceeaf97d0140b70e387b08f66459eea7396e8f293edf","size_bytes":4895,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-abb_terra-v1.0.1-b74ab8e53ce3534f.lua","version":"1.0.1"},{"channel":"beta","control_enabled":false,"filename":"abb_terra.lua","host_api":{"max":1,"min":1},"id":"abb_terra","metadata":{"capabilities":["v2x_charger"],"filename":"abb_terra.lua","host_api_max":1,"host_api_min":1,"id":"abb_terra","manufacturer":"ABB","name":"Abb Terra","path":"drivers/abb_terra.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["Terra AC"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.2"},"path":"drivers/abb_terra.lua","permissions":["modbus.read"],"read_only":true,"sha256":"cd0af9a3d22ef287d30aa2f3265b3e5bd40ffc780249132d799e6dae181bc83b","size_bytes":4800,"source_commit":"619659c9c161289fdb890fe1f7c5676028f84fc5","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-abb_terra-v1.0.2-cd0af9a3d22ef287.lua","version":"1.0.2"},{"channel":"beta","control_enabled":false,"filename":"acrel.lua","host_api":{"max":1,"min":1},"id":"acrel","metadata":{"capabilities":["meter"],"filename":"acrel.lua","host_api_max":1,"host_api_min":1,"id":"acrel","manufacturer":"Acrel","name":"Acrel","path":"drivers/acrel.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["DTSD Series"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/acrel.lua","permissions":["modbus.read"],"read_only":true,"sha256":"a46b77040e4795bc62b025a83b14c4341438ece160f698f868304db57163aee7","size_bytes":4725,"source_commit":"535ee3e4ae0134b64081ba8a5dc71a4860286a58","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-acrel-v1.0.0-a46b77040e4795bc.lua","version":"1.0.0"},{"channel":"beta","control_enabled":false,"filename":"acrel.lua","host_api":{"max":1,"min":1},"id":"acrel","metadata":{"capabilities":["meter"],"filename":"acrel.lua","host_api_max":1,"host_api_min":1,"id":"acrel","manufacturer":"Acrel","name":"Acrel","path":"drivers/acrel.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["DTSD Series"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.1"},"path":"drivers/acrel.lua","permissions":["modbus.read"],"read_only":true,"sha256":"ddf5a79ac249d3d3dcdf2b2848ce3c6d635c66566e341d3cce05849a16eaf135","size_bytes":4734,"source_commit":"3f57bff52a393a88d0f81f9226e0b10d1c3448fb","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-acrel-v1.0.1-ddf5a79ac249d3d3.lua","version":"1.0.1"},{"channel":"beta","control_enabled":false,"filename":"acrel.lua","host_api":{"max":1,"min":1},"id":"acrel","metadata":{"capabilities":["meter"],"filename":"acrel.lua","host_api_max":1,"host_api_min":1,"id":"acrel","manufacturer":"Acrel","name":"Acrel","path":"drivers/acrel.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["DTSD Series"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.2"},"path":"drivers/acrel.lua","permissions":["modbus.read"],"read_only":true,"sha256":"8ad99e31fa34162452a95bad33cf6dfba2c2ea2ddb4b5945e8f8892e554b357e","size_bytes":4746,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-acrel-v1.0.2-8ad99e31fa341624.lua","version":"1.0.2"},{"channel":"beta","control_enabled":false,"filename":"acrel.lua","host_api":{"max":1,"min":1},"id":"acrel","metadata":{"capabilities":["meter"],"filename":"acrel.lua","host_api_max":1,"host_api_min":1,"id":"acrel","manufacturer":"Acrel","name":"Acrel","path":"drivers/acrel.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["DTSD Series"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.3"},"path":"drivers/acrel.lua","permissions":["modbus.read"],"read_only":true,"sha256":"7542e463b558e508d6033b5465cb1e9bcaa8eec73c2f225e8aaf602d39de49d1","size_bytes":4651,"source_commit":"619659c9c161289fdb890fe1f7c5676028f84fc5","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-acrel-v1.0.3-7542e463b558e508.lua","version":"1.0.3"},{"channel":"beta","control_enabled":false,"filename":"alfen.lua","host_api":{"max":1,"min":1},"id":"alfen","metadata":{"capabilities":["v2x_charger"],"filename":"alfen.lua","host_api_max":1,"host_api_min":1,"id":"alfen","manufacturer":"Alfen","name":"Alfen","path":"drivers/alfen.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["Eve Series"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/alfen.lua","permissions":["modbus.read"],"read_only":true,"sha256":"025b7320621530fe1cd1f9beff391092bf859bec9c33b31af5ea6fe3de757fe6","size_bytes":5026,"source_commit":"535ee3e4ae0134b64081ba8a5dc71a4860286a58","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-alfen-v1.0.0-025b7320621530fe.lua","version":"1.0.0"},{"channel":"beta","control_enabled":false,"filename":"alfen.lua","host_api":{"max":1,"min":1},"id":"alfen","metadata":{"capabilities":["v2x_charger"],"filename":"alfen.lua","host_api_max":1,"host_api_min":1,"id":"alfen","manufacturer":"Alfen","name":"Alfen","path":"drivers/alfen.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["Eve Series"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.2"},"path":"drivers/alfen.lua","permissions":["modbus.read"],"read_only":true,"sha256":"3b85cb033132c4ccba64f02fbb484817d35288360107e6ae2dd3922e2cf01b73","size_bytes":5837,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-alfen-v1.0.2-3b85cb033132c4cc.lua","version":"1.0.2"},{"channel":"beta","control_enabled":false,"filename":"alfen.lua","host_api":{"max":1,"min":1},"id":"alfen","metadata":{"capabilities":["v2x_charger"],"filename":"alfen.lua","host_api_max":1,"host_api_min":1,"id":"alfen","manufacturer":"Alfen","name":"Alfen","path":"drivers/alfen.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["Eve Series"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.3"},"path":"drivers/alfen.lua","permissions":["modbus.read"],"read_only":true,"sha256":"6f731b07691b775b1925196acda0eb1ba7ca7f33fd78479757e33b317af2ae41","size_bytes":5742,"source_commit":"619659c9c161289fdb890fe1f7c5676028f84fc5","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-alfen-v1.0.3-6f731b07691b775b.lua","version":"1.0.3"},{"channel":"beta","control_enabled":false,"filename":"alphaess.lua","host_api":{"max":1,"min":1},"id":"alphaess","metadata":{"capabilities":["pv","battery","meter"],"filename":"alphaess.lua","host_api_max":1,"host_api_min":1,"id":"alphaess","manufacturer":"AlphaESS","name":"Alphaess","path":"drivers/alphaess.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["Smile Series","G2 Series"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/alphaess.lua","permissions":["modbus.read"],"read_only":true,"sha256":"5a8b3212388ab7eb47a7ff6e046ba6aa86d2014859fc9c31dfe2f11d82da261d","size_bytes":5422,"source_commit":"3f57bff52a393a88d0f81f9226e0b10d1c3448fb","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-alphaess-v1.0.0-5a8b3212388ab7eb.lua","version":"1.0.0"},{"channel":"beta","control_enabled":false,"filename":"alphaess.lua","host_api":{"max":1,"min":1},"id":"alphaess","metadata":{"capabilities":["pv","battery","meter"],"filename":"alphaess.lua","host_api_max":1,"host_api_min":1,"id":"alphaess","manufacturer":"AlphaESS","name":"Alphaess","path":"drivers/alphaess.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["Smile Series","G2 Series"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.1"},"path":"drivers/alphaess.lua","permissions":["modbus.read"],"read_only":true,"sha256":"7b716421cf72fe00778ee1ab042b3f2369651a718dbb5500e176c19c447f1eec","size_bytes":5432,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-alphaess-v1.0.1-7b716421cf72fe00.lua","version":"1.0.1"},{"channel":"beta","control_enabled":true,"filename":"alphaess.lua","host_api":{"max":1,"min":1},"id":"alphaess","metadata":{"capabilities":["pv","battery","meter"],"filename":"alphaess.lua","host_api_max":1,"host_api_min":1,"id":"alphaess","manufacturer":"AlphaESS","name":"Alphaess","path":"drivers/alphaess.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["Smile Series","G2 Series"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.1.0"},"path":"drivers/alphaess.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"9b872511559046d610e0e89a887a0b09d8f0daf0d7ed6e15b76b87b2f1fda665","size_bytes":4763,"source_commit":"619659c9c161289fdb890fe1f7c5676028f84fc5","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-alphaess-v1.1.0-9b872511559046d6.lua","version":"1.1.0"},{"channel":"beta","control_enabled":false,"filename":"ambibox.lua","host_api":{"max":1,"min":1},"id":"ambibox","metadata":{"capabilities":["battery","meter","v2x_charger"],"filename":"ambibox.lua","host_api_max":1,"host_api_min":1,"id":"ambibox","manufacturer":"Ambibox","name":"Ambibox","path":"drivers/ambibox.lua","protocols":["mqtt"],"read_only":true,"source":"upstream","tested_models":["V2X Charger"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.1.1"},"path":"drivers/ambibox.lua","permissions":["mqtt.subscribe"],"read_only":true,"sha256":"5568359ba895088b3183f2b254ad9e4ca0f574bee7a8501612ae41f09bd50cea","size_bytes":9576,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-ambibox-v1.1.1-5568359ba895088b.lua","version":"1.1.1"},{"channel":"beta","control_enabled":false,"filename":"ambibox_v2x.lua","host_api":{"max":1,"min":1},"id":"ambibox_v2x","metadata":{"capabilities":["v2x_charger"],"description":"Ambibox bidirectional V2X charger via MQTT.","filename":"ambibox_v2x.lua","host_api_max":1,"host_api_min":1,"id":"ambibox_v2x","manufacturer":"Ambibox","name":"Ambibox V2X","path":"drivers/ambibox_v2x.lua","protocols":["mqtt"],"read_only":true,"source":"upstream","tested_models":["Ambibox V2X"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/ambibox_v2x.lua","permissions":["mqtt.subscribe"],"read_only":true,"sha256":"9f8bc0a816c8f072db8f5550d74c4e0914e49f1a8ec00af7739599b93ba71194","size_bytes":9932,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-ambibox_v2x-v1.0.0-9f8bc0a816c8f072.lua","version":"1.0.0"},{"channel":"beta","control_enabled":false,"filename":"atmoce.lua","host_api":{"max":1,"min":1},"id":"atmoce","metadata":{"capabilities":["battery","meter","pv"],"filename":"atmoce.lua","host_api_max":1,"host_api_min":1,"id":"atmoce","manufacturer":"ATMOCE","name":"Atmoce","path":"drivers/atmoce.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["MC100-T Three-Phase M-Combiner","MC100 M-Combiner","MG100 M-Gateway"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/atmoce.lua","permissions":["modbus.read"],"read_only":true,"sha256":"c22e985e5402c7a1427e3cbfff7a03405d22a5d1cd5149e3bee79f0da70302b3","size_bytes":7779,"source_commit":"535ee3e4ae0134b64081ba8a5dc71a4860286a58","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-atmoce-v1.0.0-c22e985e5402c7a1.lua","version":"1.0.0"},{"channel":"beta","control_enabled":false,"filename":"atmoce.lua","host_api":{"max":1,"min":1},"id":"atmoce","metadata":{"capabilities":["battery","meter","pv"],"filename":"atmoce.lua","host_api_max":1,"host_api_min":1,"id":"atmoce","manufacturer":"ATMOCE","name":"Atmoce","path":"drivers/atmoce.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["MC100-T Three-Phase M-Combiner","MC100 M-Combiner","MG100 M-Gateway"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.2"},"path":"drivers/atmoce.lua","permissions":["modbus.read"],"read_only":true,"sha256":"2fa3d7192972ffbacb64a61bc7dc9439ba3b79c9c01f4a89276fa2be8ef293d8","size_bytes":7953,"source_commit":"3f57bff52a393a88d0f81f9226e0b10d1c3448fb","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-atmoce-v1.0.2-2fa3d7192972ffba.lua","version":"1.0.2"},{"channel":"beta","control_enabled":false,"filename":"atmoce.lua","host_api":{"max":1,"min":1},"id":"atmoce","metadata":{"capabilities":["battery","meter","pv"],"filename":"atmoce.lua","host_api_max":1,"host_api_min":1,"id":"atmoce","manufacturer":"ATMOCE","name":"Atmoce","path":"drivers/atmoce.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["MC100-T Three-Phase M-Combiner","MC100 M-Combiner","MG100 M-Gateway"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.3"},"path":"drivers/atmoce.lua","permissions":["modbus.read"],"read_only":true,"sha256":"5a3b8563a5b2a2529b876290c0d1b24403ebdf2cbfe9de4f987dd05fef502640","size_bytes":7907,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-atmoce-v1.0.3-5a3b8563a5b2a252.lua","version":"1.0.3"},{"channel":"beta","control_enabled":true,"filename":"atmoce.lua","host_api":{"max":1,"min":1},"id":"atmoce","metadata":{"capabilities":["battery","meter","pv"],"filename":"atmoce.lua","host_api_max":1,"host_api_min":1,"id":"atmoce","manufacturer":"ATMOCE","name":"Atmoce","path":"drivers/atmoce.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["MC100-T Three-Phase M-Combiner","MC100 M-Combiner","MG100 M-Gateway"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.1.0"},"path":"drivers/atmoce.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"65fcf2c30300841728dce6dfa618f1ac40a0789f3cef90abc59266399503c5f6","size_bytes":7238,"source_commit":"619659c9c161289fdb890fe1f7c5676028f84fc5","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-atmoce-v1.1.0-65fcf2c303008417.lua","version":"1.1.0"},{"channel":"beta","control_enabled":false,"filename":"carlo_gavazzi.lua","host_api":{"max":1,"min":1},"id":"carlo_gavazzi","metadata":{"capabilities":["meter"],"filename":"carlo_gavazzi.lua","host_api_max":1,"host_api_min":1,"id":"carlo_gavazzi","manufacturer":"Carlo Gavazzi","name":"Carlo Gavazzi","path":"drivers/carlo_gavazzi.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["EM Series"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/carlo_gavazzi.lua","permissions":["modbus.read"],"read_only":true,"sha256":"d363a1a9b54267593cb0a39a63236906942b5d61a7cab5aadcf89726720fae6f","size_bytes":5016,"source_commit":"535ee3e4ae0134b64081ba8a5dc71a4860286a58","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-carlo_gavazzi-v1.0.0-d363a1a9b5426759.lua","version":"1.0.0"},{"channel":"beta","control_enabled":false,"filename":"carlo_gavazzi.lua","host_api":{"max":1,"min":1},"id":"carlo_gavazzi","metadata":{"capabilities":["meter"],"filename":"carlo_gavazzi.lua","host_api_max":1,"host_api_min":1,"id":"carlo_gavazzi","manufacturer":"Carlo Gavazzi","name":"Carlo Gavazzi","path":"drivers/carlo_gavazzi.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["EM Series"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.2"},"path":"drivers/carlo_gavazzi.lua","permissions":["modbus.read"],"read_only":true,"sha256":"6851963d27eb5504e08605f9de7498d14272540245e4e7ab97cacc898e06c3e9","size_bytes":5819,"source_commit":"3f57bff52a393a88d0f81f9226e0b10d1c3448fb","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-carlo_gavazzi-v1.0.2-6851963d27eb5504.lua","version":"1.0.2"},{"channel":"beta","control_enabled":false,"filename":"carlo_gavazzi.lua","host_api":{"max":1,"min":1},"id":"carlo_gavazzi","metadata":{"capabilities":["meter"],"filename":"carlo_gavazzi.lua","host_api_max":1,"host_api_min":1,"id":"carlo_gavazzi","manufacturer":"Carlo Gavazzi","name":"Carlo Gavazzi","path":"drivers/carlo_gavazzi.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["EM Series"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.3"},"path":"drivers/carlo_gavazzi.lua","permissions":["modbus.read"],"read_only":true,"sha256":"276826c0b1d41be27a2f3a9f8662ac42a8c00005bc14bca2740f155450de5a03","size_bytes":5831,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-carlo_gavazzi-v1.0.3-276826c0b1d41be2.lua","version":"1.0.3"},{"channel":"beta","control_enabled":false,"filename":"carlo_gavazzi.lua","host_api":{"max":1,"min":1},"id":"carlo_gavazzi","metadata":{"capabilities":["meter"],"filename":"carlo_gavazzi.lua","host_api_max":1,"host_api_min":1,"id":"carlo_gavazzi","manufacturer":"Carlo Gavazzi","name":"Carlo Gavazzi","path":"drivers/carlo_gavazzi.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["EM Series"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.4"},"path":"drivers/carlo_gavazzi.lua","permissions":["modbus.read"],"read_only":true,"sha256":"4c44bb15be3124959d99f28c7bdca1229925b276bf215b177b5e06322f73cf5a","size_bytes":5736,"source_commit":"619659c9c161289fdb890fe1f7c5676028f84fc5","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-carlo_gavazzi-v1.0.4-4c44bb15be312495.lua","version":"1.0.4"},{"channel":"beta","control_enabled":false,"filename":"chint.lua","host_api":{"max":1,"min":1},"id":"chint","metadata":{"capabilities":["meter"],"filename":"chint.lua","host_api_max":1,"host_api_min":1,"id":"chint","manufacturer":"Chint","name":"Chint","path":"drivers/chint.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["DSU Series"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/chint.lua","permissions":["modbus.read"],"read_only":true,"sha256":"1c127c754aac481ab6e880f9e6193ec8113569c702527fcd2af0116c9b564d1d","size_bytes":4622,"source_commit":"535ee3e4ae0134b64081ba8a5dc71a4860286a58","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-chint-v1.0.0-1c127c754aac481a.lua","version":"1.0.0"},{"channel":"beta","control_enabled":false,"filename":"chint.lua","host_api":{"max":1,"min":1},"id":"chint","metadata":{"capabilities":["meter"],"filename":"chint.lua","host_api_max":1,"host_api_min":1,"id":"chint","manufacturer":"Chint","name":"Chint","path":"drivers/chint.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["DSU Series"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.2"},"path":"drivers/chint.lua","permissions":["modbus.read"],"read_only":true,"sha256":"4868b3ea4f3d9ae1b7f21b7b1cb55fac0b3ad46a544561b6a4d716aeb351edca","size_bytes":5437,"source_commit":"3f57bff52a393a88d0f81f9226e0b10d1c3448fb","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-chint-v1.0.2-4868b3ea4f3d9ae1.lua","version":"1.0.2"},{"channel":"beta","control_enabled":false,"filename":"chint.lua","host_api":{"max":1,"min":1},"id":"chint","metadata":{"capabilities":["meter"],"filename":"chint.lua","host_api_max":1,"host_api_min":1,"id":"chint","manufacturer":"Chint","name":"Chint","path":"drivers/chint.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["DSU Series"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.3"},"path":"drivers/chint.lua","permissions":["modbus.read"],"read_only":true,"sha256":"be37583c2163a5eece72caa1fb7324877f9429a9626de44bbdd46e1f18c1db44","size_bytes":5449,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-chint-v1.0.3-be37583c2163a5ee.lua","version":"1.0.3"},{"channel":"beta","control_enabled":false,"filename":"chint.lua","host_api":{"max":1,"min":1},"id":"chint","metadata":{"capabilities":["meter"],"filename":"chint.lua","host_api_max":1,"host_api_min":1,"id":"chint","manufacturer":"Chint","name":"Chint","path":"drivers/chint.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["DSU Series"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.4"},"path":"drivers/chint.lua","permissions":["modbus.read"],"read_only":true,"sha256":"eb39957ba18d77015f277cafedfcf7a0b8b55030729d3aab952f0d54307188ab","size_bytes":5354,"source_commit":"619659c9c161289fdb890fe1f7c5676028f84fc5","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-chint-v1.0.4-eb39957ba18d7701.lua","version":"1.0.4"},{"channel":"beta","control_enabled":false,"filename":"circutor.lua","host_api":{"max":1,"min":1},"id":"circutor","metadata":{"capabilities":["meter"],"filename":"circutor.lua","host_api_max":1,"host_api_min":1,"id":"circutor","manufacturer":"Circutor","name":"Circutor","path":"drivers/circutor.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["CEM / CVM"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/circutor.lua","permissions":["modbus.read"],"read_only":true,"sha256":"181bc55e4839f0041f4187f9e0e6bf2fa07053c0df9cecf00ab655fad8e355d6","size_bytes":4979,"source_commit":"535ee3e4ae0134b64081ba8a5dc71a4860286a58","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-circutor-v1.0.0-181bc55e4839f004.lua","version":"1.0.0"},{"channel":"beta","control_enabled":false,"filename":"circutor.lua","host_api":{"max":1,"min":1},"id":"circutor","metadata":{"capabilities":["meter"],"filename":"circutor.lua","host_api_max":1,"host_api_min":1,"id":"circutor","manufacturer":"Circutor","name":"Circutor","path":"drivers/circutor.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["CEM / CVM"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.2"},"path":"drivers/circutor.lua","permissions":["modbus.read"],"read_only":true,"sha256":"d99f9f4f85a2ba229d7cfb65fd34d3047dd0d453504670dc7f4e5269cdb49b4d","size_bytes":5782,"source_commit":"3f57bff52a393a88d0f81f9226e0b10d1c3448fb","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-circutor-v1.0.2-d99f9f4f85a2ba22.lua","version":"1.0.2"},{"channel":"beta","control_enabled":false,"filename":"circutor.lua","host_api":{"max":1,"min":1},"id":"circutor","metadata":{"capabilities":["meter"],"filename":"circutor.lua","host_api_max":1,"host_api_min":1,"id":"circutor","manufacturer":"Circutor","name":"Circutor","path":"drivers/circutor.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["CEM / CVM"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.3"},"path":"drivers/circutor.lua","permissions":["modbus.read"],"read_only":true,"sha256":"65e46320817ca9415ca1c8a82df9a41997f0fd3f7f885e0547e7efb8b4aa10d7","size_bytes":5794,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-circutor-v1.0.3-65e46320817ca941.lua","version":"1.0.3"},{"channel":"beta","control_enabled":false,"filename":"circutor.lua","host_api":{"max":1,"min":1},"id":"circutor","metadata":{"capabilities":["meter"],"filename":"circutor.lua","host_api_max":1,"host_api_min":1,"id":"circutor","manufacturer":"Circutor","name":"Circutor","path":"drivers/circutor.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["CEM / CVM"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.4"},"path":"drivers/circutor.lua","permissions":["modbus.read"],"read_only":true,"sha256":"8ec745c536ba6b0a7e21d2a6d6267bd38b4eb88d59b364aba35b43ed56c01f64","size_bytes":5699,"source_commit":"619659c9c161289fdb890fe1f7c5676028f84fc5","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-circutor-v1.0.4-8ec745c536ba6b0a.lua","version":"1.0.4"},{"channel":"beta","control_enabled":false,"filename":"ctek.lua","host_api":{"max":1,"min":1},"id":"ctek","metadata":{"capabilities":["ev"],"description":"CTEK Chargestorm Connected 2/3 via Modbus/TCP Automation API v1 (CSOS ≥ 4.9.3). Full telemetry + current-limit control.","filename":"ctek.lua","homepage":"https://www.ctek.com","host_api_max":1,"host_api_min":1,"id":"ctek","manufacturer":"CTEK","name":"CTEK Chargestorm (API v1)","path":"drivers/ctek.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["CTEK Chargestorm (API v1)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"0.2.0"},"path":"drivers/ctek.lua","permissions":["modbus.read"],"read_only":true,"sha256":"0e4b847c759027283bd9f09e97a8c221ff29867919dacffc5d9b2e0ed1aed9d6","size_bytes":15951,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-ctek-v0.2.0-0e4b847c75902728.lua","version":"0.2.0"},{"channel":"beta","control_enabled":true,"filename":"ctek.lua","host_api":{"max":1,"min":1},"id":"ctek","metadata":{"capabilities":["ev"],"description":"CTEK Chargestorm Connected 2/3 via Modbus/TCP Automation API v1 (CSOS ≥ 4.9.3). Full telemetry + current-limit control.","filename":"ctek.lua","homepage":"https://www.ctek.com","host_api_max":1,"host_api_min":1,"id":"ctek","manufacturer":"CTEK","name":"CTEK Chargestorm (API v1)","path":"drivers/ctek.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["CTEK Chargestorm (API v1)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"0.3.0"},"path":"drivers/ctek.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"ebbb8f0239ccae0ad8f308b9efa9356762022a978da551dce2dcaaad265b74ae","size_bytes":15282,"source_commit":"619659c9c161289fdb890fe1f7c5676028f84fc5","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-ctek-v0.3.0-ebbb8f0239ccae0a.lua","version":"0.3.0"},{"channel":"beta","control_enabled":false,"filename":"ctek_hybrid.lua","host_api":{"max":1,"min":1},"id":"ctek_hybrid","metadata":{"capabilities":["ev"],"description":"CTEK Chargestorm Connected 2/3 — MQTT for state + live telemetry (preferred), Modbus/TCP for control + telemetry fallback.","filename":"ctek_hybrid.lua","homepage":"https://www.ctek.com","host_api_max":1,"host_api_min":1,"id":"ctek_hybrid","manufacturer":"CTEK","name":"CTEK Chargestorm (Modbus + MQTT)","path":"drivers/ctek_hybrid.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["CTEK Chargestorm (Modbus + MQTT)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"0.2.0"},"path":"drivers/ctek_hybrid.lua","permissions":["modbus.read"],"read_only":true,"sha256":"7f927655e377d7652a582915be63441ed76c8b1e74a2d480bb835aaa6c509163","size_bytes":28289,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-ctek_hybrid-v0.2.0-7f927655e377d765.lua","version":"0.2.0"},{"channel":"beta","control_enabled":true,"filename":"ctek_hybrid.lua","host_api":{"max":1,"min":1},"id":"ctek_hybrid","metadata":{"capabilities":["ev"],"description":"CTEK Chargestorm Connected 2/3 — MQTT for state + live telemetry (preferred), Modbus/TCP for control + telemetry fallback.","filename":"ctek_hybrid.lua","homepage":"https://www.ctek.com","host_api_max":1,"host_api_min":1,"id":"ctek_hybrid","manufacturer":"CTEK","name":"CTEK Chargestorm (Modbus + MQTT)","path":"drivers/ctek_hybrid.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["CTEK Chargestorm (Modbus + MQTT)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"0.3.0"},"path":"drivers/ctek_hybrid.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"5763df5c66aefdbe4ac7306a9175b924f5c1e7372239145dc2aeba38aff17a01","size_bytes":27620,"source_commit":"619659c9c161289fdb890fe1f7c5676028f84fc5","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-ctek_hybrid-v0.3.0-5763df5c66aefdbe.lua","version":"0.3.0"},{"channel":"beta","control_enabled":false,"filename":"ctek_v2.lua","host_api":{"max":1,"min":1},"id":"ctek_v2","metadata":{"capabilities":["ev"],"description":"CTEK Chargestorm Connected 2/3 via Modbus/TCP Automation API v2 (CSOS ≥ 4.9.3). Full telemetry + current-limit control.","filename":"ctek_v2.lua","homepage":"https://www.ctek.com","host_api_max":1,"host_api_min":1,"id":"ctek_v2","manufacturer":"CTEK","name":"CTEK Chargestorm (API v2)","path":"drivers/ctek_v2.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["CTEK Chargestorm (API v2)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"0.2.0"},"path":"drivers/ctek_v2.lua","permissions":["modbus.read"],"read_only":true,"sha256":"c7d8ea557cb8bbb9f6717f553754daf0b2a02179f274e9181787f185cbc50d68","size_bytes":13422,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-ctek_v2-v0.2.0-c7d8ea557cb8bbb9.lua","version":"0.2.0"},{"channel":"beta","control_enabled":true,"filename":"ctek_v2.lua","host_api":{"max":1,"min":1},"id":"ctek_v2","metadata":{"capabilities":["ev"],"description":"CTEK Chargestorm Connected 2/3 via Modbus/TCP Automation API v2 (CSOS ≥ 4.9.3). Full telemetry + current-limit control.","filename":"ctek_v2.lua","homepage":"https://www.ctek.com","host_api_max":1,"host_api_min":1,"id":"ctek_v2","manufacturer":"CTEK","name":"CTEK Chargestorm (API v2)","path":"drivers/ctek_v2.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["CTEK Chargestorm (API v2)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"0.3.0"},"path":"drivers/ctek_v2.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"5ad03236f2d0b97fffec920c1946e44caa54e747b87102414b053fd489924a1b","size_bytes":12753,"source_commit":"619659c9c161289fdb890fe1f7c5676028f84fc5","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-ctek_v2-v0.3.0-5ad03236f2d0b97f.lua","version":"0.3.0"},{"channel":"beta","control_enabled":false,"filename":"deye.lua","host_api":{"max":1,"min":1},"id":"deye","metadata":{"capabilities":["battery","meter","pv"],"filename":"deye.lua","host_api_max":1,"host_api_min":1,"id":"deye","manufacturer":"Deye","name":"Deye","path":"drivers/deye.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["SUN Single-Phase Hybrid (LV)","SUN Three-Phase Hybrid","SUN Three-Phase HV Hybrid","SUN String (Grid-Tie)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.2.0"},"path":"drivers/deye.lua","permissions":["modbus.read"],"read_only":true,"sha256":"57ee5b4d0c48ddc8b56f28515f4ae24149bc671527a9591d7e618e9f34354e60","size_bytes":9585,"source_commit":"3f57bff52a393a88d0f81f9226e0b10d1c3448fb","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-deye-v1.2.0-57ee5b4d0c48ddc8.lua","version":"1.2.0"},{"channel":"beta","control_enabled":false,"filename":"deye.lua","host_api":{"max":1,"min":1},"id":"deye","metadata":{"capabilities":["battery","meter","pv"],"filename":"deye.lua","host_api_max":1,"host_api_min":1,"id":"deye","manufacturer":"Deye","name":"Deye","path":"drivers/deye.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["SUN Single-Phase Hybrid (LV)","SUN Three-Phase Hybrid","SUN Three-Phase HV Hybrid","SUN String (Grid-Tie)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.2.1"},"path":"drivers/deye.lua","permissions":["modbus.read"],"read_only":true,"sha256":"cacf96f5ea100ec6943d4235ea4828f0924e738d609ccfc7dd6527ae35aeb2e2","size_bytes":9641,"source_commit":"470527e8ae0431df8e4d525a70bba72e2f66973f","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-deye-v1.2.1-cacf96f5ea100ec6.lua","version":"1.2.1"},{"channel":"beta","control_enabled":false,"filename":"deye.lua","host_api":{"max":1,"min":1},"id":"deye","metadata":{"capabilities":["battery","meter","pv"],"filename":"deye.lua","host_api_max":1,"host_api_min":1,"id":"deye","manufacturer":"Deye","name":"Deye","path":"drivers/deye.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["SUN Single-Phase Hybrid (LV)","SUN Three-Phase Hybrid","SUN Three-Phase HV Hybrid","SUN String (Grid-Tie)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.2.2"},"path":"drivers/deye.lua","permissions":["modbus.read"],"read_only":true,"sha256":"24ee0d4d70d456e2db8abc8138bc3baf6016567ff277eb7de8e640448b90f5a9","size_bytes":9641,"source_commit":"92f76c413ff51039210ca8642b0debb41d53b794","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-deye-v1.2.2-24ee0d4d70d456e2.lua","version":"1.2.2"},{"channel":"beta","control_enabled":false,"filename":"deye.lua","host_api":{"max":1,"min":1},"id":"deye","metadata":{"capabilities":["battery","meter","pv"],"description":"Deye SUN-SG series hybrid inverters via Modbus. Auto-detects LV vs HV battery at init.","filename":"deye.lua","homepage":"https://www.deyeinverter.com","host_api_max":1,"host_api_min":1,"id":"deye","manufacturer":"Deye","name":"Deye hybrid inverter","path":"drivers/deye.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["SUN Single-Phase Hybrid (LV)","SUN Three-Phase Hybrid","SUN Three-Phase HV Hybrid","SUN String (Grid-Tie)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.0.0"},"path":"drivers/deye.lua","permissions":["modbus.read"],"read_only":true,"sha256":"e3b811291760bbf2654e7d25d7d24cdc8c90174cbcce4d268779b751cfbc9c77","size_bytes":25566,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-deye-v2.0.0-e3b811291760bbf2.lua","version":"2.0.0"},{"channel":"beta","control_enabled":true,"filename":"deye.lua","host_api":{"max":1,"min":1},"id":"deye","metadata":{"capabilities":["battery","meter","pv"],"description":"Deye SUN-SG series hybrid inverters via Modbus. Auto-detects LV vs HV battery at init.","filename":"deye.lua","homepage":"https://www.deyeinverter.com","host_api_max":1,"host_api_min":1,"id":"deye","manufacturer":"Deye","name":"Deye hybrid inverter","path":"drivers/deye.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["SUN Single-Phase Hybrid (LV)","SUN Three-Phase Hybrid","SUN Three-Phase HV Hybrid","SUN String (Grid-Tie)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.1.0"},"path":"drivers/deye.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"3d5bf75e56592990ae8e14ad1bf54ec600f44a7f83c2ac3f8e2c2698f040cb21","size_bytes":24897,"source_commit":"619659c9c161289fdb890fe1f7c5676028f84fc5","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-deye-v2.1.0-3d5bf75e56592990.lua","version":"2.1.0"},{"channel":"beta","control_enabled":false,"filename":"easee.lua","host_api":{"max":1,"min":1},"id":"easee","metadata":{"capabilities":["v2x_charger"],"filename":"easee.lua","host_api_max":1,"host_api_min":1,"id":"easee","manufacturer":"Easee","name":"Easee","path":"drivers/easee.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["Easee"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/easee.lua","permissions":["modbus.read"],"read_only":true,"sha256":"805188bf4c06aa2b1f91abf9bdd3923cc0113a16c8d1c9f3b5b5b17e029f8e64","size_bytes":4381,"source_commit":"535ee3e4ae0134b64081ba8a5dc71a4860286a58","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-easee-v1.0.0-805188bf4c06aa2b.lua","version":"1.0.0"},{"channel":"beta","control_enabled":false,"filename":"easee.lua","host_api":{"max":1,"min":1},"id":"easee","metadata":{"capabilities":["v2x_charger"],"filename":"easee.lua","host_api_max":1,"host_api_min":1,"id":"easee","manufacturer":"Easee","name":"Easee","path":"drivers/easee.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["Easee"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.2"},"path":"drivers/easee.lua","permissions":["modbus.read"],"read_only":true,"sha256":"8e309bdc0a2783708da755e7e6622b8b8b84f4f471f215639e047ea34ae44f01","size_bytes":5202,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-easee-v1.0.2-8e309bdc0a278370.lua","version":"1.0.2"},{"channel":"beta","control_enabled":false,"filename":"easee.lua","host_api":{"max":1,"min":1},"id":"easee","metadata":{"capabilities":["v2x_charger"],"filename":"easee.lua","host_api_max":1,"host_api_min":1,"id":"easee","manufacturer":"Easee","name":"Easee","path":"drivers/easee.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["Easee"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.3"},"path":"drivers/easee.lua","permissions":["modbus.read"],"read_only":true,"sha256":"bbee2a1a472469255f75172ce6bb7b618295380ade094054626ddd70da86f07f","size_bytes":5107,"source_commit":"619659c9c161289fdb890fe1f7c5676028f84fc5","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-easee-v1.0.3-bbee2a1a47246925.lua","version":"1.0.3"},{"channel":"beta","control_enabled":false,"filename":"easee_cloud.lua","host_api":{"max":1,"min":1},"id":"easee_cloud","metadata":{"capabilities":["ev"],"description":"Easee Home/Charge via Cloud REST API. No local protocol needed.","filename":"easee_cloud.lua","homepage":"https://easee.com","host_api_max":1,"host_api_min":1,"id":"easee_cloud","manufacturer":"Easee","name":"Easee Cloud","path":"drivers/easee_cloud.lua","protocols":["http"],"read_only":true,"source":"upstream","tested_models":["Easee Cloud"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.1"},"path":"drivers/easee_cloud.lua","permissions":["http.get"],"read_only":true,"sha256":"19e848f835a34ea002b1a6b0e47568574d0a3a6bf9688b5b47ea609a97b0c632","size_bytes":33783,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-easee_cloud-v1.0.1-19e848f835a34ea0.lua","version":"1.0.1"},{"channel":"beta","control_enabled":false,"filename":"esphome-dsmr.lua","host_api":{"max":1,"min":1},"id":"esphome-dsmr","metadata":{"capabilities":["meter"],"description":"Smart meter via ESPHome web_server v3 + dsmr component (Sourceful Zap on open firmware, DIY ESP32+P1, etc.).","filename":"esphome-dsmr.lua","homepage":"https://github.com/erikarenhill/sourceful-zap-esphome","host_api_max":1,"host_api_min":1,"id":"esphome-dsmr","manufacturer":"ESPHome","name":"ESPHome DSMR (P1)","path":"drivers/esphome-dsmr.lua","protocols":["http"],"read_only":true,"source":"upstream","tested_models":["DSMR web_server v3 P1 reader"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.1"},"path":"drivers/esphome-dsmr.lua","permissions":["http.get"],"read_only":true,"sha256":"befff49605f28e73e00e662d5bad860c733e77c08c70fc0133ee0aa8be5c9218","size_bytes":19357,"source_commit":"c1d61ead2a74a2ed3b6765baeccc34bf0106b19d","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-esphome-dsmr-v1.0.1-befff49605f28e73.lua","version":"1.0.1"},{"channel":"beta","control_enabled":false,"filename":"esphome-dsmr.lua","host_api":{"max":1,"min":1},"id":"esphome-dsmr","metadata":{"capabilities":["meter"],"description":"Smart meter via ESPHome web_server v3 + dsmr component (Sourceful Zap on open firmware, DIY ESP32+P1, etc.).","filename":"esphome-dsmr.lua","homepage":"https://github.com/erikarenhill/sourceful-zap-esphome","host_api_max":1,"host_api_min":1,"id":"esphome-dsmr","manufacturer":"ESPHome","name":"ESPHome DSMR (P1)","path":"drivers/esphome-dsmr.lua","protocols":["http"],"read_only":true,"source":"upstream","tested_models":["DSMR web_server v3 P1 reader"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.2"},"path":"drivers/esphome-dsmr.lua","permissions":["http.get"],"read_only":true,"sha256":"c415e507f4371c859fbf60827cc0704c5e24ad122dca1a9e5e1f190d67e852d1","size_bytes":19353,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-esphome-dsmr-v1.0.2-c415e507f4371c85.lua","version":"1.0.2"},{"channel":"beta","control_enabled":false,"filename":"esphome_dsmr.lua","host_api":{"max":1,"min":1},"id":"esphome_dsmr","metadata":{"capabilities":["meter"],"description":"Smart meter via ESPHome web_server v3 + dsmr component (Sourceful Zap on open firmware, DIY ESP32+P1, etc.).","filename":"esphome_dsmr.lua","homepage":"https://github.com/erikarenhill/sourceful-zap-esphome","host_api_max":1,"host_api_min":1,"id":"esphome_dsmr","manufacturer":"ESPHome","name":"ESPHome DSMR (P1)","path":"drivers/esphome_dsmr.lua","protocols":["http"],"read_only":true,"source":"upstream","tested_models":["ESPHome DSMR (P1)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.2"},"path":"drivers/esphome_dsmr.lua","permissions":["http.get"],"read_only":true,"sha256":"76738e2bc8256787b8502fb9eacb43ce655df5827285d313d98db9084f579394","size_bytes":21923,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-esphome_dsmr-v1.0.2-76738e2bc8256787.lua","version":"1.0.2"},{"channel":"beta","control_enabled":false,"filename":"etrel.lua","host_api":{"max":1,"min":1},"id":"etrel","metadata":{"capabilities":["v2x_charger"],"filename":"etrel.lua","host_api_max":1,"host_api_min":1,"id":"etrel","manufacturer":"Etrel","name":"Etrel","path":"drivers/etrel.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["INCH"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/etrel.lua","permissions":["modbus.read"],"read_only":true,"sha256":"aacd068c20ed861ff10261ba2e8845fa2eb06419ac55137c846d20a6257f01a7","size_bytes":4703,"source_commit":"535ee3e4ae0134b64081ba8a5dc71a4860286a58","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-etrel-v1.0.0-aacd068c20ed861f.lua","version":"1.0.0"},{"channel":"beta","control_enabled":false,"filename":"etrel.lua","host_api":{"max":1,"min":1},"id":"etrel","metadata":{"capabilities":["v2x_charger"],"filename":"etrel.lua","host_api_max":1,"host_api_min":1,"id":"etrel","manufacturer":"Etrel","name":"Etrel","path":"drivers/etrel.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["INCH"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.1"},"path":"drivers/etrel.lua","permissions":["modbus.read"],"read_only":true,"sha256":"349e66064f0d5ac15bf37464cbd14feb060f3e5e47f5b3a471184e28f620b7e6","size_bytes":4709,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-etrel-v1.0.1-349e66064f0d5ac1.lua","version":"1.0.1"},{"channel":"beta","control_enabled":false,"filename":"etrel.lua","host_api":{"max":1,"min":1},"id":"etrel","metadata":{"capabilities":["v2x_charger"],"filename":"etrel.lua","host_api_max":1,"host_api_min":1,"id":"etrel","manufacturer":"Etrel","name":"Etrel","path":"drivers/etrel.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["INCH"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.2"},"path":"drivers/etrel.lua","permissions":["modbus.read"],"read_only":true,"sha256":"2ee0b73b666995b61d593a11dc5799f6c8ec6a74516866bcbd95a802b6741a12","size_bytes":4614,"source_commit":"619659c9c161289fdb890fe1f7c5676028f84fc5","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-etrel-v1.0.2-2ee0b73b666995b6.lua","version":"1.0.2"},{"channel":"beta","control_enabled":false,"filename":"ferroamp.lua","host_api":{"max":1,"min":1},"id":"ferroamp","metadata":{"capabilities":["battery","meter","pv"],"filename":"ferroamp.lua","host_api_max":1,"host_api_min":1,"id":"ferroamp","manufacturer":"Ferroamp","name":"Ferroamp","path":"drivers/ferroamp.lua","protocols":["mqtt"],"read_only":true,"source":"upstream","tested_models":["EnergyHub"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.1.1"},"path":"drivers/ferroamp.lua","permissions":["mqtt.subscribe"],"read_only":true,"sha256":"f8251001694d6d3315cf562cf5c9372b308a617646626495b6aea1b1bf7ac8c0","size_bytes":11598,"source_commit":"3f57bff52a393a88d0f81f9226e0b10d1c3448fb","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-ferroamp-v1.1.1-f8251001694d6d33.lua","version":"1.1.1"},{"channel":"beta","control_enabled":false,"filename":"ferroamp.lua","host_api":{"max":1,"min":1},"id":"ferroamp","metadata":{"capabilities":["battery","meter","pv"],"filename":"ferroamp.lua","host_api_max":1,"host_api_min":1,"id":"ferroamp","manufacturer":"Ferroamp","name":"Ferroamp","path":"drivers/ferroamp.lua","protocols":["mqtt"],"read_only":true,"source":"upstream","tested_models":["EnergyHub"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.1.2"},"path":"drivers/ferroamp.lua","permissions":["mqtt.subscribe"],"read_only":true,"sha256":"31d2263c172c928a5b232069847684c5290ea11ff8133bc781915251d240173f","size_bytes":11598,"source_commit":"92f76c413ff51039210ca8642b0debb41d53b794","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-ferroamp-v1.1.2-31d2263c172c928a.lua","version":"1.1.2"},{"channel":"beta","control_enabled":false,"filename":"ferroamp.lua","host_api":{"max":1,"min":1},"id":"ferroamp","metadata":{"capabilities":["battery","meter","pv"],"description":"Ferroamp EnergyHub with ESO battery + SSO solar strings (3-phase).","filename":"ferroamp.lua","homepage":"https://ferroamp.com","host_api_max":1,"host_api_min":1,"id":"ferroamp","manufacturer":"Ferroamp","name":"Ferroamp EnergyHub","path":"drivers/ferroamp.lua","protocols":["mqtt"],"read_only":true,"source":"upstream","tested_models":["EnergyHub"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.0.0"},"path":"drivers/ferroamp.lua","permissions":["mqtt.subscribe"],"read_only":true,"sha256":"57084cb3d243d7e3149249199037eb993f6b942676b1e4293ab243c59f9f3c16","size_bytes":57560,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-ferroamp-v2.0.0-57084cb3d243d7e3.lua","version":"2.0.0"},{"channel":"beta","control_enabled":false,"filename":"ferroamp_dc2_v2x.lua","host_api":{"max":1,"min":1},"id":"ferroamp_dc2_v2x","metadata":{"capabilities":["v2x_charger"],"filename":"ferroamp_dc2_v2x.lua","host_api_max":1,"host_api_min":1,"id":"ferroamp_dc2_v2x","manufacturer":"Ferroamp","name":"Ferroamp Dc2 V2X","path":"drivers/ferroamp_dc2_v2x.lua","protocols":["mqtt"],"read_only":true,"source":"upstream","tested_models":["DC2 V2X"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.2"},"path":"drivers/ferroamp_dc2_v2x.lua","permissions":["mqtt.subscribe"],"read_only":true,"sha256":"e049897743ce2ccb8feabed5d60165a08e90e38ff82f8ecf263dc03fce09cdf3","size_bytes":8198,"source_commit":"92f76c413ff51039210ca8642b0debb41d53b794","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-ferroamp_dc2_v2x-v1.0.2-e049897743ce2ccb.lua","version":"1.0.2"},{"channel":"beta","control_enabled":false,"filename":"ferroamp_dc2_v2x.lua","host_api":{"max":1,"min":1},"id":"ferroamp_dc2_v2x","metadata":{"capabilities":["v2x_charger"],"description":"Ferroamp DC2 V2X 20 kW bidirectional CCS2 charger via local MQTT.","filename":"ferroamp_dc2_v2x.lua","homepage":"https://ferroamp.com","host_api_max":1,"host_api_min":1,"id":"ferroamp_dc2_v2x","manufacturer":"Ferroamp","name":"Ferroamp DC2 V2X","path":"drivers/ferroamp_dc2_v2x.lua","protocols":["mqtt"],"read_only":true,"source":"upstream","tested_models":["DC2 V2X"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.0.0"},"path":"drivers/ferroamp_dc2_v2x.lua","permissions":["mqtt.subscribe"],"read_only":true,"sha256":"230c5a405571b70df47efe6e5b4fb21f7ea426f9254a0cb8afcc4531e9a8c335","size_bytes":15815,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-ferroamp_dc2_v2x-v2.0.0-230c5a405571b70d.lua","version":"2.0.0"},{"channel":"beta","control_enabled":false,"filename":"ferroamp_modbus.lua","host_api":{"max":1,"min":1},"id":"ferroamp_modbus","metadata":{"capabilities":["battery","meter","pv"],"filename":"ferroamp_modbus.lua","host_api_max":1,"host_api_min":1,"id":"ferroamp_modbus","manufacturer":"Ferroamp","name":"Ferroamp Modbus","path":"drivers/ferroamp_modbus.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["EnergyHub"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/ferroamp_modbus.lua","permissions":["modbus.read"],"read_only":true,"sha256":"0fd8fea5e2548886c76a7210e9c5032eb377ea64af6a4e499d605cdbf3719f78","size_bytes":9753,"source_commit":"535ee3e4ae0134b64081ba8a5dc71a4860286a58","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-ferroamp_modbus-v1.0.0-0fd8fea5e2548886.lua","version":"1.0.0"},{"channel":"beta","control_enabled":false,"filename":"ferroamp_modbus.lua","host_api":{"max":1,"min":1},"id":"ferroamp_modbus","metadata":{"capabilities":["battery","meter","pv"],"filename":"ferroamp_modbus.lua","host_api_max":1,"host_api_min":1,"id":"ferroamp_modbus","manufacturer":"Ferroamp","name":"Ferroamp Modbus","path":"drivers/ferroamp_modbus.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["EnergyHub"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.2"},"path":"drivers/ferroamp_modbus.lua","permissions":["modbus.read"],"read_only":true,"sha256":"d6c16e1178c2a69367f4a0d21bfda82879cbe8abf75319bf32a315e99d349200","size_bytes":10711,"source_commit":"3f57bff52a393a88d0f81f9226e0b10d1c3448fb","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-ferroamp_modbus-v1.0.2-d6c16e1178c2a693.lua","version":"1.0.2"},{"channel":"beta","control_enabled":false,"filename":"ferroamp_modbus.lua","host_api":{"max":1,"min":1},"id":"ferroamp_modbus","metadata":{"capabilities":["battery","meter","pv"],"filename":"ferroamp_modbus.lua","host_api_max":1,"host_api_min":1,"id":"ferroamp_modbus","manufacturer":"Ferroamp","name":"Ferroamp Modbus","path":"drivers/ferroamp_modbus.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["EnergyHub"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.3"},"path":"drivers/ferroamp_modbus.lua","permissions":["modbus.read"],"read_only":true,"sha256":"2e23bb6e3e056391e373a7e0982ec53fc12e77479d35dfae875e355cacb59e1b","size_bytes":10672,"source_commit":"a21c22d34d3412c281f5b9a84ab0c59cef72f277","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-ferroamp_modbus-v1.0.3-2e23bb6e3e056391.lua","version":"1.0.3"},{"channel":"beta","control_enabled":false,"filename":"ferroamp_modbus.lua","host_api":{"max":1,"min":1},"id":"ferroamp_modbus","metadata":{"capabilities":["battery","meter","pv"],"filename":"ferroamp_modbus.lua","host_api_max":1,"host_api_min":1,"id":"ferroamp_modbus","manufacturer":"Ferroamp","name":"Ferroamp Modbus","path":"drivers/ferroamp_modbus.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["EnergyHub"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.4"},"path":"drivers/ferroamp_modbus.lua","permissions":["modbus.read"],"read_only":true,"sha256":"c055aaeaeb2ccc154e3c8969b98545d240ff1ac961782e0ac012831ad6ec832d","size_bytes":13364,"source_commit":"92f76c413ff51039210ca8642b0debb41d53b794","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-ferroamp_modbus-v1.0.4-c055aaeaeb2ccc15.lua","version":"1.0.4"},{"channel":"beta","control_enabled":false,"filename":"ferroamp_modbus.lua","host_api":{"max":1,"min":1},"id":"ferroamp_modbus","metadata":{"capabilities":["battery","meter","pv"],"description":"Ferroamp EnergyHub XL via Modbus TCP (alternative transport to drivers/ferroamp.lua).","filename":"ferroamp_modbus.lua","homepage":"https://ferroamp.com","host_api_max":1,"host_api_min":1,"id":"ferroamp_modbus","manufacturer":"Ferroamp","name":"Ferroamp EnergyHub (Modbus)","path":"drivers/ferroamp_modbus.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["EnergyHub"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.0.0"},"path":"drivers/ferroamp_modbus.lua","permissions":["modbus.read"],"read_only":true,"sha256":"d645a8a0e3d5f766d6269eae54546eb9780fbd2024298c9bac28f12c39dd5fbd","size_bytes":15651,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-ferroamp_modbus-v2.0.0-d645a8a0e3d5f766.lua","version":"2.0.0"},{"channel":"beta","control_enabled":true,"filename":"ferroamp_modbus.lua","host_api":{"max":1,"min":1},"id":"ferroamp_modbus","metadata":{"capabilities":["battery","meter","pv"],"description":"Ferroamp EnergyHub XL via Modbus TCP (alternative transport to drivers/ferroamp.lua).","filename":"ferroamp_modbus.lua","homepage":"https://ferroamp.com","host_api_max":1,"host_api_min":1,"id":"ferroamp_modbus","manufacturer":"Ferroamp","name":"Ferroamp EnergyHub (Modbus)","path":"drivers/ferroamp_modbus.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["EnergyHub"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.1.0"},"path":"drivers/ferroamp_modbus.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"c7ae7b765255a02fa4cbc29711f6af14bbfb9f0dc861b3982be3cca00e58671a","size_bytes":14982,"source_commit":"619659c9c161289fdb890fe1f7c5676028f84fc5","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-ferroamp_modbus-v2.1.0-c7ae7b765255a02f.lua","version":"2.1.0"},{"channel":"beta","control_enabled":false,"filename":"foxess.lua","host_api":{"max":1,"min":1},"id":"foxess","metadata":{"capabilities":["pv","battery","meter"],"filename":"foxess.lua","host_api_max":1,"host_api_min":1,"id":"foxess","manufacturer":"Fox ESS","name":"Foxess","path":"drivers/foxess.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["H1 (Single-Phase Hybrid)","H3 (Three-Phase Hybrid)","H3 PRO","AIO-H3 (All-in-One)","KH Series"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/foxess.lua","permissions":["modbus.read"],"read_only":true,"sha256":"9d9ed2bd4819f4d7cc1853e26a66b113681845d2e8781fa39da64ce759c46d7b","size_bytes":8479,"source_commit":"535ee3e4ae0134b64081ba8a5dc71a4860286a58","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-foxess-v1.0.0-9d9ed2bd4819f4d7.lua","version":"1.0.0"},{"channel":"beta","control_enabled":false,"filename":"foxess.lua","host_api":{"max":1,"min":1},"id":"foxess","metadata":{"capabilities":["pv","battery","meter"],"filename":"foxess.lua","host_api_max":1,"host_api_min":1,"id":"foxess","manufacturer":"Fox ESS","name":"Foxess","path":"drivers/foxess.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["H1 (Single-Phase Hybrid)","H3 (Three-Phase Hybrid)","H3 PRO","AIO-H3 (All-in-One)","KH Series"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.1"},"path":"drivers/foxess.lua","permissions":["modbus.read"],"read_only":true,"sha256":"eeeddee75b70d3c7820bf6832fb08e11f4836e6a1280cea9edccae0921938726","size_bytes":8488,"source_commit":"3f57bff52a393a88d0f81f9226e0b10d1c3448fb","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-foxess-v1.0.1-eeeddee75b70d3c7.lua","version":"1.0.1"},{"channel":"beta","control_enabled":false,"filename":"foxess.lua","host_api":{"max":1,"min":1},"id":"foxess","metadata":{"capabilities":["pv","battery","meter"],"filename":"foxess.lua","host_api_max":1,"host_api_min":1,"id":"foxess","manufacturer":"Fox ESS","name":"Foxess","path":"drivers/foxess.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["H1 (Single-Phase Hybrid)","H3 (Three-Phase Hybrid)","H3 PRO","AIO-H3 (All-in-One)","KH Series"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.2"},"path":"drivers/foxess.lua","permissions":["modbus.read"],"read_only":true,"sha256":"0b41061e011f07f003a46e372eb2161b410ed12d89e8ef6dbbb960747a8ed5e5","size_bytes":8525,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-foxess-v1.0.2-0b41061e011f07f0.lua","version":"1.0.2"},{"channel":"beta","control_enabled":true,"filename":"foxess.lua","host_api":{"max":1,"min":1},"id":"foxess","metadata":{"capabilities":["pv","battery","meter"],"filename":"foxess.lua","host_api_max":1,"host_api_min":1,"id":"foxess","manufacturer":"Fox ESS","name":"Foxess","path":"drivers/foxess.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["H1 (Single-Phase Hybrid)","H3 (Three-Phase Hybrid)","H3 PRO","AIO-H3 (All-in-One)","KH Series"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.1.0"},"path":"drivers/foxess.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"88c0c621ac7baee2781265428bb5496fc02c676f77f4fb65780544f9435e786a","size_bytes":7856,"source_commit":"619659c9c161289fdb890fe1f7c5676028f84fc5","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-foxess-v1.1.0-88c0c621ac7baee2.lua","version":"1.1.0"},{"channel":"beta","control_enabled":false,"filename":"fronius.lua","host_api":{"max":1,"min":1},"id":"fronius","metadata":{"capabilities":["battery","meter","pv"],"filename":"fronius.lua","host_api_max":1,"host_api_min":1,"id":"fronius","manufacturer":"Fronius","name":"Fronius","path":"drivers/fronius.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["Primo GEN24","Symo GEN24","Fronius Verto","Fronius Tauro","Fronius Symo (Classic)","Fronius Primo (Classic)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.2.0"},"path":"drivers/fronius.lua","permissions":["modbus.read"],"read_only":true,"sha256":"9e6cab88abaf16414f3e33e076326c467a73cdcab75e7d20a4b02e2bb927dac9","size_bytes":10129,"source_commit":"535ee3e4ae0134b64081ba8a5dc71a4860286a58","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-fronius-v1.2.0-9e6cab88abaf1641.lua","version":"1.2.0"},{"channel":"beta","control_enabled":false,"filename":"fronius.lua","host_api":{"max":1,"min":1},"id":"fronius","metadata":{"capabilities":["battery","meter","pv"],"filename":"fronius.lua","host_api_max":1,"host_api_min":1,"id":"fronius","manufacturer":"Fronius","name":"Fronius","path":"drivers/fronius.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["Primo GEN24","Symo GEN24","Fronius Verto","Fronius Tauro","Fronius Symo (Classic)","Fronius Primo (Classic)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.2.2"},"path":"drivers/fronius.lua","permissions":["modbus.read"],"read_only":true,"sha256":"275716bdb35b873968f864d4d28d952a45652a708f732b4aa7586ea610ef14d6","size_bytes":11204,"source_commit":"3f57bff52a393a88d0f81f9226e0b10d1c3448fb","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-fronius-v1.2.2-275716bdb35b8739.lua","version":"1.2.2"},{"channel":"beta","control_enabled":false,"filename":"fronius.lua","host_api":{"max":1,"min":1},"id":"fronius","metadata":{"capabilities":["battery","meter","pv"],"filename":"fronius.lua","host_api_max":1,"host_api_min":1,"id":"fronius","manufacturer":"Fronius","name":"Fronius","path":"drivers/fronius.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["Primo GEN24","Symo GEN24","Fronius Verto","Fronius Tauro","Fronius Symo (Classic)","Fronius Primo (Classic)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.2.3"},"path":"drivers/fronius.lua","permissions":["modbus.read"],"read_only":true,"sha256":"d03e71f36c133f7ff58036e68864a91c7a9021b1a8b5c7cce118ec95fbf5eb12","size_bytes":11229,"source_commit":"470527e8ae0431df8e4d525a70bba72e2f66973f","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-fronius-v1.2.3-d03e71f36c133f7f.lua","version":"1.2.3"},{"channel":"beta","control_enabled":false,"filename":"fronius.lua","host_api":{"max":1,"min":1},"id":"fronius","metadata":{"capabilities":["battery","meter","pv"],"filename":"fronius.lua","host_api_max":1,"host_api_min":1,"id":"fronius","manufacturer":"Fronius","name":"Fronius","path":"drivers/fronius.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["Primo GEN24","Symo GEN24","Fronius Verto","Fronius Tauro","Fronius Symo (Classic)","Fronius Primo (Classic)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.2.4"},"path":"drivers/fronius.lua","permissions":["modbus.read"],"read_only":true,"sha256":"8e81175b925a5b17eadba2cc62d7fa8729075c004092783f830b49481fa7bb4e","size_bytes":11229,"source_commit":"92f76c413ff51039210ca8642b0debb41d53b794","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-fronius-v1.2.4-8e81175b925a5b17.lua","version":"1.2.4"},{"channel":"beta","control_enabled":false,"filename":"fronius.lua","host_api":{"max":1,"min":1},"id":"fronius","metadata":{"capabilities":["battery","meter","pv"],"description":"Fronius Symo / Primo GEN24 hybrid inverters via Modbus TCP (SunSpec).","filename":"fronius.lua","homepage":"https://www.fronius.com","host_api_max":1,"host_api_min":1,"id":"fronius","manufacturer":"Fronius","name":"Fronius GEN24","path":"drivers/fronius.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["Primo GEN24","Symo GEN24","Fronius Verto","Fronius Tauro","Fronius Symo (Classic)","Fronius Primo (Classic)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.0.0"},"path":"drivers/fronius.lua","permissions":["modbus.read"],"read_only":true,"sha256":"864a7243c8ec7b6405f4937818904dfebd98d1b76991dbc610039cd022dffe44","size_bytes":14966,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-fronius-v2.0.0-864a7243c8ec7b64.lua","version":"2.0.0"},{"channel":"beta","control_enabled":true,"filename":"fronius.lua","host_api":{"max":1,"min":1},"id":"fronius","metadata":{"capabilities":["battery","meter","pv"],"description":"Fronius Symo / Primo GEN24 hybrid inverters via Modbus TCP (SunSpec).","filename":"fronius.lua","homepage":"https://www.fronius.com","host_api_max":1,"host_api_min":1,"id":"fronius","manufacturer":"Fronius","name":"Fronius GEN24","path":"drivers/fronius.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["Primo GEN24","Symo GEN24","Fronius Verto","Fronius Tauro","Fronius Symo (Classic)","Fronius Primo (Classic)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.1.0"},"path":"drivers/fronius.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"a56ddd907f94c33d4b4c8181cbe3f8544426dc319d415b0147fe78a9a695ecfb","size_bytes":14297,"source_commit":"619659c9c161289fdb890fe1f7c5676028f84fc5","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-fronius-v2.1.0-a56ddd907f94c33d.lua","version":"2.1.0"},{"channel":"beta","control_enabled":false,"filename":"fronius_api.lua","host_api":{"max":1,"min":1},"id":"fronius_api","metadata":{"capabilities":["pv","meter"],"filename":"fronius_api.lua","host_api_max":1,"host_api_min":1,"id":"fronius_api","manufacturer":"Fronius","name":"Fronius Api","path":"drivers/fronius_api.lua","protocols":["http"],"read_only":true,"source":"upstream","tested_models":["Solar API (All Models)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/fronius_api.lua","permissions":["http.get"],"read_only":true,"sha256":"9af483f9991e9e9626fd2d69e9cb51ae88b2f62dd9d0a532383e1f407cec88c8","size_bytes":4444,"source_commit":"3f57bff52a393a88d0f81f9226e0b10d1c3448fb","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-fronius_api-v1.0.0-9af483f9991e9e96.lua","version":"1.0.0"},{"channel":"beta","control_enabled":false,"filename":"fronius_api.lua","host_api":{"max":1,"min":1},"id":"fronius_api","metadata":{"capabilities":["pv","meter"],"filename":"fronius_api.lua","host_api_max":1,"host_api_min":1,"id":"fronius_api","manufacturer":"Fronius","name":"Fronius Api","path":"drivers/fronius_api.lua","protocols":["http"],"read_only":true,"source":"upstream","tested_models":["Solar API (All Models)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.1"},"path":"drivers/fronius_api.lua","permissions":["http.get"],"read_only":true,"sha256":"065eb97083c7af3dfb660d450689a4bc802f016f73b99eb6040660b118fab516","size_bytes":4452,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-fronius_api-v1.0.1-065eb97083c7af3d.lua","version":"1.0.1"},{"channel":"beta","control_enabled":false,"filename":"fronius_smart_meter.lua","host_api":{"max":1,"min":1},"id":"fronius_smart_meter","metadata":{"capabilities":["meter"],"filename":"fronius_smart_meter.lua","host_api_max":1,"host_api_min":1,"id":"fronius_smart_meter","manufacturer":"Fronius","name":"Fronius Smart Meter","path":"drivers/fronius_smart_meter.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["Smart Meter TS"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.1.0"},"path":"drivers/fronius_smart_meter.lua","permissions":["modbus.read"],"read_only":true,"sha256":"88dd8dac2b65bb6c679c718ca8709da34681ae6db64dc0642efc50da4e6b14a0","size_bytes":5671,"source_commit":"535ee3e4ae0134b64081ba8a5dc71a4860286a58","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-fronius_smart_meter-v1.1.0-88dd8dac2b65bb6c.lua","version":"1.1.0"},{"channel":"beta","control_enabled":false,"filename":"fronius_smart_meter.lua","host_api":{"max":1,"min":1},"id":"fronius_smart_meter","metadata":{"capabilities":["meter"],"filename":"fronius_smart_meter.lua","host_api_max":1,"host_api_min":1,"id":"fronius_smart_meter","manufacturer":"Fronius","name":"Fronius Smart Meter","path":"drivers/fronius_smart_meter.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["Smart Meter TS"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.1.2"},"path":"drivers/fronius_smart_meter.lua","permissions":["modbus.read"],"read_only":true,"sha256":"ed1e469ce863f062c58448450635b26d69a0b8d9d77487522291afa510e4f6d9","size_bytes":6474,"source_commit":"3f57bff52a393a88d0f81f9226e0b10d1c3448fb","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-fronius_smart_meter-v1.1.2-ed1e469ce863f062.lua","version":"1.1.2"},{"channel":"beta","control_enabled":false,"filename":"fronius_smart_meter.lua","host_api":{"max":1,"min":1},"id":"fronius_smart_meter","metadata":{"capabilities":["meter"],"filename":"fronius_smart_meter.lua","host_api_max":1,"host_api_min":1,"id":"fronius_smart_meter","manufacturer":"Fronius","name":"Fronius Smart Meter","path":"drivers/fronius_smart_meter.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["Smart Meter TS"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.1.3"},"path":"drivers/fronius_smart_meter.lua","permissions":["modbus.read"],"read_only":true,"sha256":"f2afc2759a4d0ac4ab192657ae5614a1712f3503b2480b612afa72a72d0fd31b","size_bytes":6486,"source_commit":"92f76c413ff51039210ca8642b0debb41d53b794","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-fronius_smart_meter-v1.1.3-f2afc2759a4d0ac4.lua","version":"1.1.3"},{"channel":"beta","control_enabled":false,"filename":"fronius_smart_meter.lua","host_api":{"max":1,"min":1},"id":"fronius_smart_meter","metadata":{"capabilities":["meter"],"description":"Fronius Smart Meter three-phase energy meter via Modbus TCP (SunSpec).","filename":"fronius_smart_meter.lua","homepage":"https://www.fronius.com","host_api_max":1,"host_api_min":1,"id":"fronius_smart_meter","manufacturer":"Fronius","name":"Fronius Smart Meter","path":"drivers/fronius_smart_meter.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["Smart Meter TS"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.0.0"},"path":"drivers/fronius_smart_meter.lua","permissions":["modbus.read"],"read_only":true,"sha256":"3790bad92465ae5e45fb7a72b8161a451b733027ea3fcf620fc2429c51e2345f","size_bytes":8682,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-fronius_smart_meter-v2.0.0-3790bad92465ae5e.lua","version":"2.0.0"},{"channel":"beta","control_enabled":true,"filename":"fronius_smart_meter.lua","host_api":{"max":1,"min":1},"id":"fronius_smart_meter","metadata":{"capabilities":["meter"],"description":"Fronius Smart Meter three-phase energy meter via Modbus TCP (SunSpec).","filename":"fronius_smart_meter.lua","homepage":"https://www.fronius.com","host_api_max":1,"host_api_min":1,"id":"fronius_smart_meter","manufacturer":"Fronius","name":"Fronius Smart Meter","path":"drivers/fronius_smart_meter.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["Smart Meter TS"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.1.0"},"path":"drivers/fronius_smart_meter.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"1059b16ac9e88095dc832d57c9c9b4a7e9d7d7eadfdc1937615dc8c704f6b425","size_bytes":8013,"source_commit":"619659c9c161289fdb890fe1f7c5676028f84fc5","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-fronius_smart_meter-v2.1.0-1059b16ac9e88095.lua","version":"2.1.0"},{"channel":"beta","control_enabled":false,"filename":"goe.lua","host_api":{"max":1,"min":1},"id":"goe","metadata":{"capabilities":["v2x_charger"],"filename":"goe.lua","host_api_max":1,"host_api_min":1,"id":"goe","manufacturer":"go-e","name":"Goe","path":"drivers/goe.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["Gemini"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/goe.lua","permissions":["modbus.read"],"read_only":true,"sha256":"e48598399e99ce015a4a953588d93a1dcc89a87d545ac150bcb16471d5fb5d65","size_bytes":4802,"source_commit":"535ee3e4ae0134b64081ba8a5dc71a4860286a58","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-goe-v1.0.0-e48598399e99ce01.lua","version":"1.0.0"},{"channel":"beta","control_enabled":false,"filename":"goe.lua","host_api":{"max":1,"min":1},"id":"goe","metadata":{"capabilities":["v2x_charger"],"filename":"goe.lua","host_api_max":1,"host_api_min":1,"id":"goe","manufacturer":"go-e","name":"Goe","path":"drivers/goe.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["Gemini"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.1"},"path":"drivers/goe.lua","permissions":["modbus.read"],"read_only":true,"sha256":"9c1f1d1c8619a3e3c2788dfca678bfd83ebcfdaf819430a9a015dc8f6761974a","size_bytes":4808,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-goe-v1.0.1-9c1f1d1c8619a3e3.lua","version":"1.0.1"},{"channel":"beta","control_enabled":false,"filename":"goe.lua","host_api":{"max":1,"min":1},"id":"goe","metadata":{"capabilities":["v2x_charger"],"filename":"goe.lua","host_api_max":1,"host_api_min":1,"id":"goe","manufacturer":"go-e","name":"Goe","path":"drivers/goe.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["Gemini"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.2"},"path":"drivers/goe.lua","permissions":["modbus.read"],"read_only":true,"sha256":"0986f378591c0aae255c337b39d1c928db182188a80eb465029a8c6e85774075","size_bytes":4713,"source_commit":"619659c9c161289fdb890fe1f7c5676028f84fc5","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-goe-v1.0.2-0986f378591c0aae.lua","version":"1.0.2"},{"channel":"beta","control_enabled":false,"filename":"goe_http.lua","host_api":{"max":1,"min":1},"id":"goe_http","metadata":{"capabilities":["v2x_charger"],"filename":"goe_http.lua","host_api_max":1,"host_api_min":1,"id":"goe_http","manufacturer":"go-e","name":"Goe Http","path":"drivers/goe_http.lua","protocols":["http"],"read_only":true,"source":"upstream","tested_models":["Gemini HTTP"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/goe_http.lua","permissions":["http.get"],"read_only":true,"sha256":"136964a80a519e36f5f8878bd7005ae3e1260bc37a2d84473ceea0d886012bed","size_bytes":5692,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-goe_http-v1.0.0-136964a80a519e36.lua","version":"1.0.0"},{"channel":"beta","control_enabled":false,"filename":"goodwe.lua","host_api":{"max":1,"min":1},"id":"goodwe","metadata":{"capabilities":["pv","battery","meter"],"description":"GoodWe ET, EH, BT, BH, ES, EM, BP, DT, DNS, and XS inverter families.","filename":"goodwe.lua","host_api_max":1,"host_api_min":1,"id":"goodwe","manufacturer":"GoodWe","name":"GoodWe hybrid and string inverter","path":"drivers/goodwe.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["ET Series (Three-Phase Hybrid)","EH Series (Single-Phase Hybrid)","BT Series (Three-Phase Hybrid LV)","BH Series (Single-Phase Hybrid LV)","ES Series (Single-Phase Hybrid)","EM Series (Single-Phase Hybrid)","BP Series (Three-Phase AC-Coupled)","DT Series (Three-Phase String)","DNS Series (Single-Phase String)","XS Series (Micro)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.1"},"path":"drivers/goodwe.lua","permissions":["modbus.read"],"read_only":true,"sha256":"30360655c673439c12386a329333e90552c95544575cb657a4b0a1552d65b844","size_bytes":10864,"source_commit":"02b72e4e183c4ab3818d46d7cc8e4ed30d2a81fd","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-goodwe-v1.0.1-30360655c673439c.lua","version":"1.0.1"},{"channel":"beta","control_enabled":false,"filename":"goodwe.lua","host_api":{"max":1,"min":1},"id":"goodwe","metadata":{"capabilities":["pv","battery","meter"],"description":"GoodWe telemetry with explicit register-map profiles.","filename":"goodwe.lua","host_api_max":1,"host_api_min":1,"id":"goodwe","manufacturer":"GoodWe","name":"GoodWe inverter","path":"drivers/goodwe.lua","protocols":["modbus"],"read_only":true,"source":"upstream","verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.2"},"path":"drivers/goodwe.lua","permissions":["modbus.read"],"read_only":true,"sha256":"547b1ffcfd7732e1a2f063ed6002253414cd1ccdf0fa1d562507b6f5c40fe1d2","size_bytes":10042,"source_commit":"3f57bff52a393a88d0f81f9226e0b10d1c3448fb","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-goodwe-v1.0.2-547b1ffcfd7732e1.lua","version":"1.0.2"},{"channel":"beta","control_enabled":false,"filename":"goodwe.lua","host_api":{"max":1,"min":1},"id":"goodwe","metadata":{"capabilities":["pv","battery","meter"],"description":"GoodWe telemetry with explicit register-map profiles.","filename":"goodwe.lua","host_api_max":1,"host_api_min":1,"id":"goodwe","manufacturer":"GoodWe","name":"GoodWe inverter","path":"drivers/goodwe.lua","protocols":["modbus"],"read_only":true,"source":"upstream","verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.3"},"path":"drivers/goodwe.lua","permissions":["modbus.read"],"read_only":true,"sha256":"f6d2a1a0bbb8f4823eeea2380b3d1ae2381d1d953e835a4e2bd033112070656c","size_bytes":10091,"source_commit":"92f76c413ff51039210ca8642b0debb41d53b794","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-goodwe-v1.0.3-f6d2a1a0bbb8f482.lua","version":"1.0.3"},{"channel":"beta","control_enabled":false,"filename":"goodwe.lua","host_api":{"max":1,"min":1},"id":"goodwe","metadata":{"capabilities":["pv","battery","meter"],"description":"GoodWe ET-Plus / EH series hybrid inverters via Modbus TCP.","filename":"goodwe.lua","homepage":"https://en.goodwe.com","host_api_max":1,"host_api_min":1,"id":"goodwe","manufacturer":"GoodWe","name":"GoodWe hybrid inverter","path":"drivers/goodwe.lua","protocols":["modbus"],"read_only":true,"source":"upstream","verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.0.0"},"path":"drivers/goodwe.lua","permissions":["modbus.read"],"read_only":true,"sha256":"36943e00f28d4036aaf21e25a74fd8d1916dc49ff2e62cd9f818a42157a6cb17","size_bytes":11061,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-goodwe-v2.0.0-36943e00f28d4036.lua","version":"2.0.0"},{"channel":"beta","control_enabled":true,"filename":"goodwe.lua","host_api":{"max":1,"min":1},"id":"goodwe","metadata":{"capabilities":["pv","battery","meter"],"description":"GoodWe ET-Plus / EH series hybrid inverters via Modbus TCP.","filename":"goodwe.lua","homepage":"https://en.goodwe.com","host_api_max":1,"host_api_min":1,"id":"goodwe","manufacturer":"GoodWe","name":"GoodWe hybrid inverter","path":"drivers/goodwe.lua","protocols":["modbus"],"read_only":false,"source":"upstream","verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.1.0"},"path":"drivers/goodwe.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"0b60562b71770772d9bb0b9e50cefb5ea61ed1f57358dc4a845cb7f64bfd11f1","size_bytes":10392,"source_commit":"619659c9c161289fdb890fe1f7c5676028f84fc5","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-goodwe-v2.1.0-0b60562b71770772.lua","version":"2.1.0"},{"channel":"beta","control_enabled":false,"filename":"growatt.lua","host_api":{"max":1,"min":1},"id":"growatt","metadata":{"capabilities":["pv","battery","meter"],"filename":"growatt.lua","host_api_max":1,"host_api_min":1,"id":"growatt","manufacturer":"Growatt","name":"Growatt","path":"drivers/growatt.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["SPH Series (Single-Phase Hybrid)","SPH-TL3 Series (Three-Phase Hybrid)","MIN Series (Single-Phase String)","MIC Series (Micro)","MOD Series (Three-Phase String)","MAX Series (Three-Phase Commercial)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/growatt.lua","permissions":["modbus.read"],"read_only":true,"sha256":"bb4df323e609bbd0ef080d061525472a4236b7e8261fe09bb19ce3135465cea1","size_bytes":8174,"source_commit":"535ee3e4ae0134b64081ba8a5dc71a4860286a58","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-growatt-v1.0.0-bb4df323e609bbd0.lua","version":"1.0.0"},{"channel":"beta","control_enabled":false,"filename":"growatt.lua","host_api":{"max":1,"min":1},"id":"growatt","metadata":{"capabilities":["pv","battery","meter"],"filename":"growatt.lua","host_api_max":1,"host_api_min":1,"id":"growatt","manufacturer":"Growatt","name":"Growatt","path":"drivers/growatt.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["SPH Series (Single-Phase Hybrid)","SPH-TL3 Series (Three-Phase Hybrid)","MIN Series (Single-Phase String)","MIC Series (Micro)","MOD Series (Three-Phase String)","MAX Series (Three-Phase Commercial)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.1"},"path":"drivers/growatt.lua","permissions":["modbus.read"],"read_only":true,"sha256":"686c72c1ecdac04d1ced2d0141a1bf25cdc7abcec7625c42dc8e28a3c857ffc9","size_bytes":8195,"source_commit":"3f57bff52a393a88d0f81f9226e0b10d1c3448fb","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-growatt-v1.0.1-686c72c1ecdac04d.lua","version":"1.0.1"},{"channel":"beta","control_enabled":false,"filename":"growatt.lua","host_api":{"max":1,"min":1},"id":"growatt","metadata":{"capabilities":["pv","battery","meter"],"filename":"growatt.lua","host_api_max":1,"host_api_min":1,"id":"growatt","manufacturer":"Growatt","name":"Growatt","path":"drivers/growatt.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["SPH Series (Single-Phase Hybrid)","SPH-TL3 Series (Three-Phase Hybrid)","MIN Series (Single-Phase String)","MIC Series (Micro)","MOD Series (Three-Phase String)","MAX Series (Three-Phase Commercial)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.2"},"path":"drivers/growatt.lua","permissions":["modbus.read"],"read_only":true,"sha256":"457b15422e18318b2a38e891e642a036086b49a0df9b658c7f71ccd9ed71230a","size_bytes":8232,"source_commit":"92f76c413ff51039210ca8642b0debb41d53b794","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-growatt-v1.0.2-457b15422e18318b.lua","version":"1.0.2"},{"channel":"beta","control_enabled":false,"filename":"growatt.lua","host_api":{"max":1,"min":1},"id":"growatt","metadata":{"capabilities":["pv","battery","meter"],"description":"Growatt SPH / MOD hybrid inverters via Modbus TCP.","filename":"growatt.lua","homepage":"https://www.growatt.com","host_api_max":1,"host_api_min":1,"id":"growatt","manufacturer":"Growatt","name":"Growatt hybrid inverter","path":"drivers/growatt.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["SPH Series (Single-Phase Hybrid)","SPH-TL3 Series (Three-Phase Hybrid)","MIN Series (Single-Phase String)","MIC Series (Micro)","MOD Series (Three-Phase String)","MAX Series (Three-Phase Commercial)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.0.0"},"path":"drivers/growatt.lua","permissions":["modbus.read"],"read_only":true,"sha256":"0468af6be8251bc5dc00b7d0846673b485e965a7ef9bfeb0142569f4c6e6b63f","size_bytes":11241,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-growatt-v2.0.0-0468af6be8251bc5.lua","version":"2.0.0"},{"channel":"beta","control_enabled":true,"filename":"growatt.lua","host_api":{"max":1,"min":1},"id":"growatt","metadata":{"capabilities":["pv","battery","meter"],"description":"Growatt SPH / MOD hybrid inverters via Modbus TCP.","filename":"growatt.lua","homepage":"https://www.growatt.com","host_api_max":1,"host_api_min":1,"id":"growatt","manufacturer":"Growatt","name":"Growatt hybrid inverter","path":"drivers/growatt.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["SPH Series (Single-Phase Hybrid)","SPH-TL3 Series (Three-Phase Hybrid)","MIN Series (Single-Phase String)","MIC Series (Micro)","MOD Series (Three-Phase String)","MAX Series (Three-Phase Commercial)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.1.0"},"path":"drivers/growatt.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"9ea0cc5f6ea51c32c71ec2b021c855000ded55e618e1915f4029b878451abe9d","size_bytes":10572,"source_commit":"619659c9c161289fdb890fe1f7c5676028f84fc5","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-growatt-v2.1.0-9ea0cc5f6ea51c32.lua","version":"2.1.0"},{"channel":"beta","control_enabled":false,"filename":"hardybarth.lua","host_api":{"max":1,"min":1},"id":"hardybarth","metadata":{"capabilities":["v2x_charger"],"filename":"hardybarth.lua","host_api_max":1,"host_api_min":1,"id":"hardybarth","manufacturer":"HardyBarth","name":"Hardybarth","path":"drivers/hardybarth.lua","protocols":["http"],"read_only":true,"source":"upstream","tested_models":["cPH / Salia"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/hardybarth.lua","permissions":["http.get"],"read_only":true,"sha256":"6a11ab635d6e9969c16156272b53483e085b0b4e9f00157e52583765dd05c10b","size_bytes":4555,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-hardybarth-v1.0.0-6a11ab635d6e9969.lua","version":"1.0.0"},{"channel":"beta","control_enabled":false,"filename":"heishamon.lua","host_api":{"max":1,"min":1},"id":"heishamon","metadata":{"capabilities":["heatpump"],"description":"Panasonic Aquarea H/J/K/L/M-series heat pump via Heishamon MQTT bridge. Controls Zone 1 heat curve offset (Z1_Heat_Request_Temp) in range -3..+3 °C.","filename":"heishamon.lua","homepage":"https://github.com/Egyjs/HeishaMon","host_api_max":1,"host_api_min":1,"id":"heishamon","manufacturer":"Panasonic","name":"Panasonic Aquarea (Heishamon)","path":"drivers/heishamon.lua","protocols":["mqtt"],"read_only":true,"source":"upstream","tested_models":["Panasonic Aquarea (Heishamon)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"0.4.0"},"path":"drivers/heishamon.lua","permissions":["mqtt.subscribe"],"read_only":true,"sha256":"08d4f03254af449ea0506598b8a484c35abb1bbcc0d412800eca22e5739e1b54","size_bytes":9591,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-heishamon-v0.4.0-08d4f03254af449e.lua","version":"0.4.0"},{"channel":"beta","control_enabled":false,"filename":"hello.lua","host_api":{"max":1,"min":1},"id":"hello","metadata":{"capabilities":["meter"],"filename":"hello.lua","host_api_max":1,"host_api_min":1,"id":"hello","name":"Hello","path":"drivers/hello.lua","protocols":[],"read_only":true,"source":"upstream","verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.1.0"},"path":"drivers/hello.lua","permissions":[],"read_only":true,"sha256":"a31d43327581daf31878fbafc4e99809deef8febbe2063f06e4576d94ac0cb3e","size_bytes":3630,"source_commit":"3f57bff52a393a88d0f81f9226e0b10d1c3448fb","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-hello-v1.1.0-a31d43327581daf3.lua","version":"1.1.0"},{"channel":"beta","control_enabled":false,"filename":"hello.lua","host_api":{"max":1,"min":1},"id":"hello","metadata":{"capabilities":["meter"],"filename":"hello.lua","host_api_max":1,"host_api_min":1,"id":"hello","name":"Hello","path":"drivers/hello.lua","protocols":[],"read_only":true,"source":"upstream","verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.1.1"},"path":"drivers/hello.lua","permissions":[],"read_only":true,"sha256":"d59baf11bd256af1597d2523583d728ebc41117cad7d7fe48419b4a6f08d57ef","size_bytes":3630,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-hello-v1.1.1-d59baf11bd256af1.lua","version":"1.1.1"},{"channel":"beta","control_enabled":false,"filename":"huawei.lua","host_api":{"max":1,"min":1},"id":"huawei","metadata":{"capabilities":["battery","meter","pv"],"filename":"huawei.lua","host_api_max":1,"host_api_min":1,"id":"huawei","manufacturer":"Huawei","name":"Huawei","path":"drivers/huawei.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["SUN2000 (Single-Phase)","SUN2000 (Three-Phase Residential)","SUN2000 (Three-Phase Commercial)","LUNA2000 (Battery)","SmartLogger"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.3.0"},"path":"drivers/huawei.lua","permissions":["modbus.read"],"read_only":true,"sha256":"a19e068a0103bb8801ed2cf2f43b027ddbd902a437e0388c4cc6fbea24503127","size_bytes":10769,"source_commit":"535ee3e4ae0134b64081ba8a5dc71a4860286a58","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-huawei-v1.3.0-a19e068a0103bb88.lua","version":"1.3.0"},{"channel":"beta","control_enabled":false,"filename":"huawei.lua","host_api":{"max":1,"min":1},"id":"huawei","metadata":{"capabilities":["battery","meter","pv"],"filename":"huawei.lua","host_api_max":1,"host_api_min":1,"id":"huawei","manufacturer":"Huawei","name":"Huawei","path":"drivers/huawei.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["SUN2000 (Single-Phase)","SUN2000 (Three-Phase Residential)","SUN2000 (Three-Phase Commercial)","LUNA2000 (Battery)","SmartLogger"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.3.1"},"path":"drivers/huawei.lua","permissions":["modbus.read"],"read_only":true,"sha256":"7ceb9430a1c37f71812d541886dd0e8a8b862b3a43e735ff60b118dac0cf4932","size_bytes":10820,"source_commit":"3f57bff52a393a88d0f81f9226e0b10d1c3448fb","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-huawei-v1.3.1-7ceb9430a1c37f71.lua","version":"1.3.1"},{"channel":"beta","control_enabled":false,"filename":"huawei.lua","host_api":{"max":1,"min":1},"id":"huawei","metadata":{"capabilities":["battery","meter","pv"],"filename":"huawei.lua","host_api_max":1,"host_api_min":1,"id":"huawei","manufacturer":"Huawei","name":"Huawei","path":"drivers/huawei.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["SUN2000 (Single-Phase)","SUN2000 (Three-Phase Residential)","SUN2000 (Three-Phase Commercial)","LUNA2000 (Battery)","SmartLogger"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.3.2"},"path":"drivers/huawei.lua","permissions":["modbus.read"],"read_only":true,"sha256":"f391266fa53dd24d65e7ab582891cc0444887fc4a6ecd9f2ef0b80dd826360c7","size_bytes":10772,"source_commit":"92f76c413ff51039210ca8642b0debb41d53b794","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-huawei-v1.3.2-f391266fa53dd24d.lua","version":"1.3.2"},{"channel":"beta","control_enabled":false,"filename":"huawei.lua","host_api":{"max":1,"min":1},"id":"huawei","metadata":{"capabilities":["battery","meter","pv"],"description":"Huawei SUN2000 hybrid inverters with LUNA2000 battery via Modbus TCP.","filename":"huawei.lua","homepage":"https://solar.huawei.com","host_api_max":1,"host_api_min":1,"id":"huawei","manufacturer":"Huawei","name":"Huawei SUN2000 Hybrid Inverter","path":"drivers/huawei.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["SUN2000 (Single-Phase)","SUN2000 (Three-Phase Residential)","SUN2000 (Three-Phase Commercial)","LUNA2000 (Battery)","SmartLogger"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.0.0"},"path":"drivers/huawei.lua","permissions":["modbus.read"],"read_only":true,"sha256":"1e02bc55f347408b1310d226f85470a2a258811774c6b1f9942b6701ec56861e","size_bytes":16860,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-huawei-v2.0.0-1e02bc55f347408b.lua","version":"2.0.0"},{"channel":"beta","control_enabled":true,"filename":"huawei.lua","host_api":{"max":1,"min":1},"id":"huawei","metadata":{"capabilities":["battery","meter","pv"],"description":"Huawei SUN2000 hybrid inverters with LUNA2000 battery via Modbus TCP.","filename":"huawei.lua","homepage":"https://solar.huawei.com","host_api_max":1,"host_api_min":1,"id":"huawei","manufacturer":"Huawei","name":"Huawei SUN2000 Hybrid Inverter","path":"drivers/huawei.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["SUN2000 (Single-Phase)","SUN2000 (Three-Phase Residential)","SUN2000 (Three-Phase Commercial)","LUNA2000 (Battery)","SmartLogger"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.1.0"},"path":"drivers/huawei.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"1cd0ef84ca30adb2b9a3d4de4fd9e519a5a35fb74b0472827999a3029d4475d0","size_bytes":16191,"source_commit":"619659c9c161289fdb890fe1f7c5676028f84fc5","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-huawei-v2.1.0-1cd0ef84ca30adb2.lua","version":"2.1.0"},{"channel":"beta","control_enabled":false,"filename":"janitza.lua","host_api":{"max":1,"min":1},"id":"janitza","metadata":{"capabilities":["meter"],"filename":"janitza.lua","host_api_max":1,"host_api_min":1,"id":"janitza","manufacturer":"Janitza","name":"Janitza","path":"drivers/janitza.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["UMG Series"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/janitza.lua","permissions":["modbus.read"],"read_only":true,"sha256":"e3737cbe0026c23c30cfc1da45da512121ffac82dd77839ad05931e912bf2502","size_bytes":5063,"source_commit":"535ee3e4ae0134b64081ba8a5dc71a4860286a58","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-janitza-v1.0.0-e3737cbe0026c23c.lua","version":"1.0.0"},{"channel":"beta","control_enabled":false,"filename":"janitza.lua","host_api":{"max":1,"min":1},"id":"janitza","metadata":{"capabilities":["meter"],"filename":"janitza.lua","host_api_max":1,"host_api_min":1,"id":"janitza","manufacturer":"Janitza","name":"Janitza","path":"drivers/janitza.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["UMG Series"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.2"},"path":"drivers/janitza.lua","permissions":["modbus.read"],"read_only":true,"sha256":"211bf303c02d103031183555269c55ac0fd1a072ecdeceda57f503ed69e0346f","size_bytes":5866,"source_commit":"3f57bff52a393a88d0f81f9226e0b10d1c3448fb","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-janitza-v1.0.2-211bf303c02d1030.lua","version":"1.0.2"},{"channel":"beta","control_enabled":false,"filename":"janitza.lua","host_api":{"max":1,"min":1},"id":"janitza","metadata":{"capabilities":["meter"],"filename":"janitza.lua","host_api_max":1,"host_api_min":1,"id":"janitza","manufacturer":"Janitza","name":"Janitza","path":"drivers/janitza.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["UMG Series"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.3"},"path":"drivers/janitza.lua","permissions":["modbus.read"],"read_only":true,"sha256":"e52a1e7ca5c38823b440db570af7f53b04bf8f009cd772b3a3d5b95f419937e5","size_bytes":5878,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-janitza-v1.0.3-e52a1e7ca5c38823.lua","version":"1.0.3"},{"channel":"beta","control_enabled":false,"filename":"janitza.lua","host_api":{"max":1,"min":1},"id":"janitza","metadata":{"capabilities":["meter"],"filename":"janitza.lua","host_api_max":1,"host_api_min":1,"id":"janitza","manufacturer":"Janitza","name":"Janitza","path":"drivers/janitza.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["UMG Series"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.4"},"path":"drivers/janitza.lua","permissions":["modbus.read"],"read_only":true,"sha256":"9fb6a9a5b02652d9568033565e5992c334131b91311652174fdc667756560403","size_bytes":5783,"source_commit":"619659c9c161289fdb890fe1f7c5676028f84fc5","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-janitza-v1.0.4-9fb6a9a5b02652d9.lua","version":"1.0.4"},{"channel":"beta","control_enabled":false,"filename":"keba.lua","host_api":{"max":1,"min":1},"id":"keba","metadata":{"capabilities":["v2x_charger"],"filename":"keba.lua","host_api_max":1,"host_api_min":1,"id":"keba","manufacturer":"Keba","name":"Keba","path":"drivers/keba.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["KeContact P30"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/keba.lua","permissions":["modbus.read"],"read_only":true,"sha256":"c23ee5d02cc1bd00bbcf91a217bb27a15044442f09fc55b2a29a2439ec70b608","size_bytes":5784,"source_commit":"535ee3e4ae0134b64081ba8a5dc71a4860286a58","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-keba-v1.0.0-c23ee5d02cc1bd00.lua","version":"1.0.0"},{"channel":"beta","control_enabled":false,"filename":"keba.lua","host_api":{"max":1,"min":1},"id":"keba","metadata":{"capabilities":["v2x_charger"],"filename":"keba.lua","host_api_max":1,"host_api_min":1,"id":"keba","manufacturer":"Keba","name":"Keba","path":"drivers/keba.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["KeContact P30"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.1"},"path":"drivers/keba.lua","permissions":["modbus.read"],"read_only":true,"sha256":"6611bea14e265e2a3791ae1a2ef5bf1b21f89c5ef425ddb8be15b2c3c5a7a66c","size_bytes":5811,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-keba-v1.0.1-6611bea14e265e2a.lua","version":"1.0.1"},{"channel":"beta","control_enabled":false,"filename":"keba.lua","host_api":{"max":1,"min":1},"id":"keba","metadata":{"capabilities":["v2x_charger"],"filename":"keba.lua","host_api_max":1,"host_api_min":1,"id":"keba","manufacturer":"Keba","name":"Keba","path":"drivers/keba.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["KeContact P30"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.2"},"path":"drivers/keba.lua","permissions":["modbus.read"],"read_only":true,"sha256":"19638aeadbe2ffe05258a98081043d1592e41d6c5596b9a63f9f2ebc2f8bd328","size_bytes":5716,"source_commit":"619659c9c161289fdb890fe1f7c5676028f84fc5","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-keba-v1.0.2-19638aeadbe2ffe0.lua","version":"1.0.2"},{"channel":"beta","control_enabled":false,"filename":"kostal.lua","host_api":{"max":1,"min":1},"id":"kostal","metadata":{"capabilities":["pv","battery","meter"],"filename":"kostal.lua","host_api_max":1,"host_api_min":1,"id":"kostal","manufacturer":"Kostal","name":"Kostal","path":"drivers/kostal.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["Plenticore Plus","Plenticore BI","PIKO MP Plus","PIKO IQ"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/kostal.lua","permissions":["modbus.read"],"read_only":true,"sha256":"22171800c4d268e2fa1f90f6eebfc0d70bb01588587b9a2c60452c00c360b206","size_bytes":10636,"source_commit":"535ee3e4ae0134b64081ba8a5dc71a4860286a58","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-kostal-v1.0.0-22171800c4d268e2.lua","version":"1.0.0"},{"channel":"beta","control_enabled":false,"filename":"kostal.lua","host_api":{"max":1,"min":1},"id":"kostal","metadata":{"capabilities":["pv","battery","meter"],"filename":"kostal.lua","host_api_max":1,"host_api_min":1,"id":"kostal","manufacturer":"Kostal","name":"Kostal","path":"drivers/kostal.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["Plenticore Plus","Plenticore BI","PIKO MP Plus","PIKO IQ"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.2"},"path":"drivers/kostal.lua","permissions":["modbus.read"],"read_only":true,"sha256":"858d71a14f127bc1373a2475d4ba18ac676e0454fffeebfca9e9869f197af12d","size_bytes":10863,"source_commit":"3f57bff52a393a88d0f81f9226e0b10d1c3448fb","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-kostal-v1.0.2-858d71a14f127bc1.lua","version":"1.0.2"},{"channel":"beta","control_enabled":false,"filename":"kostal.lua","host_api":{"max":1,"min":1},"id":"kostal","metadata":{"capabilities":["pv","battery","meter"],"filename":"kostal.lua","host_api_max":1,"host_api_min":1,"id":"kostal","manufacturer":"Kostal","name":"Kostal","path":"drivers/kostal.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["Plenticore Plus","Plenticore BI","PIKO MP Plus","PIKO IQ"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.3"},"path":"drivers/kostal.lua","permissions":["modbus.read"],"read_only":true,"sha256":"462037f5a1ec6b1b0ba93c3b7cd512a173543f6ac2891b4b7a10e09cfc90c298","size_bytes":10900,"source_commit":"92f76c413ff51039210ca8642b0debb41d53b794","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-kostal-v1.0.3-462037f5a1ec6b1b.lua","version":"1.0.3"},{"channel":"beta","control_enabled":false,"filename":"kostal.lua","host_api":{"max":1,"min":1},"id":"kostal","metadata":{"capabilities":["pv","battery","meter"],"description":"Kostal Plenticore Plus and Piko IQ via Modbus TCP (SunSpec plus Kostal custom map).","filename":"kostal.lua","homepage":"https://www.kostal-solar-electric.com","host_api_max":1,"host_api_min":1,"id":"kostal","manufacturer":"Kostal","name":"Kostal Plenticore","path":"drivers/kostal.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["Plenticore Plus","Plenticore BI","PIKO MP Plus","PIKO IQ"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.0.0"},"path":"drivers/kostal.lua","permissions":["modbus.read"],"read_only":true,"sha256":"177b39c4438fb3cdf288dc8f5e0447d88a0f4435b0319e0f17b42c087dc81998","size_bytes":12815,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-kostal-v2.0.0-177b39c4438fb3cd.lua","version":"2.0.0"},{"channel":"beta","control_enabled":true,"filename":"kostal.lua","host_api":{"max":1,"min":1},"id":"kostal","metadata":{"capabilities":["pv","battery","meter"],"description":"Kostal Plenticore Plus and Piko IQ via Modbus TCP (SunSpec plus Kostal custom map).","filename":"kostal.lua","homepage":"https://www.kostal-solar-electric.com","host_api_max":1,"host_api_min":1,"id":"kostal","manufacturer":"Kostal","name":"Kostal Plenticore","path":"drivers/kostal.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["Plenticore Plus","Plenticore BI","PIKO MP Plus","PIKO IQ"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.1.0"},"path":"drivers/kostal.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"4c89bc5fc2d8ead5cc3bd2c2cd043bfdd421926798366492dc587c2e38376e8f","size_bytes":12146,"source_commit":"619659c9c161289fdb890fe1f7c5676028f84fc5","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-kostal-v2.1.0-4c89bc5fc2d8ead5.lua","version":"2.1.0"},{"channel":"beta","control_enabled":false,"filename":"kstar.lua","host_api":{"max":1,"min":1},"id":"kstar","metadata":{"capabilities":["pv","battery","meter"],"filename":"kstar.lua","host_api_max":1,"host_api_min":1,"id":"kstar","manufacturer":"KSTAR","name":"Kstar","path":"drivers/kstar.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["KSE (Hybrid)","BluE-S Series"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/kstar.lua","permissions":["modbus.read"],"read_only":true,"sha256":"2e3763d59d2af612d993882103af3afc5cc037bdb2100c77b7a58e7574f085d1","size_bytes":5024,"source_commit":"3f57bff52a393a88d0f81f9226e0b10d1c3448fb","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-kstar-v1.0.0-2e3763d59d2af612.lua","version":"1.0.0"},{"channel":"beta","control_enabled":false,"filename":"kstar.lua","host_api":{"max":1,"min":1},"id":"kstar","metadata":{"capabilities":["pv","battery","meter"],"filename":"kstar.lua","host_api_max":1,"host_api_min":1,"id":"kstar","manufacturer":"KSTAR","name":"Kstar","path":"drivers/kstar.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["KSE (Hybrid)","BluE-S Series"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.1"},"path":"drivers/kstar.lua","permissions":["modbus.read"],"read_only":true,"sha256":"6f2b5beacbd7bb23598107c5e35e0f8d98145294b94f0033b98fd8102d8a1805","size_bytes":5034,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-kstar-v1.0.1-6f2b5beacbd7bb23.lua","version":"1.0.1"},{"channel":"beta","control_enabled":true,"filename":"kstar.lua","host_api":{"max":1,"min":1},"id":"kstar","metadata":{"capabilities":["pv","battery","meter"],"filename":"kstar.lua","host_api_max":1,"host_api_min":1,"id":"kstar","manufacturer":"KSTAR","name":"Kstar","path":"drivers/kstar.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["KSE (Hybrid)","BluE-S Series"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.1.0"},"path":"drivers/kstar.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"a7b77ee1610669943fe43c2e3a8fe37658c4bc10aded7ce371ec997290ec762f","size_bytes":4365,"source_commit":"619659c9c161289fdb890fe1f7c5676028f84fc5","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-kstar-v1.1.0-a7b77ee161066994.lua","version":"1.1.0"},{"channel":"beta","control_enabled":false,"filename":"mennekes.lua","host_api":{"max":1,"min":1},"id":"mennekes","metadata":{"capabilities":["v2x_charger"],"filename":"mennekes.lua","host_api_max":1,"host_api_min":1,"id":"mennekes","manufacturer":"Mennekes","name":"Mennekes","path":"drivers/mennekes.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["AMTRON"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/mennekes.lua","permissions":["modbus.read"],"read_only":true,"sha256":"aec3d8bf61acc0169440ce6393d8bcbfd8551b45a86aa709a1a23390b21ad431","size_bytes":5227,"source_commit":"535ee3e4ae0134b64081ba8a5dc71a4860286a58","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-mennekes-v1.0.0-aec3d8bf61acc016.lua","version":"1.0.0"},{"channel":"beta","control_enabled":false,"filename":"mennekes.lua","host_api":{"max":1,"min":1},"id":"mennekes","metadata":{"capabilities":["v2x_charger"],"filename":"mennekes.lua","host_api_max":1,"host_api_min":1,"id":"mennekes","manufacturer":"Mennekes","name":"Mennekes","path":"drivers/mennekes.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["AMTRON"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.1"},"path":"drivers/mennekes.lua","permissions":["modbus.read"],"read_only":true,"sha256":"0050dc2679f5107239515cf83ca2b64c0ea7658248b8fd434c3a73a0871d0e70","size_bytes":5233,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-mennekes-v1.0.1-0050dc2679f51072.lua","version":"1.0.1"},{"channel":"beta","control_enabled":false,"filename":"mennekes.lua","host_api":{"max":1,"min":1},"id":"mennekes","metadata":{"capabilities":["v2x_charger"],"filename":"mennekes.lua","host_api_max":1,"host_api_min":1,"id":"mennekes","manufacturer":"Mennekes","name":"Mennekes","path":"drivers/mennekes.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["AMTRON"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.2"},"path":"drivers/mennekes.lua","permissions":["modbus.read"],"read_only":true,"sha256":"ad7c6908d1dce22d33297ec416295440ad7ea47d83d2b0076144dac86373053d","size_bytes":5138,"source_commit":"619659c9c161289fdb890fe1f7c5676028f84fc5","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-mennekes-v1.0.2-ad7c6908d1dce22d.lua","version":"1.0.2"},{"channel":"beta","control_enabled":false,"filename":"myuplink.lua","host_api":{"max":1,"min":1},"id":"myuplink","metadata":{"capabilities":[],"description":"Read-only heat-pump telemetry via MyUplink Cloud REST API v2: compressor power + hot-water/indoor/outdoor temperatures. Observe-only — no control. OAuth: authorization-code + refresh-token (connect in Settings → Devices).","filename":"myuplink.lua","homepage":"https://dev.myuplink.com","host_api_max":1,"host_api_min":1,"id":"myuplink","manufacturer":"MyUplink (NIBE, Bosch, Atlantic, Daikin, ...)","name":"MyUplink Heat Pump (telemetry)","path":"drivers/myuplink.lua","protocols":["http"],"read_only":true,"source":"upstream","tested_models":["MyUplink Heat Pump (telemetry)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/myuplink.lua","permissions":["http.get"],"read_only":true,"sha256":"6d637d7ce3f7e54da680fe94ae068ea86a19ecfa583f787b6ef6b7b269a8de7e","size_bytes":17989,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-myuplink-v1.0.0-6d637d7ce3f7e54d.lua","version":"1.0.0"},{"channel":"beta","control_enabled":true,"filename":"myuplink.lua","host_api":{"max":1,"min":1},"id":"myuplink","metadata":{"capabilities":[],"description":"Read-only heat-pump telemetry via MyUplink Cloud REST API v2: compressor power + hot-water/indoor/outdoor temperatures. Observe-only — no control. OAuth: authorization-code + refresh-token (connect in Settings → Devices).","filename":"myuplink.lua","homepage":"https://dev.myuplink.com","host_api_max":1,"host_api_min":1,"id":"myuplink","manufacturer":"MyUplink (NIBE, Bosch, Atlantic, Daikin, ...)","name":"MyUplink Heat Pump (telemetry)","path":"drivers/myuplink.lua","protocols":["http"],"read_only":false,"source":"upstream","tested_models":["MyUplink Heat Pump (telemetry)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.1.0"},"path":"drivers/myuplink.lua","permissions":["http.get","http.post"],"read_only":false,"sha256":"47818b88df001905cc6bab10b9f87a9fff23ef5a305fc12d66915d8a23195ad1","size_bytes":17320,"source_commit":"9bd0681eed9fa4941cc9b88faa975292f0b5b134","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-myuplink-v1.1.0-47818b88df001905.lua","version":"1.1.0"},{"channel":"beta","control_enabled":false,"filename":"nibe_local.lua","host_api":{"max":1,"min":1},"id":"nibe_local","metadata":{"capabilities":["meter"],"description":"Read-only NIBE S-series heat-pump telemetry over the on-prem Local REST API (HTTPS + Basic auth, self-signed cert pinned via tls_pin_sha256). Emits compressor/used power, lifetime energy meters, and the full ~980-point register map. Observe-only — no control.","filename":"nibe_local.lua","homepage":"https://www.nibe.eu","host_api_max":1,"host_api_min":1,"id":"nibe_local","manufacturer":"NIBE","name":"NIBE REST API S-series","path":"drivers/nibe_local.lua","protocols":["http"],"read_only":true,"source":"upstream","tested_models":["NIBE REST API S-series"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/nibe_local.lua","permissions":["http.get"],"read_only":true,"sha256":"bca615e2af2cca6c74d21b8e808a26677ea78c0f1e8fbf98aaf22b577c4d37bd","size_bytes":20921,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-nibe_local-v1.0.0-bca615e2af2cca6c.lua","version":"1.0.0"},{"channel":"beta","control_enabled":true,"filename":"nibe_local.lua","host_api":{"max":1,"min":1},"id":"nibe_local","metadata":{"capabilities":["meter"],"description":"Read-only NIBE S-series heat-pump telemetry over the on-prem Local REST API (HTTPS + Basic auth, self-signed cert pinned via tls_pin_sha256). Emits compressor/used power, lifetime energy meters, and the full ~980-point register map. Observe-only — no control.","filename":"nibe_local.lua","homepage":"https://www.nibe.eu","host_api_max":1,"host_api_min":1,"id":"nibe_local","manufacturer":"NIBE","name":"NIBE REST API S-series","path":"drivers/nibe_local.lua","protocols":["http"],"read_only":false,"source":"upstream","tested_models":["NIBE REST API S-series"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.1.0"},"path":"drivers/nibe_local.lua","permissions":["http.get","http.post"],"read_only":false,"sha256":"296fa36e6401cccf2128e3902dff8fa9226ed3ccd731a85e4e18ae6e295ffce4","size_bytes":20252,"source_commit":"672ab53ed5b4e1abb33c562f716af51794a9cb48","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-nibe_local-v1.1.0-296fa36e6401cccf.lua","version":"1.1.0"},{"channel":"beta","control_enabled":false,"filename":"opendtu.lua","host_api":{"max":1,"min":1},"id":"opendtu","metadata":{"capabilities":["pv","meter"],"filename":"opendtu.lua","host_api_max":1,"host_api_min":1,"id":"opendtu","manufacturer":"Hoymiles","name":"Opendtu","path":"drivers/opendtu.lua","protocols":["http"],"read_only":true,"source":"upstream","tested_models":["HM Series","HMS Series (WiFi)","HMT Series (Three-Phase)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/opendtu.lua","permissions":["http.get"],"read_only":true,"sha256":"9a21d233be2aa2258b94c68bfc22aa4a382d1e5a97fc899281814e1e4ec77f83","size_bytes":6159,"source_commit":"3f57bff52a393a88d0f81f9226e0b10d1c3448fb","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-opendtu-v1.0.0-9a21d233be2aa225.lua","version":"1.0.0"},{"channel":"beta","control_enabled":false,"filename":"opendtu.lua","host_api":{"max":1,"min":1},"id":"opendtu","metadata":{"capabilities":["pv","meter"],"filename":"opendtu.lua","host_api_max":1,"host_api_min":1,"id":"opendtu","manufacturer":"Hoymiles","name":"Opendtu","path":"drivers/opendtu.lua","protocols":["http"],"read_only":true,"source":"upstream","tested_models":["HM Series","HMS Series (WiFi)","HMT Series (Three-Phase)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.1"},"path":"drivers/opendtu.lua","permissions":["http.get"],"read_only":true,"sha256":"6ce11685d916b8045da5ffaa381afcd4e83c9a5f5dff2d20eb862de6a9565461","size_bytes":6167,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-opendtu-v1.0.1-6ce11685d916b804.lua","version":"1.0.1"},{"channel":"beta","control_enabled":false,"filename":"opendtu_mqtt.lua","host_api":{"max":1,"min":1},"id":"opendtu_mqtt","metadata":{"capabilities":["pv","meter"],"filename":"opendtu_mqtt.lua","host_api_max":1,"host_api_min":1,"id":"opendtu_mqtt","manufacturer":"Hoymiles","name":"Opendtu Mqtt","path":"drivers/opendtu_mqtt.lua","protocols":["mqtt"],"read_only":true,"source":"upstream","tested_models":["HM Series","HMS Series","HMT Series"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.1"},"path":"drivers/opendtu_mqtt.lua","permissions":["mqtt.subscribe"],"read_only":true,"sha256":"4a204a465b22ea31e8b073b039fc1f7d87dbccd415832d37842387eafdfc1c3c","size_bytes":6385,"source_commit":"3f57bff52a393a88d0f81f9226e0b10d1c3448fb","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-opendtu_mqtt-v1.0.1-4a204a465b22ea31.lua","version":"1.0.1"},{"channel":"beta","control_enabled":false,"filename":"opendtu_mqtt.lua","host_api":{"max":1,"min":1},"id":"opendtu_mqtt","metadata":{"capabilities":["pv","meter"],"filename":"opendtu_mqtt.lua","host_api_max":1,"host_api_min":1,"id":"opendtu_mqtt","manufacturer":"Hoymiles","name":"Opendtu Mqtt","path":"drivers/opendtu_mqtt.lua","protocols":["mqtt"],"read_only":true,"source":"upstream","tested_models":["HM Series","HMS Series","HMT Series"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.2"},"path":"drivers/opendtu_mqtt.lua","permissions":["mqtt.subscribe"],"read_only":true,"sha256":"c6479f7432b720585fd13f5af0dd9b9e4cb4eb7d9349f5ab979ec7f436f29f8b","size_bytes":6399,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-opendtu_mqtt-v1.0.2-c6479f7432b72058.lua","version":"1.0.2"},{"channel":"beta","control_enabled":false,"filename":"openevse.lua","host_api":{"max":1,"min":1},"id":"openevse","metadata":{"capabilities":["v2x_charger"],"filename":"openevse.lua","host_api_max":1,"host_api_min":1,"id":"openevse","manufacturer":"OpenEVSE","name":"Openevse","path":"drivers/openevse.lua","protocols":["http"],"read_only":true,"source":"upstream","tested_models":["OpenEVSE"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/openevse.lua","permissions":["http.get"],"read_only":true,"sha256":"63eb1e472bdc51a6fe8dc5d9c6e802ec1e97fd0ff84e6f8ec5ec9ab08872b9a1","size_bytes":4799,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-openevse-v1.0.0-63eb1e472bdc51a6.lua","version":"1.0.0"},{"channel":"beta","control_enabled":false,"filename":"p1_dsmr.lua","host_api":{"max":1,"min":1},"id":"p1_dsmr","metadata":{"capabilities":["meter"],"filename":"p1_dsmr.lua","host_api_max":1,"host_api_min":1,"id":"p1_dsmr","manufacturer":"Various (DSMR)","name":"P1 Dsmr","path":"drivers/p1_dsmr.lua","protocols":["serial"],"read_only":true,"source":"upstream","tested_models":["DSMR v2.2/v4/v5"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.0.0"},"path":"drivers/p1_dsmr.lua","permissions":["serial.read"],"read_only":true,"sha256":"82bbc4c9dfd48fb32c4d1632031e56fbde99b49d5f7978a2d186057da3769cfd","size_bytes":9549,"source_commit":"3f57bff52a393a88d0f81f9226e0b10d1c3448fb","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-p1_dsmr-v2.0.0-82bbc4c9dfd48fb3.lua","version":"2.0.0"},{"channel":"beta","control_enabled":false,"filename":"p1_dsmr.lua","host_api":{"max":1,"min":1},"id":"p1_dsmr","metadata":{"capabilities":["meter"],"filename":"p1_dsmr.lua","host_api_max":1,"host_api_min":1,"id":"p1_dsmr","manufacturer":"Various (DSMR)","name":"P1 Dsmr","path":"drivers/p1_dsmr.lua","protocols":["serial"],"read_only":true,"source":"upstream","tested_models":["DSMR v2.2/v4/v5"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.0.1"},"path":"drivers/p1_dsmr.lua","permissions":["serial.read"],"read_only":true,"sha256":"1ed50821db0d7c975bafa6aaf2633ff3e66771d6363c284b1f0d6ae4f158bdf4","size_bytes":9561,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-p1_dsmr-v2.0.1-1ed50821db0d7c97.lua","version":"2.0.1"},{"channel":"beta","control_enabled":false,"filename":"p1_encrypted.lua","host_api":{"max":1,"min":1},"id":"p1_encrypted","metadata":{"capabilities":["meter"],"filename":"p1_encrypted.lua","host_api_max":1,"host_api_min":1,"id":"p1_encrypted","manufacturer":"Various (Belgian)","name":"P1 Encrypted","path":"drivers/p1_encrypted.lua","protocols":["serial"],"read_only":true,"source":"upstream","tested_models":["Belgian e-MUCS/SMR5","Austrian Smart Meter"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.0.0"},"path":"drivers/p1_encrypted.lua","permissions":["serial.read"],"read_only":true,"sha256":"06caa634e25499beceb1c50dfce0a63e762fd6852a7bd6f4bf62f9b945418081","size_bytes":13460,"source_commit":"3f57bff52a393a88d0f81f9226e0b10d1c3448fb","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-p1_encrypted-v2.0.0-06caa634e25499be.lua","version":"2.0.0"},{"channel":"beta","control_enabled":false,"filename":"p1_encrypted.lua","host_api":{"max":1,"min":1},"id":"p1_encrypted","metadata":{"capabilities":["meter"],"filename":"p1_encrypted.lua","host_api_max":1,"host_api_min":1,"id":"p1_encrypted","manufacturer":"Various (Belgian)","name":"P1 Encrypted","path":"drivers/p1_encrypted.lua","protocols":["serial"],"read_only":true,"source":"upstream","tested_models":["Belgian e-MUCS/SMR5","Austrian Smart Meter"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.0.1"},"path":"drivers/p1_encrypted.lua","permissions":["serial.read"],"read_only":true,"sha256":"96b5c242b47473afef9a81c19d6096d32c81f04e234847652d8cf4c7d0c06535","size_bytes":13472,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-p1_encrypted-v2.0.1-96b5c242b47473af.lua","version":"2.0.1"},{"channel":"beta","control_enabled":false,"filename":"p1_hdlc.lua","host_api":{"max":1,"min":1},"id":"p1_hdlc","metadata":{"capabilities":["meter"],"filename":"p1_hdlc.lua","host_api_max":1,"host_api_min":1,"id":"p1_hdlc","manufacturer":"Aidon","name":"P1 Hdlc","path":"drivers/p1_hdlc.lua","protocols":["serial"],"read_only":true,"source":"upstream","tested_models":["RJ45 HAN/NVE","MA Series HAN"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.0.0"},"path":"drivers/p1_hdlc.lua","permissions":["serial.read"],"read_only":true,"sha256":"851fa0d4f8a19129a357f3f725ac1305a4276d27643b2fc65848cc2d7a63c866","size_bytes":11556,"source_commit":"3f57bff52a393a88d0f81f9226e0b10d1c3448fb","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-p1_hdlc-v2.0.0-851fa0d4f8a19129.lua","version":"2.0.0"},{"channel":"beta","control_enabled":false,"filename":"p1_hdlc.lua","host_api":{"max":1,"min":1},"id":"p1_hdlc","metadata":{"capabilities":["meter"],"filename":"p1_hdlc.lua","host_api_max":1,"host_api_min":1,"id":"p1_hdlc","manufacturer":"Aidon","name":"P1 Hdlc","path":"drivers/p1_hdlc.lua","protocols":["serial"],"read_only":true,"source":"upstream","tested_models":["RJ45 HAN/NVE","MA Series HAN"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.0.1"},"path":"drivers/p1_hdlc.lua","permissions":["serial.read"],"read_only":true,"sha256":"f06cf43354ede86c03130fcbb32c98939da78f8d314d08fbcebf8661f2d4b383","size_bytes":11568,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-p1_hdlc-v2.0.1-f06cf43354ede86c.lua","version":"2.0.1"},{"channel":"beta","control_enabled":false,"filename":"p1_meter.lua","host_api":{"max":1,"min":1},"id":"p1_meter","metadata":{"capabilities":["meter"],"filename":"p1_meter.lua","host_api_max":1,"host_api_min":1,"id":"p1_meter","manufacturer":"Aidon","name":"P1 Meter","path":"drivers/p1_meter.lua","protocols":["serial"],"read_only":true,"source":"upstream","tested_models":["RJ11 P1/DSMR","RJ45 HAN/NVE","AM550","MA Series HAN","MA Series DLMS (AT)","Omnia","Omnipower HAN","E350","E360","E450","G5","S/T211 P1","T210-D/S210 DLMS","S34U18","DSMR v2.2","DSMR v4.x","DSMR v5.0","Belgian e-MUCS/SMR5","Austrian Smart Meter"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.0.0"},"path":"drivers/p1_meter.lua","permissions":["serial.read"],"read_only":true,"sha256":"a4d5fbae215180c46d11c5108a101bf603e16ee864cce77ec0cec90b24f447b8","size_bytes":21932,"source_commit":"3f57bff52a393a88d0f81f9226e0b10d1c3448fb","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-p1_meter-v2.0.0-a4d5fbae215180c4.lua","version":"2.0.0"},{"channel":"beta","control_enabled":false,"filename":"p1_meter.lua","host_api":{"max":1,"min":1},"id":"p1_meter","metadata":{"capabilities":["meter"],"filename":"p1_meter.lua","host_api_max":1,"host_api_min":1,"id":"p1_meter","manufacturer":"Aidon","name":"P1 Meter","path":"drivers/p1_meter.lua","protocols":["serial"],"read_only":true,"source":"upstream","tested_models":["RJ11 P1/DSMR","RJ45 HAN/NVE","AM550","MA Series HAN","MA Series DLMS (AT)","Omnia","Omnipower HAN","E350","E360","E450","G5","S/T211 P1","T210-D/S210 DLMS","S34U18","DSMR v2.2","DSMR v4.x","DSMR v5.0","Belgian e-MUCS/SMR5","Austrian Smart Meter"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.0.1"},"path":"drivers/p1_meter.lua","permissions":["serial.read"],"read_only":true,"sha256":"75a3cd000eada01f2c531802863cbbeb49018efacf9670834458ef1cfd22ab4c","size_bytes":21944,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-p1_meter-v2.0.1-75a3cd000eada01f.lua","version":"2.0.1"},{"channel":"beta","control_enabled":false,"filename":"pixii.lua","host_api":{"max":1,"min":1},"id":"pixii","metadata":{"capabilities":["battery","meter"],"filename":"pixii.lua","host_api_max":1,"host_api_min":1,"id":"pixii","manufacturer":"Pixii","name":"Pixii","path":"drivers/pixii.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["PowerShaper"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.1.0"},"path":"drivers/pixii.lua","permissions":["modbus.read"],"read_only":true,"sha256":"236ae665bf31caee3160acfe08e2bcefbafdc4f164f9c9d3f72c46cfd2417749","size_bytes":10185,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-pixii-v1.1.0-236ae665bf31caee.lua","version":"1.1.0"},{"channel":"beta","control_enabled":false,"filename":"pixii.lua","host_api":{"max":1,"min":1},"id":"pixii","metadata":{"capabilities":["battery","meter"],"filename":"pixii.lua","host_api_max":1,"host_api_min":1,"id":"pixii","manufacturer":"Pixii","name":"Pixii","path":"drivers/pixii.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["PowerShaper"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.1.1"},"path":"drivers/pixii.lua","permissions":["modbus.read"],"read_only":true,"sha256":"e5e45a0e2b0c465c2b8a19e06390c77a6124b4cb9b811f91a9248a5ae1b2230f","size_bytes":10991,"source_commit":"535ee3e4ae0134b64081ba8a5dc71a4860286a58","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-pixii-v1.1.1-e5e45a0e2b0c465c.lua","version":"1.1.1"},{"channel":"beta","control_enabled":false,"filename":"pixii.lua","host_api":{"max":1,"min":1},"id":"pixii","metadata":{"capabilities":["battery","meter"],"filename":"pixii.lua","host_api_max":1,"host_api_min":1,"id":"pixii","manufacturer":"Pixii","name":"Pixii","path":"drivers/pixii.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["PowerShaper"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.1.3"},"path":"drivers/pixii.lua","permissions":["modbus.read"],"read_only":true,"sha256":"c309ccbf83752ec21c14bd648916b1564ab5fd8982d47e4e5a8f6d2c10a651db","size_bytes":11221,"source_commit":"3f57bff52a393a88d0f81f9226e0b10d1c3448fb","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-pixii-v1.1.3-c309ccbf83752ec2.lua","version":"1.1.3"},{"channel":"beta","control_enabled":false,"filename":"pixii.lua","host_api":{"max":1,"min":1},"id":"pixii","metadata":{"capabilities":["battery","meter"],"filename":"pixii.lua","host_api_max":1,"host_api_min":1,"id":"pixii","manufacturer":"Pixii","name":"Pixii","path":"drivers/pixii.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["PowerShaper"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.1.4"},"path":"drivers/pixii.lua","permissions":["modbus.read"],"read_only":true,"sha256":"b41aa39431b6a2cebc94e5b08f9a2b47d29ddf0da82466daeebbeee82ad432b1","size_bytes":11262,"source_commit":"92f76c413ff51039210ca8642b0debb41d53b794","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-pixii-v1.1.4-b41aa39431b6a2ce.lua","version":"1.1.4"},{"channel":"beta","control_enabled":false,"filename":"pixii.lua","host_api":{"max":1,"min":1},"id":"pixii","metadata":{"capabilities":["battery","meter"],"description":"Pixii PowerShaper commercial battery storage via Modbus TCP.","filename":"pixii.lua","homepage":"https://pixii.com","host_api_max":1,"host_api_min":1,"id":"pixii","manufacturer":"Pixii","name":"Pixii PowerShaper","path":"drivers/pixii.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["PowerShaper"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.0.0"},"path":"drivers/pixii.lua","permissions":["modbus.read"],"read_only":true,"sha256":"60aa17e279bec10fef7d2e64d8d6d59fab04cfda031742ffdd464a9f0bf667ca","size_bytes":29429,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-pixii-v2.0.0-60aa17e279bec10f.lua","version":"2.0.0"},{"channel":"beta","control_enabled":true,"filename":"pixii.lua","host_api":{"max":1,"min":1},"id":"pixii","metadata":{"capabilities":["battery","meter"],"description":"Pixii PowerShaper commercial battery storage via Modbus TCP.","filename":"pixii.lua","homepage":"https://pixii.com","host_api_max":1,"host_api_min":1,"id":"pixii","manufacturer":"Pixii","name":"Pixii PowerShaper","path":"drivers/pixii.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["PowerShaper"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.1.0"},"path":"drivers/pixii.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"c015bebd0db00b1c84a63e2f6367fee82643e0f5d528935ac16823707cc7b212","size_bytes":28760,"source_commit":"d301a372493e40d3fc75d7e3fe3c03f8df62d85d","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-pixii-v2.1.0-c015bebd0db00b1c.lua","version":"2.1.0"},{"channel":"beta","control_enabled":true,"filename":"pixii.lua","host_api":{"max":1,"min":1},"id":"pixii","metadata":{"capabilities":["battery","meter"],"description":"Pixii PowerShaper commercial battery storage via Modbus TCP.","filename":"pixii.lua","homepage":"https://pixii.com","host_api_max":1,"host_api_min":1,"id":"pixii","manufacturer":"Pixii","name":"Pixii PowerShaper","path":"drivers/pixii.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["PowerShaper"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.1.1"},"path":"drivers/pixii.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"dcf3730642441e9875d9c05167a5acd9fe418bf679ee94f7aa1ba9490dc135db","size_bytes":29952,"source_commit":"619659c9c161289fdb890fe1f7c5676028f84fc5","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-pixii-v2.1.1-dcf3730642441e98.lua","version":"2.1.1"},{"channel":"beta","control_enabled":true,"filename":"pixii.lua","host_api":{"max":1,"min":1},"id":"pixii","metadata":{"capabilities":["battery","meter"],"description":"Pixii PowerShaper commercial battery storage via Modbus TCP.","filename":"pixii.lua","homepage":"https://pixii.com","host_api_max":1,"host_api_min":1,"id":"pixii","manufacturer":"Pixii","name":"Pixii PowerShaper","path":"drivers/pixii.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["PowerShaper"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.1.2"},"path":"drivers/pixii.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"326ee3630087731ef334f6e1de157d5af0f86fea107b15119eb4a0fb5a79deff","size_bytes":29700,"source_commit":"a0db9220b76156534d6f1c034e57098282500d50","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-pixii-v2.1.2-326ee3630087731e.lua","version":"2.1.2"},{"channel":"beta","control_enabled":false,"filename":"pixii_pv.lua","host_api":{"max":1,"min":1},"id":"pixii_pv","metadata":{"capabilities":["pv","meter"],"description":"Read-only Pixii telemetry: PV (external CTs) + grid meter (meter_w). Battery / SoC comes from the Modbus driver, not this one.","filename":"pixii_pv.lua","homepage":"https://pixii.com","host_api_max":1,"host_api_min":1,"id":"pixii_pv","manufacturer":"Pixii","name":"Pixii PowerShaper (PV + meter)","path":"drivers/pixii_pv.lua","protocols":["mqtt"],"read_only":true,"source":"upstream","tested_models":["Pixii PowerShaper (PV + meter)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"0.2.0"},"path":"drivers/pixii_pv.lua","permissions":["mqtt.subscribe"],"read_only":true,"sha256":"52a6e9a622b1acf2652dae6b962dcc9399ebc025aabcc2bffc1e4794a9df2ba4","size_bytes":9270,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-pixii_pv-v0.2.0-52a6e9a622b1acf2.lua","version":"0.2.0"},{"channel":"beta","control_enabled":false,"filename":"saj.lua","host_api":{"max":1,"min":1},"id":"saj","metadata":{"capabilities":["pv","battery","meter"],"filename":"saj.lua","host_api_max":1,"host_api_min":1,"id":"saj","manufacturer":"SAJ","name":"Saj","path":"drivers/saj.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["H2 (Three-Phase Hybrid)","HS2 (Single-Phase Hybrid)","AS2 (Three-Phase String)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/saj.lua","permissions":["modbus.read"],"read_only":true,"sha256":"e1bfecdaeb724b6b9f8f88805cf8d64cb1ea7a1e5e57e72c2ca40fcebe73b37f","size_bytes":6402,"source_commit":"535ee3e4ae0134b64081ba8a5dc71a4860286a58","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-saj-v1.0.0-e1bfecdaeb724b6b.lua","version":"1.0.0"},{"channel":"beta","control_enabled":false,"filename":"saj.lua","host_api":{"max":1,"min":1},"id":"saj","metadata":{"capabilities":["pv","battery","meter"],"filename":"saj.lua","host_api_max":1,"host_api_min":1,"id":"saj","manufacturer":"SAJ","name":"Saj","path":"drivers/saj.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["H2 (Three-Phase Hybrid)","HS2 (Single-Phase Hybrid)","AS2 (Three-Phase String)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.1"},"path":"drivers/saj.lua","permissions":["modbus.read"],"read_only":true,"sha256":"0171d86e94042ce4b5f9b190f4da981b60731aef9672f5025d34ba1a2846e37c","size_bytes":6408,"source_commit":"3f57bff52a393a88d0f81f9226e0b10d1c3448fb","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-saj-v1.0.1-0171d86e94042ce4.lua","version":"1.0.1"},{"channel":"beta","control_enabled":false,"filename":"saj.lua","host_api":{"max":1,"min":1},"id":"saj","metadata":{"capabilities":["pv","battery","meter"],"filename":"saj.lua","host_api_max":1,"host_api_min":1,"id":"saj","manufacturer":"SAJ","name":"Saj","path":"drivers/saj.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["H2 (Three-Phase Hybrid)","HS2 (Single-Phase Hybrid)","AS2 (Three-Phase String)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.2"},"path":"drivers/saj.lua","permissions":["modbus.read"],"read_only":true,"sha256":"7ef17f8673db58a02f53608e3f295200ebcacdbe3635d9f68a25cdb5ba3efa75","size_bytes":6418,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-saj-v1.0.2-7ef17f8673db58a0.lua","version":"1.0.2"},{"channel":"beta","control_enabled":true,"filename":"saj.lua","host_api":{"max":1,"min":1},"id":"saj","metadata":{"capabilities":["pv","battery","meter"],"filename":"saj.lua","host_api_max":1,"host_api_min":1,"id":"saj","manufacturer":"SAJ","name":"Saj","path":"drivers/saj.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["H2 (Three-Phase Hybrid)","HS2 (Single-Phase Hybrid)","AS2 (Three-Phase String)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.1.0"},"path":"drivers/saj.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"6b80ccfbc959ba7126f16c7b7e3558abba9bb2041aaec7b6d7d6273349eb501c","size_bytes":5749,"source_commit":"619659c9c161289fdb890fe1f7c5676028f84fc5","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-saj-v1.1.0-6b80ccfbc959ba71.lua","version":"1.1.0"},{"channel":"beta","control_enabled":false,"filename":"schneider_meter.lua","host_api":{"max":1,"min":1},"id":"schneider_meter","metadata":{"capabilities":["meter"],"filename":"schneider_meter.lua","host_api_max":1,"host_api_min":1,"id":"schneider_meter","manufacturer":"Schneider Electric","name":"Schneider Meter","path":"drivers/schneider_meter.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["iEM3xxx/PM5xxx"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/schneider_meter.lua","permissions":["modbus.read"],"read_only":true,"sha256":"bae1f4a1c8b9165eed279770536ece542028be4ed35edc2d6cf8aa7eaa554fda","size_bytes":5174,"source_commit":"535ee3e4ae0134b64081ba8a5dc71a4860286a58","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-schneider_meter-v1.0.0-bae1f4a1c8b9165e.lua","version":"1.0.0"},{"channel":"beta","control_enabled":false,"filename":"schneider_meter.lua","host_api":{"max":1,"min":1},"id":"schneider_meter","metadata":{"capabilities":["meter"],"filename":"schneider_meter.lua","host_api_max":1,"host_api_min":1,"id":"schneider_meter","manufacturer":"Schneider Electric","name":"Schneider Meter","path":"drivers/schneider_meter.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["iEM3xxx/PM5xxx"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.2"},"path":"drivers/schneider_meter.lua","permissions":["modbus.read"],"read_only":true,"sha256":"ae9d0b30d1ecbb308f197783b95f94089e63989020ae90cc0dfa7bff21d42fc1","size_bytes":5987,"source_commit":"3f57bff52a393a88d0f81f9226e0b10d1c3448fb","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-schneider_meter-v1.0.2-ae9d0b30d1ecbb30.lua","version":"1.0.2"},{"channel":"beta","control_enabled":false,"filename":"schneider_meter.lua","host_api":{"max":1,"min":1},"id":"schneider_meter","metadata":{"capabilities":["meter"],"filename":"schneider_meter.lua","host_api_max":1,"host_api_min":1,"id":"schneider_meter","manufacturer":"Schneider Electric","name":"Schneider Meter","path":"drivers/schneider_meter.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["iEM3xxx/PM5xxx"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.3"},"path":"drivers/schneider_meter.lua","permissions":["modbus.read"],"read_only":true,"sha256":"d6c4ccd92913deba470d64d1379228c62348d971dea0959ee954b2ebfdf45308","size_bytes":5999,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-schneider_meter-v1.0.3-d6c4ccd92913deba.lua","version":"1.0.3"},{"channel":"beta","control_enabled":false,"filename":"schneider_meter.lua","host_api":{"max":1,"min":1},"id":"schneider_meter","metadata":{"capabilities":["meter"],"filename":"schneider_meter.lua","host_api_max":1,"host_api_min":1,"id":"schneider_meter","manufacturer":"Schneider Electric","name":"Schneider Meter","path":"drivers/schneider_meter.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["iEM3xxx/PM5xxx"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.4"},"path":"drivers/schneider_meter.lua","permissions":["modbus.read"],"read_only":true,"sha256":"c514b1e8089916da44deed3f3cfc982d08370cf9ddf0064579e7dd80492803ef","size_bytes":5904,"source_commit":"619659c9c161289fdb890fe1f7c5676028f84fc5","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-schneider_meter-v1.0.4-c514b1e8089916da.lua","version":"1.0.4"},{"channel":"beta","control_enabled":false,"filename":"schrack_ev.lua","host_api":{"max":1,"min":1},"id":"schrack_ev","metadata":{"capabilities":["v2x_charger"],"filename":"schrack_ev.lua","host_api_max":1,"host_api_min":1,"id":"schrack_ev","manufacturer":"Schrack","name":"Schrack Ev","path":"drivers/schrack_ev.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["i-CHARGE"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/schrack_ev.lua","permissions":["modbus.read"],"read_only":true,"sha256":"5f0a3e3f4dc0a80c58ab1e559d2c9858d48114026c5dd46de15fc73d8f9b2a9d","size_bytes":4729,"source_commit":"535ee3e4ae0134b64081ba8a5dc71a4860286a58","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-schrack_ev-v1.0.0-5f0a3e3f4dc0a80c.lua","version":"1.0.0"},{"channel":"beta","control_enabled":false,"filename":"schrack_ev.lua","host_api":{"max":1,"min":1},"id":"schrack_ev","metadata":{"capabilities":["v2x_charger"],"filename":"schrack_ev.lua","host_api_max":1,"host_api_min":1,"id":"schrack_ev","manufacturer":"Schrack","name":"Schrack Ev","path":"drivers/schrack_ev.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["i-CHARGE"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.1"},"path":"drivers/schrack_ev.lua","permissions":["modbus.read"],"read_only":true,"sha256":"fe7fb2f6988c33072e6c0fc3b8f79145c093866b0e3bcc89461e6e8c14c692a3","size_bytes":4735,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-schrack_ev-v1.0.1-fe7fb2f6988c3307.lua","version":"1.0.1"},{"channel":"beta","control_enabled":false,"filename":"schrack_ev.lua","host_api":{"max":1,"min":1},"id":"schrack_ev","metadata":{"capabilities":["v2x_charger"],"filename":"schrack_ev.lua","host_api_max":1,"host_api_min":1,"id":"schrack_ev","manufacturer":"Schrack","name":"Schrack Ev","path":"drivers/schrack_ev.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["i-CHARGE"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.2"},"path":"drivers/schrack_ev.lua","permissions":["modbus.read"],"read_only":true,"sha256":"ec88cae0ae177ce3db8c16b64c254f6bf792697e1b0e12b2ca6535f639769edc","size_bytes":4640,"source_commit":"619659c9c161289fdb890fe1f7c5676028f84fc5","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-schrack_ev-v1.0.2-ec88cae0ae177ce3.lua","version":"1.0.2"},{"channel":"beta","control_enabled":false,"filename":"sdm630.lua","host_api":{"max":1,"min":1},"id":"sdm630","metadata":{"capabilities":["meter"],"description":"Eastron SDM630 three-phase meter via Modbus TCP or RTU.","filename":"sdm630.lua","homepage":"https://www.eastrongroup.com","host_api_max":1,"host_api_min":1,"id":"sdm630","manufacturer":"Eastron","name":"Eastron SDM630 meter","path":"drivers/sdm630.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["SDM630"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.1.2"},"path":"drivers/sdm630.lua","permissions":["modbus.read"],"read_only":true,"sha256":"888e9902fbdf68951cdf5c67e4603e5cc6285c052df6618e9218bd59cbdebc01","size_bytes":7968,"source_commit":"535ee3e4ae0134b64081ba8a5dc71a4860286a58","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-sdm630-v1.1.2-888e9902fbdf6895.lua","version":"1.1.2"},{"channel":"beta","control_enabled":false,"filename":"sdm630.lua","host_api":{"max":1,"min":1},"id":"sdm630","metadata":{"capabilities":["meter"],"description":"Eastron SDM630 three-phase meter via Modbus TCP or RTU.","filename":"sdm630.lua","homepage":"https://www.eastrongroup.com","host_api_max":1,"host_api_min":1,"id":"sdm630","manufacturer":"Eastron","name":"Eastron SDM630 meter","path":"drivers/sdm630.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["SDM630"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.1.3"},"path":"drivers/sdm630.lua","permissions":["modbus.read"],"read_only":true,"sha256":"6c123627698f7f3f306ede43e10929b31970bd0d8e4f3b0c1f9214e4e7b2f656","size_bytes":8211,"source_commit":"3f57bff52a393a88d0f81f9226e0b10d1c3448fb","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-sdm630-v1.1.3-6c123627698f7f3f.lua","version":"1.1.3"},{"channel":"beta","control_enabled":false,"filename":"sdm630.lua","host_api":{"max":1,"min":1},"id":"sdm630","metadata":{"capabilities":["meter"],"description":"Eastron SDM630 three-phase meter via Modbus TCP or RTU.","filename":"sdm630.lua","homepage":"https://www.eastrongroup.com","host_api_max":1,"host_api_min":1,"id":"sdm630","manufacturer":"Eastron","name":"Eastron SDM630 meter","path":"drivers/sdm630.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["SDM630"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.1.4"},"path":"drivers/sdm630.lua","permissions":["modbus.read"],"read_only":true,"sha256":"4134c8af3f57a34d3e0eb0041d618f47d4bce4a38a73302a05ce30c357f15429","size_bytes":8223,"source_commit":"92f76c413ff51039210ca8642b0debb41d53b794","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-sdm630-v1.1.4-4134c8af3f57a34d.lua","version":"1.1.4"},{"channel":"beta","control_enabled":false,"filename":"sdm630.lua","host_api":{"max":1,"min":1},"id":"sdm630","metadata":{"capabilities":["meter"],"description":"Eastron SDM630 three-phase meter via Modbus TCP or RTU.","filename":"sdm630.lua","homepage":"https://www.eastrongroup.com","host_api_max":1,"host_api_min":1,"id":"sdm630","manufacturer":"Eastron","name":"Eastron SDM630 meter","path":"drivers/sdm630.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["SDM630"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.0.0"},"path":"drivers/sdm630.lua","permissions":["modbus.read"],"read_only":true,"sha256":"3b0133da9ee5a853071729fba3ab67d4978637f50aab0ed090794b9606469b40","size_bytes":7968,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-sdm630-v2.0.0-3b0133da9ee5a853.lua","version":"2.0.0"},{"channel":"beta","control_enabled":false,"filename":"shelly.lua","host_api":{"max":1,"min":1},"id":"shelly","metadata":{"capabilities":["meter"],"filename":"shelly.lua","host_api_max":1,"host_api_min":1,"id":"shelly","manufacturer":"Shelly","name":"Shelly","path":"drivers/shelly.lua","protocols":["http"],"read_only":true,"source":"upstream","tested_models":["Pro 3EM","3EM Gen3","Pro EM-50","EM Gen3","Mini PM Gen3","Plus 1PM","1PM Gen3","Plus 2PM","2PM Gen3","Pro 4PM","Plus Plug S","Plug S Gen3"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.1.1"},"path":"drivers/shelly.lua","permissions":["http.get"],"read_only":true,"sha256":"dadb5e375c0fb188900a0634c8c0b3be998144ce71c8a835e7d085eb9cce02ad","size_bytes":14359,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-shelly-v1.1.1-dadb5e375c0fb188.lua","version":"1.1.1"},{"channel":"beta","control_enabled":false,"filename":"siemens_pac.lua","host_api":{"max":1,"min":1},"id":"siemens_pac","metadata":{"capabilities":["meter"],"filename":"siemens_pac.lua","host_api_max":1,"host_api_min":1,"id":"siemens_pac","manufacturer":"Siemens","name":"Siemens Pac","path":"drivers/siemens_pac.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["PAC Series"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/siemens_pac.lua","permissions":["modbus.read"],"read_only":true,"sha256":"6382d798691311bb2c0b9499fb966cc4f71f40a2fd4babe1fdf902f881d89a56","size_bytes":4976,"source_commit":"535ee3e4ae0134b64081ba8a5dc71a4860286a58","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-siemens_pac-v1.0.0-6382d798691311bb.lua","version":"1.0.0"},{"channel":"beta","control_enabled":false,"filename":"siemens_pac.lua","host_api":{"max":1,"min":1},"id":"siemens_pac","metadata":{"capabilities":["meter"],"filename":"siemens_pac.lua","host_api_max":1,"host_api_min":1,"id":"siemens_pac","manufacturer":"Siemens","name":"Siemens Pac","path":"drivers/siemens_pac.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["PAC Series"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.2"},"path":"drivers/siemens_pac.lua","permissions":["modbus.read"],"read_only":true,"sha256":"732ac0e793f5fdb87217b5eaf13a69fb78a5166f921384bd35f6ca7bda1fbe9c","size_bytes":5779,"source_commit":"3f57bff52a393a88d0f81f9226e0b10d1c3448fb","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-siemens_pac-v1.0.2-732ac0e793f5fdb8.lua","version":"1.0.2"},{"channel":"beta","control_enabled":false,"filename":"siemens_pac.lua","host_api":{"max":1,"min":1},"id":"siemens_pac","metadata":{"capabilities":["meter"],"filename":"siemens_pac.lua","host_api_max":1,"host_api_min":1,"id":"siemens_pac","manufacturer":"Siemens","name":"Siemens Pac","path":"drivers/siemens_pac.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["PAC Series"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.3"},"path":"drivers/siemens_pac.lua","permissions":["modbus.read"],"read_only":true,"sha256":"4bddcb51f5b564def3188a287a923eddd76481c5d9559fe830955e706324bf53","size_bytes":5791,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-siemens_pac-v1.0.3-4bddcb51f5b564de.lua","version":"1.0.3"},{"channel":"beta","control_enabled":false,"filename":"siemens_pac.lua","host_api":{"max":1,"min":1},"id":"siemens_pac","metadata":{"capabilities":["meter"],"filename":"siemens_pac.lua","host_api_max":1,"host_api_min":1,"id":"siemens_pac","manufacturer":"Siemens","name":"Siemens Pac","path":"drivers/siemens_pac.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["PAC Series"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.4"},"path":"drivers/siemens_pac.lua","permissions":["modbus.read"],"read_only":true,"sha256":"90e8521a60eb403b9ab296aa5f649d478c33466e50f33588e0d322cc8eb168fd","size_bytes":5696,"source_commit":"619659c9c161289fdb890fe1f7c5676028f84fc5","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-siemens_pac-v1.0.4-90e8521a60eb403b.lua","version":"1.0.4"},{"channel":"beta","control_enabled":false,"filename":"sigenergy.lua","host_api":{"max":1,"min":1},"id":"sigenergy","metadata":{"capabilities":["battery","meter","pv"],"filename":"sigenergy.lua","host_api_max":1,"host_api_min":1,"id":"sigenergy","manufacturer":"Sigenergy","name":"Sigenergy","path":"drivers/sigenergy.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["SigenStor EC Single-Phase (3-12kW)","Sigen Hybrid Single-Phase (3-6kW)","Sigen Hybrid Three-Phase (5-30kW)","SigenStor EC Three-Phase (5-30kW)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/sigenergy.lua","permissions":["modbus.read"],"read_only":true,"sha256":"63e9a97bcec613bc0190981d729e96f34c00d04076f15324482646f70c9a76e7","size_bytes":6451,"source_commit":"535ee3e4ae0134b64081ba8a5dc71a4860286a58","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-sigenergy-v1.0.0-63e9a97bcec613bc.lua","version":"1.0.0"},{"channel":"beta","control_enabled":false,"filename":"sigenergy.lua","host_api":{"max":1,"min":1},"id":"sigenergy","metadata":{"capabilities":["battery","meter","pv"],"filename":"sigenergy.lua","host_api_max":1,"host_api_min":1,"id":"sigenergy","manufacturer":"Sigenergy","name":"Sigenergy","path":"drivers/sigenergy.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["SigenStor EC Single-Phase (3-12kW)","Sigen Hybrid Single-Phase (3-6kW)","Sigen Hybrid Three-Phase (5-30kW)","SigenStor EC Three-Phase (5-30kW)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.1"},"path":"drivers/sigenergy.lua","permissions":["modbus.read"],"read_only":true,"sha256":"51fb5d88f9074e5d29468e4ee03bbc82ac7548df4fd8830a1b88b14848356f4a","size_bytes":6469,"source_commit":"3f57bff52a393a88d0f81f9226e0b10d1c3448fb","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-sigenergy-v1.0.1-51fb5d88f9074e5d.lua","version":"1.0.1"},{"channel":"beta","control_enabled":false,"filename":"sigenergy.lua","host_api":{"max":1,"min":1},"id":"sigenergy","metadata":{"capabilities":["battery","meter","pv"],"filename":"sigenergy.lua","host_api_max":1,"host_api_min":1,"id":"sigenergy","manufacturer":"Sigenergy","name":"Sigenergy","path":"drivers/sigenergy.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["SigenStor EC Single-Phase (3-12kW)","Sigen Hybrid Single-Phase (3-6kW)","Sigen Hybrid Three-Phase (5-30kW)","SigenStor EC Three-Phase (5-30kW)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.2"},"path":"drivers/sigenergy.lua","permissions":["modbus.read"],"read_only":true,"sha256":"a53a551c92990d2e85e7988189f96c6ac0a8b84535da5af4c2ef87614ee1f7c1","size_bytes":6431,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-sigenergy-v1.0.2-a53a551c92990d2e.lua","version":"1.0.2"},{"channel":"beta","control_enabled":true,"filename":"sigenergy.lua","host_api":{"max":1,"min":1},"id":"sigenergy","metadata":{"capabilities":["battery","meter","pv"],"filename":"sigenergy.lua","host_api_max":1,"host_api_min":1,"id":"sigenergy","manufacturer":"Sigenergy","name":"Sigenergy","path":"drivers/sigenergy.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["SigenStor EC Single-Phase (3-12kW)","Sigen Hybrid Single-Phase (3-6kW)","Sigen Hybrid Three-Phase (5-30kW)","SigenStor EC Three-Phase (5-30kW)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.1.0"},"path":"drivers/sigenergy.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"d1cdc01bb74815b4c3bc29c2914aa6bfbb407cf3d4091466ef3971c283d0e053","size_bytes":5762,"source_commit":"7d23940a85286fc8325903ef6c50f67b00b1a6e4","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-sigenergy-v1.1.0-d1cdc01bb74815b4.lua","version":"1.1.0"},{"channel":"beta","control_enabled":true,"filename":"sigenergy.lua","host_api":{"max":1,"min":1},"id":"sigenergy","metadata":{"capabilities":["battery","meter","pv"],"filename":"sigenergy.lua","host_api_max":1,"host_api_min":1,"id":"sigenergy","manufacturer":"Sigenergy","name":"Sigenergy","path":"drivers/sigenergy.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["SigenStor EC Single-Phase (3-12kW)","Sigen Hybrid Single-Phase (3-6kW)","Sigen Hybrid Three-Phase (5-30kW)","SigenStor EC Three-Phase (5-30kW)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.1.1"},"path":"drivers/sigenergy.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"cad6aed606db83041d2f480a853a972a93592b4bcfa6e08efd894c87e2e5e9b8","size_bytes":5650,"source_commit":"619659c9c161289fdb890fe1f7c5676028f84fc5","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-sigenergy-v1.1.1-cad6aed606db8304.lua","version":"1.1.1"},{"channel":"beta","control_enabled":false,"filename":"sma.lua","host_api":{"max":1,"min":1},"id":"sma","metadata":{"capabilities":["battery","meter","pv"],"filename":"sma.lua","host_api_max":1,"host_api_min":1,"id":"sma","manufacturer":"SMA","name":"Sma","path":"drivers/sma.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["Sunny Tripower X","Sunny Tripower","Sunny Tripower CORE1","Sunny Tripower CORE2","Sunny Boy","Sunny Island","SMA Home Manager 2.0"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.2.0"},"path":"drivers/sma.lua","permissions":["modbus.read"],"read_only":true,"sha256":"5ed477d331072208a137a62265d9218872950cf9f16c3c9f61465c4c31e4a6e4","size_bytes":9795,"source_commit":"535ee3e4ae0134b64081ba8a5dc71a4860286a58","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-sma-v1.2.0-5ed477d331072208.lua","version":"1.2.0"},{"channel":"beta","control_enabled":false,"filename":"sma.lua","host_api":{"max":1,"min":1},"id":"sma","metadata":{"capabilities":["battery","meter","pv"],"filename":"sma.lua","host_api_max":1,"host_api_min":1,"id":"sma","manufacturer":"SMA","name":"Sma","path":"drivers/sma.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["Sunny Tripower X","Sunny Tripower","Sunny Tripower CORE1","Sunny Tripower CORE2","Sunny Boy","Sunny Island","SMA Home Manager 2.0"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.2.2"},"path":"drivers/sma.lua","permissions":["modbus.read"],"read_only":true,"sha256":"1e5324aba845f451f78e18de81bdf1fdcc5d63cb7ebfb55e52e9588ecc2a50f3","size_bytes":10032,"source_commit":"3f57bff52a393a88d0f81f9226e0b10d1c3448fb","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-sma-v1.2.2-1e5324aba845f451.lua","version":"1.2.2"},{"channel":"beta","control_enabled":false,"filename":"sma.lua","host_api":{"max":1,"min":1},"id":"sma","metadata":{"capabilities":["battery","meter","pv"],"filename":"sma.lua","host_api_max":1,"host_api_min":1,"id":"sma","manufacturer":"SMA","name":"Sma","path":"drivers/sma.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["Sunny Tripower X","Sunny Tripower","Sunny Tripower CORE1","Sunny Tripower CORE2","Sunny Boy","Sunny Island","SMA Home Manager 2.0"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.2.3"},"path":"drivers/sma.lua","permissions":["modbus.read"],"read_only":true,"sha256":"e9030ec36496f38eb9579c02e0a25ac381858aa8b13a32430461fc308a42bf60","size_bytes":10088,"source_commit":"470527e8ae0431df8e4d525a70bba72e2f66973f","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-sma-v1.2.3-e9030ec36496f38e.lua","version":"1.2.3"},{"channel":"beta","control_enabled":false,"filename":"sma.lua","host_api":{"max":1,"min":1},"id":"sma","metadata":{"capabilities":["battery","meter","pv"],"filename":"sma.lua","host_api_max":1,"host_api_min":1,"id":"sma","manufacturer":"SMA","name":"Sma","path":"drivers/sma.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["Sunny Tripower X","Sunny Tripower","Sunny Tripower CORE1","Sunny Tripower CORE2","Sunny Boy","Sunny Island","SMA Home Manager 2.0"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.2.4"},"path":"drivers/sma.lua","permissions":["modbus.read"],"read_only":true,"sha256":"d8d33ee7ba508f0b5a4b49e4cefdc2a456e3721ef21237e7b9b2cbcb4b7a135e","size_bytes":10088,"source_commit":"92f76c413ff51039210ca8642b0debb41d53b794","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-sma-v1.2.4-d8d33ee7ba508f0b.lua","version":"1.2.4"},{"channel":"beta","control_enabled":false,"filename":"sma.lua","host_api":{"max":1,"min":1},"id":"sma","metadata":{"capabilities":["battery","meter","pv"],"description":"SMA Sunny Tripower / Sunny Boy Storage via Modbus TCP (SunSpec).","filename":"sma.lua","homepage":"https://www.sma.de","host_api_max":1,"host_api_min":1,"id":"sma","manufacturer":"SMA","name":"SMA hybrid inverter","path":"drivers/sma.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["Sunny Tripower X","Sunny Tripower","Sunny Tripower CORE1","Sunny Tripower CORE2","Sunny Boy","Sunny Island","SMA Home Manager 2.0"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.0.0"},"path":"drivers/sma.lua","permissions":["modbus.read"],"read_only":true,"sha256":"3ee9c49fe7708dd180687fd06ebed55f1528e5f87c2a957ca10ba1d2d098f7c2","size_bytes":16061,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-sma-v2.0.0-3ee9c49fe7708dd1.lua","version":"2.0.0"},{"channel":"beta","control_enabled":true,"filename":"sma.lua","host_api":{"max":1,"min":1},"id":"sma","metadata":{"capabilities":["battery","meter","pv"],"description":"SMA Sunny Tripower / Sunny Boy Storage via Modbus TCP (SunSpec).","filename":"sma.lua","homepage":"https://www.sma.de","host_api_max":1,"host_api_min":1,"id":"sma","manufacturer":"SMA","name":"SMA hybrid inverter","path":"drivers/sma.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["Sunny Tripower X","Sunny Tripower","Sunny Tripower CORE1","Sunny Tripower CORE2","Sunny Boy","Sunny Island","SMA Home Manager 2.0"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.1.0"},"path":"drivers/sma.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"063c28d8857ec5fef6be47929565fc35ac4016c38800a2d93c4f1d4472cae083","size_bytes":15392,"source_commit":"619659c9c161289fdb890fe1f7c5676028f84fc5","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-sma-v2.1.0-063c28d8857ec5fe.lua","version":"2.1.0"},{"channel":"beta","control_enabled":false,"filename":"sma_pv.lua","host_api":{"max":1,"min":1},"id":"sma_pv","metadata":{"capabilities":["pv","meter"],"description":"SMA Sunny Tripower commercial string inverters (STP 50-40 / 50-41 / X-class) via Modbus TCP, with active-power curtailment over Modbus holding register 40915.","filename":"sma_pv.lua","homepage":"https://www.sma.de","host_api_max":1,"host_api_min":1,"id":"sma_pv","manufacturer":"SMA","name":"SMA PV inverter (non-hybrid)","path":"drivers/sma_pv.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["SMA PV inverter (non-hybrid)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/sma_pv.lua","permissions":["modbus.read"],"read_only":true,"sha256":"2f41c1e90ed3597cec437cbe6e0ce03d0e41787c014d462101a38b8f12aa326d","size_bytes":20980,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-sma_pv-v1.0.0-2f41c1e90ed3597c.lua","version":"1.0.0"},{"channel":"beta","control_enabled":true,"filename":"sma_pv.lua","host_api":{"max":1,"min":1},"id":"sma_pv","metadata":{"capabilities":["pv","meter"],"description":"SMA Sunny Tripower commercial string inverters (STP 50-40 / 50-41 / X-class) via Modbus TCP, with active-power curtailment over Modbus holding register 40915.","filename":"sma_pv.lua","homepage":"https://www.sma.de","host_api_max":1,"host_api_min":1,"id":"sma_pv","manufacturer":"SMA","name":"SMA PV inverter (non-hybrid)","path":"drivers/sma_pv.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["SMA PV inverter (non-hybrid)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.1.0"},"path":"drivers/sma_pv.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"f8140e4356517bb70fd4a06db02290634e07efb8ebf82199209d46b3b7b86697","size_bytes":20311,"source_commit":"619659c9c161289fdb890fe1f7c5676028f84fc5","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-sma_pv-v1.1.0-f8140e4356517bb7.lua","version":"1.1.0"},{"channel":"beta","control_enabled":false,"filename":"socomec.lua","host_api":{"max":1,"min":1},"id":"socomec","metadata":{"capabilities":["meter"],"filename":"socomec.lua","host_api_max":1,"host_api_min":1,"id":"socomec","manufacturer":"Socomec","name":"Socomec","path":"drivers/socomec.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["Diris / countis"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/socomec.lua","permissions":["modbus.read"],"read_only":true,"sha256":"87bf246e6170341b46bc40b886bf89866f96ac672e0be70d4a386147a8f6fada","size_bytes":5101,"source_commit":"535ee3e4ae0134b64081ba8a5dc71a4860286a58","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-socomec-v1.0.0-87bf246e6170341b.lua","version":"1.0.0"},{"channel":"beta","control_enabled":false,"filename":"socomec.lua","host_api":{"max":1,"min":1},"id":"socomec","metadata":{"capabilities":["meter"],"filename":"socomec.lua","host_api_max":1,"host_api_min":1,"id":"socomec","manufacturer":"Socomec","name":"Socomec","path":"drivers/socomec.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["Diris / countis"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.1"},"path":"drivers/socomec.lua","permissions":["modbus.read"],"read_only":true,"sha256":"6396d7644991e4057f49bea17201dfeee7b70ce2af97da26a9b71da5e0dd665d","size_bytes":5140,"source_commit":"3f57bff52a393a88d0f81f9226e0b10d1c3448fb","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-socomec-v1.0.1-6396d7644991e405.lua","version":"1.0.1"},{"channel":"beta","control_enabled":false,"filename":"socomec.lua","host_api":{"max":1,"min":1},"id":"socomec","metadata":{"capabilities":["meter"],"filename":"socomec.lua","host_api_max":1,"host_api_min":1,"id":"socomec","manufacturer":"Socomec","name":"Socomec","path":"drivers/socomec.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["Diris / countis"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.2"},"path":"drivers/socomec.lua","permissions":["modbus.read"],"read_only":true,"sha256":"eabff605e9461af6a91b25fbde0ab733fbc491738e1b8e5f0c9c602ed79064c2","size_bytes":5152,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-socomec-v1.0.2-eabff605e9461af6.lua","version":"1.0.2"},{"channel":"beta","control_enabled":false,"filename":"socomec.lua","host_api":{"max":1,"min":1},"id":"socomec","metadata":{"capabilities":["meter"],"filename":"socomec.lua","host_api_max":1,"host_api_min":1,"id":"socomec","manufacturer":"Socomec","name":"Socomec","path":"drivers/socomec.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["Diris / countis"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.3"},"path":"drivers/socomec.lua","permissions":["modbus.read"],"read_only":true,"sha256":"b676f094e08b49295c784f8c9474f9682a02557d4b3846687876dca1d497d6e8","size_bytes":5057,"source_commit":"619659c9c161289fdb890fe1f7c5676028f84fc5","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-socomec-v1.0.3-b676f094e08b4929.lua","version":"1.0.3"},{"channel":"beta","control_enabled":false,"filename":"sofar.lua","host_api":{"max":1,"min":1},"id":"sofar","metadata":{"capabilities":["pv","battery","meter"],"filename":"sofar.lua","host_api_max":1,"host_api_min":1,"id":"sofar","manufacturer":"Sofar Solar","name":"Sofar","path":"drivers/sofar.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["HYD Series (Three-Phase Hybrid)","ME Series (Single-Phase Hybrid)","HYD-ES (Single-Phase Hybrid)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/sofar.lua","permissions":["modbus.read"],"read_only":true,"sha256":"30fe4ee88be06210a3c9f883088aa4143e84eacb00c080bef6eb1a3fcedddf47","size_bytes":8161,"source_commit":"535ee3e4ae0134b64081ba8a5dc71a4860286a58","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-sofar-v1.0.0-30fe4ee88be06210.lua","version":"1.0.0"},{"channel":"beta","control_enabled":false,"filename":"sofar.lua","host_api":{"max":1,"min":1},"id":"sofar","metadata":{"capabilities":["pv","battery","meter"],"filename":"sofar.lua","host_api_max":1,"host_api_min":1,"id":"sofar","manufacturer":"Sofar Solar","name":"Sofar","path":"drivers/sofar.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["HYD Series (Three-Phase Hybrid)","ME Series (Single-Phase Hybrid)","HYD-ES (Single-Phase Hybrid)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.1"},"path":"drivers/sofar.lua","permissions":["modbus.read"],"read_only":true,"sha256":"9c1b3fbf9037adecac2f47aeedad34c6845ea2598571a789a997dfa43183ce92","size_bytes":8170,"source_commit":"3f57bff52a393a88d0f81f9226e0b10d1c3448fb","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-sofar-v1.0.1-9c1b3fbf9037adec.lua","version":"1.0.1"},{"channel":"beta","control_enabled":false,"filename":"sofar.lua","host_api":{"max":1,"min":1},"id":"sofar","metadata":{"capabilities":["pv","battery","meter"],"filename":"sofar.lua","host_api_max":1,"host_api_min":1,"id":"sofar","manufacturer":"Sofar Solar","name":"Sofar","path":"drivers/sofar.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["HYD Series (Three-Phase Hybrid)","ME Series (Single-Phase Hybrid)","HYD-ES (Single-Phase Hybrid)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.2"},"path":"drivers/sofar.lua","permissions":["modbus.read"],"read_only":true,"sha256":"4e97484dba3d6902635e187c5342be44f6476da87c27a92fa7642ece6cfbaacc","size_bytes":8207,"source_commit":"92f76c413ff51039210ca8642b0debb41d53b794","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-sofar-v1.0.2-4e97484dba3d6902.lua","version":"1.0.2"},{"channel":"beta","control_enabled":false,"filename":"sofar.lua","host_api":{"max":1,"min":1},"id":"sofar","metadata":{"capabilities":["pv","battery","meter"],"description":"Sofar Solar HYD-ES / HYD-EP hybrid inverters via Modbus TCP.","filename":"sofar.lua","homepage":"https://www.sofarsolar.com","host_api_max":1,"host_api_min":1,"id":"sofar","manufacturer":"Sofar Solar","name":"Sofar hybrid inverter","path":"drivers/sofar.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["HYD Series (Three-Phase Hybrid)","ME Series (Single-Phase Hybrid)","HYD-ES (Single-Phase Hybrid)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.0.0"},"path":"drivers/sofar.lua","permissions":["modbus.read"],"read_only":true,"sha256":"e4f0116a4f1856635e384ffb07a94cfa478af0f1e48d0874856ccd0bfe1940a5","size_bytes":10795,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-sofar-v2.0.0-e4f0116a4f185663.lua","version":"2.0.0"},{"channel":"beta","control_enabled":true,"filename":"sofar.lua","host_api":{"max":1,"min":1},"id":"sofar","metadata":{"capabilities":["pv","battery","meter"],"description":"Sofar Solar HYD-ES / HYD-EP hybrid inverters via Modbus TCP.","filename":"sofar.lua","homepage":"https://www.sofarsolar.com","host_api_max":1,"host_api_min":1,"id":"sofar","manufacturer":"Sofar Solar","name":"Sofar hybrid inverter","path":"drivers/sofar.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["HYD Series (Three-Phase Hybrid)","ME Series (Single-Phase Hybrid)","HYD-ES (Single-Phase Hybrid)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.1.0"},"path":"drivers/sofar.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"6d3c696f03673b01217ce339037353f824e16d4b5644724db17cba5c2c998d61","size_bytes":10126,"source_commit":"619659c9c161289fdb890fe1f7c5676028f84fc5","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-sofar-v2.1.0-6d3c696f03673b01.lua","version":"2.1.0"},{"channel":"beta","control_enabled":false,"filename":"solaredge.lua","host_api":{"max":1,"min":1},"id":"solaredge","metadata":{"capabilities":["meter","pv"],"filename":"solaredge.lua","host_api_max":1,"host_api_min":1,"id":"solaredge","manufacturer":"SolarEdge","name":"Solaredge","path":"drivers/solaredge.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["SE Series (Single-Phase)","SE Series (Three-Phase)","StorEdge","SolarEdge Home"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.2.0"},"path":"drivers/solaredge.lua","permissions":["modbus.read"],"read_only":true,"sha256":"c7f733894387b62a96b60a53d900409e6ed13eec5c059b78c9a70ca134c96861","size_bytes":9427,"source_commit":"535ee3e4ae0134b64081ba8a5dc71a4860286a58","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-solaredge-v1.2.0-c7f733894387b62a.lua","version":"1.2.0"},{"channel":"beta","control_enabled":false,"filename":"solaredge.lua","host_api":{"max":1,"min":1},"id":"solaredge","metadata":{"capabilities":["meter","pv"],"filename":"solaredge.lua","host_api_max":1,"host_api_min":1,"id":"solaredge","manufacturer":"SolarEdge","name":"Solaredge","path":"drivers/solaredge.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["SE Series (Single-Phase)","SE Series (Three-Phase)","StorEdge","SolarEdge Home"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.2.2"},"path":"drivers/solaredge.lua","permissions":["modbus.read"],"read_only":true,"sha256":"68cd4fe9e536496f9d7b202560b93e592c946d385feb774aeaeba5b76dd05d8f","size_bytes":9654,"source_commit":"3f57bff52a393a88d0f81f9226e0b10d1c3448fb","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-solaredge-v1.2.2-68cd4fe9e536496f.lua","version":"1.2.2"},{"channel":"beta","control_enabled":false,"filename":"solaredge.lua","host_api":{"max":1,"min":1},"id":"solaredge","metadata":{"capabilities":["meter","pv"],"filename":"solaredge.lua","host_api_max":1,"host_api_min":1,"id":"solaredge","manufacturer":"SolarEdge","name":"Solaredge","path":"drivers/solaredge.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["SE Series (Single-Phase)","SE Series (Three-Phase)","StorEdge","SolarEdge Home"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.2.3"},"path":"drivers/solaredge.lua","permissions":["modbus.read"],"read_only":true,"sha256":"d1620f91577c4d645aafa32624bf377435b4cab6831fad5d212bd0abc380e090","size_bytes":9681,"source_commit":"92f76c413ff51039210ca8642b0debb41d53b794","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-solaredge-v1.2.3-d1620f91577c4d64.lua","version":"1.2.3"},{"channel":"beta","control_enabled":false,"filename":"solaredge.lua","host_api":{"max":1,"min":1},"id":"solaredge","metadata":{"capabilities":["meter","pv"],"description":"SolarEdge HD-Wave / StorEdge via Modbus TCP (SunSpec) with PV active-power-limit curtail.","filename":"solaredge.lua","homepage":"https://www.solaredge.com","host_api_max":1,"host_api_min":1,"id":"solaredge","manufacturer":"SolarEdge","name":"SolarEdge inverter + meter","path":"drivers/solaredge.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["SE Series (Single-Phase)","SE Series (Three-Phase)","StorEdge","SolarEdge Home"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.0.0"},"path":"drivers/solaredge.lua","permissions":["modbus.read"],"read_only":true,"sha256":"d1d0c3fcf7d35bf50a3e32f44ed442b40698d84907230aa8520f888cf22b93ff","size_bytes":22929,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-solaredge-v2.0.0-d1d0c3fcf7d35bf5.lua","version":"2.0.0"},{"channel":"beta","control_enabled":true,"filename":"solaredge.lua","host_api":{"max":1,"min":1},"id":"solaredge","metadata":{"capabilities":["meter","pv"],"description":"SolarEdge HD-Wave / StorEdge via Modbus TCP (SunSpec) with PV active-power-limit curtail.","filename":"solaredge.lua","homepage":"https://www.solaredge.com","host_api_max":1,"host_api_min":1,"id":"solaredge","manufacturer":"SolarEdge","name":"SolarEdge inverter + meter","path":"drivers/solaredge.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["SE Series (Single-Phase)","SE Series (Three-Phase)","StorEdge","SolarEdge Home"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.1.0"},"path":"drivers/solaredge.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"abfe0df2b933fd60eb9719e2add9a4941b7c1781a803a1ad027ca8f1c5a9375c","size_bytes":22260,"source_commit":"619659c9c161289fdb890fe1f7c5676028f84fc5","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-solaredge-v2.1.0-abfe0df2b933fd60.lua","version":"2.1.0"},{"channel":"beta","control_enabled":false,"filename":"solaredge_legacy.lua","host_api":{"max":1,"min":1},"id":"solaredge_legacy","metadata":{"capabilities":["pv"],"description":"SolarEdge K-series (SE7K / SE10K / SE17K / SE25K) PV inverter via Modbus TCP — reads use FC 0x03 holding; curtail writes use FC 0x10 multi-holding on the same Advanced Power Control registers (0xF000/0xF001) as HD-Wave.","filename":"solaredge_legacy.lua","homepage":"https://www.solaredge.com","host_api_max":1,"host_api_min":1,"id":"solaredge_legacy","manufacturer":"SolarEdge","name":"SolarEdge legacy (K-series with display)","path":"drivers/solaredge_legacy.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["SolarEdge legacy (K-series with display)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"0.2.0"},"path":"drivers/solaredge_legacy.lua","permissions":["modbus.read"],"read_only":true,"sha256":"df47731f20059f5fcc366f95b76dbd44134f7df8261b06ffd3fa0f275ab2f1cf","size_bytes":17436,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-solaredge_legacy-v0.2.0-df47731f20059f5f.lua","version":"0.2.0"},{"channel":"beta","control_enabled":true,"filename":"solaredge_legacy.lua","host_api":{"max":1,"min":1},"id":"solaredge_legacy","metadata":{"capabilities":["pv"],"description":"SolarEdge K-series (SE7K / SE10K / SE17K / SE25K) PV inverter via Modbus TCP — reads use FC 0x03 holding; curtail writes use FC 0x10 multi-holding on the same Advanced Power Control registers (0xF000/0xF001) as HD-Wave.","filename":"solaredge_legacy.lua","homepage":"https://www.solaredge.com","host_api_max":1,"host_api_min":1,"id":"solaredge_legacy","manufacturer":"SolarEdge","name":"SolarEdge legacy (K-series with display)","path":"drivers/solaredge_legacy.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["SolarEdge legacy (K-series with display)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"0.3.0"},"path":"drivers/solaredge_legacy.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"d5c22c8c8b32f0a96e248ef43407e96cf9557fccd904522fe6cfe91f02cc6e79","size_bytes":16767,"source_commit":"d301a372493e40d3fc75d7e3fe3c03f8df62d85d","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-solaredge_legacy-v0.3.0-d5c22c8c8b32f0a9.lua","version":"0.3.0"},{"channel":"beta","control_enabled":true,"filename":"solaredge_legacy.lua","host_api":{"max":1,"min":1},"id":"solaredge_legacy","metadata":{"capabilities":["pv"],"description":"SolarEdge K-series (SE7K / SE10K / SE17K / SE25K) PV inverter via Modbus TCP — reads use FC 0x03 holding; curtail writes use FC 0x10 multi-holding on the same Advanced Power Control registers (0xF000/0xF001) as HD-Wave.","filename":"solaredge_legacy.lua","homepage":"https://www.solaredge.com","host_api_max":1,"host_api_min":1,"id":"solaredge_legacy","manufacturer":"SolarEdge","name":"SolarEdge legacy (K-series with display)","path":"drivers/solaredge_legacy.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["SolarEdge legacy (K-series with display)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"0.3.1"},"path":"drivers/solaredge_legacy.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"6b5b8a978044e6345137d3dde5bebbb17580b416becb8b50c130b88c6f273e8b","size_bytes":17927,"source_commit":"619659c9c161289fdb890fe1f7c5676028f84fc5","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-solaredge_legacy-v0.3.1-6b5b8a978044e634.lua","version":"0.3.1"},{"channel":"beta","control_enabled":false,"filename":"solaredge_pv.lua","host_api":{"max":1,"min":1},"id":"solaredge_pv","metadata":{"capabilities":["pv"],"description":"SolarEdge HD-Wave / StorEdge PV-only via Modbus TCP (SunSpec) with PV active-power-limit curtail.","filename":"solaredge_pv.lua","homepage":"https://www.solaredge.com","host_api_max":1,"host_api_min":1,"id":"solaredge_pv","manufacturer":"SolarEdge","name":"SolarEdge inverter (PV only)","path":"drivers/solaredge_pv.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["SolarEdge inverter (PV only)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.1.0"},"path":"drivers/solaredge_pv.lua","permissions":["modbus.read"],"read_only":true,"sha256":"a5ed0024d0dc682c1583dc9e893a72c557f96f21c185dcd48b751c6693a66fd6","size_bytes":13005,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-solaredge_pv-v1.1.0-a5ed0024d0dc682c.lua","version":"1.1.0"},{"channel":"beta","control_enabled":true,"filename":"solaredge_pv.lua","host_api":{"max":1,"min":1},"id":"solaredge_pv","metadata":{"capabilities":["pv"],"description":"SolarEdge HD-Wave / StorEdge PV-only via Modbus TCP (SunSpec) with PV active-power-limit curtail.","filename":"solaredge_pv.lua","homepage":"https://www.solaredge.com","host_api_max":1,"host_api_min":1,"id":"solaredge_pv","manufacturer":"SolarEdge","name":"SolarEdge inverter (PV only)","path":"drivers/solaredge_pv.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["SolarEdge inverter (PV only)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.2.0"},"path":"drivers/solaredge_pv.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"6592124bf083a2bef567e590b8f012cdc4ac3da7403e3724c23df147748899ab","size_bytes":12336,"source_commit":"619659c9c161289fdb890fe1f7c5676028f84fc5","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-solaredge_pv-v1.2.0-6592124bf083a2be.lua","version":"1.2.0"},{"channel":"beta","control_enabled":false,"filename":"solax.lua","host_api":{"max":1,"min":1},"id":"solax","metadata":{"capabilities":["pv","battery","meter"],"filename":"solax.lua","host_api_max":1,"host_api_min":1,"id":"solax","manufacturer":"SolaX","name":"Solax","path":"drivers/solax.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["X1 Hybrid G4","X3 Hybrid G4","X3 Hybrid G4 PRO","X3 MIC/PRO G2 (String)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/solax.lua","permissions":["modbus.read"],"read_only":true,"sha256":"526ca262e536d7c67f73daa8c55cac3b0574d5e79ef5cc4e9a9e0ecd001482ab","size_bytes":6605,"source_commit":"535ee3e4ae0134b64081ba8a5dc71a4860286a58","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-solax-v1.0.0-526ca262e536d7c6.lua","version":"1.0.0"},{"channel":"beta","control_enabled":false,"filename":"solax.lua","host_api":{"max":1,"min":1},"id":"solax","metadata":{"capabilities":["pv","battery","meter"],"filename":"solax.lua","host_api_max":1,"host_api_min":1,"id":"solax","manufacturer":"SolaX","name":"Solax","path":"drivers/solax.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["X1 Hybrid G4","X3 Hybrid G4","X3 Hybrid G4 PRO","X3 MIC/PRO G2 (String)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.1"},"path":"drivers/solax.lua","permissions":["modbus.read"],"read_only":true,"sha256":"06548931d554e18cc25515584dfbe4afc384cbd01a6801ad9697a559fe2f1b20","size_bytes":6617,"source_commit":"3f57bff52a393a88d0f81f9226e0b10d1c3448fb","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-solax-v1.0.1-06548931d554e18c.lua","version":"1.0.1"},{"channel":"beta","control_enabled":false,"filename":"solax.lua","host_api":{"max":1,"min":1},"id":"solax","metadata":{"capabilities":["pv","battery","meter"],"filename":"solax.lua","host_api_max":1,"host_api_min":1,"id":"solax","manufacturer":"SolaX","name":"Solax","path":"drivers/solax.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["X1 Hybrid G4","X3 Hybrid G4","X3 Hybrid G4 PRO","X3 MIC/PRO G2 (String)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.2"},"path":"drivers/solax.lua","permissions":["modbus.read"],"read_only":true,"sha256":"e8b45f0024b02835306f12bdf9f11cdbabb6a8c83836891ced71c080bd9bcff6","size_bytes":6654,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-solax-v1.0.2-e8b45f0024b02835.lua","version":"1.0.2"},{"channel":"beta","control_enabled":true,"filename":"solax.lua","host_api":{"max":1,"min":1},"id":"solax","metadata":{"capabilities":["pv","battery","meter"],"filename":"solax.lua","host_api_max":1,"host_api_min":1,"id":"solax","manufacturer":"SolaX","name":"Solax","path":"drivers/solax.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["X1 Hybrid G4","X3 Hybrid G4","X3 Hybrid G4 PRO","X3 MIC/PRO G2 (String)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.1.0"},"path":"drivers/solax.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"cacd3c2516a293706ea3d06c3ab19ac088f567ba3d599a873d8d604e7390768e","size_bytes":5985,"source_commit":"619659c9c161289fdb890fe1f7c5676028f84fc5","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-solax-v1.1.0-cacd3c2516a29370.lua","version":"1.1.0"},{"channel":"beta","control_enabled":false,"filename":"solinteg.lua","host_api":{"max":1,"min":1},"id":"solinteg","metadata":{"capabilities":["battery","meter","pv"],"filename":"solinteg.lua","host_api_max":1,"host_api_min":1,"id":"solinteg","manufacturer":"Solinteg","name":"Solinteg","path":"drivers/solinteg.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["MHT Gen1 Three-Phase 2-MPPT (4-20kW)","MHT Gen1 Three-Phase 4-MPPT (25-50kW)","MHS Gen1 Single-Phase","M2HT Gen2 Three-Phase (25-50kW)","M2HS Gen2 Single-Phase"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/solinteg.lua","permissions":["modbus.read"],"read_only":true,"sha256":"9cbf7afc21df1f7d7a5741e3cd765359d3b13210072b36af7474c5d12cf09260","size_bytes":10454,"source_commit":"535ee3e4ae0134b64081ba8a5dc71a4860286a58","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-solinteg-v1.0.0-9cbf7afc21df1f7d.lua","version":"1.0.0"},{"channel":"beta","control_enabled":false,"filename":"solinteg.lua","host_api":{"max":1,"min":1},"id":"solinteg","metadata":{"capabilities":["battery","meter","pv"],"filename":"solinteg.lua","host_api_max":1,"host_api_min":1,"id":"solinteg","manufacturer":"Solinteg","name":"Solinteg","path":"drivers/solinteg.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["MHT Gen1 Three-Phase 2-MPPT (4-20kW)","MHT Gen1 Three-Phase 4-MPPT (25-50kW)","MHS Gen1 Single-Phase","M2HT Gen2 Three-Phase (25-50kW)","M2HS Gen2 Single-Phase"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.1"},"path":"drivers/solinteg.lua","permissions":["modbus.read"],"read_only":true,"sha256":"89cc1c0db7be026703c6ebd028cabe05f700c9e6a14bbf2666823be3c3236cbd","size_bytes":10487,"source_commit":"3f57bff52a393a88d0f81f9226e0b10d1c3448fb","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-solinteg-v1.0.1-89cc1c0db7be0267.lua","version":"1.0.1"},{"channel":"beta","control_enabled":false,"filename":"solinteg.lua","host_api":{"max":1,"min":1},"id":"solinteg","metadata":{"capabilities":["battery","meter","pv"],"filename":"solinteg.lua","host_api_max":1,"host_api_min":1,"id":"solinteg","manufacturer":"Solinteg","name":"Solinteg","path":"drivers/solinteg.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["MHT Gen1 Three-Phase 2-MPPT (4-20kW)","MHT Gen1 Three-Phase 4-MPPT (25-50kW)","MHS Gen1 Single-Phase","M2HT Gen2 Three-Phase (25-50kW)","M2HS Gen2 Single-Phase"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.2"},"path":"drivers/solinteg.lua","permissions":["modbus.read"],"read_only":true,"sha256":"82105b600bce31aa7847be64a2c06f29fb4ad9d9fd630e569f8e714222e7a344","size_bytes":10487,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-solinteg-v1.0.2-82105b600bce31aa.lua","version":"1.0.2"},{"channel":"beta","control_enabled":true,"filename":"solinteg.lua","host_api":{"max":1,"min":1},"id":"solinteg","metadata":{"capabilities":["battery","meter","pv"],"filename":"solinteg.lua","host_api_max":1,"host_api_min":1,"id":"solinteg","manufacturer":"Solinteg","name":"Solinteg","path":"drivers/solinteg.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["MHT Gen1 Three-Phase 2-MPPT (4-20kW)","MHT Gen1 Three-Phase 4-MPPT (25-50kW)","MHS Gen1 Single-Phase","M2HT Gen2 Three-Phase (25-50kW)","M2HS Gen2 Single-Phase"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.1.0"},"path":"drivers/solinteg.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"87a678988d3e6f92daa50ff6c7dfad7d5c8beaa3b89ddf2e7772da436fb9ae79","size_bytes":9818,"source_commit":"619659c9c161289fdb890fe1f7c5676028f84fc5","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-solinteg-v1.1.0-87a678988d3e6f92.lua","version":"1.1.0"},{"channel":"beta","control_enabled":false,"filename":"solis.lua","host_api":{"max":1,"min":1},"id":"solis","metadata":{"capabilities":["battery","meter","pv"],"filename":"solis.lua","host_api_max":1,"host_api_min":1,"id":"solis","manufacturer":"Solis","name":"Solis","path":"drivers/solis.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["S6-EH3P (Three-Phase Hybrid)","S6-EH1P (Single-Phase Hybrid)","S5-GR3P (Three-Phase String)","S6-GR3P (Three-Phase String)","Solis C&I (Commercial)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.2.0"},"path":"drivers/solis.lua","permissions":["modbus.read"],"read_only":true,"sha256":"de0b8e81a07d28b26edd8913e9a06e50058df4c9f605699232fcfcda3746361a","size_bytes":9679,"source_commit":"535ee3e4ae0134b64081ba8a5dc71a4860286a58","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-solis-v1.2.0-de0b8e81a07d28b2.lua","version":"1.2.0"},{"channel":"beta","control_enabled":false,"filename":"solis.lua","host_api":{"max":1,"min":1},"id":"solis","metadata":{"capabilities":["battery","meter","pv"],"filename":"solis.lua","host_api_max":1,"host_api_min":1,"id":"solis","manufacturer":"Solis","name":"Solis","path":"drivers/solis.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["S6-EH3P (Three-Phase Hybrid)","S6-EH1P (Single-Phase Hybrid)","S5-GR3P (Three-Phase String)","S6-GR3P (Three-Phase String)","Solis C&I (Commercial)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.2.1"},"path":"drivers/solis.lua","permissions":["modbus.read"],"read_only":true,"sha256":"de973aec85a50264c03bd0b730d172e6925901f9cc98d3cc28ab425f6c13177a","size_bytes":9709,"source_commit":"3f57bff52a393a88d0f81f9226e0b10d1c3448fb","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-solis-v1.2.1-de973aec85a50264.lua","version":"1.2.1"},{"channel":"beta","control_enabled":false,"filename":"solis.lua","host_api":{"max":1,"min":1},"id":"solis","metadata":{"capabilities":["battery","meter","pv"],"filename":"solis.lua","host_api_max":1,"host_api_min":1,"id":"solis","manufacturer":"Solis","name":"Solis","path":"drivers/solis.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["S6-EH3P (Three-Phase Hybrid)","S6-EH1P (Single-Phase Hybrid)","S5-GR3P (Three-Phase String)","S6-GR3P (Three-Phase String)","Solis C&I (Commercial)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.2.2"},"path":"drivers/solis.lua","permissions":["modbus.read"],"read_only":true,"sha256":"5e6d8a9c79853493a5abbc1a681a055e0a63829c02a6edc906f5f9e33324ea8c","size_bytes":9702,"source_commit":"92f76c413ff51039210ca8642b0debb41d53b794","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-solis-v1.2.2-5e6d8a9c79853493.lua","version":"1.2.2"},{"channel":"beta","control_enabled":false,"filename":"solis.lua","host_api":{"max":1,"min":1},"id":"solis","metadata":{"capabilities":["battery","meter","pv"],"description":"Solis S5/S6 hybrid inverters via Modbus TCP.","filename":"solis.lua","homepage":"https://www.ginlong.com","host_api_max":1,"host_api_min":1,"id":"solis","manufacturer":"Ginlong Solis","name":"Solis hybrid inverter","path":"drivers/solis.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["S6-EH3P (Three-Phase Hybrid)","S6-EH1P (Single-Phase Hybrid)","S5-GR3P (Three-Phase String)","S6-GR3P (Three-Phase String)","Solis C&I (Commercial)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.0.0"},"path":"drivers/solis.lua","permissions":["modbus.read"],"read_only":true,"sha256":"e2f67e80be7b9548012d05e1d6eb4ce041149d1b1b6332659056550d69b3c37e","size_bytes":19303,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-solis-v2.0.0-e2f67e80be7b9548.lua","version":"2.0.0"},{"channel":"beta","control_enabled":true,"filename":"solis.lua","host_api":{"max":1,"min":1},"id":"solis","metadata":{"capabilities":["battery","meter","pv"],"description":"Solis S5/S6 hybrid inverters via Modbus TCP.","filename":"solis.lua","homepage":"https://www.ginlong.com","host_api_max":1,"host_api_min":1,"id":"solis","manufacturer":"Ginlong Solis","name":"Solis hybrid inverter","path":"drivers/solis.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["S6-EH3P (Three-Phase Hybrid)","S6-EH1P (Single-Phase Hybrid)","S5-GR3P (Three-Phase String)","S6-GR3P (Three-Phase String)","Solis C&I (Commercial)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.1.0"},"path":"drivers/solis.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"ce7bf75b1ffe4f0f1530ce2c56700b78912f81208b447d67a066d9d4c4801ec3","size_bytes":18634,"source_commit":"619659c9c161289fdb890fe1f7c5676028f84fc5","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-solis-v2.1.0-ce7bf75b1ffe4f0f.lua","version":"2.1.0"},{"channel":"beta","control_enabled":false,"filename":"solis_string.lua","host_api":{"max":1,"min":1},"id":"solis_string","metadata":{"capabilities":["pv"],"description":"Solis non-hybrid PV inverters via Modbus TCP.","filename":"solis_string.lua","homepage":"https://www.ginlong.com","host_api_max":1,"host_api_min":1,"id":"solis_string","manufacturer":"Ginlong Solis","name":"Solis string inverter","path":"drivers/solis_string.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["Solis string inverter"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/solis_string.lua","permissions":["modbus.read"],"read_only":true,"sha256":"8c3e7f969fd2869c12952abb0fe73118d960be62e10705e519d773d06a471e07","size_bytes":7242,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-solis_string-v1.0.0-8c3e7f969fd2869c.lua","version":"1.0.0"},{"channel":"beta","control_enabled":true,"filename":"solis_string.lua","host_api":{"max":1,"min":1},"id":"solis_string","metadata":{"capabilities":["pv"],"description":"Solis non-hybrid PV inverters via Modbus TCP.","filename":"solis_string.lua","homepage":"https://www.ginlong.com","host_api_max":1,"host_api_min":1,"id":"solis_string","manufacturer":"Ginlong Solis","name":"Solis string inverter","path":"drivers/solis_string.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["Solis string inverter"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.1.0"},"path":"drivers/solis_string.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"b0c7d74984916ce7f60639990ee7f325e075a5d6efb9c99e01813868bb1db1c3","size_bytes":6573,"source_commit":"619659c9c161289fdb890fe1f7c5676028f84fc5","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-solis_string-v1.1.0-b0c7d74984916ce7.lua","version":"1.1.0"},{"channel":"beta","control_enabled":false,"filename":"sonnen.lua","host_api":{"max":1,"min":1},"id":"sonnen","metadata":{"capabilities":["battery","meter"],"filename":"sonnen.lua","host_api_max":1,"host_api_min":1,"id":"sonnen","manufacturer":"sonnen","name":"Sonnen","path":"drivers/sonnen.lua","protocols":["http"],"read_only":true,"source":"upstream","tested_models":["sonnenBatterie"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/sonnen.lua","permissions":["http.get"],"read_only":true,"sha256":"f6e21a86d29bd31ac67f6445736b29a9ae0ccba340cabd890bcce0ca95ed4a51","size_bytes":4449,"source_commit":"3f57bff52a393a88d0f81f9226e0b10d1c3448fb","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-sonnen-v1.0.0-f6e21a86d29bd31a.lua","version":"1.0.0"},{"channel":"beta","control_enabled":false,"filename":"sonnen.lua","host_api":{"max":1,"min":1},"id":"sonnen","metadata":{"capabilities":["battery","meter"],"filename":"sonnen.lua","host_api_max":1,"host_api_min":1,"id":"sonnen","manufacturer":"sonnen","name":"Sonnen","path":"drivers/sonnen.lua","protocols":["http"],"read_only":true,"source":"upstream","tested_models":["sonnenBatterie"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.1"},"path":"drivers/sonnen.lua","permissions":["http.get"],"read_only":true,"sha256":"ec49d20f33c29108f98a1eec72f2726732d4c1630561852e90ea126e91180747","size_bytes":4459,"source_commit":"92f76c413ff51039210ca8642b0debb41d53b794","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-sonnen-v1.0.1-ec49d20f33c29108.lua","version":"1.0.1"},{"channel":"beta","control_enabled":false,"filename":"sonnen.lua","host_api":{"max":1,"min":1},"id":"sonnen","metadata":{"capabilities":["battery","meter"],"description":"sonnenBatterie local JSON API v2: SoC + charge/discharge power. Read-only.","filename":"sonnen.lua","homepage":"https://sonnen.de","host_api_max":1,"host_api_min":1,"id":"sonnen","manufacturer":"sonnen","name":"sonnenBatterie (local API)","path":"drivers/sonnen.lua","protocols":["http"],"read_only":true,"source":"upstream","tested_models":["sonnenBatterie"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.0.0"},"path":"drivers/sonnen.lua","permissions":["http.get"],"read_only":true,"sha256":"625eb638d1fdb151ebf92b62925b4d18d6d24ef3981828435a91ac8b6086c22f","size_bytes":8668,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-sonnen-v2.0.0-625eb638d1fdb151.lua","version":"2.0.0"},{"channel":"beta","control_enabled":false,"filename":"sungrow.lua","host_api":{"max":1,"min":1},"id":"sungrow","metadata":{"capabilities":["battery","meter","pv"],"description":"Sungrow hybrid and string inverters via Modbus.","filename":"sungrow.lua","host_api_max":1,"host_api_min":1,"id":"sungrow","manufacturer":"Sungrow","name":"Sungrow hybrid and string inverter","path":"drivers/sungrow.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["SH-RT (Three-Phase Hybrid)","SH-RS (Single-Phase Hybrid)","SH-T (Three-Phase Hybrid High-Power)","SG-RT (Three-Phase String)","SG-CX (Three-Phase Commercial)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.2.0"},"path":"drivers/sungrow.lua","permissions":["modbus.read"],"read_only":true,"sha256":"47eaa961b595f67d2c50699caad12d54517bea85a1ed3cc98d322d18f6a682c4","size_bytes":11068,"source_commit":"af0a229de17843d320b13499a2e0c7b02f11451f","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-sungrow-v1.2.0-47eaa961b595f67d.lua","version":"1.2.0"},{"channel":"beta","control_enabled":false,"filename":"sungrow.lua","host_api":{"max":1,"min":1},"id":"sungrow","metadata":{"capabilities":["battery","meter","pv"],"description":"Sungrow hybrid and string inverters via Modbus.","filename":"sungrow.lua","host_api_max":1,"host_api_min":1,"id":"sungrow","manufacturer":"Sungrow","name":"Sungrow hybrid and string inverter","path":"drivers/sungrow.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["SH-RT (Three-Phase Hybrid)","SH-RS (Single-Phase Hybrid)","SH-T (Three-Phase Hybrid High-Power)","SG-RT (Three-Phase String)","SG-CX (Three-Phase Commercial)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.2.1"},"path":"drivers/sungrow.lua","permissions":["modbus.read"],"read_only":true,"sha256":"730b15c4b299fa4f58793bca542d2a75a3efc79d48f7337d81415dc6d97f7ddb","size_bytes":14776,"source_commit":"3f57bff52a393a88d0f81f9226e0b10d1c3448fb","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-sungrow-v1.2.1-730b15c4b299fa4f.lua","version":"1.2.1"},{"channel":"beta","control_enabled":false,"filename":"sungrow.lua","host_api":{"max":1,"min":1},"id":"sungrow","metadata":{"capabilities":["battery","meter","pv"],"description":"Sungrow hybrid and string inverters via Modbus.","filename":"sungrow.lua","host_api_max":1,"host_api_min":1,"id":"sungrow","manufacturer":"Sungrow","name":"Sungrow hybrid and string inverter","path":"drivers/sungrow.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["SH-RT (Three-Phase Hybrid)","SH-RS (Single-Phase Hybrid)","SH-T (Three-Phase Hybrid High-Power)","SG-RT (Three-Phase String)","SG-CX (Three-Phase Commercial)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.2.3"},"path":"drivers/sungrow.lua","permissions":["modbus.read"],"read_only":true,"sha256":"af6d0be54e6cf70902fb4fb6ca9dfeda4410a2dcb1a33c84c3ef8e1d905a13c2","size_bytes":14762,"source_commit":"fe5b53bd9c2049f641c5eb8682e57623e0dcd607","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-sungrow-v1.2.3-af6d0be54e6cf709.lua","version":"1.2.3"},{"channel":"beta","control_enabled":false,"filename":"sungrow.lua","host_api":{"max":1,"min":1},"id":"sungrow","metadata":{"capabilities":["battery","meter","pv"],"description":"Sungrow hybrid and string inverters via Modbus.","filename":"sungrow.lua","host_api_max":1,"host_api_min":1,"id":"sungrow","manufacturer":"Sungrow","name":"Sungrow hybrid and string inverter","path":"drivers/sungrow.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["SH-RT (Three-Phase Hybrid)","SH-RS (Single-Phase Hybrid)","SH-T (Three-Phase Hybrid High-Power)","SG-RT (Three-Phase String)","SG-CX (Three-Phase Commercial)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.3.0"},"path":"drivers/sungrow.lua","permissions":["modbus.read"],"read_only":true,"sha256":"2bf34fa9fab542eab239b617cf7ade27e063d3059b76b17d02e47c16a270c1b8","size_bytes":17009,"source_commit":"470527e8ae0431df8e4d525a70bba72e2f66973f","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-sungrow-v1.3.0-2bf34fa9fab542ea.lua","version":"1.3.0"},{"channel":"beta","control_enabled":false,"filename":"sungrow.lua","host_api":{"max":1,"min":1},"id":"sungrow","metadata":{"capabilities":["battery","meter","pv"],"description":"Sungrow hybrid and string inverters via Modbus.","filename":"sungrow.lua","host_api_max":1,"host_api_min":1,"id":"sungrow","manufacturer":"Sungrow","name":"Sungrow hybrid and string inverter","path":"drivers/sungrow.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["SH-RT (Three-Phase Hybrid)","SH-RS (Single-Phase Hybrid)","SH-T (Three-Phase Hybrid High-Power)","SG-RT (Three-Phase String)","SG-CX (Three-Phase Commercial)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.3.1"},"path":"drivers/sungrow.lua","permissions":["modbus.read"],"read_only":true,"sha256":"35b5973d992725737524caf27ec0435af0f209c953d49362a5c5808abc85b8a3","size_bytes":17009,"source_commit":"92f76c413ff51039210ca8642b0debb41d53b794","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-sungrow-v1.3.1-35b5973d99272573.lua","version":"1.3.1"},{"channel":"beta","control_enabled":false,"filename":"sungrow.lua","host_api":{"max":1,"min":1},"id":"sungrow","metadata":{"capabilities":["battery","meter","pv"],"description":"Sungrow SH-series hybrid inverters with LFP battery, via Modbus TCP.","filename":"sungrow.lua","homepage":"https://en.sungrowpower.com","host_api_max":1,"host_api_min":1,"id":"sungrow","manufacturer":"Sungrow","name":"Sungrow SH Hybrid Inverter","path":"drivers/sungrow.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["SH-RT (Three-Phase Hybrid)","SH-RS (Single-Phase Hybrid)","SH-T (Three-Phase Hybrid High-Power)","SG-RT (Three-Phase String)","SG-CX (Three-Phase Commercial)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.4.0"},"path":"drivers/sungrow.lua","permissions":["modbus.read"],"read_only":true,"sha256":"57fe2f8957802b2c20a228e559fcee3cc52fee0c832b292637bf5e69d61e0a70","size_bytes":43171,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-sungrow-v1.4.0-57fe2f8957802b2c.lua","version":"1.4.0"},{"channel":"beta","control_enabled":true,"filename":"sungrow.lua","host_api":{"max":1,"min":1},"id":"sungrow","metadata":{"capabilities":["battery","meter","pv"],"description":"Sungrow SH-series hybrid inverters with LFP battery, via Modbus TCP.","filename":"sungrow.lua","homepage":"https://en.sungrowpower.com","host_api_max":1,"host_api_min":1,"id":"sungrow","manufacturer":"Sungrow","name":"Sungrow SH Hybrid Inverter","path":"drivers/sungrow.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["SH-RT (Three-Phase Hybrid)","SH-RS (Single-Phase Hybrid)","SH-T (Three-Phase Hybrid High-Power)","SG-RT (Three-Phase String)","SG-CX (Three-Phase Commercial)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.5.0"},"path":"drivers/sungrow.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"fb04bff8614208ae54fd85e000f56681542c7c9d0ae7ce869dd335107d426e07","size_bytes":42502,"source_commit":"473576a7ed1ee634a9d268f7766ef616675171c3","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-sungrow-v1.5.0-fb04bff8614208ae.lua","version":"1.5.0"},{"channel":"beta","control_enabled":true,"filename":"sungrow.lua","host_api":{"max":1,"min":1},"id":"sungrow","metadata":{"capabilities":["battery","meter","pv"],"description":"Sungrow SH-series hybrid inverters with LFP battery, via Modbus TCP.","filename":"sungrow.lua","homepage":"https://en.sungrowpower.com","host_api_max":1,"host_api_min":1,"id":"sungrow","manufacturer":"Sungrow","name":"Sungrow SH Hybrid Inverter","path":"drivers/sungrow.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["SH-RT (Three-Phase Hybrid)","SH-RS (Single-Phase Hybrid)","SH-T (Three-Phase Hybrid High-Power)","SG-RT (Three-Phase String)","SG-CX (Three-Phase Commercial)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.5.1"},"path":"drivers/sungrow.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"766c17a93a2eda30a6504758d9fcfd90b0685cc118e3e4db847ccbee4f8b22c8","size_bytes":43905,"source_commit":"619659c9c161289fdb890fe1f7c5676028f84fc5","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-sungrow-v1.5.1-766c17a93a2eda30.lua","version":"1.5.1"},{"channel":"beta","control_enabled":true,"filename":"sungrow.lua","host_api":{"max":1,"min":1},"id":"sungrow","metadata":{"capabilities":["battery","meter","pv"],"description":"Sungrow SH-series hybrid inverters with LFP battery, via Modbus TCP.","filename":"sungrow.lua","homepage":"https://en.sungrowpower.com","host_api_max":1,"host_api_min":1,"id":"sungrow","manufacturer":"Sungrow","name":"Sungrow SH Hybrid Inverter","path":"drivers/sungrow.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["SH-RT (Three-Phase Hybrid)","SH-RS (Single-Phase Hybrid)","SH-T (Three-Phase Hybrid High-Power)","SG-RT (Three-Phase String)","SG-CX (Three-Phase Commercial)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.5.2"},"path":"drivers/sungrow.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"a6405ee4985f506dfb85ab2679774684d1162d341bde5d8931186aa8ece0db65","size_bytes":44227,"source_commit":"0c518261384bb0962dc280e4b1f9f0aa9e909c0b","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-sungrow-v1.5.2-a6405ee4985f506d.lua","version":"1.5.2"},{"channel":"beta","control_enabled":true,"filename":"sungrow.lua","host_api":{"max":1,"min":1},"id":"sungrow","metadata":{"capabilities":["battery","meter","pv"],"description":"Sungrow SH-series hybrid inverters with LFP battery, via Modbus TCP.","filename":"sungrow.lua","homepage":"https://en.sungrowpower.com","host_api_max":1,"host_api_min":1,"id":"sungrow","manufacturer":"Sungrow","name":"Sungrow SH Hybrid Inverter","path":"drivers/sungrow.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["SH-RT (Three-Phase Hybrid)","SH-RS (Single-Phase Hybrid)","SH-T (Three-Phase Hybrid High-Power)","SG-RT (Three-Phase String)","SG-CX (Three-Phase Commercial)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.5.3"},"path":"drivers/sungrow.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"f9163fb0179a7cf57c52ebcb8ec24408b1314099b04ec6cb988a4ad5360f50b4","size_bytes":45488,"source_commit":"12f40d16a374bac50ef332099a32feb573cf73af","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-sungrow-v1.5.3-f9163fb0179a7cf5.lua","version":"1.5.3"},{"channel":"beta","control_enabled":true,"filename":"sungrow.lua","host_api":{"max":1,"min":1},"id":"sungrow","metadata":{"capabilities":["battery","meter","pv"],"description":"Sungrow SH-series hybrid inverters with LFP battery, via Modbus TCP.","filename":"sungrow.lua","homepage":"https://en.sungrowpower.com","host_api_max":1,"host_api_min":1,"id":"sungrow","manufacturer":"Sungrow","name":"Sungrow SH Hybrid Inverter","path":"drivers/sungrow.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["SH-RT (Three-Phase Hybrid)","SH-RS (Single-Phase Hybrid)","SH-T (Three-Phase Hybrid High-Power)","SG-RT (Three-Phase String)","SG-CX (Three-Phase Commercial)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.5.4"},"path":"drivers/sungrow.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"93c2dbeb6c30f9f99b335e8770353db3f0d65cc9ed5dd14eb079a9789e12afb1","size_bytes":46355,"source_commit":"edb32ffed2f1225da160cc51c0cce8fe8e0adfd9","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-sungrow-v1.5.4-93c2dbeb6c30f9f9.lua","version":"1.5.4"},{"channel":"beta","control_enabled":true,"filename":"sungrow.lua","host_api":{"max":1,"min":1},"id":"sungrow","metadata":{"capabilities":["battery","meter","pv"],"description":"Sungrow SH-series hybrid inverters with LFP battery, via Modbus TCP.","filename":"sungrow.lua","homepage":"https://en.sungrowpower.com","host_api_max":1,"host_api_min":1,"id":"sungrow","manufacturer":"Sungrow","name":"Sungrow SH Hybrid Inverter","path":"drivers/sungrow.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["SH-RT (Three-Phase Hybrid)","SH-RS (Single-Phase Hybrid)","SH-T (Three-Phase Hybrid High-Power)","SG-RT (Three-Phase String)","SG-CX (Three-Phase Commercial)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.5.5"},"path":"drivers/sungrow.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"c63ed2353ae4979eb0378ab8996a5aaf818e02e82534b5b412e53257a2e8cd21","size_bytes":47672,"source_commit":"19db13150a3980ff91201a40acd3f268d982f209","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-sungrow-v1.5.5-c63ed2353ae4979e.lua","version":"1.5.5"},{"channel":"beta","control_enabled":true,"filename":"sungrow.lua","host_api":{"max":1,"min":1},"id":"sungrow","metadata":{"capabilities":["battery","meter","pv"],"description":"Sungrow SH-series hybrid inverters with LFP battery, via Modbus TCP.","filename":"sungrow.lua","homepage":"https://en.sungrowpower.com","host_api_max":1,"host_api_min":1,"id":"sungrow","manufacturer":"Sungrow","name":"Sungrow SH Hybrid Inverter","path":"drivers/sungrow.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["SH-RT (Three-Phase Hybrid)","SH-RS (Single-Phase Hybrid)","SH-T (Three-Phase Hybrid High-Power)","SG-RT (Three-Phase String)","SG-CX (Three-Phase Commercial)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.5.6"},"path":"drivers/sungrow.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"399746dd215cf140fb6daabd3a7c0d0e0ff4d9f76b1deb8380153f83c92bdf81","size_bytes":46848,"source_commit":"a4d0205d5f4439f0994b2b708a4d69a7a0c20023","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-sungrow-v1.5.6-399746dd215cf140.lua","version":"1.5.6"},{"channel":"beta","control_enabled":false,"filename":"tesla_vehicle.lua","host_api":{"max":1,"min":1},"id":"tesla_vehicle","metadata":{"capabilities":["vehicle"],"description":"Read-only vehicle SoC + charge limit via Tesla API-compatible HTTP endpoint (e.g. TeslaBLEProxy).","filename":"tesla_vehicle.lua","homepage":"https://github.com/wimaha/TeslaBleHttpProxy","host_api_max":1,"host_api_min":1,"id":"tesla_vehicle","manufacturer":"Tesla","name":"Tesla Vehicle (BLE Proxy)","path":"drivers/tesla_vehicle.lua","protocols":["http"],"read_only":true,"source":"upstream","tested_models":["Tesla Vehicle (BLE Proxy)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"0.1.0"},"path":"drivers/tesla_vehicle.lua","permissions":["http.get"],"read_only":true,"sha256":"3aed20788e40bb4a6c2f6f7bfe425bda6052f7ae7c64f74721cf4054db8e7341","size_bytes":25720,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-tesla_vehicle-v0.1.0-3aed20788e40bb4a.lua","version":"0.1.0"},{"channel":"beta","control_enabled":false,"filename":"tibber.lua","host_api":{"max":1,"min":1},"id":"tibber","metadata":{"capabilities":["meter"],"description":"Tibber Pulse grid meter via GraphQL-transport-ws liveMeasurement stream.","filename":"tibber.lua","homepage":"https://tibber.com","host_api_max":1,"host_api_min":1,"id":"tibber","manufacturer":"Tibber","name":"Tibber Pulse","path":"drivers/tibber.lua","protocols":["http"],"read_only":true,"source":"upstream","tested_models":["Tibber Pulse"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/tibber.lua","permissions":["http.get"],"read_only":true,"sha256":"4f6903f38f82d65603733f44e1e4a5191fb6e22f53637d7e2939c3ae60c935c1","size_bytes":14892,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-tibber-v1.0.0-4f6903f38f82d656.lua","version":"1.0.0"},{"channel":"beta","control_enabled":false,"filename":"varta.lua","host_api":{"max":1,"min":1},"id":"varta","metadata":{"capabilities":["battery","meter"],"filename":"varta.lua","host_api_max":1,"host_api_min":1,"id":"varta","manufacturer":"VARTA","name":"Varta","path":"drivers/varta.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["pulse neo","element","link"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/varta.lua","permissions":["modbus.read"],"read_only":true,"sha256":"991da2cb0d6d761983a87ca519c9bd6a16b35161ef793d1a712f88d3164472a9","size_bytes":4240,"source_commit":"3f57bff52a393a88d0f81f9226e0b10d1c3448fb","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-varta-v1.0.0-991da2cb0d6d7619.lua","version":"1.0.0"},{"channel":"beta","control_enabled":false,"filename":"varta.lua","host_api":{"max":1,"min":1},"id":"varta","metadata":{"capabilities":["battery","meter"],"filename":"varta.lua","host_api_max":1,"host_api_min":1,"id":"varta","manufacturer":"VARTA","name":"Varta","path":"drivers/varta.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["pulse neo","element","link"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.1"},"path":"drivers/varta.lua","permissions":["modbus.read"],"read_only":true,"sha256":"a96f88c525e2088471d49b60ed01a83d94a4022d1bd41c9d03e8a1b84cca2a33","size_bytes":4250,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-varta-v1.0.1-a96f88c525e20884.lua","version":"1.0.1"},{"channel":"beta","control_enabled":true,"filename":"varta.lua","host_api":{"max":1,"min":1},"id":"varta","metadata":{"capabilities":["battery","meter"],"filename":"varta.lua","host_api_max":1,"host_api_min":1,"id":"varta","manufacturer":"VARTA","name":"Varta","path":"drivers/varta.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["pulse neo","element","link"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.1.0"},"path":"drivers/varta.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"6cf3f758e471123afea7e4ce43547437f42817fa4385382c6aa8b441cb52d22e","size_bytes":3581,"source_commit":"619659c9c161289fdb890fe1f7c5676028f84fc5","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-varta-v1.1.0-6cf3f758e471123a.lua","version":"1.1.0"},{"channel":"beta","control_enabled":false,"filename":"victron.lua","host_api":{"max":1,"min":1},"id":"victron","metadata":{"capabilities":["pv","battery","meter"],"filename":"victron.lua","host_api_max":1,"host_api_min":1,"id":"victron","manufacturer":"Victron Energy","name":"Victron","path":"drivers/victron.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["GX Devices","MultiPlus-II","Quattro-II","SmartSolar MPPT","SmartShunt"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/victron.lua","permissions":["modbus.read"],"read_only":true,"sha256":"fff1c3b1d50196d4d65cd69405fe88fb0945da85608662a6e2f5b929ef36c5bc","size_bytes":6378,"source_commit":"3f57bff52a393a88d0f81f9226e0b10d1c3448fb","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-victron-v1.0.0-fff1c3b1d50196d4.lua","version":"1.0.0"},{"channel":"beta","control_enabled":false,"filename":"victron.lua","host_api":{"max":1,"min":1},"id":"victron","metadata":{"capabilities":["pv","battery","meter"],"filename":"victron.lua","host_api_max":1,"host_api_min":1,"id":"victron","manufacturer":"Victron Energy","name":"Victron","path":"drivers/victron.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["GX Devices","MultiPlus-II","Quattro-II","SmartSolar MPPT","SmartShunt"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.1"},"path":"drivers/victron.lua","permissions":["modbus.read"],"read_only":true,"sha256":"36822bf4731c39848a236ba41b403c3fc67cb6e2d39be26169136247562ea459","size_bytes":6395,"source_commit":"92f76c413ff51039210ca8642b0debb41d53b794","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-victron-v1.0.1-36822bf4731c3984.lua","version":"1.0.1"},{"channel":"beta","control_enabled":false,"filename":"victron.lua","host_api":{"max":1,"min":1},"id":"victron","metadata":{"capabilities":["pv","battery","meter"],"description":"Victron Cerbo GX / Venus GX monitoring via Modbus TCP.","filename":"victron.lua","homepage":"https://www.victronenergy.com","host_api_max":1,"host_api_min":1,"id":"victron","manufacturer":"Victron Energy","name":"Victron Energy GX","path":"drivers/victron.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["GX Devices","MultiPlus-II","Quattro-II","SmartSolar MPPT","SmartShunt"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.0.0"},"path":"drivers/victron.lua","permissions":["modbus.read"],"read_only":true,"sha256":"937438a09d009426b822da7ff6b11aa4d65ab0b57adc7396ff5e96b76b78c3a6","size_bytes":9231,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-victron-v2.0.0-937438a09d009426.lua","version":"2.0.0"},{"channel":"beta","control_enabled":true,"filename":"victron.lua","host_api":{"max":1,"min":1},"id":"victron","metadata":{"capabilities":["pv","battery","meter"],"description":"Victron Cerbo GX / Venus GX monitoring via Modbus TCP.","filename":"victron.lua","homepage":"https://www.victronenergy.com","host_api_max":1,"host_api_min":1,"id":"victron","manufacturer":"Victron Energy","name":"Victron Energy GX","path":"drivers/victron.lua","protocols":["modbus"],"read_only":false,"source":"upstream","tested_models":["GX Devices","MultiPlus-II","Quattro-II","SmartSolar MPPT","SmartShunt"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.1.0"},"path":"drivers/victron.lua","permissions":["modbus.read","modbus.write"],"read_only":false,"sha256":"4c138bab1fba0505a2d7efb92377e7e7a33daaecc75a775fdbd3b0774ad1d7c5","size_bytes":8562,"source_commit":"619659c9c161289fdb890fe1f7c5676028f84fc5","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-victron-v2.1.0-4c138bab1fba0505.lua","version":"2.1.0"},{"channel":"beta","control_enabled":false,"filename":"victron_mqtt.lua","host_api":{"max":1,"min":1},"id":"victron_mqtt","metadata":{"capabilities":["pv","battery","meter"],"filename":"victron_mqtt.lua","host_api_max":1,"host_api_min":1,"id":"victron_mqtt","manufacturer":"Victron Energy","name":"Victron Mqtt","path":"drivers/victron_mqtt.lua","protocols":["mqtt"],"read_only":true,"source":"upstream","tested_models":["GX Devices","MultiPlus-II","Quattro-II","SmartSolar MPPT","SmartShunt"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.1"},"path":"drivers/victron_mqtt.lua","permissions":["mqtt.subscribe"],"read_only":true,"sha256":"a5ed4bc8da3b3a693dfdfa5cadd593e1bae0318b310da1edcb1fb002e689a4ff","size_bytes":8205,"source_commit":"3f57bff52a393a88d0f81f9226e0b10d1c3448fb","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-victron_mqtt-v1.0.1-a5ed4bc8da3b3a69.lua","version":"1.0.1"},{"channel":"beta","control_enabled":false,"filename":"victron_mqtt.lua","host_api":{"max":1,"min":1},"id":"victron_mqtt","metadata":{"capabilities":["pv","battery","meter"],"filename":"victron_mqtt.lua","host_api_max":1,"host_api_min":1,"id":"victron_mqtt","manufacturer":"Victron Energy","name":"Victron Mqtt","path":"drivers/victron_mqtt.lua","protocols":["mqtt"],"read_only":true,"source":"upstream","tested_models":["GX Devices","MultiPlus-II","Quattro-II","SmartSolar MPPT","SmartShunt"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.2"},"path":"drivers/victron_mqtt.lua","permissions":["mqtt.subscribe"],"read_only":true,"sha256":"64bd7866d6bbe8d4b64386c037cdac4ca1b2ec2e5b4b2595ef6f38f81fc53f6b","size_bytes":8222,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-victron_mqtt-v1.0.2-64bd7866d6bbe8d4.lua","version":"1.0.2"},{"channel":"beta","control_enabled":false,"filename":"wallbox.lua","host_api":{"max":1,"min":1},"id":"wallbox","metadata":{"capabilities":["v2x_charger"],"filename":"wallbox.lua","host_api_max":1,"host_api_min":1,"id":"wallbox","manufacturer":"Wallbox","name":"Wallbox","path":"drivers/wallbox.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["Commander/Pulsar"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/wallbox.lua","permissions":["modbus.read"],"read_only":true,"sha256":"d779c0dd749a7f82a04d2ab00e29ffb96aa2216d4913fa43c7b04623c6f13757","size_bytes":4148,"source_commit":"535ee3e4ae0134b64081ba8a5dc71a4860286a58","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-wallbox-v1.0.0-d779c0dd749a7f82.lua","version":"1.0.0"},{"channel":"beta","control_enabled":false,"filename":"wallbox.lua","host_api":{"max":1,"min":1},"id":"wallbox","metadata":{"capabilities":["v2x_charger"],"filename":"wallbox.lua","host_api_max":1,"host_api_min":1,"id":"wallbox","manufacturer":"Wallbox","name":"Wallbox","path":"drivers/wallbox.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["Commander/Pulsar"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.1"},"path":"drivers/wallbox.lua","permissions":["modbus.read"],"read_only":true,"sha256":"8de2391a586ff7d94ca720e5f04e4adee100e9c4bd356cba5d1cd424afb21189","size_bytes":4154,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-wallbox-v1.0.1-8de2391a586ff7d9.lua","version":"1.0.1"},{"channel":"beta","control_enabled":false,"filename":"wallbox.lua","host_api":{"max":1,"min":1},"id":"wallbox","metadata":{"capabilities":["v2x_charger"],"filename":"wallbox.lua","host_api_max":1,"host_api_min":1,"id":"wallbox","manufacturer":"Wallbox","name":"Wallbox","path":"drivers/wallbox.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["Commander/Pulsar"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.2"},"path":"drivers/wallbox.lua","permissions":["modbus.read"],"read_only":true,"sha256":"96670a4981e3f493fe2a6832242f793049dfac853667d248bb2904c73b8e6ecf","size_bytes":4059,"source_commit":"619659c9c161289fdb890fe1f7c5676028f84fc5","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-wallbox-v1.0.2-96670a4981e3f493.lua","version":"1.0.2"},{"channel":"beta","control_enabled":false,"filename":"zap.lua","host_api":{"max":1,"min":1},"id":"zap","metadata":{"capabilities":["meter","pv","battery","v2x_charger"],"description":"Official Sourceful Zap local-API integration for meter, PV, battery and V2X telemetry; safe leased control is pending firmware support.","filename":"zap.lua","homepage":"https://developer.sourceful.energy/docs/api/zap-local-api","host_api_max":1,"host_api_min":1,"id":"zap","manufacturer":"Sourceful","name":"Sourceful Zap","path":"drivers/zap.lua","protocols":["http"],"read_only":true,"source":"upstream","tested_models":["Sourceful Zap"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.0.0"},"path":"drivers/zap.lua","permissions":["http.get"],"read_only":true,"sha256":"d77e4c5867074c0c21d6cb0eb3f6521cbbe3f2bc4e1371f6c9999fa3b1a57ad0","size_bytes":33132,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-zap-v2.0.0-d77e4c5867074c0c.lua","version":"2.0.0"},{"channel":"beta","control_enabled":false,"filename":"zaptec.lua","host_api":{"max":1,"min":1},"id":"zaptec","metadata":{"capabilities":["v2x_charger"],"filename":"zaptec.lua","host_api_max":1,"host_api_min":1,"id":"zaptec","manufacturer":"Zaptec","name":"Zaptec","path":"drivers/zaptec.lua","protocols":["http"],"read_only":true,"source":"upstream","tested_models":["Zaptec"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/zaptec.lua","permissions":["http.get"],"read_only":true,"sha256":"6bce276ed490bc29890fba218d7ec4911c23f2fb1a73596242b36aae5cc0239d","size_bytes":4626,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-zaptec-v1.0.0-6bce276ed490bc29.lua","version":"1.0.0"},{"channel":"beta","control_enabled":false,"filename":"zuidwijk_p1.lua","host_api":{"max":1,"min":1},"id":"zuidwijk_p1","metadata":{"capabilities":["meter"],"description":"Dutch DSMR P1 smart-meter via Zuidwijk Serial-to-Ethernet bridge (raw TCP, port 23).","filename":"zuidwijk_p1.lua","homepage":"https://www.zuidwijk.com/product/p1-reader-ethernet/","host_api_max":1,"host_api_min":1,"id":"zuidwijk_p1","manufacturer":"Zuidwijk","name":"Zuidwijk P1 Reader Ethernet","path":"drivers/zuidwijk_p1.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["Zuidwijk P1 Reader Ethernet"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/zuidwijk_p1.lua","permissions":["modbus.read"],"read_only":true,"sha256":"8de609aa40031bb93a365bd675281450e81f72c8fe3981c162020e2588e151d6","size_bytes":18784,"source_commit":"1f67078a54c44573b54483bb3f2b709cdf6ff7df","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-beta/driver-zuidwijk_p1-v1.0.0-8de609aa40031bb9.lua","version":"1.0.0"}],"repository":"https://github.com/srcfl/device-drivers","schema_version":1},"schema_version":1,"signature":"H+Y7y9zxheUD+5XCZ8buHMFahSagKRMVc52gzYz9zlZrzga3V5gFbIN/vmqP/gqdTEiwd+MlTNCtCOpIRuYnBQ=="} diff --git a/go/driver-repository/cache/ftw-official.json b/go/driver-repository/cache/ftw-official.json new file mode 100644 index 00000000..a2599d3a --- /dev/null +++ b/go/driver-repository/cache/ftw-official.json @@ -0,0 +1 @@ +{"key_id":"ftw-drivers-2026-01","payload":{"commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","drivers":[{"channel":"stable","control_enabled":false,"filename":"abb_meter.lua","host_api":{"max":1,"min":1},"id":"abb_meter","metadata":{"capabilities":["meter"],"filename":"abb_meter.lua","host_api_max":1,"host_api_min":1,"id":"abb_meter","manufacturer":"ABB","name":"Abb Meter","path":"drivers/abb_meter.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["B Series / M4M"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/abb_meter.lua","permissions":["modbus.read"],"read_only":true,"sha256":"c7ad2e2d1b0c81bdb040eb7d65903c9e547836e29534e41c62150467e0847c9c","size_bytes":5179,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-abb_meter-v1.0.0-c7ad2e2d1b0c81bd.lua","version":"1.0.0"},{"channel":"stable","control_enabled":false,"filename":"abb_terra.lua","host_api":{"max":1,"min":1},"id":"abb_terra","metadata":{"capabilities":["v2x_charger"],"filename":"abb_terra.lua","host_api_max":1,"host_api_min":1,"id":"abb_terra","manufacturer":"ABB","name":"Abb Terra","path":"drivers/abb_terra.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["Terra AC"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/abb_terra.lua","permissions":["modbus.read"],"read_only":true,"sha256":"8140d1b96d509f630ef6c4c3f6a45494f4ed4b5ef32ee82942e964728348c7ab","size_bytes":4892,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-abb_terra-v1.0.0-8140d1b96d509f63.lua","version":"1.0.0"},{"channel":"stable","control_enabled":false,"filename":"acrel.lua","host_api":{"max":1,"min":1},"id":"acrel","metadata":{"capabilities":["meter"],"filename":"acrel.lua","host_api_max":1,"host_api_min":1,"id":"acrel","manufacturer":"Acrel","name":"Acrel","path":"drivers/acrel.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["DTSD Series"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/acrel.lua","permissions":["modbus.read"],"read_only":true,"sha256":"a46b77040e4795bc62b025a83b14c4341438ece160f698f868304db57163aee7","size_bytes":4725,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-acrel-v1.0.0-a46b77040e4795bc.lua","version":"1.0.0"},{"channel":"stable","control_enabled":false,"filename":"alfen.lua","host_api":{"max":1,"min":1},"id":"alfen","metadata":{"capabilities":["v2x_charger"],"filename":"alfen.lua","host_api_max":1,"host_api_min":1,"id":"alfen","manufacturer":"Alfen","name":"Alfen","path":"drivers/alfen.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["Eve Series"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/alfen.lua","permissions":["modbus.read"],"read_only":true,"sha256":"025b7320621530fe1cd1f9beff391092bf859bec9c33b31af5ea6fe3de757fe6","size_bytes":5026,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-alfen-v1.0.0-025b7320621530fe.lua","version":"1.0.0"},{"channel":"stable","control_enabled":false,"filename":"alphaess.lua","host_api":{"max":1,"min":1},"id":"alphaess","metadata":{"capabilities":["pv","battery","meter"],"filename":"alphaess.lua","host_api_max":1,"host_api_min":1,"id":"alphaess","manufacturer":"AlphaESS","name":"Alphaess","path":"drivers/alphaess.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["Smile Series","G2 Series"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/alphaess.lua","permissions":["modbus.read"],"read_only":true,"sha256":"5a8b3212388ab7eb47a7ff6e046ba6aa86d2014859fc9c31dfe2f11d82da261d","size_bytes":5422,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-alphaess-v1.0.0-5a8b3212388ab7eb.lua","version":"1.0.0"},{"channel":"stable","control_enabled":false,"filename":"ambibox.lua","host_api":{"max":1,"min":1},"id":"ambibox","metadata":{"capabilities":["battery","meter","v2x_charger"],"filename":"ambibox.lua","host_api_max":1,"host_api_min":1,"id":"ambibox","manufacturer":"Ambibox","name":"Ambibox","path":"drivers/ambibox.lua","protocols":["mqtt"],"read_only":true,"source":"upstream","tested_models":["V2X Charger"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.1.1"},"path":"drivers/ambibox.lua","permissions":["mqtt.subscribe"],"read_only":true,"sha256":"5568359ba895088b3183f2b254ad9e4ca0f574bee7a8501612ae41f09bd50cea","size_bytes":9576,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-ambibox-v1.1.1-5568359ba895088b.lua","version":"1.1.1"},{"channel":"stable","control_enabled":false,"filename":"atmoce.lua","host_api":{"max":1,"min":1},"id":"atmoce","metadata":{"capabilities":["battery","meter","pv"],"filename":"atmoce.lua","host_api_max":1,"host_api_min":1,"id":"atmoce","manufacturer":"ATMOCE","name":"Atmoce","path":"drivers/atmoce.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["MC100-T Three-Phase M-Combiner","MC100 M-Combiner","MG100 M-Gateway"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/atmoce.lua","permissions":["modbus.read"],"read_only":true,"sha256":"c22e985e5402c7a1427e3cbfff7a03405d22a5d1cd5149e3bee79f0da70302b3","size_bytes":7779,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-atmoce-v1.0.0-c22e985e5402c7a1.lua","version":"1.0.0"},{"channel":"stable","control_enabled":false,"filename":"carlo_gavazzi.lua","host_api":{"max":1,"min":1},"id":"carlo_gavazzi","metadata":{"capabilities":["meter"],"filename":"carlo_gavazzi.lua","host_api_max":1,"host_api_min":1,"id":"carlo_gavazzi","manufacturer":"Carlo Gavazzi","name":"Carlo Gavazzi","path":"drivers/carlo_gavazzi.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["EM Series"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/carlo_gavazzi.lua","permissions":["modbus.read"],"read_only":true,"sha256":"d363a1a9b54267593cb0a39a63236906942b5d61a7cab5aadcf89726720fae6f","size_bytes":5016,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-carlo_gavazzi-v1.0.0-d363a1a9b5426759.lua","version":"1.0.0"},{"channel":"stable","control_enabled":false,"filename":"chint.lua","host_api":{"max":1,"min":1},"id":"chint","metadata":{"capabilities":["meter"],"filename":"chint.lua","host_api_max":1,"host_api_min":1,"id":"chint","manufacturer":"Chint","name":"Chint","path":"drivers/chint.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["DSU Series"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/chint.lua","permissions":["modbus.read"],"read_only":true,"sha256":"1c127c754aac481ab6e880f9e6193ec8113569c702527fcd2af0116c9b564d1d","size_bytes":4622,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-chint-v1.0.0-1c127c754aac481a.lua","version":"1.0.0"},{"channel":"stable","control_enabled":false,"filename":"circutor.lua","host_api":{"max":1,"min":1},"id":"circutor","metadata":{"capabilities":["meter"],"filename":"circutor.lua","host_api_max":1,"host_api_min":1,"id":"circutor","manufacturer":"Circutor","name":"Circutor","path":"drivers/circutor.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["CEM / CVM"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/circutor.lua","permissions":["modbus.read"],"read_only":true,"sha256":"181bc55e4839f0041f4187f9e0e6bf2fa07053c0df9cecf00ab655fad8e355d6","size_bytes":4979,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-circutor-v1.0.0-181bc55e4839f004.lua","version":"1.0.0"},{"channel":"stable","control_enabled":false,"filename":"deye.lua","host_api":{"max":1,"min":1},"id":"deye","metadata":{"capabilities":["battery","meter","pv"],"filename":"deye.lua","host_api_max":1,"host_api_min":1,"id":"deye","manufacturer":"Deye","name":"Deye","path":"drivers/deye.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["SUN Single-Phase Hybrid (LV)","SUN Three-Phase Hybrid","SUN Three-Phase HV Hybrid","SUN String (Grid-Tie)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.2.0"},"path":"drivers/deye.lua","permissions":["modbus.read"],"read_only":true,"sha256":"57ee5b4d0c48ddc8b56f28515f4ae24149bc671527a9591d7e618e9f34354e60","size_bytes":9585,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-deye-v1.2.0-57ee5b4d0c48ddc8.lua","version":"1.2.0"},{"channel":"stable","control_enabled":false,"filename":"easee.lua","host_api":{"max":1,"min":1},"id":"easee","metadata":{"capabilities":["v2x_charger"],"filename":"easee.lua","host_api_max":1,"host_api_min":1,"id":"easee","manufacturer":"Easee","name":"Easee","path":"drivers/easee.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["Easee"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/easee.lua","permissions":["modbus.read"],"read_only":true,"sha256":"805188bf4c06aa2b1f91abf9bdd3923cc0113a16c8d1c9f3b5b5b17e029f8e64","size_bytes":4381,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-easee-v1.0.0-805188bf4c06aa2b.lua","version":"1.0.0"},{"channel":"stable","control_enabled":false,"filename":"esphome-dsmr.lua","host_api":{"max":1,"min":1},"id":"esphome-dsmr","metadata":{"capabilities":["meter"],"description":"Smart meter via ESPHome web_server v3 + dsmr component (Sourceful Zap on open firmware, DIY ESP32+P1, etc.).","filename":"esphome-dsmr.lua","homepage":"https://github.com/erikarenhill/sourceful-zap-esphome","host_api_max":1,"host_api_min":1,"id":"esphome-dsmr","manufacturer":"ESPHome","name":"ESPHome DSMR (P1)","path":"drivers/esphome-dsmr.lua","protocols":["http"],"read_only":true,"source":"upstream","tested_models":["DSMR web_server v3 P1 reader"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.2"},"path":"drivers/esphome-dsmr.lua","permissions":["http.get"],"read_only":true,"sha256":"c415e507f4371c859fbf60827cc0704c5e24ad122dca1a9e5e1f190d67e852d1","size_bytes":19353,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-esphome-dsmr-v1.0.2-c415e507f4371c85.lua","version":"1.0.2"},{"channel":"stable","control_enabled":false,"filename":"etrel.lua","host_api":{"max":1,"min":1},"id":"etrel","metadata":{"capabilities":["v2x_charger"],"filename":"etrel.lua","host_api_max":1,"host_api_min":1,"id":"etrel","manufacturer":"Etrel","name":"Etrel","path":"drivers/etrel.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["INCH"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/etrel.lua","permissions":["modbus.read"],"read_only":true,"sha256":"aacd068c20ed861ff10261ba2e8845fa2eb06419ac55137c846d20a6257f01a7","size_bytes":4703,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-etrel-v1.0.0-aacd068c20ed861f.lua","version":"1.0.0"},{"channel":"stable","control_enabled":false,"filename":"ferroamp.lua","host_api":{"max":1,"min":1},"id":"ferroamp","metadata":{"capabilities":["battery","meter","pv"],"filename":"ferroamp.lua","host_api_max":1,"host_api_min":1,"id":"ferroamp","manufacturer":"Ferroamp","name":"Ferroamp","path":"drivers/ferroamp.lua","protocols":["mqtt"],"read_only":true,"source":"upstream","tested_models":["EnergyHub"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.1.1"},"path":"drivers/ferroamp.lua","permissions":["mqtt.subscribe"],"read_only":true,"sha256":"f8251001694d6d3315cf562cf5c9372b308a617646626495b6aea1b1bf7ac8c0","size_bytes":11598,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-ferroamp-v1.1.1-f8251001694d6d33.lua","version":"1.1.1"},{"channel":"stable","control_enabled":false,"filename":"ferroamp_dc2_v2x.lua","host_api":{"max":1,"min":1},"id":"ferroamp_dc2_v2x","metadata":{"capabilities":["v2x_charger"],"filename":"ferroamp_dc2_v2x.lua","host_api_max":1,"host_api_min":1,"id":"ferroamp_dc2_v2x","manufacturer":"Ferroamp","name":"Ferroamp Dc2 V2X","path":"drivers/ferroamp_dc2_v2x.lua","protocols":["mqtt"],"read_only":true,"source":"upstream","tested_models":["DC2 V2X"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.2"},"path":"drivers/ferroamp_dc2_v2x.lua","permissions":["mqtt.subscribe"],"read_only":true,"sha256":"e049897743ce2ccb8feabed5d60165a08e90e38ff82f8ecf263dc03fce09cdf3","size_bytes":8198,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-ferroamp_dc2_v2x-v1.0.2-e049897743ce2ccb.lua","version":"1.0.2"},{"channel":"stable","control_enabled":false,"filename":"ferroamp_modbus.lua","host_api":{"max":1,"min":1},"id":"ferroamp_modbus","metadata":{"capabilities":["battery","meter","pv"],"filename":"ferroamp_modbus.lua","host_api_max":1,"host_api_min":1,"id":"ferroamp_modbus","manufacturer":"Ferroamp","name":"Ferroamp Modbus","path":"drivers/ferroamp_modbus.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["EnergyHub"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/ferroamp_modbus.lua","permissions":["modbus.read"],"read_only":true,"sha256":"0fd8fea5e2548886c76a7210e9c5032eb377ea64af6a4e499d605cdbf3719f78","size_bytes":9753,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-ferroamp_modbus-v1.0.0-0fd8fea5e2548886.lua","version":"1.0.0"},{"channel":"stable","control_enabled":false,"filename":"foxess.lua","host_api":{"max":1,"min":1},"id":"foxess","metadata":{"capabilities":["pv","battery","meter"],"filename":"foxess.lua","host_api_max":1,"host_api_min":1,"id":"foxess","manufacturer":"Fox ESS","name":"Foxess","path":"drivers/foxess.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["H1 (Single-Phase Hybrid)","H3 (Three-Phase Hybrid)","H3 PRO","AIO-H3 (All-in-One)","KH Series"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/foxess.lua","permissions":["modbus.read"],"read_only":true,"sha256":"9d9ed2bd4819f4d7cc1853e26a66b113681845d2e8781fa39da64ce759c46d7b","size_bytes":8479,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-foxess-v1.0.0-9d9ed2bd4819f4d7.lua","version":"1.0.0"},{"channel":"stable","control_enabled":false,"filename":"fronius.lua","host_api":{"max":1,"min":1},"id":"fronius","metadata":{"capabilities":["battery","meter","pv"],"filename":"fronius.lua","host_api_max":1,"host_api_min":1,"id":"fronius","manufacturer":"Fronius","name":"Fronius","path":"drivers/fronius.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["Primo GEN24","Symo GEN24","Fronius Verto","Fronius Tauro","Fronius Symo (Classic)","Fronius Primo (Classic)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.2.0"},"path":"drivers/fronius.lua","permissions":["modbus.read"],"read_only":true,"sha256":"9e6cab88abaf16414f3e33e076326c467a73cdcab75e7d20a4b02e2bb927dac9","size_bytes":10129,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-fronius-v1.2.0-9e6cab88abaf1641.lua","version":"1.2.0"},{"channel":"stable","control_enabled":false,"filename":"fronius_api.lua","host_api":{"max":1,"min":1},"id":"fronius_api","metadata":{"capabilities":["pv","meter"],"filename":"fronius_api.lua","host_api_max":1,"host_api_min":1,"id":"fronius_api","manufacturer":"Fronius","name":"Fronius Api","path":"drivers/fronius_api.lua","protocols":["http"],"read_only":true,"source":"upstream","tested_models":["Solar API (All Models)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/fronius_api.lua","permissions":["http.get"],"read_only":true,"sha256":"9af483f9991e9e9626fd2d69e9cb51ae88b2f62dd9d0a532383e1f407cec88c8","size_bytes":4444,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-fronius_api-v1.0.0-9af483f9991e9e96.lua","version":"1.0.0"},{"channel":"stable","control_enabled":false,"filename":"fronius_smart_meter.lua","host_api":{"max":1,"min":1},"id":"fronius_smart_meter","metadata":{"capabilities":["meter"],"filename":"fronius_smart_meter.lua","host_api_max":1,"host_api_min":1,"id":"fronius_smart_meter","manufacturer":"Fronius","name":"Fronius Smart Meter","path":"drivers/fronius_smart_meter.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["Smart Meter TS"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.1.0"},"path":"drivers/fronius_smart_meter.lua","permissions":["modbus.read"],"read_only":true,"sha256":"88dd8dac2b65bb6c679c718ca8709da34681ae6db64dc0642efc50da4e6b14a0","size_bytes":5671,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-fronius_smart_meter-v1.1.0-88dd8dac2b65bb6c.lua","version":"1.1.0"},{"channel":"stable","control_enabled":false,"filename":"goe.lua","host_api":{"max":1,"min":1},"id":"goe","metadata":{"capabilities":["v2x_charger"],"filename":"goe.lua","host_api_max":1,"host_api_min":1,"id":"goe","manufacturer":"go-e","name":"Goe","path":"drivers/goe.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["Gemini"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/goe.lua","permissions":["modbus.read"],"read_only":true,"sha256":"e48598399e99ce015a4a953588d93a1dcc89a87d545ac150bcb16471d5fb5d65","size_bytes":4802,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-goe-v1.0.0-e48598399e99ce01.lua","version":"1.0.0"},{"channel":"stable","control_enabled":false,"filename":"goe_http.lua","host_api":{"max":1,"min":1},"id":"goe_http","metadata":{"capabilities":["v2x_charger"],"filename":"goe_http.lua","host_api_max":1,"host_api_min":1,"id":"goe_http","manufacturer":"go-e","name":"Goe Http","path":"drivers/goe_http.lua","protocols":["http"],"read_only":true,"source":"upstream","tested_models":["Gemini HTTP"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/goe_http.lua","permissions":["http.get"],"read_only":true,"sha256":"136964a80a519e36f5f8878bd7005ae3e1260bc37a2d84473ceea0d886012bed","size_bytes":5692,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-goe_http-v1.0.0-136964a80a519e36.lua","version":"1.0.0"},{"channel":"stable","control_enabled":false,"filename":"goodwe.lua","host_api":{"max":1,"min":1},"id":"goodwe","metadata":{"capabilities":["pv","battery","meter"],"description":"GoodWe telemetry with explicit register-map profiles.","filename":"goodwe.lua","host_api_max":1,"host_api_min":1,"id":"goodwe","manufacturer":"GoodWe","name":"GoodWe inverter","path":"drivers/goodwe.lua","protocols":["modbus"],"read_only":true,"source":"upstream","verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.2"},"path":"drivers/goodwe.lua","permissions":["modbus.read"],"read_only":true,"sha256":"547b1ffcfd7732e1a2f063ed6002253414cd1ccdf0fa1d562507b6f5c40fe1d2","size_bytes":10042,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-goodwe-v1.0.2-547b1ffcfd7732e1.lua","version":"1.0.2"},{"channel":"stable","control_enabled":false,"filename":"growatt.lua","host_api":{"max":1,"min":1},"id":"growatt","metadata":{"capabilities":["pv","battery","meter"],"filename":"growatt.lua","host_api_max":1,"host_api_min":1,"id":"growatt","manufacturer":"Growatt","name":"Growatt","path":"drivers/growatt.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["SPH Series (Single-Phase Hybrid)","SPH-TL3 Series (Three-Phase Hybrid)","MIN Series (Single-Phase String)","MIC Series (Micro)","MOD Series (Three-Phase String)","MAX Series (Three-Phase Commercial)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/growatt.lua","permissions":["modbus.read"],"read_only":true,"sha256":"bb4df323e609bbd0ef080d061525472a4236b7e8261fe09bb19ce3135465cea1","size_bytes":8174,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-growatt-v1.0.0-bb4df323e609bbd0.lua","version":"1.0.0"},{"channel":"stable","control_enabled":false,"filename":"hardybarth.lua","host_api":{"max":1,"min":1},"id":"hardybarth","metadata":{"capabilities":["v2x_charger"],"filename":"hardybarth.lua","host_api_max":1,"host_api_min":1,"id":"hardybarth","manufacturer":"HardyBarth","name":"Hardybarth","path":"drivers/hardybarth.lua","protocols":["http"],"read_only":true,"source":"upstream","tested_models":["cPH / Salia"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/hardybarth.lua","permissions":["http.get"],"read_only":true,"sha256":"6a11ab635d6e9969c16156272b53483e085b0b4e9f00157e52583765dd05c10b","size_bytes":4555,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-hardybarth-v1.0.0-6a11ab635d6e9969.lua","version":"1.0.0"},{"channel":"stable","control_enabled":false,"filename":"hello.lua","host_api":{"max":1,"min":1},"id":"hello","metadata":{"capabilities":["meter"],"filename":"hello.lua","host_api_max":1,"host_api_min":1,"id":"hello","name":"Hello","path":"drivers/hello.lua","protocols":[],"read_only":true,"source":"upstream","verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.1.0"},"path":"drivers/hello.lua","permissions":[],"read_only":true,"sha256":"a31d43327581daf31878fbafc4e99809deef8febbe2063f06e4576d94ac0cb3e","size_bytes":3630,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-hello-v1.1.0-a31d43327581daf3.lua","version":"1.1.0"},{"channel":"stable","control_enabled":false,"filename":"huawei.lua","host_api":{"max":1,"min":1},"id":"huawei","metadata":{"capabilities":["battery","meter","pv"],"filename":"huawei.lua","host_api_max":1,"host_api_min":1,"id":"huawei","manufacturer":"Huawei","name":"Huawei","path":"drivers/huawei.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["SUN2000 (Single-Phase)","SUN2000 (Three-Phase Residential)","SUN2000 (Three-Phase Commercial)","LUNA2000 (Battery)","SmartLogger"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.3.0"},"path":"drivers/huawei.lua","permissions":["modbus.read"],"read_only":true,"sha256":"a19e068a0103bb8801ed2cf2f43b027ddbd902a437e0388c4cc6fbea24503127","size_bytes":10769,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-huawei-v1.3.0-a19e068a0103bb88.lua","version":"1.3.0"},{"channel":"stable","control_enabled":false,"filename":"janitza.lua","host_api":{"max":1,"min":1},"id":"janitza","metadata":{"capabilities":["meter"],"filename":"janitza.lua","host_api_max":1,"host_api_min":1,"id":"janitza","manufacturer":"Janitza","name":"Janitza","path":"drivers/janitza.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["UMG Series"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/janitza.lua","permissions":["modbus.read"],"read_only":true,"sha256":"e3737cbe0026c23c30cfc1da45da512121ffac82dd77839ad05931e912bf2502","size_bytes":5063,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-janitza-v1.0.0-e3737cbe0026c23c.lua","version":"1.0.0"},{"channel":"stable","control_enabled":false,"filename":"keba.lua","host_api":{"max":1,"min":1},"id":"keba","metadata":{"capabilities":["v2x_charger"],"filename":"keba.lua","host_api_max":1,"host_api_min":1,"id":"keba","manufacturer":"Keba","name":"Keba","path":"drivers/keba.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["KeContact P30"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/keba.lua","permissions":["modbus.read"],"read_only":true,"sha256":"c23ee5d02cc1bd00bbcf91a217bb27a15044442f09fc55b2a29a2439ec70b608","size_bytes":5784,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-keba-v1.0.0-c23ee5d02cc1bd00.lua","version":"1.0.0"},{"channel":"stable","control_enabled":false,"filename":"kostal.lua","host_api":{"max":1,"min":1},"id":"kostal","metadata":{"capabilities":["pv","battery","meter"],"filename":"kostal.lua","host_api_max":1,"host_api_min":1,"id":"kostal","manufacturer":"Kostal","name":"Kostal","path":"drivers/kostal.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["Plenticore Plus","Plenticore BI","PIKO MP Plus","PIKO IQ"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/kostal.lua","permissions":["modbus.read"],"read_only":true,"sha256":"22171800c4d268e2fa1f90f6eebfc0d70bb01588587b9a2c60452c00c360b206","size_bytes":10636,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-kostal-v1.0.0-22171800c4d268e2.lua","version":"1.0.0"},{"channel":"stable","control_enabled":false,"filename":"kstar.lua","host_api":{"max":1,"min":1},"id":"kstar","metadata":{"capabilities":["pv","battery","meter"],"filename":"kstar.lua","host_api_max":1,"host_api_min":1,"id":"kstar","manufacturer":"KSTAR","name":"Kstar","path":"drivers/kstar.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["KSE (Hybrid)","BluE-S Series"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/kstar.lua","permissions":["modbus.read"],"read_only":true,"sha256":"2e3763d59d2af612d993882103af3afc5cc037bdb2100c77b7a58e7574f085d1","size_bytes":5024,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-kstar-v1.0.0-2e3763d59d2af612.lua","version":"1.0.0"},{"channel":"stable","control_enabled":false,"filename":"mennekes.lua","host_api":{"max":1,"min":1},"id":"mennekes","metadata":{"capabilities":["v2x_charger"],"filename":"mennekes.lua","host_api_max":1,"host_api_min":1,"id":"mennekes","manufacturer":"Mennekes","name":"Mennekes","path":"drivers/mennekes.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["AMTRON"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/mennekes.lua","permissions":["modbus.read"],"read_only":true,"sha256":"aec3d8bf61acc0169440ce6393d8bcbfd8551b45a86aa709a1a23390b21ad431","size_bytes":5227,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-mennekes-v1.0.0-aec3d8bf61acc016.lua","version":"1.0.0"},{"channel":"stable","control_enabled":false,"filename":"opendtu.lua","host_api":{"max":1,"min":1},"id":"opendtu","metadata":{"capabilities":["pv","meter"],"filename":"opendtu.lua","host_api_max":1,"host_api_min":1,"id":"opendtu","manufacturer":"Hoymiles","name":"Opendtu","path":"drivers/opendtu.lua","protocols":["http"],"read_only":true,"source":"upstream","tested_models":["HM Series","HMS Series (WiFi)","HMT Series (Three-Phase)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/opendtu.lua","permissions":["http.get"],"read_only":true,"sha256":"9a21d233be2aa2258b94c68bfc22aa4a382d1e5a97fc899281814e1e4ec77f83","size_bytes":6159,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-opendtu-v1.0.0-9a21d233be2aa225.lua","version":"1.0.0"},{"channel":"stable","control_enabled":false,"filename":"opendtu_mqtt.lua","host_api":{"max":1,"min":1},"id":"opendtu_mqtt","metadata":{"capabilities":["pv","meter"],"filename":"opendtu_mqtt.lua","host_api_max":1,"host_api_min":1,"id":"opendtu_mqtt","manufacturer":"Hoymiles","name":"Opendtu Mqtt","path":"drivers/opendtu_mqtt.lua","protocols":["mqtt"],"read_only":true,"source":"upstream","tested_models":["HM Series","HMS Series","HMT Series"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.1"},"path":"drivers/opendtu_mqtt.lua","permissions":["mqtt.subscribe"],"read_only":true,"sha256":"4a204a465b22ea31e8b073b039fc1f7d87dbccd415832d37842387eafdfc1c3c","size_bytes":6385,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-opendtu_mqtt-v1.0.1-4a204a465b22ea31.lua","version":"1.0.1"},{"channel":"stable","control_enabled":false,"filename":"openevse.lua","host_api":{"max":1,"min":1},"id":"openevse","metadata":{"capabilities":["v2x_charger"],"filename":"openevse.lua","host_api_max":1,"host_api_min":1,"id":"openevse","manufacturer":"OpenEVSE","name":"Openevse","path":"drivers/openevse.lua","protocols":["http"],"read_only":true,"source":"upstream","tested_models":["OpenEVSE"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/openevse.lua","permissions":["http.get"],"read_only":true,"sha256":"63eb1e472bdc51a6fe8dc5d9c6e802ec1e97fd0ff84e6f8ec5ec9ab08872b9a1","size_bytes":4799,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-openevse-v1.0.0-63eb1e472bdc51a6.lua","version":"1.0.0"},{"channel":"stable","control_enabled":false,"filename":"p1_dsmr.lua","host_api":{"max":1,"min":1},"id":"p1_dsmr","metadata":{"capabilities":["meter"],"filename":"p1_dsmr.lua","host_api_max":1,"host_api_min":1,"id":"p1_dsmr","manufacturer":"Various (DSMR)","name":"P1 Dsmr","path":"drivers/p1_dsmr.lua","protocols":["serial"],"read_only":true,"source":"upstream","tested_models":["DSMR v2.2/v4/v5"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.0.0"},"path":"drivers/p1_dsmr.lua","permissions":["serial.read"],"read_only":true,"sha256":"82bbc4c9dfd48fb32c4d1632031e56fbde99b49d5f7978a2d186057da3769cfd","size_bytes":9549,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-p1_dsmr-v2.0.0-82bbc4c9dfd48fb3.lua","version":"2.0.0"},{"channel":"stable","control_enabled":false,"filename":"p1_encrypted.lua","host_api":{"max":1,"min":1},"id":"p1_encrypted","metadata":{"capabilities":["meter"],"filename":"p1_encrypted.lua","host_api_max":1,"host_api_min":1,"id":"p1_encrypted","manufacturer":"Various (Belgian)","name":"P1 Encrypted","path":"drivers/p1_encrypted.lua","protocols":["serial"],"read_only":true,"source":"upstream","tested_models":["Belgian e-MUCS/SMR5","Austrian Smart Meter"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.0.0"},"path":"drivers/p1_encrypted.lua","permissions":["serial.read"],"read_only":true,"sha256":"06caa634e25499beceb1c50dfce0a63e762fd6852a7bd6f4bf62f9b945418081","size_bytes":13460,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-p1_encrypted-v2.0.0-06caa634e25499be.lua","version":"2.0.0"},{"channel":"stable","control_enabled":false,"filename":"p1_hdlc.lua","host_api":{"max":1,"min":1},"id":"p1_hdlc","metadata":{"capabilities":["meter"],"filename":"p1_hdlc.lua","host_api_max":1,"host_api_min":1,"id":"p1_hdlc","manufacturer":"Aidon","name":"P1 Hdlc","path":"drivers/p1_hdlc.lua","protocols":["serial"],"read_only":true,"source":"upstream","tested_models":["RJ45 HAN/NVE","MA Series HAN"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.0.0"},"path":"drivers/p1_hdlc.lua","permissions":["serial.read"],"read_only":true,"sha256":"851fa0d4f8a19129a357f3f725ac1305a4276d27643b2fc65848cc2d7a63c866","size_bytes":11556,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-p1_hdlc-v2.0.0-851fa0d4f8a19129.lua","version":"2.0.0"},{"channel":"stable","control_enabled":false,"filename":"p1_meter.lua","host_api":{"max":1,"min":1},"id":"p1_meter","metadata":{"capabilities":["meter"],"filename":"p1_meter.lua","host_api_max":1,"host_api_min":1,"id":"p1_meter","manufacturer":"Aidon","name":"P1 Meter","path":"drivers/p1_meter.lua","protocols":["serial"],"read_only":true,"source":"upstream","tested_models":["RJ11 P1/DSMR","RJ45 HAN/NVE","AM550","MA Series HAN","MA Series DLMS (AT)","Omnia","Omnipower HAN","E350","E360","E450","G5","S/T211 P1","T210-D/S210 DLMS","S34U18","DSMR v2.2","DSMR v4.x","DSMR v5.0","Belgian e-MUCS/SMR5","Austrian Smart Meter"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"2.0.0"},"path":"drivers/p1_meter.lua","permissions":["serial.read"],"read_only":true,"sha256":"a4d5fbae215180c46d11c5108a101bf603e16ee864cce77ec0cec90b24f447b8","size_bytes":21932,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-p1_meter-v2.0.0-a4d5fbae215180c4.lua","version":"2.0.0"},{"channel":"stable","control_enabled":false,"filename":"pixii.lua","host_api":{"max":1,"min":1},"id":"pixii","metadata":{"capabilities":["battery","meter"],"filename":"pixii.lua","host_api_max":1,"host_api_min":1,"id":"pixii","manufacturer":"Pixii","name":"Pixii","path":"drivers/pixii.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["PowerShaper"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.1.0"},"path":"drivers/pixii.lua","permissions":["modbus.read"],"read_only":true,"sha256":"236ae665bf31caee3160acfe08e2bcefbafdc4f164f9c9d3f72c46cfd2417749","size_bytes":10185,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-pixii-v1.1.0-236ae665bf31caee.lua","version":"1.1.0"},{"channel":"stable","control_enabled":false,"filename":"saj.lua","host_api":{"max":1,"min":1},"id":"saj","metadata":{"capabilities":["pv","battery","meter"],"filename":"saj.lua","host_api_max":1,"host_api_min":1,"id":"saj","manufacturer":"SAJ","name":"Saj","path":"drivers/saj.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["H2 (Three-Phase Hybrid)","HS2 (Single-Phase Hybrid)","AS2 (Three-Phase String)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/saj.lua","permissions":["modbus.read"],"read_only":true,"sha256":"e1bfecdaeb724b6b9f8f88805cf8d64cb1ea7a1e5e57e72c2ca40fcebe73b37f","size_bytes":6402,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-saj-v1.0.0-e1bfecdaeb724b6b.lua","version":"1.0.0"},{"channel":"stable","control_enabled":false,"filename":"schneider_meter.lua","host_api":{"max":1,"min":1},"id":"schneider_meter","metadata":{"capabilities":["meter"],"filename":"schneider_meter.lua","host_api_max":1,"host_api_min":1,"id":"schneider_meter","manufacturer":"Schneider Electric","name":"Schneider Meter","path":"drivers/schneider_meter.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["iEM3xxx/PM5xxx"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/schneider_meter.lua","permissions":["modbus.read"],"read_only":true,"sha256":"bae1f4a1c8b9165eed279770536ece542028be4ed35edc2d6cf8aa7eaa554fda","size_bytes":5174,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-schneider_meter-v1.0.0-bae1f4a1c8b9165e.lua","version":"1.0.0"},{"channel":"stable","control_enabled":false,"filename":"schrack_ev.lua","host_api":{"max":1,"min":1},"id":"schrack_ev","metadata":{"capabilities":["v2x_charger"],"filename":"schrack_ev.lua","host_api_max":1,"host_api_min":1,"id":"schrack_ev","manufacturer":"Schrack","name":"Schrack Ev","path":"drivers/schrack_ev.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["i-CHARGE"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/schrack_ev.lua","permissions":["modbus.read"],"read_only":true,"sha256":"5f0a3e3f4dc0a80c58ab1e559d2c9858d48114026c5dd46de15fc73d8f9b2a9d","size_bytes":4729,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-schrack_ev-v1.0.0-5f0a3e3f4dc0a80c.lua","version":"1.0.0"},{"channel":"stable","control_enabled":false,"filename":"sdm630.lua","host_api":{"max":1,"min":1},"id":"sdm630","metadata":{"capabilities":["meter"],"description":"Eastron SDM630 three-phase meter via Modbus TCP or RTU.","filename":"sdm630.lua","homepage":"https://www.eastrongroup.com","host_api_max":1,"host_api_min":1,"id":"sdm630","manufacturer":"Eastron","name":"Eastron SDM630 meter","path":"drivers/sdm630.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["SDM630"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.1.2"},"path":"drivers/sdm630.lua","permissions":["modbus.read"],"read_only":true,"sha256":"888e9902fbdf68951cdf5c67e4603e5cc6285c052df6618e9218bd59cbdebc01","size_bytes":7968,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-sdm630-v1.1.2-888e9902fbdf6895.lua","version":"1.1.2"},{"channel":"stable","control_enabled":false,"filename":"shelly.lua","host_api":{"max":1,"min":1},"id":"shelly","metadata":{"capabilities":["meter"],"filename":"shelly.lua","host_api_max":1,"host_api_min":1,"id":"shelly","manufacturer":"Shelly","name":"Shelly","path":"drivers/shelly.lua","protocols":["http"],"read_only":true,"source":"upstream","tested_models":["Pro 3EM","3EM Gen3","Pro EM-50","EM Gen3","Mini PM Gen3","Plus 1PM","1PM Gen3","Plus 2PM","2PM Gen3","Pro 4PM","Plus Plug S","Plug S Gen3"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.1.1"},"path":"drivers/shelly.lua","permissions":["http.get"],"read_only":true,"sha256":"dadb5e375c0fb188900a0634c8c0b3be998144ce71c8a835e7d085eb9cce02ad","size_bytes":14359,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-shelly-v1.1.1-dadb5e375c0fb188.lua","version":"1.1.1"},{"channel":"stable","control_enabled":false,"filename":"siemens_pac.lua","host_api":{"max":1,"min":1},"id":"siemens_pac","metadata":{"capabilities":["meter"],"filename":"siemens_pac.lua","host_api_max":1,"host_api_min":1,"id":"siemens_pac","manufacturer":"Siemens","name":"Siemens Pac","path":"drivers/siemens_pac.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["PAC Series"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/siemens_pac.lua","permissions":["modbus.read"],"read_only":true,"sha256":"6382d798691311bb2c0b9499fb966cc4f71f40a2fd4babe1fdf902f881d89a56","size_bytes":4976,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-siemens_pac-v1.0.0-6382d798691311bb.lua","version":"1.0.0"},{"channel":"stable","control_enabled":false,"filename":"sigenergy.lua","host_api":{"max":1,"min":1},"id":"sigenergy","metadata":{"capabilities":["battery","meter","pv"],"filename":"sigenergy.lua","host_api_max":1,"host_api_min":1,"id":"sigenergy","manufacturer":"Sigenergy","name":"Sigenergy","path":"drivers/sigenergy.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["SigenStor EC Single-Phase (3-12kW)","Sigen Hybrid Single-Phase (3-6kW)","Sigen Hybrid Three-Phase (5-30kW)","SigenStor EC Three-Phase (5-30kW)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/sigenergy.lua","permissions":["modbus.read"],"read_only":true,"sha256":"63e9a97bcec613bc0190981d729e96f34c00d04076f15324482646f70c9a76e7","size_bytes":6451,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-sigenergy-v1.0.0-63e9a97bcec613bc.lua","version":"1.0.0"},{"channel":"stable","control_enabled":false,"filename":"sma.lua","host_api":{"max":1,"min":1},"id":"sma","metadata":{"capabilities":["battery","meter","pv"],"filename":"sma.lua","host_api_max":1,"host_api_min":1,"id":"sma","manufacturer":"SMA","name":"Sma","path":"drivers/sma.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["Sunny Tripower X","Sunny Tripower","Sunny Tripower CORE1","Sunny Tripower CORE2","Sunny Boy","Sunny Island","SMA Home Manager 2.0"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.2.0"},"path":"drivers/sma.lua","permissions":["modbus.read"],"read_only":true,"sha256":"5ed477d331072208a137a62265d9218872950cf9f16c3c9f61465c4c31e4a6e4","size_bytes":9795,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-sma-v1.2.0-5ed477d331072208.lua","version":"1.2.0"},{"channel":"stable","control_enabled":false,"filename":"socomec.lua","host_api":{"max":1,"min":1},"id":"socomec","metadata":{"capabilities":["meter"],"filename":"socomec.lua","host_api_max":1,"host_api_min":1,"id":"socomec","manufacturer":"Socomec","name":"Socomec","path":"drivers/socomec.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["Diris / countis"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/socomec.lua","permissions":["modbus.read"],"read_only":true,"sha256":"87bf246e6170341b46bc40b886bf89866f96ac672e0be70d4a386147a8f6fada","size_bytes":5101,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-socomec-v1.0.0-87bf246e6170341b.lua","version":"1.0.0"},{"channel":"stable","control_enabled":false,"filename":"sofar.lua","host_api":{"max":1,"min":1},"id":"sofar","metadata":{"capabilities":["pv","battery","meter"],"filename":"sofar.lua","host_api_max":1,"host_api_min":1,"id":"sofar","manufacturer":"Sofar Solar","name":"Sofar","path":"drivers/sofar.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["HYD Series (Three-Phase Hybrid)","ME Series (Single-Phase Hybrid)","HYD-ES (Single-Phase Hybrid)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/sofar.lua","permissions":["modbus.read"],"read_only":true,"sha256":"30fe4ee88be06210a3c9f883088aa4143e84eacb00c080bef6eb1a3fcedddf47","size_bytes":8161,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-sofar-v1.0.0-30fe4ee88be06210.lua","version":"1.0.0"},{"channel":"stable","control_enabled":false,"filename":"solaredge.lua","host_api":{"max":1,"min":1},"id":"solaredge","metadata":{"capabilities":["meter","pv"],"filename":"solaredge.lua","host_api_max":1,"host_api_min":1,"id":"solaredge","manufacturer":"SolarEdge","name":"Solaredge","path":"drivers/solaredge.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["SE Series (Single-Phase)","SE Series (Three-Phase)","StorEdge","SolarEdge Home"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.2.0"},"path":"drivers/solaredge.lua","permissions":["modbus.read"],"read_only":true,"sha256":"c7f733894387b62a96b60a53d900409e6ed13eec5c059b78c9a70ca134c96861","size_bytes":9427,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-solaredge-v1.2.0-c7f733894387b62a.lua","version":"1.2.0"},{"channel":"stable","control_enabled":false,"filename":"solax.lua","host_api":{"max":1,"min":1},"id":"solax","metadata":{"capabilities":["pv","battery","meter"],"filename":"solax.lua","host_api_max":1,"host_api_min":1,"id":"solax","manufacturer":"SolaX","name":"Solax","path":"drivers/solax.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["X1 Hybrid G4","X3 Hybrid G4","X3 Hybrid G4 PRO","X3 MIC/PRO G2 (String)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/solax.lua","permissions":["modbus.read"],"read_only":true,"sha256":"526ca262e536d7c67f73daa8c55cac3b0574d5e79ef5cc4e9a9e0ecd001482ab","size_bytes":6605,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-solax-v1.0.0-526ca262e536d7c6.lua","version":"1.0.0"},{"channel":"stable","control_enabled":false,"filename":"solinteg.lua","host_api":{"max":1,"min":1},"id":"solinteg","metadata":{"capabilities":["battery","meter","pv"],"filename":"solinteg.lua","host_api_max":1,"host_api_min":1,"id":"solinteg","manufacturer":"Solinteg","name":"Solinteg","path":"drivers/solinteg.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["MHT Gen1 Three-Phase 2-MPPT (4-20kW)","MHT Gen1 Three-Phase 4-MPPT (25-50kW)","MHS Gen1 Single-Phase","M2HT Gen2 Three-Phase (25-50kW)","M2HS Gen2 Single-Phase"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/solinteg.lua","permissions":["modbus.read"],"read_only":true,"sha256":"9cbf7afc21df1f7d7a5741e3cd765359d3b13210072b36af7474c5d12cf09260","size_bytes":10454,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-solinteg-v1.0.0-9cbf7afc21df1f7d.lua","version":"1.0.0"},{"channel":"stable","control_enabled":false,"filename":"solis.lua","host_api":{"max":1,"min":1},"id":"solis","metadata":{"capabilities":["battery","meter","pv"],"filename":"solis.lua","host_api_max":1,"host_api_min":1,"id":"solis","manufacturer":"Solis","name":"Solis","path":"drivers/solis.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["S6-EH3P (Three-Phase Hybrid)","S6-EH1P (Single-Phase Hybrid)","S5-GR3P (Three-Phase String)","S6-GR3P (Three-Phase String)","Solis C&I (Commercial)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.2.0"},"path":"drivers/solis.lua","permissions":["modbus.read"],"read_only":true,"sha256":"de0b8e81a07d28b26edd8913e9a06e50058df4c9f605699232fcfcda3746361a","size_bytes":9679,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-solis-v1.2.0-de0b8e81a07d28b2.lua","version":"1.2.0"},{"channel":"stable","control_enabled":false,"filename":"sonnen.lua","host_api":{"max":1,"min":1},"id":"sonnen","metadata":{"capabilities":["battery","meter"],"filename":"sonnen.lua","host_api_max":1,"host_api_min":1,"id":"sonnen","manufacturer":"sonnen","name":"Sonnen","path":"drivers/sonnen.lua","protocols":["http"],"read_only":true,"source":"upstream","tested_models":["sonnenBatterie"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/sonnen.lua","permissions":["http.get"],"read_only":true,"sha256":"f6e21a86d29bd31ac67f6445736b29a9ae0ccba340cabd890bcce0ca95ed4a51","size_bytes":4449,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-sonnen-v1.0.0-f6e21a86d29bd31a.lua","version":"1.0.0"},{"channel":"stable","control_enabled":false,"filename":"sungrow.lua","host_api":{"max":1,"min":1},"id":"sungrow","metadata":{"capabilities":["battery","meter","pv"],"description":"Sungrow hybrid and string inverters via Modbus.","filename":"sungrow.lua","host_api_max":1,"host_api_min":1,"id":"sungrow","manufacturer":"Sungrow","name":"Sungrow hybrid and string inverter","path":"drivers/sungrow.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["SH-RT (Three-Phase Hybrid)","SH-RS (Single-Phase Hybrid)","SH-T (Three-Phase Hybrid High-Power)","SG-RT (Three-Phase String)","SG-CX (Three-Phase Commercial)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.2.0"},"path":"drivers/sungrow.lua","permissions":["modbus.read"],"read_only":true,"sha256":"47eaa961b595f67d2c50699caad12d54517bea85a1ed3cc98d322d18f6a682c4","size_bytes":11068,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-sungrow-v1.2.0-47eaa961b595f67d.lua","version":"1.2.0"},{"channel":"stable","control_enabled":false,"filename":"varta.lua","host_api":{"max":1,"min":1},"id":"varta","metadata":{"capabilities":["battery","meter"],"filename":"varta.lua","host_api_max":1,"host_api_min":1,"id":"varta","manufacturer":"VARTA","name":"Varta","path":"drivers/varta.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["pulse neo","element","link"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/varta.lua","permissions":["modbus.read"],"read_only":true,"sha256":"991da2cb0d6d761983a87ca519c9bd6a16b35161ef793d1a712f88d3164472a9","size_bytes":4240,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-varta-v1.0.0-991da2cb0d6d7619.lua","version":"1.0.0"},{"channel":"stable","control_enabled":false,"filename":"victron.lua","host_api":{"max":1,"min":1},"id":"victron","metadata":{"capabilities":["pv","battery","meter"],"filename":"victron.lua","host_api_max":1,"host_api_min":1,"id":"victron","manufacturer":"Victron Energy","name":"Victron","path":"drivers/victron.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["GX Devices","MultiPlus-II","Quattro-II","SmartSolar MPPT","SmartShunt"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/victron.lua","permissions":["modbus.read"],"read_only":true,"sha256":"fff1c3b1d50196d4d65cd69405fe88fb0945da85608662a6e2f5b929ef36c5bc","size_bytes":6378,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-victron-v1.0.0-fff1c3b1d50196d4.lua","version":"1.0.0"},{"channel":"stable","control_enabled":false,"filename":"victron_mqtt.lua","host_api":{"max":1,"min":1},"id":"victron_mqtt","metadata":{"capabilities":["pv","battery","meter"],"filename":"victron_mqtt.lua","host_api_max":1,"host_api_min":1,"id":"victron_mqtt","manufacturer":"Victron Energy","name":"Victron Mqtt","path":"drivers/victron_mqtt.lua","protocols":["mqtt"],"read_only":true,"source":"upstream","tested_models":["GX Devices","MultiPlus-II","Quattro-II","SmartSolar MPPT","SmartShunt"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.1"},"path":"drivers/victron_mqtt.lua","permissions":["mqtt.subscribe"],"read_only":true,"sha256":"a5ed4bc8da3b3a693dfdfa5cadd593e1bae0318b310da1edcb1fb002e689a4ff","size_bytes":8205,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-victron_mqtt-v1.0.1-a5ed4bc8da3b3a69.lua","version":"1.0.1"},{"channel":"stable","control_enabled":false,"filename":"wallbox.lua","host_api":{"max":1,"min":1},"id":"wallbox","metadata":{"capabilities":["v2x_charger"],"filename":"wallbox.lua","host_api_max":1,"host_api_min":1,"id":"wallbox","manufacturer":"Wallbox","name":"Wallbox","path":"drivers/wallbox.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["Commander/Pulsar"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/wallbox.lua","permissions":["modbus.read"],"read_only":true,"sha256":"d779c0dd749a7f82a04d2ab00e29ffb96aa2216d4913fa43c7b04623c6f13757","size_bytes":4148,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-wallbox-v1.0.0-d779c0dd749a7f82.lua","version":"1.0.0"},{"channel":"stable","control_enabled":false,"filename":"zaptec.lua","host_api":{"max":1,"min":1},"id":"zaptec","metadata":{"capabilities":["v2x_charger"],"filename":"zaptec.lua","host_api_max":1,"host_api_min":1,"id":"zaptec","manufacturer":"Zaptec","name":"Zaptec","path":"drivers/zaptec.lua","protocols":["http"],"read_only":true,"source":"upstream","tested_models":["Zaptec"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.0"},"path":"drivers/zaptec.lua","permissions":["http.get"],"read_only":true,"sha256":"6bce276ed490bc29890fba218d7ec4911c23f2fb1a73596242b36aae5cc0239d","size_bytes":4626,"source_commit":"cbf14503a7a4ef22596d68172d430188bdcfacaa","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-zaptec-v1.0.0-6bce276ed490bc29.lua","version":"1.0.0"}],"generated_at":"2026-07-22T12:26:05Z","history":[{"channel":"stable","control_enabled":false,"filename":"goodwe.lua","host_api":{"max":1,"min":1},"id":"goodwe","metadata":{"capabilities":["pv","battery","meter"],"description":"GoodWe ET, EH, BT, BH, ES, EM, BP, DT, DNS, and XS inverter families.","filename":"goodwe.lua","host_api_max":1,"host_api_min":1,"id":"goodwe","manufacturer":"GoodWe","name":"GoodWe hybrid and string inverter","path":"drivers/goodwe.lua","protocols":["modbus"],"read_only":true,"source":"upstream","tested_models":["ET Series (Three-Phase Hybrid)","EH Series (Single-Phase Hybrid)","BT Series (Three-Phase Hybrid LV)","BH Series (Single-Phase Hybrid LV)","ES Series (Single-Phase Hybrid)","EM Series (Single-Phase Hybrid)","BP Series (Three-Phase AC-Coupled)","DT Series (Three-Phase String)","DNS Series (Single-Phase String)","XS Series (Micro)"],"verification_notes":"Signed community source; check the catalog for current hardware evidence.","verification_status":"experimental","version":"1.0.1"},"path":"drivers/goodwe.lua","permissions":["modbus.read"],"read_only":true,"sha256":"30360655c673439c12386a329333e90552c95544575cb657a4b0a1552d65b844","size_bytes":10864,"source_commit":"2939543a2041a29566e6cf27a4eb5e4c69924de8","url":"https://github.com/srcfl/device-drivers/releases/download/drivers-stable/driver-goodwe-v1.0.1-30360655c673439c.lua","version":"1.0.1"}],"repository":"https://github.com/srcfl/device-drivers","schema_version":1},"schema_version":1,"signature":"iNbrpWGmegzgRKW4pTzxe8gFjKsp9x8v3Akh/4P/F96YLS94NrYoYKMDstfwDNvV0ttT/vBYBy4UYnBCIDrjCg=="} diff --git a/go/state.db.clean b/go/state.db.clean new file mode 100644 index 00000000..e69de29b diff --git a/go/state.db.snapshot b/go/state.db.snapshot new file mode 100644 index 0000000000000000000000000000000000000000..6a1d2def3e3de63849471191317d8c94d2535c74 GIT binary patch literal 212992 zcmeI*Z)_XqeFt!!D3PLUnU0%QMQ`)1?@OM|6#y7V0%|!Z~9_gTVOzeZhKJ-Xn_X9fB_pYY(r7B*nkFIQ*1@i ztuMCUJ@OKAH(#b*WIAMobPqFmlLsxFZ{BPLVMCbx8h{ezfAx9!LN*PF{NIW?-;ME zG>Sy2X=-d+^xKMg|JGCYdY?%0qodsYEB>~U3_~^zC!)P^CaSgUAiKHPYf-5>6$-bN zS8CQERrx@v$X;v~*=;f5a_Qy8t<|zHI?CeiQze{4tv`XdEP^U+%W6ADAVN4XT_$<0 zt~y;SOzK6?2}@T?ODkjT_{(d;SS~B%GZ~iYj-nf;Xi)EFtrJejDVRUXgW9inCc$4D zJ)-?=ZLb0C&9nE`Pbc|8fqQF_wP00O4rE=_<%T9Ib;FcY)ri{nM4&yRV%W_}4eHj- zH}ZtVt@8Tv8l`cqv{q)7WjQu=HKKv+!c-$doO~&hK&#n$+OATORIwqMdlA7@OGDA> z5h2E&G*y_52yi@TOm#`Kp;N!qnuaSE8Pn?{PXBDDYL8Tx%k9ssGE&8)cJV0PFfXl~ zZ!q7TIhEv#MefbGzeQ<2s7duIwXD%pO}9-$d(%;^8j9n!D#J1YyeyCzlI zkr_YRE!V3JIt-Y0m=`-ZeMOq9l7IFJN3r0?2NV3_P*-u=g^2AJr}hVu{JC>nE6+$P zT75^^wVzJ}K<$0D=e~SsccrfV^gvRZp?+nR?ZSx!|I)c`WwWyo^Y-79*Ha1p!UgUY zE0}ZmH00Nta=jvlHU|Pl4F!%_qa{o4%-nl5ndB!Yxwk4#W$9B&U9OvAvr&~y*`R(H z+|eIMw!i1WavFClv za(P`3FGc?Zz1W}NwNv%o;qPG2-Trmwg>iM=3 z!JZKav%3X5nmL32!Bb8}Q&q~rYQBgWS~jI!cMj?771VE~?x8iUs_ZD_NS{^1h`ves zVj{t>XS&h_Do1XC?PO~sp5({Jxw|*~XcUPiIZ1cfyzSm7I4|^J>DYnLkKEBkoW5P9 z(XA_u&N1TkrO{EJ$V>qi#-o&*kD#-KCn$^k>@@{PyCrd>xA;O^@IlmAOHafKmY;| zfB*y_009U<00PHVV8E&v&i{{V^P*l5fB*y_009U<00Izz00bZa0VaU;e{=*0KmY;| zfB*y_009U<00Izz!0{Kr`v387W7H4=5P$##AOHafKmY;|fB*y_fc1a$0SG_<0uX=z z1Rwwb2tWV=5P-n(7r^@e@o!_)5CRZ@00bZa0SG_<0uX=z1R#L*fAj$eKmY;|fB*y_ z009U<00Izz!0{Kr`v387W7H4=5P$##AOHafKmY;|fB*y_V6Feh(|;XHzmxuZ`hy1q zAOHafKmY;|fB*y_009U<00NJgz}a|wyuYrQ%8pWzOhv1UsdL|t)h$0|#k_LqI@N8yP?(#hL{`@*@9Dgi-Nnt)3S}@+q%hiATC`G}%}>qJMtS4b zLSbg2Fh6CbzqrMMrf02qD;qZ!^0S4xi6RBj_O+X9mQb-^Wp{CTlhT}-nxI6iz_oQd ziy2mwOB<`iH=kqm+1j)c&CkqRiC$h=Axko+c%PZ$dPo28Rzp`R@=j%vK5(1z8|ODm z)8`l7IR8odzuXYHS^ zMPdQJwQ_wTd%mJI>!v}ym^vu_`^^auZB472dnB8mm@Z`LiGK50n(+$sG;cl4u_yOM zk-~FUM4CJ%X6XHfRBNa*wM~xFl4#SuT zHX4cy0SG_<0uX=z1Rwwb2tWV=5O_!dtp7hG7@|V}0uX=z1Rwwb2tWV=5P$##9zy}F z|38L}h9W}%0uX=z1Rwwb2tWV=5P$##9#X(M|L4-*h|v!o5P$##AOHafKmY;|fB*y_ z009U*QUX`G{^H=|XsWNzP)vDJ+csqVK(3Bgw7Su($-28kba$*fF$7hUs@#{pdGTjw z==sHOiq`%AT>9T*^n(WkAOHafKmY;|fB*y_009U<00NJ-z`1xa6@8_^TK`X^e?OM~ zxAfcTuciMeeMlR4KmY;|fB*y_009U<00Izz00bcL5CZ2Cso{S1=$pz-&5q~h#;0?% z@cxnMyXX2kf~Ja2P;Y0@yb~1f44QL-dOCwgRJ%cMEc9I^na#*nEr?K zx6|LC4Ll$K0SG_<0uX=z1Rwwb2tWV=5cq8foQe-~?JEcg|K?P&FR(e^8`zwS2R3JW z2IIpiH>s(DegFU4vGm)&jcOrJ2tWV=5P$##AOHafKmY;|fB*y@PN0w|j_^HQz7W9u z9ssdv$PMkbtoMGM*8l1M{~t{MB6cRO$I^xLU!8jP)Xz@7Gx&pnw@-d~;7;m$11tTX zO?@qy=zp(zJFzd&8{V(S-Pxy-{M;P(<_S~UR%N*^>$``dDpz-9U92>9 zL(`4OogY}*C@q#tLV5AhYDtKUB8&~BQYpzWWK&eCf*_PjH_O7>I{j{~u4b*k9aXzc z0oJ24(9T}mSL)S>&;vi{zMK^{%Nxr}<+&#l{K^Oyqr%B|jMr8AQV3CM zni|^{9gnJ{sE1z)G#5 z>85yl&x_WHCEqzZPUFCzhLu=nI@^*dR`w))SFSpdqvKQ+!xybHj`f8Z!Q49IRJ2;7 zX;Ma%r`^)wc4kdyw^i{>g1bhWg!GS-g2ye5q0vO+$Su}8L|8>VQ`jKbO{oDhqnO8zK9 zIF7Fc@2#Is@`VET)*@?$s;(T+{G`*wDk^oulvLG-+V@1DQKDklZ9}t@o4IcQ35#3h z_2o56<63F0%u391Z0c&nd}J3UYNm4XrA#8)M%z^?k}5VNb1x#8YH281JtD-|lcox@ z5dn?|4UH~oHgxJ-TGMdlB4c_D?R2tss`h|$x!g|4bfk(&?c!0oVP0A}UyI(IIhEv# zMefbGzeQk+oyX^=gBT zyrv!I#oh_bL6PRcDJUGpf*&7D@QXuT#cdZNwqKmuA4u}&&T*|gBc%_4JIb#8d?Em9 z@3TGkn_giJVa3aCKbgo<3>@38*{rBYcRD!>7fxE>D=6qr? zWy&{J;2LeS61& }?zj+S&w<=C$>BB}{uA5@BQI$;Dpne$K(H}^+ zBiI|XZaerrIwxbTA?uP!)1&ACx;Vnt+VU$~C1%&<^J6>r$cfpS%fjQ3CAXt%H8FBt z_U1Wf&NQ|67Ef!MRG6q~qb3`Mv>OTuXG3$5e#FeOqtq2+&-=9G@_JhCCkp=rz1W}N zwNv%o;qPG2-Trmwg>iM=3!JZKav%3X5nmL1? z4FrGZaBIR^sG_MVPSRaAZ@V`N&I^55I(8uRBfGHSPFJPTtt*Yr zG2)Bp6M3mO!EcTqA>x(VGx7HHwc;G>N-g^X;I?F%vVJI1gUG58-0BI41jB5P_Tj#3 zABsK*U+j5M!v?bw^TF*nox=B9r}5VMe^2_wSo%-t2@eQB00Izz00bZa0SG_<0uX=z z1Udz(CsW0dzW9Y0 zwshlT|7;F^#rie?TA}}hlgZgkf9luBWLIj~*=|dQtSWVxQm20fVDRLAY@p{yu~T0- zRURBleWm|zQ@j1ICP(}Jr{_nf&Y$|@!RFw9ocsxAMUy%K-ou_&W;DsKOmZ!mEk-NV zJM@ndgs#oC_jClk;9NghUb|enDID=`y2g`QUlTeK8MCgs(ptKguR>eFE0vc^n@gGL zkpzEbxZ8yxYZ;%KOR3PhZ2R@tz2~1{m&oqF!7h>2HIuH&RqRW_s676KQ9Izri9 z3he#_`@)xdVb6bUsPp3UQFj=~2iApf^RN-RdTU>0WXn!0yTBz#-^DW)&s0p+Ssi&` zylt)O-VN};cnw|Abj7sdy0z@Mz?Wk=I}2P^5d$f*Kv~x{os~Wq=qtW;?eDEqA7YEP zpL>Zl(;i*prctmjR&=>aIJCZFMD2Sv&|Fb5?5lXzw`+PUH%g^7Atx-ZT^44hiZjL8xv65o zULOxF%11iWokO~~N9&<(Cx|H7wp7_~Hbj!$Rp%O87OAN1dAqtQBjv4(_Dd zwUS=Mj|w^4nRF{A)+Fr3bGMax*7;`!x&2nCcre5}ddxq}5Fhmpc3U_a% z+kl{j?*q-A$)d)FKlpc!8Yce8zu6H(4d`2Ovf3ovSD5LqiIw|cl3!ov?yYylYG^cY z55;X&tL#T|1tL6iBv>H&V@TFGXRke9WMb?HWZ2Ii3e?@+XIIcZj=AmUZ!-7DU{Cqh z;Vd}YTT^`NX+Fv4^IYrWc9wzL2kFo)Irm68HxycXJ{T-Y$2;s|Su48Ep{Hw^x-5!2 zH|Q-ro#1ceyM40gESGoZm#?ft_doIhc6;P!`H1?Fh_1+?+asNwPd}iRP86quRrchX z0(nGzKPJ)_mK|%0AtN$p&uJ;-x99Oy5pg zPBd?#bwu4e4Fk9AIqz&o`RI%8{A_4Vz0$q|q_gO+Hzm5c(*1Z7QMZP!QRkHCm|@jD zB7z~+=;j;m@ZC`@clA5(9-sX2z503oz}EwAfbw@$_OUWWcRKo-H!HYJ>E3J_Y8ciI zsemwjY-U7R!I8)c?HXGjzaMbGp_7HL^H(xl>zVeMKw!0*P~5e0T5I*K$7h`W>pKYu zg!|qoSfBp`fn)7dGp*j|ll<^7*V<$wsQoFv{c6-3E4UjOcOxJByOFK$|L4*_j?oVu z5P$##AOHafKmY;|fB*y_009Ub1A#MKJd+My1I*js|M!zv`X|Srf~W!nAOHafKmY;| zfB*y_009U<00JcNL_8C^3CLdme>awX7eEkz00bZa0SG_<0uX=z1Rwwb2pkiEfxr0W zci;V|Vmvm){_m@1!&?83ojxYDLp2}(0SG_<0uX=z1Rwwb2tWV=5Qr4O`F|t}c0vFG z5P$##AOHafKmY;|fB*!Jl>pBFk5zM`G7x|O1Rwwb2tWV=5P$##AOL|#0qg(&$Nm42 zG}s9N2tWV=5P$##AOHafKmY;|I5q+}|35ZOiHbk~0uX=z1Rwwb2tWV=5P$##x(eX_ z|E@F$fB*y_009U<00Izz00bZa0SFu$0j&QYo2EoXAOHafKmY;|fB*y_009U<00LbF zu>Rkb1_2O&00bZa0SG_<0uX=z1Rwx`VdZX2tWV=5P$##AOHaf zKmY;|fWYG|(BBh}@ip0$^%Gn?_RO9vnT=+xVXgo7q~D39e@0JuKmY;|fB*y_009U< z00Izz00bcLm2IgMn*I~ozykshfB*y_009U<00Izz00bZaf%i?| zM106zp%-r_o{CR$9Tx=pJ`m4adqZdZac6hv8bR-1d^puU)pt@1UJ~fR_y4_b&548| z009U<00Izz00bZa0SG_<0*{OU&i@~ora(a;009U<00Izz00bZa0SG_<0`Hpu&i~&x zS|khs2tWV=5P$##AOHafKmY;|cw_{u@Be$UuP1iu*5L0AK6mn~C*L?3Kk;`buADeC z@CT_MrasgEFa6WW&m{*FdSbZmQxp*o2tWV=$41~zF3DdU=UPuG^{RYFsooLmnyKt4 z70FaI`oBc(qg$JEU#TI-4wdKNmySK!fzZi4Y6hjmrI*Vnb!HqB)?VQ zT35WR_q3W!-|@09R&=>4*G)xI4bf0cSu{+^Y#LGF(;a1risesbAeBl{*`lJ2vCNce zR zr7xv1m6|LE_E3hpA{+V6tOC)jH#${|eE-;Xv$8Ln7Nu@dD`W-9ps(2xt=jIW+U?Az zvPu5MQLZ%{E*Xnwh*kMOskmjc_vN~kDe#tHsqCOJJ2jU3K4q9`ja;DYsXNGC_ElXu zAQ4?|Xd;za*^w%yf1gsPx~Qr#>6Bt?ZTXcgf3NgMb`x+4;}3Gv8DlwF9!{wBl1gCE zNT43ECruS*shlq)`6Vi+7+ubaNre_0lDQX^#l(9mYCDYwm6paP4O5lnl@V@SEp3zp z5~A#d7lnN5LWYJ{k!x**%URKCHK|@DSEH#?U#9JbO8+!c)hTc&e7vKLqvN&H2^Kn( z+?bc0NMH5jP6ju}68!iOce`Cy*4YfPF4br%usWV`p|c>qNY-$3B91u)wBDO(Wk!?y z%A~(vStZcwG_1sCqbixQO~Cea1ijFaX-5=RarSPf;vF%@tR9{f+WVauMkjQ?LM!&+ zB!4BtwVv@DsDZ1}fv9c2CRbQnsVcpo4jBx{bQZJQ8!f2do2g0MR5Q~f3I5737h?r5 zURSNjS8AFX+oowxq%ZB#m5L$e+pou3z0W84;bE?|X-eDFmAqK(SEEh=%Zry*OG10U zFlM1CRXUcGOIJ!8!u5^iYl|DVgq6~*tQBN6qEIf~EDLMv^t-jXD%j(kg*NMo$wDb= zX8O4!%5L`yyX?;E4P5E-n;%Z_rDwZB%c^WiACj~C z@_9o@^3OiYwF-7o-ThvK=Yj=w!|ihJ%ZE0j57;ARmaiFFJt)n}`Rs$rS=SCEIxy&D z>b*RFH}*TMp!e2ULA?O)#c-gY-fp{~-hn|7f~8@Fq`XA)upv`mmr&MWx`t9uV~;?O zVksMk^$HC~nvn#rGrC=lMexJ<4_|JPG8UJxS>9M)D&KqlnIu0x&fR~*Aqak^3V$vV zLLkA|UPrTw-Y%ZMM2lPH_2o56=UQp4%*tyGGOIH5a0geQKJ3GZjoGPT_i^^-Kp=f~ zdwFqdwJeN|+LWLq+LD@& zAOHafKmY;|fB*y_009U<00NJ&Ksw&nN0$#S{1NAKd|A>Hq)$ literal 0 HcmV?d00001 diff --git a/web/heating-control.test.mjs b/web/heating-control.test.mjs new file mode 100644 index 00000000..e1df5ebd --- /dev/null +++ b/web/heating-control.test.mjs @@ -0,0 +1,71 @@ +import test from 'node:test'; +import assert from 'node:assert/strict'; +import { readFileSync } from 'node:fs'; + +const source = readFileSync(new URL('./heating.js', import.meta.url), 'utf8'); + +// These guard the invariants that break silently. The behaviour itself was +// verified against a running FTW and a probe driver: pressing + drove the +// driver's own hp_z1_heat_offset metric to 1, raise disabled at the declared +// +3, Release returned the metric to 0 via driver_default_mode, and a click +// on the control did not open the all-signals detail while a click on the +// card still did. + +test('the control is rendered from the driver declaration, never from a driver name', () => { + assert.match(source, /function controlBlock\(name, detail\)/); + assert.match(source, /firstNumberControl\(detail\)/); + // No control branch may key on a driver id — that is the mistake Settings + // made, and the reason a declared control exists at all. Scoped to the + // control code: the file's telemetry half names drivers freely and should. + const start = source.indexOf('// ---- Control: one declared command per pump ----'); + const end = source.indexOf('// ---- Detail drill-in'); + assert.ok(start > 0 && end > start, 'control section markers moved'); + assert.doesNotMatch(source.slice(start, end), /heishamon|myuplink|nibe_local/i); +}); + +test('a pump that declares nothing renders nothing', () => { + assert.match(source, /if \(!control\) return '';/); +}); + +test('bounds and step come from the declaration, not from constants here', () => { + assert.match(source, /input\.step === 'number' && input\.step > 0 \? input\.step : 1/); + assert.match(source, /typeof input\.min === 'number' && value <= input\.min/); + assert.match(source, /typeof input\.max === 'number' && value >= input\.max/); +}); + +test('commanding the pump does not navigate into its signals', () => { + // The whole card is a button; without stopPropagation the detail view opens + // over the control the operator just pressed. + assert.match(source, /closest\('\.ftw-hpc-btn'\)[\s\S]{0,120}e\.stopPropagation\(\)/); + assert.match(source, /closest\('\.ftw-hpc-release'\)[\s\S]{0,120}e\.stopPropagation\(\)/); +}); + +test('no hold reads as Auto rather than a number we do not know', () => { + assert.match(source, /ftw-hpc-auto">Auto { + // The theme's green/red pair is not separable under deuteranopia, so the + // control must not encode its state in colour. + const styles = source.slice(source.indexOf('.ftw-hpc{'), source.indexOf('.ftw-hpc-err{')); + assert.doesNotMatch(styles, /var\(--green\)|var\(--red\)|var\(--accent\)/); + assert.match(source, /\.ftw-hpc-value\{[^}]*font-weight:600/); +}); + +test('a driver that cannot confirm its writes says so in the UI', () => { + assert.match(source, /control\.evidence === 'readback'/); + assert.match(source, /does not confirm this setting/); +}); + +test('the operator sees the result of a press even mid-refresh', () => { + // refresh() drops overlapping calls, which is right for the 30 s timer and + // wrong immediately after a button press. + assert.match(source, /function refreshAfterControl\(\)/); + assert.match(source, /if \(!refreshInFlight\) \{ refresh\(\); return; \}/); +}); + +test('stepper buttons rather than an input that a re-render would clear', () => { + // The card is re-rendered wholesale every 30 s. + assert.doesNotMatch(source, /class="ftw-hpc[^"]*"[^>]*' + escapeHtml(name) + '' + 'All signals →' + asof + + controlBlock(name, detail) + groups + energyPeriodsBlock(energy) + tempChartBlock(temps) + @@ -376,6 +398,142 @@ }); } + // ---- Control: one declared command per pump ---- + // + // Rendered from what the driver declares (/api/drivers/{name} → controls), + // so a pump that declares nothing shows nothing and this file never learns + // a driver's name. Stepper buttons rather than a slider or a number field: + // the whole card is re-rendered every 30 s, and a control holding input + // state would lose a half-typed value on every refresh. + // + // Only number controls render today, which is what a heat curve offset is. + // A boolean would want a different shape and no driver declares one yet. + function firstNumberControl(detail) { + var controls = (detail && detail.controls) || []; + for (var i = 0; i < controls.length; i++) { + if (controls[i] && controls[i].input && controls[i].input.type === 'number') return controls[i]; + } + return null; + } + + function fmtHoldUntil(ms) { + if (!ms) return ''; + return new Date(ms).toLocaleTimeString('en-US', { + hour: '2-digit', minute: '2-digit', hour12: false, + }); + } + + // Signed, because an offset's sign is its whole meaning: +1 is warmer, + // -1 is cooler, and "1" would be ambiguous. + function fmtOffsetValue(v, unit) { + var sign = v > 0 ? '+' : ''; + return sign + String(v) + (unit ? ' ' + unit : ''); + } + + function controlBlock(name, detail) { + var control = firstNumberControl(detail); + if (!control) return ''; + var input = control.input || {}; + var hold = (detail && detail.hold && detail.hold.control === control.id) ? detail.hold : null; + var held = hold && typeof hold.value === 'number'; + var step = typeof input.step === 'number' && input.step > 0 ? input.step : 1; + var value = held ? hold.value : 0; + + // Without a hold the driver is running its own default. Saying "Auto" is + // the honest answer: nothing here knows what offset the pump has settled + // on internally, and printing 0 would claim knowledge we do not have. + var state = held + ? '' + escapeHtml(fmtOffsetValue(hold.value, input.unit)) + '' + + 'until ' + escapeHtml(fmtHoldUntil(hold.expires_at_ms)) + '' + : 'Auto'; + + var atMin = held && typeof input.min === 'number' && value <= input.min; + var atMax = held && typeof input.max === 'number' && value >= input.max; + var btn = function (delta, label, disabled) { + return ''; + }; + + return '
' + + '
' + + '' + escapeHtml(control.label || control.id) + '' + + '' + state + '' + + btn(-step, 'Lower', atMin) + + btn(step, 'Raise', atMax) + + (held + ? '' + : '') + + '
' + + (control.evidence === 'readback' + ? '' + : '
The pump does not confirm this setting — FTW cannot tell whether it took.
') + + '' + + '
'; + } + + function clampControl(v, input) { + if (typeof input.min === 'number' && v < input.min) v = input.min; + if (typeof input.max === 'number' && v > input.max) v = input.max; + // Steps are commonly fractional (0.5 °C); rounding here keeps 0.30000000000000004 + // out of both the button label and the request body. + return Math.round(v * 1000) / 1000; + } + + function controlError(el, message) { + var box = el.closest('.ftw-hpc') && el.closest('.ftw-hpc').querySelector('.ftw-hpc-err'); + if (!box) return; + box.textContent = message; + box.hidden = false; + } + + function sendControl(el, name, control, value) { + el.disabled = true; + apiFetch('/api/drivers/' + encodeURIComponent(name) + '/control', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ control: control, value: value }), + }).then(function (r) { + return r.json().then(function (body) { + if (!r.ok) throw new Error(body && body.error ? body.error : 'request failed'); + return body; + }); + }).then(function () { + refreshAfterControl(); + }).catch(function (err) { + el.disabled = false; + controlError(el, String(err.message || err)); + }); + } + + function releaseControl(el, name) { + el.disabled = true; + apiFetch('/api/drivers/' + encodeURIComponent(name) + '/control', { method: 'DELETE' }) + .then(function (r) { + return r.json().then(function (body) { + if (!r.ok) throw new Error(body && body.error ? body.error : 'request failed'); + return body; + }); + }) + .then(function () { refreshAfterControl(); }) + .catch(function (err) { + el.disabled = false; + controlError(el, String(err.message || err)); + }); + } + + // refresh() drops the call if one is already running, which for the 30 s + // timer is right and here is not: the operator just pressed a button and + // has to see the result. Retry once shortly after, which is long enough for + // an in-flight cycle to finish. + function refreshAfterControl() { + if (!refreshInFlight) { refresh(); return; } + setTimeout(refresh, 400); + } + // The live values are cheap and refresh every 30 s. Month/year history is // comparatively expensive SQLite/Parquet range scans, so cache those series // for five minutes per heat pump. @@ -619,6 +777,23 @@ // The ? help icons explain a metric in place (native tooltip) — a click on // one must NOT navigate into the all-signals detail. if (e.target.closest && e.target.closest('.ftw-hp-i')) return; + // Commanding the pump is not navigating to its signals. The card is the + // button, so every control click has to stop here or the detail view + // opens over the thing the operator just pressed. + var step = e.target.closest && e.target.closest('.ftw-hpc-btn'); + if (step) { + e.stopPropagation(); + sendControl(step, step.dataset.hpcDriver, step.dataset.hpcControl, + parseFloat(step.dataset.hpcValue)); + return; + } + var release = e.target.closest && e.target.closest('.ftw-hpc-release'); + if (release) { + e.stopPropagation(); + releaseControl(release, release.dataset.hpcRelease); + return; + } + if (e.target.closest && e.target.closest('.ftw-hpc')) return; var card = e.target.closest && e.target.closest('.ftw-hp-clickable'); if (card && card.dataset.hpDriver) openDetail(card.dataset.hpDriver); }