# pi_awning_webthing
A web connected terrace awning controller on Raspberry Pi
Currently supported are [TB6612FNG driven](https://www.pololu.com/product/713) motors such
as [DGO-3512ADA](https://www.ebay.co.uk/itm/Gear-Motor-Direct-Current-6-12V-Electric-With-Removable-Crank-DGO-3512ADA-/183375290396).
The concrete motor configuration(s) are defined by using a config file such s shown below.
```
# name, gpio_forward, gpio_backward, step_duration_in_sec
lane1, 2, 3, 0.5
lane2, 19, 26, 0.5
lane3, 5, 6, 0.5
lane4, 10, 9, 0.5
```
For TB6612FNG driven motors the filename has to include the term *tb6612fng* such as tb6612fng_motors.config. Regarding the
hardware setup and wiring please refer [example hardware setup](doc/dgo-3512ada.md)
To install this software you may use [Docker](https://phoenixnap.com/kb/docker-on-raspberry-pi) or [PIP](https://realpython.com/what-is-pip/) package manager such as shown below
**Docker approach**
```
sudo docker run --privileged -p 9500:9500 -v /etc/awning/:/etc/awning/ -e filename=/etc/awning/tb6612fng_motors.config grro/pi_awning_webthing:0.2.0
```
**PIP approach**
```
sudo pip install pi-awning-webthing
```
After this installation you may start the webthing http endpoint inside your python code or via command line using
```
sudo awning --command listen--port 9500 --filename /etc/awning/tb6612fng_motors.config
```
Here, the webthing API will be bind on the local port 9500
Alternatively to the *listen* command, you can use the *register* command to register and start the webthing service as systemd unit.
By doing this the webthing service will be started automatically on boot. Starting the server manually using the *listen* command is no longer necessary.
```
sudo awning --command register --port 9500 --filename /etc/awning/tb6612fng_motors.config
```
The awning service exposes an http webthing endpoint supporting the awning properties. E.g.
```
# webthing has been started on host 192.168.0.23
curl http://192.168.0.23:9500/properties
{
[
{
"id":"urn:dev:ops:awning-TB6612FNG",
"title":"AwningControl",
"@context":"https://iot.mozilla.org/schemas",
"properties":{
"target_position":{
"@type":"LevelProperty",
"title":"awning lane1 target position",
"type":"integer",
"minimum":0,
"maximum":100,
"description":"awning lane1 target position",
"links":[
{
"rel":"property",
"href":"/0/properties/target_position"
}
]
},
"current_position":{
"@type":"LevelProperty",
"title":"awning lane1 current position",
"type":"integer",
"minimum":0,
"maximum":100,
"readOnly":true,
"description":"awning lane1 current position",
"links":[
{
"rel":"property",
"href":"/0/properties/current_position"
}
]
},
"retracting":{
"@type":"OnOffProperty",
"title":"lane1 is retracting",
"type":"boolean",
"readOnly":true,
"description":"lane1 is retracting",
"links":[
{
"rel":"property",
"href":"/0/properties/retracting"
}
]
},
"extending":{
"@type":"OnOffProperty",
"title":"lane1 is extending",
"type":"boolean",
"readOnly":true,
"description":"lane1 is extending",
"links":[
{
"rel":"property",
"href":"/0/properties/extending"
}
]
}
},
"actions":{
},
"events":{
},
"links":[
{
"rel":"properties",
"href":"/0/properties"
},
{
"rel":"actions",
"href":"/0/actions"
},
{
"rel":"events",
"href":"/0/events"
},
{
"rel":"alternate",
"href":"ws://192.168.0.23:9500/0"
}
],
"description":"A web connected patio awnings controller on Raspberry Pi",
"@type":[
"MultiLevelSensor"
],
"href":"/0",
"base":"http://192.168.0.23:9500/0",
"securityDefinitions":{
"nosec_sc":{
"scheme":"nosec"
}
},
"security":"nosec_sc"
},
...
]
}
```
Raw data
{
"_id": null,
"home_page": "https://github.com/grro/pi_awning_webthing",
"name": "pi-awning-webthing",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "webthings,awning,control,pation,terrace",
"author": "Gregor Roth",
"author_email": "gregor.roth@web.de",
"download_url": "https://files.pythonhosted.org/packages/2c/f5/3b35c4df980bd12f77c40aa911b4349cea61197fa81a3e704d0a3115d655/pi_awning_webthing-0.2.10.tar.gz",
"platform": null,
"description": "# pi_awning_webthing\nA web connected terrace awning controller on Raspberry Pi\n\nCurrently supported are [TB6612FNG driven](https://www.pololu.com/product/713) motors such \nas [DGO-3512ADA](https://www.ebay.co.uk/itm/Gear-Motor-Direct-Current-6-12V-Electric-With-Removable-Crank-DGO-3512ADA-/183375290396). \nThe concrete motor configuration(s) are defined by using a config file such s shown below. \n```\n# name, gpio_forward, gpio_backward, step_duration_in_sec\nlane1, 2, 3, 0.5\nlane2, 19, 26, 0.5\nlane3, 5, 6, 0.5\nlane4, 10, 9, 0.5\n```\nFor TB6612FNG driven motors the filename has to include the term *tb6612fng* such as tb6612fng_motors.config. Regarding the \nhardware setup and wiring please refer [example hardware setup](doc/dgo-3512ada.md)\n\nTo install this software you may use [Docker](https://phoenixnap.com/kb/docker-on-raspberry-pi) or [PIP](https://realpython.com/what-is-pip/) package manager such as shown below\n\n**Docker approach**\n```\nsudo docker run --privileged -p 9500:9500 -v /etc/awning/:/etc/awning/ -e filename=/etc/awning/tb6612fng_motors.config grro/pi_awning_webthing:0.2.0\n```\n\n**PIP approach**\n```\nsudo pip install pi-awning-webthing\n```\n\nAfter this installation you may start the webthing http endpoint inside your python code or via command line using\n```\nsudo awning --command listen--port 9500 --filename /etc/awning/tb6612fng_motors.config\n```\nHere, the webthing API will be bind on the local port 9500 \n\nAlternatively to the *listen* command, you can use the *register* command to register and start the webthing service as systemd unit. \nBy doing this the webthing service will be started automatically on boot. Starting the server manually using the *listen* command is no longer necessary. \n```\nsudo awning --command register --port 9500 --filename /etc/awning/tb6612fng_motors.config \n```\n\nThe awning service exposes an http webthing endpoint supporting the awning properties. E.g. \n```\n# webthing has been started on host 192.168.0.23\n\ncurl http://192.168.0.23:9500/properties \n\n{\n [\n {\n \"id\":\"urn:dev:ops:awning-TB6612FNG\",\n \"title\":\"AwningControl\",\n \"@context\":\"https://iot.mozilla.org/schemas\",\n \"properties\":{\n \"target_position\":{\n \"@type\":\"LevelProperty\",\n \"title\":\"awning lane1 target position\",\n \"type\":\"integer\",\n \"minimum\":0,\n \"maximum\":100,\n \"description\":\"awning lane1 target position\",\n \"links\":[\n {\n \"rel\":\"property\",\n \"href\":\"/0/properties/target_position\"\n }\n ]\n },\n \"current_position\":{\n \"@type\":\"LevelProperty\",\n \"title\":\"awning lane1 current position\",\n \"type\":\"integer\",\n \"minimum\":0,\n \"maximum\":100,\n \"readOnly\":true,\n \"description\":\"awning lane1 current position\",\n \"links\":[\n {\n \"rel\":\"property\",\n \"href\":\"/0/properties/current_position\"\n }\n ]\n },\n \"retracting\":{\n \"@type\":\"OnOffProperty\",\n \"title\":\"lane1 is retracting\",\n \"type\":\"boolean\",\n \"readOnly\":true,\n \"description\":\"lane1 is retracting\",\n \"links\":[\n {\n \"rel\":\"property\",\n \"href\":\"/0/properties/retracting\"\n }\n ]\n },\n \"extending\":{\n \"@type\":\"OnOffProperty\",\n \"title\":\"lane1 is extending\",\n \"type\":\"boolean\",\n \"readOnly\":true,\n \"description\":\"lane1 is extending\",\n \"links\":[\n {\n \"rel\":\"property\",\n \"href\":\"/0/properties/extending\"\n }\n ]\n }\n },\n \"actions\":{\n\n },\n \"events\":{\n\n },\n \"links\":[\n {\n \"rel\":\"properties\",\n \"href\":\"/0/properties\"\n },\n {\n \"rel\":\"actions\",\n \"href\":\"/0/actions\"\n },\n {\n \"rel\":\"events\",\n \"href\":\"/0/events\"\n },\n {\n \"rel\":\"alternate\",\n \"href\":\"ws://192.168.0.23:9500/0\"\n }\n ],\n \"description\":\"A web connected patio awnings controller on Raspberry Pi\",\n \"@type\":[\n \"MultiLevelSensor\"\n ],\n \"href\":\"/0\",\n \"base\":\"http://192.168.0.23:9500/0\",\n \"securityDefinitions\":{\n \"nosec_sc\":{\n \"scheme\":\"nosec\"\n }\n },\n \"security\":\"nosec_sc\"\n },\n ...\n ]\n}\n```\n\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A web connected terrace awning controller on Raspberry Pi",
"version": "0.2.10",
"split_keywords": [
"webthings",
"awning",
"control",
"pation",
"terrace"
],
"urls": [
{
"comment_text": "",
"digests": {
"md5": "e0eb986f6f144f07a9560a5b791ad15c",
"sha256": "929f5bdee4176933b188fcb143e9157bc9dce8d31240ca24b2cd1f4eb878a476"
},
"downloads": -1,
"filename": "pi_awning_webthing-0.2.10-py3-none-any.whl",
"has_sig": false,
"md5_digest": "e0eb986f6f144f07a9560a5b791ad15c",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 15231,
"upload_time": "2022-12-17T12:47:42",
"upload_time_iso_8601": "2022-12-17T12:47:42.859717Z",
"url": "https://files.pythonhosted.org/packages/a2/f5/5a10254aa97d000b68a7be02dc2d1a51967ec57002403c885d8f98a28c42/pi_awning_webthing-0.2.10-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "fb34eff12182cc9e8b167e1418f932ba",
"sha256": "c5c3685b168cad630396908063f28e17412208991ab3653b72e0ca3c60e874be"
},
"downloads": -1,
"filename": "pi_awning_webthing-0.2.10.tar.gz",
"has_sig": false,
"md5_digest": "fb34eff12182cc9e8b167e1418f932ba",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 10506,
"upload_time": "2022-12-17T12:47:44",
"upload_time_iso_8601": "2022-12-17T12:47:44.088823Z",
"url": "https://files.pythonhosted.org/packages/2c/f5/3b35c4df980bd12f77c40aa911b4349cea61197fa81a3e704d0a3115d655/pi_awning_webthing-0.2.10.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2022-12-17 12:47:44",
"github": true,
"gitlab": false,
"bitbucket": false,
"github_user": "grro",
"github_project": "pi_awning_webthing",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "pi-awning-webthing"
}