{"id":28273300,"url":"https://github.com/bblacey/ez-housemode-synchronizer","last_synced_at":"2026-05-10T03:20:02.069Z","repository":{"id":40464305,"uuid":"334985320","full_name":"bblacey/ez-housemode-synchronizer","owner":"bblacey","description":"Ezlo-Hub-Kit EZ-App that synchronizes Vera House  Mode changes with all local Ezlo Innovation's Hubs","archived":false,"fork":false,"pushed_at":"2023-01-31T17:01:05.000Z","size":71,"stargazers_count":0,"open_issues_count":3,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-15T19:47:47.242Z","etag":null,"topics":["automation","ezlo","ezlo-hub-kit","mqtt","node-js","vera"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/bblacey.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}},"created_at":"2021-02-01T14:59:36.000Z","updated_at":"2022-01-21T21:29:38.000Z","dependencies_parsed_at":"2023-01-19T20:00:16.525Z","dependency_job_id":null,"html_url":"https://github.com/bblacey/ez-housemode-synchronizer","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/bblacey/ez-housemode-synchronizer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bblacey%2Fez-housemode-synchronizer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bblacey%2Fez-housemode-synchronizer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bblacey%2Fez-housemode-synchronizer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bblacey%2Fez-housemode-synchronizer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bblacey","download_url":"https://codeload.github.com/bblacey/ez-housemode-synchronizer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bblacey%2Fez-housemode-synchronizer/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265528949,"owners_count":23782789,"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":["automation","ezlo","ezlo-hub-kit","mqtt","node-js","vera"],"created_at":"2025-05-21T00:17:46.173Z","updated_at":"2026-05-10T03:20:02.037Z","avatar_url":"https://github.com/bblacey.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# EZ-HouseMode-Synchronizer\n![Continuous Integration](https://github.com/bblacey/ez-housemode-synchronizer/workflows/Continuous%20Integration/badge.svg)![Docker to ghcr.io](https://github.com/bblacey/ez-housemode-synchronizer/workflows/Docker%20to%20ghcr.io/badge.svg)\n\nEasy (EZ) Node.js app that propogates Vera House Mode Changes to the Ezlo hub(s) on the local area network.  For convenience, the app is deployed as a dockerized app for Intel/AMD and ARM platforms.\n\n## Motivation\nExample EZ-App to illustrate the simplicity of setting House Modes on Ezlo Hubs using the [ezlo-hub-kit](https://github.com/bblacey/ezlo-hub-kit) SDK.\n\nThis EZ-App also appeals to Vera users that are transitioning from a Vera hub to one or more Ezlo hubs that rely on House Modes for automation.  This EZ-App bridges this transition gap until solutions like [Ezlo's Meshene](https://community.getvera.com/t/until-we-linux/213748/4?u=blacey) and/or [Reactor Multi System](https://community.getvera.com/t/preview-of-multi-system-reactor/216320?u=blacey) become available.\n\n## How it works\nEZ-HouseModeManager subscribes to HouseMode1 MQTT messages broadcast by Vera.  The [Vera MQTT Plugin](https://github.com/jonferreira/vera-mqtt) enables a Vera to publish device-state change messages to MQTT. Users will need to confirm that their Vera MQTT Plugin \"WatchDog\" is configured to push HouseMode changes to MQTT. Upon receipt of the Vera HouseMode1 MQTT message, the Ezlo-HouseMode-Synchronizer sets the House Mode contained in the payload on each Ezlo Hub.\n\n## Usage\n1. Start the dockerized House Mode Synchronizer\n```shell\n$ docker run -it --network host \\\n             --name ez-mode-sync \\\n             -e veraSerial=\u003cVera Serial\u003e \\\n             -e miosUser=\u003cMIOS Portal User\u003e \\\n             -e miosPassword=\u003cMIOS Password\u003e \\\n             -e mqttBrokerUrl=\u003cbroker url\u003e \\\n             ghcr.io/bblacey/ez-housemode-synchronizer\n```\n3. Verify that the application starts successfully, connects to the mqtt broker, discovers the local Ezlo hubs and acts upon Vera House Mode changes by changing the House Mode on your Vera or simulating a house mode change (see below).  The log file shows the Easy HouseMode-Synchronizer docker app starting, connecting to the mqtt broker, subscribing to the HouseModes1 MQTT messages and reporting the discovered Ezlo Hubs.  Finally, you can see the Vera changing to Vaction mode causing each Ezlo hub to follow the mode.\n```\nSubscribed to HouseModes1 topic for Vera 50000796\nSynchronizing HouseMode for: 90000330, architecture: armv7l\t, model: h2.1\t, firmware: 2.0.7.1313.16, uptime: 2d 22h 55m 0s\nSynchronizing HouseMode for: 92000014, architecture: armv7l\t, model: h2_secure.1\t, firmware: 2.0.7.1313.16, uptime: 2d 8h 33m 31s\nSynchronizing HouseMode for: 90000369, architecture: armv7l\t, model: h2.1\t, firmware: 2.0.7.1313.16, uptime: 0d 19h 43m 55s\nSynchronizing HouseMode for: 76002425, architecture: esp32\t, model: ATOM32\t, firmware: 0.8.514, uptime: 0d 0h 48m 24s\nSynchronizing HouseMode for: 70060017, architecture: esp32\t, model: ATOM32\t, firmware: 0.8.528, uptime: 3d 0h 11m 19s\nSynchronizing HouseMode for: 70060095, architecture: esp32\t, model: ATOM32\t, firmware: 0.8.528, uptime: 0d 7h 36m 36s\n\n* Vera 50000796: Changed  house mode (1 =\u003e 2)\n+ Ezlo 90000330: Changing house mode (1 =\u003e 2)\n+ Ezlo 92000014: Changing house mode (1 =\u003e 2)\n+ Ezlo 90000369: Changing house mode (1 =\u003e 2)\n+ Ezlo 76002425: Changing house mode (1 =\u003e 2)\n+ Ezlo 70060017: Changing house mode (1 =\u003e 2)\n+ Ezlo 70060095: Changing house mode (1 =\u003e 2)\n✓ Ezlo 90000369: House mode is now 2                                                                                                                                            \n✓ Ezlo 92000014: House mode is now 2\n✓ Ezlo 90000330: House mode is now 2\n✓ Ezlo 70060017: House mode is now 2\n✓ Ezlo 76002425: House mode is now 2\n✓ Ezlo 70060095: House mode is now 2\n\n* Vera 50000796: Changed  house mode (2 =\u003e 1)\n+ Ezlo 90000330: Changing house mode (2 =\u003e 1)\n+ Ezlo 92000014: Changing house mode (2 =\u003e 1)\n+ Ezlo 90000369: Changing house mode (2 =\u003e 1)\n+ Ezlo 76002425: Changing house mode (2 =\u003e 1)\n+ Ezlo 70060017: Changing house mode (2 =\u003e 1)\n+ Ezlo 70060095: Changing house mode (2 =\u003e 1)\n✓ Ezlo 92000014: House mode is now 1\n✓ Ezlo 90000369: House mode is now 1\n✓ Ezlo 90000330: House mode is now 1\n✓ Ezlo 76002425: House mode is now 1\n✓ Ezlo 70060017: House mode is now 1\n✓ Ezlo 70060095: House mode is now 1\n```\n* NOTE: You can simulate a House Mode transition by running a [simulation script](test/simulate.sh) in another terminal window.  For example, you can simulate changing from Home to Night on Vera 50000999 using MQTT broker 192.168.0.104 as follows:\n```shell\n./test/simulate.sh 50000999 1 2 192.168.0.104\n```\nTo use the simulate\u003cMode\u003e.sh scripts, update the [config.env](config.env) to use your MIOS portal username, password and MQTT broker URL.\n### Production use\n\nTo run the dockerized Easy House-Mode-Syncrhonizer as a persistent process you can use docker-compose (recommended) or run the docker container 'detached' as a background process.\n\nFirst, for either option, create or download [config.env](config.env) and edit the file to use your MIOS portal username, password and MQTT broker URL.\n\n#### *docker-compose* (recommended)\nFor those users who prefer to use `docker-compose`, you can download the [docker-compose.yml](docker-compose.yml) and start the relay with.\n```shell\ndocker-compose up -d .\n```\nCompose users may find the [EZ-Apps](https://github.com/bblacey/ez-apps) github project useful.  It comprises a docker-compose file with unified config files need to run the EZ-App suite with a simple `docker-compose up -d`.\n\n#### *docker run --detatch* (alternative)\nStart the relay in detached mode.\n```shell\n$ docker run --detach --network host \\\n             --name ez-mode-sync \\\n             --env-file config.env \\\n             ghcr.io/bblacey/ez-housemode-synchronizer\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbblacey%2Fez-housemode-synchronizer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbblacey%2Fez-housemode-synchronizer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbblacey%2Fez-housemode-synchronizer/lists"}