{"id":13585154,"url":"https://github.com/eyalcha/thermal","last_synced_at":"2025-04-07T06:32:45.765Z","repository":{"id":49199149,"uuid":"261291147","full_name":"eyalcha/thermal","owner":"eyalcha","description":"Thermal camera for Home Assistant","archived":false,"fork":false,"pushed_at":"2021-06-24T00:05:39.000Z","size":851,"stargazers_count":32,"open_issues_count":9,"forks_count":7,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-11-06T02:38:49.373Z","etag":null,"topics":["camera","custom-component","home-assistant","sensor"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eyalcha.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-05-04T20:41:58.000Z","updated_at":"2024-06-12T07:45:14.000Z","dependencies_parsed_at":"2022-09-11T08:20:20.225Z","dependency_job_id":null,"html_url":"https://github.com/eyalcha/thermal","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eyalcha%2Fthermal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eyalcha%2Fthermal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eyalcha%2Fthermal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eyalcha%2Fthermal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eyalcha","download_url":"https://codeload.github.com/eyalcha/thermal/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247607561,"owners_count":20965944,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["camera","custom-component","home-assistant","sensor"],"created_at":"2024-08-01T15:04:46.233Z","updated_at":"2025-04-07T06:32:45.751Z","avatar_url":"https://github.com/eyalcha.png","language":"Python","funding_links":["https://paypal.me/eyalco1967?locale.x=he_IL"],"categories":["Python"],"sub_categories":[],"readme":"[![hacs_badge](https://img.shields.io/badge/HACS-Default-orange.svg)](https://github.com/custom-components/hacs)\n\n*Please :star: this repo if you find it useful*\n\n\u003cp align=\"left\"\u003e\u003cbr\u003e\n\u003ca href=\"https://paypal.me/eyalco1967?locale.x=he_IL\" target=\"_blank\"\u003e\u003cimg src=\"http://khrolenok.ru/support_paypal.png\" alt=\"PayPal\" width=\"250\" height=\"48\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n# Thermal\n\nThe `thermal` implementation allows you to integrate your thermal sensor to Home Assistant.\n\n![Heat Map](./docs/heatmap.jpg)\n\n(Me saying hello)\n\nThere is currently support for the following device types within Home Assistant:\n\n- [Camera](#camera)\n- [Sensor](#sensor)\n\n## Table of Contents\n\n* [Requirements](#requirements)\n* [Installation](#installation)\n  * [Manual Installation](#manual-installation)\n  * [Installation via HACS](#installation-via-hacs)\n* [Configuration](#configuration)\n  * [Configuration Parameters](#configuration-parameters)\n* [Advanced Configuration](#advanced-configuration)\n* [Thermal Sensors](#thermal-sensors)\n\n## Requirements\n\nFor the integration to work with a thermal sensor, the thermal sensor device should respond to the following HTTP API requests:\n\n| API | Type | Response | Example\n---|---|---|:---\n/raw | GET | JSON | `{\"sensor\":AMG8833\",\"rows\":8,\"cols\":8,\"data\":\"23.00,22.75,22.25,23.25,23.25,23.50,23.50,23.50,22.75,23.00,23.00,23.00,23.00,22.75,22.75,22.75,23.25,22.75,23.00,22.75,22.50,23.25,23.50,23.25,22.50,22.75,22.75,22.75,23.00,23.00,22.50,22.50,22.00,22.50,22.75,22.25,22.75,22.75,23.25,22.50,21.75,22.50,22.50,22.75,22.50,22.50,22.50,23.00,22.50,22.25,21.75,21.75,22.50,22.50,22.75,23.00,21.75,22.50,22.00,21.50,22.25,22.00,22.50,23.00\"}`\n\nSee the GridEye example in the examples folder.\n\n## Installation\n\n### MANUAL INSTALLATION\n\n1. Download the `thermal.zip` file from the\n   [latest release](https://github.com/eyalcha/Thermal/releases/latest).\n2. Unpack the release and copy the `custom_components/thermal` directory\n   into the `custom_components` directory of your Home Assistant\n   installation.\n3. Configure the `thermal` camera / sensor.\n4. Restart Home Assistant.\n\n### INSTALLATION VIA HACS\n\n1. Ensure that [HACS](https://custom-components.github.io/hacs/) is installed.\n2. Search for and install the \"thermal\" integration.\n3. Configure the `thermal` camera / sensor.\n4. Restart Home Assistant.\n\n## Configuration\n\n### Camera\n\n```yaml\n# Example configuration.yaml entry\n\ncamera:\n  platform: thermal\n  host: http://192.168.0.10\n```\n\nMain Options\n\n|Parameter |Required|Description\n|:---|---|---\n| `platform` | Yes | Platfrom name\n| `name` | No | Friendly name **Default**: Thermal\n| `host` | Yes | IP address of your Thermal sensor server\n| `width` | No | Image width in pixels **Default**: 640\n| `height` | No | Image height in pixels **Default**: 640\n| `rotate` | No | Rotate image **Default**: 0\n| `mirror` | No | Mirror image true / false **Default**: false\n| `format` | No | Camera image format (`jpeg`, `png`) **Default**: jpeg\n| `min_temp` | No | Min temperature **Default**: 26\n| `max_temp` | No | Max temperature **Default**: 32\n| `sensor` | No | Sensor related configurations\n| `interpolate` | No | Interpolation related configurations\n| `cold_color` | No | Cold color **Default**: indigo\n| `hot_color` | No | Hot color **Default**: red\n\nInterpolate\n\n|Parameter |Required|Description\n|:---|---|---\n| `method` | No | Interpolation method (`bicubic`, `linear`) **Default** bicubic\n| `rows` | No | Number of rows in interpolated data **Default**: 32\n| `cols` | No | Number of columns of interpolated data **Default**: 32\n\nSensor\n\n|Parameter |Required|Description\n|:---|---|---\n| `rows` | Yes | Number of rows in sensor data **Default**: 8\n| `cols` | Yes | Number of columns in sensor data **Default**: 8\n\n#### State and Attributes\n\n##### Attributes\n\nThe camera attributes are:\n\n- FPS\n\n### Sensor\n\n```yaml\n# Example configuration.yaml entry\n\nsensor:\n  - platform: thermal\n    host: http://192.168.0.10\n```\n\nMain Options\n\n|Parameter |Required|Description\n|:---|---|---\n| `platform` | No | Platfrom name\n| `name` | No | Friendly name **Default**: Thermal\n| `host` | Yes | IP address of your Thermal sensor server\n| `scan_interval`| No | Get raw data interval **Default**: 60 seconds\n| `sensor` | No | Sensor related configurations\n| `roi` | No | Sensor region of interest\n| `state` | No | Sensor state type (`average`, `max`, `min`) **Default**: max\n\nSensor\n\n|Parameter |Required|Description\n|:---|---|---\n| `rows` | Yes | Number of rows in sensor data **Default**: 8\n| `cols` | Yes | Number of columns in sensor data **Default**: 8\n\nROI\n\n|Parameter |Required|Description\n|:---|---|---\n| `left` | Yes | Left pixel index [0:cols-1] **Default**: 0\n| `top` | Yes | Top pixel index [0:rows-1] **Default**: 0\n| `right` | Yes | Right pixel index [0:cols-1] **Default**: 7\n| `bottom` | Yes | Bottom pixel index [0:rows-1] **Default**: 7\n\n#### State and Attributes\n\n##### State\n\nThe sensor state can be one of the following values (all values relates to configured roi):\n\n- Average temperature\n- Max temperature\n- Min temperature\n\n##### Attributes\n\nThe sensor attributes are (all values relates to configured roi):\n\n- Average temperature\n- Max temperature\n- Min temperature\n- Min index - The index where the min temperature was detected (1D)\n- Max index - The index where the max temperature was detected (1D)\n\n## Advanced Configuration\n\nYou can also use this more advanced configuration example:\n\n### Sensor\n\n```yaml\n# Example configuration.yaml entry\n\nsensor\n  - platform: thermal\n    name: My Thrermal\n    host: http://192.168.0.10\n    scan_interval: 2\n    sensor:\n      rows: 8\n      cols: 8\n    roi:\n      left: 3\n      top: 3\n      right: 5\n      bottom: 5\n    state: max\n```\n\n### Camera\n\n```yaml\n# Example configuration.yaml entry\n\ncamera:\n  platform: thermal\n  name: My Camera\n  host: http://192.168.0.10\n  min_temp: 20\n  max_temp: 30\n  mirror: True\n```\n\n# Services\n\nTBI\n\n# Thermal Sensors\n\nThe following thermal sensors are known to work with the integration\n\nSensor | Image\n---|---\n[AMG8833](https://eu.industrial.panasonic.com/products/sensors-optical-devices/sensors-automotive-and-industrial-applications/infrared-array/series/grid-eye-high-performance-type-amg8833/ADI8005/model/AMG8833) | ![Image](./docs/amg8833.jpg)\n\n---\n\nI put a lot of work into making this repo and component available and updated to inspire and help others! I will be glad to receive thanks from you — it will give me new strength and add enthusiasm:\n\u003cp align=\"center\"\u003e\u003cbr\u003e\n\u003ca href=\"https://paypal.me/eyalco1967?locale.x=he_IL\" target=\"_blank\"\u003e\u003cimg src=\"http://khrolenok.ru/support_paypal.png\" alt=\"PayPal\" width=\"250\" height=\"48\"\u003e\u003c/a\u003e\n\u003c/p\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feyalcha%2Fthermal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feyalcha%2Fthermal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feyalcha%2Fthermal/lists"}