Zum Hauptinhalt springen

Power BI

Der Power BI Custom Connector der IoT-Plattform ermöglicht es einem Nutzer, schnell und einfach Daten direkt aus einem Konto auf der IoT-Plattform in Power BI Desktop zu übernehmen, für erweiterte Analysen. Die Erstellung von Berichten wie den unten gezeigten dauert nach etwas Übung nur wenige Minuten.

Figure 1: Utilization of assets over hour of day Figure 2: Asset tracking Figure 3: Energy consumption vs outdoor temperature Figure 4: Energy efficiency KPI measurements

Nach dem Export der Berichte in die Power BI Cloud und der Installation eines Power BI Enterprise Gateway mit Zugriff auf den Connector der IoT-Plattform können sie außerdem automatisch aktualisiert und geteilt werden. Die Verwendung der Power BI Cloud ist jedoch keine Voraussetzung - Power BI Desktop allein funktioniert gut.


1. Erste Schritte​

1.1 Installation​

Für die Installation benötigen Sie einen Windows-Computer (Power BI wird auf Mac oder Linux nicht unterstützt) und lokale Administratorrechte (oder eine IT-Richtlinie, die das Installieren der benötigten Komponenten durch Nutzer erlaubt).

  1. Laden Sie Power BI Desktop von Microsoft herunter und installieren Sie es: https://docs.microsoft.com/en-us/power-bi/fundamentals/desktop-get-the-desktop

  2. Laden Sie die zip-Datei des Power BI Custom Connector der IoT-Plattform aus den Docs / Power BI der Plattform herunter (oder wo auch immer Ihre IT es vorgibt) und entpacken Sie die beiden Dateien: YggioConnector.pqx und Yggio_regkey.reg.

    1. Legen Sie YggioConnector.pqx in diesem Ordner ab (erstellen Sie ihn, falls er nicht existiert - verwenden Sie exakt diese Schreibweise): [Documents] > Power BI Desktop > Custom Connectors (auf englischem Windows: C:\Users\<you>\Documents\Power BI Desktop\Custom Connectors)

    2. Doppelklicken Sie auf Yggio_regkey.reg und akzeptieren Sie, dass er den Computer verändert. Dies installiert den Zertifikats-Fingerabdruck von Sensative in der Registry und lässt Power BI den Connector verwenden, ohne die Sicherheitseinstellungen von Power BI zu ändern.

      Wenn der Fingerabdruck nicht installiert ist, wird Power BI sich beschweren, dass es den Connector der IoT-Plattform nicht validieren kann. Um ihn trotzdem zu verwenden, senken Sie die Sicherheitseinstellung über File → Options and Settings → Global → Security → Data Extensions → (Not recommended) Allow any extension to load without validation or warning.

  3. Power BI Desktop neu starten. Um zu bestätigen, dass die Installation funktioniert hat, öffnen Sie Get Data → More… und suchen Sie nach Yggio - der Connector sollte erscheinen.

1.2 Einschränkungen​

Dieses Dokument behandelt die Funktionalität des Power BI Custom Connector der IoT-Plattform. Es beschreibt nicht (außer ein paar Hinweisen) die allgemeine Power-BI-Nutzung, die unter https://docs.microsoft.com/en-us/power-bi/ dokumentiert ist.


Schnellstart: Ihr erstes Diagramm​

Sobald der Connector installiert ist, ist dies der kürzeste Weg zu einem funktionierenden Diagramm:

  1. Get Data → More… → Yggio → Connect.
  2. Geben Sie die URL Ihres Servers der IoT-Plattform ein und melden Sie sich an (Benutzername + Passwort, oder ein API- Key-Token).
  3. Wählen Sie die Chart-Abfrage, wählen Sie bis zu 8 Geräte und bis zu 4 Messgrößen (z. B. temperature) aus, und klicken Sie auf Apply zur Vorschau.
  4. Legen Sie die drei Parameter fest, die entscheiden, was Sie bekommen: Zeitraum (z. B. letzte 7 Tage), Auflösung (z. B. jede Stunde), und Wertfunktion (z. B. mean).
  5. Aktivieren Sie die Abfrage und klicken Sie auf Load.
  6. Ändern Sie in der Berichtsansicht den Typ der Zeitspalte von datetime auf time (siehe der Tipp unten) - das ist die häufigste Sache, die übersehen wird.
  7. Fügen Sie ein Line chart hinzu, ziehen Sie die Zeitspalte auf die Achse und Ihre Messgröße auf Values. Fertig.

Alles Weitere unten erklärt jeden dieser Schritte und die fortgeschritteneren Optionen im Detail.


2. Überblick über die Funktionalität​

2.1 Grundlagen - drei Wege zur Verbindung​

Der Connector bietet drei Wege, sich mit der IoT-Plattform zu verbinden und Daten zu extrahieren, jeweils mit einer anderen Balance zwischen Benutzerfreundlichkeit und der Menge an Daten, die Sie abrufen können:

  1. Navigator - Get Data → nach „Yggio“ suchen → mit einem Server verbinden. Der am stärksten geführte, einfachste Weg zum Einstieg. Zeitreihendiagramme sind auf 8 Nodes × 4 Zeitreihenfelder begrenzt, ausgewählt aus einer vordefinierten Liste oder manuell eingegeben. Funktioniert gut für die meisten Anwendungsfälle.
  2. Formelleiste (geführt) - Get Data → Blank query → =Yggio eingeben und eine Funktion aus dem Dropdown wählen. Öffnet eine 2–3-Schritt-Anleitung, die einige Navigator- Grenzen aufhebt. Bei Diagrammen kommen die ersten 3 Zeitreihenfelder von den ausgewählten Nodes und das 4. aus der vordefinierten Liste.
  3. Freie Abfrage in der Formelleiste - Get Data → Blank query → =Yggio eingeben und die vollständige Abfrage selbst schreiben. Mit Listen können Sie über 8 Nodes × 4 Felder hinausgehen - alle Beschränkungen werden aufgehoben. Sie müssen die Abfragesyntax, Node- Namen, Optionen und Feldnamen kennen (alles inline in Power BI dokumentiert). Verwenden Sie dies, um (a) Zeitreihen von mehr als 8 Nodes abzurufen, oder (b) PowerQuery- M-Sprache für komplexe Datensätze zu nutzen.

Ein guter Weg, die Syntax für freie Abfragen zu lernen, ist es, zunächst eine Abfrage mit dem Navigator oder der geführten Formelleiste zu erstellen und dann die resultierende Abfrage zu bearbeiten.

Figure 5: Query modified directly in the Formula bar

Für sehr fortgeschrittene Nutzer können die Abfragen der IoT-Plattform aus dem erweiterten Editor von Power BI (PowerQuery) verwendet werden, um komplexe Abfragen zu erstellen, die Daten aus verschiedenen Quellen aggregieren.

2.2 Funktionen (Connector-Funktionen)​

Figure 6: Available features

Wählen Sie eine Funktion nach Ziel:

Ich möchte…Verwenden
Messgrößen über die Zeit darstellenYggio.Chart
Eine Energieeffizienz-KPI für ein Gebäude erstellenYggio.ChartEnergy
Sehen, welche Messgrößen ein Gerät hatYggio.ChartFields
Aktuelle Werte mehrerer Geräte vergleichenYggio.IotNode (Spalten) oder Yggio.IotNodes (Zeilen)
Geräte auflisten und wann sie zuletzt gemeldet habenYggio.Overview
Sehen, welche Übersetzer (Decoder) existierenDevice Models

Vollständige Liste:

FunktionLiefert
Yggio.ChartEinen Würfel allgemeiner Zeitreihendaten (X Nodes × Y Felder × Z Zeit). Optionale zusätzliche statistische Spalten und Wertfunktionen (mean, max, min, first, last, count, sum, difference) zur schnellen Erstellung fortgeschrittener Diagramme und Berichte (z. B. Abrechnungsberichte).
Yggio.ChartEnergyZeitreihendaten für die Energieeffizienz-KPI eines Gebäudes, basierend auf Energieverbrauch, Außentemperatur, durchschnittlicher Innentemperatur und Gebäudefläche.
Yggio.ChartFieldsDie verfügbaren Zeitreihenfelder für die ausgewählten Nodes.
Device ModelsDie verfügbaren Gerätedecoder - „Übersetzer“ in der Terminologie der IoT-Plattform (sie normalisieren üblicherweise auch das Datenformat auf den FIWARE-Standard, nicht nur Decodierung).
Yggio.IotNodeAktuelle Daten für mehrere IoT-Nodes, in Spalten formatiert, um sie leicht vergleichbar zu machen.
Yggio.IotNodesAktuelle Daten für mehrere IoT-Nodes, in Zeilen formatiert, um die Sichtbarkeit verfügbarer Daten zu erhöhen.
Yggio.MainÖffnet das Navigator-Hauptmenü im Tabellenformat. Wird normalerweise nicht aus der Formelleiste verwendet.
Yggio.OverviewEin Überblick über die Geräte in einem Konto und wann sie zuletzt gemeldet haben.

Figure 7: Data set loaded by the Yggio Chart query

Feldnamen folgen dem kanonischen Datenmodell der IoT-Plattform (Übersetzer normalisieren Herstellerdaten auf ein FIWARE-orientiertes Modell), sodass dasselbe Feld über jedes Gerät hinweg dasselbe bedeutet - siehe die Feldtabelle in der Entwickler-Referenz Translator API.

2.3 Verbindung zur IoT-Plattform​

Nachdem Sie „Get Data“ gewählt haben (oder eine Abfrage für die IoT-Plattform aus der Formelleiste gestartet haben), wählen Sie den Yggio-Connector und geben Sie dann die URL des gewünschten Servers der IoT-Plattform ein.

Geben Sie anschließend Zugangsdaten zum Anmelden ein - entweder Ihren Benutzernamen und Passwort, oder ein API-Key-Token. Diese werden in der Zugangsdatenliste von Power BI gespeichert und beim nächsten Verbinden mit demselben Server wiederverwendet. Die API-Keys der IoT-Plattform laufen nach einer Weile ab, also aktualisieren Sie sie regelmäßig. Um sich bei einem anderen Konto anzumelden, löschen Sie die gespeicherten Zugangsdaten des Servers über File → Options & Settings → Data source settings.

Verwenden Sie ein API-Key-Token auf gemeinsam genutzten oder Berichts-Rechnern, damit kein persönliches Passwort gespeichert wird (denken Sie daran, dass es abläuft); Benutzername/Passwort ist praktisch auf Ihrem eigenen Rechner.

Um das Wechseln zwischen Servern und Konten zu erleichtern, verwendet der Connector eine Liste vordefinierter Server-Kurznamen plus ein benutzerdefiniertes Tag. Zum Beispiel wird BY zu https://beta.yggio.net aufgelöst, und BY+demo speichert Zugangsdaten unter dem Datenquellenpfad BY+demo - sodass BY+test als anderer Pfad verwendet werden kann, um sich bei einem anderen Konto auf demselben Server anzumelden. Einige Referenz-Kurznamen:

Der Kurzname plus Tags erlauben es einer Datenanalystin / einem Berichtsprofi, die/der mehrere Konten auf einem Server verwaltet, schnell zwischen ihnen zu wechseln. Wenn Sie einen Fehler erhalten, wenn Power BI versucht, Daten abzurufen, konnte die eingegebene Server-URL nicht gefunden werden - geben Sie eine gültige Server-URL oder einen Kurznamen ein.

Figure 8: Yggio server not found

2.4 Benutzerfreundlichkeit​

Der Connector ist bei der Syntax nachsichtig: Er versucht zu interpretieren, was Sie wollen. Exakte Namen sind nicht erforderlich - z. B. ruft Temp das erste Zeitreihenfeld ab, das (kleingeschrieben) mit temp beginnt; ein Zeitraum 2 m ruft die letzten zwei Monate ab. Innerhalb von Power BI sind die vollständige Syntax und die Optionen ausführlich dokumentiert, sodass auch das Schreiben von Abfragen für die IoT-Plattform im erweiterten Editor relativ einfach ist.

Figure 9: Yggio Chart query documentation inside Power BI

2.5 Mehrsprachigkeit​

Der Connector ist mehrsprachig und folgt der Sprache der Power-BI-Installation. Er unterstützt derzeit Englisch und Schwedisch.


3. Den Connector zur Datenextraktion verwenden​

3.1 Navigator-Oberfläche und Parameter​

Klicken Sie in Power BI auf Get Data und suchen Sie nach Yggio.

Figure 10: Get Data from Yggio

Geben Sie nach Connect Ihre Zugangsdaten in der Navigator-Oberfläche des Connectors ein, wählen Sie die gewünschte Abfrage und folgen Sie den Optionen.

Figure 11: The Yggio connector&#39;s Navigator UI

Standardmäßig füllt sich das Vorschaufenster (unten rechts) nach dem Klicken auf Apply mit verfügbaren IoT-Nodes und Zeitreihenfeldern - sehr hilfreich, um zu bestätigen, dass Sie die richtigen Daten haben, bevor Sie sie in Power BI laden.

Figure 12: IoT nodes selected, then &quot;Apply&quot; to see available time-series fields

Die Chart-Abfrage hat wichtige optionale Parameter:

  • Time period - der zu extrahierende Datenbereich.
  • Resolution - die Datenauflösung. Die IoT-Plattform liefert höchstens 1000 Datenpunkte pro Zeitreihenfeld.
    • Every hour / day / week / month / quarter - ein Datenpunkt pro Bucket.
    • Full resolution - jeder Datenpunkt (die 1000-Punkte-Grenze begrenzt lange Bereiche bei hochfrequenten Geräten).
    • High resolution - sobald ein Mindestabstand zwischen Punkten überschritten ist, wird versucht, die maximalen 1000 Punkte für den Zeitraum abzurufen.
    • Low resolution - wie high, aber mit einem größeren Mindestabstand zwischen Punkten.
  • Enable calculation of utilization via extra date columns - fügt Spalten hinzu, die Daten nach Tagesstunde, Wochentag, Kalenderwoche usw. gruppieren, was gruppierte Berichte stark vereinfacht.
  • Value function - die pro Auflösungs-Bucket angewendete Berechnung: mean, min, max, first, last, count, sum, difference. Zum Beispiel liefert Resolution = every day mit Value function = max das Tagesmaximum; difference auf einem kumulativen Zähler liefert den Verbrauch pro Tag.

Figure 13: Available optional parameters in the Chart query

Tipp für Abrechnungs-/IMD-Berichte (Individuelle Mess- und Abrechnungserfassung): Zeitraum letzte 3 Monate, Resolution every day, Extra date columns true, Value function difference - summieren Sie dann die Delta-Werte pro Monat mit den Standard-Transform- und Berichtsfunktionen von Power BI.

Chart Energy Efficiency​

Die fortgeschrittenste Funktion, Yggio.ChartEnergy, berechnet eine Energieeffizienz- KPI:

Verwendete Energie pro Zeiteinheit ÷ (Fläche × (1 + |durchschn. Innen- − Außentemp.|))

Sie liefern die Eingaben, die die KPI benötigt: die Energiereihe (Verbrauch), die Außentemperaturreihe, die (gemittelte) Innentemperaturreihe und die Gebäudefläche. Der Connector liefert die KPI als Zeitreihe zurück, die Sie grafisch darstellen können.

Dies ist dieselbe Berechnung wie der Übersetzer analytics-building-energy-efficiency. Verwenden Sie Yggio.ChartEnergy, um die KPI direkt in Power BI zu berechnen; verwenden Sie stattdessen den Übersetzer, wenn Sie sie innerhalb der Plattform berechnet und auf dem Gerät gespeichert haben möchten (sodass sie für Alarme, Dashboards und andere Werkzeuge verfügbar ist).

Figure 14: Calculate a building&#39;s energy efficiency from a few parameters Figure 15: Energy efficiency (dark blue) for a building grouped per week over a year

Wenn Sie das Gebäude verbessern (neue Fenster, effizientere Heizung usw.), sollten die Energieeffizienz-KPI-Balken niedriger werden.

Figure 16: Available predefined time-series fields, grouped by use case; Chart query ready to load

Markieren Sie das Kontrollkästchen neben einer Abfrage und klicken Sie auf Load, um die Daten in Power BI für Analyse und Berichte zu laden.

3.2 Die Formelleiste​

Öffnen Sie die Formelleiste über den kleinen Pfeil nach unten unter Get Data → Blank query. Ein Power-Query-Editor öffnet sich mit dem Cursor in der Formelleiste. Geben Sie =Yggio ein, um das Dropdown der Abfragen zu sehen; wählen Sie eine aus und drücken Sie Enter, um ihre Oberfläche, Dokumentation und vollständige Syntax anzuzeigen. Die Abfragen unterscheiden sich in Syntax und erforderlichen Parametern, teilen aber denselben Stil, sodass sie schnell vertraut werden. (Yggio.Main ist die Navigator-Spezifikation - kein Zweck aus der Formelleiste.)

Der erste Parameter in jeder Abfrage ist der Server der IoT-Plattform; Sie können weitere Parameter im ersten Schritt eingeben, aber es ist immer in Ordnung, nur den Server plus Zugangsdaten-Tag einzugeben und auf Invoke zu klicken.

Figure 17: Enter the Yggio server with or without a credential tag, e.g. &quot;BY+mydemo&quot; Figure 18: Command to list available device-model decoders (translators)

Nach Invoke und Zugangsdaten meldet sich Power BI an und zeigt eine Oberfläche, um die restlichen Parameter zu füllen, wobei alle verfügbaren Nodes in den Dropdowns vorbelegt sind.

Figure 19: UI to retrieve one or several IoT nodes for comparison Figure 20: Step 2 - select which IoT nodes to compare

In Schritt 2 (abhängig von der Abfrage) können Sie wählen, verschachtelte JSON- Strukturen wie die Rohdaten und die Context Map (Metadaten) zu erweitern. Klicken Sie erneut auf Invoke, um die Daten in den Power-Query-Editor zu laden, wo Sie sie vor Close & Apply transformieren können.

Figure 21: The resulting data set loaded into the Power Query editor

Der Vorteil der Formelleiste gegenüber dem Navigator ist, dass bei Yggio.Chart / Yggio.ChartEnergy die verfügbaren Zeitreihenfelder pro Node-Name für die ersten 3 von 8 Nodes vorbelegt werden (das 4. Feld bleibt die vordefinierte Liste für die letzten 5 Nodes).

Figure 22: Available time-series fields per node pre-populated after Invoke

3.3 Die vollständige Abfrage direkt in der Formelleiste eingeben​

Neben der Automatisierung aus PowerQuery ist der Hauptgrund, die vollständige Abfrage direkt zu schreiben, die Node-/Feldanzahl-Grenzen zu vermeiden. Die Node-Namen- und Feldnamen- Parameter akzeptieren Listen - {"par1", "par2", "par3", ...} - sodass Sie über die Oberflächengrenzen hinausgehen können. Power BI bietet Syntaxhilfe beim Schreiben der Parameter.

Figure 23: Full query written directly (9 time-series fields - not possible via the UI) Figure 24: Result of the full query above (the forgiving connector still returns data despite a typo)


4. Power BI-Tipps und Beispielberichte​

Sobald ein Datensatz abgerufen wurde, klicken Sie im Power-Query-Editor auf Close & Apply, um ihn zu laden, und wechseln Sie dann zum Berichtseditor (Diagrammsymbol oben links).

Figure 25: Start the report editor by clicking the graph icon (top left)

Der wichtigste erste Schritt: Ändern Sie den Typ der Datums-/Zeitspalte von datetime auf time. Andernfalls gruppiert Power BI alle Daten und die meisten Diagramm- Widgets funktionieren nicht wie erwartet.

Figure 26: Change the data type of the datetime column

Tipp - Daten vor dem Laden formen. Wählen Sie Transform Data (statt Load), um zuerst Power Query zu öffnen, wo Sie den Typ der Zeitspalte festlegen, Felder umbenennen und Zeilen filtern, dann Close & Apply. Load bringt die Daten nur mit den Standardwerten des Connectors ein - Sie können sie danach noch anpassen.

Tipp - Gruppierung über die Zeit. Für Berichte, die nach Stunde / Tag / Woche / Monat gruppieren, aktivieren Sie die Option extra date columns der Chart-Abfrage (Abschnitt 3.1); sie fügt fertige Gruppierungsspalten hinzu, sodass Sie die Datumslogik nicht selbst in Power BI bauen müssen.

Beginnen Sie dann mit einfachen Widgets - Line chart, Column chart, Pie chart - und experimentieren Sie, indem Sie Zeit- und Datenfelder auf ihre Felder ziehen. Jedes Widget lässt Sie üblicherweise wählen, wie Werte innerhalb derselben Gruppe kombiniert werden (sum, average usw.), abhängig davon, was Sie visualisieren möchten.

Figure 27: How to make an energy-efficiency KPI graph Figure 28: Compare indoor / avg-indoor / outdoor temps using Yggio.ChartEnergy Figure 29: IoT-node status overview report with Yggio.IotNodes Figure 30: Distribution of assets by day of year / hour of day Figure 31: Distribution of Strips Presence assets (occupancy on/off - use &quot;Summary&quot;, not delta) Figure 32: GPS heat maps with the 3rd-party MapBox widget; other widgets support asset movement tracking


Aktualisieren und Teilen​

  • Power BI Desktop aktualisiert auf Anfrage - klicken Sie auf Refresh, oder rufen Sie die Abfrage erneut auf.

  • Geplante Aktualisierung und Freigabe (Veröffentlichung im Power BI Service) erfordern ein On-Premises-Datengateway im Standard-Modus (Enterprise) - das persönliche Gateway unterstützt keine benutzerdefinierten Connectors. Richten Sie es einmalig ein:

    1. Installieren Sie auf dem Gateway-Rechner den Connector genauso wie auf dem Desktop - legen Sie YggioConnector.pqx in den Ordner Custom Connectors dieses Rechners und führen Sie Yggio_regkey.reg aus.
    2. Erlauben Sie benutzerdefinierte Datenconnectors in der Gateway-Konfiguration.
    3. Speichern Sie die Zugangsdaten der IoT-Plattform (Benutzername/Passwort oder API-Key) in der Datenquelle des Gateways.

    Die Verwendung der Power BI Cloud ist optional - Power BI Desktop allein funktioniert gut.


Downloads​