Token导航 LogoToken导航TokenDH.com
效率需要联网clawhub未标认证来源可访问clear审计通过

co2-tank-monitor二氧化碳罐监视器

Agent Skill

co2-tank-monitor 用于补充效率相关能力,适合在 OpenClaw 中需要让 Agent 承接效率相关任务时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

6,705

周安装

288

GitHub Stars

公开资料未说明

下载量

2,350
OpenClaw

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:co2-tank-monitor(二氧化碳罐监视器)
来源仓库:https://github.com/aipoch-ai/co2-tank-monitor
安装命令:
openclaw skills install co2-tank-monitor
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install co2-tank-monitor

简介

co2-tank-monitor 模拟物联网传感器数据,预测二氧化碳罐耗尽时间以防实验中断。

  • 适用于细胞培养、动物房或工业发酵等依赖气体供应的场景。
  • 基于压力衰减模型计算剩余使用时间,支持阈值报警设置。
  • 需接入真实传感器或模拟数据接口方可启用预测功能。
  • 预警结果受环境温度与流量波动影响,建议保留安全冗余时间。

SKILL.md

name
co2-tank-monitor
description
IoT monitoring simulation to predict CO2 tank depletion and prevent weekend gas outages in cell culture facilities. Monitors cylinder pressure, calculates consumption rates, and provides early warnings for timely replacement.
allowed-tools
[Read, Write, Bash, Edit]
license
MIT
metadata
skill-author
AIPOCH

CO2 Tank Monitor

Monitor CO2 cylinder pressure and predict depletion times to prevent gas outages in cell culture incubators, particularly during weekends when laboratories are unmanned. Provides automated alerts and consumption tracking for proactive cylinder management.

Key Capabilities:

  • Pressure-Based Depletion Prediction: Calculate remaining cylinder life based on current pressure and consumption rates
  • Weekend Risk Detection: Identify if depletion will occur during weekends when no staff is available
  • Multi-Cylinder Support: Handle different cylinder sizes (10L, 40L) and specifications
  • Automated Alert System: Generate status reports with actionable recommendations
  • Simulation Mode: Test monitoring scenarios with randomized data for training

When to Use

✅ Use this skill when:

  • Monitoring cell culture CO2 incubators that require continuous gas supply
  • Setting up automated daily checks for cylinder status (e.g., via cron jobs)
  • Planning cylinder replacement schedules to avoid service interruptions
  • Training new lab members on gas monitoring procedures (use simulation mode)
  • Managing multiple incubators with different consumption rates
  • Pre-holiday assessments to ensure adequate gas supply during lab closures
  • Creating standard operating procedures (SOPs) for gas monitoring

❌ Do NOT use when:

  • Monitoring liquid nitrogen tanks for cryogenic storage → Use freezer-sample-locator or specialized LN2 monitors
  • Tracking compressed air or N2 cylinders for non-CO2 applications → Adapt parameters but verify compatibility
  • Real-time IoT sensor integration is available → Use actual sensor API instead of simulation
  • Cylinder uses weight-based measurement instead of pressure → Modify calculation logic accordingly
  • Emergency gas leak detection is needed → Use gas detection safety systems with alarms
  • Managing bulk tank installations with automatic switchover → These systems have built-in monitoring

Related Skills:

  • 上游 (Upstream): equipment-maintenance-log, lab-inventory-tracker
  • 下游 (Downstream): eln-template-creator, lab-budget-forecaster

Integration with Other Skills

Upstream Skills:

  • equipment-maintenance-log: Track CO2 incubator maintenance history that affects consumption rates
  • lab-inventory-tracker: Monitor cylinder inventory and replacement schedules
  • equipment-maintenance-log: Record calibration dates for pressure gauges

Downstream Skills:

  • eln-template-creator: Generate experiment templates that include gas monitoring checklists
  • lab-budget-forecaster: Forecast CO2 gas costs based on consumption trends
  • waste-disposal-guide: Coordinate empty cylinder disposal with replacement

Complete Workflow:

Daily Morning Check → co2-tank-monitor → equipment-maintenance-log → lab-inventory-tracker → Replacement Scheduling

Core Capabilities

1. Pressure-Based Depletion Prediction

Calculate remaining cylinder lifetime based on current pressure readings and historical consumption patterns.

from scripts.main import calculate_remaining_days, calculate_depletion_time
from datetime import datetime

# Current cylinder status
current_pressure = 8.0  # MPa
daily_consumption = 1.5  # MPa/day

# Calculate remaining time
remaining_days = calculate_remaining_days(current_pressure, daily_consumption)
print(f"Remaining days: {remaining_days:.1f}")

# Calculate depletion datetime
depletion_time = calculate_depletion_time(remaining_days)
print(f"Estimated depletion: {depletion_time.strftime('%Y-%m-%d %H:%M')}")

# Formula: remaining_days = pressure / daily_consumption

Parameters:

ParameterTypeRequiredDescriptionDefault
pressurefloatYesCurrent cylinder pressure in MPa8.0
daily_consumptionfloatYesAverage daily consumption rate (MPa/day)1.5
capacityintNoCylinder capacity in liters (10 or 40)40

Calculation Method:

remaining_days = current_pressure / daily_consumption

Best Practices:

  • Calibrate consumption rate based on historical data (monitor for 1-2 weeks)
  • Account for usage variations - higher on heavy culture days, lower on weekends
  • Check pressure at consistent time (e.g., 9 AM daily) for accurate trends
  • Update consumption rate seasonally - incubator usage may vary

Common Issues and Solutions:

Issue: Inaccurate consumption estimates

  • Symptom: Predicted depletion date consistently off by several days
  • Solution: Monitor actual consumption over 2-4 weeks; adjust daily_consumption parameter

Issue: Pressure fluctuations causing false alerts

  • Symptom: Inconsistent pressure readings due to temperature changes
  • Solution: Take readings at same time daily; allow cylinder to equilibrate after use

2. Weekend Depletion Risk Detection

Identify if cylinder depletion will occur during weekends when laboratory staff is unavailable.

from scripts.main import is_weekend, will_deplete_on_weekend, calculate_depletion_time
from datetime import datetime

# Calculate depletion time
remaining_days = 3.5
depletion_time = calculate_depletion_time(remaining_days)

# Check if depletion is on weekend
if is_weekend(depletion_time):
    print(f"⚠️  Warning: Depletion on {depletion_time.strftime('%A')}")
else:
    print(f"✅ Depletion on weekday: {depletion_time.strftime('%A')}")

# Check weekend risk with alert threshold
alert_days = 2
weekend_risk = will_deplete_on_weekend(depletion_time, alert_days)

if weekend_risk:
    print("🔴 CRITICAL: Cylinder will deplete during weekend!")
    print("   Action: Replace before Friday or arrange weekend duty")

Weekend Risk Scenarios:

ScenarioRisk LevelAction Required
Depletion on Saturday/Sunday🔴 HighImmediate replacement or weekend duty
Depletion Monday morning🟡 MediumReplace Friday afternoon
Depletion Friday evening🟡 MediumMonitor closely; replace if possible
Depletion mid-week🟢 LowSchedule routine replacement

Best Practices:

  • Set alert_days = 2 for standard work weeks (alert by Wednesday for Friday replacement)
  • Plan Friday replacements for any cylinder with <4 days remaining
  • Create weekend duty roster for critical experiments during high-risk periods
  • Consider holiday schedules - extend alert_days before long weekends

Common Issues and Solutions:

Issue: False weekend alerts for Monday depletion

  • Symptom: Alerts triggered for Monday morning depletion when lab reopens
  • Solution: Adjust logic or manually review; Monday AM depletion may be acceptable

Issue: Missing Friday evening depletion risk

  • Symptom: Cylinder runs out Friday night after staff leaves
  • Solution: Check Friday 5 PM status specifically; consider Friday evening as weekend

3. Multi-Cylinder Size Support

Support different CO2 cylinder specifications commonly used in laboratory settings.

from scripts.main import simulate_sensor_data

# Cylinder specifications
CYLINDER_SPECS = {
    10: {
        "name": "Portable (10L)",
        "full_pressure": 15.0,  # MPa
        "typical_usage": "Small incubators, backup",
        "duration_1_5_mpa": "~10 days"
    },
    40: {
        "name": "Standard (40L)",
        "full_pressure": 15.0,  # MPa  
        "typical_usage": "Main incubators, high usage",
        "duration_1_5_mpa": "~40 days"
    }
}

# Select appropriate cylinder
capacity = 40  # Liters
specs = CYLINDER_SPECS[capacity]
print(f"Cylinder: {specs['name']}")
print(f"Full pressure: {specs['full_pressure']} MPa")
print(f"Typical usage: {specs['typical_usage']}")

# Calculate capacity-based estimates
full_pressure = 15.0  # MPa (typical full cylinder)
daily_consumption = 1.5  # MPa/day
max_days = full_pressure / daily_consumption
print(f"Maximum duration at {daily_consumption} MPa/day: {max_days:.1f} days")

Cylinder Specifications:

CapacityTypical UseFull PressureDuration (@1.5 MPa/day)
10LSmall incubators, backup~15 MPa~10 days
40LMain incubators, heavy use~15 MPa~40 days

Best Practices:

  • Use 40L cylinders for main incubators to reduce replacement frequency
  • Keep 10L cylinders as emergency backup for critical experiments
  • Record cylinder capacity in monitoring logs for accurate predictions
  • Standardize on one size per facility when possible for simplified inventory

Common Issues and Solutions:

Issue: Wrong capacity setting causing prediction errors

  • Symptom: Predictions consistently off by 4x (10L vs 40L confusion)
  • Solution: Verify cylinder label; update capacity parameter in monitoring script

Issue: Mixing cylinder sizes in same calculation

  • Symptom: Different incubators on different cylinder sizes
  • Solution: Run separate monitoring instances for each cylinder/incubator pair

4. Automated Alert System with Status Levels

Generate color-coded status reports with specific recommendations based on urgency.

from scripts.main import get_status, calculate_remaining_days, calculate_depletion_time

# Example scenarios
scenarios = [
    {"pressure": 12.0, "consumption": 1.5, "days": 2},  # Normal
    {"pressure": 5.0, "consumption": 1.5, "days": 2},   # Caution  
    {"pressure": 2.5, "consumption": 1.5, "days": 2},  # Danger
]

for scenario in scenarios:
    remaining = calculate_remaining_days(
        scenario["pressure"], 
        scenario["consumption"]
    )
    depletion = calculate_depletion_time(remaining)
    
    status_code, icon, status_text, recommendations = get_status(
        remaining, scenario["days"], depletion
    )
    
    print(f"\
Pressure: {scenario['pressure']} MPa")
    print(f"Status: {icon} {status_text} (Code: {status_code})")
    print("Recommendations:")
    for rec in recommendations:
        print(f"  {rec}")

Status Levels:

CodeIconStatusConditionAction
0🟢NormalDays > alert_days + 2No action needed
1🟡CautionDays within alert_days + 2Monitor closely
2🔴DangerDays ≤ alert_days or weekend depletionReplace immediately

Return Codes for Automation:

Exit CodeMeaningAutomation Action
0NormalContinue routine monitoring
1CautionSend email notification
2DangerSend urgent alert; page on-call staff

Best Practices:

  • Integrate with alerting systems using return codes for automated notifications
  • Customize recommendations for your lab's specific procedures
  • Escalate based on status - email for caution, SMS/call for danger
  • Log all status changes for trend analysis and audit trails

Common Issues and Solutions:

Issue: Alert fatigue from frequent caution alerts

  • Symptom: Too many caution-level notifications causing ignored alerts
  • Solution: Adjust alert_days threshold; batch daily reports instead of immediate alerts

Issue: Missing critical weekend alerts

  • Symptom: Weekend depletions not detected when they span multiple days
  • Solution: Ensure will_deplete_on_weekend() logic covers multi-day weekend periods

5. Simulation Mode for Training

Generate randomized cylinder data for training staff without affecting real monitoring systems.

from scripts.main import simulate_sensor_data, calculate_remaining_days

# Generate 5 random scenarios for training
print("Training Scenarios (Simulated Data):\
")

for i in range(5):
    pressure, capacity, consumption = simulate_sensor_data()
    remaining = calculate_remaining_days(pressure, consumption)
    
    print(f"Scenario {i+1}:")
    print(f"  Pressure: {pressure:.2f} MPa")
    print(f"  Capacity: {capacity} L")
    print(f"  Daily consumption: {consumption:.2f} MPa/day")
    print(f"  Estimated remaining: {remaining:.1f} days")
    
    # Training question
    if remaining < 3:
        print(f"  🚨 ACTION: Replace immediately!")
    elif remaining < 7:
        print(f"  ⚠️  ACTION: Schedule replacement this week")
    else:
        print(f"  ✅ STATUS: Monitor normally")
    print()

# Command line usage for simulation mode:
# python scripts/main.py --simulate

Training Applications:

Use CaseSimulation ParametersLearning Objective
New staff trainingVarious random scenariosRecognize different alert levels
Weekend risk awarenessForce weekend depletion scenariosUnderstand critical timing
Consumption calculationDifferent pressure/consumption combosPractice manual calculations
Emergency responseLow pressure scenarios (<3 MPa)Learn urgent procedures

Best Practices:

  • Run simulations weekly to keep staff familiar with alert formats
  • Create scenario library with specific training cases (weekend depletion, low pressure, etc.)
  • Include simulation in onboarding for new lab members
  • Test alert pathways using simulation to verify notification systems

Common Issues and Solutions:

Issue: Simulation data too random for consistent training

  • Symptom: Trainees see different scenarios each session
  • Solution: Set random seed for reproducible scenarios; create predefined training datasets

Issue: Confusion between simulation and real data

  • Symptom: Staff mistakes simulation for actual cylinder status
  • Solution: Clearly label all simulation outputs; use distinct formatting

6. Automated Scheduling Integration

Integrate with cron jobs or task schedulers for automated daily monitoring.

# Example cron setup (documented in comments)
"""
Cron job configuration for daily monitoring:

# Daily check at 9:00 AM
0 9 * * * cd /lab/scripts && python co2_tank_monitor.py --pressure $(cat /sensor/pressure.log | tail -1) --quiet

# Check before weekends (Friday at 5 PM)
0 17 * * 5 cd /lab/scripts && python co2_tank_monitor.py --pressure $(cat /sensor/pressure.log | tail -1)

# Log results
0 9 * * * cd /lab/scripts && python co2_tank_monitor.py >> /var/log/co2_monitor.log 2>&1
"""

# Integration with sensor reading
def read_sensor_data(sensor_log_path: str) -> float:
    """Read current pressure from sensor log file."""
    try:
        with open(sensor_log_path, 'r') as f:
            lines = f.readlines()
            # Get last line and extract pressure value
            last_line = lines[-1].strip()
            pressure = float(last_line.split()[0])  # Assumes format: "8.5 MPa"
            return pressure
    except Exception as e:
        print(f"Error reading sensor: {e}")
        return None

# Usage in automated script
sensor_pressure = read_sensor_data("/path/to/pressure_sensor.log")
if sensor_pressure:
    # Run monitoring with actual sensor data
    import subprocess
    result = subprocess.run([
        "python", "scripts/main.py",
        "--pressure", str(sensor_pressure),
        "--quiet"
    ], capture_output=True)
    
    # Handle return code
    if result.returncode == 2:
        send_urgent_alert("CO2 cylinder requires immediate replacement!")
    elif result.returncode == 1:
        send_notification("CO2 cylinder needs attention soon")

Integration Patterns:

Integration TypeTriggerActionReturn Code Handling
Daily cron9:00 AM dailyCheck statusLog results; alert if ≠0
Pre-weekendFriday 5 PMWeekend risk checkForce alert if weekend risk
Real-timeSensor thresholdImmediate checkPage on-call if danger
ManualLab staffAd-hoc checkDisplay full report

Best Practices:

  • Use --quiet mode for automated runs to reduce log noise
  • Capture return codes for alerting and logging
  • Test cron jobs manually before deploying to production
  • Monitor the monitor - ensure scheduled checks are running
  • Implement heartbeat - alert if monitoring script fails to run

Common Issues and Solutions:

Issue: Cron job not executing

  • Symptom: No monitoring logs or alerts
  • Causes: Path issues, permissions, environment variables
  • Solution: Use full paths; test manually first; check cron logs

Issue: Sensor data unavailable

  • Symptom: Cannot read pressure from sensor log
  • Solution: Implement fallback to manual input; alert on sensor failure

Complete Workflow Example

From daily monitoring to replacement scheduling:

# Step 1: Manual morning check with full report
python scripts/main.py --pressure 8.5 --daily-consumption 1.2

# Step 2: Automated daily check (in cron)
0 9 * * * python scripts/main.py --pressure $(cat sensor.log | tail -1) --quiet

# Step 3: Pre-weekend check
python scripts/main.py --pressure 5.5 --alert-days 3

# Step 4: Simulation for training
python scripts/main.py --simulate

Python API Usage:

from scripts.main import (
    calculate_remaining_days,
    calculate_depletion_time,
    will_deplete_on_weekend,
    get_status
)
from datetime import datetime

def monitor_co2_cylinder(
    pressure: float,
    daily_consumption: float,
    capacity: int = 40,
    alert_days: int = 2
) -> dict:
    """
    Complete CO2 cylinder monitoring workflow.
    
    Returns:
        Dictionary with status, predictions, and recommendations
    """
    # Calculate predictions
    remaining_days = calculate_remaining_days(pressure, daily_consumption)
    depletion_time = calculate_depletion_time(remaining_days)
    
    # Assess weekend risk
    weekend_risk = will_deplete_on_weekend(depletion_time, alert_days)
    
    # Get status and recommendations
    status_code, icon, status_text, recommendations = get_status(
        remaining_days, alert_days, depletion_time
    )
    
    # Compile report
    report = {
        "timestamp": datetime.now().isoformat(),
        "cylinder": {
            "pressure_mpa": pressure,
            "capacity_l": capacity,
            "daily_consumption_mpa": daily_consumption
        },
        "prediction": {
            "remaining_days": round(remaining_days, 1),
            "depletion_time": depletion_time.isoformat(),
            "weekend_risk": weekend_risk
        },
        "status": {
            "code": status_code,
            "level": status_text,
            "icon": icon
        },
        "recommendations": recommendations,
        "action_required": status_code >= 1
    }
    
    return report

# Execute monitoring
result = monitor_co2_cylinder(
    pressure=6.5,
    daily_consumption=1.5,
    capacity=40,
    alert_days=2
)

# Display formatted report
print(f"CO2 Cylinder Monitor Report")
print(f"{'='*40}")
print(f"Status: {result['status']['icon']} {result['status']['level']}")
print(f"Remaining: {result['prediction']['remaining_days']} days")
print(f"Depletion: {result['prediction']['depletion_time']}")
print(f"Weekend Risk: {'Yes' if result['prediction']['weekend_risk'] else 'No'}")
print(f"\
Recommendations:")
for rec in result['recommendations']:
    print(f"  {rec}")

Expected Output Files:

monitoring_logs/
├── co2_daily_checks.log      # Daily monitoring results
├── co2_weekend_alerts.log    # Weekend-specific alerts
└── co2_replacement_history.json  # Cylinder change tracking

Common Patterns

Pattern 1: Daily Morning Monitoring Routine

Scenario: Lab technician checks all CO2 cylinders every morning at 9 AM.

{
  "monitoring_type": "daily_routine",
  "schedule": "9:00 AM daily",
  "cylinders": [
    {"location": "Incubator A", "capacity": 40, "typical_consumption": 1.5},
    {"location": "Incubator B", "capacity": 40, "typical_consumption": 1.2},
    {"location": "Backup", "capacity": 10, "typical_consumption": 0.3}
  ],
  "alert_threshold": 2,
  "actions": {
    "normal": "Log and continue",
    "caution": "Schedule replacement within 3 days",
    "danger": "Replace immediately or arrange weekend coverage"
  }
}

Workflow:

  1. Read pressure gauges on all cylinders at 9 AM
  2. Run monitoring script for each cylinder
  3. Log status codes and any alerts
  4. If any cylinder shows status ≥1, notify lab manager
  5. Schedule replacements for caution-level cylinders
  6. For danger-level, initiate immediate replacement procedure

Output Example:

Morning CO2 Check - 2026-02-09 09:00
=====================================
Incubator A (40L): 🟢 Normal - 12.5 days remaining
Incubator B (40L): 🟡 Caution - 4.2 days remaining  
Backup (10L): 🟢 Normal - 8.1 days remaining

Action Required:
  - Schedule Incubator B cylinder replacement for this week

Pattern 2: Pre-Holiday Weekend Assessment

Scenario: Before a 3-day weekend (e.g., Memorial Day), ensure adequate gas supply.

{
  "monitoring_type": "pre_holiday",
  "holiday": "Memorial Day Weekend",
  "lab_closure": "3 days (Sat-Mon)",
  "alert_days": 4,
  "special_considerations": [
    "No staff on-site for 72 hours",
    "Critical experiments running",
    "Extended alert threshold"
  ]
}

Workflow:

  1. On Friday before holiday, run assessment with extended alert_days (4)
  2. Check all cylinders with weekend risk detection
  3. For any cylinder with depletion during closure period:

- Prioritize immediate replacement - Consider emergency weekend delivery - Transfer critical cultures to backup incubator

  1. Document gas status in holiday handoff notes
  2. Set up emergency contact for gas supplier

Output Example:

Pre-Holiday Assessment - Memorial Day Weekend
==============================================
🔴 CRITICAL: Incubator A cylinder will deplete on Sunday
   Current pressure: 4.5 MPa
   Depletion: Sunday 11:30 PM
   
⚠️  Lab closure: 3 days with no staff

IMMEDIATE ACTIONS:
  1. Replace Incubator A cylinder TODAY (Friday)
  2. Verify backup incubator is operational
  3. Contact gas supplier for emergency weekend number
  4. Transfer critical samples to Incubator B if concerned

Pattern 3: New Lab Member Training

Scenario: Train new technician on CO2 monitoring using simulation mode.

{
  "training_type": "new_staff_onboarding",
  "mode": "simulation",
  "scenarios": [
    {"name": "Normal operation", "pressure_range": [10, 15]},
    {"name": "Approaching replacement", "pressure_range": [4, 6]},
    {"name": "Critical weekend risk", "pressure_range": [2, 4]},
    {"name": "Emergency low pressure", "pressure_range": [0.5, 2]}
  ],
  "learning_objectives": [
    "Recognize different alert levels",
    "Calculate remaining days manually",
    "Understand weekend risk",
    "Learn replacement procedures"
  ]
}

Workflow:

  1. Run simulation mode to generate 10 random scenarios
  2. For each scenario, trainee manually calculates remaining days
  3. Compare trainee calculation with script output
  4. Discuss appropriate actions for each status level
  5. Practice emergency procedures with "danger" scenarios
  6. Review actual monitoring logs from past month
  7. Shadow experienced technician for first week

Output Example:

Training Session - CO2 Monitoring
==================================

Scenario 1/5: Normal Operation
  Simulated pressure: 12.3 MPa
  Daily consumption: 1.4 MPa/day
  
  Trainee calculation: 8.8 days remaining
  Script result: 8.8 days remaining ✅
  
  Discussion: What actions needed?
  ✓ Correct: Continue routine monitoring

Scenario 2/5: Weekend Risk
  Simulated pressure: 3.8 MPa
  Daily consumption: 1.5 MPa/day
  Depletion: Sunday 2 PM
  
  Status: 🔴 Danger
  
  Discussion: What if this were Friday morning?
  ✓ Correct: Immediate replacement required

Pattern 4: Multi-Incubator Facility Management

Scenario: Large facility with 6 incubators on different CO2 cylinders.

{
  "facility_type": "multi_incubator",
  "total_incubators": 6,
  "cylinder_configuration": {
    "main_incubators": {"count": 4, "capacity": 40, "consumption": "1.5-2.0 MPa/day"},
    "backup_incubators": {"count": 2, "capacity": 10, "consumption": "0.3-0.5 MPa/day"}
  },
  "monitoring_strategy": "centralized_dashboard",
  "rotation_schedule": "staggered_replacement"
}

Workflow:

  1. Create monitoring dashboard tracking all 6 cylinders
  2. Run monitoring script for each cylinder daily
  3. Implement staggered replacement schedule to avoid all cylinders needing replacement simultaneously
  4. Track consumption trends to optimize delivery schedule
  5. Maintain 1-2 backup cylinders in inventory
  6. Negotiate bulk pricing with gas supplier based on usage patterns
  7. Monthly review of consumption trends and cost optimization

Output Example:

Facility CO2 Dashboard - 2026-02-09
====================================

Main Incubators (40L):
  Inc-01: 🟢 18.2 days | Last replaced: 2026-01-22
  Inc-02: 🟡 4.5 days | REPLACE THIS WEEK
  Inc-03: 🟢 22.1 days | Last replaced: 2026-01-15
  Inc-04: 🟢 15.8 days | Last replaced: 2026-01-28

Backup Incubators (10L):
  Back-01: 🟢 6.2 days
  Back-02: 🟢 8.4 days

This Week Actions:
  - Replace Inc-02 cylinder by Wednesday
  - Order replacement for delivery next week
  
Monthly Consumption: 42 MPa (28% under budget)

Quality Checklist

Pre-Monitoring Setup:

  • [ ] CRITICAL: Verify pressure gauge is calibrated and functional
  • [ ] Confirm cylinder size (10L or 40L) matches monitoring parameters
  • [ ] Establish baseline daily consumption rate through 1-2 weeks observation
  • [ ] Set appropriate alert_days threshold (typically 2 for standard weeks)
  • [ ] Configure automated scheduling (cron) for daily checks
  • [ ] Set up alerting pathway (email, SMS) for danger-level status
  • [ ] Create emergency contact list for gas supplier
  • [ ] Ensure backup cylinder availability for critical incubators

During Daily Monitoring:

  • [ ] Take pressure readings at consistent time (e.g., 9:00 AM)
  • [ ] CRITICAL: Record actual pressure value, not estimates
  • [ ] Note any unusual consumption patterns (door openings, new cultures)
  • [ ] Verify status code and understand implications
  • [ ] Check for weekend depletion risk (especially on Thursdays/Fridays)
  • [ ] Log all readings for trend analysis
  • [ ] Update consumption rate if usage patterns change significantly
  • [ ] Inspect cylinder and regulator for leaks or damage

Alert Response:

  • [ ] CRITICAL: Acknowledge danger-level alerts immediately
  • [ ] For weekend depletion risk, arrange replacement before Friday 5 PM
  • [ ] Notify lab manager of caution-level cylinders needing replacement
  • [ ] Document all actions taken in response to alerts
  • [ ] Verify replacement cylinder is available before removing empty one
  • [ ] After replacement, verify incubator maintains proper CO2 concentration
  • [ ] Update monitoring logs with replacement date and new cylinder info
  • [ ] Return empty cylinder to storage area for pickup

Post-Replacement Verification:

  • [ ] CRITICAL: Verify new cylinder valve is fully open
  • [ ] Check pressure gauge reading on new cylinder (should be ~15 MPa)
  • [ ] Monitor incubator CO2 concentration for 30 minutes to verify stability
  • [ ] Verify no gas leaks at regulator connections (soap bubble test)
  • [ ] Update monitoring parameters with new cylinder start pressure
  • [ ] Log replacement in inventory management system
  • [ ] Notify relevant lab members of cylinder change
  • [ ] Schedule next replacement based on predicted depletion date

Common Pitfalls

Monitoring Setup Issues:

  • Inconsistent reading times → Daily variations affect trend accuracy

- ✅ Take readings at same time each day (e.g., 9:00 AM ± 30 min)

  • Wrong consumption estimates → Inaccurate depletion predictions

- ✅ Calculate from actual usage over 2+ weeks; update seasonally

  • Ignoring temperature effects → Pressure varies with ambient temperature

- ✅ Allow cylinder to equilibrate to room temperature before reading

  • Not accounting for usage variations → Weekend vs weekday consumption differs

- ✅ Monitor separately for different usage patterns; use average

Alert and Response Issues:

  • Alert fatigue → Too many notifications cause important alerts to be missed

- ✅ Batch daily reports; only escalate urgent alerts immediately

  • Missing weekend alerts → Friday check doesn't catch Saturday depletion

- ✅ Always check weekend risk explicitly; use Friday 5 PM check

  • Delayed replacement → Waiting too long leads to actual depletion

- ✅ Replace when caution status triggered; don't wait for danger

  • No backup plan → Cylinder fails with no replacement available

- ✅ Maintain 1-2 backup cylinders; know emergency supplier contacts

Calculation and Data Issues:

  • Wrong cylinder capacity → 10L vs 40L confusion causes 4x error

- ✅ Always verify cylinder label; double-check capacity parameter

  • Pressure unit confusion → PSI vs MPa or Bar mixing

- ✅ Standardize on MPa; convert if gauge shows different units

  • Not tracking multiple cylinders → Mixing readings from different tanks

- ✅ Label cylinders clearly; use location-specific monitoring

  • Ignoring cumulative error → Small daily errors compound over weeks

- ✅ Verify predictions against actual depletion; calibrate regularly

Operational Issues:

  • Gauges not calibrated → Inaccurate readings lead to wrong predictions

- ✅ Calibrate pressure gauges annually or per manufacturer recommendation

  • Leaks undetected → Higher consumption than predicted

- ✅ Regular leak checks; sudden consumption increases indicate leaks

  • Regulator problems → Pressure drops even with adequate gas

- ✅ Replace regulators per schedule; check for ice buildup in flow

  • No documentation → Cannot track trends or troubleshoot issues

- ✅ Maintain detailed logs; review monthly for optimization


Troubleshooting

Problem: Predicted depletion date consistently wrong

  • Symptoms: Actual depletion 3-5 days earlier or later than predicted
  • Causes:

- Incorrect consumption rate estimate - Changing usage patterns (more/fewer cultures) - Temperature variations affecting pressure readings - Leaks in system

  • Solutions:

- Recalculate consumption rate from recent actual usage - Monitor for 2+ weeks to establish accurate baseline - Take readings at consistent temperature conditions - Check for leaks using soapy water at connections

Problem: Frequent false alerts (alert fatigue)

  • Symptoms: Receiving caution/danger alerts that don't require action
  • Causes:

- Alert threshold too sensitive - Normal fluctuations triggering alerts - Multiple notifications for same cylinder

  • Solutions:

- Adjust alert_days parameter (increase from 2 to 3) - Implement alert aggregation (daily summary vs immediate) - Use quiet mode for automated checks; manual for full reports

Problem: Weekend depletion not detected

  • Symptoms: Cylinder runs out Saturday/Sunday despite monitoring
  • Causes:

- Friday check missed weekend risk - Depletion spans multiple days - Holiday weekends not considered

  • Solutions:

- Add explicit Friday 5 PM check for weekend risk - Extend alert_days before long weekends - Use will_deplete_on_weekend() logic that checks multi-day periods

Problem: Cannot read pressure gauge accurately

  • Symptoms: Inconsistent or unclear pressure readings
  • Causes:

- Gauge needle stuck or damaged - Condensation or dirt on gauge face - Parallax error reading needle position

  • Solutions:

- Replace faulty gauges immediately - Clean gauge face regularly - View needle straight-on to avoid parallax - Consider digital pressure sensors for better accuracy

Problem: Cylinder depletes faster than expected

  • Symptoms: Predicted 10 days, actually depleted in 6 days
  • Causes:

- Increased incubator usage (more cultures, frequent door openings) - Gas leak in system - Regulator malfunction - Temperature increase (higher consumption)

  • Solutions:

- Check for leaks at all connections - Verify incubator door seals - Inspect regulator for proper function - Update consumption rate to reflect actual usage

Problem: Monitoring script not running automatically

  • Symptoms: No daily logs or alerts despite cron setup
  • Causes:

- Cron job misconfigured - Path issues in script - Permissions problems - Script errors not logged

  • Solutions:

- Test cron job manually first - Use full absolute paths in cron and script - Check cron logs: grep CRON /var/log/syslog - Redirect stderr to log file for debugging


References

Available in references/ directory:

  • (No reference files currently available for this skill)

External Resources:

  • Cell Culture CO2 Guidelines: https://www.thermofisher.com/cellculture
  • Gas Cylinder Safety: https://www.osha.gov/gascylinders
  • CO2 Incubator Best Practices: https://www.sigmaaldrich.com/incubators

Scripts

Located in scripts/ directory:

  • main.py - CO2 tank monitoring engine with prediction and alerting logic

Pressure Conversion Reference

UnitMPaPSIBar
MPa1.0145.010.0
PSI0.00691.00.069
Bar0.114.51.0

Typical Cylinder Pressures:

  • Full cylinder: ~15 MPa (~2200 PSI)
  • Working pressure: 8-10 MPa
  • Replace threshold: ~3-5 MPa
  • Empty: <1 MPa

Last Updated: 2026-02-09 Skill ID: 182 Version: 2.0 (K-Dense Standard)

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

需要根据任务场景推荐可安装能力包时

04

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenClaw

73.29%
按下载量换算1,722

安全审计

VirusTotal

通过

ClawScan

通过

Static analysis

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills