| Seite | Inhalt | |
|---|---|---|
| Startseite | Übersicht | |
| Hauptanleitung | Gesamtüberblick, Begriffsklärung, Teil 1–3 (FRITZ!Box, Raspberry Pi/EmonCMS, Sensor-Boxen), Ein-/Ausschalten, Zugänge-Checkliste, SENSOR_ID-Übersicht | |
| Sensoren in EmonCMS einbinden | Wiederkehrender Ablauf für jede neue Sensor-Box: API-Key, Inputs, Feeds, Dashboard | |
| Programmcode der Sensor-Boxen | Vollständiger Arduino-Code: Testsensor, einfacher BME280-Sensor, Klimamessbox, Raummessbox | |
| Raspberry Pi um Echtzeituhr (RTC) erweitern – HW-111 | Nachrüstung eines DS1307-RTC-Moduls, Shutdown-Taster | |
| Schaltung | Platine | |
| Gehäuse | 3D-Druck oder LASER-Cutter | |
| Schule | Einsatz im Unterricht | |
| Sonstiges | dies und das…. |
Diese Seite beschreibt den Ablauf, um einen bereits fertig verkabelten und geflashten Sensor (hier durchgängig am Beispiel des einfachen BME280-Testsensors, siehe Hauptanleitung und Sensorcode) in EmonCMS sichtbar zu machen und seine Messwerte dauerhaft aufzuzeichnen. Genau derselbe Ablauf wiederholt sich später bei jeder neuen Sensor-Box (Klimamessbox, Raummessbox) – nur die Anzahl der Datenfelder und das passende Feed-Interval unterscheiden sich.
Voraussetzung: Der Testsensor ist fertig konfiguriert (eigene SENSOR_ID, eigener API-Key eingetragen, siehe Hauptanleitung Teil 3 bzw. Sensorcode-Seite) und mit Strom versorgt.
emonsd, siehe Hauptanleitung Teil 2)http://[IP-Adresse-des-Pi]/user/view aufrufen, z. B. http://192.168.1.2/user/viewinput/post.json)Verwechslungsgefahr: Unter Administration/Setup gibt es eine "Server Information"-Seite mit vielen Systemdaten - dort steht KEIN API-Key! Der Key findet sich ausschließlich unter "My Account" (bzw. der /user/view-Seite des jeweiligen Benutzerkontos).
Wichtig bei mehreren EmonCMS-Installationen (z. B. Produktiv-System und separater Test-/Entwicklungs-Pi): Vor dem Kopieren unbedingt prüfen, bei welcher Installation man gerade eingeloggt ist - die Adressleiste des Browsers zeigt die IP-Adresse des jeweiligen Pi. Ein Key vom Produktiv-System darf niemals in Test- oder Entwicklungs-Sketches landen.
Diesen Wert im Sketch des Testsensors eintragen (siehe Programmcode-Seite, Platzhalter apikey im jeweils aktiven Netzwerk-Bereich A/B/C), Sketch neu hochladen, Testsensor neu starten.
Nachdem der Testsensor läuft, kann EmonCMS eingerichtet werden:
Der Testsensor sendet erfolgreich, erkennbar am seriellen Monitor:
13:14:53.275 -> [HTTP] code=200 | T=25.00°C F=49.4% P=1015.0hPa 13:15:23.311 -> [HTTP] code=200 | T=24.97°C F=48.7% P=1014.9hPa 13:15:53.373 -> [HTTP] code=200 | T=24.93°C F=48.5% P=1014.9hPa 13:16:23.428 -> [HTTP] code=200 | T=24.91°C F=48.4% P=1014.9hPa 13:16:53.451 -> [HTTP] code=200 | T=24.90°C F=48.5% P=1015.0hPa
SENSOR_ID des Testsensors (in diesem Beispiel „100“)T_C, F_rel, P_hPaHinweis zur SENSOR_ID 100: Laut SENSOR_ID-Übersichtstabelle in der Hauptanleitung sind die Bereiche 100-149 künftig für Raummessboxen und 150-199 für Klimamessboxen vorgesehen. Für einen dauerhaft genutzten Testsensor empfiehlt sich daher langfristig eine ID aus dem für Infrastruktur/Tests reservierten Bereich (z. B. 998), um spätere Kollisionen mit echten Raummessboxen zu vermeiden.
Erscheint nach mehreren Minuten immer noch nichts unter "Inputs": - Serielle Debug-Ausgabe des Sensors prüfen (USB-Kabel + Arduino IDE, serieller Monitor bei 115200 Baud) - zeigt HTTP-Statuscode und Fehlermeldungen des letzten Sendeversuchs - API-Key auf Tippfehler prüfen (führt zu HTTP 401 bzw. keiner Aufnahme des Inputs) - Feste IP des Sensors (aus SENSOR_ID) auf Kollision mit einem anderen Gerät im Netz prüfen (siehe SENSOR_ID-Übersichtstabelle in der Hauptanleitung)
Für jedes Datenfeld, das dauerhaft gespeichert und später als Diagramm angezeigt werden soll, wird ein eigener Feed angelegt:
T_C) auf das Zahnrad-/Stift-Symbol klicken100_T_C – so übernehmen (gute, eindeutige Namenskonvention bei vielen Sensoren)Auffällig umständlicher Klick-Ablauf zum Abschließen (drei separate
Klicks nötig, sonst bleibt nichts gespeichert):
1. "Add" - übernimmt die Einstellungen in die Prozessliste des Inputs
2. "Save" - speichert die Prozessliste dauerhaft (OHNE diesen Klick
geht die Änderung beim Schließen wieder verloren!)
3. "Close" - schließt den Dialog
Alle drei Klicks sind erforderlich, in genau dieser Reihenfolge.
KRITISCH: Das Interval eines PHPFina-Feeds lässt sich nach der Erstellung NICHT mehr ändern! Bei einem falsch gesetzten Interval bleibt nur die Neuanlage des Feeds - alte Daten gehen dabei verloren bzw. müssten aufwändig migriert werden. Vor dem Speichern also lieber zweimal prüfen.
Diesen Vorgang für jedes relevante Feld wiederholen (beim Testsensor 3 Feeds, bei der Klimamessbox später bis zu 7 Feeds, bei der Raummessbox 5 Feeds).
/graph/11 funktioniert bei dieser EmonCMS-Version nicht) – stattdessen über die linke Seitenleiste den Menüpunkt „Data viewer“ (Graph-Symbol) öffnen. Dort links den gewünschten Feed (z. B. T_C) per Häkchen aktivieren, rechts erscheint die KurveLücken/Aussetzer in der Kurve sind normal, wenn der Sensor zwischendurch neu geflasht, der Pi neu gestartet oder die Systemzeit korrigiert wurde - jede Unterbrechung der Stromversorgung bzw. des Sendevorgangs erzeugt eine Lücke. Ein durchgehend laufender Produktivsensor zeigt eine lückenlose Linie.
Für eine übersichtliche Darstellung mehrerer Werte des Testsensors (oder später mehrerer Boxen) gemeinsam:
T_C, F_rel, P_hPa; bei den vollständigen Boxen zusätzlich CO2_ppm, PM25, PM10, H_bit) müssen exakt mit denen im Sketch übereinstimmen – Groß-/Kleinschreibung wird unterschieden. Bei Unsicherheit den Sketch-Quellcode (Funktion loop/HTTP-POST-Body) als Referenz nutzennull) – das Diagramm wirkt lückenhaft/gezacktMESSINTERVALL_MS/Schreibpause-Wert im jeweiligen Sketch entsprechen——————————2026-08-12——————
Diese Seite beschreibt den Ablauf, um einen bereits fertig verkabelten und geflashten Sensor (hier durchgängig am Beispiel des einfachen BME280-Testsensors, siehe Hauptanleitung und Sensorcode) in EmonCMS sichtbar zu machen und seine Messwerte dauerhaft aufzuzeichnen. Genau derselbe Ablauf wiederholt sich später bei jeder neuen Sensor-Box (Klimamessbox, Raummessbox) – nur die Anzahl der Datenfelder und das passende Feed-Interval unterscheiden sich.
Voraussetzung: Der Testsensor ist fertig konfiguriert (eigene SENSOR_ID, eigener API-Key eingetragen, siehe Hauptanleitung Teil 3 bzw. Sensorcode-Seite) und mit Strom versorgt.
emonsd, siehe Hauptanleitung Teil 2)http://[IP-Adresse-des-Pi]/user/view aufrufen, z. B. http://192.168.1.2/user/viewinput/post.json)Verwechslungsgefahr: Unter Administration/Setup gibt es eine "Server Information"-Seite mit vielen Systemdaten - dort steht KEIN API-Key! Der Key findet sich ausschließlich unter "My Account" (bzw. der /user/view-Seite des jeweiligen Benutzerkontos).
Wichtig bei mehreren EmonCMS-Installationen (z. B. Produktiv-System und separater Test-/Entwicklungs-Pi): Vor dem Kopieren unbedingt prüfen, bei welcher Installation man gerade eingeloggt ist - die Adressleiste des Browsers zeigt die IP-Adresse des jeweiligen Pi. Ein Key vom Produktiv-System darf niemals in Test- oder Entwicklungs-Sketches landen.
Diesen Wert im Sketch des Testsensors eintragen (siehe Programmcode-Seite, Platzhalter apikey im jeweils aktiven Netzwerk-Bereich A/B/C), Sketch neu hochladen, Testsensor neu starten.
Nachdem der Testsensor läuft, kann EmonCMS eingerichtet werden:
Der Testsensor sendet erfolgreich, erkennbar am seriellen Monitor:
13:14:53.275 -> [HTTP] code=200 | T=25.00°C F=49.4% P=1015.0hPa 13:15:23.311 -> [HTTP] code=200 | T=24.97°C F=48.7% P=1014.9hPa 13:15:53.373 -> [HTTP] code=200 | T=24.93°C F=48.5% P=1014.9hPa 13:16:23.428 -> [HTTP] code=200 | T=24.91°C F=48.4% P=1014.9hPa 13:16:53.451 -> [HTTP] code=200 | T=24.90°C F=48.5% P=1015.0hPa
SENSOR_ID des Testsensors (in diesem Beispiel „100“)T_C, F_rel, P_hPaHinweis zur SENSOR_ID 100: Laut SENSOR_ID-Übersichtstabelle in der Hauptanleitung sind die Bereiche 100-149 künftig für Raummessboxen und 150-199 für Klimamessboxen vorgesehen. Für einen dauerhaft genutzten Testsensor empfiehlt sich daher langfristig eine ID aus dem für Infrastruktur/Tests reservierten Bereich (z. B. 998), um spätere Kollisionen mit echten Raummessboxen zu vermeiden.
Erscheint nach mehreren Minuten immer noch nichts unter "Inputs": - Serielle Debug-Ausgabe des Sensors prüfen (USB-Kabel + Arduino IDE, serieller Monitor bei 115200 Baud) - zeigt HTTP-Statuscode und Fehlermeldungen des letzten Sendeversuchs - API-Key auf Tippfehler prüfen (führt zu HTTP 401 bzw. keiner Aufnahme des Inputs) - Feste IP des Sensors (aus SENSOR_ID) auf Kollision mit einem anderen Gerät im Netz prüfen (siehe SENSOR_ID-Übersichtstabelle in der Hauptanleitung)
Für jedes Datenfeld, das dauerhaft gespeichert und später als Diagramm angezeigt werden soll, wird ein eigener Feed angelegt:
T_C) auf das Zahnrad-/Stift-Symbol klicken100_T_C – so übernehmen (gute, eindeutige Namenskonvention bei vielen Sensoren)Auffällig umständlicher Klick-Ablauf zum Abschließen (drei separate
Klicks nötig, sonst bleibt nichts gespeichert):
1. "Add" - übernimmt die Einstellungen in die Prozessliste des Inputs
2. "Save" - speichert die Prozessliste dauerhaft (OHNE diesen Klick
geht die Änderung beim Schließen wieder verloren!)
3. "Close" - schließt den Dialog
Alle drei Klicks sind erforderlich, in genau dieser Reihenfolge.
KRITISCH: Das Interval eines PHPFina-Feeds lässt sich nach der Erstellung NICHT mehr ändern! Bei einem falsch gesetzten Interval bleibt nur die Neuanlage des Feeds - alte Daten gehen dabei verloren bzw. müssten aufwändig migriert werden. Vor dem Speichern also lieber zweimal prüfen.
Diesen Vorgang für jedes relevante Feld wiederholen (beim Testsensor 3 Feeds, bei der Klimamessbox später bis zu 7 Feeds, bei der Raummessbox 5 Feeds).
/graph/11 funktioniert bei dieser EmonCMS-Version nicht) – stattdessen über die linke Seitenleiste den Menüpunkt „Data viewer“ (Graph-Symbol) öffnen. Dort links den gewünschten Feed (z. B. T_C) per Häkchen aktivieren, rechts erscheint die KurveLücken/Aussetzer in der Kurve sind normal, wenn der Sensor zwischendurch neu geflasht, der Pi neu gestartet oder die Systemzeit korrigiert wurde - jede Unterbrechung der Stromversorgung bzw. des Sendevorgangs erzeugt eine Lücke. Ein durchgehend laufender Produktivsensor zeigt eine lückenlose Linie.
Für eine übersichtliche Darstellung mehrerer Werte des Testsensors (oder später mehrerer Boxen) gemeinsam:
T_C, F_rel, P_hPa; bei den vollständigen Boxen zusätzlich CO2_ppm, PM25, PM10, H_bit) müssen exakt mit denen im Sketch übereinstimmen – Groß-/Kleinschreibung wird unterschieden. Bei Unsicherheit den Sketch-Quellcode (Funktion loop/HTTP-POST-Body) als Referenz nutzen———————————————–alt-30 Sekunden ——————
Diese Seite beschreibt den Ablauf, um einen bereits fertig verkabelten und geflashten Sensor (hier durchgängig am Beispiel des einfachen BME280-Testsensors, siehe Hauptanleitung und Sensorcode) in EmonCMS sichtbar zu machen und seine Messwerte dauerhaft aufzuzeichnen. Genau derselbe Ablauf wiederholt sich später bei jeder neuen Sensor-Box (Klimamessbox, Raummessbox) – nur die Anzahl der Datenfelder und das passende Feed-Interval unterscheiden sich.
Voraussetzung: Der Testsensor ist fertig konfiguriert (eigene SENSOR_ID, eigener API-Key eingetragen, siehe Hauptanleitung Teil 3 bzw. Sensorcode-Seite) und mit Strom versorgt.
- In EmonCMS einloggen (Standard: Benutzername emonsd, siehe Hauptanleitung Teil 2)
http://<Pi-IP>/user/view
aufrufen, z. B.
http://192.168.1.2/user/view
input/post.json)Verwechslungsgefahr: Unter Administration/Setup gibt es eine "Server Information"-Seite mit vielen Systemdaten - dort steht KEIN API-Key! Der Key findet sich ausschließlich unter "My Account" (bzw. der /user/view-Seite des jeweiligen Benutzerkontos).
Wichtig bei mehreren EmonCMS-Installationen (z. B. Produktiv-System und separater Test-/Entwicklungs-Pi): Vor dem Kopieren unbedingt prüfen, bei welcher Installation man gerade eingeloggt ist - die Adressleiste des Browsers zeigt die IP-Adresse des jeweiligen Pi. Ein Key vom Produktiv-System darf niemals in Test- oder Entwicklungs-Sketches landen.
Diesen Wert im Sketch des Testsensors eintragen (siehe Programmcode-Seite, Platzhalter apikey im jeweils aktiven Netzwerk-Bereich A/B/C), Sketch neu hochladen, Testsensor neu starten.
Nachdem der Testsensor läuft, kann EmonCMS eingerichtet werden:
Der Testsensor sendet erfolgreich, erkennbar am seriellen Monitor:
13:14:53.275 -> [HTTP] code=200 | T=25.00°C F=49.4% P=1015.0hPa 13:15:23.311 -> [HTTP] code=200 | T=24.97°C F=48.7% P=1014.9hPa 13:15:53.373 -> [HTTP] code=200 | T=24.93°C F=48.5% P=1014.9hPa 13:16:23.428 -> [HTTP] code=200 | T=24.91°C F=48.4% P=1014.9hPa 13:16:53.451 -> [HTTP] code=200 | T=24.90°C F=48.5% P=1015.0hPa
SENSOR_ID des Testsensors (in diesem Beispiel „100“)T_C, F_rel, P_hPaHinweis zur SENSOR_ID 100: Laut SENSOR_ID-Übersichtstabelle in der Hauptanleitung sind die Bereiche 100-149 künftig für Raummessboxen und 150-199 für Klimamessboxen vorgesehen. Für einen dauerhaft genutzten Testsensor empfiehlt sich daher langfristig eine ID aus dem für Infrastruktur/Tests reservierten Bereich (z. B. 998), um spätere Kollisionen mit echten Raummessboxen zu vermeiden.
Erscheint nach mehreren Minuten immer noch nichts unter "Inputs": - Serielle Debug-Ausgabe des Sensors prüfen (USB-Kabel + Arduino IDE, serieller Monitor bei 115200 Baud) - zeigt HTTP-Statuscode und Fehlermeldungen des letzten Sendeversuchs - API-Key auf Tippfehler prüfen (führt zu HTTP 401 bzw. keiner Aufnahme des Inputs) - Feste IP des Sensors (aus SENSOR_ID) auf Kollision mit einem anderen Gerät im Netz prüfen (siehe SENSOR_ID-Übersichtstabelle in der Hauptanleitung)
Für jedes Datenfeld, das dauerhaft gespeichert und später als Diagramm angezeigt werden soll, wird ein eigener Feed angelegt:
T_C) auf das Zahnrad-/Stift-Symbol klicken100_T_C – so übernehmen (gute, eindeutige Namenskonvention bei vielen Sensoren)Auffällig umständlicher Klick-Ablauf zum Abschließen (drei separate
Klicks nötig, sonst bleibt nichts gespeichert):
1. "Add" - übernimmt die Einstellungen in die Prozessliste des Inputs
2. "Save" - speichert die Prozessliste dauerhaft (OHNE diesen Klick
geht die Änderung beim Schließen wieder verloren!)
3. "Close" - schließt den Dialog
Alle drei Klicks sind erforderlich, in genau dieser Reihenfolge.
KRITISCH: Das Interval eines PHPFina-Feeds lässt sich nach der Erstellung NICHT mehr ändern! Bei einem falsch gesetzten Interval bleibt nur die Neuanlage des Feeds - alte Daten gehen dabei verloren bzw. müssten aufwändig migriert werden. Vor dem Speichern also lieber zweimal prüfen.
Diesen Vorgang für jedes relevante Feld wiederholen (beim Testsensor 3 Feeds, bei der Klimamessbox später bis zu 7 Feeds, bei der Raummessbox 5 Feeds).
Für eine übersichtliche Darstellung mehrerer Werte des Testsensors (oder später mehrerer Boxen) gemeinsam:
T_C, F_rel, P_hPa; bei den vollständigen Boxen zusätzlich CO2_ppm, PM25, PM10, H_bit) müssen exakt mit denen im Sketch übereinstimmen – Groß-/Kleinschreibung wird unterschieden. Bei Unsicherheit den Sketch-Quellcode (Funktion loop/HTTP-POST-Body) als Referenz nutzen—————————————————– alte Version —————————————
Diese Seite beschreibt den Ablauf, um eine bereits fertig verkabelte und geflashte Sensor-Box (Klimamessbox oder Raummessbox, siehe Hauptanleitung und Sensorcode) in EmonCMS sichtbar zu machen und ihre Messwerte dauerhaft aufzuzeichnen. Dieser Ablauf wiederholt sich bei jeder neuen Sensor-Box.
Voraussetzung: Die Box ist fertig konfiguriert (eigene SENSOR_ID, eigener API-Key eingetragen, siehe Hauptanleitung Teil 3) und mit Strom versorgt.
- In EmonCMS einloggen (Standard: Benutzername emonsd, siehe Hauptanleitung Teil 2)
http://<Pi-IP>/user/view
aufrufen, z. B.
http://192.168.1.2/user/view
input/post.json)Verwechslungsgefahr: Unter Administration/Setup gibt es eine "Server Information"-Seite mit vielen Systemdaten - dort steht KEIN API-Key! Der Key findet sich ausschließlich unter "My Account" (bzw. der /user/view-Seite des jeweiligen Benutzerkontos).
Wichtig bei mehreren EmonCMS-Installationen (z. B. Produktiv-System und separater Test-/Entwicklungs-Pi): Vor dem Kopieren unbedingt prüfen, bei welcher Installation man gerade eingeloggt ist - die Adressleiste des Browsers zeigt die IP-Adresse des jeweiligen Pi. Ein Key vom Produktiv-System darf niemals in Test- oder Entwicklungs-Sketches landen.
Diesen Wert im Sketch der Box eintragen (siehe Programmcode-Seite, Platzhalter apikey im jeweils aktiven Netzwerk-Bereich A/B/C), Sketch neu hochladen, Box neu starten.
Nachdem der erste Messsensor läuft, kann EMONCMS angepasst werden:
der Sensor sendet erfolgreich:
13:14:53.275 -> [HTTP] code=200 | T=25.00°C F=49.4% P=1015.0hPa 13:15:23.311 -> [HTTP] code=200 | T=24.97°C F=48.7% P=1014.9hPa 13:15:53.373 -> [HTTP] code=200 | T=24.93°C F=48.5% P=1014.9hPa 13:16:23.428 -> [HTTP] code=200 | T=24.91°C F=48.4% P=1014.9hPa 13:16:53.451 -> [HTTP] code=200 | T=24.90°C F=48.5% P=1015.0hPa
SENSOR_ID der Box (z. B. „100“)T_C, F_rel, P_hPaErscheint nach mehreren Minuten immer noch nichts unter "Inputs": - Serielle Debug-Ausgabe der Box prüfen (USB-Kabel + Arduino IDE, serieller Monitor bei 115200 Baud) - zeigt HTTP-Statuscode und Fehlermeldungen des letzten Sendeversuchs - API-Key auf Tippfehler prüfen (führt zu HTTP 401 bzw. keiner Aufnahme des Inputs) - Feste IP der Box (aus SENSOR_ID) auf Kollision mit einem anderen Gerät im Netz prüfen (siehe SENSOR_ID-Übersichtstabelle in der Hauptanleitung)
Für jedes Datenfeld, das dauerhaft gespeichert und später als Diagramm angezeigt werden soll, wird ein eigener Feed angelegt:
T_C) auf das Zahnrad-/Stift-Symbol klicken134_T_C (SENSOR_ID + Feldname), damit bei vielen Boxen der Überblick erhalten bleibtKRITISCH: Das Interval eines PHPFina-Feeds lässt sich nach der Erstellung NICHT mehr ändern! Bei einem falsch gesetzten Interval bleibt nur die Neuanlage des Feeds - alte Daten gehen dabei verloren bzw. müssten aufwändig migriert werden. Vor dem Speichern also lieber zweimal prüfen.
Diesen Vorgang für jedes relevante Feld wiederholen (bei der Klimamessbox also bis zu 7 Feeds, bei der Raummessbox 5 Feeds).
Für eine übersichtliche Darstellung mehrerer Werte einer Box (oder mehrerer Boxen) gemeinsam:
F_rel, T_C, P_hPa, CO2_ppm, PM25, PM10, H_bit) müssen exakt mit denen im Sketch übereinstimmen – Groß-/Kleinschreibung wird unterschieden. Bei Unsicherheit den Sketch-Quellcode (Funktion sendData) als Referenz nutzen