diff --git a/packages/air_bme280.yaml b/packages/air_bme280.yaml
index 81c98f7aaf8e9cece95f347599bc3f049aa352ca..df9d5b8c45442e697dda272d0f37bb6d7cbb16dd 100644
--- a/packages/air_bme280.yaml
+++ b/packages/air_bme280.yaml
@@ -1,31 +1,93 @@
+substitutions:
+  bme280_temperature_offset: "0.0"
+  bme280_humidity_offset: "0.0"
+
+globals:
+  - id: bme280_temperature_offset
+    type: float
+    restore_value: yes
+    initial_value: ${bme280_temperature_offset}
+  - id: bme280_humidity_offset
+    type: float
+    restore_value: yes
+    initial_value: ${bme280_humidity_offset}
+
 sensor:
-- platform: bme280_i2c
-  address: 0x76
-  update_interval: 5s
-  temperature:
-    id: bme280_temperature
-    name: "Air: Temperature"
-    accuracy_decimals: 2
-    #<<: !include filter.yaml
+  - platform: bme280_i2c
+    address: 0x76
+    update_interval: 5s
+    temperature:
+      id: bme280_temperature
+      name: "Air: Temperature"
+      accuracy_decimals: 2
+      on_value:
+        then:
+          - lambda: |-
+              id(${fan_script}).execute();
+      filters:
+        - lambda: return x + id(bme280_temperature_offset);
+    humidity:
+      id: bme280_humidity
+      name: "Air: Humidity"
+      accuracy_decimals: 2
+      #<<: !include filter.yaml
+      on_value:
+        then:
+          - lambda: |-
+              id(${fan_script}).execute();
+              id(${humidifier_script}).execute();
+      filters:
+        - lambda: return x + id(bme280_humidity_offset);
+    pressure:
+      id: bme280_pressure
+      name: "Air: Pressure"
+      accuracy_decimals: 2
+      <<: !include filter.yaml
+
+select:
+  - platform: template
+    name: "Air: Temperature Offset"
+    options: ["-3", "-2", "-1", "0", "1", "2", "3"]
+    initial_option: "0"
+    optimistic: true
+    restore_value: true
     on_value:
-      then:
-        - lambda: |-
-            id(${fan_script}).execute();
-  humidity:
-    id: bme280_humidity
-    name: "Air: Humidity"
-    accuracy_decimals: 2
-    #<<: !include filter.yaml
+      - globals.set:
+          id: bme280_temperature_offset
+          value: !lambda "return atof(x.c_str());"
+  - platform: template
+    name: "Air: Humidity Offset"
+    options:
+      [
+        "-10",
+        "-9",
+        "-8",
+        "-7",
+        "-6",
+        "-5",
+        "-4",
+        "-3",
+        "-2",
+        "-1",
+        "0",
+        "1",
+        "2",
+        "3",
+        "4",
+        "5",
+        "6",
+        "7",
+        "8",
+        "9",
+        "10",
+      ]
+    initial_option: "0"
+    optimistic: true
+    restore_value: true
     on_value:
-      then:
-        - lambda: |-
-            id(${fan_script}).execute();
-            id(${humidifier_script}).execute();
-  pressure:
-    id: bme280_pressure
-    name: "Air: Pressure"
-    accuracy_decimals: 2
-    <<: !include filter.yaml
+      - globals.set:
+          id: bme280_humidity_offset
+          value: !lambda "return atof(x.c_str());"
 
 prometheus:
   relabel:
diff --git a/packages/air_scd40.yaml b/packages/air_scd40.yaml
index 36736bc6485e1e200a0c7a77e093f37f6f4f1946..4a80e22a066091e88ffcb74b4589867105a36b83 100644
--- a/packages/air_scd40.yaml
+++ b/packages/air_scd40.yaml
@@ -2,7 +2,6 @@ sensor:
 - platform: scd4x
   id: scd40
   update_interval: 5s
-  temperature_offset: 4.9
   ambient_pressure_compensation_source: bme280_pressure
   co2:
     id: scd40_co2
diff --git a/packages/level.yaml b/packages/level.yaml
index 6e95bf4ffaebaa7023efffd44d3f4eff55349801..00509d3a85ce08924df27675871581a6cf6d5e30 100644
--- a/packages/level.yaml
+++ b/packages/level.yaml
@@ -64,6 +64,7 @@ sensor:
     unit_of_measurement: "cm"
     accuracy_decimals: 2
     update_interval: 5s
+    <<: !include filter.yaml
     lambda: |-
       float dataCurrent = id(waterlevel_tank_voltage).state * 1024.0 / 120.0;  // Sense Resistor: 120ohm
       float depth = (dataCurrent - id(waterlevel_current_init)) * (id(waterlevel_range) / id(waterlevel_density) / 16.0) / 10;
@@ -74,6 +75,7 @@ sensor:
     unit_of_measurement: "cm"
     accuracy_decimals: 2
     update_interval: 5s
+    <<: !include filter.yaml
     lambda: |-
       float dataCurrent = id(waterlevel_system_voltage).state * 1024.0 / 120.0; // Sense Resistor: 120ohm
       float depth = (dataCurrent - id(waterlevel_current_init)) * (id(waterlevel_range) / id(waterlevel_density) / 16.0) / 10;