- Notifications
You must be signed in to change notification settings - Fork0
Rest API for Linux ModemManager
License
mbretter/go-mmcli-svr
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
mmcli-svr provides a http/api for accessing ModemManager.
It is possible to send SMS and/or get location information (GNSS).It can be easily integrated into home automation systems like HomeAssistant.
For a list of available commandline options invokemmcli-srv -h
Usage of ./mmcli-srv: -gps-refresh int gps refresh rate in seconds -listen string listen: <ip:port|:port> (default "127.0.0.1:8743") -location-enable string enable location gathering: <all|gps-nmea|gps-raw|3gpp|agps‐msa|agps‐msb>
The listen option changes the listening ip/port, by default the service runs on localhost only, due to security reasons.There is no authentication implemented, anybody with network access could use the service.If you want authentication, put the service behind a reverse proxy like nginx.
For a detailed description of the ModemManager related options, seeman mmcli
./mmcli-srv -location-enable=gps-raw,gps-nmea -gps-refresh=5
You can access the api docs using the included openapi documentation:http://127.0.0.1:8743/swagger/index.html
curl -X 'GET' 'http://127.0.0.1:8743/location' -H 'accept: application/json'
Response body:
{ "modem": { "location": { "3gpp": { "cid": "000FA908", "lac": "FFFE", "mcc": "232", "mnc": "01", "tac": "00003D" }, "cdma-bs": { "latitude": "--", "longitude": "--" }, "gps": { "altitude": "425,400000", "latitude": "37,123039", "longitude": "5,290773", "nmea": [ ], "utc": "134443.00" } } }}
curl -X 'POST' \ 'http://127.0.0.1:8743/sms' \ -H 'accept: application/json' \ -H 'Content-Type: application/json' \ -d '{ "number": "+436641234567", "text": "Ping"}'
Response body:
{ "message": "successfully sent the SMS"}
About
Rest API for Linux ModemManager