feat(openclaw): add shopping, supermarket deals, geizhals, and ebay MCP tools
This commit is contained in:
+47
-13
@@ -10,26 +10,59 @@ This directory manages the configuration, code templating, and deployment for th
|
||||
* **[scripts/Taupi-4.0.templated.js](file:///Users/moritz/src/infrapuzzle/terraform_shelly/scripts/Taupi-4.0.templated.js)**: The locally generated script rendering the variables passed from Terraform. Do not edit directly.
|
||||
* **[scripts/upload.py](file:///Users/moritz/src/infrapuzzle/terraform_shelly/scripts/upload.py)**: Helper script executing during `terraform apply` to upload the templated script to the Shelly device over local HTTP RPC commands.
|
||||
|
||||
## Architecture Decisions
|
||||
## Architecture Decisions & Logic Gates
|
||||
|
||||
### 1. Linear Isopleth Approximation (LIM I)
|
||||
To determine if indoor relative humidity is high enough to warrant ventilation, we use a linear approximation of the **Lowest Isopleth for Mould (LIM I)** curve developed by Klaus Sedlbauer for biodegradable substrates (like wood or wallpaper).
|
||||
The ventilation controller uses a **modular logic-gate architecture** designed to keep the cellar dry while preventing cellar overheating in summer and overcooling in winter.
|
||||
|
||||
Between $5^\circ\text{C}$ and $25^\circ\text{C}$, the critical relative humidity threshold is calculated dynamically based on room temperature ($T$):
|
||||
### 1. Decoupled Mold Alert (Sedlbauer LIM I)
|
||||
To distinguish between **routine/proactive drying** and **genuine mold risk**, the mold alert (`taupi_is_critical` metric $\rightarrow$ Prometheus alert `TaupiFanMoldDanger`) is decoupled from the fan start threshold:
|
||||
* **LIM I Baseline**: $RH_{crit}(T) = 80\% - 0.5 \cdot (T - 10)$
|
||||
* **Alert Activation**: $RH_{in} \ge RH_{crit}(T) - \text{critical\_humi\_buffer}$
|
||||
* **Behavior**: Fires an alert only when humidity poses an actual germination hazard on cold outer walls.
|
||||
|
||||
$$RH_{crit}(T) = 80\% - 0.5 \cdot (T - 10)$$
|
||||
### 2. Cellar Overheating Prevention
|
||||
In warm months, blowing outdoor air into a cool cellar can heat up the cellar mass.
|
||||
* **Ceiling Protection**: If $T_{in} \ge 20^\circ\text{C}$, the fan is **only** permitted to run if outdoor air is cooler than inside ($T_{out} \le T_{in}$).
|
||||
* **Warming Allowance**: If $T_{in} < 20^\circ\text{C}$, gentle warming is permitted, but outdoor temperature cannot exceed $20^\circ\text{C}$ ($T_{out} \le 20^\circ\text{C}$).
|
||||
|
||||
* At $10^\circ\text{C}$, the critical threshold is $80\%$.
|
||||
* At $20^\circ\text{C}$, the critical threshold is $75\%$.
|
||||
### 3. Seasonal Target Humidities
|
||||
* **Cold / Winter Mode** ($T_{in} < 14^\circ\text{C}$ or $T_{out} < 10^\circ\text{C}$): Targets **50% RH**. Once 50% RH is reached, the fan stops to preserve cellar warmth.
|
||||
* **Warm / Summer Mode**: Targets **40% RH** for maximum drying.
|
||||
* **Hard Cold Floor**: The fan is blocked if $T_{in} \le \text{mindesttemperatur}$ (default 10°C).
|
||||
|
||||
### 2. Room-to-Wall Safety Buffer (15%)
|
||||
Since the sensor measures ambient room air, but mold grows on colder outer wall surfaces, we must compensate for the thermal gradient.
|
||||
* **Physical Effect**: A $5^\circ\text{C}$ drop in temperature between room air ($20^\circ\text{C}$) and the wall surface ($15^\circ\text{C}$) causes the local relative humidity at the wall to spike from $60\%$ to $82\%$, crossing the mold germination threshold.
|
||||
* **Action**: We apply a **$15\%$ safety buffer** to the threshold. This targets keeping the ambient room air relative humidity below **$60\%$** (when the room is at $20^\circ\text{C}$) to keep wall surfaces safely below $80\%$ relative humidity.
|
||||
### 4. 2-Tier Scheduling & Optimal Night Window
|
||||
In Central Europe / Germany, the diurnal temperature and absolute humidity minimum occurs in early morning (~03:00–07:00, peak around 05:00):
|
||||
* **Urgent Drying ($RH_{in} > 60\%$)**: Runs 24/7 whenever psychrometric and temperature guards allow.
|
||||
* **Routine Drying ($40\% \le RH_{in} \le 60\%$)**: Restricted to the **optimal night window (03:00–07:00)** to exploit maximum dew point spread.
|
||||
|
||||
The fan is only allowed to run if:
|
||||
### 5. Duty Cycle & Thermal Equilibrium
|
||||
To allow cellar air and thermal wall mass to equilibrate and prevent non-stop continuous blowing:
|
||||
* **Max Continuous Runtime**: 90 minutes.
|
||||
* **Cooldown Rest**: 45 minutes pause after hitting max continuous runtime.
|
||||
|
||||
$$\text{humidity\_innen} \ge RH_{crit}(T) - 15\%$$
|
||||
---
|
||||
|
||||
## Logic Gate Summary
|
||||
|
||||
```
|
||||
[ Telemetry Fresh & Valid? ]
|
||||
│ YES
|
||||
[ Cooldown Rest Elapsed? ]
|
||||
│ YES
|
||||
[ Cellar Temp > Min Floor (10°C)? ]
|
||||
│ YES
|
||||
[ Overheating Safe (Tout vs Tin)? ]
|
||||
│ YES
|
||||
[ Cellar RH > Target (40% / 50%)? ]
|
||||
│ YES
|
||||
[ Dew Point Spread > Threshold (2°C)? ]
|
||||
│ YES
|
||||
[ Urgent (>60%) OR Night Window (03-07)? ]
|
||||
│ YES
|
||||
┌────────┴────────┐
|
||||
▼ ▼
|
||||
[ START BLOWER ] [ LOG REASON ]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
@@ -38,3 +71,4 @@ $$\text{humidity\_innen} \ge RH_{crit}(T) - 15\%$$
|
||||
* **[BoeserBob/Taupi-4.0](https://github.com/BoeserBob/Taupi-4.0)**: The original upstream Shelly dew point ventilation controller repository.
|
||||
* **[Klaus Sedlbauer Biography (Wikipedia)](https://de.wikipedia.org/wiki/Klaus_Sedlbauer)**: The researcher who developed the Lowest Isopleth for Mould (LIM) curves at Fraunhofer IBP.
|
||||
* **[WUFI Biohygrothermal Model](https://wufi.de/en/wufi-software/wufi-bio/)**: Fraunhofer IBP documentation explaining dynamic mold growth and spore germination models.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user