W pierwszej części artykułu przedstawiłem w jaki sposób pobrać najbardziej aktualne parametry z sieci elektrycznej za pomocą MS Excel, a następnie wyświetlić je w Power BI. Serwer Supla umożliwia jednak trochę więcej. Możemy również pobrać historię naszego zużycia z urządzenia MEW-01 firmy ZAMEL.
Za pomocą zapytań REST API możemy pobrać do 5 000 ostatnich rekordów. W tej części wpisu chciałbym przedstawić w jaki sposób możemy to zrobić.
No to zaczynamy.
Pełna jawność. Jako pracownik firmy ZAMEL, opisuję w moim blogu produkty tej firmy. Chcę podkreślić, że jest to moja prywatna inicjatywa. Niektórzy mogą zobaczyć w tym wpisie promocję marki ZAMEL i mają do tego pełne prawo.
1. Uruchamiamy program MS Excel.
2. Logujemy się na nasze konto Supla: cloud.supla.org.
3. Po zalogowaniu się na nasze konto Supla przechodzimy do zakładki Integracje:
4. Następnie w zakładce Integracje wybieramy opcję Osobiste tokeny dostępowe i generujemy nasz token:
5. Generujemy osobisty token dostępowy z uprawnieniami do odczytu kanałów:
6. Po wybraniu opcji Generuj token powinien pojawić nasz kod, który zapisujemy w bezpiecznym miejscu:
7. W zakładce Dokumentacja API, możemy poznać polecenie do odczytu danych o zużyciu energii elektrycznej z naszego urządzenia MEW-01:
8. Przechodzimy do tej zakładki. Naszym oczom pojawi się pełna dokumentacja, gdzie możemy poznać pełną bibliotekę zapytań, które możemy skierować do serwera SUPLA. Na samym początku zachęcam przetestować nasz osobisty token dostępowy. W tym celu klikamy przycisk Authorize:
9. Wklejamy nasz token w pole BearerAuth (http, Bearer) i klikamy opcję Authorize:
10. Po poprawnym zalogowaniu zobaczymy okno, które możemy już zamknąć:
11. W bibliotece zapytań API, możemy przejść do polecenia:
GET/channels/{id}/measurement-logsGet measurement logs.
Jak widać będziemy potrzebować numer identyfikacyjny naszego urządzenia MEW-01. Pobierzemy go z zakładki Moja Supla przechodząc do szczegółów urządzenia MEW-01. U mnie jest to: 12792
Uzupełniamy dane zgodnie z rysunkiem poniżej. Na potrzeby testu wyciągamy tylko 1 wpis, którego ilość definiujemy w oknie limit. Klikamy na końcu przycisk Execute.
12. Po poprawnym wykonaniu zapytania powinniśmy otrzymać wynik:
13. Teraz czas na wykorzystanie tych danych w programie MS Excel. W tym będą nam potrzebne dane z okna. Polecam zapisać sobie je w notatniku:
14. W programie Excel przechodzimy do zakładki Dane i wybieramy opcję Z sieci Web. W tym oknie będą nas interesować zapytania Zaawansowane:
15. Wypełniamy dane wg schematu z wcześniej zapisanych informacji:
W miejscu części adresu URL ustawiłem limit na maksymalną wartość możliwą do pobrania czyli 5 000. Oznacza to, że pobierzemy 5 000 wpisów:
https://svr9.supla.org/api/v2.3.0/channels/12792/measurement-logs?limit=5000
W parametrach nagłówka żądania HTTP (opcjonalnie):
Accept application/json
Authorization Bearer NGU5OGI3MDkwNzk4NTlmMjY3YmRhZTE3NWM5NTBjMzQ0MmM3MjM3NDA4YjQ2YTQ0ZjVlNjAwY2YxMzA5NDcyOQ.aHR0cHM6Ly9zdnI5LnN1cGxhLm9yZw==
16. W kolejnym kroku możemy pobrać dane do Excel. Klikając OK. Powinniśmy teraz zobaczyć pobrane wszystkie rekordy w oknie Narzędzia do obsługi list:
17. Ok, w jaki sposób teraz pobrać te dane odpowiednio do naszego arkusza Excel? Spieszę z odpowiedzią. Prawym przyciskiem myszy wybieramy na liście rekordów opcję Do tabeli:
Następnie w kolejnym oknie wybieramy opcję OK:
Nasza lista została przekonwertowana na tabelę. Teraz wystarczy tylko rozwinąć kolumnę, aby zobaczyć wszystkie wyniki:



18. W kolejnym kroku zamienimy typ danych każdej z kolumn na liczbę dziesiętną i odpowiednio przerobimy naszą tabelę. Zastosowałem dla czasu prostą konwersję, pamiętaj, że nadal może być potrzebne dostosowanie czasu do stref czasowych. Dodam tu jeszcze kilka kolumn niestandardowych z zastosowaniem odpowiednich funkcji, tak aby dane były przyjazne w odczycie:




19. To było by na tyle. Już wiesz w jaki sposób pobrać historię pomiarów. Teraz może warto ją wykorzystać i przedstawić na ładnych wykresach? Przejdź do poradnika, w którym wyjaśniam, jak to zrobić:
MEW-01 – analiza historii pomiarów w Power BI z pliku Excel
Aktualizacja z dnia 29.03.2023: Podobną analizę możesz wykonać również dla urządzenia LEW-01. Wystarczy postępować w analogiczny sposób.
Pełna jawność. Jako pracownik firmy ZAMEL, opisuję w moim blogu produkty tej firmy. Chcę podkreślić, że jest to moja prywatna inicjatywa. Niektórzy mogą zobaczyć w tym wpisie promocję marki ZAMEL i mają do tego pełne prawo.
Drugie pytanie brzmi: pobieram dane, max jest 5000 wpisów, aktualnie mam poniżej 3000. Co się stanie po przekroczeniu 5000??? Czy power query będzie dopisywało nowe pozycje i dane będą rosły, czy stare dane będą nadpisywane nowymi i zawsze będzie ostatnich 5000?
Jak pamiętam pobierze tylko ostatnie 5000
Witam, dodanie kolumny z datą w takim formacie:
= Table.AddColumn(#”Zmieniono typ”, „Data i czas”, each ([Column1.date_timestamp]/86400+25569))
Sprawia że wyświetlany czas jest o godzinę cofnięty od obecnego, jak to poprawić?
Taki wpis dodaje równo 1 godzinę do aktualnie pobieranych danych:
= Table.AddColumn(#”Zmieniono typ”, „Data i czas”, each ([Column1.date_timestamp]/86400+25569)+0.04167)
Nie wiem tylko jak to się zachowa po powrocie do czasu letniego, bo chyba stąd wynika ten rozjazd w power query
Dzień dobry, czy można tak ustawić zapytanie aby po odświezeniu doczytywał kolejne rekory?
Witam. Dziękuję bardzo za podzielenie się przydatną wiedzą. Mam pytanie – czy jest możliwość podania zakresu dat dla którego pobrać dane przez API ?
Nie wydaje mi się ale to sprawdzę.
Udało się znaleźć. Przykładowe polecenie:
measurement-logs?order=ASC&limit=5000&afterTimestamp=1622625050
Witam, w opisie jest: „Dodam kilka kolumn niestandardowych z zastosowaniem odpowiednich funkcji, tak aby dane były przyjazne w odczycie” czy można prosić o rozszerzenie tego opisu? Chodzi mi o to jak uzyskać dokładnie taki sam układ tabeli.
Postaram się pomóc w wolnej chwili.