Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
Natürlich haben wir vergessen, zu verhindern, dass die Rule mehrfach triggert. Es befinden sich ja etliche Items in der Gruppe, die alle gleichzeitig ein Update erhalten. jede Wertänderung löst die Rule aus.
Die eine Sache wäre also, den Trigger anders zu wählen. z.B. könntest Du leicht ein Time cron verwenden, da die Items (wenn ich es noch richtig im Kopf habe) nur 3 mal täglich zu festen Zeiten aktualisiert werden.
Die zweite Sache ist, dass ein case für "0" fehlt. Natürlich müsste dann ein "kein" als Text eingefügt werden.
Da wäre nun die Frage, ob diese Meldungen unterdrückt werden sollen.
Außerdem habe ich vergessen, den Meldetext je Pollenart neu zu initialisiseren, weshalb alle Meldungen mit der Esche beginnen...
rule "Pollenwarnung"
when
Time cron "30 10 6,13,20 * * ?" // fixe Zeiten 06:10:30, 13:10:30, 20:10:30
// die Zeiten sind willkürlich gewählt...
then
gPollen.members.filter[i|i.name.split("_").get(2) == "0"].forEach[p|
var String strMessage = "Achtung! Pollenflugvorhersage für "
var String strSorte = p.name.split("_").get(1)
strMessage = strMessage + strSorte + ": "
gPollen.members.filter[j|j.name.split("_").get(1) == strSorte && j.state.toString != "-1" && j.state.toString != "0"].sortBy[name].forEach[q|
// gPollen.members.filter[j|j.name.split("_").get(1) == strSorte && j.state.toString != "-1"].sortBy[name].forEach[q|
if(strMessage.endsWith(" Pollenflug"))
strMessage = strMessage + "; "
switch (q.name.split("_").get(2)) {
case "0" : strMessage = strMessage + "Heute "
case "1" : strMessage = strMessage + "Morgen "
case "2" : strMessage = strMessage + "Übermorgen "
}
switch (q.state.toString) {
case "0" : strMessage = strMessage + "kein"
case "0-1" : strMessage = strMessage + "kein bis niedriger"
case "1" : strMessage = strMessage + "niedriger"
case "1-2" : strMessage = strMessage + "niedriger bis mittlerer"
case "2" : strMessage = strMessage + "mittlerer"
case "2-3" : strMessage = strMessage + "mittlerer bis starker"
case "3" : strMessage = strMessage + "starker"
}
strMessage = strMessage + " Pollenflug"
]
strMessage = strMessage + "."
if(strMessage.endsWith(" Pollenflug.")) // diese Zeile gegebenenfalls auskommentieren
sendBroadcastNotification(strMessage)
// else {
// strMessage = "Achtung! Pollenflugvorhersage für "+strSorte+": Kein Pollenflug."
// sendBroadcastNotification(strMessage)
// }
]
end
Die auskommentierten Zeilen sind alternativ. So, wie sie ist, sollten nur die Texte ausgegeben werden, die auch mehr als keinen Pollenflug vorhersagen.
Falls für eine Pollenart an einem der Tage gar kein Pollenflug vorhergesagt wird, wird die Meldung für diesen Tag unterdrückt.
Ist das unerwünscht, so wären die die Kommentarzeichen um eine Zeile nach oben zu verschieben (also entweder die eine oder die andere Zeile aktiv).
Die letzte if-Anweisung sorgt dafür, dass die Meldung für eine Pollenart unterdrückt wird, wenn es keinen Pollenflug im Vorhersagezeitraum gibt. Wenn hier zumindest eine Meldung erfolgen soll, dass es nichts zu melden gibt, müsstest Du beim letzten Block die Kommentazeichen entfernen. Der Teil ist aber nur relevant, wenn die Meldung "kein" Pollenflug oben schon unterdrückt wird.
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Kommentar