{"id":18914685,"url":"https://github.com/helium/ebus-connman","last_synced_at":"2025-04-15T08:31:32.230Z","repository":{"id":54358945,"uuid":"155216286","full_name":"helium/ebus-connman","owner":"helium","description":"An erlang connman client using ebus ","archived":false,"fork":false,"pushed_at":"2021-02-23T12:31:16.000Z","size":715,"stargazers_count":6,"open_issues_count":0,"forks_count":2,"subscribers_count":28,"default_branch":"master","last_synced_at":"2025-03-28T18:54:58.768Z","etag":null,"topics":["connman","erlang","erlang-library","networking"],"latest_commit_sha":null,"homepage":null,"language":"Erlang","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/helium.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":"2018-10-29T13:26:29.000Z","updated_at":"2025-03-13T04:45:48.000Z","dependencies_parsed_at":"2022-08-13T13:20:20.590Z","dependency_job_id":null,"html_url":"https://github.com/helium/ebus-connman","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/helium%2Febus-connman","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/helium%2Febus-connman/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/helium%2Febus-connman/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/helium%2Febus-connman/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/helium","download_url":"https://codeload.github.com/helium/ebus-connman/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249035557,"owners_count":21202111,"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":["connman","erlang","erlang-library","networking"],"created_at":"2024-11-08T10:12:27.452Z","updated_at":"2025-04-15T08:31:31.924Z","avatar_url":"https://github.com/helium.png","language":"Erlang","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Travis][travis badge]][travis]\n[![Hex.pm Version][hex version badge]][hex]\n[![Hex.pm License][license badge]][license]\n[![Erlang Versions][erlang version badge]][erlang]\n[![Build Tool][build tool]][rebar]\n\n# ebus-connman\n\n\nThe `connman` application provides an Erlang binding for the [connman]\nconnection manager.\n\n\n  * [Features](#features)\n  * [Install](#install)\n  * [Examples](#examples)\n  * [Building](#building)\n\n\n## Features\n\n  * Get current available services\n  * Connect to an SSID by name instead of Service ID\n  * Notifications on connectivity state changes.\n\n## Install\n\nAdd `ebus-connman` to your `deps` section in `rebar.config`:\n\n``` shell\n{deps, [connman]}.\n```\n\nTo ensure that connman is tarted when your application starts also add\nit to the `applications` section in your application's `.app.src`\nfile. For example:\n\n\n``` erlang\n{application, my_app,\n [{description, \"An application using connman\"},\n  {vsn, \"git\"},\n  {registered, []},\n  {applications,\n   [kernel,\n    stdlib,\n    connman\n   ]},\n  {env,[]}\n ]}.\n\n```\n\n## Examples\n\n### Get Services\n\nHere's an example of talking to [connman] to get the current list of\nconnectivity related technologies:\n\n```erlang\nEshell V10.1  (abort with ^G)E\n1\u003e  {ok, C} = connman:connman()\n{ok,\u003c0.221.0\u003e}\n2\u003e  connman:services(C).\n{ok,[{\"/net/connman/service/wifi_a0c589a1baee_425452205570706572204150_managed_psk\",\n      #{\"AutoConnect\" =\u003e true,\n        \"Domains\" =\u003e [\"Home\"],\n        \"Domains.Configuration\" =\u003e [],\n        \"Ethernet\" =\u003e\n            #{\"Address\" =\u003e \"A0:C5:89:A1:BA:EE\",\"Interface\" =\u003e \"wlp2s0\",\n              \"MTU\" =\u003e 1500,\"Method\" =\u003e \"auto\"},\n        \"Favorite\" =\u003e true,\n        \"IPv4\" =\u003e\n            #{\"Address\" =\u003e \"192.168.2.60\",\"Gateway\" =\u003e \"192.168.2.1\",\n              \"Method\" =\u003e \"dhcp\",\"Netmask\" =\u003e \"255.255.255.0\"},\n        \"IPv4.Configuration\" =\u003e #{\"Method\" =\u003e \"dhcp\"},\n        \"IPv6\" =\u003e #{},\n        \"IPv6.Configuration\" =\u003e\n            #{\"Method\" =\u003e \"auto\",\"Privacy\" =\u003e \"disabled\"},\n        \"Immutable\" =\u003e false,\"Name\" =\u003e \"BTR Upper AP\",\n        \"Nameservers\" =\u003e [\"192.168.2.1\"],\n        \"Nameservers.Configuration\" =\u003e [],\"Provider\" =\u003e #{},\n        \"Proxy\" =\u003e #{\"Method\" =\u003e \"direct\"},\n        \"Proxy.Configuration\" =\u003e #{},\n        \"Security\" =\u003e [\"psk\"],\n        \"State\" =\u003e \"online\",\"Strength\" =\u003e 58,\n        \"Timeservers\" =\u003e [\"192.168.2.1\"],\n        \"Timeservers.Configuration\" =\u003e [],\"Type\" =\u003e \"wifi\",\n        \"mDNS\" =\u003e false,\"mDNS.Configuration\" =\u003e false}}]}\n```\n\n### State Change Notifications\n\nTo get notified when connectivity of the system changes, call\n`register_state_notify`. As an example:\n\n```erlang\nEshell V10.1  (abort with ^G)E\n1\u003e {ok, C} = connman:connman()\n{ok,\u003c0.221.0\u003e}\n2\u003e connman:register_state_notify(self()).\nok\n```\n\nNow when the state of the network changes, the given handler pid will\nreceive a message:\n\n``` erlang\n10\u003e flush().\n{state_changed, online}\n```\n\nThe values for state are the atom versions of the connman connectivity\nnames: `offline`, `idle`, `ready`, `online`. Refer to the connman\ndocumentation for the latestdocumentation on the meaning of the state\nnames.\n\n### Connect to an SSID\n\nAs an extension of normal connman behavior the API allows connecting\nto an SSID by name and given a password will block until the\nconnection is established or fails. `connman` will try to find the\ngiven SSID and will attempt to connect to it.\n\n``` erlang\nEshell V10.1  (abort with ^G)E\n1\u003e {ok, C} = connman:connman().\n{ok,\u003c0.257.0\u003e}\n2\u003e connman:connect(C, wifi, \"My Access Point\", \"My AP Password\").\nok\n```\n\n\n## Building\n\nFork the repo and simply use `make` to build the library.\n\n\n\u003c!-- Badges --\u003e\n[travis]: https://travis-ci.com/helium/ebus-connman\n[travis badge]: https://img.shields.io/travis/com/helium/ebus-connman/master.svg?style=flat-square\n[hex]: https://hex.pm/packages/connman\n[hex version badge]: https://img.shields.io/hexpm/v/connman.svg?style=flat-square\n[license]: https://github.com/helium/ebus-connman/blob/master/LICENSE\n[license badge]: https://img.shields.io/github/license/helium/ebus-connman.svg\n[erlang version badge]: https://img.shields.io/badge/erlang-21.1-blue.svg?style=flat-square\n[build tool]: https://img.shields.io/badge/build%20tool-rebar3-orange.svg?style=flat-square\n\n\u003c!-- Links --\u003e\n[connman]: https://01.org/connman\n[rebar]: http://rebar3.org\n[erlang]: http://erlang.org\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhelium%2Febus-connman","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhelium%2Febus-connman","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhelium%2Febus-connman/lists"}