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"]
]
}