meteodata е агрегатор за данни от метеостанции, който събира избрани показатели в реално време и предоставя интерфейс за заявка на обощени стойности.
Основните компоненти са
- MQTT клиент, който се свързва към същия брокер (сървър) както и метеостанцията
- SQLite база данни, в която се записват показателите и отговаря за обобщаването
- Koa app сървър, който приема HTTP заявки и връща отговор в JSON формат
В най-добрия случай инсталацията ще е в локално git repository, свързано към GitHub за по-лесни ъпдейти
$ git clone https://github.com/supernes/meteodata meteodata
За обновяване на файловете при нова версия
[meteodata]$ git pull
Минималната нужна версия на Node.js e v16, препоръчителната - v18. Съвместима версия може най-лесно да се инсталира с nvm
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
$ nvm install v16 # или v18
$ nvm use v16
След инсталация или ъпдейт е добре да се обновят и необходимите допълнителни пакети:
[meteodata]$ npm install
Всички настройки се намират във файла config.json
в основната папка на repository-то. Някои съществено важни полета не са попълнени по подразбиране (username, password и други). Промени в настройките се отразяват след рестарт на приложението, ако има вървящ процес.
Подробно описание на настройките
host |
Име или IP адрес на MQTT брокера |
port |
Порт на WebSocket интерфейса |
secure |
Дали връзката да използва TLS |
endpoint |
"mqtt" или според конфигурацията на брокера |
username |
Потребител за автентикация |
password |
Парола на потребителя |
topic |
MQTT ключ, където метеостанцията публикува данни |
path |
Име на файл, в който се съхранява SQLite базата данни |
filter_fields |
Списък с ключове, които съдържат валидни данни от метеостанцията |
port |
HTTP порт, на който се получават заявки |
level |
Минимално ниво на докладване на грешки или съобщения |
[meteodata]$ node run serve
или
[meteodata]$ NODE_ENV=production node src/main.js