Electricity Meter Camera

Latest full image

Latest meter image

ROI / analysis crop

ROI meter crop

ROI debug / detected dark area

ROI debug image

v2 aligned meter image

v2 aligned meter image

v2 debug / detected needle angle

v2 debug image
Check now Top-up / restored
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
  }
}