{"id":34048891,"url":"https://github.com/schech1/remoteio","last_synced_at":"2026-04-02T17:27:16.630Z","repository":{"id":223755497,"uuid":"761460298","full_name":"schech1/remoteio","owner":"schech1","description":"A Raspberry Pi GPIO remote control based on gpiozero","archived":false,"fork":false,"pushed_at":"2025-02-10T21:14:26.000Z","size":651,"stargazers_count":6,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-12-15T17:48:50.630Z","etag":null,"topics":["gpio-pins","gpiozero","raspberry-pi"],"latest_commit_sha":null,"homepage":"https://pypi.org/project/remoteio/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/schech1.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}},"created_at":"2024-02-21T21:50:32.000Z","updated_at":"2025-03-05T05:40:52.000Z","dependencies_parsed_at":"2024-12-06T00:19:33.784Z","dependency_job_id":"1e6079df-4f75-40ea-9a24-44cdc6df6489","html_url":"https://github.com/schech1/remoteio","commit_stats":null,"previous_names":["schech1/remoteio"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/schech1/remoteio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schech1%2Fremoteio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schech1%2Fremoteio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schech1%2Fremoteio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schech1%2Fremoteio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/schech1","download_url":"https://codeload.github.com/schech1/remoteio/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schech1%2Fremoteio/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31311489,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-02T12:59:32.332Z","status":"ssl_error","status_checked_at":"2026-04-02T12:54:48.875Z","response_time":89,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":["gpio-pins","gpiozero","raspberry-pi"],"created_at":"2025-12-14T00:15:02.786Z","updated_at":"2026-04-02T17:27:16.622Z","avatar_url":"https://github.com/schech1.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# remoteio\nA Raspberry Pi GPIO remote control based on gpiozero\n\nhttps://github.com/gpiozero/gpiozero\n\n# remotio with extensions to non gpiozero devices\nA remoteio device needs the remote server, where the device is situated, further an ident to identify it on the server for actions.\nLast not least the obj_type of the device is needed to work with the right gpiozero device.\nThe client transfers the following parameter to the server to work with a gpiozero device:\n  ident,obj_type,*args,**kwargs\nWhile ident and obj_type are needed by remoteio the parameter *args and **kwargs are directly delegated to the gpiozero device\n\n1. creating a gpiozero device\n   rs=RemoteServer(ip_adress,port)\n   led=Remote_XXX(rs,*args,**args), where xxx is the name of a gpiozero device like LED,PWMLED,RGBLED etc.\n   The ident is automatically generated for the handling with the server, obj_type is just XXX\n\n3. A command like blink(**kwargs) or on(*args) is to be used as described in the API of gpiozero.\n   Further remoteio supports on(on_time) for a short impuls realized by blink(on_time=on_time,off_time=0,n=1).\n\n4. remoteio supports a Remoteio_LEDCompositum device, defined by having the attributes on,off,toggle,blink. It supports\n  pulse for the gpiozero devices of the Compositum that can pulse. The functions getClientDevice(), setClientDevice() are used to make messages more readable by\n  the user. At this purpose gpiozero offers **namedpins and *_order. Note that the devices used in Remote_LEDCompositum may be situated on different server.\n\n5. remoteio supports expressions like led.value=... by the use of properties.\n   The attributes of a gpiozero device are reflected in the corresponding remoteio device. Remoteio differs between functions, attributes that are only readable and writeable attributes.\n   The remoteio_client.py acts as a kernel for all devices, so that all remote devices are programmed in the same manner.\n\n6. As extensions also non gpio zero devices may be used. But these classes must be wrapped in a form that they can be applied. As example Remote_W1ThermDevice in the folder remoteio_extensions and\n   W1ThermDevice in the folder remoteio_wrapper are realized in order to read temperatures. \n\nFor details study the documentation in remoteio/remoteio_doku and the examples in controller.py\n      \n\n## Server (remote Raspberry Pi)\nUse this all-in-one command to install remoteio as deamon on port `8509`.\nThe server can be updated with this command.\n```\nbash -c \"$(wget -qLO - https://github.com/schech1/remoteio/raw/master/install.sh)\"\n\n```\n\n##  Using pip\n```\npip install remoteio\n```\nWhen you want to create the server by yourself, you can install the library via\npip and use the examples below, for server- and client usage.\n\n\n\n## Server usage\nStart a remote server on port `1234`.\nIf no port is specified default port `8509` will be used\n\n```\nfrom remoteio import run_server\n\nif __name__ == \"__main__\":\n    run_server(port=1234)\n\n```\n\n\n## Client usage\n```\nfrom remoteio import RemoteServer\n\nif __name__ == \"__main__\":\n    server_ip = \"192.168.1.38\"\n    server_port = 1234\n\n    remote_server = RemoteServer(server_ip, server_port)\n    remote_pin = Remote_LED(remote_server,pinNr)\n    remote_pin.on(on_time=2.0) # (Optional) Time until switch off in sec\n    remote_pin.blink() # Blink LED\n    remote_pin.pulse() # Pulse LED\n    remote_pin.off()\n    remote_server.close()\n# A complete set of examples is in controller.py\n```\n\n### Use Board numbering\n```\npinNr = map_bg(7, 'b') # physical board number is translated to GPIO4\n```\n### Use GPIO numbering\n```\npinNr = 4 # GPIO numbering (e.g. GPIO4) is default\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fschech1%2Fremoteio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fschech1%2Fremoteio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fschech1%2Fremoteio/lists"}