Das lernst du heute
- Mehrere Namen für mehrere Räume
- Werte nacheinander abarbeiten
- Zeilen sparen
Drei Räume, drei Sensoren, drei Heizungen. Mit drei Chips ginge es, aber jeder Chip kostet ein Gehäuse, Strom und Pflege. Ein Chip reicht – wenn die Namen gut geplant sind.
Gleicher Name, anderer Typ
lbn und sbn filtern nach Typ und Name. Darum dürfen Sensor und Heizung im Labor beide „Labor“ heißen: Der Typ-Hash entscheidet, welches Gerät gemeint ist. Das spart Namen und macht die Basis übersichtlich – jedes Gerät trägt den Namen seines Raums.
lbn temp SENSOR HASH("Labor") Temperature Average
sbn HEIZUNG HASH("Labor") On an
Der einfache Weg: Block für Block
Für jeden Raum dieselben drei Zeilen, nur mit anderem Namen. Das ist leicht zu lesen, kostet aber für jeden Raum drei Zeilen und gut 150 Zeichen. Bei fünf Räumen und einer Anzeige pro Raum wird es eng.
Der Name im Register
HASH("Labor") ist beim Laden schon eine Zahl. Diese Zahl darf auch in einem Register stehen, und lbn/sbn nehmen sie von dort:
move raum HASH("Lager")
lbn temp SENSOR raum Temperature Average
sbn HEIZUNG raum On an
Damit schreibst du den Regelteil nur einmal und tauschst vorher den Namen.
Ein Raum pro Takt
Ein Zähler wählt jeden Takt den nächsten Raum: 0, 1, 2, 0, 1, 2 … Mit seq und select wird daraus der Name:
add nr nr 1
mod nr nr RAEUME # 0, 1, 2, 0 ...
move raum HASH("Labor") # Raum 0
seq tmp nr 1
select raum tmp HASH("Lager") raum
seq tmp nr 2
select raum tmp HASH("Wohnen") raum
Jeder Raum kommt alle drei Takte dran, also alle anderthalb Sekunden. Für Heizungen ist das mehr als schnell genug.
Ein Raum ohne funktionierenden Sensor liefert NaN. slt ergibt dann 0, die Heizung dieses Raums geht aus. Die anderen Räume merken davon nichts, weil jeder seinen eigenen Takt hat.
Plane die Namen, bevor du den Etikettierer in die Hand nimmst: ein kurzer Name pro Raum, ohne Umlaute. Für Geräte, die keinem Raum gehören, eigene Namen wie „Hauptschalter“.
Schaubild
Übung
Aufgabe
Frostschutz für drei Räume mit einem Chip. In jedem Raum hängen ein Gas-Sensor und eine Wandheizung mit dem Namen des Raums: „Labor“, „Lager“, „Wohnen“.
- Heizung eines Raums an, wenn dort weniger als 19 °C (292,15 K) sind, sonst aus.
- Schreib den Regelteil nur einmal: Raumname in ein Register, ein Raum pro Takt.
- Fällt ein Sensor aus, geht nur die Heizung dieses Raums aus.
Hinweise
Hinweis 1
Zähler: add nr nr 1, dann mod nr nr RAEUME.
Hinweis 2
Name: erst move raum HASH("Labor"), dann zweimal seq und select.
Hinweis 3
Regelteil mit raum statt HASH(…): lbn temp SENSOR raum Temperature Average.
Quiz
4 Fragen. Ab 60 % ist das Quiz bestanden – die Auswertung macht der Server.
Tag abschließen
- Übung im Simulator bestanden
- Quiz mit mindestens 60 % bestanden
Ohne Konto wird der Fortschritt nur in diesem Browser gespeichert.
Fehler in dieser Lektion melden
Zum Melden bitte anmelden. Anmelden