Интеграция с метеостанцией Netatmo

Локального интерфейса у Netatmo нет, забирать данные можно только через API с облака.

  1. Устанавливаем python-модуль netatmo:
    pip3 install netatmo

  2. Если версия python ниже 3.6 (а в случае с WB это так), надо в файле /usr/local/lib/python3.5/dist-packages/netatmo/netatmo.py исправить следующее:
    data = json.loads(response.data)
    заменить на
    data = json.loads(response.data.decode('utf-8'))
    И экспортировать переменную:
    export PYTHONIOENCODING=utf-8
    echo "export PYTHONIOENCODING=utf-8" >> /mnt/data/root/.bashrc

  3. Задать конфиг для доступа к API:
    netatmo config -u user@mail -p password -i client_id -s client_secret -d 70:ee:50:xx:xx:xx
    user@mail и password - реквизиты обычной учетки на сайте netatmo;
    client_id и client_secret - реквизиты доступа к API “для разработчика”, можно получить в личном кабинете;
    70:ee:50:xx:xx:xx - MAC-адрес (он же серийник) метеостанции.

  4. Проверить, что все работает:
    netatmo test
    должно быть OK
    netatmo list
    должна отобразиться станция со всеми доп.модулями
    netatmo dump
    дамп показаний со всех модулей.

  5. Скрипт для движка правил ниже. Скрипт запускает netatmo dump и парсит его вывод по переменным. Названия доп. модулей могут отличаться, нужно править под свою станцию. Обновляет показания каждые 2 минуты. Чаще ставить не стоит, т.к. в API есть лимит на кол-во запросов в час.
    Также я подправил /usr/local/lib/python3.5/dist-packages/netatmo/netatmo.py - выкинул оттуда все лишнее, чтобы не запрашивалась история показаний и скрипт выполнялся быстрее. Мой вариант netatmo.py тоже приложил.

netatmo.json (9.0 КБ) netatmo.py.txt (24.2 КБ)

2 Likes

Это вот такая? https://market.yandex.ru/product--meteostantsiia-netatmo-urban-weather-station/10963265

Да. Плюс несколько дополнительных модулей.

Кстати, вопрос к инженерам WB. У меня есть парочка запасных модулей 433 МГц для WB6 - насколько реально переделать его на частоту 868 МГц? Хотелось бы поковырять радио-протокол netatmo, чтобы отвязаться от облака и снимать показания напрямую.

Там фильтры отличаются от версии к версии. Я думаю можно начать с того, что просто программно поставить 868МГц и поднести антенну очень-очень близко к метеостанции. Может сработать.

А где это программно устанавливается?

Ну собственно в одном из регистров RFM69