Forum: Offtopic Monitoring Lösung / Backend für den Tüftler


von Filth _. (filth)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

da ich beruflich mit dem Thema zu tun habe und diese Dinge spannend und 
nützlich finde, wollte ich in die Runde fragen, ob Interesse an einem 
Portal besteht, welches Daten beliebiger Geräte aufzeichnen kann. Es 
werden Schnittstellen wie zB MQTT und eine REST Api angeboten. Über 
diese können Daten gesendet werden und dann über das Portal abgerufen 
werden.

Damit lassen sich dann Überwachungslösungen realisieren, ohne dass man 
sich um den Backend-Teil kümmern muss. Ich selbst verwende so ein System 
beispielsweise, um die Temperaturen an unserem Ferienhaus auf Island zu 
überwachen. Es lassen sich Alarme einrichten, so dass ich eine Email / 
SMS bekomme, wenn zB die Heizung ausfällt oder die Temperaturen unter 
bestimmte Schwellen fallen.

Es geht darum dem Tüftler die Arbeit abzunehmen, selbst irgendwelche 
MQTT Broker aufzusetzen / sich um Grafana etc zu kümmern. Das Ganze 
sieht dann so wie im Screenshot aus.

Falls es interessant ist, würde ich diese Lösung für den 
Consumer-Bereich anbieten.

Viele Grüße
Alex

: Bearbeitet durch User
von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Filth _. schrieb:
> wollte ich in die Runde fragen, ob Interesse an einem Portal besteht...

Ja, besteht. Wie nun weiter?

von Filth _. (filth)


Lesenswert?

Ich würde als Nächstes die Infrastruktur aufsetzen und verfügbar machen.

Mir geht es hier darum einfach in eine Diskussion einzusteigen und zu 
verstehen, ob Bedarf an solch einer Lösung besteht. Falls ja, investiere 
ich gerne meine Zeit und stelle das zur Verfügung.

Mir geht es nicht darum, damit reich zu werden - ich habe einfach Spaß 
an diesen Dingen, mache es beruflich und könnte es parallel dazu für den 
Hobbygebrauch privat anbieten. Wenn meine Serverkosten gedeckt sind, ich 
ein paar Bier davon kaufen kann und die Leute glücklich sind, hat man 
eine Win-Win Situation.

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Hallo Alex,
das klingt gut. Ich bin derzeit an einem Projekt, wo ein autonomes 
Wasserfahrzeug (irgendwo draußen auf See) in Intervallen einen Datensatz 
zu Position und Zustand unterschiedlicher Sensoren über APRS sendet. 
Mittels einer APRS-IS to MQTT Bridge könnten diese dann prima über deine 
Lösung visualisiert werden, ohne dass wir uns um das Backend kümmern 
müßten.
Gruß Joe

von Filth _. (filth)


Lesenswert?

Hallo Joe,

genau an diese Zielgruppe dachte ich: diejenigen, die die Hardware haben 
aber sich die Zeit sparen wollen, da noch am Backend rumzufummeln.

Ich werde in Kürze eine erste Arbeitsversion veröffentlichen.

Viele Grüße
Alex

von Filth _. (filth)


Lesenswert?

Der Grundaufbau ist schon mal da. Ich würde gerne mit 1-2 Usern die 
Grundfunktionen testen - gerne per PN.

von 100Ω W. (tr0ll) Benutzerseite


Lesenswert?

Filth _. schrieb:
> Ich würde gerne mit 1-2 Usern die
> Grundfunktionen testen - gerne per PN.

Hi,

ich würde gerne „mittesten“.

Vielen Dank
tr0ll

von Filth _. (filth)


Lesenswert?

Ich habe Dir eine PN geschrieben.

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Wie schon oben gesagt, ich würde es nach meinen Möglichkeiten testen.
Joe

von Filth _. (filth)


Lesenswert?

Hi Joe,

ich richte Dir ebenfalls einen Zugang ein und melde mich die Tage.

Viele Grüße
Alex

von Filth _. (filth)


Lesenswert?

@Joe

schreibe mir bitte an meine Mailadresse alxtbk@gmail.com, ich brauche 
deine Emailadresse für den Account.

Grüße
Alex

von Filth _. (filth)


Lesenswert?

Die Anmeldung ist freigeschaltet. In der aktuellen Testphase ist das 
Ganze kostenlos.

Portal ist erreichbar über https://datahub.010102.de

Ablauf is wie folgt:

1) Anmelden bzw registrieren
2) Ein Device anlegen (zB Kessel)
3) Sensoren anlegen (Temperatur, Leistung). Bei nur einem vorhandenen 
Device werden Sensoren automatisch zum Device zugeordnet
4) Unter dem Device rechts oben "Actions" --> "Sensor Config". Dort sind 
nun alle zugeordneten Sensoren zu sehen. Wenn man auf "How to transmit 
data" klickt, öffnet sich unter jedem Sensor eine Erklärung, wie man die 
Daten übermitteln muss.

Datenübermittlung über REST

In diesem Fall muss ein X-AUTH-TOKEN in den Request Header geschrieben 
werden und der Wert mit einem POST Request an die URL aus der 
Beschreibung gesendet werden. Der X-AUTH-TOKEN identifiziert den User - 
also einfach aus der Info-Box rauskopieren. Dieser Token is pro User 
einmalig.

Die Url setzt sich immer gleich zusammen:
https://datahub.010102.de/uv1/api/sensor/{sensorId}/measurement
Der Payload ist der Sensorwert: { "value":12567 } (json).
content-type muss application/json sein


Datenübermittlung über MQTT

Hier eine MQTT Verbindung mit den Daten aus dem Info-Fenster herstellen. 
Benutzername und Passwort sind die Zugangsdaten aus der Portalanmeldung.
Client-ID muss die Device-ID sein. Diese findet man raus, wenn man das 
Device bearbeitet (EDIT) - dort die ID kopieren.

Der Topic an den die Daten gesendet werden müssen, setzt sich immer 
gleich zusammen: device/{deviceId}/rawdata

Der payload setzt sich so zusammen: {"value": 5.0, "sensor_id": 
"b7747dc9-18f5-451c-8ca3-5ec69c723e3b"} die SensorID ist hier ein 
Beispiel - die korrekte ID steht dann bei jedem Sensor in der Übersicht 
dabei

5) Wenn nun Daten gesendet werden, kann man unter Actions-->Dashboards 
sich schöne Dashboards zusammenklicken und speichern. Diese erscheinen 
dann bei dem Device.

Wenn was unklar ist - gerne fragen.

von 100Ω W. (tr0ll) Benutzerseite


Lesenswert?

Hi,

ich habe eine simples in Python geschrieben, welches Messwerte zu 
Datahub senden sollte. Vom Datahub bekomme ich eine 200 zurück.
1
import requests
2
3
auth_token="<auth token>"
4
5
'''
6
header = {
7
  "X-AUTH-TOKEN": auth_token
8
}
9
'''
10
header = {"X-AUTH-TOKEN": auth_token, "Content-Type": "application/json"}
11
12
data = {
13
  "value": 42,
14
}
15
data = json.dumps(data)
16
17
url = 'http://datahub.010102.de/uv1/api/sensor/<sensor-id>/measurement'
18
response = requests.post(url, json=data, headers=header)
19
print(response)

Hat jemand eine Idee, warum das Skript nicht geht?

Vielen Dank
tr0ll

von Filth _. (filth)


Lesenswert?

Die 42 ist aber im Backend angekommen, sieht man auch im Chart. Passt 
die Zeit?

von 100Ω W. (tr0ll) Benutzerseite


Lesenswert?

Filth _. schrieb:
> Die 42 ist aber im Backend angekommen, sieht man auch im Chart.
> Passt
> die Zeit?

Im Backend ist nichts angekommen.

von Filth _. (filth)


Lesenswert?

Ich schaue mir das gleich an. Sieht eigentlich alles richtig aus.

von Filth _. (filth)


Lesenswert?

Die Url ist falsch, du musst https:// statt http:// verwenden.

Eigentlich bekommst du da auch einen 301 response code zurück - 
zumindest ist es im chrome rest plugin so.

von 100Ω W. (tr0ll) Benutzerseite


Lesenswert?

Filth _. schrieb:
> Die Url ist falsch, du musst https:// statt http:// verwenden.

Mit Https ging es auch nicht.

von Filth _. (filth)


Lesenswert?

Gerade das Script ausprobiert, das muss so aussehen, dann klappt es:

data = {
  "value": 666
}

url = 'https://datahub.010102.de/uv1/api/sensor/<sensorid>/measurement';
response = requests.post(url, data, headers=header)
print(response)

von 100Ω W. (tr0ll) Benutzerseite


Lesenswert?

Vielen Dank, irgendwie hab ich Vergessen ein “,“ zu löschen.

: Bearbeitet durch User
von Filth _. (filth)


Lesenswert?

Das Komma ist nicht das Problem - diese Zeile muss weg:

data = json.dumps(data)

und dafür direkt so posten:

response = requests.post(url, data, headers=header)

: Bearbeitet durch User
von 100Ω W. (tr0ll) Benutzerseite


Angehängte Dateien:

Lesenswert?

Jetzt kann ich keine neuen Devices mehr anlegen.
Fehler siehe anhang.

von Filth _. (filth)


Lesenswert?

Ups.

Gefixt - probiere nochmal.

von Filth _. (filth)


Lesenswert?

Ich habe gesehen, dass ich da Quatsch zu Deinem Python script 
geschrieben habe.

Hier ist die vollständige und korrekte Version:

https://github.com/filthz/datahub-examples/blob/main/submit_data.py

: Bearbeitet durch User
von 100Ω W. (tr0ll) Benutzerseite


Lesenswert?

Filth _. schrieb:
> Ich habe gesehen, dass ich da Quatsch zu Deinem Python script
> geschrieben habe.
>
> Hier ist die vollständige und korrekte Version:
>
> https://github.com/filthz/datahub-examples/blob/main/submit_data.py

Vielen Dank, jetzt geht es.

von Joe G. (feinmechaniker) Benutzerseite


Angehängte Dateien:

Lesenswert?

Die Inbetriebnahme war für mich doch mit einigen Hürden verbunden, danke 
Alex für die Hilfe!
Anbei mal ein lauffähiger Arduino Sketch für einen ESP8266 mit einem 
DHT11 Sensor für Temperatur und Luftfeuchte. Damit sollte der Einstieg 
vielleicht leichter fallen ;-)
Gruß Joe

von Cyblord -. (cyblord)


Lesenswert?

Joe G. schrieb:
> Anbei mal ein lauffähiger Arduino Sketch für einen ESP8266 mit einem
> DHT11 Sensor für Temperatur und Luftfeuchte. Damit sollte der Einstieg
> vielleicht leichter fallen ;-)

Mit einer Quelldatei als TXT? Das neue Jahr fängt für die Arduinos wohl 
auch nicht besser an als das Alte geendet hat.

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Cyblord -. schrieb:
> Mit einer Quelldatei als TXT? Das neue Jahr fängt für die Arduinos wohl
> auch nicht besser an als das Alte geendet hat.

Etwas weniger Überheblichkeit würde auch im neuen Jahr gut ankommen ;-)
Es ist einfach ein textbasierter Quelltext. Ob *.TXT oder *.FUK oder 
*.### ist ja wohl egal. Vor 40 Jahren habe ich PL1 oder Fortran auf 
Lochkarten geschrieben. Gestern habe ich ihn in eine Textdatei kopiert - 
wo ist dein Problem?

von Cyblord -. (cyblord)


Lesenswert?

Joe G. schrieb:
> Vor 40 Jahren habe ich PL1 oder Fortran auf
> Lochkarten geschrieben. Gestern habe ich ihn in eine Textdatei kopiert -
> wo ist dein Problem?

Hahaha und heute machst du "Maker-Schüler-Arduino-Quatsch" und postet 
Quelltext im TXT Format. Oh das wäre mir peinlich.

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Cyblord -. schrieb:
> Hahaha und heute machst du "Maker-Schüler-Arduino-Quatsch" und postet
> Quelltext im TXT Format. Oh das wäre mir peinlich.

Das darf dir gerne peinlich sein, mir ist es das nicht. Mir ging es um 
den Versuch einen MQTT Brocker schnell und ohne viel Aufwand 
anzusprechen um ihn für einen späteren Einsatz zu testen – nicht mehr 
und nicht weniger.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.