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
Funktionalität:
- 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:
- 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" - 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/"
- Passwort für den Benutzer "api" mit dem Parameter "pwd=xxx"
Funktionen:
getNewValuesPull
Funktion zum Lesen aktueller Messwerte als verschlüsselter Fernzugriff über die Internet-URL oder interner Zugriff über eine LAN-URL. Als Antwort wird pro Sensor ein aktueller Messwert (getrennt mit Kommas) und der Zeitpunkt der Messung (in Sekunden seit 1.1.1970, Umrechnung hier) zurück gegeben
Parameter: names
Die Namen der Sensoren, getrennt mit Kommas im Format "&names=T1,T2,T3"
Parameter: pwd
Das Passwort für den Benutzer "api" im Format "&pwd=xxx"
Beispiele
- Einen aktuellen Messwert eines Sensors holen:
https://physiker-42.scheidl.de/index.php?r=api/getNewValuesPull&names=T1&pwd=xxx
→ 1567111800,25.875
Fernzugriff über 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 - 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
Fernzugriff über Internet URL mit dem Passwort "xxx" zum Lesen zweier aktuellen Messwerte mit verschiedenen Einheiten, 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 - 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 - 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
getOldValuesPull
Funktion zum Lesen historischer Aufzeichnungen als verschlüsselter Fernzugriff über die Internet-URL oder interner Zugriff über eine LAN-URL.
Als Antwort werden mehrere Zeilen mit Zeitpunkten und den Messwerten getrennt mit Kommas zurück gegeben.
Die Antwort der API-Funktion kann über mehrere Methoden gespeichert werden. Wenn die URL in einem Browser geöffnet wurde, wird die Antwort erstmal als eine Zeile dargestellt. Aber sobald die Seite mit Datei → Speichern als .csv Datei gespeichert wurde, sind die Zeilen in der Datei getrennt.
(Eine weitere Möglichkeit ist die Verwendung des Tools "curl" in einem Terminal, um eine .csv Datei zu erzeugen)
Der Import einer .csv Datei in eine Office Tabellenkalkulation ist in dem FAQ-Artikel zum Export erklärt, siehe hier.
Parameter: names
Die Namen der Sensoren, getrennt mit Kommas im Format "&names=T1,T2,T3"
Parameter: pwd
Das Passwort für den Benutzer "api" im Format "&pwd=xxx"
Parameter: start
Der Zeitpunkt ab dem die aufgezeichneten Daten gelesen werden in Sekunden seit 1.1.1970, Umrechnung hier im Format "&start=yyy"
Parameter: stop
Der Zeitpunkt bis zu dem die aufgezeichneten Daten gelesen werden in Sekunden seit 1.1.1970, Umrechnung hier im Format "&stop=yyy".
Der Stop-Zeitpunkt muß nach dem Start-Zeitpunkt liegen.
Optionaler Parameter: step
Die Anzahl der gelesenen Messwerte zwischen der Start- und Stoppzeit im Format "$step=zzz".
Eine große Zahl gibt viele Messwerte zurück, hat also eine feinere Auflösung zwischen den Messwerten. Wenn zB die letzten 24h zwischen Start- und Stoppzeit ausgelesen werden, dann wird bei step=1440 die 60s Auflösung zurück gegeben.
Die Messwerte in der Datenbank werden über das Alter hinweg ausgedünnt, mehrere Messwerte werden zusammengefasst, zB 10s → 1Min → 5Min etc. Je nach Alter kann es also sein das nur noch größere Messwerte gespeichert sind.
Achtung:
Je höher die Anzahl der gelesenen Parameter, desto länger dauert die Anfrage und desto größer wird die Antwort-Datei. Bei 1000en Messwerten können mehrere MB Daten zurück gegeben werden.
Wird dieser Parameter nicht angegeben, wird versucht ca. 35 Messwerte zurück gegeben. Die genaue Anzahl hängt vom Abstand zwischen Start- und Stoppzeit und den in der Datenbank verfügbaren Messwerten ab.
Beispiele:
- 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 - Viele historische Messwerte des letzten Tages eines Datenpunkts mit höherer Auflösung holen:
https://physiker-42.scheidl.de/index.php?r=api/getOldValuesPull&names=T1&start=1781463042&stop=1781549442&step=1440&pwd=xxx
→ Timestamp,T1
2026/06/14 20:51:00,20.000
2026/06/14 20:52:00,20.000
2026/06/14 20:53:00,19.833
2026/06/14 20:54:00,19.729
2026/06/14 20:55:00,19.750
2026/06/14 20:56:00,19.833
2026/06/14 20:57:00,19.771
2026/06/14 20:58:00,19.750
2026/06/14 20:59:00,19.708
....
Verschlüsselter Fernzugriff über die Internet-URL mit dem Passwort "xxx" zum Lesen von 1440 historischer Messwerte des Temperatursensors T1 der letzten 24 Stunden mit einem Abstand von 60s
🛒 Besuchen Sie unseren Online-Shop
0 Kommentare