Hallo
@pholler ,
ich habe mir das angesehen. Da du meinen speziellen KI-Kontext nicht hast, wäre das Generieren einer Custom-Logik für dich mühsam und fehleranfällig. Außerdem müsstest du bei jeder Namensänderung den Code neu anfassen.
Deshalb habe ich eine bessere Lösung gebaut (und gerade extrem hart getestet):
Hier ist die 1-Wire Hybrid V6.1 Universal.
Was ist neu?
Du musst im Code nichts mehr ändern. Die Logik hat jetzt 8 zusätzliche Eingänge ("Label 1" bis "Label 8").
Dort schreibst du einfach rein, wie der Sensor im MQTT heißen soll.
Die Spielregeln (Bitte genau beachten!):
1. Maximale Länge:
Du hast pro Name exakt 32 Zeichen Platz. Alles was länger ist, schneidet der Timberwolf gnadenlos ab.
(Technischer Hintergrund: Die Variable ist intern als string,32 definiert).
2. Erlaubte Zeichen:
Wir haben die Logik so gehärtet, dass sie fast alles schluckt.

Leerzeichen (Wohnzimmer Decke)

Kommas & Doppelpunkte (Sensor: 1, oben)

Sonderzeichen (&, %, ?, !)

Umlaute (Küche)
Das funktioniert, weil die Logik deinen Text intern sauber in Anführungszeichen verpackt.
3. Verbotene Zeichen (WICHTIG!):
Es gibt ein einziges Zeichen, das du NICHT verwenden darfst:

Das Anführungszeichen / Gänsefüßchen (")
Grund: Da wir den Namen für JSON in Anführungszeichen setzen, würde ein weiteres Anführungszeichen im Namen den Code "sprengen" (der Empfänger denkt, der Name ist zu Ende).
Anleitung:
1. Verknüpfe deine Sensoren mit Wert 1-8.
2. Schreibe bei Label 1-8 deinen Wunschnamen rein (als festen Wert oder String-Objekt).
3. Setze die Timeouts (ca. 3x Sendeintervall des Sensors).
Hier ist der Code. Viel Erfolg damit!
1-Wire Hybrid V6.1 Universal (UX Optimized).txt
____________________________________________________________
1. Titel
1-Wire Hybrid V6.1 Universal (Custom Labels & UX)
2. Untertitel
Überwacht 8 Sensoren in Echtzeit, erlaubt freie Namensvergabe für MQTT und bündelt Daten ressourcenschonend.
3. Zusatztext für das Verständnis
Diese Logik ist die "Universal-Lösung" für die Anbindung von Sensoren an MQTT (z.B. Home Assistant). Sie vereint drei Funktionen in einem Baustein:
Echtzeit-Watchdog: Jeder der 8 Kanäle wird individuell überwacht. Bleibt ein Sensorwert länger aus als die Timeout-Zeit, wird sofort ein Fehler in der Bitmaske gemeldet.
Freie Beschriftung (Universal): Über die neuen Eingänge "Label 1-8" können Sie jedem Sensor einen individuellen Namen (z.B. "Wohnzimmer") geben. Dieser Name wird automatisch als Schlüssel im JSON verwendet ({"Wohnzimmer": 21.5}).
Ressourcen-Schutz (Hybrid): Während der Watchdog in Echtzeit reagiert, wird der komplexe JSON-String nur im eingestellten "Sendeintervall" neu berechnet. Das schont die CPU des Timberwolf Servers massiv.
Neu in V6.1: Die Eingänge sind im Editor nun logisch gruppiert (Wert -> Label -> Timeout), um die Konfiguration übersichtlicher zu gestalten.
4. Kern-Module
Triggered, Monoflop (Mode 3), BinaryMultiplexer, Clocksignal, Break, Printf, Concat (Dynamic Keys)
5. Kern-Operation
Watchdog: Signal empfangen -> Timer Reset. Timer abgelaufen -> Fehler-Bit setzen.
JSON-Bau: Key = " + Label + ". JSON = { Key1:Val1, Key2:Val2, ... }.
6. Beschreibung Kern-Eingänge
Wert 1-8: [Float] Der Messwert. WICHTIG: Trigger muss auf 'a' (Always) stehen!
Label 1-8: [String] Der Wunschname für MQTT (z.B. "Kueche"). Max. 32 Zeichen.
Timeout 1-8: [Float] Max. Zeit ohne Signal in Sekunden. 0.0 = Kanal deaktiviert.
Sendeintervall: [Float] Taktung für die JSON-Ausgabe in Sekunden.
7. Beschreibung Kern-Ausgänge
JSON String: [String] Das fertige Datenpaket mit Ihren individuellen Namen.
Fehler Bitmaske: [Integer] Diagnose-Code (Bit 0 = Kanal 1, Bit 1 = Kanal 2...). Wird sofort bei Statusänderung gesendet.
8. Hinweise / Ergänzendes
Verbotene Zeichen: Verwenden Sie im Label keine Anführungszeichen ("), da diese die JSON-Struktur zerstören würden. Leerzeichen, Kommas oder Umlaute sind erlaubt.
Länge: Labels werden nach 32 Zeichen abgeschnitten.
9. Erweiterte Mouse-Overs
Wert 1-8: "Messwert. Trigger zwingend auf 'a' (Always)!"
Label 1-8: "Name für MQTT (z.B. 'Büro'). Keine Gänsefüßchen!"
Timeout 1-8: "Alarmzeit. 0 = Kanal inaktiv."
______________________________________________________
1. Was macht dieser Baustein eigentlich?
Er erledigt drei Jobs gleichzeitig:
JOB A: Der Namens-Geber (Universal)
Früher hießen deine Sensoren im MQTT einfach "V1", "V2", etc. Das war unübersichtlich.
Jetzt kannst du jedem Sensor einen Namen geben (z.B. "Wohnzimmer"). Die Logik baut daraus ein sauberes Paket: {"Wohnzimmer": 21.5, "Kueche": 19.0}.
JOB B: Der Datensammler (Aggregator)
Anstatt für jeden Sensor eine eigene MQTT-Nachricht zu schicken (was bei 20 Sensoren das Netzwerk flutet), sammelt er 8 Werte ein, verpackt sie und schickt sie gemütlich in einem festen Takt (z.B. alle 60 Sekunden) raus.
JOB C: Der Wachhund (Watchdog)
Er passt auf jeden Sensor einzeln auf. Wenn ein Sensor sich nicht mehr meldet (z.B. Kabelbruch), schlägt er sofort Alarm.
2. Einrichtung: Schritt für Schritt
Schritt 1: Die Werte (Messwerte)
Verbinde deine Sensoren mit den Eingängen Wert 1 bis Wert 8.

WICHTIG: Du musst den Trigger-Modus dieser Eingänge zwingend auf "a" (Always / Immer) stellen!
Warum? Ein 1-Wire Sensor sendet regelmäßig seinen Wert, auch wenn sich die Temperatur nicht ändert (Herzschlag). Wenn du auf "c" (Change) stellst, denkt die Logik bei gleichbleibender Temperatur, der Sensor sei tot, und löst Fehlalarm aus.
Schritt 2: Die Namen (Labels)
Hier kommt das neue Feature! Schreibe bei Label 1 bis Label 8 rein, wie der Sensor heißen soll.
Du kannst das Feld anklicken und den Namen direkt eintippen (als Festwert).
Oder du verbindest ein String-Objekt.
Regel: Keine Anführungszeichen (") benutzen! Leerzeichen, Kommas oder Umlaute sind okay.
Schritt 3: Die Überwachung (Timeouts)
Jeder Sensor hat einen Parameter Timeout. Das ist die Zeit in Sekunden, nach der Alarm geschlagen wird, wenn nichts mehr empfangen wurde.
Faustformel: Schau im Gerätemanager auf das Sendeintervall des Sensors. Nimm diesen Wert mal 3.
(Beispiel: Sensor sendet alle 60s -> Stelle Timeout auf 180).
Kanal abschalten: Hast du nur 5 Sensoren? Lass die Timeouts der leeren Kanäle auf 0. Die Logik schaltet die Überwachung für diese Kanäle dann automatisch ab.
Schritt 4: Der Takt (Sendeintervall)
Hier stellst du ein, wie oft das Datenpaket an MQTT gesendet werden soll (z.B. 60 Sekunden).
Der Clou: Die Logik berechnet den komplizierten Text nur in diesem Takt. Das schont deinen Timberwolf Server massiv.
3. Häufige Fragen & "Aha-Effekte"
"Warum ist das JSON-Feld am Anfang leer?"
Wenn du die Logik frisch startest (oder speicherst), siehst du im Ausgang erst mal nichts.
Das ist kein Fehler! Da die Logik nur im Takt (z.B. alle 60s) rechnet, musst du nach dem Start einfach einmalig warten, bis die Zeit um ist.
"Wie lese ich den Fehler-Code (Bitmaske)?"
Der Ausgang Fehler Bitmaske zeigt dir als Zahl an, wer ausgefallen ist. Es ist eine Summe:
0 = Alles OK.
1 = Sensor 1 defekt.
2 = Sensor 2 defekt.
3 = Sensor 1 UND 2 defekt (1+2).
4 = Sensor 3 defekt.
... usw.
Viel Erfolg mit deiner personalisierten Logik!
mfg
eib-eg
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.