Read temporary power meter from a photo: WhatsApp to Google Drive and Sheets (with OCR)
    How-to Guides

    Read temporary power meter from a photo: WhatsApp to Google Drive and Sheets (with OCR)

    TrainAR Team
    7 min read
    0 views

    Read temporary power meter from a photo: WhatsApp to Google Drive and Sheets (with OCR)

    Category: How-to Guides Niche: site utilities, OCR, WhatsApp workflows, Google Drive/Sheets, Building Safety Act evidence

    Contents

    Quick answer

    You can let operatives WhatsApp a clear photo of the temporary power meter. An automation saves the image into Google Drive, reads the digits with OCR, and logs the reading into a Google Sheet for billing and audits. If confidence is low or the number drops below the last reading, the bot asks for confirmation.

    • Capture: WhatsApp Business API (Twilio, MessageBird or 360dialog)
    • Store: Google Drive (job/site folder)
    • OCR: Google Cloud Vision Text Detection
    • Log: Google Sheets row with timestamp, site code, meter serial, register (e.g., 1.8.0), kWh, link to photo

    Who this is for

    • Small contractors, temp power users, facilities teams and subcontractors who need monthly or weekly meter readings without sending someone to site with a clipboard.
    • Anyone building a Building Safety Act evidence trail and wanting dated photos plus a clean log.

    How it works

    • Operative sends a meter photo to your WhatsApp Business number, optionally with a caption like: SITE=E14 Docklands | METER=K123456 | REG=1.8.0.
    • Your WhatsApp provider triggers a webhook in Make.com or Zapier.
    • The image is stored in Google Drive using a consistent path, then Google Cloud Vision extracts the numbers.
    • A Google Sheet logs the reading with the photo link. If the OCR confidence is low, the bot replies on WhatsApp asking the user to confirm or resend a clearer photo.

    Simple flow

    • WhatsApp photo
    • Google Drive upload
    • OCR reading
    • Append to Google Sheets

    Step-by-step setup in Make.com

    Prerequisites

    • WhatsApp Business API number via Twilio or 360dialog
    • Google Workspace account
    • Google Cloud project with Vision API enabled
    • A Google Drive root folder, e.g. Drive/Construction Power
    • A Google Sheet called Meter Readings Log

    Steps

    1. Trigger: WhatsApp New Media Message
    • Provider: Twilio or 360dialog
    • Output fields: media URL, sender, caption, timestamp
    1. Download media
    • HTTP Get a File from media URL
    1. Upload to Google Drive
    • Path: Drive/Construction Power/{{SITE}}/{{METER}}/{{YYYY-MM}}/
    • Filename: READING_{{YYYYMMDD-HHMMSS}}_{{phone}}.jpg
    • Save fileId to pass to later steps
    1. OCR with Google Cloud Vision
    • Feature: TEXT_DETECTION
    • Parse output for the register and the numeric value (4–8 digits). Keep the confidence score
    1. Build data
    • Fields: timestamp_utc, site_code, meter_serial, register_code, reading_kwh, ocr_confidence, whatsapp_number, image_drive_link (fileId URL)
    • If caption is missing data, try to detect site/meter from folder path or a small reference list
    1. Append to Google Sheets
    • Sheet: Meter Readings Log
    • Add a header row once: Timestamp, Site, Meter Serial, Register, Reading kWh, Confidence, WhatsApp, Drive Link
    1. Validate and reply on WhatsApp
    • Look up the last reading for that meter in the Sheet
    • If reading < last or confidence < 0.7, send a WhatsApp reply: “I read 012345 for meter K123456 (1.8.0). Reply Y to confirm or send a clearer photo.”
    • If user replies Y, mark reading_source=user_confirmed
    1. Notify exceptions (optional)
    • Send Slack or email if reading jumps more than your threshold (e.g., > 2x last period)

    Code-first option (Cloud Run)

    If you prefer a small codebase for more control, host a webhook on Cloud Run.

    What the service does:

    • Receives the WhatsApp webhook JSON, downloads the photo
    • Uploads to Drive, calls Vision, parses text
    • Checks against last reading in the Sheet
    • Writes the new row and replies to the user for low-confidence cases

    Minimal pseudocode outline

    app.post('/whatsapp-webhook', async (req, res) => {
      const { mediaUrl, from, caption, timestamp } = parseWhatsApp(req.body);
      const image = await fetch(mediaUrl).then(r => r.arrayBuffer());
      const fileId = await drive.upload(image, makePathFrom(caption));
      const vision = await cloudVision.text(fileId);
      const parsed = parseMeterText(vision.text);
      const last = await sheets.getLastReading(parsed.meterSerial, parsed.register);
      const needsConfirm = parsed.conf < 0.7 || parsed.value < last;
      await sheets.append({ timestamp, ...parsed, from, fileId });
      if (needsConfirm) await whatsapp.reply(from, `I read ${parsed.value} for ${parsed.meterSerial} (${parsed.register}). Reply Y to confirm.`);
      res.sendStatus(200);
    });
    

    Data model and folder structure

    Recommended Google Sheet columns

    • Timestamp (UTC and local)
    • Site code
    • Meter serial
    • Register code (1.8.0 import total; 1.8.1 day; 1.8.2 night; 2.8.0 export)
    • Reading kWh
    • Reading source (ocr, user_confirmed, manual)
    • OCR confidence (0–1)
    • WhatsApp number
    • Drive link
    • Notes

    Drive structure

    • Drive/Construction Power/SITE_CODE/METER_SERIAL/YYYY-MM/
    • Keep raw photos immutable. Use Drive permissions, not public links

    Quality checks for UK meters

    Reduce misreads and get consistent results on UK sites:

    • Teach operatives to select the correct register before taking the photo
    • Shoot square-on, no glare, fill the frame with the LCD or odometer
    • For cycling displays, wait for the exact register screen
    • For dial meters, add a text message with the reading as a backup
    • Ask for a WhatsApp location share to tag the reading to the site

    Useful guidance

    • OBIS codes explained: 1.8.0 import, 2.8.0 export, 1.8.1 day, 1.8.2 night
    • Time-stamps: phone EXIF plus WhatsApp timestamp; keep both in the log
    • Proof for clients: link the Sheet and Drive folder in your monthly application for payment

    Costs and limits

    • WhatsApp Business API: typically pence per conversation depending on provider
    • Make.com or Zapier: plan-based operations pricing
    • Google Cloud Vision: pay per image; low cost at small volumes
    • Google Drive/Sheets: included with Workspace

    Troubleshooting

    • Photo is blurry or glare: reply asking for a new shot, remind user to turn off flash
    • OCR picks the wrong number: add a rule to ignore numbers with decimal points if your meter should be whole kWh
    • Reading lower than last month: flag for review, possible meter rollover or wrong register
    • Multiple registers: add a short menu in WhatsApp or use keywords in the caption like REG=1.8.0

    FAQ

    Is this acceptable for invoicing clients?

    Yes, many clients accept dated photo evidence and a consistent log, especially for temporary builders’ supplies. Check your contract requirements and keep the original images versioned in Drive.

    What about data protection?

    Use a dedicated WhatsApp Business number, restrict Drive access to your team, and include this workflow in your staff privacy notice. Avoid public links.

    Do I need a developer?

    No. Make.com can handle the full flow. If you have higher volumes or complex validation, a small Cloud Run service gives more control.

    Want to slash training times and increase revenue per Engineer? Join our Waitlist - https://trainar.ai/waitlist

    Share this article

    Category

    How-to Guides

    Step-by-step guides for common tasks

    Ready to Transform Your Business?

    Join the TrainAR beta and start using AR training in your business.

    Join Beta Program

    Stay Updated

    Get weekly insights and new articles delivered to your inbox.

    Comments (0)

    Leave a Comment

    Images (JPG, PNG, GIF, WebP, max 5MB) • Videos (MP4, WebM, max 20MB)

    No comments yet

    Be the first to share your thoughts on this article!

    Related Articles