{"id":26738942,"url":"https://github.com/qqqlab/rfm69-raspi","last_synced_at":"2026-04-29T10:03:09.876Z","repository":{"id":134478250,"uuid":"169416597","full_name":"qqqlab/rfm69-raspi","owner":"qqqlab","description":"Raspberry Pi RFM69 Radio Module Listener","archived":false,"fork":false,"pushed_at":"2019-02-24T19:54:07.000Z","size":1301,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-06-20T12:50:11.427Z","etag":null,"topics":["radio","raspberry","raspberry-pi","raspberrypi","rfm69","rfm69cw","rfm69hcw","rfm69hw","rfm69pi"],"latest_commit_sha":null,"homepage":null,"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/qqqlab.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,"zenodo":null}},"created_at":"2019-02-06T14:13:36.000Z","updated_at":"2020-05-28T23:21:03.000Z","dependencies_parsed_at":null,"dependency_job_id":"d28724f6-156c-40d2-ac14-c1b8b93a9251","html_url":"https://github.com/qqqlab/rfm69-raspi","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/qqqlab/rfm69-raspi","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qqqlab%2Frfm69-raspi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qqqlab%2Frfm69-raspi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qqqlab%2Frfm69-raspi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qqqlab%2Frfm69-raspi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/qqqlab","download_url":"https://codeload.github.com/qqqlab/rfm69-raspi/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qqqlab%2Frfm69-raspi/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32420356,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T06:29:02.080Z","status":"ssl_error","status_checked_at":"2026-04-29T06:29:00.631Z","response_time":110,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["radio","raspberry","raspberry-pi","raspberrypi","rfm69","rfm69cw","rfm69hcw","rfm69hw","rfm69pi"],"created_at":"2025-03-28T03:38:54.050Z","updated_at":"2026-04-29T10:03:09.870Z","avatar_url":"https://github.com/qqqlab.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"## RFM69 Radio for Raspberry Pi\n\n```\n+--------+  +----------+    +----------+\n| Radio  +--\u003e  listen  +----\u003e Log File |\n+--------+  +----+-----+    +----------+\n                 |                \n            +----v-----+    +----------+\n            |process.sh+----\u003e   mqqt   +\n            +----+-----+  | +----+-----+\n                 |        |      |\n                 |        | +----v-----+    +---------+\n  Raspberry Pi   |        +-\u003e Database |----\u003e Website |\n                 |          +----------+    +---------+\n                 |\n--------------------------------------------------------\n                 |\n            +----v-----+    +----------+    +---------+\n  Server    |   mqtt   +----\u003e Database +----\u003e Website |\n            +----------+    +----------+    +---------+\n```\n\nThe ```listen``` C++ daemon listens for incoming messages on the RFM69 radio module. It currently expects tab delimited integer plain text messages from the nodes, with the first integer being the ID of the node, but this is to be expanded to secured and/or two way communication. \n\nOutput from ```listen``` is piped into the ```process.sh``` bash script, which forwards it to a local or external mosquitto server.\n\nWith the ```mqtt2db.sh``` script sensor data from the mqtt server can be logged in a Mysql/MariaDB database and from there used for graphing the data on a website.\n\nAll configuration for the C++, BASH, and PHP parts is in```conf/listen.ini```, see details there.\n\nDirectories:\n - listen - C++ source\n - config - Configuration\n - bin - Binaries and scripts\n - html - Website\n - db - Database creation script\n - lib - External libraries\n\n## Listen Installation\n\n```sh\nwget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.50.tar.gz;\ntar xvfz bcm2835-1.50.tar.gz;\ncd bcm2835-1.50;\n./configure;\nmake;\nsudo make install\n\ncd ..\ncd listen\nmake\n\ncd ../bin\n./listen \u0026\n```\n\nIf you want to use the latest versions of the included libraries:\n```sh\ncd lib\ngit clone https://github.com/benhoyt/inih.git\ngit clone https://github.com/hallard/RadioHead.git\ncd ..\n```\n\n## MQTT\n\nInstall mosquitto_pub and mosquitto server, and start publishing messages on topic \\mysensors\\#\n\n```sh\napt-get update\napt-get install mosquitto-clients mosquitto\n./listen | process.sh \u0026\n```\n\nEdit config/listen.ini and/or process.sh to change mosquitto settings. Defaults are host \"localhost\", no SSL, no username/password.\n\nDebugging\n\n - edit process.sh and add the -d flag to mosquitto_pub\n - enter: ```mosquitto_sub -t \"#\" -v```, then in a second session enter ```echo \"PUB topic message\" | ./process.sh``` and should output the message in your first session window. \n\n## Logging to Database\n\nInstall\n```sh\napt-get install mariadb-server\nmysql \u003c db/create_db.sql\n```\n\nTo log on the same machine as ```listen```, adapt config/listen.ini, add username/password as required (or create file ~/.my.cnf). Start the service with ```bin/listen | bin/process.sh \u0026```\n\nTo log on a different machine as ```listen```, set the db_* and mqtt_* settings in listen.ini and start the service with ```bin/mqtt2db.sh \u0026``` \n\nGet row count\n```\nmysql -e\"select count(*) from sensor.log;\" -s --skip-column-names\n```\n\n## Graphing Website\n\nInstall\n```sh\napt-get install apache2 php libapache2-mod-php php-mysql\nln -s \u003cyour install path\u003e/html /var/www/html/sensor\n```\nEdit config/listen.ini and set database info.\n\nBrowse to http://localhost/sensor \n\nNote: no need to symlink the config directory, the php script will execute on the original location and will locate the config directory. This also protects your passwords from being visible from the web.\n\n## Many Thanks To\n\n - [Broadcom BCM2835 Library](http://www.airspayce.com/mikem/bcm2835/)\n - [RadioHead for Raspi](https://github.com/hallard/RadioHead)\n - [C++ INI Parser](https://github.com/benhoyt/inih)\n - [Bash INI Parser](https://github.com/rudimeier/bash_ini_parser)\n - [dygraphs JavaScript charting library](http://dygraphs.com)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqqqlab%2Frfm69-raspi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fqqqlab%2Frfm69-raspi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqqqlab%2Frfm69-raspi/lists"}