Skip to main content

A web connected terrace awning controller on Raspberry Pi

Project description

pi_awning_webthing

A web based patio awning control on Raspberry Pi.

Currently supported are TB6612FNG powered motors as DGO-3512ADA. The specific motor configuration(s) are defined using a configuration file as 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 motors with TB6612FNG, the file name must contain the term tb6612fng, e.g. tb6612fng_motors.config. Concerning the hardware setup and wiring please read Example Hardware Setup.

To install this software, you can use the Docker or PIP package manager 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 installation, you can start the Webthing http endpoint in your Python code or from the command line by typing

sudo awning --command listen--port 9500 --filename /etc/awning/tb6612fng_motors.config

This binds the Webthing API to the local port 9500.

As an alternative to the list command, you can also use the register command to register and start the webthing service as a systemd entity. This will automatically start the webthing service at boot time. Starting the server manually with the listen command is no longer necessary.

sudo awning --command register --port 9500 --filename /etc/awning/tb6612fng_motors.config 

The awning service provides an http webthing endpoint that supports 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"
    },
    ...
 ]
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pi_awning_webthing-3.19.tar.gz (10.7 kB view details)

Uploaded Source

Built Distribution

pi_awning_webthing-3.19-py3-none-any.whl (15.3 kB view details)

Uploaded Python 3

File details

Details for the file pi_awning_webthing-3.19.tar.gz.

File metadata

  • Download URL: pi_awning_webthing-3.19.tar.gz
  • Upload date:
  • Size: 10.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.9.19

File hashes

Hashes for pi_awning_webthing-3.19.tar.gz
Algorithm Hash digest
SHA256 72b7b2940d947bde83da4b631f17614c8cbb807cd2a76db3f826cc1f4ca467dd
MD5 eb0908997442982040c4169ebd2f8c65
BLAKE2b-256 46358646842765876340854648f3a5143d661a395de601ebb81b455c779a5ed8

See more details on using hashes here.

File details

Details for the file pi_awning_webthing-3.19-py3-none-any.whl.

File metadata

File hashes

Hashes for pi_awning_webthing-3.19-py3-none-any.whl
Algorithm Hash digest
SHA256 102a3599cdc198ef5f0c3a29757739c21a1dfb49a9fa41bf9adce276a4fa3ceb
MD5 f505933284c20a7ff5a2d10b0f2d7df2
BLAKE2b-256 6620ed0a7dace6b5c8d4bc9b6b83da4b4551c11535217591eed494eeb950687e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page