Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende Überarbeitung | |||
| www-messdatenerfassung-sas:sensoren_einbinden [2026/10/22 10:22] – biebl | www-messdatenerfassung-sas:sensoren_einbinden [2026/10/22 10:23] (aktuell) – biebl | ||
|---|---|---|---|
| Zeile 180: | Zeile 180: | ||
| * **Zwei Feeds mit identischem Namen:** EmonCMS erlaubt das technisch, führt aber zu Verwirrung bei der späteren Auswertung – eindeutige Namenskonvention (SENSOR_ID + Feldname) von Anfang an einhalten | * **Zwei Feeds mit identischem Namen:** EmonCMS erlaubt das technisch, führt aber zu Verwirrung bei der späteren Auswertung – eindeutige Namenskonvention (SENSOR_ID + Feldname) von Anfang an einhalten | ||
| * **Werte wirken " | * **Werte wirken " | ||
| - | ====== ALT ====== | ||
| - | |||
| - | |||
| - | Diese Seite beschreibt den Ablauf, um einen bereits fertig verkabelten und geflashten Sensor (hier durchgängig am Beispiel des [[https:// | ||
| - | |||
| - | **Voraussetzung: | ||
| - | |||
| - | |||
| - | ===== Schritt 1: API-Key besorgen ===== | ||
| - | |||
| - | - In EmonCMS einloggen (Standard: Benutzername '' | ||
| - | - Oben rechts auf den Benutzernamen bzw. das Konto-Symbol klicken → **„My Account“** | ||
| - | - alternativ direkt die Adresse '' | ||
| - | - Dort erscheinen zwei Schlüssel: | ||
| - | * **„Read & Write API Key“** – dieser wird gebraucht, da der Testsensor Daten *sendet* ('' | ||
| - | * **„Read Only API Key“** – nur für lesende Abfragen/ | ||
| - | - Den **„Read & Write API Key“** kopieren | ||
| - | |||
| - | < | ||
| - | Verwechslungsgefahr: | ||
| - | " | ||
| - | KEIN API-Key! Der Key findet sich ausschließlich unter "My Account" | ||
| - | (bzw. der / | ||
| - | </ | ||
| - | |||
| - | < | ||
| - | Wichtig bei mehreren EmonCMS-Installationen (z. B. Produktiv-System | ||
| - | und separater Test-/ | ||
| - | 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 [[biebl: | ||
| - | |||
| - | ---- | ||
| - | |||
| - | Nachdem der [[biebl: | ||
| - | |||
| - | ===== Schritt 2: Prüfen, ob die Messdaten ankommen ===== | ||
| - | |||
| - | Der Testsensor [[biebl: | ||
| - | < | ||
| - | 13: | ||
| - | 13: | ||
| - | 13: | ||
| - | 13: | ||
| - | 13: | ||
| - | </ | ||
| - | |||
| - | - In EmonCMS zu [[http:// | ||
| - | - Sobald der Testsensor **mindestens einmal erfolgreich** gesendet hat, erscheint dort automatisch ein neuer Eintrag mit dem Node-Namen = '' | ||
| - | - Darunter erscheinen die einzelnen Datenfelder aus dem JSON des Testsensors: | ||
| - | |||
| - | < | ||
| - | Hinweis 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/ | ||
| - | spätere Kollisionen mit echten Raummessboxen zu vermeiden. | ||
| - | </ | ||
| - | |||
| - | < | ||
| - | Erscheint nach mehreren Minuten immer noch nichts unter " | ||
| - | - 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) | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== Schritt 3: Feeds anlegen (ein Feed pro Messwert) ===== | ||
| - | |||
| - | Für jedes Datenfeld, das dauerhaft gespeichert und später als Diagramm angezeigt werden soll, wird ein eigener **Feed** angelegt: | ||
| - | |||
| - | - Bei **Inputs** neben dem gewünschten Feld (z. B. '' | ||
| - | - Bei „Add feed to log“ bzw. über den Prozess **„Log to feed“** einen neuen Feed erstellen → **„CREATE NEW“** | ||
| - | - Feed-Engine: | ||
| - | - Name wird automatisch aus SENSOR_ID + Feldname vorgeschlagen, | ||
| - | - **Interval unbedingt korrekt setzen** (Standardvorschlag ist oft 10s – abändern!) – abhängig vom Sensortyp: | ||
| - | * Testsensor (BME280, siehe Sensorcode-Seite): | ||
| - | * Klimamessbox (Außenbereich): | ||
| - | * Raummessbox (Innenbereich): | ||
| - | |||
| - | < | ||
| - | Auffällig umständlicher Klick-Ablauf zum Abschließen (drei separate | ||
| - | Klicks nötig, sonst bleibt nichts gespeichert): | ||
| - | 1. " | ||
| - | 2. " | ||
| - | geht die Änderung beim Schließen wieder verloren!) | ||
| - | 3. " | ||
| - | Alle drei Klicks sind erforderlich, | ||
| - | </ | ||
| - | |||
| - | < | ||
| - | 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). | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== Schritt 4: Feeds kontrollieren ===== | ||
| - | |||
| - | - Zu **Feeds** wechseln (linke Navigation) | ||
| - | - Dort sollten nun alle drei neu angelegten Feeds des Testsensors auftauchen, mit einem sich regelmäßig aktualisierenden „Last value“ | ||
| - | - Für die grafische Kontrolle **nicht** die Feed-ID als direkte URL aufrufen (z. B. ''/ | ||
| - | - Zeitraum bei Bedarf über die Felder „Start“/ | ||
| - | |||
| - | < | ||
| - | Lücken/ | ||
| - | 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. | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== Schritt 5 (optional): Dashboard erstellen ===== | ||
| - | |||
| - | Für eine übersichtliche Darstellung mehrerer Werte des Testsensors (oder später mehrerer Boxen) gemeinsam: | ||
| - | |||
| - | - Zu **Dashboards** wechseln → **„New Dashboard“** | ||
| - | - Über den Editor „Graph“- oder „Value“-Widgets hinzufügen, | ||
| - | - Mehrere Widgets lassen sich frei auf der Fläche anordnen (z. B. Temperatur- und Luftdruck-Verlauf des Testsensors nebeneinander) | ||
| - | - Dashboard speichern und ggf. über **„Make public“** auch ohne Login einsehbar machen (z. B. für einen Klassenraum-Bildschirm) | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== Stolpersteine ===== | ||
| - | |||
| - | * **Input-Feld heißt anders als erwartet:** Die Feldnamen im JSON (beim Testsensor: '' | ||
| - | * **Feed zeigt "no data" trotz laufendem Testsensor: | ||
| - | * **Falsches Interval gewählt:** Es gibt keine Fehlermeldung – das System läuft einfach mit schlechterer Datenqualität weiter: | ||
| - | * **Feed-Interval länger als der tatsächliche Sendetakt** des Sensors (z. B. Sensor sendet alle 10 s, Feed steht auf 60 s): EmonCMS speichert pro Zeitschlitz nur den zuletzt eingetroffenen Wert – alle dazwischenliegenden Messungen werden kommentarlos überschrieben, | ||
| - | * **Feed-Interval kürzer als der tatsächliche Sendetakt** (z. B. Sensor sendet alle 120 s, Feed steht auf 30 s): Für die meisten Zeitschlitze kommt kein neuer Wert an, sie bleiben leer ('' | ||
| - | * In beiden Fällen: keine Fehlermeldung, | ||
| - | * **Ab dem 33. Sensor erscheint kein neuer Input, in der seriellen Ausgabe steht „Reached the maximal allowed number of different NodeIds, limit is 32. Node ' | ||
| - | < | ||
| - | sudo nano / | ||
| - | </ | ||
| - | Im Abschnitt '' | ||
| - | < | ||
| - | [input] | ||
| - | max_node_id_limit = 100 | ||
| - | </ | ||
| - | |||
| - | Speichern und den Webserver neu starten: '' | ||
| - | * **Zwei Feeds mit identischem Namen:** EmonCMS erlaubt das technisch, führt aber zu Verwirrung bei der späteren Auswertung – eindeutige Namenskonvention (SENSOR_ID + Feldname) von Anfang an einhalten | ||
| - | * **Werte wirken " | ||
| - | * Wenn ein D1 ausgetauscht wird, so dass eine andere MAC-Adresse unter der IP auftaucht, dann sollte diese im RASPI gelöscht werden, um Verbindungsaussetzer zu vermeiden | ||
| - | * < | ||
| ====== Copyright (C) 2025 Biebl/ | ====== Copyright (C) 2025 Biebl/ | ||