So ein klein bisschen sieht dein Code schon danach aus
Ich rede von den BTHome Paketen. Aber egal.
Fakt ist, das ich es nicht glauben kann, das ich in einem Script für einen Blu Button zwingend den Versuch machen muss,
alles zu decodieren und auszuwerten, was das BTHome-Universum hergibt, nur um einen Tastendruck zu erkennen.
Hier ein Auszug aus einem Script (Ursprung: Script-Bibliothek -- Shelly BLU Button script actions) für diesen Zweck. Ist nur ein kleines Beispiel für m.E. unnötigem Inhalt. Übrigens ist darin auch alles für einen BLU DoorWindow enthalten. Wozu? Für den Button bestimmt nicht relevant.
const BTH = {
0x00: { n: "pid", t: uint8 },
0x01: { n: "battery", t: uint8, u: "%" },
0x02: { n: "temperature", t: int16, f: 0.01, u: "tC" },
0x03: { n: "humidity", t: uint16, f: 0.01, u: "%" },
0x05: { n: "illuminance", t: uint24, f: 0.01 },
0x21: { n: "motion", t: uint8 },
0x2d: { n: "window", t: uint8 },
0x2e: { n: "humidity", t: uint8, u: "%" },
0x3a: { n: "button", t: uint8 },
0x3f: { n: "rotation", t: int16, f: 0.1 },
0x45: { n: "temperature", t: int16, f: 0.1, u: "tC" },
};
Bin mir sicher, das der Blu Button diese ID´s nicht alle mit einem realen Wert bedienen kann. Brauche doch nur die ID 0x3a
Ich könnte natürlich auch alle 256 möglichen BTHome-ID´s hier mit einpflegen und versuchen zu decodieren, aber das hat dann nichts mehr mit Effizienz zu tun. Dazu ist dann sicher auch nicht so viel unnötiger Ballast nötig.
Diese Effizienz ist nun mal möglich und wird ja beworben, da man eben nicht versuchen muss, alle möglichen Datenpakete zu decodieren, sondern sich diese nach Bedarf herauspicken kann. Da die Erfinder aber keine Lust haben, für jeden Shelly und jeden Zweck ein von Grund auf angepasstes Script zu erstellen, dieses ja auch nicht notwendig ist, packt man da eben (fast) alles mit hinein, um für jeden Zweck schon den Grundkern zur Verfügung hat. Wer der Meinung ist, das ein Tastendruck nur erkannt wird, wenn man Temperatur und Luftfeuchte in 2 Genauigkeiten von woher auch immer dazu bekommt, der mag mir dies gerne erklären, oder auch nicht. Wie gesagt, ich bin nicht der Erfinder der Skripte und auch habe ich nicht immer Recht.
Daher die Bitte um eine sachliche Diskussion.
Übrigens sagen mir meine KI-Quellen unabhängig voneinander, eine wesentliche Reduzierung der Skripte für den geforderten Funktionsumfang ist selbstverständlich möglich.