KNX Data Secure Unterstützung
für KNX Logger und KNX Busmonitor

KNX Diagnose Monitor, Import des ETS Projektes deutlich beschleunigt, Suche in der Navigation
Mehr Informationen dazu hier im Forum

Insider Version 6 zur 4.5 jetzt für alle Mitglieder des Insider Clubs installierbar
Alle Infos zum Update im Timberwolf Wiki

[Frage] [V4.1.1] Benötige Hilfe für Custom Logik meiner Gartenbewässerung

Informationen und Diskussionen über Logik-Engine und Logik-Editor
Forumsregeln
  • Denke bitte an aussagekräftige Titel und gebe dort auch die [Firmware] an. Wenn ETS oder CometVisu beteiligt sind, dann auch deren Version
  • Bitte mache vollständige Angaben zu Deinem Server, dessen ID und dem Online-Status in Deiner Signatur. Hilfreich ist oft auch die Beschreibung der angeschlossener Hardware sowie die verwendeten Protokolle
  • Beschreibe Dein Projekt und Dein Problem bitte vollständig. Achte bitte darauf, dass auf Screenshots die Statusleiste sichtbar ist
  • Bitte sei stets freundlich und wohlwollend, bleibe beim Thema und unterschreibe mit deinem Vornamen. Bitte lese alle Regeln, die Du hier findest: https://wiki.timberwolf.io/Forenregeln
Antworten

Ersteller
JustMe
Reactions:
Beiträge: 20
Registriert: Di Apr 28, 2020 11:33 pm
Wohnort: C:\Windows
Hat sich bedankt: 10 Mal
Danksagung erhalten: 3 Mal

[V4.1.1] Benötige Hilfe für Custom Logik meiner Gartenbewässerung

#1

Beitrag von JustMe »

Moin zusammen,

ich würde gerne meine Gartenbewässerung programmieren. Im ersten Schritt möchte zwei Sachen:
1. Pumpe manuellen starten und stoppen
2. Automatikmodus inkl. eines Timers, der die Pumpe nach Ablauf der Zeit stoppt. Zum Triggern des Bausteins wollte ich dann einen externen Tiggereingang nutzen, der einfach den Baustein um 4 Uhr antriggert. Wenn die Bedingungen Füllstand, Trockenheit und Automatikmodus beim triggern erfüllt sind, dann soll für die angegebene Zeit die Pumpe pumpen.
Leider funktioniert das ganze so noch nicht. Wenn ich es richtig verstanden habe, dann liegt das zum einen daran, weil jedes Betätigen der Eingänge ein Trigger ist (zumindest auf A und C, nicht bei U). Aber gerade beim manuellen Start/Stopp benötige ich das A bzw. C Flag. Zum anderen weil ich den Monoflop-Baustein noch nicht richtig verstanden habe. Ich habe ein tolles PDF gefunden, wo das Verhalten beschrieben ist, trotzdem habe ich noch nicht das gewünschte verhalten. Es wäre toll, wenn sich jmd mal meinen Code bzw. meinen Module-Teil anschauen könnte und mir einen Denkanstoß geben kann - vielleicht geht das auch ganz anders viel besser?!

Falls es wichtig ist: Automatikmodus und manueller Modus ist jeweils ein Taster, welcher per Umschaltung in der ETS programmiert ist.

Besten Danke!
Frank

Code: Alles auswählen

/**
 * New custom logic
 *
 * 
 */

{
  "_Meta": { // Optional
    "Description": "",
    "Version": "1.00"
  },
  "Input": [
    ["Manuell_Start_Stop", "Manuelle Pumpensteuerung", "$I_Manuell", "c"],
    ["Automatik_Ein", "Automatikbetrieb aktivieren", "$I_Automatik", "u"],
    ["Bewae_Dauer_min", "Bewässerungsdauer (Min)", "$I_BewaeDauer_min", "u"],
    ["Wasserstand_Ist", "Aktueller Wasserstand (0-10V)", "$I_Wasserstand", "u"],
    ["Wasserstand_Schwelle", "Schwellwert Wasserstand", "$I_Wasser_Schwelle", "u"],
    ["Bodentrockenheit_Ist", "Aktuelle Bodentrockenheit (0-3V)", "$I_Bodentrockenheit", "u"],
    ["Bodentrockenheit_Schwelle", "Schwellwert Bodentrockenheit", "$I_Trockenheit_Schwelle", "u"]
  ],
  "Output": [
    ["Pumpe_Ein", "Pumpensteuerung", "$O_PumpeEin", "a"],
    ["Automatik_aktiv", "Status Automatikmodus", "$O_AutomatikAktiv", "a"],
    ["Status Automatik/Manuell", "Leuchten Auto, Blinken Manuell", "$O_Status", "a"],
    ["Err","Fehler","$Error?","ce"]
  ],
  "Level": [
    ["$I_Manuell", "bool", false],
    ["$I_Automatik", "bool", false],
    ["$I_BewaeDauer_min", "float", 0.0],
    ["$I_Wasserstand", "float", 0.0],
    ["$I_Wasser_Schwelle", "float", 2.5],
    ["$I_Bodentrockenheit", "float", 0.0],
    ["$I_Trockenheit_Schwelle", "float", 1.0],
    ["$O_PumpeEin", "bool", false],
    ["$O_AutomatikAktiv", "bool", false],
    ["$O_Status", "bool", false],
    ["$Wasser_OK", "bool", false],
    ["$Feuchte_niO", "bool", false],
    ["$AutoStart", "bool", false],
    ["$BewDauer_s", "float", 0.0],
    ["$Umrechnungsfaktor_s_min", "float", 60.0],
    [ "$Error?", "bool", false ],
    ["$Formula","string","X1*X2"],
    ["$Reset_Timer", "bool", false]
  ],
  "Module": [
    ["Comparator", "$I_Wasserstand", "$Wasser_OK", "$I_Wasser_Schwelle"],
    ["Comparator", "$I_Bodentrockenheit", "$Feuchte_niO", "$I_Trockenheit_Schwelle"], // Je trockener der Boden, desto höher die Spannung, daher Ausgang Invertiert, damit Comperator genutz werden kann.
    ["And", ["$Wasser_OK", "$Feuchte_niO", "$I_Automatik"], "$AutoStart"], // Bedingungen für Automatikmodus 
    ["CalcFormula",["$I_BewaeDauer_min","$Umrechnungsfaktor_s_min"], "$BewDauer_s", "$Formula"], // Umrechnen in Sekunden - Multiplikation der Eingänge
    ["And", ["$I_Manuell", "-$I_Automatik"], "$Reset_Timer"],
    ["Monoflop", "$AutoStart", "$Reset_Timer", "$O_AutomatikAktiv", "$BewDauer_s", 3],
    ["Or", ["$I_Manuell", "$O_AutomatikAktiv"], "$O_PumpeEin"]
  ]
}
Zuletzt geändert von blaubaerli am Mo Mai 19, 2025 7:20 pm, insgesamt 2-mal geändert.
VG
Frank

TWS 960, ID502, ID840 3500XL, ID1466, VPN offen, Reboot jederzeit möglich

eib-eg
Reactions:
Beiträge: 560
Registriert: Fr Sep 14, 2018 5:03 pm
Hat sich bedankt: 1560 Mal
Danksagung erhalten: 358 Mal

#2

Beitrag von eib-eg »

Ui
Das währe jetzt interessant ob das funktionieren würde

Lies mal das bitte durch viewtopic.php?t=5822&start=40#p62127 und mach mal einen Versuch

Lies aber bitte falls du das ausprobieren willst mindestens die folgenden 15 Beiträge noch dazu
Da ist auch der Link zur AI
TW 2600_99 seit 1.1.2018 / VPN zu

Robert_Mini
Reactions:
Beiträge: 3903
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 1263 Mal
Danksagung erhalten: 2213 Mal

#3

Beitrag von Robert_Mini »

Ich würde mir mal diesen Thread ansehen: viewtopic.php?t=2118&hilit=bew%C3%A4sserung#p23160

Da ist alles schon vorhanden...

lg
Robert
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / zusätzlich: 3500M/#935, 3500L/#1297

ms20de
Elaborated Networks
Elaborated Networks
Reactions:
Beiträge: 1267
Registriert: Sa Aug 11, 2018 9:14 pm
Hat sich bedankt: 358 Mal
Danksagung erhalten: 696 Mal

#4

Beitrag von ms20de »

Hallo Frank,

vielleicht ein Denkanstoß für dein Problem, mit dem Triggered Baustein solltest du rausbekommen, welcher Eingang ein Signal bekommen hat:

https://elabnet.atlassian.net/wiki/spac ... ulbaustein

Viele Grüße,
Matthias
[ Timberwolf Entwicklung ]

TWS 2400 ID:102 VPN offen, Reboot auf Nachfrage
TWS 3500 ID:695 VPN offen, Bitte kein Reboot ohne Absprache

Mibr85
Reactions:
Beiträge: 576
Registriert: Mo Dez 02, 2019 5:38 am
Wohnort: Freital
Hat sich bedankt: 424 Mal
Danksagung erhalten: 237 Mal

#5

Beitrag von Mibr85 »

Bitte noch deine SW Version in den Titel
Oder hier posten ich trag es nach
Grüße Micha

TWS 3500 XL #1209 + TWS 2600 #528 + PBM #972,
VPN offen, Reboot möglich
PLZ 01...

blaubaerli
Reactions:
Beiträge: 2669
Registriert: Sa Sep 15, 2018 10:26 am
Wohnort: Kerpen
Hat sich bedankt: 998 Mal
Danksagung erhalten: 787 Mal

#6

Beitrag von blaubaerli »

Hallo Frank,

bitte füge dem Betreff des Threads noch die Versionsangabe deines TWS hinzu. Sollte dir das nicht mehr eigenständig möglich sein, dann dokumentiere diese bitte in einem entsprechenden Post, dann wird ein Admin das für dich nachholen.

Bitte beachte bei künftigen Threads dann die Forenregeln oben aus dem blauen Kasten.

Danke. :handgestures-salute:

Beste Grüße
Jens
timberwolf168(2600er)VPN offenReboot nach Vereinbarung
timberwolf1699(3500XL)VPN offenReboot jederzeit
wiregate1250
Bitte WIKI lesen.

Ersteller
JustMe
Reactions:
Beiträge: 20
Registriert: Di Apr 28, 2020 11:33 pm
Wohnort: C:\Windows
Hat sich bedankt: 10 Mal
Danksagung erhalten: 3 Mal

#7

Beitrag von JustMe »

Mibr85 hat geschrieben: So Mai 04, 2025 9:50 pm Bitte noch deine SW Version in den Titel
Oder hier posten ich trag es nach
Moin, leider in den letzten Wochen keine Zeit gehabt hier vorbei zu schauen bzw. mich mit dem Thema weiter auseinander zu setzten. Meine Softwareversion ist die 4.1.1.

Ich melde mich, wenn ich alles gesichtet habe und weitere Fragen habe bzw. wie meine vollständige Lösung aussieht - danke schon mal an alle!!

Viele Grüße
Frank
VG
Frank

TWS 960, ID502, ID840 3500XL, ID1466, VPN offen, Reboot jederzeit möglich

Franky
Reactions:
Beiträge: 175
Registriert: Di Dez 24, 2024 1:24 pm
Hat sich bedankt: 78 Mal
Danksagung erhalten: 93 Mal

#8

Beitrag von Franky »

solltest Du mit dem von @Robert_Mini genannten Thread nicht klar kommen oder darüberhinaus mehr benötigen, schreib bitte die Anforderung ("Was brauche ich warum") hier ins Forum @eib-eg und ich warten nur auf ein paar harte Nüsse für unsere LLM-Experimente :lol: :dance:
Zuletzt geändert von Franky am Mo Mai 19, 2025 10:53 pm, insgesamt 1-mal geändert.
Timberwolf 3500L ID:1642; Support-VPN für ElabNET ist an.

eib-eg
Reactions:
Beiträge: 560
Registriert: Fr Sep 14, 2018 5:03 pm
Hat sich bedankt: 1560 Mal
Danksagung erhalten: 358 Mal

#9

Beitrag von eib-eg »

Hallo Frank (@JustMe),

ich habe mir deinen Code und deine Problemstellung für die Gartenbewässerung angesehen. Das ist ein klassischer Anwendungsfall, bei dem Custom Logic seine Stärken ausspielen kann! Georg (eib-eg) und ich haben uns im Rahmen unserer Experimente mit AI-unterstützter Logikerstellung mal deinen Code vorgenommen und einen überarbeiteten Vorschlag erstellt, der hoffentlich einige deiner ursprünglichen Herausforderungen adressiert.

Hier ist der Code
Franks_Gartenbewaesserung_Vorschlag_AI_V1.0.txt
________________________________________________________________
{
"_Meta": {
"Description": "Logik für Gartenbewässerung mit Manuellem und Automatikbetrieb (Vorschlag AI & eib-eg für JustMe)",
"Version": "1.0"
},
"Input": [
["Manuell_Start_Stop", "Taster: Manuell Pumpe EIN/AUS", "$I_Manuell_Start_Stop", "c"],
["Automatik_Ein_Aus", "Schalter: Automatikbetrieb EIN/AUS", "$I_Automatik_Ein_Aus", "c"],
["Trigger_Automatik_Start", "Externer Trigger für Automatikstart (z.B. 4 Uhr)", "$I_Trigger_Automatik_Start", "a"],
["Bewae_Dauer_min", "Bewässerungsdauer Automatik (Minuten)", "$I_Bewae_Dauer_min", "u"],
["Wasserstand_Ist", "Aktueller Wasserstand Sensor (z.B. 0-10V)", "$I_Wasserstand_Ist", "u"],
["Wasserstand_Schwelle_OK", "Schwellwert Wasserstand OK (Pumpe darf laufen wenn Ist >= Schwelle)", "$P_Wasserstand_Schwelle_OK", "u"],
["Bodentrockenheit_Ist", "Aktuelle Bodentrockenheit Sensor (z.B. 0-3V, höher=trockener)", "$I_Bodentrockenheit_Ist", "u"],
["Bodentrockenheit_Schwelle_Trocken", "Schwellwert Bodentrockenheit (Pumpe läuft wenn Ist >= Schwelle)", "$P_Bodentrockenheit_Schwelle_Trocken", "u"]
],
"Output": [
["Pumpe_Ein_Aus", "Steuerung Pumpe EIN/AUS", "$O_Pumpe_Ein_Aus", "a"],
["Automatik_Timer_Aktiv", "Status: Automatik-Timer läuft", "$O_Automatik_Timer_Aktiv", "a"],
["Status_Betriebsart", "Statusanzeige (z.B. für LED - Logik hierfür noch anpassen)", "$O_Status_Betriebsart", "a"],
["Err","Fehler","$Error?","ce"]
],
"Level": [
// --- Eingangs-Variablen (Inputs aus der UI) ---
["$I_Manuell_Start_Stop", "bool", false],
["$I_Automatik_Ein_Aus", "bool", false],
["$I_Trigger_Automatik_Start", "bool", false],
["$I_Bewae_Dauer_min", "float", 30.0],
["$I_Wasserstand_Ist", "float", 5.0],
["$P_Wasserstand_Schwelle_OK", "float", 2.5],
["$I_Bodentrockenheit_Ist", "float", 2.0],
["$P_Bodentrockenheit_Schwelle_Trocken", "float", 1.5],

// --- Ausgangs-Variablen (Outputs in die UI) ---
["$O_Pumpe_Ein_Aus", "bool", false],
["$O_Automatik_Timer_Aktiv", "bool", false],
["$O_Status_Betriebsart", "bool", false],

// --- Interne Berechnungen & Zustände ---
["$Calc_Wasserstand_OK", "bool", false],
["$Calc_Boden_Ist_Trocken_Genug", "bool", false],
["$Calc_Automatik_Bedingungen_Erfuellt", "bool", false],
["$Calc_Automatik_Start_Signal", "bool", false],
["$Calc_Bewae_Dauer_s", "float", 0.0],
["$Konst_Umrechnungsfaktor_s_pro_min", "float", 60.0],
["$Konst_CalcFormula_Multiply", "string,16", "X1*X2"],
["$State_Manuell_Aktiv_Vorheriger_Zyklus", "bool", false],
["$Calc_Manuell_Wurde_Gerade_Eingeschaltet", "bool", false],
["$Calc_Reset_AutomatikTimer", "bool", false],

// --- Systemvariablen ---
[ "$Error?", "bool", false ],
[ "$KonstTrue", "bool", true]
],
"Module": [
// Block 1: Bedingungen für den Automatikmodus prüfen
// ---------------------------------------------------
// Prüft, ob der Wasserstand ausreichend ist (Ist >= Schwelle).
// Ggf. Comparator-Modus (hier 3 für ">=") anpassen, falls z.B. "<=" benötigt wird.
["Comparator", "$I_Wasserstand_Ist", "$Calc_Wasserstand_OK", "$P_Wasserstand_Schwelle_OK", 3],
// Prüft, ob der Boden trocken genug ist (Ist >= Schwelle).
// Annahme: Höherer Sensorwert bedeutet trockener. Ggf. Modus anpassen.
["Comparator", "$I_Bodentrockenheit_Ist", "$Calc_Boden_Ist_Trocken_Genug", "$P_Bodentrockenheit_Schwelle_Trocken", 3],
// Verknüpft die Sensorbedingungen mit dem Zustand des Automatik-Schalters.
["And", ["$Calc_Wasserstand_OK", "$Calc_Boden_Ist_Trocken_Genug", "$I_Automatik_Ein_Aus"], "$Calc_Automatik_Bedingungen_Erfuellt"],

// Block 2: Startsignal für den Automatik-Timer erzeugen
// ------------------------------------------------------
// Der Automatik-Timer startet nur, wenn die Bedingungen erfüllt sind UND der externe Trigger ($I_Trigger_Automatik_Start) kommt.
["And", ["$Calc_Automatik_Bedingungen_Erfuellt", "$I_Trigger_Automatik_Start"], "$Calc_Automatik_Start_Signal"],

// Block 3: Umrechnung der Bewässerungsdauer von Minuten in Sekunden
// -----------------------------------------------------------------
["CalcFormula",["$I_Bewae_Dauer_min","$Konst_Umrechnungsfaktor_s_pro_min"], "$Calc_Bewae_Dauer_s", "$Konst_CalcFormula_Multiply"],

// Block 4: Reset-Bedingung für den Automatik-Timer definieren
// -----------------------------------------------------------
// Der Timer soll resetten, wenn:
// a) Der manuelle Betrieb gerade aktiviert wurde (steigende Flanke von $I_Manuell_Start_Stop) ODER
// b) Der Automatik-Modus generell ausgeschaltet wird.
["Latch", "$I_Manuell_Start_Stop", "$State_Manuell_Aktiv_Vorheriger_Zyklus", "$KonstTrue", 0],
["And", ["$I_Manuell_Start_Stop", "-$State_Manuell_Aktiv_Vorheriger_Zyklus"], "$Calc_Manuell_Wurde_Gerade_Eingeschaltet"],
["Or", ["$Calc_Manuell_Wurde_Gerade_Eingeschaltet", "-$I_Automatik_Ein_Aus"], "$Calc_Reset_AutomatikTimer"],

// Block 5: Monoflop für die zeitgesteuerte Automatik-Bewässerung
// --------------------------------------------------------------
// Modus 2: Startet bei steigender Flanke von $Calc_Automatik_Start_Signal, ist NICHT retriggerbar.
// Läuft für $Calc_Bewae_Dauer_s Sekunden.
// Wird durch $Calc_Reset_AutomatikTimer vorzeitig beendet.
["Monoflop", "$Calc_Automatik_Start_Signal", "$Calc_Reset_AutomatikTimer", "$O_Automatik_Timer_Aktiv", "$Calc_Bewae_Dauer_s", 2],

// Block 6: Logik für Pumpensteuerung
// -----------------------------------
// Die Pumpe ist EIN, wenn entweder der manuelle Taster EIN ist ODER der Automatik-Timer läuft.
["Or", ["$I_Manuell_Start_Stop", "$O_Automatik_Timer_Aktiv"], "$O_Pumpe_Ein_Aus"],

// Block 7: Statusanzeige (Beispiel - muss ggf. angepasst werden)
// ----------------------------------------------------------------
// Diese Logik ist ein einfacher Platzhalter. Sie könnte z.B. für eine LED genutzt werden,
// die leuchtet, wenn Automatik aktiv ist, oder blinkt bei manuellem Betrieb.
// Aktuell zeigt sie nur den Status des Automatik-Timers an, wenn Automatik EIN ist.
["Multiplexer", ["$O_Automatik_Timer_Aktiv"], "$O_Status_Betriebsart", "$I_Automatik_Ein_Aus"]
]
}



________________________________________________

Wesentliche Änderungen und Hinweise im Vergleich zu deinem ursprünglichen Code:

Comparator-Module (entscheidend!):

In deinem ursprünglichen Code hast du bei den Comparator-Modulen keinen expliziten Vergleichsmodus angegeben. Auf der Firmware-Version 4.1.1 führt dies laut unseren Tests dazu, dass der Comparator immer false liefert, unabhängig von den Werten!

Verbesserung: Wir haben explizite Modi hinzugefügt (hier Mode 3, was >= bedeutet).

["Comparator", "$I_Wasserstand_Ist", "$Calc_Wasserstand_OK", "$P_Wasserstand_Schwelle_OK", 3]

["Comparator", "$I_Bodentrockenheit_Ist", "$Calc_Boden_Ist_Trocken_Genug", "$P_Bodentrockenheit_Schwelle_Trocken", 3]

Wichtig für dich: Bitte prüfe, ob >= (Mode 3) für deine Sensoren und Logik korrekt ist. Wenn z.B. der Wasserstand kleiner als eine Schwelle sein muss, bräuchtest du Mode 1 (<) oder 2 (<=). Unsere gemeinsame Referenzdatei (Link siehe Signatur von eib-eg oder suche nach "TWS_CustomLogic_Reference") enthält in Tipp 11 eine detaillierte Erklärung der Comparator-Modi.

Externer Trigger für Automatikstart:

Du erwähntest einen externen Trigger um 4 Uhr. Wir haben dafür einen neuen Input $I_Trigger_Automatik_Start (Typ "a") hinzugefügt.

Die Automatik startet jetzt nur, wenn dieser Trigger kommt UND die anderen Bedingungen (Wasserstand, Trockenheit, Automatikmodus aktiv) erfüllt sind ($Calc_Automatik_Start_Signal).

Monoflop-Modus:

Du hattest Mode 3 (Flanke steigend, retriggerbar) verwendet.

Verbesserung: Wir haben Mode 2 (Flanke steigend, nicht retriggerbar) eingesetzt. Das stellt sicher, dass der Timer nach dem Start durch den 4-Uhr-Trigger einmal für die eingestellte Dauer läuft und nicht durch eventuell länger anstehende Triggerbedingungen neu gestartet wird. Wenn du ein retriggerbares Verhalten bevorzugst, kannst du wieder auf Mode 3 wechseln. (Siehe Tipp 22 unserer Referenz.)

Reset-Logik für den Automatik-Timer:

Der Automatik-Timer ($O_Automatik_Timer_Aktiv) wird nun zurückgesetzt, wenn:

Der Automatik-Modus ($I_Automatik_Ein_Aus) ausgeschaltet wird.

Oder wenn der manuelle Betrieb über $I_Manuell_Start_Stop aktiviert wird (Erkennung der steigenden Flanke des Tasters). Das verhindert, dass die Automatik "im Hintergrund" weiterläuft, wenn du manuell eingreifst.

Klarere Variablennamen und Struktur:

Wir haben versucht, die Variablennamen etwas sprechender zu gestalten und die Modulblöcke durch Kommentare zu gliedern, um die Lesbarkeit zu erhöhen.

Wie du diesen Vorschlag testen solltest:

Kopiere den gesamten Code (inklusive { am Anfang und } am Ende) in eine neue Custom Logikzelle in deinem Timberwolf Server.

Verknüpfe die Inputs:

Manuell_Start_Stop mit deinem Taster.

Automatik_Ein_Aus mit deinem Schalter/Taster für den Automatikmodus.

Trigger_Automatik_Start mit dem Objekt, das deinen 4-Uhr-Impuls liefert (z.B. Ausgang eines Cron-Jobs).

Die restlichen Inputs mit deinen Sensoren und Sollwert-Objekten für Dauer, Wasserstand und Trockenheit.

Verknüpfe die Outputs:

Pumpe_Ein_Aus mit dem Objekt, das deine Pumpe schaltet.

Automatik_Timer_Aktiv und Status_Betriebsart optional mit Statusanzeigen.

Passe die Schwellwerte an:

$P_Wasserstand_Schwelle_OK und $P_Bodentrockenheit_Schwelle_Trocken müssen auf deine Gegebenheiten und Sensoren angepasst werden. Achte auch darauf, ob die Comparator-Logik (größer/kleiner gleich) zu deinen Sensoren passt!

Teste die Funktionen:

Manueller Modus: Lässt sich die Pumpe mit $I_Manuell_Start_Stop ein- und ausschalten? Stoppt ein laufender Automatik-Timer, wenn du manuell einschaltest?

Automatik Modus:

Aktiviere $I_Automatik_Ein_Aus.

Stelle sicher, dass die Bedingungen für Wasserstand und Trockenheit so sind, dass die Automatik starten sollte.

Simuliere den $I_Trigger_Automatik_Start (z.B. durch manuelles Setzen des verbundenen Objekts).

Läuft die Pumpe für die eingestellte $I_Bewae_Dauer_min?

Wird der Timer korrekt gestoppt, wenn $I_Automatik_Ein_Aus während des Laufs deaktiviert wird?

Wir hoffen, dieser überarbeitete Entwurf hilft dir weiter! Gib uns gerne Feedback, ob es damit besser klappt oder wo es noch hakt. Das Triggered-Modul, das Matthias (ms20de) erwähnt hat, könnte auch eine elegante Lösung für die Unterscheidung der Trigger-Quellen sein, falls du das noch feingranularer brauchst.

Viele Grüße,
Georg (eib-eg) & die unterstützende AI

Zusätzliche Tipps für Frank (als "Zuckerl" direkt im Beitrag oder als Antwort):

Tipp zur Comparator-Logik: "Denk daran, dass bei den Comparatoren der gewählte Modus (z.B. 3 für >=) entscheidend ist. Wenn deine Sensoren andersherum funktionieren (z.B. niedriger Wert = trocken), musst du den Modus oder die Logik anpassen. Schau dir dazu auch Tipp 11 in unserer großen Referenzdatei an – eib-eg kann dir sicher den Link geben."

Tipp zum externen Trigger: "Der Input $I_Trigger_Automatik_Start ist der Schlüssel für deinen zeitgesteuerten Start. Stelle sicher, dass dieser zuverlässig um 4 Uhr (oder wann immer du möchtest) einen kurzen Impuls (TRUE) bekommt. Ein Cron-Job im Timberwolf Server ist dafür ideal."

Tipp zur Fehlersuche: "Wenn etwas nicht wie erwartet funktioniert, schau dir die Werte der internen $Calc_ Variablen über den Debug-Modus der Logikzelle an oder lege sie testweise auf Ausgänge. Das hilft enorm, den Fehler einzugrenzen. Und vergiss nicht den $Error? Output!"
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
TW 2600_99 seit 1.1.2018 / VPN zu
Antworten

Zurück zu „Logikengine & Logik-Editor“