diff --git a/mombox.yaml b/mombox.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..45bc40ae00a1f07b3d8122a67f8ba767e179ae31
--- /dev/null
+++ b/mombox.yaml
@@ -0,0 +1,25 @@
+substitutions:
+  devicename: "mombox"
+  comment: "Mother Box Controller"
+
+  # Propbox Nodes
+  hostname_light: "${devicename}-light.${domain}"
+  hostname_fan: "${devicename}-fan.${domain}"
+
+  # Overrides
+  fan_script: "fan_control_power"
+
+packages:
+  base:                 !include packages/base.yaml
+  esp32c3:              !include packages/esp32c3.yaml
+  time:                 !include packages/time_schedule.yaml
+  air_bme280:           !include packages/air_bme280.yaml
+  soil_moisture:        !include packages/soil_moisture.yaml
+  water_pump:           !include packages/water_pump.yaml
+  watering:             !include packages/watering.yaml
+  yyac32:               !include packages/yyac3s.yaml
+  fan_settings:         !include packages/fan_settings.yaml
+  fan_power:            !include packages/fan_power.yaml
+  fan_scripts:          !include packages/fan_scripts.yaml
+  light_power:          !include packages/light_power.yaml
+  light_settings:       !include packages/light_settings.yaml
diff --git a/packages/esp32.yaml b/packages/esp32.yaml
index b5d18ce4faedc9d6904ce58b9e8d71462fd554b3..a194fe3e80f340456de89cf1d60664d320e9d042 100644
--- a/packages/esp32.yaml
+++ b/packages/esp32.yaml
@@ -9,3 +9,6 @@ i2c:
 
 wifi:
   power_save_mode: none
+
+substitutions:
+  yyac3s_pin: GPIO13
\ No newline at end of file
diff --git a/packages/esp32c3.yaml b/packages/esp32c3.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..53be799f98bd285d709574041b562bd5a1a34ae7
--- /dev/null
+++ b/packages/esp32c3.yaml
@@ -0,0 +1,19 @@
+esp32:
+  board: esp32-c3-devkitm-1
+  variant: esp32c3
+  framework:
+    type: arduino
+
+esphome:
+  platformio_options:
+    board_build.flash_mode: dio
+
+i2c:
+  sda: GPIO3
+  scl: GPIO4
+
+wifi:
+  power_save_mode: none
+
+substitutions:
+  yyac3s_pin: GPIO5
\ No newline at end of file
diff --git a/packages/secrets.yaml.dist b/packages/secrets.yaml.dist
index e24990fb348c2afc82c5cec96e308074787942c8..e17165284c2b828228892c4ac1da269d960f4f41 100644
--- a/packages/secrets.yaml.dist
+++ b/packages/secrets.yaml.dist
@@ -8,6 +8,7 @@ pump1_ml_sec: "2.15"    # millilitre per second
 pump1_dose_ml: "1"      # millilitre per dose
 pump2_ml_sec: "2.15"    # millilitre per second
 pump2_dose_ml: "1"      # millilitre per dose
+water_pump_sec: "3"
 mqtt_username: ""
 mqtt_password: ""
 mqtt_host: ""
diff --git a/packages/soil_moisture.yaml b/packages/soil_moisture.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..aa006672a8abd74f7f47c17251bb0199b56b1ad3
--- /dev/null
+++ b/packages/soil_moisture.yaml
@@ -0,0 +1,21 @@
+sensor:
+  - platform: adc
+    id: soil_moisture
+    name: "Soil Moisture"
+    pin: GPIO0
+    update_interval: 5s
+    unit_of_measurement: "%"
+    attenuation: 12db
+    filters:
+    - median:
+        window_size: 7
+        send_every: 3
+        send_first_at: 1
+    - calibrate_linear:
+        - 1.03 -> 100.00
+        - 2.22 -> 0.00
+    - lambda: |
+        if (x < 0) return 0; 
+        else if (x > 100) return 100;
+        else return (x);
+    accuracy_decimals: 0
diff --git a/packages/water_pump.yaml b/packages/water_pump.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..258e7182e692f2bb67a76ffe2274bf5a2c5455f9
--- /dev/null
+++ b/packages/water_pump.yaml
@@ -0,0 +1,15 @@
+globals:
+  - id: water_pump_sec
+    type: float
+    initial_value: !secret water_pump_sec
+
+switch:
+  - platform: gpio
+    id: water_pump
+    name: "Water Pump"
+    pin: GPIO7
+    restore_mode: RESTORE_DEFAULT_OFF
+    on_turn_on:
+      - then:
+        - delay: !lambda return id(water_pump_sec) * 1000;
+        - switch.turn_off: water_pump
diff --git a/packages/watering.yaml b/packages/watering.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..15ff77e8b2060744e18cb5fec2d2785c21e32c3a
--- /dev/null
+++ b/packages/watering.yaml
@@ -0,0 +1,37 @@
+switch:
+  - platform: template
+    id: watering_enabled
+    name: "Watering"
+    optimistic: true
+    restore_mode: RESTORE_DEFAULT_OFF
+
+select:
+  - platform: template
+    id: watering_min
+    name: "Watering: Min. Value"
+    options: ["10", "15", "20", "25", "30", "35", "40", "45", "50", "55", "60", "65", "70", "75"]
+    initial_option: "50"
+    optimistic: true
+    restore_value: true
+
+interval:
+  - interval: 15min
+    then:
+      - script.execute: watering
+
+script:
+  - id: watering
+    then:
+      - lambda: |-
+          if (id(watering_enabled).state)
+          {
+            if (id(soil_moisture).state < atof(id(watering_min).state.c_str()))
+            {
+              ESP_LOGI("watering", "Soil moisture too low (%.2f < %.2f)", id(soil_moisture).state, atof(id(watering_min).state.c_str()));
+              id(water_pump).turn_on();
+            }
+            else 
+            {
+              ESP_LOGI("watering", "Soil moisture high enough (%.2f >= %.2f)", id(soil_moisture).state, atof(id(watering_min).state.c_str()));
+            }
+          }
diff --git a/packages/yyac3s.yaml b/packages/yyac3s.yaml
index f2580d0286784ee23a098b9fd12bab2d8b1c60cc..ed0a69a8aebb7512eafd08f91b36ba91f474f6e2 100644
--- a/packages/yyac3s.yaml
+++ b/packages/yyac3s.yaml
@@ -1,10 +1,10 @@
 output:
   - platform: ledc
-    pin: GPIO13
+    pin: ${yyac3s_pin}
     id: fan_dimmer
     frequency: 223Hz
     min_power: 0.36
-    max_power: 0.78
+    max_power: 0.75
     zero_means_zero: true
 
 fan: