From b586cdf9fc1f8616bf2e6b93ab58d29931b3f59e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20K=C3=A4ppler?= <michael_kaeppler@web.de>
Date: Fri, 4 Jun 2021 20:48:22 +0200
Subject: [PATCH] co2_sensor: Add console command for SCD30 reset

---
 ampel-firmware/co2_sensor.cpp | 7 +++++++
 ampel-firmware/co2_sensor.h   | 1 +
 2 files changed, 8 insertions(+)

diff --git a/ampel-firmware/co2_sensor.cpp b/ampel-firmware/co2_sensor.cpp
index e68b2ea..256b692 100644
--- a/ampel-firmware/co2_sensor.cpp
+++ b/ampel-firmware/co2_sensor.cpp
@@ -113,6 +113,7 @@ namespace sensor {
     sensor_console::defineIntCommand("calibrate!", calibrateSensorRightNow,
         F("600 (Calibrates right now, to given ppm)"));
     sensor_console::defineIntCommand("auto_calibrate", setAutoCalibration, F("0/1 (Disables/enables autocalibration)"));
+    sensor_console::defineCommand("reset_scd", resetSCD, F("(Resets SCD30)"));
   }
 
   bool hasSensorSettled() {
@@ -328,4 +329,10 @@ namespace sensor {
       calibrateAndRestart();
     }
   }
+
+  void resetSCD() {
+    Serial.print(F("Resetting SCD30..."));
+    scd30.reset();
+    Serial.println(F("done."));
+  }
 }
diff --git a/ampel-firmware/co2_sensor.h b/ampel-firmware/co2_sensor.h
index 318b959..d9eff87 100644
--- a/ampel-firmware/co2_sensor.h
+++ b/ampel-firmware/co2_sensor.h
@@ -33,5 +33,6 @@ namespace sensor {
   void calibrateSensorToSpecificPPM(int32_t calibrationLevel);
   void calibrateSensorRightNow(int32_t calibrationLevel);
   void setAutoCalibration(int32_t autoCalibration);
+  void resetSCD();
 }
 #endif
-- 
GitLab