Package: patatmo
This package is unfortunately currently broken due to changes in the [authentication](https://dev.netatmo.com/apidocumentation/oauth#authorization-code). Apparently, a program accessing the API now needs human interaction to authenticate, which is not implemented (yet) inpatatmo. I don’t have time to do this, contributions welcome.patatmo Python packageThis package provides easy access to theNetatmoAPI.  It ispainlessas it completely and
intelligently hides the OAuth2 authentication from you.DisclaimerThis software to access theNetatmo Weather APIemerged as part of thesis and also out of private interest.
The author is not in any way affiliated with Netatmo (SAS).CapabilitiesCurrently, the weather API’s methodsGetpublicdata,GetstationsdataandGetmeasureare implemented.Example usageAn example of obtaining all public station’s data in the region of
Hamburg/Germany:From the command-lineThe smart way is to set up a configuration file~/.patatmo/settings.conf:[account]
username=user.email@internet.com
password=5uP3rP45sW0rD
client_id=03012823b3fd2e420fbf980b
client_secret=YXNkZmFzZGYgamFzamYgbGFzIGThen on the command-line:netatmo-getpublicdata\--lat_ne53.7499\--lat_sw53.3809\--lon_ne10.3471\--lon_sw9.7085As one-liner:netatmo-getpublicdata\--user"user.email@internet.com"\--password"5uP3rP45sW0rD"\--id"5uP3rP45sW0rD"\--secret"YXNkZmFzZGYgamFzamYgbGFzIG"\--lat_ne53.7499\--lat_sw53.3809\--lon_ne10.3471\--lon_sw9.7085With environment variables (which you could also set elsewhere,
e.g. in your.bashrc):exportNETATMO_USERNAME="user.email@internet.com"exportNETATMO_PASSWORD="5uP3rP45sW0rD"exportNETATMO_CLIENT_ID="03012823b3fd2e420fbf980b"exportNETATMO_CLIENT_SECRET="YXNkZmFzZGYgamFzamYgbGFzIG"netatmo-getpublicdata\--lat_ne53.7499\--lat_sw53.3809\--lon_ne10.3471\--lon_sw9.7085From PythonAn example of obtaining all public station’s data in the region of
Hamburg/Germany:importpatatmo# your netatmo connect developer credentialscredentials={"password":"5uP3rP45sW0rD","username":"user.email@internet.com","client_id":"03012823b3fd2e420fbf980b","client_secret":"YXNkZmFzZGYgamFzamYgbGFzIG"}# configure the authenticationauthentication=patatmo.api.authentication.Authentication(credentials=credentials,tmpfile="temp_auth.json")# providing a path to a tmpfile is optionally.# If you do so, the tokens are stored there for later reuse,# e.g. next time you invoke this script.# This saves time because no new tokens have to be requested.# New tokens are then only requested if the old ones expire.# create a api clientclient=patatmo.api.client.NetatmoClient(authentication)# lat/lon outline of Hamburg/Germanyhamburg_region={"lat_ne":53.7499,"lat_sw":53.3809,"lon_ne":10.3471,"lon_sw":9.7085,}# issue the API requesthamburg=client.Getpublicdata(region=hamburg_region)# convert the response to a pandas.DataFrameprint(hamburg.dataframe.to_csv()),index,altitude,humidity,id,latitude,longitude,pressure,temperature,time_humidity,time_pressure,time_temperature,timezone
0,0,30.0,67.0,70:ee:50:12:9a:b8,53.51695,10.15599,1015.4,22.5,2017-08-26 16:36:19,2017-08-26 16:36:36,2017-08-26 16:36:19,Europe/Berlin
1,1,23.0,65.0,70:ee:50:03:da:4c,53.523361337741,10.16719281615,1013.2,22.8,2017-08-26 16:35:33,2017-08-26 16:36:11,2017-08-26 16:35:33,Europe/Berlin
2,2,25.0,80.0,70:ee:50:02:95:92,53.517903,10.165769,1016.9,21.5,2017-08-26 16:38:17,2017-08-26 16:38:23,2017-08-26 16:38:17,Europe/Berlin
3,3,,,70:ee:50:17:bd:96,53.530789,10.127101,1010.1,,,2017-08-26 16:35:01,,Europe/Berlin
4,4,15.0,83.0,70:ee:50:03:bc:2c,53.530948,10.134062,1013.5,20.6,2017-08-26 16:35:07,2017-08-26 16:35:25,2017-08-26 16:35:07,Europe/Berlin
5,5,29.0,72.0,70:ee:50:03:72:28,53.545417580965,10.160120337925,1013.7,22.5,2017-08-26 16:42:05,2017-08-26 16:42:40,2017-08-26 16:42:05,Europe/Berlin
6,6,24.0,70.0,70:ee:50:14:42:1c,53.5698669,10.1554532,1011.4,23.2,2017-08-26 16:33:11,2017-08-26 16:33:55,2017-08-26 16:33:11,Europe/Berlin
7,7,31.0,69.0,70:ee:50:06:92:40,53.57426932987,10.161323698426,1013.7,22.3,2017-08-26 16:35:02,2017-08-26 16:35:30,2017-08-26 16:35:02,Europe/Berlin
8,8,26.0,68.0,70:ee:50:01:3c:f6,53.5811,10.1485,1016.2,23.2,2017-08-26 16:40:57,2017-08-26 16:41:21,2017-08-26 16:40:57,Europe/BerlinInstallThis package is onPyPi. To installpatatmo,
runpipinstall--userpatatmoDocumentationYou can find detailed documentation of this packagehere on on Gitlab.DevelopmentThe following might only be interesting for developersLocal installationInstall this module from the repository root viapip:# local user library under ~/.localpip3install--user.# in "editable" modepip3install--user-e.TestingTo be able to runalltests, you need to specify validcredentials and a
device and model idof your test station. You can do so either in the filetests/USER_DATA.json(e.g. copy the example filecp
tests/USER_DATA.json.example tests/USER_DATA.jsonand adjust it) or via the
environment variablesNETATMO_CLIENT_IDNETATMO_CLIENT_SECRETNETATMO_USERNAMENETATMO_PASSWORDNETATMO_DEVICE_IDNETATMO_MODULE_IDOtherwise, only the possible tests are run.Then:make testto run all tests directlymake testverboseto run all tests directly with verbose outputmakesetup-testto run all tests via the./setup.py testmechanismmake coverageto get a test coverageVersioningmakeincrease-patchto increase the patch version numbermakeincrease-minorto increase the minor version numbermakeincrease-majorto increase the major version number