- name
- hormuz-strait-monitor
- description
- Track shipping transit data through the Strait of Hormuz. Monitors transits, daily throughput, and non-Iranian vessel counts from hormuzstraitmonitor.com and shipxy.com. Alerts when traffic recovery thresholds are met including vessel count recovery, throughput percentage recovery, and non-Iranian vessel exit counts. Use for monitoring Middle East shipping disruption and oil flow recovery.
Hormuz Strait Transit Monitor
Track shipping transit data through the Strait of Hormuz - a critical chokepoint for global oil supply.
Quick Start
# Run the monitor
python ~/.openclaw/workspace/skills/hormuz-strait-monitor/scripts/hormuz_monitor.py
# With notification channel
python ~/.openclaw/workspace/skills/hormuz-strait-monitor/scripts/hormuz_monitor.py --channel wecom
# Debug mode (keep browser visible)
python ~/.openclaw/workspace/skills/hormuz-strait-monitor/scripts/hormuz_monitor.py --debugData Collected
| Source | Field | Format | Example |
|---|---|---|---|
| hormuzstraitmonitor.com | Transits (24h) | Number of ships | 6 ships |
| Day Normal | Daily average | 60/day | |
| Daily Throughput | DWT (Deadweight Tonnage) | 500K DWT | |
| Avg Throughput | Average DWT | 10.3M | |
| shipxy.com | Non-Iranian Vessels | Count from vessel list | 4 vessels |
Data Sources
| Source | URL | Data Collected |
|---|---|---|
| hormuzstraitmonitor.com | https://hormuzstraitmonitor.com/ | Transits (24h), Daily Throughput, Day Normal, Avg Throughput |
| shipxy.com | https://www.shipxy.com/special/hormuz | Non-Iranian vessels exiting strait in 12h |
Both sites require JavaScript rendering - static HTTP fetch will not work.
Alert Conditions
Alert triggers when any condition is met:
| Condition | Threshold | Meaning |
|---|---|---|
| Transits Recovery | >= 10 vessels | Absolute recovery threshold |
| Transits Recovery | >= 20% of day normal | Relative recovery threshold |
| Throughput Recovery | >= 20% of avg | Oil flow returning |
| Non-Iranian Vessels | >= 10 exiting in 12h | Western/Asian shipping activity |
Output
Data is appended to CSV: ~/.openclaw/workspace/memory/hormuz-transit-data.csv
Columns:
timestamp- Collection timetransits_24h- Vessels transited in last 24hdaily_throughput- Current daily oil flowday_normal- Normal daily transit countavg_throughput- Average daily throughputnon_iranian_vessels- Non-Iranian vessels exiting in 12halerts- Alert messages (if any)
Configuration
See references/config.json for threshold customization.
To enable notifications:
- Edit
references/config.json - Set
"channel": "wecom"or other supported channel - Or use
--channelflag at runtime
Environment Requirements
Required:
- Google Chrome (installed at
/usr/bin/google-chrome) - Python 3.x
- selenium + webdriver-manager
Install dependencies:
pip install selenium webdriver-managerChrome version: This skill uses Chrome 147+ (headless mode).
Workflow
- Fetch hormuzstraitmonitor.com
- Launch headless Chrome - Wait for JavaScript rendering (~10s) - Parse Transits (24h), Daily Throughput, Day Normal, Avg - Use regex patterns for data extraction
- Fetch shipxy.com
- Navigate to Chinese shipping portal - Wait for rendering (~15s) - Parse Non-Iranian vessel count (Chinese text patterns)
- Record Data
- Append to CSV file - Include timestamp and all collected values
- Check Alerts
- Compare current vs previous data - Evaluate threshold conditions - Generate alert messages
- Notify (if configured)
- If alerts triggered OR channel configured - Send summary via specified channel
Troubleshooting
Chrome not found:
ERROR: Chrome binary not found at /usr/bin/google-chromeSolution: Install Google Chrome or update binary path in script.
Selenium not installed:
ERROR: selenium and webdriver-manager not installedSolution: pip install selenium webdriver-manager
Data not parsed:
- Check debug screenshots:
~/.openclaw/workspace/memory/hormuzstraitmonitor_debug.png - Run with
--debugto see browser content - Website structure may have changed - update regex patterns
Timeout errors:
- Increase wait time in script (JavaScript-heavy pages)
- Check network connectivity to both sites
Cron Integration
To monitor regularly, add to heartbeat or cron:
Heartbeat (HEARTBEAT.md):
- Check Hormuz Strait transit data (every 4h)Cron job:
# Every 4 hours
openclaw cron add --schedule "0 */4 * * *" --name hormuz-monitor \
--payload '{"kind": "agentTurn", "message": "Run Hormuz Strait monitor skill"}'Notes
- The Strait of Hormuz handles ~20% of global oil consumption
- During Iran-West tensions, transits may drop significantly
- Recovery signals indicate de-escalation or alternative routing
- Non-Iranian vessel count is key indicator of Western/Asian shipping confidence