{"id":18229727,"url":"https://github.com/vindolin/homebase14","last_synced_at":"2025-04-03T14:30:35.088Z","repository":{"id":150541190,"uuid":"595623075","full_name":"vindolin/HomeBase14","owner":"vindolin","description":"HomeBase14 - a personal home automation app","archived":false,"fork":false,"pushed_at":"2025-02-13T13:44:23.000Z","size":43150,"stargazers_count":5,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-19T03:57:42.214Z","etag":null,"topics":["flutter","home-automation","mqtt-client","riverpod"],"latest_commit_sha":null,"homepage":"","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vindolin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-01-31T13:25:26.000Z","updated_at":"2025-02-25T09:45:20.000Z","dependencies_parsed_at":"2023-04-24T06:01:40.402Z","dependency_job_id":"9e5722ef-96ed-4a61-818e-8db21d5e9b8a","html_url":"https://github.com/vindolin/HomeBase14","commit_stats":{"total_commits":627,"total_committers":2,"mean_commits":313.5,"dds":"0.26315789473684215","last_synced_commit":"9e4bb03e01815ce35fb2c6c7cb6e55a49e636e09"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vindolin%2FHomeBase14","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vindolin%2FHomeBase14/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vindolin%2FHomeBase14/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vindolin%2FHomeBase14/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vindolin","download_url":"https://codeload.github.com/vindolin/HomeBase14/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247018243,"owners_count":20869979,"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":["flutter","home-automation","mqtt-client","riverpod"],"created_at":"2024-11-04T10:03:27.653Z","updated_at":"2025-04-03T14:30:35.080Z","avatar_url":"https://github.com/vindolin.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# HomeBase14 - a personal home automation app\n\n[![Flutter](https://github.com/vindolin/HomeBase14/actions/workflows/flutter.yaml/badge.svg)](https://github.com/vindolin/HomeBase14/actions/workflows/flutter.yaml)\n\n\u003e [!WARNING]\n\u003e This app is tailored to my specific environment and is not intended as a general home automation app!\n\n\nThis project was initiated as a platform for me to acquire knowledge in Flutter/Dart, providing a practical scenario to refine my skills.\n\nBeing an enthusiast of open-source home automation and owning a variety of devices with different MQTT payload structures, this project presented an excellent chance to substitute the multiple control programs with one that is custom-made for my requirements.\n\nI experimented with various reactive state frameworks before settling on Riverpod for data-binding.\n\nI really like Flutter's declarative approach and the robustness of the resulting app.\n\nThe project is currently a work in progress, and with the knowledge I’ve gained about Flutter/Dart and the libraries I’m utilizing, there are numerous aspects I would approach differently now.\n\nI am continually refactoring past errors and incorporating new devices as they become part of our household.\n\nThe app currently runs in desktop mode under Linux/Windows/OSX and Android/iOS.\n\nThe following devices can be controlled/monitored via MQTT messages:\n\n#### Zigbee ([Zigbee2MQTT](https://www.zigbee2mqtt.io/))\n* Window blinds (single and dual)\n* Thermostats (underfloor heating)\n* Ikea/Lidl smart bulbs (and other dump bulbs)\n* Garden zistern pump\n* Sodastream uses (vibration sensor)\n* Multi power strip\n* Door contact sensors\n* Humidity/Temp sensors\n\n#### Wifi\n* Garage door (ESP32 controlling a remote controll via transistor)\n* various [Tasmota](https://tasmota.github.io/docs/) plugs\n* Plant watering system for an always thirsty coffee bush (ESP8266, servo valve)\n* Incubator for Tempeh etc. (ESP32)\n\n#### Other\n* Basic IR remote controll for TV and sound bar\n* Metrics of my SMA Tripower solar controller (modbus)\n* Prusa I3 MK3s (USB Serial controller)\n* Sleep modes and display output device of my main PC\n* Greenhouse temperature sensors (LoRa)\n* Configuration data is stored in an encrypted file which is decrypted with a user provided key on first use (safe on Google Play Store).\n\nIt also lets me view the RTSP streams of two survailance cams ([media_kit](https://github.com/media-kit/media-kit))\n\n\u003e [!TIP]\n\u003e You can find an example bare bones MQTT/Riverpod example that uses a family provider here: https://github.com/vindolin/simple_mqtt_riverpod_example\n\n\n### Screenshots\n\u003cimg src=\".github/screenshots/screenshot__2023-12-08-10-31-52-061.jpg\" width=\"200\"\u003e \u003cimg src=\".github/screenshots/screenshot__2023-12-08-10-31-58-409.jpg\" width=\"200\"\u003e \u003cimg src=\".github/screenshots/screenshot__2023-12-08-11-05-34-632.jpg\" width=\"200\"\u003e \u003cimg src=\".github/screenshots/screenshot__2023-12-08-10-35-07-439.jpg\" width=\"200\"\u003e \u003cimg src=\".github/screenshots/screenshot__2023-12-08-15-56-41-262.jpg\" width=\"200\"\u003e \u003cimg src=\".github/screenshots/screenshot__2023-12-08-10-35-13-734.jpg\" width=\"200\"\u003e \u003cimg src=\".github/screenshots/screenshot__2023-12-08-15-56-47-305.jpg\" width=\"200\"\u003e \u003cimg src=\".github/screenshots/screenshot__2023-12-08-10-35-29-469.jpg\" width=\"200\"\u003e \u003cimg src=\".github/screenshots/screenshot__2023-12-08-10-35-35-424.jpg\" width=\"200\"\u003e \u003cimg src=\".github/screenshots/screenshot__2023-12-08-10-36-18-264.jpg\" width=\"200\"\u003e \u003cimg src=\".github/screenshots/screenshot__2023-12-09-22-16-51-712.jpg\" width=\"200\"\u003e \u003cimg src=\".github/screenshots/screenshot__2023-12-08-10-36-29-787.jpg\" width=\"200\"\u003e \u003cimg src=\".github/screenshots/screenshot__2023-12-08-10-36-35-911.jpg\" width=\"200\"\u003e \u003cimg src=\".github/screenshots/screenshot__2024-10-02-10-56-11-262.jpg\" width=\"200\"\u003e \u003cimg src=\".github/screenshots/screenshot__2024-07-05-10-19-21-460.jpg\" width=\"200\"\u003e \u003cimg src=\".github/screenshots/screenshot__2023-12-08-10-42-16-694.jpg\" width=\"200\"\u003e \u003cimg src=\".github/screenshots/screenshot__2023-12-08-10-46-53-712.jpg\" width=\"200\"\u003e \u003cimg src=\".github/screenshots/screenshot__2023-12-09-13-53-20-707.jpg\" width=\"200\"\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvindolin%2Fhomebase14","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvindolin%2Fhomebase14","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvindolin%2Fhomebase14/lists"}