{"id":22363902,"url":"https://github.com/tonychouteau/raspberrypicontroller","last_synced_at":"2026-05-11T02:15:18.481Z","repository":{"id":266511042,"uuid":"882364731","full_name":"TonyChouteau/RaspberryPiController","owner":"TonyChouteau","description":"RaspberryPiController","archived":false,"fork":false,"pushed_at":"2024-11-04T22:48:59.000Z","size":120,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-31T16:35:29.833Z","etag":null,"topics":["android","kotlin","python","server","websocket"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","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/TonyChouteau.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":"2024-11-02T16:27:39.000Z","updated_at":"2024-11-08T22:07:13.000Z","dependencies_parsed_at":"2024-12-04T17:17:39.174Z","dependency_job_id":"720166ae-96cf-4260-b72c-836b34390d15","html_url":"https://github.com/TonyChouteau/RaspberryPiController","commit_stats":null,"previous_names":["tonychouteau/raspberrypicontroller"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TonyChouteau%2FRaspberryPiController","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TonyChouteau%2FRaspberryPiController/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TonyChouteau%2FRaspberryPiController/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TonyChouteau%2FRaspberryPiController/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TonyChouteau","download_url":"https://codeload.github.com/TonyChouteau/RaspberryPiController/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245678902,"owners_count":20654738,"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":["android","kotlin","python","server","websocket"],"created_at":"2024-12-04T17:17:36.908Z","updated_at":"2026-05-11T02:15:13.442Z","avatar_url":"https://github.com/TonyChouteau.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Raspberry Pi Controller App\nThis project is an Android app designed to serve as a remote controller for a Raspberry Pi device. \nThe app enables users to interact with a connected Raspberry Pi over a WebSocket connection by sending keyboard inputs and various mouse events directly from an Android device. \nThe app is useful for remote control of Raspberry Pi-based applications, particularly when a physical keyboard or mouse isn't available.\n\n## Features\n- Keyboard Input: Send single-character keyboard inputs to the Raspberry Pi.\n- Mouse Events: Simulate mouse actions like left-click, middle-click, right-click, and mouse move with a touch-and-drag gesture.\n\n## Android App\nThe source of the Android app is located in `app/`.\n\nThe app need some configuration to work. \nAdd this 2 lines to the file `local.properties` :\n```\nURL=\"wss://domain.name:port\"\nTOKEN=\"AUTH_TOKEN\"\n```\n\n### Configuration\nThe app need some configuration to work. \n\n## Server \nThe Python server is located in `server/`. \n\nThe server need some configuration to work.\nAdd this lines to the file `keys.txt` located to the folder `server/` :\n```\n0.0.0.0\nPORT\n/path/to/fullchain.pem\n/path/to/privkey.pem\nPASSWORD\nAUTH_TOKEN\n```\n\n## How It Works\nThe app communicates with a WebSocket server running on the Raspberry Pi. \nIt captures keyboard and button inputs from the Android device and sends corresponding commands over the WebSocket connection, allowing the Raspberry Pi to interpret these commands and perform specific actions.\n\nHow to Use the App\nConnection: Once configured, the Android app attempts to connect to the WebSocket server on the Raspberry Pi automatically. \nA button will appear to allow reconnection if needed.\n\nAuthentication: After establishing the connection, the app sends an authentication token to the server. \nIf the token is validated, the connection is fully established, enabling the app to send commands to the server.\n\nAuthorization: To proceed, use the Android app keyboard to enter the PASSWORD and press the ENTER button.\n\nControl Mode: If the password is verified, the Android app gains control of the Raspberry Pi's mouse and keyboard directly, allowing you to send inputs like mouse movements and clicks.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftonychouteau%2Fraspberrypicontroller","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftonychouteau%2Fraspberrypicontroller","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftonychouteau%2Fraspberrypicontroller/lists"}