{"id":24915138,"url":"https://github.com/holgerfreudenreich/iotzoo","last_synced_at":"2026-04-16T08:36:21.191Z","repository":{"id":270503056,"uuid":"910575166","full_name":"HolgerFreudenreich/IoTZoo","owner":"HolgerFreudenreich","description":"Connect Things with microcontrollers in a simple way.","archived":false,"fork":false,"pushed_at":"2025-03-09T18:26:48.000Z","size":6526,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-09T19:28:59.220Z","etag":null,"topics":["blazor-server","esp32","hue","iot","mqtt"],"latest_commit_sha":null,"homepage":"","language":"C#","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/HolgerFreudenreich.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":"2024-12-31T17:23:27.000Z","updated_at":"2025-03-09T18:26:54.000Z","dependencies_parsed_at":"2024-12-31T18:26:56.829Z","dependency_job_id":"b1c2d9b5-36ae-4ae3-aaea-b7e5f82f526a","html_url":"https://github.com/HolgerFreudenreich/IoTZoo","commit_stats":null,"previous_names":["holgerfreudenreich/iotzoo"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HolgerFreudenreich%2FIoTZoo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HolgerFreudenreich%2FIoTZoo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HolgerFreudenreich%2FIoTZoo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HolgerFreudenreich%2FIoTZoo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HolgerFreudenreich","download_url":"https://codeload.github.com/HolgerFreudenreich/IoTZoo/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245980298,"owners_count":20704092,"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":["blazor-server","esp32","hue","iot","mqtt"],"created_at":"2025-02-02T07:16:19.580Z","updated_at":"2026-04-16T08:36:21.134Z","avatar_url":"https://github.com/HolgerFreudenreich.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# IoTZoo\nConnect Things with microcontrollers in a simple way.\n\n\nIOTZOO works through the interaction of\n\n1. The IOTZOO firmware for (ESP32) microcontrollers, which is installed on 1..n microcontrollers.\n\n2. The IOTZOO service, which can process rules. This service runs on a web server. A Raspberry PI running a Docker container can serve as hardware.\n\n3. An MQTT broker that is installed on a web server. The IOTZOO Service includes its own MQTT broker, but an external broker such as Mosquitto can also be used.\n\n\nMain Tasks of the IOTZOO firmware\n- Enable the connected hardware to be used.\n\n- Publishing a message via MQTT when the status of the hardware changes. Example: A motion detector has detected a movement.\n\n- Receiving messages via MQTT to control the hardware. Example: The time is to be shown on a display.\n\n\n\nMain Tasks of the IOTZOO service\n- Provision of a web interface for entering rules\n\n- Receiving off all MQTT messages\n\n- Processing of all MQTT messages: Check whether a rule needs to be applied, execute the rule and then send a response message. This message could trigger another rule.\n\n\n\nMain Tasks of the MQTT broker\nThe broker acts as intermediate between senders (publishers) and receivers (subscribers). It is responsible for receiving all messages, filtering them, and sending them to subscribed clients.\n\n\nClients publish messages to the broker. Other clients subscribe to specific topics to receive messages. Each MQTT message includes a topic, and clients subscribe to topics of their interest.\n\nTopics are strings that messages are published to and subscribed to. Topics are hierarchical and can contain multiple levels separated by slashes, like a file path or URL.\n\n\nExample:\n\nTopic: IOTZOO/TIME/EVERY_15_SECONDS\n\nMessage/Payload: { \"DateTime\": \"03.01.2025 15:13:45\", \"Time\": \"15:13:45\", \"TimeShort\": \"15:13\" }\n\n\nThe publish/subcribe model decouples the publisher of the message from the subscribers. The publisher and subscriber are unaware that the other exists. The broker handles the connection between them.\n\n\nTo become familiar with how it works, it is good to look at the included instructions and examples. Open Solution IotZoo.sln from the IotZoo folder.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fholgerfreudenreich%2Fiotzoo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fholgerfreudenreich%2Fiotzoo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fholgerfreudenreich%2Fiotzoo/lists"}