Ich habe unter anderen jetzt gelesen, dass harte Nüsse und so u.a. für LLM Experimente gesucht werden...
Hier war meine Anforderung an meine KI (ChatGPT):
1. Automatische Bewässerung nur wenn:
Regenmenge der letzten 2 Stunden ist < 5 mm
UND (Temperatur aktuell > 24 °C ODER Durchschnitt der letzten 3 h > 23 °C)
UND Uhrzeit ist genau 04:30 Uhr
UND es besteht keine aktive Sperre (36 h)
2. Manuelle Aktivierung möglich
z. B. per Taster oder über Visu
Diese umgeht alle Bedingungen außer der Sperre
3. Sperrlogik (36h):
Nach manuellem Start oder
wenn Regen ≥ 5 mm in 2h
→ wird eine Sperre aktiviert (Monoflop)
→ Dauer: 36 Stunden (129600 Sekunden)
Hinweis: Ich wollte 3 Tage Sperre, hab aber 36h bei der Erstellung angegeben. 3 Tage Nacht mehr Sinn, aber tut der Logik ja nichts zur Sache.
Heraus kam folgende Logik:
Code: Alles auswählen
{
  "Level": [
    ["$Rain_2h", "float", 0],
    ["$Temp_now", "float", 25],
    ["$Temp_3h_avg", "float", 24],
    ["$Hour", "int", 4],
    ["$Min", "int", 30],
    ["$LockActive", "int", 0],
    ["$ManualTrigger", "int", 0],
    ["$RainLimit", "float", 5],
    ["$TempLimitNow", "float", 24],
    ["$TempLimitAvg", "float", 23],
    ["$HourTarget", "int", 4],
    ["$MinTarget", "int", 30],
    ["$One", "int", 1],
    ["$RainHigh", "int", 0],
    ["$RainLow", "int", 0],
    ["$TempNowOk", "int", 0],
    ["$TempAvgOk", "int", 0],
    ["$TempOk", "int", 0],
    ["$HourOk", "int", 0],
    ["$HourNotOk", "int", 0],
    ["$MinOk", "int", 0],
    ["$MinNotOk", "int", 0],
    ["$TimeOk", "int", 0],
    ["$NoLock", "int", 0],
    ["$AutoStart", "int", 0],
    ["$LockTrigger", "int", 0],
    ["$WaterOn", "int", 0]
  ],
  "Module": [
    ["Comparator", "$Rain_2h", "$RainHigh", "$RainLimit"],
    ["Xor", ["$RainHigh", "$One"], "$RainLow"],
    ["Comparator", "$Temp_now", "$TempNowOk", "$TempLimitNow"],
    ["Comparator", "$Temp_3h_avg", "$TempAvgOk", "$TempLimitAvg"],
    ["Or", ["$TempNowOk", "$TempAvgOk"], "$TempOk"],
    ["Comparator", "$Hour", "$HourOk", "$HourTarget"],
    ["Xor", ["$HourOk", "$One"], "$HourNotOk"],
    ["Comparator", "$Min", "$MinOk", "$MinTarget"],
    ["Xor", ["$MinOk", "$One"], "$MinNotOk"],
    ["And", ["$HourOk", "$MinOk"], "$TimeOk"],
    ["Xor", ["$LockActive", "$One"], "$NoLock"],
    ["And", ["$RainLow", "$TempOk", "$TimeOk", "$NoLock"], "$AutoStart"],
    ["Or", ["$ManualTrigger", "$AutoStart"], "$WaterOn"],
    ["Or", ["$ManualTrigger", "$RainHigh"], "$LockTrigger"],
    ["Monoflop", "$LockTrigger", 0, "$LockActive", 129600, 0]
  ],
  "Input": [
    ["Rain_2h", "Regen 2h (mm)", "$Rain_2h", "c"],
    ["Temp_now", "Temperatur aktuell (°C)", "$Temp_now", "c"],
    ["Temp_3h_avg", "Temperatur 3h Mittel (°C)", "$Temp_3h_avg", "c"],
    ["Hour", "Aktuelle Stunde", "$Hour", "c"],
    ["Min", "Aktuelle Minute", "$Min", "c"],
    ["ManualTrigger", "Manuelle Aktivierung", "$ManualTrigger", "c"]
  ],
  "Output": [
    ["WaterOn", "Bewässerung aktiv", "$WaterOn", "c"],
    ["LockActive", "Sperre aktiv", "$LockActive", "c"]
  ]
}

