Flankenerkennung in n8n


n8n ist eine in Deutschland entwickelte Automatisierungsplattform. Ich nutze sie, um ein konkretes Problem zu lösen: Folding@home soll nur dann laufen, wenn die Photovoltaikanlage genügend Strom liefert. Wird ein Schwellenwert der Stromproduktion unterschritten, soll Folding@home gnädig (gracefully) beendet werden, wobei das aktuelle Arbeitspaket (work unit) noch abgearbeitet werden soll. Da es hierfür kein aktuelles Home-Assistant Plugin gibt, muss ich das manuell machen.

Ausschnitt aus der Startseite von n8n

Dafür ist es notwendig, dass n8n Flanken erkennt, also den Umsprung eines Werts. In n8n eingebaut sind einfache Vergleiche wie der, ob die aktuelle Einspeiseleistung – die ich über Home-Assistant beziehe – größer als der Schwellenwert -250 ist. Wenn ja, fahre mit dem Ja-Zweig fort.

Ein einfacher Vergleich in n8n – Der Zustand (state) des letzten Schritts soll größer als der Schwellenwert sein

Damit bekäme ich immer eine Push Notification, wenn der Schwellenwert überschritten ist. Bei halbstündlicher Durchführung also mehr als 16 bis 24 mal am Tag. Ich möchte eine Lösung, bei der ich nur eine Push Notification bekomme, wenn die Leistung den Schwellenwert überschreitet UND der Schwellenwert vorher nicht überschritten war; eine Flankenerkennung in n8n.

Ich muss den vorletzten Wert speichern, um ihn mit dem letzten Wert vergleichen zu können. Hierzu verwende ich postgresql. In der Tabelle state wird last_value in der Zeile auf den vorletzten Wert gesetzt, deren Nummer (ID) 1 ist.

Zwischenspeicherung des vorletzten Werts

Im Falle, dass der Schwellenwert überschritten worden ist, muss ich nun den vorletzten Wert aus der Postgresql-Datenbank lesen…

… und sicherstellen, dass dieser vorletzte Wert kleiner als (oder gleich) der selbe Schwellenwert ist.

Flankenerkennung – der neue, obere Wert ist über dem Schwellenwert,
während er davor unter dem Schwellenwert war

Wenn eine Flanke erkannt worden ist, bekomme ich über Telegram eine push Notification.

Voila. Eine Möglichkeit eine Flankenerkennung in n8n zu implementieren.

Der gesamte n8n Workflow auf einem Blick


Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert