用于 Netatmo 气象站的 Python3 API
项目描述
netatmo.py
用于从 Netatmo 连接的气象站检索数据的 Python 3 API 。
该库实现了身份验证、令牌刷新以及气象站方法Getstationdata和Getmeasure。
尽管 Netatmo 提供了用 Python 编写的示例,但这个库提供了——我希望如此!- 更高级的方法来访问数据。
安装
安装库的最简单方法是使用pip:
pip3 install netatmo
您还可以下载或克隆 GitHub 存储库并安装模块:
cd /path/to/repo
python3 setup.py install
最后,您可以获得netatmo.py源文件并在您的项目中使用它。
要求
- Python 3(对不起,如果你生活在legacy中)
- requests模块(应该包含在任何体面的 Python 发行版中)
- 具有至少一个气象站的有效 Netatmo 帐户
- 来自 Netatmo 开发者程序的 client_id / client_secret 对(请参阅创建您的应用程序)
命令行使用
帮助
netatmo -h
netatmo <command> -h
where<command>可以是以下关键字之一:config, fetch, list, test, dump.
证书
该库从 .rc 文件中读取用户名/密码和客户端 ID/秘密。默认情况下,它是 ~/.netatmorc。它可以手动编辑,也可以由库用config命令编写。
netatmo config -u user@mail -p password -i client_id -s client_secret -d 70:ee:50:xx:xx:xx
没有任何选项,config只打印当前配置。
$ netatmo config
Read config
username: user@mail
password: password
client_id: 1234567890abcdef12345678
client_secret: ABCdefg123456hijklmn7890pqrs
default_station: 70:ee:50:xx:xx:xx
显示授权电台
netatmo list
将数据提取到 CSV 文件中
netatmo fetch
此命令将写入两个 CSV 文件,netatmo_station.csv并且netatmo_module.csv. 根据最后的时间戳,最新的措施会附加到这些文件中。
其他命令和选项
test测试连接。成功时,退出代码为零。失败时,非零,就像任何 shell 命令一样。
dump显示来自气象站的更多数据。
每个选项都会-v增加详细程度。该选项-c可用于使用备用配置文件。
两者-v和-c都必须放在命令之前。
用作 Python 模块
#! /usr/bin/env python3
import netatmo
# fetch data using ~/.netatmorc credentials
netatmo.fetch()
# credentials as parameters
ws = netatmo.WeatherStation( {
'client_id': '1234567890abcdef12345678',
'client_secret': 'ABCdefg123456hijklmn7890pqrs',
'username': 'user@mail',
'password': 'password',
'device': '70:ee:50:XX:XX:XX' } )
ws.get_data()
print(ws.devices)
许可和保修
没有也没有。
它不是 Netatmo 的官方软件,也不受该公司的认可或支持。
这个库是作为个人作品编写的。随意改进或调整它以满足您自己的需求。
笔记
其他 Netatmo 设备
该库仅使用气象站及其内部模块进行了测试。我不知道它是否适用于风量计或雨量计。其他设备不受支持,但可以轻松添加它们的方法。请参阅Netatmo Connect API。
在 Synology NAS 上安装
Synology 提供了一个缺少requests模块的 Python 3 软件包。这是一个简单的下载方法,无需 git、pip 或 setup.py:
curl -sL https://api.github.com/repos/kennethreitz/requests/tarball/v2.20.0 | tar -xzf - --strip-components=1 --wildcards '*/requests'
或者,您可以使用Anaconda作为 Python3 发行版。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。