GHL ProfiLux Cloud Setup Internal beta
ReefMind imports GHL ProfiLux probe readings through myGHL as a read-only telemetry source. The integration is intentionally limited to measurement reads while ReefMind validates real customer devices, timestamps, and myGHL rate limits.
Status before customer rollout
Internal beta only: do not link a customer GHL account until ReefMind support confirms the device, read-only share, and measurement fixture for that account. The public onboarding button should remain beta-gated.
- Supported first slice: temperature, pH, ORP/redox, salinity/conductivity, alkalinity, nitrate, phosphate, calcium, and magnesium probe-style readings when present.
- Not supported: dosing pump control, fans, sockets/power bars, illumination, feed pause, maintenance mode, programs, or any write/control action.
- Unknown or control-like channels stay raw, non-alerting, non-editable, and excluded from Captain Chris advice until product semantics are defined.
Preferred customer access model
GHL's myGHL sharing flow supports granting another myGHL account either VIEW or FULL access to a device. ReefMind should use VIEW only whenever the customer's app/account supports it.
- Open the GHL Connect app or myGHL device list.
- Open the blue gear/settings icon next to the ProfiLux device connection.
- Share/add access for the ReefMind myGHL account provided by support.
- Choose VIEW access, not FULL.
- Tell support the myGHL device id / display name so ReefMind targets the correct device if multiple controllers are visible.
ReefMind boundary: even if a myGHL account has broader permissions, ReefMind's adapter allowlists read actions only and blocks write-like Handler.ashx actions before any network call.
Fallback credential model
If delegated VIEW sharing cannot be used yet, support may temporarily use a server-side myGHL username/passphrase credential reference for validation. That credential stays server-side in Secret Manager and must not be exposed in browser descriptors, GitHub comments, logs, or test fixtures.
Do not ask a customer to paste full-control myGHL credentials into a general public form. Use a support-assisted beta flow until the delegated VIEW-share path is proven end-to-end.
Sensor mapping behavior
- ReefMind requires a real vendor timestamp. Missing/invalid timestamps fail the sync instead of fabricating
now. - Device id targeting uses the integration's external device id so multi-device myGHL accounts do not drift to the wrong ProfiLux.
- Device-confirmed
sensorMappingsmay label and promote safe reef parameters only. Control channels and arbitrary labels remain raw/unmapped. - Compressed Handler.ashx decode failures are hard errors, not healthy empty syncs.
Operational notes
- Feature flag:
GHL_BETA_ENABLED=true. - Provider id:
ghl. - Credential ref prefix:
reefmind-ghl-token. - API path: myGHL compressed JSON POST envelope to
/api/v2/Handler.ashx. - Allowed actions: authentication/device/measurement read actions only.
{
"provider": "ghl",
"enabled": true,
"state": "active",
"externalDeviceId": "myGHL device id",
"credentialRef": "gcp-secret:reefmind-ghl-token-...",
"sensorMappings": {
"device-uuid": {
"temp_1": { "parameter": "temperature", "label": "Temperature 1", "unit": "C" }
}
}
}