Programmierung
Programmierung - Verknüpfung der Bestandteile 
Die eigentlichen Verbindungen der Betriebsmittel wird erst mit der Programmierung der Anlage
umgesetzt. Dieser Part ist der wichtigste und entscheidenste Teil einer digitalen Haussteuerung. Deshalb
sollte man auch diese Arbeit auf jeden Fall einem Experten überlassen.
Das System von Neptun ist jedoch so einfach aufgebaut, das ein angelernter Laie selber seine Anlage
ändern kann. Diese Änderungen können bequem über die mobile Fernbedienung, oder am Server selbst
vorgenommen werden.
Funktionsprinzip
Jedem Teilnehmer (Modul) auf einer Linie wird ein Modulprogramm-Bereich reserviert. Sobald bei
einem Modul ein Event aufgetreten ist (z.B. Taster gedrückt), wird das entsprechende Modulprogramm
im Server aufgerufen. In diesem Modulprogramm kann das Event ausgewertet werden und Aktionen
definiert werden.
Sämtliche Module haben Register, die je nach Typ des Moduls unterschiedliche Funktionen haben.
Diese Register können im Modulprogramm gelesen und beschrieben werden.
Die hier gezeigten Beispiele zeigen die kompakte Form, wie man sie am Display des Servers wieder
findet. Die Software “Triton” und die Ferbedienung sind komfortabler ausgestattet.
Die Struktur der Programmierung ist einfach gehalten und immer gleich :
Befehl - Modul - Register - Operant - Wert
Adresse:
Jedes Modul hat eine feste physikalische Adresse, mit der es angesprochen wird. Die Adresse setzt
sich aus “Linie” und “Modulnummer” zusammen. Zum Beispiel “01.013” bedeutet, Linie 01 und Modul
013. Eine Linie kann maximal 255 Module (Teilnehmer) aufnehmen. Der Server kann in seiner
Grundausstattung vier Linien verwalten. Im erweiterten Zustand kann der Server bis zu 15 Linien
verwalten.
 
Beispiel - Taster-Aktor-Verknüpfung:
Der Taster hat die Adresse 01.013 und der Aktor 00.026. Mit den folgenden drei Zeilen realisiert man
eine komplette Dimmfunktion. Sobald der Taster betätigt wird, ruft der Server folgendes Programm auf:
 
IF  01.013 02=001
THN 00.026 00=254
ELS 00.026 00=253
 
IF
wenn Modul 013 auf Linie 01 im Register 02 den Wert 001 meldet (Taster gedrückt)
THN
dann schreibe in Modul 026 auf Line 00 in Register 00 den Wert 254 ein
ELS
wurde der Taster losgelassen, schreibe in das Reg 00 des Moduls 00.026 den Wert 253
 
Die eingeschriebenen Werte in das Register 00 des Aktors aktivieren komplexe Funktionen des Aktors.
Eine genaue Beschreibung der Funktionen kann der entsprechenden Dokumentation entnommen
werden.
Die Aktoren verfügen zum Teil über umfangreiche Sonderfunktionen, die alle über die besagten
Register gesteuert werden können. Und dank diesem Programmiersystem kann ein Aktor von beliebig
vielen Modulen auf die unterschiedlichste Weise angesprochen werden.
Beispiel - Lampenschaltung:
Im Eßbereich soll eine Lampe mit einem Vorort-Taster dimmbar sein. Im Flurbereich sollen beide
Lampen bei Bewegung nur dann mit 70% und 40% eingeschaltet werden, wenn die Eßbereichslampe
weniger als 50% Dimmung oder die Küchenlampe weniger als 80% Dimmung hat. Aus dem
Wohnzimmer soll die Lampe nur mit einer gewissen Helligkeit zu schalten sein und von der zentralen
Steuerung soll diese Lampe in mehrere Lichtszenen eingebunden sein, mit unterschiedlichen
Helligkeitswerten.
Die Lösung ist denkbar einfach. Jeder Sensor (bzw Befehlsgeber) definiert den Aktor so, wie er ihn
haben möchte. Der Vorort-Taster spricht den entsprechenden Lampenaktor nach dem obigen Beispiel
als Dimmer an. Der Bewegungsmelder im Flur hat in seinem Modulprogramm Verknüpfungen
eingebunden:
IF  01.051 00=001
wurde eine Bewegung gemeldet ?
AND 00.026 01<050
und ist Dimmer von Eßlampe weniger als 50% ?
OR  00.018 01<080
oder ist Dimmer von Küchenlampe weniger als 80% ?
THN 00.021 00=070
ja, dann Flurlampe 1 = 70%
THN 00.022 00=040
ja, dann Flurlampe 2 = 40%
ELS 00.021 00=000
nein, dann Flurlampe 1 = 0%
ELS 00.022 00=000
nein, dann Flurlampe 2 = 0%
Der Taster im Wohnzimmer spricht den Aktor mit einem festen Wert an. In seinem Modulprogramm
schreibt man folgende Zeilen:
IF  01.012 00=001
Taster im Wohnzimmer
THN 00.026 00=060
ja, Eßlampe 60%
ELS 00.026 00=000
nein, Eßlampe 0%
Und die zentrale Steuerung (zum Beispiel die Fernbedienung) schreibt dann nur:
SET 00.026 00=030
Lichtszene 1 (Eßlampe auf 30%)
 
Mit dem Neptun-System ist das eine einfache Aufgabe. Bei KNX hätte der Programmierer hier schon
seine Grenzen erreicht und müßte dafür auf ein teures Zusatzmodul zurückgreifen.
Modulprogramme:
Alle Modulprogramme liegen zentral im Server. Wird ein Modul ausgetauscht, muß keinerlei
Programmierarbeit verrichtet werden. Die gesamte Programmierung kann extern über das PC-
Programm “Triton” abgespeichert werden.
Für jedes Modul stehen jeweils 30 Programm-Zeilen zur Verfügung. Mit Sprungbefehlen kann ein
Modulprogramm umfangreich erweitert werden. Ganze Befehlsblöcke, die man mehrmals benötigt,
können als Befehlsmakros aufgerufen werden. Für diese Erweiterungen stehen mindestens 256 freie
Modulprogrammplätze zur Verfügung.
Sonderfunktionen:
Unzählige Sonderfunktionen geben dem Programmierer viel Spielraum. So stellt der Server z.B.
verschiedene Timer zur Verfügung, die eine Zeitspanne von Sekunden bis Stunden abdecken. Damit
kann man z.B. eine automatische Bewässerung der Zimmerpflanzen realisieren.
Die eingebaute Wochenzeitschaltuhr ermöglicht immer wiederkehrende Funktionen.
Für den anspruchsvollen Programmierer stehen 16 Variablen zur Verfügung. Sie können frei mit Werten
definiert werden, und auch um einen Wert erhöht oder minimiert werden (Zähler).