{"id":26954490,"url":"https://github.com/bemayker/uns-in-a-box","last_synced_at":"2025-06-10T13:35:52.885Z","repository":{"id":284197314,"uuid":"952479588","full_name":"bemayker/uns-in-a-box","owner":"bemayker","description":"Edge gateway demo on Raspberry Pi 5 with SenseHat for Hannover Messe 2025","archived":false,"fork":false,"pushed_at":"2025-03-28T12:49:20.000Z","size":240,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-28T13:39:15.944Z","etag":null,"topics":["edge-computing","flowfuse","hivemq-ce","influxdb","iot","manufacturing","mqtt","unified-namespace"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bemayker.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2025-03-21T10:49:25.000Z","updated_at":"2025-03-28T12:49:23.000Z","dependencies_parsed_at":"2025-03-24T17:45:17.741Z","dependency_job_id":null,"html_url":"https://github.com/bemayker/uns-in-a-box","commit_stats":null,"previous_names":["bemayker/hannover-messe-2025-edge-gateway","bemayker/uns-in-a-box"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bemayker%2Funs-in-a-box","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bemayker%2Funs-in-a-box/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bemayker%2Funs-in-a-box/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bemayker%2Funs-in-a-box/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bemayker","download_url":"https://codeload.github.com/bemayker/uns-in-a-box/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bemayker%2Funs-in-a-box/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259085469,"owners_count":22803207,"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":["edge-computing","flowfuse","hivemq-ce","influxdb","iot","manufacturing","mqtt","unified-namespace"],"created_at":"2025-04-03T02:17:26.688Z","updated_at":"2025-06-10T13:35:52.862Z","avatar_url":"https://github.com/bemayker.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"![banner](doc/assets/banner-mayker.jpg)\n\n# User Manual \u003c!-- omit in toc --\u003e\n\n- [Overview](#overview)\n- [Getting started](#getting-started)\n  - [Connecting to the Raspberry Pi](#connecting-to-the-raspberry-pi)\n  - [Starting the services](#starting-the-services)\n- [Accessing the services](#accessing-the-services)\n  - [FlowFuse instance(s)](#flowfuse-instances)\n    - [Sensor Module (remote instance)](#sensor-module-remote-instance)\n    - [Edge Gateway \\\u0026 Local Dashboard (local instance)](#edge-gateway--local-dashboard-local-instance)\n    - [FlowFuse Dashboard (hosted instance)](#flowfuse-dashboard-hosted-instance)\n  - [MQTT Broker](#mqtt-broker)\n  - [InfluxDB](#influxdb)\n  - [Telegraf](#telegraf)\n\n## Overview\n\nThis user manual describes how to use the FlowFuse instance(s) and the other\nservices that are part of the UNS In A Box project. The following diagram shows\nan overview of the setup:\n\n![system diagram](doc/assets/system-diagram.png)\n\n\u003e [!NOTE]\n\u003e\n\u003e This user manual is intended for the users of the UNS In A Box project. If\n\u003e you are a developer, please refer to the [developer manual](doc/developer-manual.md)\n\u003e for a full guide on how to install and configure the project.\n\n## Getting started\n\n### Connecting to the Raspberry Pi\n\nEstablish a wired ethernet connection between the Raspberry Pi and your\ncomputer. The Raspberry Pi will automatically obtain an IP address via DHCP,\nwhich will be displayed in the terminal of the Raspberry Pi after startup.\n\nUse one of the following commands to connect to the Raspberry Pi:\n\n```bash\n# Connect to the Raspberry Pi using the hostname\nssh admin@\u003chostname\u003e\n\n# Connect to the Raspberry Pi using the IP address\nssh admin@\u003cip-address\u003e\n```\n\n\u003e [!IMPORTANT]\n\u003e **The hostname is printed on the underside of the Raspberry Pi.**\n\u003e\n\u003e The default credentials are:\n\u003e\n\u003e - Username: `admin`\n\u003e - Password: `admin`\n\n### Starting the services\n\n[This repository](https://github.com/bemayker/uns-in-a-box.git) was cloned to the Raspberry Pi during the installation process.\nYou can locate it at `/home/admin/uns-in-a-box`.\n\n\u003e [!NOTE]\n\u003e A QR code that links to the repository is also printed on the underside of\n\u003e the Raspberry Pi.\n\nTo start the services, run the following command:\n\n```bash\n# Navigate to the repository\ncd /home/admin/uns-in-a-box\n\n# Start the services\ndocker compose up -d\n\n# Check the status of the services\ndocker compose ps\n\n# Check the logs of a specific service (run without specifying the service name to see all logs)\ndocker compose logs \u003cservice-name\u003e\n```\n\nTo restart the services, run the following command:\n\n```bash\ndocker compose restart\n```\n\nTo stop the services, run the following command:\n\n```bash\ndocker compose down\n```\n\n## Accessing the services\n\n### FlowFuse instance(s)\n\nTo access any of the FlowFuse instances, go to the FlowFuse Dashboard and find\nthe instance you want to access. **The underside of the Raspberry Pi has a QR\ncode that links to the FlowFuse Dashboard**.\n\n#### Sensor Module (remote instance)\n\nThe Sensor Module is a FlowFuse remote instance that is used to collect data\nfrom the Sensor HAT on the Raspberry Pi. It is installed on the Raspberry Pi\ndirectly instead of being deployed inside the docker cluster. This makes it\neasier to access the hardware-specific features of the Sensor HAT module.\n\nTo access the editor, go to the FlowFuse Dashboard and look for it in the\n**Remote Instances** section.\n\n#### Edge Gateway \u0026 Local Dashboard (local instance)\n\nThe Edge Gateway is a FlowFuse remote instance that serves as a gateway for\nthe local instance to connect to the FlowFuse Cloud (and vice versa). It is\ninstalled inside the docker cluster.\n\nTo access the editor, go to the FlowFuse Dashboard and look for it in the\n**Remote Instances** section.\n\n#### FlowFuse Dashboard (hosted instance)\n\nThe Dashboard is a FlowFuse hosted instance that is used to visualize the data\nfrom the FlowFuse instance(s) sent to the FlowFuse Cloud via its MQTT broker.\n\nTo access the Dashboard, go to the FlowFuse Dashboard and look for it in the\n**Hosted Instances** section.\n\n### MQTT Broker\n\nThe MQTT Broker is a HiveMQ (Community Edition) instance that is installed\ninside the docker cluster.\n\nTo access the MQTT Broker, you can use any MQTT client. The connection details\nare:\n\nFrom within the docker cluster (e.g. from any of the FlowFuse instances):\n\n- Host: `hivemq`\n- Port: `1883`\n\nFrom outside the docker cluster:\n\n- Host: `\u003chostname\u003e` or `\u003cip-address\u003e`\n- Port: `1883`\n\n### InfluxDB\n\nThe InfluxDB instance is a timeseries database used to store the the MQTT\nmessages collected by the Telegraf instance. It can also be written to and read\nfrom by the local FlowFuse instance(s).\n\nTo access the InfluxDB, you can use any InfluxDB client. The connection details\nare:\n\nFrom within the docker cluster (e.g. from any of the FlowFuse instances):\n\n- Host: `influxdb`\n- Port: `8086`\n\nFrom outside the docker cluster:\n\n- Host: `\u003chostname\u003e` or `\u003cip-address\u003e`\n- Port: `8086`\n\n\u003e [!NOTE]\n\u003e\n\u003e Use the credentials set in the `.env` file at the root of the repository to\n\u003e access the InfluxDB.\n\u003e\n\u003e The default credentials are:\n\u003e\n\u003e - Username: `admin`\n\u003e - Password: `HannoverMesse2025`\n\u003e - Organization: `mayker`\n\u003e - Bucket: `iot_data`\n\u003e - Token: `HannoverMesse2025`\n\n### Telegraf\n\nTelegraf is configured to collect data from the HiveMQ MQTT broker and write it\nto InfluxDB. The Telegraf configuration file is located at\n`telegraf/config/telegraf.conf`.\n\nBy default, Telegraf subscribes to all topics (`#`) on the MQTT broker and\nwrites the data to InfluxDB. The data is stored in the bucket specified in the\n`.env` file with the organization and token also specified there.\n\nIf you need to customize the Telegraf configuration, you can edit the\nconfiguration file and restart the service with:\n\n```bash\ndocker compose restart telegraf\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbemayker%2Funs-in-a-box","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbemayker%2Funs-in-a-box","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbemayker%2Funs-in-a-box/lists"}