Content
# System_Access_Workflow_Documentation.docx
> [Open in Google Drive](https://drive.google.com/file/d/1H4tkhbWmvT32yiMVG2tM6rfimr6lN0mJ/view)
## Summary
The document details the system architecture and workflow for Nino-Well's integrated monitoring solution involving a Raspberry Pi 5, Productivity 1000 PLC, and VFD, connected via Modbus RTU and TCP. It outlines data flow from the PLC to cloud services including HiveMQ MQTT broker for real-time telemetry, InfluxDB Cloud for time-series data storage, and Grafana Cloud for visualization. The system uses Healthchecks.io for uptime monitoring and plans Slack integration for alert notifications, with security measures including TLS, password management, and VPN access controls.
## Content
<details><summary>Full extracted text</summary>
Access & Credentials
Quick Links (Runbook)
Accounts & Logins (fill these)
Store passwords/API tokens in a password manager (e.g., 1Password) and reference vault item names here.
System Overview
The system integrates a Raspberry Pi 5, Productivity 1000 PLC, and VFD with cloud-based services for monitoring, historical logging, and alerting. Connectivity is provided via Starlink, and remote access is managed with Tailscale VPN.
Architecture & Workflow
PLC ↔ VFD
The Productivity 1000 PLC communicates with the VFD over Modbus RTU (RS-485). The PLC reads drive telemetry such as speed, status, and fault codes.
Pi ↔ PLC
The Raspberry Pi 5 runs Node-RED, which reads Modbus TCP data exposed by the PLC. This creates a bridge between the PLC and higher-level cloud services.
Pi → HiveMQ (MQTT Broker)
Node-RED publishes live telemetry data to HiveMQ Cloud over TLS-secured MQTT. The IoT Dashboard mobile application subscribes to these topics for real-time VFD monitoring.
Pi → InfluxDB Cloud
Node-RED writes time-series telemetry to a cloud-hosted InfluxDB bucket. Data is tagged by site, device, and timestamp.
Grafana Cloud
Grafana Cloud queries the InfluxDB bucket and provides historical dashboards and trend visualization. Users access Grafana via web or mobile apps.
Healthchecks.io
Node-RED sends a heartbeat ping to Healthchecks.io on a set interval. If the Pi does not check in, Healthchecks triggers alerts to Slack and Email.
Slack Integration (Future)
Node-RED will publish alarm conditions directly to Slack using a webhook URL. These alarms may include threshold violations, drive faults, or connectivity loss.
Monitoring & Alerts
Users access the system through two main paths:
1. IoT Dashboard App – real-time telemetry via MQTT (HiveMQ).
2. Grafana Cloud – historical and trend data from InfluxDB.
System uptime is monitored using Healthchecks.io. Alerts are currently configured for heartbeat failures (Pi not reporting). Future enhancements include Slack-based alarm notifications triggered from Node-RED.
Security & Best Practices
- All cloud services require TLS and unique credentials.
- Credentials and tokens should be stored in a password manager (e.g., 1Password).
- Environment variables on the Pi are used for secrets (e.g., INFLUX_TOKEN, SLACK_WEBHOOK_URL).
- Tailscale enforces 2FA for VPN access.
- MQTT ACLs should restrict topics to read-only for client dashboards.
</details>