Loxone Webservices

Durch verschiedene Webservice Befehle kann man z.B. über die Adresszeile eines Browsers vom Miniserver Informationen abrufen, Einstellungen vornehmen oder Ausgänge schalten.
Genauere Information zur API

ALLGEMEIN

Webservice Befehle werden sowohl bei internem, als auch externem Zugriff unterstützt.
Der aktuelle Miniserver unterstützt dabei auch HTTPS.

Der Aufbau eines Webservice Befehls ist wie folgt:

http://Benutzer:Passwort@IPAdresseMiniserver/command/control/value

Bei Verwendung von HTTP werden die Zugangsdaten in der URL im Klartext übertragen!

Deshalb sollten bei Verwendung von HTTP (Miniserver Gen.1) beim Eingeben eines Befehls in der Adresszeile die Zugangsdaten vorerst weggelassen werden.

Es erfolgt danach eine Abfrage der Zugangsdaten über ein Fenster im Browser:

Dabei werden für manche Befehle die Zugangsdaten eines Benutzers mit Vollzugriff benötigt.

Danach wird der Befehl ausgeführt, und das Ergebnis im Browser angezeigt.
Im folgendem Beispiel erhalten wir die derzeitige Software Version des Miniservers:

Der Code „200“ bedeutet, dass der Befehl angenommen und verarbeitet wurde.

Aufbau im Detail

  • „control“: kann dabei jeder Eingang oder Ausgang sein (auch virtuelle Ein- und Ausgänge). Ausgänge können aber nur für Statusabfragen verwendet werden.
  • „value“: Wenn ‚value‘ nicht vorhanden ist, dann wird der aktuelle Wert des Controls zurückgegeben. Folgende Werte sind für Value zulässig: ‚Ein‘, ‚On‘, ‚Aus‘, ‚Off‘, ‚Impuls‘, ‚Pulse‘ oder ein dezimaler Wert (mit Nachkommastellen). (Nur ein Benutzer der berechtigt ist an dem entsprechenden Objekt Änderungen vorzunehmen kann über Webservices an diesem Objekt Werte ändern)
  • Für digitale virtuelle Eingänge mit 2 Ausgängen (Auf-Ab, Links-Rechts) gibt es folgende Werte:
ImpulsPlus
ImpulsMinus
PulseUp
PulseDown
ImpulsAuf
ImpulsAb
PulseOpen
PulseClose
PlusEin
PlusAus
UpOn
UpOff
AufEin
AufAus
OpenOn
OpenOff
MinusEin
MinusAus
DownOn
DownOff
AbEin
AbAus
CloseOn
CloseOff
  • Bei digitalen Ein- und Ausgängen wird für ‚Ein‘ immer 1 und für ‚Aus‘ immer 0 verwendet.
  • Analoge (0-10V) Eingänge arbeiten im Bereich zwischen 0 und 10,00. Es gibt keine formelle Begrenzung (zB. bei EIB-Temperaturen wie 21,5 oder -5,2).
  • Für die Ausgabe wird als Dezimalzeichen der Punkt verwendet.

 

STATUS & SCHALTEN

STATUSABFRAGE EINES CONTROLS

Befehl http://miniserver/dev/sps/io/LichtWohnzimmer/state
Funktion Liefert den Status des Eingangs
Antwort <LL control=“dev/sps/io/LichtWohnzimmer“ value=“0“ Code=“200“/>

 

Befehl http://miniserver/dev/sps/io/LichtWohnzimmer/astate
Funktion Liefert den Wert der zugeordneten Ausgänge (entweder ein eindeutiger Wert für alle – oder ein ? bei unterschiedlichen Werten)
Antwort <LL control=“dev/sps/io/LichtWohnzimmer“ value=“1“ Code=“200“/>

 

Befehl http://miniserver/data/status
Funktion Listet alle Geräte, die am Miniserver angeschlossen sind, mitsamt Status.
Antwort <Status Modified=““>
<Miniserver Name=“Miniserver Büro“ Internalname=““ IP=““ Mask=““ Gateway=““ DHCP=““ DNS1=““ DNS2=““ MAC=““ Device=““ Version=““>
<Extension Name=““ Internalname=““ Serial=““ Version=““ Online=““/>
</Miniserver>
</Status>

 

Status-Abfrage per Webservice ist nur bei Ein- und Ausgängen möglich, nicht aber bei Programmbausteinen.

SCHALTEN

Befehl http://miniserver/dev/sps/io/TasterLichtWohnzimmer/Ein
Funktion Schalten des analogen oder digitalen Eingangs
Antwort <LL control=“dev/sps/io/TasterLichtWohnzimmer“ value=“1“ Code=“200“/>

Wird ein Visualisierungskennwort benötigt muss der Befehl verschlüsselt gesendet werden. Genauere Infos dazu können sie in unserer API Dokumentation finden.

 

STATUSÄNDERUNGEN ABFRAGEN

Befehl http://miniserver/dev/sps/enablestatusupdate
Funktion Ermöglicht das automatische Senden von Statusänderungen in Websockets.
Antwort Schickt den aktuellen Status per Websockets.

 

 

KONFIGURATION & STATISTIK

SPS-BEFEHLE

Befehl Funktion Vollzugriff notwendig?
http://miniserver/dev/sps/state SPS Statusabfrage

0 – kein Status
1 – SPS bootet gerade
2 – SPS Programm wird geladen
3 – SPS wird gestartet
4 – Bus wird gestartet
5 – SPS läuft
6 – SPS Change
7 – SPS Fehler
8 – Update wird gerade durchgeführt

 X
http://miniserver/dev/sps/status aktuelle SPS Frequenz abfragen  X
http://miniserver/dev/sps/restart SPS neu starten
http://miniserver/dev/sps/stop SPS anhalten
http://miniserver/dev/sps/run SPS fortsetzen
http://miniserver/dev/sps/log SPS globales Logging erlauben
http://miniserver/dev/sps/enumdev alle Geräte der SPS auflisten (Miniserver,Extensions,…)
http://miniserver/dev/sps/enumin alle Eingänge der SPS auflisten
http://miniserver/dev/sps/enumout alle Ausgänge der SPS auflisten
http://miniserver/dev/sps/identify Miniserver identifizieren
Für Erweiterungen muss die Seriennummer als Parameter mitgegeben werden.

 

 

CONFIG BEFEHLE

Befehl Funktion Vollzugriff notwendig?
http://miniserver/dev/cfg/mac MAC-Adresse holen X
http://miniserver/dev/cfg/version Firmware Version holen X
http://miniserver/dev/cfg/versiondate Erstellungsdatum der Firmware holen X
http://miniserver/dev/cfg/dhcp DHCP Konfiguration holen
http://miniserver/dev/cfg/ip IP-Adresse holen
http://miniserver/dev/cfg/mask IP-Maske holen
http://miniserver/dev/cfg/gateway Gateway-Adresse holen
http://miniserver/dev/cfg/device Miniserver Gerätenamen holen
http://miniserver/dev/cfg/dns1 DNS-Adresse 1 holen
http://miniserver/dev/cfg/dns2 DNS-Adresse 2 holen
http://miniserver/dev/cfg/ntp NTP-Adresse holen
http://miniserver/dev/cfg/timezoneoffset Zeitzonenoffset holen X
http://miniserver/dev/cfg/http HTTP-Port holen
http://miniserver/dev/cfg/ftp FTP-Port holen
http://miniserver/dev/cfg/LoxPLAN Konfigurationssoftware-Port holen
http://miniserver/dev/cfg/ftllocalonly ‚FTP, Telnet, Softwarezugriff nur lokal erlauben‘ holen

 

SYSTEM BEFEHLE

Befehl Funktion Vollzugriff notwendig?
http://miniserver/dev/lan/txp Anzahl LAN gesendete Pakete holen
http://miniserver/dev/lan/txe Anzahl LAN gesendete Pakete mit Fehler holen
http://miniserver/dev/lan/txc Anzahl LAN gesendete Pakete mit Kollision holen
http://miniserver/dev/lan/exh Anzahl LAN Bufferfehler holen
http://miniserver/dev/lan/txu Anzahl LAN Underrunfehler holen
http://miniserver/dev/lan/rxp Anzahl LAN empfangene Pakete holen
http://miniserver/dev/lan/eof Anzahl LAN EOF Fehler holen
http://miniserver/dev/lan/rxo Anzahl LAN Empfangsüberlauffehler holen
http://miniserver/dev/lan/nob Anzahl LAN ‚Kein Empfangsbuffer‘-Fehler holen
http://miniserver/dev/bus/
packetssent
Anzahl gesendete Pakete am Loxone-Link holen
http://miniserver/dev/bus
/packetsreceived
Anzahl empfangene Pakete am Loxone-Link holen
http://miniserver/dev/bus/
receiveerrors
Anzahl Empfangsfehler am Loxone-Link holen
http://miniserver/dev/bus/
frameerrors
Anzahl Frame-Fehler am Loxone-Link holen
http://miniserver/dev/bus/
overruns
Anzahl Überlauffehler am Loxone-Link holen
http://miniserver/dev/bus/
parityerrors
Anzahl Paritätsfehler am Loxone-Link holen
http://miniserver/dev/sys/
numtasks
Anzahl Tasks holen
http://miniserver/dev/sys/cpu CPU-Last holen
http://miniserver/dev/sys
/contextswitches
Anzahl Umschaltungen zwischen Tasks holen
http://miniserver/dev/sys
/contextswitchesi
Anzahl Umschaltungen zwischen Tasks holen, die von Interrupts ausgelöst wurden
http://miniserver/dev/sys/heap Speichergröße holen X
http://miniserver/dev/sys/ints Anzahl Systeminterrupts holen
http://miniserver/dev/sys/comints Anzahl Kommunikationsinterrupts holen
http://miniserver/dev/sys/lanints Anzahl LAN-Interrupts holen
http://miniserver/dev/sys/watchdog Watchdog-Bits holen
http://miniserver/dev/sys/date Liefert das lokale Datum
http://miniserver/dev/sys/time Liefert die lokale Zeit
http://miniserver/dev/sys/
setdatetime
Systemdatum und -zeit setzen Format: 2010-04-20 14:35:00 oder 2010/20/04 14:35:00
Achtung: Es kann nur ein Datum gesetzt werden dass nach dem Release Termin ist. Bsp.: Release am 20.12.2012 -> Datum 19.12.2012 kann nicht eingestellt werden.
http://miniserver/dev/sys/spscycle Anzahl SPS-Zyklen holen
http://miniserver/dev/sys/ntp NTP Anfrage forcieren
http://miniserver/dev/task0/name Task 0 Name holen
(0- http://nubuserver/dev/sys/numtasks – 1)
http://miniserver/dev/task0/priority Task 0 Priorität holen
http://miniserver/dev/task0/stack Task 0 Stack holen
http://miniserver/dev/task0
/contextswitches
Task 0 Anzahl Umschaltungen holen
http://miniserver/dev/task0/
waittimeout
Task 0 Wartezeit in ms holen
http://miniserver/dev/task0/state Task 0 Status holen
http://miniserver/dev/sys/reboot Miniserver booten
http://miniserver/dev/sys/check Zeigt aktive Loxone Config Verbindungen X
http://miniserver/dev/sys/logoff Trennt bestehende Loxone Config Verbindungen
http://miniserver/dev/sys/sdtest Testet die SD Karte
http://miniserver/dev/sys/lastcpu zeigt letzen Wert der CPU Auslastung und Anzahl der SPS Zyklen
http://miniserver/dev/sys
/searchdata
listet die Suchergebnisse  X
http://miniserver/dev/fslist/ listet das Root-Verzeichnis der SD Karte  ✓
http://miniserver/dev/fslist/path/ listet das Verzeichnis „path“ auf der SD Karte  ✓
http://miniserver/dev/fsget/filepath eine Datei abrufen (filepath durch Dateinamen ersetzen)  ✓
http://miniserver/dev/fsdel/filepath löscht eine Datei (filepath durch Dateinamen ersetzen)  ✓
http://miniserver/data/status zeigt Status von Miniserver und allen Extensions  X
http://miniserver/stats zeigt die Statistiken  ✓
http://miniserver/data/weatheru.xml zeigt die Wetterdaten (nur bei aktivem Wetterservice)  X
http://miniserver/data/LoxAPP3.json Strukturdatei für die Visualisierung  X
http://miniserver/dev/fsget/log/def.log Log abrufen  ✓
http://miniserver/dev/sys/
ExtStatistics/05000001
Statistik der 1-Wire Extension abrufen (05000001 ersetzen durch Seriennummer der Extension)  ✓
http://miniserver/dev/sys/
AirStatistics/0C000001/DeviceIndex
Statistik der Air Geräte abrufen (0C000001 ersetzen durch Seriennummer der Extension)  ✓

 

Befehle für Geräte

Die folgenden Befehle beziehen sich auf bestimmte Air oder Tree Geräte.
Es werden die Zugangsdaten eines Benutzers mit Vollzugriff benötigt.

http://miniserver/dev/sys/wsdevice/serial/ForceUpdate Firmware Update eines Gerätes erzwingen
http://miniserver/dev/sys/wsdevice/serial/Reboot Gerät neu starten
Bei „serial“ wird die Seriennummer (ohne Doppelpunkte) des Geräts verwendet.

Es  kann hier aber auch der Gerätename in Loxone Config verwendet werden.

Dafür muss dieser eindeutig sein und darf keine Sonderzeichen enthalten.

Webinterface in einem iFrame verwenden

Um das Webinterface des Miniservers in einem iFrame zu verwenden, muss es mit folgendem Webservice aktiviert werden, da iframes aus Sicherheitsgründen standardmäßig nicht erlaubt sind.

http://miniserver/dev/sys/allowhttpiframe/1