{"id":22115605,"url":"https://github.com/mattercoder/matterflow","last_synced_at":"2025-07-25T09:32:07.255Z","repository":{"id":253978578,"uuid":"824527993","full_name":"MatterCoder/matterflow","owner":"MatterCoder","description":"Collect, Tranform and Model Matter Data and send to the Cloud and AI applications ","archived":false,"fork":false,"pushed_at":"2024-11-27T16:27:14.000Z","size":1055,"stargazers_count":12,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-11-27T17:22:47.687Z","etag":null,"topics":["cloud","matter"],"latest_commit_sha":null,"homepage":"https://www.matterflow.cloud","language":"Python","has_issues":true,"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/MatterCoder.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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":"2024-07-05T10:19:14.000Z","updated_at":"2024-11-26T18:44:08.000Z","dependencies_parsed_at":"2024-11-04T20:25:56.403Z","dependency_job_id":"a2327c01-c93a-4631-abd3-91e5432fdd83","html_url":"https://github.com/MatterCoder/matterflow","commit_stats":null,"previous_names":["oidebrett/matterflow","mattercoder/matterflow"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MatterCoder%2Fmatterflow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MatterCoder%2Fmatterflow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MatterCoder%2Fmatterflow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MatterCoder%2Fmatterflow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MatterCoder","download_url":"https://codeload.github.com/MatterCoder/matterflow/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":227555089,"owners_count":17786133,"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":["cloud","matter"],"created_at":"2024-12-01T12:16:49.100Z","updated_at":"2025-07-25T09:32:07.241Z","avatar_url":"https://github.com/MatterCoder.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n    \u003ca href=\"https://github.com/MatterCoder/Matterflow\"\u003e\n        \u003cimg width=\"200\" height=\"150\" src=\"/docs/logo.png\"\u003e\n    \u003c/a\u003e\n    \u003cdiv style=\"display: flex;\"\u003e\u003ch1\u003eMatterflow\u003c/h1\u003e\u003c/div\u003e\n    \u003cbr\u003e\n    \u003cbr\u003e\n    \u003cdiv style=\"display: flex;\"\u003e\n        \u003ca href=\"https://github.com/MatterCoder/Matterflow/releases\"\u003e\n            \u003cimg src=\"https://img.shields.io/github/release/MatterCoder/Matterflow.svg\"\u003e\n        \u003c/a\u003e\n        \u003ca href=\"https://github.com/MatterCoder/Matterflow/stargazers\"\u003e\n            \u003cimg alt=\"GitHub Repo stars\" src=\"https://img.shields.io/github/stars/Mattercoder/Matterflow\"\u003e\n        \u003c/a\u003e\n        \u003ca href=\"https://matterflow.slack.com\"\u003e\n            \u003cimg src=\"https://img.shields.io/badge/Slack-channel-red?logo=slack\"\u003e\n        \u003c/a\u003e\n        \u003ca href=\"https://matterflow.cloud\"\u003e\n        \u003cimg src=\"https://img.shields.io/badge/Docusaurus-3ECC5F?logo=docusaurus\u0026logoColor=fff\"/\u003e    \n        \u003c/a\u003e           \n    \u003c/div\u003e\n    \u003ch1\u003eMatter IoT Data Pipelines\u003c/h1\u003e\n\u003c/div\u003e\n\n# Overview\n\nMatterflow is a visual tool for working with data from **Matter-enabled IoT devices**, simplifying the process of collecting, transforming, and integrating data from **smart home** systems. With Matterflow, you can **Transform** and **Stream** IoT Data to Cloud and AI Applications. Matterflow can be deployed as a Home Assistant addon or a standalone Docker container. It provides functionality to:\n\n- Automatically **receive and process IoT data**.\n- Transform and model data for use in various formats like **CSV** or **JSON**.\n- Send processed data to the **Cloud** and **AI applications** or store it locally for further analysis.\n\nMatterflow is ideal for developers, data scientists, and IoT enthusiasts looking to unlock the full potential of their smart devices.\n\n---\n\n## Tutorial\nA great place to start is to follow the \"Getting Started Tutorial\" on our documentation website: https://matterflow.cloud/docs/intro\n\n\n## Demo video\n\n\u003ca href=\"https://youtu.be/fyOmPssi-9g\" target=\"_blank\"\u003e\n\u003cimg src=\"web/public/matterflowdemo.png\" width=\"800\"\u003e\n\u003c/a\u003e\n\n## Installation\n\n### Server (Django)\n\n```\ncd api\n```\n\n1. Install and activate python3.12 `virtual environment` \n\n```\n/usr/bin/python3.12 -m venv ./venv\nsource venv/bin/activate\n```\n\n***On Mac OS***\nInstalling and activating python3.12 on Mac OS\n\nEnsure you install python3.12\n\n```\nbrew install python@3.12\n```\n\nEnsure you use the correct python binary path when activating the environment\n\n```\n/usr/local/bin/python3 -m venv ./venv\nsource venv/bin/activate\n```\n        \n2. Install dependencies\nIn the `api` directory with `requirements.txt`.\n```\npip install -r requirements.txt\n```\n3. Setup your local environment\n\n- Create environment file with app secret \n```\necho \"SECRET_KEY='TEMPORARY SECRET KEY'\" \u003e mf/.environment\n```\n\n3.1. (Optionally) set location of db-sqlite3 file and tmp config files. Otherwise defaults to /tmp\n\n- Create environment variable your specific db path \n```\necho \"DIR_PATH='/data'\" \u003e\u003e mf/.environment\n```\n4. Supervisor - This project requires supervisord to control unix based processes which run the flows in the background. \n\n4.1. Start/Restart the supervisor\n\nCd to the `api` directory with `supervisord.conf` file\n```\nsupervisord -c ./supervisord.conf \n```\n\n4.2. Check the status of the supervisor\n\n```\nsupervisorctl status\n```\n\nNote: there should be one process running that is specified in the supervisor_confs folder and defined in the foo.conf file\n\n5. Start dev server from app root\n```\ncd mf\npython manage.py migrate\npython manage.py runserver\n```\n    \n\n### Web Client \nIn a separate terminal window, perform the following steps to start the\nfront-end.\n\n1. Install Prerequisites\n```\ncd web\nnpm install\n```\n2. Start dev server\n```\nnpm run dev\n```\n\nBy default, your default browser should open on the main\napplication page. If not, you can go to [http://localhost:5173/](http://localhost:5173/)\nin your browser.\n\n### Testing with Storybook\n\nIt is possible to locally test the react components in Storybook. The backend is mocked in that case.\nIf running as Storybook, then the backend API will only provide static information and the\nfunctionality of adding, deleting, modifying, saving etc will not be saved to the backend\n\n1. Run as Storybook\n```\ncd web\nnpm run storybook\n```\n\nNote: it is not recommended to run as storybook as the lack of backend functionality will \nimpact the functionality of the front end.\n\n### Standalone Docker\n\nIt is possible to run this application as a docker container on amd64 using\nbut you will need to know the IP address of your main docker interface\nFind the docker0 ip address using  ip a | grep docker0\n\n```\ndocker run --rm --add-host=\"localhost:172.17.0.1\" -p 4173:4173 -p 9001:9001 -v /data:/data:rw  -v /config:/config oideibrett/image-amd64-matterflow:latest\n```\n\n\nIts essential that you have a Matter Server running and this can be run in Docker using\n\n```\ndocker run -d \\\n  --name matter-server \\\n  --restart=unless-stopped \\\n  --security-opt apparmor=unconfined \\\n  -v /data:/data \\\n  -v /run/dbus:/run/dbus:ro \\\n  --network=host \\\n  ghcr.io/home-assistant-libs/python-matter-server:stable --storage-path /data --paa-root-cert-dir /data/credentials --bluetooth-adapter 0\n```\n\n### Home Assistant Addon\n\nIt is also possible to run this as a Home Assistant Addon\n\n#### Add the Repository\n\n1. Go to the **Add-on store** in Home Assistant.\n2. Click **⋮ → Repositories**, and paste the following URL:\n   \n[https://github.com/MatterCoder/addon-matterflow](https://github.com/MatterCoder/addon-matterflow)\n\nClick **Add → Close**, or click the button below to add the repository directly:  \n[![Add Repository](https://my.home-assistant.io/badges/supervisor_add_addon_repository.svg)](https://my.home-assistant.io/redirect/supervisor_add_addon_repository/?repository_url=https%3A%2F%2Fgithub.com%2FMattercoder%2Faddon-matterflow)\n\n\n### Credits\nThe project builds on the work from the [Visual Programming project](https://github.com/PyWorkflowApp/visual-programming) and is based on React, React Bootstrap and [react-diagrams](https://github.com/projectstorm/react-diagrams)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmattercoder%2Fmatterflow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmattercoder%2Fmatterflow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmattercoder%2Fmatterflow/lists"}