Electricity Meter Camera
Latest full image
ROI / analysis crop
ROI debug / detected dark area
v2 aligned meter image
v2 debug / detected needle angle
CHECK
Units: None
Alert: OK
Updated: 2026-09-30 02:07:42
Confidence: 0.0
v2 test-only result
Status: READING
Units: 8.5
Angle: 231.5
Confidence: 0.7793
Alignment: 0.4588
Updated: 2026-09-29 18:02:04
Note: v2 reading calculated as the production status source.
Raw status
{
"time": "2026-09-30 02:07:42",
"source": "ESP32 Meter Camera",
"camera_profile": "current_blurry_wrover_test",
"esp32_url": "http://192.168.0.213/capture",
"status": "UNKNOWN",
"confidence": 0.0,
"estimated_units": null,
"estimated_pounds_remaining": null,
"event_type": "camera_fail",
"alert_level": "OK",
"notify_due": false,
"notify_message": "",
"notification_cooldown_seconds": 0,
"note": "Camera check failed: ",
"latest_image": "/mnt/pi-data/meter-camera/images/latest.jpg",
"archive_image": null,
"roi": {
"x": 40,
"y": 20,
"width": 210,
"height": 200
},
"analysis": {}
}
Raw v2 status
{
"time": "2026-09-29 18:02:04",
"source": "meter-camera-v2",
"algorithm_version": "v2.1-angle-calibration",
"mode": "production_status_source",
"status": "READING",
"failure_reason": null,
"estimated_units": 8.5,
"estimated_pounds_remaining": 8.5,
"angle_degrees": 231.5,
"confidence": 0.7793,
"alignment_confidence": 0.4588,
"analysis_note": "v2 reading calculated as the production status source.",
"input_roi": "/mnt/pi-data/meter-camera/images/roi.jpg",
"reference_roi": "/mnt/pi-data/meter-camera/v2/reference_roi.jpg",
"reference_initialized": false,
"aligned_image": "/mnt/pi-data/meter-camera/v2/images/aligned.jpg",
"debug_image": "/mnt/pi-data/meter-camera/v2/images/debug.jpg",
"center": {
"x": 93.94,
"y": 87.99,
"details": {
"confidence": 1.0,
"evidence": 22957.4,
"configured_center": [
90.0,
86.0
],
"detected_center": [
93.94,
87.99
],
"raw_adjust_pixels": 4.41,
"adjusted": true
}
},
"alignment": {
"score": 0.6482,
"confidence": 0.4588,
"scale": 0.98,
"rotation_degrees": 3.0,
"dx": -15,
"dy": 1,
"fail_below_score": 0.35
},
"calibration": [
{
"units": 0.0,
"angle_degrees": 124.0,
"source": "configured_angle"
},
{
"units": 5.0,
"angle_degrees": 190.89,
"source": "configured_angle"
},
{
"units": 10.0,
"angle_degrees": 252.0,
"source": "configured_angle"
},
{
"units": 15.0,
"angle_degrees": 328.0,
"source": "configured_angle"
},
{
"units": 20.0,
"angle_degrees": 400.0,
"source": "configured_angle"
}
],
"needle": {
"angle_degrees": 231.5,
"score": 3138.54,
"second_best_score": 1403.64,
"median_score": 200.57,
"peak_gap": 0.5528,
"median_gap": 0.9361,
"best_run": 46,
"confidence": 1.0,
"tip": [
55.3,
39.5
],
"tip_radius": 62.0
},
"image_quality": {
"confidence": 0.5732,
"gradient_p95": 24.33,
"normalized_gradient_p95": 1.0
},
"raw_estimated_units": 8.323,
"minimum_confidence_for_reading": 0.45,
"consistency": {
"used": true,
"previous_units": 8.5,
"delta_units": 0.0,
"factor": 1.0
}
}