{"id":16514993,"url":"https://github.com/eiri/fake-tele","last_synced_at":"2026-05-12T10:31:22.779Z","repository":{"id":50016232,"uuid":"254962266","full_name":"eiri/fake-tele","owner":"eiri","description":"Fake telemetry MQTT client","archived":false,"fork":false,"pushed_at":"2021-06-06T03:55:52.000Z","size":720,"stargazers_count":0,"open_issues_count":3,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-13T01:37:19.048Z","etag":null,"topics":["mqtt-client","simulator","testing-tools"],"latest_commit_sha":null,"homepage":null,"language":"Erlang","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/eiri.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":"2020-04-11T21:56:41.000Z","updated_at":"2021-06-06T03:55:54.000Z","dependencies_parsed_at":"2022-09-10T19:10:26.662Z","dependency_job_id":null,"html_url":"https://github.com/eiri/fake-tele","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eiri%2Ffake-tele","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eiri%2Ffake-tele/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eiri%2Ffake-tele/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eiri%2Ffake-tele/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eiri","download_url":"https://codeload.github.com/eiri/fake-tele/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241512208,"owners_count":19974542,"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":["mqtt-client","simulator","testing-tools"],"created_at":"2024-10-11T16:14:40.835Z","updated_at":"2026-05-12T10:31:17.754Z","avatar_url":"https://github.com/eiri.png","language":"Erlang","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Fake tele\n_A fake telemetry MQTT client_\n\n![test](https://github.com/eiri/fake-tele/workflows/test/badge.svg)\n\n## Description and motivation\n\nThis is an erlang app that creates a network of MQTT clients reporting randomly generated telemetry to a broker.\n\nThe propose of the app is to simulate traffic for testing of a MQTT broker.\n\n![Grafana dashboard](grafana.png?raw=true \"Temperature graph\")\n\n## Build\n\n```\n$ brew install rebar3\n$ rebar3 compile\n```\n\n## Run\n\n### Start server\n\n_This assumes that docker is available, up and running_\n\n```\n$ make server-start\nmake server-start\ndocker-compose up -d\nCreating network \"fake-tele_default\" with the default driver\nCreating mosquitto ... done\nCreating influxdb  ... done\nCreating grafana   ... done\n\n$ make server-logs\ndocker-compose logs -f mosquitto\ndocker-compose logs -f mosquitto\nAttaching to mosquitto\nmosquitto    | 2020-04-25T18:19:15: mosquitto version 1.6.9 starting`\nmosquitto    | 2020-04-25T18:19:15: Config loaded from /mosquitto/config/mosquitto.conf.\nmosquitto    | 2020-04-25T18:19:15: Opening ipv4 listen socket on port 1883.\nmosquitto    | 2020-04-25T18:19:15: Opening ipv6 listen socket on port 1883.\n```\n\n### Start client\n\n```\n$ make run\nrebar3 shell\n===\u003e Verifying dependencies...\n===\u003e Analyzing applications...\n===\u003e Compiling fmqttc\nErlang/OTP 22 [erts-10.7.2.3] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [hipe]\n\nEshell V10.7.2.3  (abort with ^G)\n1\u003e manager \u003c0.212.0\u003e --- status: up\nmanager \u003c0.212.0\u003e --- count: 12, msg: starting clients, op: start\nmonitor \u003c0.214.0\u003e --- status: up\n===\u003e Booted sasl\n===\u003e Booted cowlib\n===\u003e Booted gun\n===\u003e Booted emqtt\n===\u003e Booted fmqttc\nclient \u003c0.216.0\u003e --- name: \u003c\u003c\"8a934c827237d3b4\"\u003e\u003e, status: up\nclient \u003c0.217.0\u003e --- name: \u003c\u003c\"48c6dc18dc99cba6\"\u003e\u003e, status: up\nclient \u003c0.218.0\u003e --- name: \u003c\u003c\"933aba898dea2ff3\"\u003e\u003e, status: up\nclient \u003c0.219.0\u003e --- name: \u003c\u003c\"33e0e341b9a259c\"\u003e\u003e, status: up\nclient \u003c0.220.0\u003e --- name: \u003c\u003c\"c0cdd9efe89868a4\"\u003e\u003e, status: up\nclient \u003c0.221.0\u003e --- name: \u003c\u003c\"760eeafc915f44ba\"\u003e\u003e, status: up\nclient \u003c0.222.0\u003e --- name: \u003c\u003c\"7f27def4b2a2507c\"\u003e\u003e, status: up\nclient \u003c0.223.0\u003e --- name: \u003c\u003c\"8e84bb80f8f8aed5\"\u003e\u003e, status: up\nclient \u003c0.224.0\u003e --- name: \u003c\u003c\"99fe1f420a6cc671\"\u003e\u003e, status: up\nclient \u003c0.225.0\u003e --- name: \u003c\u003c\"8d708964589d0174\"\u003e\u003e, status: up\nclient \u003c0.226.0\u003e --- name: \u003c\u003c\"adccc78740de8393\"\u003e\u003e, status: up\nclient \u003c0.227.0\u003e --- name: \u003c\u003c\"7124b7dd8b8014aa\"\u003e\u003e, status: up\nmonitor \u003c0.214.0\u003e --- db_name: fake-tele, op: drop_db\nclient \u003c0.221.0\u003e --- op: publish, temperature: -2.9434974645733645, topic: \u003c\u003c\"valve/6\"\u003e\u003e\nclient \u003c0.216.0\u003e --- op: publish, temperature: -1.072523188204584, topic: \u003c\u003c\"valve/1\"\u003e\u003e\nclient \u003c0.222.0\u003e --- op: publish, temperature: -1.5642711496985728, topic: \u003c\u003c\"valve/7\"\u003e\u003e\nclient \u003c0.220.0\u003e --- op: publish, temperature: 2.4016237197555386, topic: \u003c\u003c\"valve/5\"\u003e\u003e\nclient \u003c0.226.0\u003e --- op: publish, temperature: -7.0537612024331535, topic: \u003c\u003c\"valve/11\"\u003e\u003e\nclient \u003c0.224.0\u003e --- op: publish, temperature: -2.3359506488698725, topic: \u003c\u003c\"valve/9\"\u003e\u003e\nclient \u003c0.218.0\u003e --- op: publish, temperature: 1.685536958010378, topic: \u003c\u003c\"valve/3\"\u003e\u003e\nclient \u003c0.219.0\u003e --- op: publish, temperature: -0.3899430400831154, topic: \u003c\u003c\"valve/4\"\u003e\u003e\nclient \u003c0.225.0\u003e --- op: publish, temperature: -0.23322251275841133, topic: \u003c\u003c\"valve/10\"\u003e\u003e\nclient \u003c0.223.0\u003e --- op: publish, temperature: -4.533438180553141, topic: \u003c\u003c\"valve/8\"\u003e\u003e\nclient \u003c0.227.0\u003e --- op: publish, temperature: 0.15495664336423534, topic: \u003c\u003c\"valve/12\"\u003e\u003e\nmonitor \u003c0.214.0\u003e --- db_name: fake-tele, op: create_db\nmonitor \u003c0.214.0\u003e --- op: subscribe, topic: \u003c\u003c\"valve/#\"\u003e\u003e\nclient \u003c0.221.0\u003e --- op: publish, temperature: -3.2812143280975694, topic: \u003c\u003c\"valve/6\"\u003e\u003e\nmonitor \u003c0.214.0\u003e --- op: received, temperature: -3.28°, topic: \u003c\u003c\"valve/6\"\u003e\u003e\nmonitor \u003c0.214.0\u003e --- op: store, point: \u003c\u003c\"device,topic=valve/6,type=valve,num=6 temperature=-3.281214 1600690670319\"\u003e\u003e\nclient \u003c0.227.0\u003e --- op: publish, temperature: 1.3545571741741156, topic: \u003c\u003c\"valve/12\"\u003e\u003e\nmonitor \u003c0.214.0\u003e --- op: received, temperature: 1.35°, topic: \u003c\u003c\"valve/12\"\u003e\u003e\nmonitor \u003c0.214.0\u003e --- op: store, point: \u003c\u003c\"device,topic=valve/12,type=valve,num=12 temperature=1.354557 1600690670336\"\u003e\u003e\nclient \u003c0.226.0\u003e --- op: publish, temperature: -7.510741794056561, topic: \u003c\u003c\"valve/11\"\u003e\u003e\nmonitor \u003c0.214.0\u003e --- op: received, temperature: -7.51°, topic: \u003c\u003c\"valve/11\"\u003e\u003e\nmonitor \u003c0.214.0\u003e --- op: store, point: \u003c\u003c\"device,topic=valve/11,type=valve,num=11 temperature=-7.510742 1600690670366\"\u003e\u003e\nclient \u003c0.222.0\u003e --- op: publish, temperature: -3.6949636784426114, topic: \u003c\u003c\"valve/7\"\u003e\u003e\nmonitor \u003c0.214.0\u003e --- op: received, temperature: -3.69°, topic: \u003c\u003c\"valve/7\"\u003e\u003e\nmonitor \u003c0.214.0\u003e --- op: store, point: \u003c\u003c\"device,topic=valve/7,type=valve,num=7 temperature=-3.694964 1600690670408\"\u003e\u003e\n```\n\n### Check server logs\n\n```\nmosquitto    | 2020-04-25T18:20:09: New connection from 172.19.0.1 on port 1883.\nmosquitto    | 2020-04-25T18:20:09: New client connected from 172.19.0.1 as 4ccada6a999b51b4 (p2, c1, k60).\nmosquitto    | 2020-04-25T18:20:09: New client connected from 172.19.0.1 as ffee974fe94dfe32 (p2, c1, k60).\nmosquitto    | 2020-04-25T18:20:09: New client connected from 172.19.0.1 as 68af7a2b746e102e (p2, c1, k60).\nmosquitto    | 2020-04-25T18:20:09: New client connected from 172.19.0.1 as f4824ef378ca5477 (p2, c1, k60).\nmosquitto    | 2020-04-25T18:20:09: New client connected from 172.19.0.1 as 5ae086e473d5b6ab (p2, c1, k60).\nmosquitto    | 2020-04-25T18:20:09: New client connected from 172.19.0.1 as 8f2e5995c7f6843e (p2, c1, k60).\nmosquitto    | 2020-04-25T18:20:09: New client connected from 172.19.0.1 as 389f9e8905e21811 (p2, c1, k60).\nmosquitto    | 2020-04-25T18:20:09: New client connected from 172.19.0.1 as 6a0002e73bc5cdad (p2, c1, k60).\nmosquitto    | 2020-04-25T18:20:09: New client connected from 172.19.0.1 as 24f9af266961eddf (p2, c1, k60).\nmosquitto    | 2020-04-25T18:20:09: New client connected from 172.19.0.1 as 82a72eb96067cb1e (p2, c1, k60).\n```\n\n### Create grafana dashboard\n\nOpen http://localhost:3000. Login as `admin:admin`. Add data source `InfluxDB` with name \"InfluxDB\", `url` http://influxdb:8086 and database \"fake-tele\".\n\nGo to \"Home\" (in page header), choose sub-menu \"Import dashboard\" and upload or paste json from `infra/grafana-dashboard.json`.\n\nGo to created dashboard \"MQTT\".\n\n### Stop servers\n\n```\n$ make server-stop\ndocker-compose down\nStopping grafana   ... done\nStopping mosquitto ... done\nStopping influxdb  ... done\nRemoving grafana   ... done\nRemoving mosquitto ... done\nRemoving influxdb  ... done\nRemoving network fake-tele_default\n```\n\n## License\n\n[MIT](https://github.com/eiri/fake-tele/blob/master/LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feiri%2Ffake-tele","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feiri%2Ffake-tele","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feiri%2Ffake-tele/lists"}