Folgen

Wie lese ich Messwerte mit einer anderen Software (API)?

Um Daten mit einer externen Software aus einen SCH.E.I.D.L Energy Controller auszulesen gibt es eine einfach nutzbare Schnittstelle. Diese orientiert sich an den World Wide Web Standards und entspricht einer REST API. Sinnvoll ist so eine Schnittstelle z.B. für:

  • Datenexport
  • Energiemanagementsystemen 
  • Gebäudeleittechnik

Die Funktionen:

  • Verschlüsselter Zugriff vom internen Netzwerk oder als Fernzugriff von aussen nach Authorisierung mit UserID / Passwort
  • Lesen eines oder mehrere Datenpunkte
  • Lesen aktueller Messwerte vom Sensor
  • Lesen historischer Aufzeichnungen aus dem Logger
  • Datenformat ist eine Komma-abgetrennte-Datei (CSV) mit der Uhrzeit der Messung und den Messwerten

Folgendes ist dazu nötig:

  • Ein Netzwerk-Zugriff auf den SCH.E.I.D.L Energy Controller
  • Der Hostname oder die IP-Adresse des SCH.E.I.D.L Energy Controller
  • Ein neu angelegter Benutzername "api" mit dem Ihnen bekanntem Passwort
  • Eine Software die Komma getrennte Dateien (CSV) lesen kann, z.B. MS Excel oder ein Energiemanagementsystem
  • Der Zugriff sollte über das verschlüsselte https:// Protokoll erfolgen, so ist sichergestellt das auch das Password nicht aus dem Netzwerk gelesen werden kann

Die Einrichtung:

  1. Legen Sie im Controller einen neuen Benutzer mit dem Namen "api" an:
    Rechts oben Reiter "Profil" →
      Rechts Befehl "Benutzer verwalten" →
        Rechts Befehl "Benutzer anlegen" →
    Benutzername: api
    Passwort: <ein neues sicheres Passwort Ihrer Wahl>
    E-mail: <eine gültige E-Mail Adresse z.B. noreply@scheidl.de>
    Superuser: Nein
    Status: Aktiv
    Vorname: API
    Nachname: API
    → Klick auf "Anlegen"
  2. Test des Zugriffs mit Hilfe eines Browsers auf eine Adresse z.B.
    https://physiker-42.scheidl.de/index.php?r=api/getNewValuesPull&names=T1&pwd=xxxx
    → Anzeige der Messzeit und der Temperatur an T1 z.B. "1567110250,25.875"

Aufbau der Adresse:

  • Protokoll "https://"
  • Hostname Ihres SCH.E.I.D.L Energy Controllers
    Fernzugriff über die Internet-URL wie auf Ihrem Authentifizierungs-Bogen
    Interner Netzwerkzugriff über die LAN-URL oder IP wie auf Ihrem Authentifizierungs-Bogen
  • Pfad zu den Funktionen "/index.php?r=api/"
  • Funktion zum Lesen aktueller Messwerte "getNewValuesPull" und den Namen der Sensoren als Parameter "names=".
    Als Antwort wird der Zeitpunkt der Messung (in Sekunden seit 1.1.1970, Umrechnung hier) und pro Sensor ein aktueller Messwert getrennt mit Kommas zurück gegeben.
  • Funktion zum Lesen historischer Aufzeichnungen "getOldValuesPull" und den Namen der Sensoren als Parameter "names=" beginnend ab "start=" bis "stop=" in Sekunden seit 1.1.1970, Umrechnung hier
    Als Antwort werden mehrere Zeilen mit Zeitpunkten und den Messwerten getrennt mit Kommas zurück gegeben.
  • Passwort für den Benutzer "api" mit dem Parameter "pwd=xxx"

Praktische Beispiele:

  1. Einen aktuellen Messwert eines Sensors holen:
    https://physiker-42.scheidl.de/index.php?r=api/getNewValuesPull&names=T1&pwd=xxx

    → 1567111800,25.875
    Verschlüsselter Fernzugriff über die Internet-URL mit dem Passwort "xxx" zum Lesen des aktuellen Messwerts der Temperatur T1 mit 25,875°C.
    Die Messung war 1567111800 Sekunden nach 1.1.1970, also am 29. August 2019 um 22:50, siehe Umrechnung hier
  2. Jeweils die aktuellen Messwerte mehrerer Sensoren holen:
    https://physiker-42.scheidl.de/index.php?r=api/getNewValuesPull&names=T1,IC1&pwd=xxx
    → 1567111800,25.875,12345.678
    Verschlüsselter Fernzugriff über die Internet-URLmit dem Passwort "xxx" zum Lesen zweier aktuellen Messwerte, der Temperatur T1 mit 25,875°C und des Zählerstandes IC1 mit 12345.678kWh.
    Die Messung war 1567111800 Sekunden nach 1.1.1970, also am 29. August 2019 um 22:50, siehe Umrechnung hier
  3. Einen aktuellen Messwert aus internem LAN holen:
    http://physiker-42/index.php?r=api/getNewValuesPull&names=T1&pwd=xxx

    → 1567111800,25.875
    Interner Zugriff über die LAN-URL mit dem Passwort "xxx" zum Lesen des aktuellen Messwerts des Temperatursensors T1 mit 25,875°C.
    Die Messung war 1567111800 Sekunden nach 1.1.1970, also am 29. August 2019 um 22:50, siehe Umrechnung hier
  4. Einen aktuellen Messwert mit IP-Adresse aus internem LAN holen:
    http://192.168.178.2/index.php?r=api/getNewValuesPull&names=T1&pwd=xxx
    → 1567111800,25.875
    Interner Zugriff über die IP-Adresse mit dem Passwort "xxx" zum Lesen des aktuellen Messwerts des Temperatursensors T1 mit 25,875°C.
    Die Messung war 1567111800 Sekunden nach 1.1.1970, also am 29. August 2019 um 22:50, siehe Umrechnung hier
  5. Mehrere historische Messwerte eines Datenpunkts holen:
    https://physiker-42.scheidl.de/index.php?r=api/getOldValuesPull&names=T1&start=1567111740&stop=1567111800&pwd=xxx
    → Timestamp,T1
    2019/08/29 22:49:10,25.075
    2019/08/29 22:49:20,25.175
    2019/08/29 22:49:30,25.275
    2019/08/29 22:49:40,25.375
    2019/08/29 22:49:50,25.475
    2019/08/29 22:50:00,25.575
    2019/08/29 22:50:10,25.675
    Verschlüsselter Fernzugriff über die Internet-URL mit dem Passwort "xxx" zum Lesen mehrerer historischer Messwerte des Temperatursensors T1 von 29.8.2019 22:49:10 bis 22:50:10 von 25,075°C. bis 25.675°C

 

War dieser Beitrag hilfreich?
0 von 0 fanden dies hilfreich
Haben Sie Fragen? Anfrage einreichen

0 Kommentare

Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.
Powered by Zendesk