Laboratory monitoring

Sentinel

{{ equipment | length }} monitored assets
Monitoring onlineSentinel services available
Assets{{ equipment | length }}Registered equipment
Healthy{{ healthy_count }}Health Score ≥ 85 · click to view
Attention{{ attention_count }}Health Score below 85 · click to view
Active alarms{{ alarm_summary["active"] }}Threshold, device, system or predictive
{% if page == "alarms" %}
Alarm management

Alarm console

Configure alarm rules

One place for active, acknowledged and resolved events, including predictive alarms.

Active {{ alarm_summary["active"] }}Acknowledged {{ alarm_summary["acknowledged"] }}Resolved {{ alarm_summary["resolved"] }}
ThresholdTemperature or configured limit exceeded.
DeviceSensor, logger or communication issue.
SystemSentinel platform or infrastructure issue.
PredictiveDegradation detected before a conventional alarm.
Alarm register

Current and recent alarms

{% if alarms %}
{% for alarm in alarms %}{% endfor %}
StateSeverityCategoryEquipmentMessageOpenedAction
{{ alarm["state"] }}{% if alarm["suppressed"] %}SUPPRESSED{% endif %}{{ alarm["severity"] }}{{ alarm["category"] }}{{ alarm["equipment_id"] }}{{ alarm["message"] }}{{ alarm["opened_at"] }}
{% if alarm["state"] == "ACTIVE" %}{% endif %}{% if alarm["state"] != "RESOLVED" %}{% endif %}
{% else %}
No alarms recordedSentinel will keep this register for active, acknowledged and resolved alarms.
{% endif %}
Notification transport: E-mail {% if notification_transport.email_configured %}configured{% else %}not configured{% endif %} · SMS not configuredRecipients and cascade are always audited. Messages are only marked SENT when a real transport confirms delivery to the gateway.
{% endif %} {% if page == "trends" %}
Trend explorer

Trends

Compare temperature and Health Score using real measurement history.

Internal temperature

°C
Health Score

/100
Sentinel interpretation

Loading real equipment history…

{% endif %} {% if page == "reports" %}
Reporting

Report center

Monitoring, alarm, technical and predictive reports are kept separate for clear client use.

01Monitoring report

Export up to 5,000 real measurements with temperature, current and Health Score.

CSV export
02Alarm report

Export the alarm register including states, acknowledgements, resolution and suppression.

CSV export
03Technical report

Generate the current explainable Sentinel Brain expert report.

JSON export
04Predictive report

Export current analysis plus long-term Brain Health Score trend.

JSON export
{% endif %} {% if page == "events" %}
Audit trail

Events

A chronological log of alarm and administration actions.

{% if events %}
{% for event in events %}{% endfor %}
TimeEventEquipmentActorComment
{{ event["created_at"] }}{{ event["event_type"] }}{{ event["equipment_id"] }}{{ event["actor"] or "—" }}{{ event["comment"] or "—" }}
{% else %}
No events recordedNo alarm or administration event has been recorded yet. Sentinel will not create fake audit entries.
{% endif %}
{% endif %} {% if page == "administration" %}
Administration

Configure Sentinel

Manage people, access groups, alarm rules and maintenance windows from one clear workspace.

Checking backend…
01

Users

Create accounts and choose their role.

Configured users

{{ users | length }} total
{% if users %}
{% for user in users %} {% endfor %}
NameRoleGroupsStatus
{{ user["display_name"] }}{{ user["email"] }} {{ user["role_code"] }} {{ user["group_codes"] or "Not assigned" }} {% if user["enabled"] %}Enabled{% else %}Disabled{% endif %}
{% else %}
No users yet. Create the first one above.
{% endif %}
02

Groups & access

Model the way the laboratory actually works: CS4, CS20, teams or departments.

Groups

{{ groups | length }} total
{% if groups %}
{% for group in groups %}
{{ group["group_code"] }}

{{ group["display_name"] }}

{{ group["site_code"] or "No site" }}

{{ group["equipment_count"] }} equipment{{ group["user_count"] }} users
{% endfor %}
{% else %}
No groups yet. Create CS4, CS20 or any structure used by the lab.
{% endif %}
{% if groups %}

Assign equipment

Choose which group can see an equipment.

Assign user permissions

Grant access only to the groups this user needs.

{% endif %}

Equipment memberships

One equipment may belong to several groups
{% for item in equipment %}
{{ item['equipment_id'] }}{% if item.get('simulated') %}SIMULATED{% endif %}
{% for membership in group_memberships %}{% if membership['equipment_id'] == item['equipment_id'] %}{{ membership['group_code'] }} {% endif %}{% endfor %}{% if not equipment_group_map.get(item['equipment_id']) %}Unassigned{% endif %}
{% endfor %}
03

Alarm rules

Create operational rules at site, group or individual equipment level.

Active configuration

{{ alarm_rules | length }} rules
{% if alarm_rules %}
{% for rule in alarm_rules %}
{{ rule["name"] }}{{ rule["scope_type"] }} · {{ rule["scope_id"] }}
{{ rule["parameters"].get("sensor_id") or rule["parameters"]["metric"] }} · {{ ">" if rule["parameters"]["operator"] == "above" else "<" }} {{ rule["parameters"]["threshold"] }} · delay {{ rule["parameters"].get("delay_minutes",0) }} min · hyst. {{ rule["parameters"].get("hysteresis",0) }}
{{ rule["severity"] }}
{% endfor %}
{% else %}
No alarm rules configured.
{% endif %}

Recipients & escalation cascade

{{ alarm_recipients | length }} configured steps
{% if alarm_rules %}
{% for rule in alarm_rules %}
{{ rule['name'] }}{{ rule['scope_type'] }} · {{ rule['scope_id'] }}
{% set cascade = namespace(count=0) %}{% for recipient in alarm_recipients %}{% if recipient['rule_id'] == rule['id'] %}{% set cascade.count = cascade.count + 1 %}
Step {{ recipient['step_order'] }}{{ recipient['channel'] }} → {{ recipient['recipient'] }} · +{{ recipient['delay_minutes'] }} min
{% endif %}{% endfor %}{% if cascade.count == 0 %}
No recipients for this rule.
{% endif %}
{% endfor %}
{% else %}
Create an alarm rule first.
{% endif %}
Transport statusE-mail: {% if notification_transport.email_configured %}configured{% else %}NOT CONFIGURED{% endif %}SMS: NOT CONFIGURED
Cascade configuration is stored and audited. E-mail delivery uses SENTINEL_SMTP_* environment variables; SMS requires a site gateway integration.
04

Maintenance calendar

Temporarily suppress notifications without deleting the alarm or its audit trail.

Scheduled windows

{{ alarm_schedules | length }} total
{% if alarm_schedules %}
{% for schedule in alarm_schedules %}
{{ schedule["name"] }}{{ schedule["scope_type"] }} · {{ schedule["scope_id"] }}
{{ schedule["starts_at"] }}until {{ schedule["ends_at"] }}
{{ schedule["reason"] }}{{ schedule["alarm_category"] or "All alarms" }}
{% if schedule["enabled"] %}Enabled{% else %}Disabled{% endif %}
{% endfor %}
{% else %}
No maintenance window scheduled.
{% endif %}
05

Simulation lab

Create a realistic demonstration fleet without touching the real freezer data. Simulated devices are explicitly marked SIMULATED.

Demo fleet

9 simulated assets + your real equipment

The simulator writes genuine measurement rows for test assets so Fleet, Trends, Brain, Alarms and Reports can be exercised end to end. Real equipment measurements are never deleted by the simulation controls.

{% endif %}