OneMeter pozwala w łatwy i nieinwazyjny sposób monitorować energię pobieraną z oraz oddawaną do sieci. Rozwiązanie jest na tyle proste i uniwersalne, że sprawdzi się zarówno w domu, jak i w małej firmie czy zakładzie przemysłowym. Korzystając z API OneMeter możesz pobierać wszystkie zbierane dane o energii do swojej instalacji openHAB. W tym artykule pokażemy, jak w prosty sposób przeprowadzić integrację. Zaczynajmy!
Co trzeba zrobić?
- Pobieramy ID urządzenia oraz klucz API
- Instalujemy odpowiednie dodatki w openHab
- HTTP Binding
- JSONPath Transformation
- Map Transformation
- Konfiguracja
- HTTP Binding
- Item
- SiteMap
1. Pobieramy ID urządzenia oraz klucz API
- <DEVICE_ID> znajdziemy na dole strony podglądu naszego urządzenia OneMeter na platformie OneMeter Cloud (wiersz UUID w tabeli Szczegóły urządzenia).
- <API_KEY> znajdziemy na stronie https://cloud.onemeter.com/#/api. Jeżeli nie masz dostępu do tej zakładki, poproś nas o nadanie dostępu do API poprzez wiadomość wysłaną przez formularz kontaktowy.
Poniżej przykład adresu, który wykorzystamy do pobrania odpowiednich wartości z OneMeter Cloud: https://cloud.onemeter.com/api/devices/<DEVICE_ID>?key=<API_KEY>
Pamiętaj, aby usunąć symbole
<
&>
!
Żeby sprawdzić, czy zapisany przez nas link nie zawiera błędów, , wklejamy go do przeglądarki. Jeżeli udało nam się wykonać ten krok poprawnie, powinniśmy otrzymać wynik podobny do tego:
2. Instalujemy odpowiednie dodatki w openHab
HTTP Binding
Za pomocą Paper UI instalujemy HTTP Binding: Add-ons > BINDINGS > HTTP Binding > INSTALL
JSONPath oraz Map Transformation
Za pomocą Paper UI instalujemy JSONPath oraz Map Transformation: Add-ons > TRANSFORMATIONS > JSONPath Transformation/ Map Transformation > INSTALL
Konfiguracja
Tworzymy (bądź modyfikujemy, jeżeli już istnieją) pliki z zawartością taką, jak przedstawiono poniżej:
/etc/openhab2/services/http.cfg
onemeter.url=https://cloud.onemeter.com/api/devices/<DEVICE_ID>{Authorization=<API_KEY>}
onemeter.updateInterval=900000
Pamiętaj, aby usunąć symbole
<
&>
!
/etc/openhab2/items/onemeter.items
Number onemeter_kwh "OneMeter kWh [%f]" <kwh> { http="<[onemeter:900000:JSONPATH($.lastReading.OBIS['15_8_0'])]" }
Number onemeter_voltage "OneMeter Battery Voltage [%f]" <voltage> { http="<[onemeter:900000:JSONPATH($.lastReading.OBIS['S_1_1_2'])]" }
DateTime onemeter_timestamp "OneMeter Last Readout [%t]" <timestamp> { http="<[onemeter:900000:JSONPATH($.lastReading.OBIS['S_1_1_4'])]" }
Number onemeter_this_month "OneMeter Current Consumption [%f]" <this_month> { http="<[onemeter:900000:JSONPATH($.usage['thisMonth'])]" }
Number onemeter_previous_month "OneMeter Previous Consumption [%f]" <previous_month> { http="<[onemeter:900000:JSONPATH($.usage['previousMonth'])]" }
String onemeter_firmware "OneMeter Firmware Version [%s]" <firmware> { http="<[onemeter:900000:JSONPATH($.firmware.['currentVersion'])]" }
/etc/openahb2/transform/onemeter.sitemap
sitemap onemeter label="OneMeter" {
Frame label="OneMeter" {
Text item=onemeter_kwh
Text item=onemeter_voltage
Text item=onemeter_timestamp
Text item=onemeter_this_month
Text item=onemeter_previous_month
Text item=onemeter_firmware
}
}
To wszystko! Jeżeli dotarłeś aż tutaj, udało Ci się zintegrować OneMeter z openHAB.
W przypadku problemów, pytań lub sugestii skontaktuj się z nami przez formularz kontaktowy - chętnie pomożemy!