Skip to content

Notfallalarm

sochs edited this page Apr 21, 2018 · 1 revision

In der aktuellen Software v0.9.9 wird bei einem aktivierten Kanalalarm einmalig eine Push Notification an an den externen Benachrichtigungsdienst Telegram oder Pushover versendet. Die nächste Benachrichtigung erfolgt erst wieder bei einer erneuten Temperaturgrenzüberschreitung. Hier findest du einen kleinen Workaround, wie du dir einen zusätzlichen "Notfallalarm" bauen kannst, falls dir der einmalige Alarm nicht ausreicht, um dich in der Nacht aus deinen Träumen zu wecken.

Wichtiger Hinweis: Bei dem im folgenden vorgestellten Notfallalarm handelt es sich um eine zusätzliche Alarmfunktion, die eine dauerhafte Alarmierung per Push Notification ermöglicht. Dieser Alarm kann nicht einfach quittiert werden, wie zum Beispiel der Hardwarealarm. Vielmehr muss zur Deaktivierung entweder die Tatensendung zu Thingspeak deaktiviert werden (im Webinterface) oder die in Thingspeak aktivierte React-Funktion gelöscht werden (auf der Thingspeak-Homepage). Alternativ stoppt der Alarm natürlich auch dann, wenn sich die Temperatur wieder in die im React vorgegebenen Grenzen befindet. Die für den Notfallalarm festgelegten Grenzwerte müssen nicht den in den Kanaleinstellungen festgelegten Grenzwerten entsprechen und sollten eventuell etwas weiter gefasst werden, sodass zuerst die normale Push Benachrichtung aktiv wird. Der Notfallalarm sollte nur eingerichtet werden, wenn du ganz sicher geweckt werden willst.


Für den Notfallalarm werden ein Account bei Thingspeak und ein externer Benachrichtigungsdienst wie Telegram oder Pushover benötigt. Im Folgenden werden die Schritte für die Einrichtung eines Notfallalarms vorgestellt, am Beispiel von Telegram. Um einen anderen externen Dienst anzusprechen, muss die API unter Punkt 6 entsprechend angepasst werden.


Punkt 1: Thingspeak-Account einrichten

Als erstes wird ein Thingspeak-Account benötigt. Hierfür legst du unter www.thingspeak.com einen kostenlosen Account an. Mit Thingspeak hast du die Möglichkeit deine gemessenen Temperaturdaten zu sammeln und weiterzuverarbeiten. Für den Notfallalarm werden wir dabei die Möglichkeit nutzen die Daten zu analysieren und bei einer Temperaturüberschreitung einen sog. React auszulösen, der dann wiederum den externen Benachrichtigungsdienst aktiviert. Über den Daten-Sendeintervall an Thingspeak können wir dann bestimmen, mit welcher Häufigkeit der Notfallalarm ausgelöst werden soll.


Punkt 2: In Thingspeak einen Channel erstellen

Um die am Nano gemessenen Tmeperaturen in Thingspeak speichern zu können, benötigst du einen sog. Channel. Diesen erstellst du auf der Thingspeak-Homepage unter dem Menüpunkt Channels/MyChannels über den Button "New Channel". Es öffnet sich ein Formular in dem du folgende Felder ausfühlen solltest. Als erstes gib dem Channel einen Namen, z.B. "Datensammlung Notfallalarm". Als nächstes musst du festlegen welche Temperaturkanäle in Thingspeak aufgezeichnet werden sollen, also für welchen Messkanal du einen Notfallalarm einrichten möchtest. Hierfür wählst du unter Field 1 bis Field 8 die entsprechenden Felder passend zur Kanalnummer aus und gibst ihnen einen Namen, z.B. "Kanal 1 / Garraum". Wenn du alle Kanäle aktiviert hast, die beim Notfallalarm berücksichtigt werden sollen, bist du mit dem Formular schon fertig. Mehr musst du im Formular nicht ausfüllen. Ganz unten den Channel speichern, in dem du auf das Feld "Save Channel" drückst.


Punkt 3: Write API Key und Channel ID auslesen und im Webinterface eintragen

Nach dem Speichern des Channels öffnet sich dieser und du siehst direkt die zum Channel gehörende Channel ID. Diese trägst du im Webinterface deines Nanos im Bereich IoT in das Feld "Channel ID" unter Thingspeak ein. Als nächstes gehst du wieder zum Channel auf der Thingspeak-Homepage und öffnest den Menü-Punkt API-Keys. Dort findest du an oberster Stelle den "Write API Key" des Channels. Diese trägst du ebenfalls im Nano-Webinterface im entsprechenden Feld ein. Als letztes aktivierst du die Datenübertagung zu Thingspeak noch durch das Setzen des Hakens bei "Thingspeak aktivieren" und speicherst die Seite. Anhand des Write API Key und der Channel ID hast du dein Nano mit deinem Channel in Thingspeak verknüpft und nun sendet dein Nano im eingestellten Sendeintervall die gemessenen Temperaturen an deinen Thingspeak-Channel.


Punkt 4: Verbindung zu Thingspeak testen

Wenn noch nicht geschehen, dann schließt du nun deine Temperaturfühler an dein Nano an und solltest dann nach ein paar Sekunden die ersten an Thingspeak übermittelten Daten im Thingspeak-Channel sehen. Voraussetzung dafür ist natürlich, dass dein WLANThermo Nano eine Verbindung zum Internet hat. Wenn die Datenübertagung an Thingspeak funktioniert, kann es mit der Einrichtung des Notfallalarms beginnen.


Punkt 5: Telegram-Bot erstellen und Token und Chat ID auslesen

Als nächstes benötigst du einen Account bei einem externen Benachrichtigungs-Dienst für die Push Notification. Zu empfehlen ist hier Telegram, da es kostenlos genutzt werden kann und es so gut wie auf jedem Endgerät eingerichtet werden kann. Wenn du Telegram nicht sowieso schon für die Push Benachrichtigungsfunktion am Nano eingerichtet hast, folge zum Einrichten des Telegram-Bots und dem Auslesen des Token sowie der ChatID bitte den Anweisungen unter diesem Link. Speichere dir am Ende den Token und die ChatID in einem Textfile ab, diese brauchen wir im nächsten Schritt.


Punkt 6: Alarmbenachrichtigung zu Telegram über ThingHTTP einrichten

Damit Thingspeak weiß, an wenn es sich später bei einem React wenden soll, musst du über die Thingspeak-Funktion ThingHTTP eine Verknüpfung von Thingspeak zum externen Benachrichtigungsdienst einrichten. Wechsel dafür nun in Thingspeak zum Menüpunkt Apps/ThingHTTP und lege dort ein neues ThingHTTP über den Button "New ThingHTTP" an. Im Formular füllst du folgende Felder wiefolgt aus.

Name: Telegram Notification

URL: https://api.telegram.org/bot2802201xx:AAHdw_5QeO1lfIhXU8ja_IlpSSg2gYTJXtU/sendMessage

(An dieser Stelle ersetzt du im hier angezeigten Link den Token nach "bot" durch deinen 45-stelligen Token aus Punkt 5.)

Method: POST

Content Type: application/x-www-form-urlencoded

HTTPVersion: 1.1

Body: chat_id=256298664&text=ALARM

(Auch an dieser Stelle bitte die angezeigte ChatID durch deine ChatID aus Punkt 5 ersetzen.)

Mit "Save ThingHTTP" alles Speichern. Wenn du an dieser Stelle nicht Telegram als Benachrichtigungsdienst nutzen willst, musst du die Eingaben im Formular entsprechen der API des anderen Dienstes anpassen. Schau hierfür bitte auf die API-Beschreibung des anderen Dienstes und fülle die Felder im Formular entsprechend aus.


Punkt 7: React in Thingspeak erstellen

Als letztes musst du nun noch den React in Thingspeak einrichten, der bei einer Temperaturüberschreitung die Benachrichtigung über den ThingHTTP auslöst. Wechsel hierfür in Thingspeak zum Menüpunkt Apps/React und erstelle mit "New React" einen neuen React. Ein React gilt immer für einen Temperaturkanal und eine Grenzüberschreitung. Willst du mehrere Messkanäle mit jeweils mehreren Grenzwerten im Notfallalarm aufnehmen, so musst du entsprechend viele Reacts einrichten. Im sich öffnenden Formular füllst du folgende Felder aus:

React Name: oberer Alarm Kanal 1 (hier entsprechend je Kanal und Grenze anpassen)

Condition Type: Numeric

Test Frequency: On Data Insertion (damit wir die Intervallfunktion am Nano nutzen können)

Condition: If Channel -> hier wählst du den unter Punkt 2 erstellten Channel aus

field-> hier wählst du den Messkanal für den Alarm aus

is greater than -> für eine obere Temperaturgrenze oder is less than -> für untere Temperaturgrenze

und darunter trägst du die Grenztemperatur ein, z.B. 120

Action: ThingHTTP und wähle den unter Punkt 6 erstellten ThingHTTP aus

Options: Run action each time condition is met (damit du bei jedem Intervall eine Benachrichtigung erhälst, sofern der React ausgelöst wird)

Am Ende wieder speichern. Das wars.


Punkt 8: Alarm testen

Ok, ab jetzt werden die gemessenen Temperaturen von deinem Nano an Thingspeak gesendet, dort analysiert und sofern ein React ausgelöst wird, sendet Thingspeak über die ThingHTTP-Funktion eine Nachricht an deinen externen Benachrichtigungsdienst. Zum Testen des Notfallalarms erwärme nun einen der Messkanäle zu dem es einen React gibt über die im React eingestellte Temperatur. Nun sollte alle 30s (bzw. je nach dem welche Intervallzeit du eingestellt hast) ein Alarm über Telegram erscheinen, so lange wie der Kanal eine Übertemperatur hat. Den Sendeintervall kannst du im Bereich IoT im Webinterface auch noch auf 15s herabsenken, um häufiger benachrichtigt zu werden.


Hinweis: Wie bereits erwähnt lässt sich dieser Notfallalarm nur deaktivieren, indem man entweder den React in Thingspeak löscht, die Datenübertagung zu Thingspeak abschaltet oder den Messfühler aus der Buchse entfernt sofern noch eine Grenzüberschreitung vorliegt.