lbn liest viele Geräte auf einmal. Wie daraus eine Zahl wird, bestimmt der letzte Wert, der Batchmodus:
| Modus | Zahl | Ergebnis | wenn kein Gerät passt |
|---|---|---|---|
Average | 0 | Mittelwert | NaN |
Sum | 1 | Summe | 0 |
Minimum | 2 | kleinster Wert | 0 |
Maximum | 3 | größter Wert | −unendlich |
Count | 4 | Anzahl Geräte | 0 |
Average für Messwerte
Temperatur, Druck, Füllstand: immer Average. Mit Sum fällt der Fehler erst auf, wenn ein zweiter gleichnamiger Sensor dazukommt – dann addieren sich 2 × 300 K zu 600 K und deine Heizung glaubt, das Lager brennt.
Sum passt für Mengen, die sich wirklich addieren: Strom aller Solarpanels, Anzahl Items in allen Schränken.
Die NaN-Falle
Findet Average kein passendes Gerät – Name vertippt, Kabel durchgeschnitten, Sensor abgebaut –, kommt NaN heraus („keine Zahl“). Jede Rechnung mit NaN ergibt wieder NaN, jeder Vergleich ist falsch. Das Programm läuft still mit Unsinn weiter.
Abfangen mit snan (1 wenn NaN) oder bnan (springt bei NaN):
lbn temp SENSOR HASH("Raum") Temperature Average
snan fehlt temp # 1 = kein Sensor gefunden
bnan temp stoerung # oder gleich wegspringen
Bei lbn zählt Count alle Geräte des Typs – den Namen ignoriert das Spiel dabei. Für „wie viele heißen so?“ also nicht verlassen.
Schaubild
Übung
Aufgabe
Im Netz hängen drei Stationsbatterien namens „Akku“ und eine namens „Reserve“ (Prefab StructureBattery, Füllgrad im LogicType Ratio, 0 bis 1).
In einer Endlosschleife:
r0= durchschnittlicher Füllgrad der „Akku“-Batterienr1= der niedrigste Füllgrad der „Akku“-Batterienr2= 1, wenn keine „Akku“-Batterie gefunden wird (NaN), sonst 0
Hinweise
Hinweis 1
Zweimal lbn mit demselben Typ und Namen, nur der Batchmodus ist anders.
Hinweis 2
snan fehlt mittel legt 1 in fehlt, wenn der Mittelwert NaN ist.