├── .github └── workflows │ ├── pages.yml │ └── publish.yml ├── Gemfile ├── README.md ├── _config.yml ├── common ├── bluetooth-base.yaml ├── everything-presence-one-base.yaml ├── everything-presence-one-sen0395-beta.yaml ├── everything-presence-one-sen0395-stable.yaml ├── modules │ ├── co2-rev1.3-1.4.yaml │ └── co2-rev1.5.yaml ├── sen0395-common.yaml └── sen0609-common.yaml ├── everything-presence-one-beta-ble-co2-rev1.3.yaml ├── everything-presence-one-beta-ble-co2-rev1.6.yaml ├── everything-presence-one-beta-ble-co2.yaml ├── everything-presence-one-beta-ble-rev1.3.yaml ├── everything-presence-one-beta-ble-rev1.6.yaml ├── everything-presence-one-beta-ble.yaml ├── everything-presence-one-beta-co2-rev1.3.yaml ├── everything-presence-one-beta-co2-rev1.6.yaml ├── everything-presence-one-beta-co2.yaml ├── everything-presence-one-beta-rev1.3.yaml ├── everything-presence-one-beta-rev1.6.yaml ├── everything-presence-one-beta.yaml ├── everything-presence-one-ble-co2-rev1.3.yaml ├── everything-presence-one-ble-co2-rev1.6.yaml ├── everything-presence-one-ble-co2.yaml ├── everything-presence-one-ble-rev1.3.yaml ├── everything-presence-one-ble-rev1.6.yaml ├── everything-presence-one-ble.yaml ├── everything-presence-one-co2-rev1.3.yaml ├── everything-presence-one-co2-rev1.6.yaml ├── everything-presence-one-co2.yaml ├── everything-presence-one-rev1.3.yaml ├── everything-presence-one-rev1.6.yaml ├── everything-presence-one-sen0609-ble-co2-rev1.6.yaml ├── everything-presence-one-sen0609-ble-co2.yaml ├── everything-presence-one-sen0609-ble-rev1.6.yaml ├── everything-presence-one-sen0609-ble.yaml ├── everything-presence-one-sen0609-co2-rev1.6.yaml ├── everything-presence-one-sen0609-co2.yaml ├── everything-presence-one-sen0609-rev1.6.yaml ├── everything-presence-one-sen0609.yaml ├── everything-presence-one-st-sen0609-rev1.6.yaml ├── everything-presence-one-st-sen0609.yaml ├── everything-presence-one-st.yaml ├── everything-presence-one.yaml ├── index.html └── static ├── Advanced Features ├── advanced-features.md └── editing-esphome-code.md ├── Home Assistant ├── connecting-home-assistant.md ├── home-assistant-entities.md └── home-assistant.md ├── SmartThings ├── connecting-smartthings.md ├── smartthings-driver.md ├── smartthings-sensors.md └── smartthings.md ├── _config.yml ├── _includes └── header_custom.html ├── _sass └── custom │ └── custom.scss ├── assembly.md ├── everything-presence-one.png ├── hardware-overview.md ├── header.png ├── images ├── assembly-attaching-front-case-2.jpg ├── assembly-attaching-front-case-3.jpg ├── assembly-attaching-front-case.jpg ├── assembly-attaching-stand-2.jpg ├── assembly-attaching-stand.jpg ├── assembly-case-back-lock-ball-joint.jpg ├── assembly-complete.jpg ├── assembly-insert-ball-joint-1.jpg ├── assembly-insert-ball-joint-2.jpg ├── assembly-insert-ball-joint-3.jpg ├── assembly-insert-ep1-board-1.jpg ├── assembly-insert-ep1-board-2.jpg ├── assembly-insert-mmwave-side-slot.jpg ├── assembly-insert-mmwave-top-slot.jpg ├── assembly-insert-pir-sensor-1.jpg ├── assembly-insert-pir-sensor-2.jpg ├── assembly-insert-pir-sensor-3.jpg ├── beta-logo.png ├── ble_logo.png ├── connecting-home-assistant-auto-1.png ├── connecting-home-assistant-auto-2.png ├── connecting-home-assistant-manual-1.png ├── connecting-home-assistant-manual-2.png ├── connecting-home-assistant-manual-3.png ├── connecting-home-assistant-router-ip-address.png ├── connecting-wifi-1.png ├── connecting-wifi-2.png ├── connecting-wifi-power.jpg ├── everything-presence-co2-scd40-one.jpg ├── everything-presence-one-gpio-pins.jpg ├── everything-presence-one-ha.png ├── everything-presence-one-st.png ├── hardware-overview-case-back.jpg ├── hardware-overview-case-ball-joint.jpg ├── hardware-overview-case-front.jpg ├── hardware-overview-case-locking-ring.jpg ├── hardware-overview-case-stand.jpg ├── hardware-overview-ep1-board-2.jpg ├── hardware-overview-ep1-board-rev-1.4.jpg ├── hardware-overview-ep1-board-rev-1.5-SEN0395.jpg ├── hardware-overview-ep1-board-rev-1.5-SEN0609.jpg ├── hardware-overview-ep1-board-rev-1.5.jpg ├── hardware-overview-ep1-board.jpg ├── hardware-overview-mmwave-sensor.jpg ├── hardware-overview-official-case.jpg ├── hardware-overview-pir-sensor.jpg ├── home-assistant-devices.png ├── home-assistant-entities-controls.png ├── home-assistant-entities-disabled-reveal.png ├── home-assistant-entities-distance-entities-not-shown.png ├── home-assistant-entities-distance-status.png ├── home-assistant-entities-distance-zone-1.jpg ├── home-assistant-entities-enabling-toggle.png ├── home-assistant-entities-humidity.jpg ├── home-assistant-entities-illuminance.jpg ├── home-assistant-entities-led-controls.jpg ├── home-assistant-entities-mmwave-distance.jpg ├── home-assistant-entities-mmwave-offset.jpg ├── home-assistant-entities-mmwave-sensitivity.jpg ├── home-assistant-entities-mmwave.jpg ├── home-assistant-entities-occupancy.jpg ├── home-assistant-entities-offset-controls.png ├── home-assistant-entities-overview.png ├── home-assistant-entities-pir.jpg ├── home-assistant-entities-sen0609-mmwave-distance.png ├── home-assistant-entities-sen0609-mmwave-sensitivity.png ├── home-assistant-entities-sensors.png ├── home-assistant-entities-temperature.jpg ├── home-assistant-logo.png ├── no_ble_logo.png ├── sen0395.png ├── sen0609.png ├── smartthings-connect-1.png ├── smartthings-connect-ep1-1.jpg ├── smartthings-connect-ep1-2.jpg ├── smartthings-connect-ep1-3.jpg ├── smartthings-connect-ep1-4.jpg ├── smartthings-connect-ep1-5.jpg ├── smartthings-connect-ep1-6.jpg ├── smartthings-connect-manual-2.png ├── smartthings-connect-manual-3.png ├── smartthings-connect-manual-4.png ├── smartthings-driver-accept-terms-1.png ├── smartthings-driver-accept-terms-2.png ├── smartthings-driver-accept-terms-3.png ├── smartthings-driver-accept-terms-4.png ├── smartthings-sensors-light.jpg ├── smartthings-sensors-presence.jpg ├── smartthings-sensors-settings.jpg ├── smartthings-sensors-temp.jpg └── stable-logo.png ├── index.md ├── modules ├── carbon-dioxide.md └── modules.md ├── troubleshooting.md ├── tuning.md └── updating.md /.github/workflows/pages.yml: -------------------------------------------------------------------------------- 1 | # Sample workflow for building and deploying a Jekyll site to GitHub Pages 2 | name: Deploy Jekyll site to Pages 3 | 4 | on: 5 | # Runs on pushes targeting the default branch 6 | push: 7 | branches: ["main"] 8 | paths: 9 | - '**.md' 10 | 11 | # Allows you to run this workflow manually from the Actions tab 12 | workflow_dispatch: 13 | 14 | # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages 15 | permissions: 16 | contents: write 17 | pages: write # to deploy to Pages 18 | id-token: write # to verify the deployment originates from an appropriate source 19 | 20 | # Allow one concurrent deployment 21 | concurrency: 22 | group: "pages" 23 | cancel-in-progress: true 24 | 25 | jobs: 26 | # Build job 27 | build: 28 | runs-on: ubuntu-latest 29 | steps: 30 | - name: Checkout 31 | uses: actions/checkout@v3 32 | - name: Setup Ruby 33 | uses: ruby/setup-ruby@v1 34 | with: 35 | ruby-version: '3.0' # Not needed with a .ruby-version file 36 | bundler-cache: true # runs 'bundle install' and caches installed gems automatically 37 | cache-version: 0 # Increment this number if you need to re-download cached gems 38 | - name: Setup Pages 39 | id: pages 40 | uses: actions/configure-pages@v1 41 | - run: bundle exec jekyll build --baseurl ${{ steps.pages.outputs.base_path }} # defaults output to '/_site' 42 | - name: Upload artifact 43 | uses: actions/upload-pages-artifact@v1 # This will automatically upload an artifact from the '/_site' directory 44 | - name: Deploy 45 | uses: peaceiris/actions-gh-pages@v3 46 | with: 47 | github_token: ${{ secrets.GITHUB_TOKEN }} 48 | publish_dir: ./static 49 | enable_jekyll: true 50 | keep_files: true 51 | 52 | # Deployment job 53 | deploy: 54 | environment: 55 | name: github-pages 56 | url: ${{ steps.deployment.outputs.page_url }} 57 | runs-on: ubuntu-latest 58 | needs: build 59 | steps: 60 | - name: Deploy to GitHub Pages 61 | id: deployment 62 | uses: actions/deploy-pages@v1 63 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | 3 | gem "jekyll", "~> 4.3" # installed by `gem jekyll` 4 | # gem "webrick" # required when using Ruby >= 3 and Jekyll <= 4.2.2 5 | 6 | #gem "just-the-docs", "0.4.0.rc3" # currently the latest pre-release 7 | gem "just-the-docs" # the latest release - currently 0.3.3 8 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Everything Presence One 2 | 3 | The Everything Presence One is a presence sensor for the smart home. It combines a mmWave sensor, motion sensor, light illuminance sensor, temperature and humidity sensor and integrates directly with [Home Assistant](https://www.home-assistant.io/) through [ESPHome](https://esphome.io/). 4 | 5 | The official user guide for the EP1 is located [here](https://docs.everythingsmart.io/s/products)! 6 | 7 | ![Everything Presence One](static/images/assembly-insert-pir-sensor-3.jpg) -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | title: Everything Presence One Documentation 2 | description: Documentation for the Everything Presence One smart home sensor! 3 | remote_theme: just-the-docs/just-the-docs 4 | 5 | url: https://everythingsmarthome.github.io 6 | 7 | aux_links: 8 | Template Repository: https://github.com/just-the-docs/just-the-docs-template 9 | -------------------------------------------------------------------------------- /common/bluetooth-base.yaml: -------------------------------------------------------------------------------- 1 | esp32_ble_tracker: 2 | scan_parameters: 3 | active: true 4 | 5 | bluetooth_proxy: 6 | active: true 7 | 8 | esp32_improv: 9 | authorizer: none -------------------------------------------------------------------------------- /common/everything-presence-one-base.yaml: -------------------------------------------------------------------------------- 1 | esphome: 2 | name: ${name} 3 | friendly_name: ${friendly_name} 4 | name_add_mac_suffix: true 5 | project: 6 | name: ${project_name} 7 | version: ${project_version} 8 | on_boot: 9 | priority: -100 10 | then: 11 | - switch.turn_on: mmwave_sensor 12 | 13 | esp32: 14 | board: esp32dev 15 | framework: 16 | type: esp-idf 17 | 18 | # Enable logging 19 | logger: 20 | level: ${log_level} 21 | 22 | api: 23 | 24 | ota: 25 | - platform: esphome 26 | id: ota_esphome 27 | - platform: http_request 28 | id: ota_http_request 29 | 30 | http_request: 31 | 32 | wifi: 33 | fast_connect: ${hidden_ssid} 34 | on_connect: 35 | - switch.turn_on: mmwave_sensor 36 | 37 | improv_serial: 38 | 39 | i2c: 40 | - id: bus_a 41 | sda: 26 42 | scl: 25 43 | scan: true 44 | 45 | light: 46 | - platform: status_led 47 | name: ESP32 status LED 48 | id: esp32_led 49 | pin: GPIO32 50 | entity_category: config 51 | disabled_by_default: False 52 | 53 | sensor: 54 | - platform: shtcx 55 | id: "shtc3_sensor" 56 | i2c_id: bus_a 57 | temperature: 58 | name: Temperature 59 | id: temperature_sensor 60 | filters: 61 | - offset: ${temperature_offset} 62 | - lambda: "return x + id(temperature_offset_ui).state;" 63 | humidity: 64 | name: Humidity 65 | id: humidity_sensor 66 | filters: 67 | - offset: ${humidity_offset} 68 | - lambda: "return x + id(humidity_offset_ui).state;" 69 | address: 0x70 70 | update_interval: ${temperature_update_interval} 71 | - platform: bh1750 72 | name: Illuminance 73 | id: illuminance_sensor 74 | i2c_id: bus_a 75 | address: 0x23 76 | update_interval: ${illuminance_update_interval} 77 | filters: 78 | - calibrate_linear: 79 | method: exact 80 | datapoints: 81 | - 0.3 -> 0.3 82 | - 0.9 -> 1.7 83 | - 1.2 -> 3.6 84 | - 3.2 -> 6.9 85 | - 5.1 -> 10.2 86 | - 6.8 -> 27.1 87 | - 7.0 -> 13.5 88 | - 7.4 -> 28.2 89 | - 8.7 -> 21.7 90 | - 8.9 -> 17.1 91 | - 10.9 -> 20.4 92 | - 12.8 -> 23.5 93 | - 14.5 -> 31.2 94 | - 14.9 -> 26.7 95 | - 16.8 -> 41.1 96 | - 16.9 -> 30.2 97 | - 18.8 -> 33.4 98 | - 19.1 -> 35.8 99 | - 20.7 -> 37.0 100 | - 24.3 -> 60.3 101 | - 26.1 -> 68.6 102 | - 26.7 -> 83.8 103 | - 30.2 -> 75.9 104 | - 32.6 -> 80.3 105 | - 34.6 -> 83.2 106 | - 40.4 -> 99.9 107 | - 48.0 -> 183.7 108 | - 48.3 -> 119.2 109 | - 55.5 -> 141.3 110 | - 55.8 -> 137.9 111 | - 63.8 -> 157.6 112 | - 71.5 -> 176.9 113 | - 79.8 -> 197.1 114 | - 84.3 -> 205.7 115 | - lambda: "return x + id(illuminance_offset_ui).state;" 116 | - clamp: 117 | min_value: 0 118 | 119 | binary_sensor: 120 | - platform: gpio 121 | pin: 122 | number: 33 123 | mode: INPUT_PULLDOWN 124 | name: PIR 125 | id: pir_motion_sensor 126 | device_class: motion 127 | filters: 128 | - delayed_off: !lambda 'return id(pir_off_latency).state * 1000.0;' 129 | - platform: template 130 | name: Occupancy 131 | id: occupancy 132 | device_class: occupancy 133 | filters: 134 | - delayed_off: !lambda 'return id(occupancy_off_latency).state * 1000.0;' 135 | on_state: 136 | - lambda: 'id(illuminance_sensor).update();' 137 | lambda: |- 138 | if ( id(mmwave).state or id(pir_motion_sensor).state) { 139 | return true; 140 | } 141 | else if (id(mmwave).state == 0 and id(pir_motion_sensor).state == 0) { 142 | return false; 143 | } 144 | else { 145 | return id(occupancy).state; 146 | } 147 | - platform: gpio 148 | pin: 149 | number: 0 150 | inverted: true 151 | id: flash_button 152 | internal: True 153 | on_multi_click: 154 | - timing: 155 | - ON for at least 10s 156 | then: 157 | - repeat: 158 | count: 5 159 | then: 160 | - light.turn_on: esp32_led 161 | - delay: 150ms 162 | - light.turn_off: esp32_led 163 | - delay: 150ms 164 | - light.turn_on: esp32_led 165 | - button.press: factory_reset_button 166 | 167 | number: 168 | - platform: template 169 | name: Occupancy off latency 170 | icon: mdi:clock-end 171 | entity_category: config 172 | id: occupancy_off_latency 173 | min_value: 1 174 | max_value: 600 175 | initial_value: 15 176 | optimistic: true 177 | step: 5 178 | restore_value: true 179 | unit_of_measurement: seconds 180 | mode: slider 181 | 182 | - platform: template 183 | name: PIR off latency 184 | icon: mdi:clock-end 185 | entity_category: config 186 | id: pir_off_latency 187 | min_value: 1 188 | max_value: 120 189 | initial_value: 10 190 | optimistic: true 191 | step: 1 192 | restore_value: true 193 | unit_of_measurement: seconds 194 | mode: slider 195 | 196 | - platform: template 197 | name: "Temperature Offset" 198 | id: temperature_offset_ui 199 | unit_of_measurement: "°C" 200 | min_value: -20 201 | max_value: 20 202 | step: 0.1 203 | mode: box 204 | update_interval: never 205 | optimistic: true 206 | restore_value: true 207 | initial_value: 0 208 | icon: "mdi:thermometer" 209 | entity_category: config 210 | on_value: 211 | - lambda: 'id(shtc3_sensor).update();' 212 | - platform: template 213 | name: "Humidity Offset" 214 | id: humidity_offset_ui 215 | unit_of_measurement: "%" 216 | min_value: -50 217 | max_value: 50 218 | step: 0.1 219 | mode: box 220 | update_interval: never 221 | optimistic: true 222 | restore_value: true 223 | initial_value: 0 224 | icon: "mdi:water-percent" 225 | entity_category: config 226 | on_value: 227 | - lambda: 'id(shtc3_sensor).update();' 228 | - platform: template 229 | name: "Illuminance Offset" 230 | id: illuminance_offset_ui 231 | unit_of_measurement: "lx" 232 | min_value: -50 233 | max_value: 50 234 | step: 1 235 | mode: box 236 | update_interval: never 237 | optimistic: true 238 | restore_value: true 239 | initial_value: 0 240 | icon: "mdi:brightness-5" 241 | entity_category: config 242 | on_value: 243 | - lambda: 'id(illuminance_sensor).update();' 244 | 245 | button: 246 | - platform: restart 247 | id: restart_internal 248 | entity_category: config 249 | internal: true 250 | - platform: safe_mode 251 | internal: false 252 | name: Safe mode 253 | entity_category: config 254 | disabled_by_default: True 255 | - platform: factory_reset 256 | id: "factory_reset_button" 257 | internal: True 258 | -------------------------------------------------------------------------------- /common/everything-presence-one-sen0395-beta.yaml: -------------------------------------------------------------------------------- 1 | uart: 2 | id: uart_bus 3 | tx_pin: GPIO13 4 | rx_pin: GPIO14 5 | baud_rate: 115200 6 | debug: 7 | direction: BOTH 8 | dummy_receiver: True 9 | after: 10 | delimiter: "*\r\n" 11 | sequence: 12 | - lambda: |- 13 | UARTDebug::log_string(direction, bytes); 14 | 15 | const int max_targets = 4; 16 | static float t_distance[max_targets] = {0.0}; 17 | static float t_snr[max_targets] = {0.0}; 18 | static bool t_active[max_targets] = {false}; 19 | 20 | std::string line(bytes.begin(), bytes.end()); 21 | 22 | if (line.substr(0, 6) == "$JYRPO") { 23 | size_t pos = 0; 24 | std::vector v; 25 | std::string token; 26 | std::string s = line.substr(7); 27 | 28 | while ((pos = s.find(",")) != std::string::npos) { 29 | token = s.substr(0, pos); 30 | v.push_back(token); 31 | s.erase(0, pos + 1); 32 | } 33 | v.push_back(s); 34 | 35 | int target_count = atoi(v[0].c_str()); 36 | int target_index = atoi(v[1].c_str()) - 1; 37 | float target_distance_val = atof(v[2].c_str()); 38 | float target_snr_val = atof(v[4].c_str()); 39 | 40 | ESP_LOGD("UART", "Target Count: %d, Target Index: %d", target_count, target_index); 41 | 42 | if (id(last_target_count) != target_count) { 43 | // Reset all targets to inactive 44 | for (int i = 0; i < max_targets; i++) { 45 | t_active[i] = false; 46 | t_distance[i] = 0.0; 47 | t_snr[i] = 0.0; 48 | } 49 | id(last_target_count) = target_count; 50 | } 51 | 52 | if (target_index < max_targets) { 53 | t_distance[target_index] = target_distance_val; 54 | t_snr[target_index] = target_snr_val; 55 | t_active[target_index] = true; 56 | } 57 | 58 | if (target_index == target_count - 1) { 59 | id(target_distance_1_m).publish_state(t_distance[0]); 60 | id(target_1_snr).publish_state(t_snr[0]); 61 | id(target_1_active).publish_state(t_active[0]); 62 | 63 | id(target_distance_2_m).publish_state(t_distance[1]); 64 | id(target_2_snr).publish_state(t_snr[1]); 65 | id(target_2_active).publish_state(t_active[1]); 66 | 67 | id(target_distance_3_m).publish_state(t_distance[2]); 68 | id(target_3_snr).publish_state(t_snr[2]); 69 | id(target_3_active).publish_state(t_active[2]); 70 | 71 | id(target_distance_4_m).publish_state(t_distance[3]); 72 | id(target_4_snr).publish_state(t_snr[3]); 73 | id(target_4_active).publish_state(t_active[3]); 74 | } 75 | } 76 | 77 | number: 78 | - platform: template 79 | id: mmwave_zone_1_start 80 | name: mmWave Zone 1 Start 81 | min_value: 0 82 | max_value: 800 83 | step: 15 84 | initial_value: 0 85 | mode: slider 86 | unit_of_measurement: cm 87 | optimistic: true 88 | entity_category: config 89 | disabled_by_default: False 90 | icon: "mdi:arrow-left-right" 91 | 92 | - platform: template 93 | id: mmwave_zone_1_end 94 | name: mmWave Zone 1 End 95 | min_value: 0 96 | max_value: 800 97 | step: 15 98 | initial_value: 315 99 | mode: slider 100 | unit_of_measurement: cm 101 | optimistic: true 102 | entity_category: config 103 | disabled_by_default: False 104 | icon: "mdi:arrow-left-right" 105 | 106 | - platform: template 107 | id: mmwave_zone_2_start 108 | name: mmWave Zone 2 Start 109 | min_value: 0 110 | max_value: 800 111 | step: 15 112 | initial_value: 0 113 | mode: slider 114 | unit_of_measurement: cm 115 | optimistic: true 116 | entity_category: config 117 | disabled_by_default: True 118 | icon: "mdi:arrow-left-right" 119 | 120 | - platform: template 121 | id: mmwave_zone_2_end 122 | name: mmWave Zone 2 End 123 | min_value: 0 124 | max_value: 800 125 | step: 15 126 | initial_value: 0 127 | mode: slider 128 | unit_of_measurement: cm 129 | optimistic: true 130 | entity_category: config 131 | disabled_by_default: True 132 | icon: "mdi:arrow-left-right" 133 | 134 | - platform: template 135 | id: mmwave_zone_3_start 136 | name: mmWave Zone 3 Start 137 | min_value: 0 138 | max_value: 800 139 | step: 15 140 | initial_value: 0 141 | mode: slider 142 | unit_of_measurement: cm 143 | optimistic: true 144 | entity_category: config 145 | disabled_by_default: True 146 | icon: "mdi:arrow-left-right" 147 | 148 | - platform: template 149 | id: mmwave_zone_3_end 150 | name: mmWave Zone 3 End 151 | min_value: 0 152 | max_value: 800 153 | step: 15 154 | initial_value: 0 155 | mode: slider 156 | unit_of_measurement: cm 157 | optimistic: true 158 | entity_category: config 159 | disabled_by_default: True 160 | icon: "mdi:arrow-left-right" 161 | 162 | - platform: template 163 | id: mmwave_zone_4_start 164 | name: mmWave Zone 4 Start 165 | min_value: 0 166 | max_value: 800 167 | step: 15 168 | initial_value: 0 169 | mode: slider 170 | unit_of_measurement: cm 171 | optimistic: true 172 | entity_category: config 173 | disabled_by_default: True 174 | icon: "mdi:arrow-left-right" 175 | 176 | - platform: template 177 | id: mmwave_zone_4_end 178 | name: mmWave Zone 4 End 179 | min_value: 0 180 | max_value: 800 181 | step: 15 182 | initial_value: 0 183 | mode: slider 184 | unit_of_measurement: cm 185 | optimistic: true 186 | entity_category: config 187 | disabled_by_default: True 188 | icon: "mdi:arrow-left-right" 189 | 190 | sensor: 191 | - platform: template 192 | name: Target 1 Distance # Don't change 193 | id: target_distance_1_m 194 | accuracy_decimals: 2 195 | disabled_by_default: false 196 | device_class: distance 197 | unit_of_measurement: "m" 198 | - platform: template 199 | name: Target 2 Distance # Don't change 200 | id: target_distance_2_m 201 | accuracy_decimals: 2 202 | disabled_by_default: True 203 | device_class: distance 204 | unit_of_measurement: "m" 205 | - platform: template 206 | name: Target 3 Distance # Don't change 207 | id: target_distance_3_m 208 | accuracy_decimals: 2 209 | disabled_by_default: True 210 | device_class: distance 211 | unit_of_measurement: "m" 212 | - platform: template 213 | name: Target 4 Distance # Don't change 214 | id: target_distance_4_m 215 | accuracy_decimals: 2 216 | disabled_by_default: True 217 | device_class: distance 218 | unit_of_measurement: "m" 219 | - platform: template 220 | name: "Target 1 SNR" # Don't change 221 | disabled_by_default: True 222 | id: target_1_snr 223 | - platform: template 224 | name: "Target 2 SNR" # Don't change 225 | disabled_by_default: True 226 | id: target_2_snr 227 | - platform: template 228 | name: "Target 3 SNR" # Don't change 229 | disabled_by_default: True 230 | id: target_3_snr 231 | - platform: template 232 | name: "Target 4 SNR" # Don't change 233 | disabled_by_default: True 234 | id: target_4_snr 235 | 236 | binary_sensor: 237 | - platform: gpio 238 | name: mmWave 239 | id: mmwave 240 | device_class: occupancy 241 | pin: 242 | number: GPIO15 243 | mode: INPUT_PULLDOWN 244 | on_release: 245 | then: 246 | - binary_sensor.template.publish: 247 | id: target_1_active 248 | state: off 249 | - binary_sensor.template.publish: 250 | id: target_2_active 251 | state: off 252 | - binary_sensor.template.publish: 253 | id: target_3_active 254 | state: off 255 | - binary_sensor.template.publish: 256 | id: target_4_active 257 | state: off 258 | - sensor.template.publish: 259 | id: target_distance_1_m 260 | state: 0.00 261 | - sensor.template.publish: 262 | id: target_distance_2_m 263 | state: 0.00 264 | - sensor.template.publish: 265 | id: target_distance_3_m 266 | state: 0.00 267 | - sensor.template.publish: 268 | id: target_distance_4_m 269 | state: 0.00 270 | - sensor.template.publish: 271 | id: target_1_snr 272 | state: 0 273 | - sensor.template.publish: 274 | id: target_2_snr 275 | state: 0 276 | - sensor.template.publish: 277 | id: target_3_snr 278 | state: 0 279 | - sensor.template.publish: 280 | id: target_4_snr 281 | state: 0 282 | - platform: template 283 | name: "Target 1 Active" # Don't change 284 | disabled_by_default: False 285 | id: target_1_active 286 | - platform: template 287 | name: "Target 2 Active" # Don't change 288 | disabled_by_default: True 289 | id: target_2_active 290 | - platform: template 291 | name: "Target 3 Active" # Don't change 292 | disabled_by_default: True 293 | id: target_3_active 294 | - platform: template 295 | name: "Target 4 Active" # Don't change 296 | disabled_by_default: True 297 | id: target_4_active 298 | 299 | globals: 300 | - id: last_target_count 301 | type: int 302 | restore_value: no 303 | initial_value: '0' 304 | 305 | switch: 306 | - platform: template 307 | name: UART target output 308 | id: uart_target_output 309 | entity_category: config 310 | internal: ${uart_target_output_disabled} 311 | optimistic: true 312 | assumed_state: false 313 | restore_mode: DISABLED 314 | turn_on_action: 315 | - switch.turn_off: mmwave_sensor 316 | - delay: 1s 317 | - uart.write: "setUartOutput 2 1 1 1" 318 | - delay: 1s 319 | - uart.write: "saveConfig" 320 | - delay: 3s 321 | - switch.turn_on: mmwave_sensor 322 | turn_off_action: 323 | - switch.turn_off: mmwave_sensor 324 | - delay: 1s 325 | - uart.write: "setUartOutput 2 0" 326 | - delay: 1s 327 | - uart.write: "saveConfig" 328 | - delay: 3s 329 | - switch.turn_on: mmwave_sensor 330 | 331 | button: 332 | - platform: template 333 | name: mmWave Set Distance 334 | id: mmwave_set_distance 335 | icon: "mdi:arrow-left-right" 336 | entity_category: config 337 | on_press: 338 | - switch.turn_off: mmwave_sensor 339 | - delay: 1s 340 | - uart.write: !lambda 341 | int s1 = (int)ceil(id(mmwave_zone_1_start).state / 15.0); 342 | int e1 = (int)ceil(id(mmwave_zone_1_end).state / 15.0); 343 | int s2 = (int)ceil(id(mmwave_zone_2_start).state / 15.0); 344 | int e2 = (int)ceil(id(mmwave_zone_2_end).state / 15.0); 345 | int s3 = (int)ceil(id(mmwave_zone_3_start).state / 15.0); 346 | int e3 = (int)ceil(id(mmwave_zone_3_end).state / 15.0); 347 | int s4 = (int)ceil(id(mmwave_zone_4_start).state / 15.0); 348 | int e4 = (int)ceil(id(mmwave_zone_4_end).state / 15.0); 349 | 350 | std::string cmd = "detRangeCfg -1"; 351 | 352 | if(s1 < e1) { 353 | cmd += " " + to_string(s1) + " " + to_string(e1); 354 | } 355 | if(s2 > e1 && s2 < e2) { 356 | cmd += " " + to_string(s2) + " " + to_string(e2); 357 | } 358 | if(s3 > e2 && s3 < e3) { 359 | cmd += " " + to_string(s3) + " " + to_string(e3); 360 | } 361 | if(s4 > e3 && s4 < e4) { 362 | cmd += " " + to_string(s4) + " " + to_string(e4); 363 | } 364 | 365 | if(cmd != "detRangeCfg -1") { 366 | std::vector cmd_vec(cmd.begin(), cmd.end()); 367 | ESP_LOGI("set_mmwave_distance", "Sending command to sensor %s", cmd.c_str()); 368 | id(distance_zone_status).publish_state("Successfully sent to sensor! " + cmd.substr(14)); 369 | return cmd_vec; 370 | } else { 371 | ESP_LOGE("set_mmwave_distance", "No valid segments configured. Please adjust the sliders."); 372 | id(distance_zone_status).publish_state("No valid segments configured. Please adjust the sliders."); 373 | return std::vector(); 374 | } 375 | - delay: 1s 376 | - uart.write: "saveCfg 0x45670123 0xCDEF89AB 0x956128C6 0xDF54AC89" 377 | - delay: 1s 378 | - switch.turn_on: mmwave_sensor 379 | 380 | text_sensor: 381 | - platform: template 382 | name: "Distance Zones Status" 383 | id: "distance_zone_status" 384 | 385 | -------------------------------------------------------------------------------- /common/everything-presence-one-sen0395-stable.yaml: -------------------------------------------------------------------------------- 1 | uart: 2 | id: uart_bus 3 | tx_pin: GPIO13 4 | rx_pin: GPIO14 5 | baud_rate: 115200 6 | debug: 7 | direction: BOTH 8 | dummy_receiver: true 9 | after: 10 | delimiter: "\n" 11 | sequence: 12 | - lambda: UARTDebug::log_string(direction, bytes); 13 | 14 | binary_sensor: 15 | - platform: gpio 16 | name: mmWave 17 | id: mmwave 18 | device_class: occupancy 19 | pin: 20 | number: GPIO15 21 | mode: INPUT_PULLDOWN 22 | 23 | number: 24 | - platform: template 25 | id: mmwave_distance 26 | name: mmWave distance 27 | icon: mdi:arrow-left-right 28 | entity_category: config 29 | min_value: 0 30 | max_value: 800 31 | initial_value: 315 32 | optimistic: true 33 | step: 15 34 | restore_value: true 35 | unit_of_measurement: cm 36 | mode: slider 37 | set_action: 38 | - switch.turn_off: mmwave_sensor 39 | - delay: 1s 40 | - uart.write: !lambda int cm = (int)ceil(x / 15.0); 41 | std::string cms = "detRangeCfg -1 0 " + to_string(cm); 42 | return std::vector(cms.begin(), cms.end()); 43 | - delay: 1s 44 | - uart.write: "saveCfg 0x45670123 0xCDEF89AB 0x956128C6 0xDF54AC89" 45 | - delay: 1s 46 | - switch.turn_on: mmwave_sensor 47 | 48 | switch: 49 | - platform: template 50 | name: UART target output 51 | id: uart_target_output 52 | entity_category: config 53 | internal: ${uart_target_output_disabled} 54 | optimistic: true 55 | assumed_state: false 56 | turn_on_action: 57 | - logger.log: "UART Target Output On" 58 | - switch.turn_off: mmwave_sensor 59 | - delay: 1s 60 | - uart.write: "setUartOutput 2 1 1 1" 61 | - delay: 1s 62 | - uart.write: "saveConfig" 63 | - delay: 3s 64 | - switch.turn_on: mmwave_sensor 65 | turn_off_action: 66 | - logger.log: "UART Presence Output Off" 67 | - switch.turn_off: mmwave_sensor 68 | - delay: 1s 69 | - uart.write: "setUartOutput 2 0" 70 | - delay: 1s 71 | - uart.write: "saveConfig" 72 | - delay: 3s 73 | - switch.turn_on: mmwave_sensor -------------------------------------------------------------------------------- /common/modules/co2-rev1.3-1.4.yaml: -------------------------------------------------------------------------------- 1 | api: 2 | services: 3 | - service: calibrate_co2_value 4 | variables: 5 | co2_ppm: int 6 | then: 7 | - scd4x.perform_forced_calibration: 8 | value: !lambda "return co2_ppm;" 9 | id: scd40 10 | 11 | i2c: 12 | - id: bus_b 13 | sda: GPIO18 14 | scl: GPIO19 15 | scan: true 16 | 17 | sensor: 18 | - platform: scd4x 19 | i2c_id: bus_b 20 | id: scd40 21 | co2: 22 | name: "CO2" 23 | id: "co2" 24 | automatic_self_calibration: false 25 | 26 | button: 27 | - platform: template 28 | name: "Calibrate CO2" 29 | id: calibrate_scd40 30 | on_press: 31 | - scd4x.perform_forced_calibration: 32 | value: 419 33 | id: scd40 -------------------------------------------------------------------------------- /common/modules/co2-rev1.5.yaml: -------------------------------------------------------------------------------- 1 | api: 2 | services: 3 | - service: calibrate_co2_value 4 | variables: 5 | co2_ppm: int 6 | then: 7 | - scd4x.perform_forced_calibration: 8 | value: !lambda "return co2_ppm;" 9 | id: scd40 10 | 11 | i2c: 12 | - id: bus_b 13 | sda: GPIO18 14 | scl: GPIO22 15 | scan: true 16 | 17 | sensor: 18 | - platform: scd4x 19 | i2c_id: bus_b 20 | id: scd40 21 | co2: 22 | name: "CO2" 23 | id: "co2" 24 | automatic_self_calibration: false 25 | 26 | button: 27 | - platform: template 28 | name: "Calibrate CO2" 29 | id: calibrate_scd40 30 | on_press: 31 | - scd4x.perform_forced_calibration: 32 | value: 419 33 | id: scd40 -------------------------------------------------------------------------------- /common/sen0395-common.yaml: -------------------------------------------------------------------------------- 1 | button: 2 | - platform: template 3 | name: Restart mmWave sensor 4 | id: restart_mmwave 5 | entity_category: config 6 | internal: true 7 | on_press: 8 | - uart.write: "resetSystem" 9 | - platform: template 10 | name: Restart 11 | icon: mdi:restart 12 | entity_category: config 13 | disabled_by_default: True 14 | on_press: 15 | - button.press: restart_mmwave 16 | - button.press: restart_internal 17 | - platform: template 18 | name: Factory reset mmWave 19 | icon: mdi:cog-counterclockwise 20 | id: factory_reset_mmwave 21 | internal: ${factory_reset_disabled} 22 | entity_category: config 23 | on_press: 24 | - switch.turn_off: mmwave_sensor 25 | - delay: 1s 26 | - uart.write: "resetCfg" 27 | - delay: 3s 28 | - switch.turn_on: mmwave_sensor 29 | 30 | light: 31 | - platform: binary 32 | name: mmWave LED 33 | output: mmwave_led_output 34 | entity_category: config 35 | disabled_by_default: False 36 | 37 | output: 38 | - platform: template 39 | id: mmwave_led_output 40 | type: binary 41 | write_action: 42 | - switch.turn_off: mmwave_sensor 43 | - delay: 1s 44 | - if: 45 | condition: 46 | lambda: !lambda return state; 47 | then: 48 | - uart.write: "setLedMode 1 0" 49 | else: 50 | - uart.write: "setLedMode 1 1" 51 | - delay: 1s 52 | - uart.write: "saveConfig" 53 | - delay: 3s 54 | - switch.turn_on: mmwave_sensor 55 | 56 | number: 57 | - platform: template 58 | name: mmWave off latency 59 | icon: mdi:clock-end 60 | entity_category: config 61 | id: mmwave_off_latency 62 | min_value: 1 63 | max_value: 600 64 | initial_value: 15 65 | optimistic: true 66 | step: 5 67 | restore_value: true 68 | unit_of_measurement: seconds 69 | mode: slider 70 | set_action: 71 | - logger.log: "Off latency set" 72 | - switch.turn_off: mmwave_sensor 73 | - delay: 1s 74 | - uart.write: !lambda |- 75 | std::string mss = "setLatency " + to_string(id(mmwave_on_latency).state) + " " + to_string(id(mmwave_off_latency).state); 76 | return std::vector(mss.begin(), mss.end()); 77 | - delay: 1s 78 | - uart.write: "saveCfg 0x45670123 0xCDEF89AB 0x956128C6 0xDF54AC89" 79 | - delay: 1s 80 | - switch.turn_on: mmwave_sensor 81 | 82 | - platform: template 83 | name: mmWave on latency 84 | icon: mdi:clock-start 85 | id: mmwave_on_latency 86 | entity_category: config 87 | min_value: 0 88 | max_value: 2 89 | initial_value: 0 90 | optimistic: true 91 | step: 0.25 92 | restore_value: true 93 | unit_of_measurement: seconds 94 | mode: slider 95 | set_action: 96 | - logger.log: "On latency set" 97 | - switch.turn_off: mmwave_sensor 98 | - delay: 1s 99 | - uart.write: !lambda |- 100 | std::string mss = "setLatency " + to_string(id(mmwave_on_latency).state) + " " + to_string(id(mmwave_off_latency).state); 101 | return std::vector(mss.begin(), mss.end()); 102 | - delay: 1s 103 | - uart.write: "saveCfg 0x45670123 0xCDEF89AB 0x956128C6 0xDF54AC89" 104 | - delay: 1s 105 | - switch.turn_on: mmwave_sensor 106 | 107 | - platform: template 108 | name: mmWave sensitivity 109 | icon: mdi:target-variant 110 | id: mmwave_sensitivity 111 | entity_category: config 112 | min_value: 0 113 | max_value: 9 114 | initial_value: 7 115 | optimistic: true 116 | step: 1 117 | restore_value: true 118 | set_action: 119 | - logger.log: "Sensitivity set" 120 | - switch.turn_off: mmwave_sensor 121 | - delay: 1s 122 | - uart.write: 123 | !lambda std::string mss = "setSensitivity " + to_string((int)x); 124 | return std::vector(mss.begin(), mss.end()); 125 | - delay: 1s 126 | - uart.write: "saveConfig" 127 | - delay: 1s 128 | - switch.turn_on: mmwave_sensor 129 | 130 | switch: 131 | - platform: template 132 | name: mmWave sensor 133 | id: mmwave_sensor 134 | disabled_by_default: True 135 | entity_category: config 136 | optimistic: true 137 | restore_mode: DISABLED 138 | turn_on_action: 139 | - uart.write: "sensorStart" 140 | - delay: 1s 141 | turn_off_action: 142 | - uart.write: "sensorStop" 143 | - delay: 1s 144 | 145 | - platform: template 146 | name: UART presence output 147 | id: uart_presence_output 148 | entity_category: config 149 | internal: ${uart_presence_output_disabled} 150 | optimistic: true 151 | turn_on_action: 152 | - logger.log: "UART Presence Output On" 153 | - switch.turn_off: mmwave_sensor 154 | - delay: 1s 155 | - uart.write: "setUartOutput 1 1" 156 | - delay: 1s 157 | - uart.write: "saveConfig" 158 | - delay: 3s 159 | - switch.turn_on: mmwave_sensor 160 | turn_off_action: 161 | - logger.log: "UART Presence Output Off" 162 | - switch.turn_off: mmwave_sensor 163 | - delay: 1s 164 | - uart.write: "setUartOutput 1 0" 165 | - delay: 1s 166 | - uart.write: "saveConfig" 167 | - delay: 3s 168 | - switch.turn_on: mmwave_sensor -------------------------------------------------------------------------------- /common/sen0609-common.yaml: -------------------------------------------------------------------------------- 1 | binary_sensor: 2 | - platform: gpio 3 | name: mmWave 4 | id: mmwave 5 | device_class: occupancy 6 | pin: 7 | number: GPIO17 8 | mode: INPUT_PULLDOWN 9 | 10 | uart: 11 | id: uart_bus 12 | tx_pin: GPIO14 13 | rx_pin: GPIO13 14 | baud_rate: 9600 15 | debug: 16 | direction: BOTH 17 | dummy_receiver: true 18 | after: 19 | delimiter: "\n" 20 | sequence: 21 | - lambda: UARTDebug::log_string(direction, bytes); 22 | 23 | light: 24 | - platform: binary 25 | name: mmWave LED 26 | restore_mode: RESTORE_DEFAULT_OFF 27 | output: mmwave_led_output 28 | entity_category: config 29 | disabled_by_default: False 30 | 31 | output: 32 | - platform: template 33 | id: mmwave_led_output 34 | type: binary 35 | write_action: 36 | - switch.turn_off: mmwave_sensor 37 | - delay: 1s 38 | - if: 39 | condition: 40 | lambda: !lambda return state; 41 | then: 42 | - uart.write: "setLedMode 1 0" 43 | else: 44 | - uart.write: "setLedMode 1 1" 45 | - delay: 1s 46 | - uart.write: "saveConfig" 47 | - delay: 3s 48 | - switch.turn_on: mmwave_sensor 49 | 50 | switch: 51 | - platform: template 52 | name: mmWave sensor 53 | id: mmwave_sensor 54 | disabled_by_default: True 55 | entity_category: config 56 | optimistic: true 57 | restore_mode: RESTORE_DEFAULT_ON 58 | turn_on_action: 59 | - uart.write: "sensorStart" 60 | - delay: 1s 61 | turn_off_action: 62 | - uart.write: "sensorStop" 63 | - delay: 1s 64 | 65 | - platform: template 66 | name: UART presence output 67 | id: uart_presence_output 68 | entity_category: config 69 | disabled_by_default: true 70 | optimistic: true 71 | turn_on_action: 72 | - switch.turn_off: mmwave_sensor 73 | - delay: 1s 74 | - uart.write: "setUartOutput 1 1" 75 | - delay: 1s 76 | - uart.write: "saveConfig" 77 | - delay: 3s 78 | - switch.turn_on: mmwave_sensor 79 | turn_off_action: 80 | - switch.turn_off: mmwave_sensor 81 | - delay: 1s 82 | - uart.write: "setUartOutput 1 0" 83 | - delay: 1s 84 | - uart.write: "saveConfig" 85 | - delay: 3s 86 | - switch.turn_on: mmwave_sensor 87 | 88 | - platform: template 89 | name: UART target output 90 | id: uart_target_output 91 | entity_category: config 92 | disabled_by_default: true 93 | optimistic: true 94 | assumed_state: false 95 | turn_on_action: 96 | - switch.turn_off: mmwave_sensor 97 | - delay: 1s 98 | - uart.write: "setUartOutput 2 1 1 1" 99 | - delay: 1s 100 | - uart.write: "saveConfig" 101 | - delay: 3s 102 | - switch.turn_on: mmwave_sensor 103 | turn_off_action: 104 | - switch.turn_off: mmwave_sensor 105 | - delay: 1s 106 | - uart.write: "setUartOutput 2 0" 107 | - delay: 1s 108 | - uart.write: "saveConfig" 109 | - delay: 3s 110 | - switch.turn_on: mmwave_sensor 111 | 112 | number: 113 | - platform: template 114 | id: mmwave_distance_min 115 | name: mmWave Minimum Distance 116 | icon: mdi:arrow-left-right 117 | entity_category: config 118 | min_value: 0.6 119 | max_value: 25 120 | initial_value: 0.6 121 | optimistic: true 122 | step: 0.1 123 | restore_value: true 124 | unit_of_measurement: m 125 | mode: slider 126 | - platform: template 127 | id: mmwave_distance_max 128 | name: mmWave Max Distance 129 | icon: mdi:arrow-left-right 130 | entity_category: config 131 | min_value: 0 132 | max_value: 25 133 | initial_value: 12 134 | optimistic: true 135 | step: 0.1 136 | restore_value: true 137 | unit_of_measurement: m 138 | mode: slider 139 | 140 | - platform: template 141 | name: mmWave off latency 142 | icon: mdi:clock-end 143 | entity_category: config 144 | id: mmwave_off_latency 145 | min_value: 1 146 | max_value: 600 147 | initial_value: 15 148 | optimistic: true 149 | step: 5 150 | restore_value: true 151 | unit_of_measurement: seconds 152 | mode: slider 153 | set_action: 154 | - switch.turn_off: mmwave_sensor 155 | - delay: 1s 156 | - uart.write: !lambda |- 157 | std::string mss = "setLatency " + to_string(id(mmwave_on_latency).state) + " " + to_string(id(mmwave_off_latency).state); 158 | return std::vector(mss.begin(), mss.end()); 159 | - delay: 1s 160 | - uart.write: "saveConfig" 161 | - delay: 1s 162 | - switch.turn_on: mmwave_sensor 163 | 164 | - platform: template 165 | name: mmWave on latency 166 | icon: mdi:clock-start 167 | id: mmwave_on_latency 168 | entity_category: config 169 | min_value: 0 170 | max_value: 2 171 | initial_value: 0 172 | optimistic: true 173 | step: 0.25 174 | restore_value: true 175 | unit_of_measurement: seconds 176 | mode: slider 177 | set_action: 178 | - switch.turn_off: mmwave_sensor 179 | - delay: 1s 180 | - uart.write: !lambda |- 181 | std::string mss = "setLatency " + to_string(id(mmwave_on_latency).state) + " " + to_string(id(mmwave_off_latency).state); 182 | return std::vector(mss.begin(), mss.end()); 183 | - delay: 1s 184 | - uart.write: "saveConfig" 185 | - delay: 1s 186 | - switch.turn_on: mmwave_sensor 187 | 188 | - platform: template 189 | name: mmWave Trigger Distance 190 | icon: mdi:radar 191 | id: mmwave_trigger_distance 192 | entity_category: config 193 | min_value: 0 194 | max_value: 25 195 | initial_value: 6 196 | optimistic: true 197 | step: 0.1 198 | restore_value: true 199 | unit_of_measurement: m 200 | mode: slider 201 | set_action: 202 | - switch.turn_off: mmwave_sensor 203 | - delay: 1s 204 | - uart.write: !lambda |- 205 | std::string mss = "setTrigRange " + to_string(x); 206 | return std::vector(mss.begin(), mss.end()); 207 | - delay: 1s 208 | - uart.write: "saveConfig" 209 | - delay: 1s 210 | - switch.turn_on: mmwave_sensor 211 | 212 | - platform: template 213 | name: mmWave Sustain Sensitivity 214 | icon: mdi:target-variant 215 | id: mmwave_sensitivity 216 | entity_category: config 217 | min_value: 0 218 | max_value: 9 219 | initial_value: 7 220 | optimistic: true 221 | step: 1 222 | restore_value: true 223 | 224 | - platform: template 225 | name: mmWave Trigger Sensitivity 226 | icon: mdi:target-variant 227 | id: mmwave_trigger_sensitivity 228 | entity_category: config 229 | min_value: 0 230 | max_value: 9 231 | initial_value: 5 232 | optimistic: true 233 | step: 1 234 | restore_value: true 235 | 236 | button: 237 | - platform: template 238 | name: "Set Distance" 239 | id: set_distance 240 | entity_category: config 241 | on_press: 242 | - switch.turn_off: mmwave_sensor 243 | - delay: 1s 244 | - uart.write: !lambda 245 | std::string ms = "setRange " + to_string(id(mmwave_distance_min).state) + " " + to_string(id(mmwave_distance_max).state); 246 | return std::vector(ms.begin(), ms.end()); 247 | - delay: 1s 248 | - uart.write: "saveConfig" 249 | - delay: 1s 250 | - switch.turn_on: mmwave_sensor 251 | 252 | - platform: template 253 | name: "Set Sensitivity" 254 | id: set_sensitivity 255 | entity_category: config 256 | on_press: 257 | - switch.turn_off: mmwave_sensor 258 | - delay: 1s 259 | - uart.write: 260 | !lambda std::string mss = "setSensitivity " + to_string(id(mmwave_sensitivity).state) + " " + to_string(id(mmwave_trigger_sensitivity).state); 261 | return std::vector(mss.begin(), mss.end()); 262 | - delay: 1s 263 | - uart.write: "saveConfig" 264 | - delay: 1s 265 | - switch.turn_on: mmwave_sensor 266 | 267 | - platform: template 268 | name: "Read Trigger Distance" 269 | id: read_trigger_distance 270 | entity_category: config 271 | on_press: 272 | - switch.turn_off: mmwave_sensor 273 | - delay: 1s 274 | - uart.write: "getTrigRange" 275 | - delay: 1s 276 | - switch.turn_on: mmwave_sensor 277 | 278 | - platform: template 279 | name: Restart mmWave Sensor 280 | id: restart_mmwave 281 | entity_category: config 282 | internal: true 283 | on_press: 284 | - uart.write: "resetSystem" 285 | - platform: template 286 | name: Factory Reset mmWave 287 | icon: mdi:cog-counterclockwise 288 | id: factory_reset_mmwave 289 | disabled_by_default: true 290 | entity_category: config 291 | on_press: 292 | - switch.turn_off: mmwave_sensor 293 | - delay: 1s 294 | - uart.write: "resetCfg" 295 | - delay: 3s 296 | - switch.turn_on: mmwave_sensor 297 | -------------------------------------------------------------------------------- /everything-presence-one-beta-ble-co2-rev1.3.yaml: -------------------------------------------------------------------------------- 1 | substitutions: 2 | name: "everything-presence-one" 3 | friendly_name: "Everything Presence One" 4 | project_name: "Everything Smart Technology.Everything Presence One" 5 | project_version: "1.3.14b" 6 | temperature_offset: "-3" 7 | humidity_offset: "5" 8 | temperature_update_interval: "60s" 9 | illuminance_update_interval: "2s" 10 | hidden_ssid: "false" 11 | factory_reset_disabled: "true" 12 | uart_target_output_disabled: "true" 13 | uart_presence_output_disabled: "true" 14 | log_level: "ERROR" 15 | 16 | update: 17 | - platform: http_request 18 | id: update_http_request 19 | name: Everything Presence One Firmware 20 | source: https://everythingsmarthome.github.io/everything-presence-one/everything-presence-one-ha-sen0395-co2-ble-rev1-3-beta-manifest.json 21 | disabled_by_default: true 22 | 23 | dashboard_import: 24 | package_import_url: github://everythingsmarthome/everything-presence-one/everything-presence-one-beta-ble-co2-rev1.3.yaml@main 25 | import_full_config: false 26 | 27 | packages: 28 | device_base: !include common/everything-presence-one-base.yaml 29 | device_version: !include common/everything-presence-one-sen0395-beta.yaml 30 | bluetooth_base: !include common/bluetooth-base.yaml 31 | sen0395_base: !include common/sen0395-common.yaml 32 | co2_base: !include common/modules/co2-rev1.3-1.4.yaml -------------------------------------------------------------------------------- /everything-presence-one-beta-ble-co2-rev1.6.yaml: -------------------------------------------------------------------------------- 1 | substitutions: 2 | name: "everything-presence-one" 3 | friendly_name: "Everything Presence One" 4 | project_name: "Everything Smart Technology.Everything Presence One" 5 | project_version: "1.3.14b" 6 | temperature_offset: "-3" 7 | humidity_offset: "5" 8 | temperature_update_interval: "60s" 9 | illuminance_update_interval: "2s" 10 | hidden_ssid: "false" 11 | factory_reset_disabled: "true" 12 | uart_target_output_disabled: "true" 13 | uart_presence_output_disabled: "true" 14 | log_level: "ERROR" 15 | 16 | update: 17 | - platform: http_request 18 | id: update_http_request 19 | name: Everything Presence One Firmware 20 | source: https://everythingsmarthome.github.io/everything-presence-one/everything-presence-one-ha-sen0395-co2-ble-rev1-6-beta-manifest.json 21 | disabled_by_default: true 22 | 23 | dashboard_import: 24 | package_import_url: github://everythingsmarthome/everything-presence-one/everything-presence-one-beta-ble-co2-rev1.6.yaml@main 25 | import_full_config: false 26 | 27 | packages: 28 | device_base: !include common/everything-presence-one-base.yaml 29 | device_version: !include common/everything-presence-one-sen0395-beta.yaml 30 | bluetooth_base: !include common/bluetooth-base.yaml 31 | sen0395_base: !include common/sen0395-common.yaml 32 | co2_base: !include common/modules/co2-rev1.5.yaml 33 | 34 | binary_sensor: 35 | - platform: gpio 36 | pin: 37 | number: 33 38 | mode: INPUT 39 | name: PIR 40 | id: !extend pir_motion_sensor 41 | -------------------------------------------------------------------------------- /everything-presence-one-beta-ble-co2.yaml: -------------------------------------------------------------------------------- 1 | substitutions: 2 | name: "everything-presence-one" 3 | friendly_name: "Everything Presence One" 4 | project_name: "Everything Smart Technology.Everything Presence One" 5 | project_version: "1.3.14b" 6 | temperature_offset: "-3" 7 | humidity_offset: "5" 8 | temperature_update_interval: "60s" 9 | illuminance_update_interval: "2s" 10 | hidden_ssid: "false" 11 | factory_reset_disabled: "true" 12 | uart_target_output_disabled: "true" 13 | uart_presence_output_disabled: "true" 14 | log_level: "ERROR" 15 | 16 | update: 17 | - platform: http_request 18 | id: update_http_request 19 | name: Everything Presence One Firmware 20 | source: https://everythingsmarthome.github.io/everything-presence-one/everything-presence-one-ha-sen0395-co2-ble-rev1-5-beta-manifest.json 21 | disabled_by_default: true 22 | 23 | dashboard_import: 24 | package_import_url: github://everythingsmarthome/everything-presence-one/everything-presence-one-beta-ble-co2.yaml@main 25 | import_full_config: false 26 | 27 | packages: 28 | device_base: !include common/everything-presence-one-base.yaml 29 | device_version: !include common/everything-presence-one-sen0395-beta.yaml 30 | bluetooth_base: !include common/bluetooth-base.yaml 31 | sen0395_base: !include common/sen0395-common.yaml 32 | co2_base: !include common/modules/co2-rev1.5.yaml -------------------------------------------------------------------------------- /everything-presence-one-beta-ble-rev1.3.yaml: -------------------------------------------------------------------------------- 1 | substitutions: 2 | name: "everything-presence-one" 3 | friendly_name: "Everything Presence One" 4 | project_name: "Everything Smart Technology.Everything Presence One" 5 | project_version: "1.3.14b" 6 | temperature_offset: "-3" 7 | humidity_offset: "5" 8 | temperature_update_interval: "60s" 9 | illuminance_update_interval: "2s" 10 | hidden_ssid: "false" 11 | factory_reset_disabled: "true" 12 | uart_target_output_disabled: "true" 13 | uart_presence_output_disabled: "true" 14 | log_level: "ERROR" 15 | 16 | update: 17 | - platform: http_request 18 | id: update_http_request 19 | name: Everything Presence One Firmware 20 | source: https://everythingsmarthome.github.io/everything-presence-one/everything-presence-one-ha-sen0395-nomodule-ble-rev1-3-beta-manifest.json 21 | disabled_by_default: true 22 | 23 | dashboard_import: 24 | package_import_url: github://everythingsmarthome/everything-presence-one/everything-presence-one-beta-ble-rev1.3.yaml@main 25 | import_full_config: false 26 | 27 | packages: 28 | device_base: !include common/everything-presence-one-base.yaml 29 | device_version: !include common/everything-presence-one-sen0395-beta.yaml 30 | bluetooth_base: !include common/bluetooth-base.yaml 31 | sen0395_base: !include common/sen0395-common.yaml -------------------------------------------------------------------------------- /everything-presence-one-beta-ble-rev1.6.yaml: -------------------------------------------------------------------------------- 1 | substitutions: 2 | name: "everything-presence-one" 3 | friendly_name: "Everything Presence One" 4 | project_name: "Everything Smart Technology.Everything Presence One" 5 | project_version: "1.3.14b" 6 | temperature_offset: "-3" 7 | humidity_offset: "5" 8 | temperature_update_interval: "60s" 9 | illuminance_update_interval: "2s" 10 | hidden_ssid: "false" 11 | factory_reset_disabled: "true" 12 | uart_target_output_disabled: "true" 13 | uart_presence_output_disabled: "true" 14 | log_level: "ERROR" 15 | 16 | update: 17 | - platform: http_request 18 | id: update_http_request 19 | name: Everything Presence One Firmware 20 | source: https://everythingsmarthome.github.io/everything-presence-one/everything-presence-one-ha-sen0395-nomodule-ble-rev1-6-beta-manifest.json 21 | disabled_by_default: true 22 | 23 | dashboard_import: 24 | package_import_url: github://everythingsmarthome/everything-presence-one/everything-presence-one-beta-ble-rev1.6.yaml@main 25 | import_full_config: false 26 | 27 | packages: 28 | device_base: !include common/everything-presence-one-base.yaml 29 | device_version: !include common/everything-presence-one-sen0395-beta.yaml 30 | bluetooth_base: !include common/bluetooth-base.yaml 31 | sen0395_base: !include common/sen0395-common.yaml 32 | 33 | binary_sensor: 34 | - platform: gpio 35 | pin: 36 | number: 33 37 | mode: INPUT 38 | name: PIR 39 | id: !extend pir_motion_sensor -------------------------------------------------------------------------------- /everything-presence-one-beta-ble.yaml: -------------------------------------------------------------------------------- 1 | substitutions: 2 | name: "everything-presence-one" 3 | friendly_name: "Everything Presence One" 4 | project_name: "Everything Smart Technology.Everything Presence One" 5 | project_version: "1.3.14b" 6 | temperature_offset: "-3" 7 | humidity_offset: "5" 8 | temperature_update_interval: "60s" 9 | illuminance_update_interval: "2s" 10 | hidden_ssid: "false" 11 | factory_reset_disabled: "true" 12 | uart_target_output_disabled: "true" 13 | uart_presence_output_disabled: "true" 14 | log_level: "ERROR" 15 | 16 | update: 17 | - platform: http_request 18 | id: update_http_request 19 | name: Everything Presence One Firmware 20 | source: https://everythingsmarthome.github.io/everything-presence-one/everything-presence-one-ha-sen0395-nomodule-ble-rev1-5-beta-manifest.json 21 | disabled_by_default: true 22 | 23 | dashboard_import: 24 | package_import_url: github://everythingsmarthome/everything-presence-one/everything-presence-one-beta-ble.yaml@main 25 | import_full_config: false 26 | 27 | packages: 28 | device_base: !include common/everything-presence-one-base.yaml 29 | device_version: !include common/everything-presence-one-sen0395-beta.yaml 30 | bluetooth_base: !include common/bluetooth-base.yaml 31 | sen0395_base: !include common/sen0395-common.yaml -------------------------------------------------------------------------------- /everything-presence-one-beta-co2-rev1.3.yaml: -------------------------------------------------------------------------------- 1 | substitutions: 2 | name: "everything-presence-one" 3 | friendly_name: "Everything Presence One" 4 | project_name: "Everything Smart Technology.Everything Presence One" 5 | project_version: "1.3.14b" 6 | temperature_offset: "-3" 7 | humidity_offset: "5" 8 | temperature_update_interval: "60s" 9 | illuminance_update_interval: "2s" 10 | hidden_ssid: "false" 11 | factory_reset_disabled: "true" 12 | uart_target_output_disabled: "true" 13 | uart_presence_output_disabled: "true" 14 | log_level: "ERROR" 15 | 16 | update: 17 | - platform: http_request 18 | id: update_http_request 19 | name: Everything Presence One Firmware 20 | source: https://everythingsmarthome.github.io/everything-presence-one/everything-presence-one-ha-sen0395-co2-noble-rev1-3-beta-manifest.json 21 | disabled_by_default: true 22 | 23 | dashboard_import: 24 | package_import_url: github://everythingsmarthome/everything-presence-one/everything-presence-one-beta-co2-rev1.3.yaml@main 25 | import_full_config: false 26 | 27 | packages: 28 | device_base: !include common/everything-presence-one-base.yaml 29 | device_version: !include common/everything-presence-one-sen0395-beta.yaml 30 | sen0395_base: !include common/sen0395-common.yaml 31 | co2_base: !include common/modules/co2-rev1.3-1.4.yaml -------------------------------------------------------------------------------- /everything-presence-one-beta-co2-rev1.6.yaml: -------------------------------------------------------------------------------- 1 | substitutions: 2 | name: "everything-presence-one" 3 | friendly_name: "Everything Presence One" 4 | project_name: "Everything Smart Technology.Everything Presence One" 5 | project_version: "1.3.14b" 6 | temperature_offset: "-3" 7 | humidity_offset: "5" 8 | temperature_update_interval: "60s" 9 | illuminance_update_interval: "2s" 10 | hidden_ssid: "false" 11 | factory_reset_disabled: "true" 12 | uart_target_output_disabled: "true" 13 | uart_presence_output_disabled: "true" 14 | log_level: "ERROR" 15 | 16 | update: 17 | - platform: http_request 18 | id: update_http_request 19 | name: Everything Presence One Firmware 20 | source: https://everythingsmarthome.github.io/everything-presence-one/everything-presence-one-ha-sen0395-co2-noble-rev1-6-beta-manifest.json 21 | disabled_by_default: true 22 | 23 | dashboard_import: 24 | package_import_url: github://everythingsmarthome/everything-presence-one/everything-presence-one-beta-co2-rev1.6.yaml@main 25 | import_full_config: false 26 | 27 | packages: 28 | device_base: !include common/everything-presence-one-base.yaml 29 | device_version: !include common/everything-presence-one-sen0395-beta.yaml 30 | sen0395_base: !include common/sen0395-common.yaml 31 | co2_base: !include common/modules/co2-rev1.5.yaml 32 | 33 | binary_sensor: 34 | - platform: gpio 35 | pin: 36 | number: 33 37 | mode: INPUT 38 | name: PIR 39 | id: !extend pir_motion_sensor -------------------------------------------------------------------------------- /everything-presence-one-beta-co2.yaml: -------------------------------------------------------------------------------- 1 | substitutions: 2 | name: "everything-presence-one" 3 | friendly_name: "Everything Presence One" 4 | project_name: "Everything Smart Technology.Everything Presence One" 5 | project_version: "1.3.14b" 6 | temperature_offset: "-3" 7 | humidity_offset: "5" 8 | temperature_update_interval: "60s" 9 | illuminance_update_interval: "2s" 10 | hidden_ssid: "false" 11 | factory_reset_disabled: "true" 12 | uart_target_output_disabled: "true" 13 | uart_presence_output_disabled: "true" 14 | log_level: "ERROR" 15 | 16 | update: 17 | - platform: http_request 18 | id: update_http_request 19 | name: Everything Presence One Firmware 20 | source: https://everythingsmarthome.github.io/everything-presence-one/everything-presence-one-ha-sen0395-co2-noble-rev1-5-beta-manifest.json 21 | disabled_by_default: true 22 | 23 | dashboard_import: 24 | package_import_url: github://everythingsmarthome/everything-presence-one/everything-presence-one-beta-co2.yaml@main 25 | import_full_config: false 26 | 27 | packages: 28 | device_base: !include common/everything-presence-one-base.yaml 29 | device_version: !include common/everything-presence-one-sen0395-beta.yaml 30 | sen0395_base: !include common/sen0395-common.yaml 31 | co2_base: !include common/modules/co2-rev1.5.yaml -------------------------------------------------------------------------------- /everything-presence-one-beta-rev1.3.yaml: -------------------------------------------------------------------------------- 1 | substitutions: 2 | name: "everything-presence-one" 3 | friendly_name: "Everything Presence One" 4 | project_name: "Everything Smart Technology.Everything Presence One" 5 | project_version: "1.3.14b" 6 | temperature_offset: "-3" 7 | humidity_offset: "5" 8 | temperature_update_interval: "60s" 9 | illuminance_update_interval: "2s" 10 | hidden_ssid: "false" 11 | factory_reset_disabled: "true" 12 | uart_target_output_disabled: "true" 13 | uart_presence_output_disabled: "true" 14 | log_level: "ERROR" 15 | 16 | update: 17 | - platform: http_request 18 | id: update_http_request 19 | name: Everything Presence One Firmware 20 | source: https://everythingsmarthome.github.io/everything-presence-one/everything-presence-one-ha-sen0395-nomodule-noble-rev1-3-beta-manifest.json 21 | disabled_by_default: true 22 | 23 | dashboard_import: 24 | package_import_url: github://everythingsmarthome/everything-presence-one/everything-presence-one-beta-rev1.3.yaml@main 25 | import_full_config: false 26 | 27 | packages: 28 | device_base: !include common/everything-presence-one-base.yaml 29 | device_version: !include common/everything-presence-one-sen0395-beta.yaml 30 | sen0395_base: !include common/sen0395-common.yaml -------------------------------------------------------------------------------- /everything-presence-one-beta-rev1.6.yaml: -------------------------------------------------------------------------------- 1 | substitutions: 2 | name: "everything-presence-one" 3 | friendly_name: "Everything Presence One" 4 | project_name: "Everything Smart Technology.Everything Presence One" 5 | project_version: "1.3.14b" 6 | temperature_offset: "-3" 7 | humidity_offset: "5" 8 | temperature_update_interval: "60s" 9 | illuminance_update_interval: "2s" 10 | hidden_ssid: "false" 11 | factory_reset_disabled: "true" 12 | uart_target_output_disabled: "true" 13 | uart_presence_output_disabled: "true" 14 | log_level: "ERROR" 15 | 16 | update: 17 | - platform: http_request 18 | id: update_http_request 19 | name: Everything Presence One Firmware 20 | source: https://everythingsmarthome.github.io/everything-presence-one/everything-presence-one-ha-sen0395-nomodule-noble-rev1-6-beta-manifest.json 21 | disabled_by_default: true 22 | 23 | dashboard_import: 24 | package_import_url: github://everythingsmarthome/everything-presence-one/everything-presence-one-beta-rev1.6.yaml@main 25 | import_full_config: false 26 | 27 | packages: 28 | device_base: !include common/everything-presence-one-base.yaml 29 | device_version: !include common/everything-presence-one-sen0395-beta.yaml 30 | sen0395_base: !include common/sen0395-common.yaml 31 | 32 | binary_sensor: 33 | - platform: gpio 34 | pin: 35 | number: 33 36 | mode: INPUT 37 | name: PIR 38 | id: !extend pir_motion_sensor -------------------------------------------------------------------------------- /everything-presence-one-beta.yaml: -------------------------------------------------------------------------------- 1 | substitutions: 2 | name: "everything-presence-one" 3 | friendly_name: "Everything Presence One" 4 | project_name: "Everything Smart Technology.Everything Presence One" 5 | project_version: "1.3.14b" 6 | temperature_offset: "-3" 7 | humidity_offset: "5" 8 | temperature_update_interval: "60s" 9 | illuminance_update_interval: "2s" 10 | hidden_ssid: "false" 11 | factory_reset_disabled: "true" 12 | uart_target_output_disabled: "true" 13 | uart_presence_output_disabled: "true" 14 | log_level: "ERROR" 15 | 16 | update: 17 | - platform: http_request 18 | id: update_http_request 19 | name: Everything Presence One Firmware 20 | source: https://everythingsmarthome.github.io/everything-presence-one/everything-presence-one-ha-sen0395-nomodule-noble-rev1-5-beta-manifest.json 21 | disabled_by_default: true 22 | 23 | dashboard_import: 24 | package_import_url: github://everythingsmarthome/everything-presence-one/everything-presence-one-beta.yaml@main 25 | import_full_config: false 26 | 27 | packages: 28 | device_base: !include common/everything-presence-one-base.yaml 29 | device_version: !include common/everything-presence-one-sen0395-beta.yaml 30 | sen0395_base: !include common/sen0395-common.yaml -------------------------------------------------------------------------------- /everything-presence-one-ble-co2-rev1.3.yaml: -------------------------------------------------------------------------------- 1 | substitutions: 2 | name: "everything-presence-one" 3 | friendly_name: "Everything Presence One" 4 | project_name: "Everything Smart Technology.Everything Presence One" 5 | project_version: "1.2.10" 6 | temperature_offset: "-3" 7 | humidity_offset: "5" 8 | temperature_update_interval: "60s" 9 | illuminance_update_interval: "2s" 10 | hidden_ssid: "false" 11 | factory_reset_disabled: "true" 12 | uart_target_output_disabled: "true" 13 | uart_presence_output_disabled: "true" 14 | log_level: "ERROR" 15 | 16 | update: 17 | - platform: http_request 18 | id: update_http_request 19 | name: Everything Presence One Firmware 20 | source: https://everythingsmarthome.github.io/everything-presence-one/everything-presence-one-ha-sen0395-co2-ble-rev1-3-stable-manifest.json 21 | disabled_by_default: true 22 | 23 | dashboard_import: 24 | package_import_url: github://everythingsmarthome/everything-presence-one/everything-presence-one-ble-co2-rev1.3.yaml@main 25 | import_full_config: false 26 | 27 | packages: 28 | device_base: !include common/everything-presence-one-base.yaml 29 | device_version: !include common/everything-presence-one-sen0395-stable.yaml 30 | bluetooth_base: !include common/bluetooth-base.yaml 31 | sen0395_base: !include common/sen0395-common.yaml 32 | co2_base: !include common/modules/co2-rev1.3-1.4.yaml -------------------------------------------------------------------------------- /everything-presence-one-ble-co2-rev1.6.yaml: -------------------------------------------------------------------------------- 1 | substitutions: 2 | name: "everything-presence-one" 3 | friendly_name: "Everything Presence One" 4 | project_name: "Everything Smart Technology.Everything Presence One" 5 | project_version: "1.2.10" 6 | temperature_offset: "-3" 7 | humidity_offset: "5" 8 | temperature_update_interval: "60s" 9 | illuminance_update_interval: "2s" 10 | hidden_ssid: "false" 11 | factory_reset_disabled: "true" 12 | uart_target_output_disabled: "true" 13 | uart_presence_output_disabled: "true" 14 | log_level: "ERROR" 15 | 16 | update: 17 | - platform: http_request 18 | id: update_http_request 19 | name: Everything Presence One Firmware 20 | source: https://everythingsmarthome.github.io/everything-presence-one/everything-presence-one-ha-sen0395-co2-ble-rev1-6-stable-manifest.json 21 | disabled_by_default: true 22 | 23 | dashboard_import: 24 | package_import_url: github://everythingsmarthome/everything-presence-one/everything-presence-one-ble-co2-rev1.6.yaml@main 25 | import_full_config: false 26 | 27 | packages: 28 | device_base: !include common/everything-presence-one-base.yaml 29 | device_version: !include common/everything-presence-one-sen0395-stable.yaml 30 | bluetooth_base: !include common/bluetooth-base.yaml 31 | sen0395_base: !include common/sen0395-common.yaml 32 | co2_base: !include common/modules/co2-rev1.5.yaml 33 | 34 | binary_sensor: 35 | - platform: gpio 36 | pin: 37 | number: 33 38 | mode: INPUT 39 | name: PIR 40 | id: !extend pir_motion_sensor -------------------------------------------------------------------------------- /everything-presence-one-ble-co2.yaml: -------------------------------------------------------------------------------- 1 | substitutions: 2 | name: "everything-presence-one" 3 | friendly_name: "Everything Presence One" 4 | project_name: "Everything Smart Technology.Everything Presence One" 5 | project_version: "1.2.10" 6 | temperature_offset: "-3" 7 | humidity_offset: "5" 8 | temperature_update_interval: "60s" 9 | illuminance_update_interval: "2s" 10 | hidden_ssid: "false" 11 | factory_reset_disabled: "true" 12 | uart_target_output_disabled: "true" 13 | uart_presence_output_disabled: "true" 14 | log_level: "ERROR" 15 | 16 | update: 17 | - platform: http_request 18 | id: update_http_request 19 | name: Everything Presence One Firmware 20 | source: https://everythingsmarthome.github.io/everything-presence-one/everything-presence-one-ha-sen0395-co2-ble-rev1-5-stable-manifest.json 21 | disabled_by_default: true 22 | 23 | dashboard_import: 24 | package_import_url: github://everythingsmarthome/everything-presence-one/everything-presence-one-ble-co2.yaml@main 25 | import_full_config: false 26 | 27 | packages: 28 | device_base: !include common/everything-presence-one-base.yaml 29 | device_version: !include common/everything-presence-one-sen0395-stable.yaml 30 | bluetooth_base: !include common/bluetooth-base.yaml 31 | sen0395_base: !include common/sen0395-common.yaml 32 | co2_base: !include common/modules/co2-rev1.5.yaml -------------------------------------------------------------------------------- /everything-presence-one-ble-rev1.3.yaml: -------------------------------------------------------------------------------- 1 | substitutions: 2 | name: "everything-presence-one" 3 | friendly_name: "Everything Presence One" 4 | project_name: "Everything Smart Technology.Everything Presence One" 5 | project_version: "1.2.10" 6 | temperature_offset: "-3" 7 | humidity_offset: "5" 8 | temperature_update_interval: "60s" 9 | illuminance_update_interval: "2s" 10 | hidden_ssid: "false" 11 | factory_reset_disabled: "true" 12 | uart_target_output_disabled: "true" 13 | uart_presence_output_disabled: "true" 14 | log_level: "ERROR" 15 | 16 | update: 17 | - platform: http_request 18 | id: update_http_request 19 | name: Everything Presence One Firmware 20 | source: https://everythingsmarthome.github.io/everything-presence-one/everything-presence-one-ha-sen0395-nomodule-ble-rev1-3-stable-manifest.json 21 | disabled_by_default: true 22 | 23 | dashboard_import: 24 | package_import_url: github://everythingsmarthome/everything-presence-one/everything-presence-one-ble-rev1.3.yaml@main 25 | import_full_config: false 26 | 27 | packages: 28 | device_base: !include common/everything-presence-one-base.yaml 29 | device_version: !include common/everything-presence-one-sen0395-stable.yaml 30 | bluetooth_base: !include common/bluetooth-base.yaml 31 | sen0395_base: !include common/sen0395-common.yaml -------------------------------------------------------------------------------- /everything-presence-one-ble-rev1.6.yaml: -------------------------------------------------------------------------------- 1 | substitutions: 2 | name: "everything-presence-one" 3 | friendly_name: "Everything Presence One" 4 | project_name: "Everything Smart Technology.Everything Presence One" 5 | project_version: "1.2.10" 6 | temperature_offset: "-3" 7 | humidity_offset: "5" 8 | temperature_update_interval: "60s" 9 | illuminance_update_interval: "2s" 10 | hidden_ssid: "false" 11 | factory_reset_disabled: "true" 12 | uart_target_output_disabled: "true" 13 | uart_presence_output_disabled: "true" 14 | log_level: "ERROR" 15 | 16 | update: 17 | - platform: http_request 18 | id: update_http_request 19 | name: Everything Presence One Firmware 20 | source: https://everythingsmarthome.github.io/everything-presence-one/everything-presence-one-ha-sen0395-nomodule-ble-rev1-6-stable-manifest.json 21 | disabled_by_default: true 22 | 23 | dashboard_import: 24 | package_import_url: github://everythingsmarthome/everything-presence-one/everything-presence-one-ble-rev1.6.yaml@main 25 | import_full_config: false 26 | 27 | packages: 28 | device_base: !include common/everything-presence-one-base.yaml 29 | device_version: !include common/everything-presence-one-sen0395-stable.yaml 30 | bluetooth_base: !include common/bluetooth-base.yaml 31 | sen0395_base: !include common/sen0395-common.yaml 32 | 33 | binary_sensor: 34 | - platform: gpio 35 | pin: 36 | number: 33 37 | mode: INPUT 38 | name: PIR 39 | id: !extend pir_motion_sensor -------------------------------------------------------------------------------- /everything-presence-one-ble.yaml: -------------------------------------------------------------------------------- 1 | substitutions: 2 | name: "everything-presence-one" 3 | friendly_name: "Everything Presence One" 4 | project_name: "Everything Smart Technology.Everything Presence One" 5 | project_version: "1.2.10" 6 | temperature_offset: "-3" 7 | humidity_offset: "5" 8 | temperature_update_interval: "60s" 9 | illuminance_update_interval: "2s" 10 | hidden_ssid: "false" 11 | factory_reset_disabled: "true" 12 | uart_target_output_disabled: "true" 13 | uart_presence_output_disabled: "true" 14 | log_level: "ERROR" 15 | 16 | update: 17 | - platform: http_request 18 | id: update_http_request 19 | name: Everything Presence One Firmware 20 | source: https://everythingsmarthome.github.io/everything-presence-one/everything-presence-one-ha-sen0395-nomodule-ble-rev1-5-stable-manifest.json 21 | disabled_by_default: true 22 | 23 | dashboard_import: 24 | package_import_url: github://everythingsmarthome/everything-presence-one/everything-presence-one-ble.yaml@main 25 | import_full_config: false 26 | 27 | packages: 28 | device_base: !include common/everything-presence-one-base.yaml 29 | device_version: !include common/everything-presence-one-sen0395-stable.yaml 30 | bluetooth_base: !include common/bluetooth-base.yaml 31 | sen0395_base: !include common/sen0395-common.yaml -------------------------------------------------------------------------------- /everything-presence-one-co2-rev1.3.yaml: -------------------------------------------------------------------------------- 1 | substitutions: 2 | name: "everything-presence-one" 3 | friendly_name: "Everything Presence One" 4 | project_name: "Everything Smart Technology.Everything Presence One" 5 | project_version: "1.2.10" 6 | temperature_offset: "-3" 7 | humidity_offset: "5" 8 | temperature_update_interval: "60s" 9 | illuminance_update_interval: "2s" 10 | hidden_ssid: "false" 11 | factory_reset_disabled: "true" 12 | uart_target_output_disabled: "true" 13 | uart_presence_output_disabled: "true" 14 | log_level: "ERROR" 15 | 16 | update: 17 | - platform: http_request 18 | id: update_http_request 19 | name: Everything Presence One Firmware 20 | source: https://everythingsmarthome.github.io/everything-presence-one/everything-presence-one-ha-sen0395-co2-noble-rev1-3-stable-manifest.json 21 | disabled_by_default: true 22 | 23 | dashboard_import: 24 | package_import_url: github://everythingsmarthome/everything-presence-one/everything-presence-one-co2-rev1.3.yaml@main 25 | import_full_config: false 26 | 27 | packages: 28 | device_base: !include common/everything-presence-one-base.yaml 29 | device_version: !include common/everything-presence-one-sen0395-stable.yaml 30 | sen0395_base: !include common/sen0395-common.yaml 31 | co2_base: !include common/modules/co2-rev1.3-1.4.yaml -------------------------------------------------------------------------------- /everything-presence-one-co2-rev1.6.yaml: -------------------------------------------------------------------------------- 1 | substitutions: 2 | name: "everything-presence-one" 3 | friendly_name: "Everything Presence One" 4 | project_name: "Everything Smart Technology.Everything Presence One" 5 | project_version: "1.2.10" 6 | temperature_offset: "-3" 7 | humidity_offset: "5" 8 | temperature_update_interval: "60s" 9 | illuminance_update_interval: "2s" 10 | hidden_ssid: "false" 11 | factory_reset_disabled: "true" 12 | uart_target_output_disabled: "true" 13 | uart_presence_output_disabled: "true" 14 | log_level: "ERROR" 15 | 16 | update: 17 | - platform: http_request 18 | id: update_http_request 19 | name: Everything Presence One Firmware 20 | source: https://everythingsmarthome.github.io/everything-presence-one/everything-presence-one-ha-sen0395-co2-noble-rev1-6-stable-manifest.json 21 | disabled_by_default: true 22 | 23 | dashboard_import: 24 | package_import_url: github://everythingsmarthome/everything-presence-one/everything-presence-one-co2-rev1.6.yaml@main 25 | import_full_config: false 26 | 27 | packages: 28 | device_base: !include common/everything-presence-one-base.yaml 29 | device_version: !include common/everything-presence-one-sen0395-stable.yaml 30 | sen0395_base: !include common/sen0395-common.yaml 31 | co2_base: !include common/modules/co2-rev1.5.yaml 32 | 33 | binary_sensor: 34 | - platform: gpio 35 | pin: 36 | number: 33 37 | mode: INPUT 38 | name: PIR 39 | id: !extend pir_motion_sensor -------------------------------------------------------------------------------- /everything-presence-one-co2.yaml: -------------------------------------------------------------------------------- 1 | substitutions: 2 | name: "everything-presence-one" 3 | friendly_name: "Everything Presence One" 4 | project_name: "Everything Smart Technology.Everything Presence One" 5 | project_version: "1.2.10" 6 | temperature_offset: "-3" 7 | humidity_offset: "5" 8 | temperature_update_interval: "60s" 9 | illuminance_update_interval: "2s" 10 | hidden_ssid: "false" 11 | factory_reset_disabled: "true" 12 | uart_target_output_disabled: "true" 13 | uart_presence_output_disabled: "true" 14 | log_level: "ERROR" 15 | 16 | update: 17 | - platform: http_request 18 | id: update_http_request 19 | name: Everything Presence One Firmware 20 | source: https://everythingsmarthome.github.io/everything-presence-one/everything-presence-one-ha-sen0395-co2-noble-rev1-5-stable-manifest.json 21 | disabled_by_default: true 22 | 23 | dashboard_import: 24 | package_import_url: github://everythingsmarthome/everything-presence-one/everything-presence-one-co2.yaml@main 25 | import_full_config: false 26 | 27 | packages: 28 | device_base: !include common/everything-presence-one-base.yaml 29 | device_version: !include common/everything-presence-one-sen0395-stable.yaml 30 | sen0395_base: !include common/sen0395-common.yaml 31 | co2_base: !include common/modules/co2-rev1.5.yaml -------------------------------------------------------------------------------- /everything-presence-one-rev1.3.yaml: -------------------------------------------------------------------------------- 1 | substitutions: 2 | name: "everything-presence-one" 3 | friendly_name: "Everything Presence One" 4 | project_name: "Everything Smart Technology.Everything Presence One" 5 | project_version: "1.2.10" 6 | temperature_offset: "-3" 7 | humidity_offset: "5" 8 | temperature_update_interval: "60s" 9 | illuminance_update_interval: "2s" 10 | hidden_ssid: "false" 11 | factory_reset_disabled: "true" 12 | uart_target_output_disabled: "true" 13 | uart_presence_output_disabled: "true" 14 | log_level: "ERROR" 15 | 16 | update: 17 | - platform: http_request 18 | id: update_http_request 19 | name: Everything Presence One Firmware 20 | source: https://everythingsmarthome.github.io/everything-presence-one/everything-presence-one-ha-sen0395-nomodule-noble-rev1-3-stable-manifest.json 21 | disabled_by_default: true 22 | 23 | dashboard_import: 24 | package_import_url: github://everythingsmarthome/everything-presence-one/everything-presence-one-rev1.3.yaml@main 25 | import_full_config: false 26 | 27 | packages: 28 | device_base: !include common/everything-presence-one-base.yaml 29 | device_version: !include common/everything-presence-one-sen0395-stable.yaml 30 | sen0395_base: !include common/sen0395-common.yaml -------------------------------------------------------------------------------- /everything-presence-one-rev1.6.yaml: -------------------------------------------------------------------------------- 1 | substitutions: 2 | name: "everything-presence-one" 3 | friendly_name: "Everything Presence One" 4 | project_name: "Everything Smart Technology.Everything Presence One" 5 | project_version: "1.2.10" 6 | temperature_offset: "-3" 7 | humidity_offset: "5" 8 | temperature_update_interval: "60s" 9 | illuminance_update_interval: "2s" 10 | hidden_ssid: "false" 11 | factory_reset_disabled: "true" 12 | uart_target_output_disabled: "true" 13 | uart_presence_output_disabled: "true" 14 | log_level: "ERROR" 15 | 16 | update: 17 | - platform: http_request 18 | id: update_http_request 19 | name: Everything Presence One Firmware 20 | source: https://everythingsmarthome.github.io/everything-presence-one/everything-presence-one-ha-sen0395-nomodule-noble-rev1-6-stable-manifest.json 21 | disabled_by_default: true 22 | 23 | dashboard_import: 24 | package_import_url: github://everythingsmarthome/everything-presence-one/everything-presence-one-rev1.6.yaml@main 25 | import_full_config: false 26 | 27 | packages: 28 | device_base: !include common/everything-presence-one-base.yaml 29 | device_version: !include common/everything-presence-one-sen0395-stable.yaml 30 | sen0395_base: !include common/sen0395-common.yaml 31 | 32 | binary_sensor: 33 | - platform: gpio 34 | pin: 35 | number: 33 36 | mode: INPUT 37 | name: PIR 38 | id: !extend pir_motion_sensor -------------------------------------------------------------------------------- /everything-presence-one-sen0609-ble-co2-rev1.6.yaml: -------------------------------------------------------------------------------- 1 | substitutions: 2 | name: "everything-presence-one" 3 | friendly_name: "Everything Presence One" 4 | project_name: "Everything Smart Technology.Everything Presence One" 5 | project_version: "1.2.10" 6 | temperature_offset: "-3" 7 | humidity_offset: "5" 8 | temperature_update_interval: "60s" 9 | illuminance_update_interval: "2s" 10 | hidden_ssid: "false" 11 | factory_reset_disabled: "true" 12 | uart_target_output_disabled: "true" 13 | uart_presence_output_disabled: "true" 14 | log_level: "ERROR" 15 | 16 | update: 17 | - platform: http_request 18 | id: update_http_request 19 | name: Everything Presence One Firmware 20 | source: https://everythingsmarthome.github.io/everything-presence-one/everything-presence-one-ha-sen0609-co2-ble-rev1-6-stable-manifest.json 21 | disabled_by_default: true 22 | 23 | dashboard_import: 24 | package_import_url: github://everythingsmarthome/everything-presence-one/everything-presence-one-sen0609-ble-co2-rev1.6.yaml@main 25 | import_full_config: false 26 | 27 | packages: 28 | device_base: !include common/everything-presence-one-base.yaml 29 | bluetooth_base: !include common/bluetooth-base.yaml 30 | sen0609_base: !include common/sen0609-common.yaml 31 | co2_base: !include common/modules/co2-rev1.5.yaml 32 | 33 | binary_sensor: 34 | - platform: gpio 35 | pin: 36 | number: 33 37 | mode: INPUT 38 | name: PIR 39 | id: !extend pir_motion_sensor 40 | -------------------------------------------------------------------------------- /everything-presence-one-sen0609-ble-co2.yaml: -------------------------------------------------------------------------------- 1 | substitutions: 2 | name: "everything-presence-one" 3 | friendly_name: "Everything Presence One" 4 | project_name: "Everything Smart Technology.Everything Presence One" 5 | project_version: "1.2.10" 6 | temperature_offset: "-3" 7 | humidity_offset: "5" 8 | temperature_update_interval: "60s" 9 | illuminance_update_interval: "2s" 10 | hidden_ssid: "false" 11 | factory_reset_disabled: "true" 12 | uart_target_output_disabled: "true" 13 | uart_presence_output_disabled: "true" 14 | log_level: "ERROR" 15 | 16 | update: 17 | - platform: http_request 18 | id: update_http_request 19 | name: Everything Presence One Firmware 20 | source: https://everythingsmarthome.github.io/everything-presence-one/everything-presence-one-ha-sen0609-co2-ble-rev1-5-stable-manifest.json 21 | disabled_by_default: true 22 | 23 | dashboard_import: 24 | package_import_url: github://everythingsmarthome/everything-presence-one/everything-presence-one-sen0609-ble-co2.yaml@main 25 | import_full_config: false 26 | 27 | packages: 28 | device_base: !include common/everything-presence-one-base.yaml 29 | bluetooth_base: !include common/bluetooth-base.yaml 30 | sen0395_base: !include common/sen0609-common.yaml 31 | co2_base: !include common/modules/co2-rev1.5.yaml -------------------------------------------------------------------------------- /everything-presence-one-sen0609-ble-rev1.6.yaml: -------------------------------------------------------------------------------- 1 | substitutions: 2 | name: "everything-presence-one" 3 | friendly_name: "Everything Presence One" 4 | project_name: "Everything Smart Technology.Everything Presence One" 5 | project_version: "1.2.10" 6 | temperature_offset: "-3" 7 | humidity_offset: "5" 8 | temperature_update_interval: "5s" 9 | illuminance_update_interval: "2s" 10 | hidden_ssid: "false" 11 | factory_reset_disabled: "true" 12 | uart_target_output_disabled: "true" 13 | uart_presence_output_disabled: "true" 14 | log_level: "DEBUG" 15 | 16 | update: 17 | - platform: http_request 18 | id: update_http_request 19 | name: Everything Presence One Firmware 20 | source: https://everythingsmarthome.github.io/everything-presence-one/everything-presence-one-ha-sen0609-nomodule-ble-rev1-6-stable-manifest.json 21 | disabled_by_default: true 22 | 23 | dashboard_import: 24 | package_import_url: github://everythingsmarthome/everything-presence-one/everything-presence-one-sen0609-ble-rev1.6.yaml@main 25 | import_full_config: false 26 | 27 | packages: 28 | device_base: !include common/everything-presence-one-base.yaml 29 | bluetooth_base: !include common/bluetooth-base.yaml 30 | sen0395_base: !include common/sen0609-common.yaml 31 | 32 | binary_sensor: 33 | - platform: gpio 34 | pin: 35 | number: 33 36 | mode: INPUT 37 | name: PIR 38 | id: !extend pir_motion_sensor -------------------------------------------------------------------------------- /everything-presence-one-sen0609-ble.yaml: -------------------------------------------------------------------------------- 1 | substitutions: 2 | name: "everything-presence-one" 3 | friendly_name: "Everything Presence One" 4 | project_name: "Everything Smart Technology.Everything Presence One" 5 | project_version: "1.2.10" 6 | temperature_offset: "-3" 7 | humidity_offset: "5" 8 | temperature_update_interval: "60s" 9 | illuminance_update_interval: "2s" 10 | hidden_ssid: "false" 11 | factory_reset_disabled: "true" 12 | uart_target_output_disabled: "true" 13 | uart_presence_output_disabled: "true" 14 | log_level: "ERROR" 15 | 16 | update: 17 | - platform: http_request 18 | id: update_http_request 19 | name: Everything Presence One Firmware 20 | source: https://everythingsmarthome.github.io/everything-presence-one/everything-presence-one-ha-sen0609-nomodule-ble-rev1-5-stable-manifest.json 21 | disabled_by_default: true 22 | 23 | dashboard_import: 24 | package_import_url: github://everythingsmarthome/everything-presence-one/everything-presence-one-sen0609-ble.yaml@main 25 | import_full_config: false 26 | 27 | packages: 28 | device_base: !include common/everything-presence-one-base.yaml 29 | bluetooth_base: !include common/bluetooth-base.yaml 30 | sen0395_base: !include common/sen0609-common.yaml -------------------------------------------------------------------------------- /everything-presence-one-sen0609-co2-rev1.6.yaml: -------------------------------------------------------------------------------- 1 | substitutions: 2 | name: "everything-presence-one" 3 | friendly_name: "Everything Presence One" 4 | project_name: "Everything Smart Technology.Everything Presence One" 5 | project_version: "1.2.10" 6 | temperature_offset: "-3" 7 | humidity_offset: "5" 8 | temperature_update_interval: "60s" 9 | illuminance_update_interval: "2s" 10 | hidden_ssid: "false" 11 | factory_reset_disabled: "true" 12 | uart_target_output_disabled: "true" 13 | uart_presence_output_disabled: "true" 14 | log_level: "ERROR" 15 | 16 | update: 17 | - platform: http_request 18 | id: update_http_request 19 | name: Everything Presence One Firmware 20 | source: https://everythingsmarthome.github.io/everything-presence-one/everything-presence-one-ha-sen0609-co2-noble-rev1-6-stable-manifest.json 21 | disabled_by_default: true 22 | 23 | dashboard_import: 24 | package_import_url: github://everythingsmarthome/everything-presence-one/everything-presence-one-sen0609-co2-rev1.6.yaml@main 25 | import_full_config: false 26 | 27 | packages: 28 | device_base: !include common/everything-presence-one-base.yaml 29 | sen0609_base: !include common/sen0609-common.yaml 30 | co2_base: !include common/modules/co2-rev1.5.yaml 31 | 32 | binary_sensor: 33 | - platform: gpio 34 | pin: 35 | number: 33 36 | mode: INPUT 37 | name: PIR 38 | id: !extend pir_motion_sensor -------------------------------------------------------------------------------- /everything-presence-one-sen0609-co2.yaml: -------------------------------------------------------------------------------- 1 | substitutions: 2 | name: "everything-presence-one" 3 | friendly_name: "Everything Presence One" 4 | project_name: "Everything Smart Technology.Everything Presence One" 5 | project_version: "1.2.10" 6 | temperature_offset: "-3" 7 | humidity_offset: "5" 8 | temperature_update_interval: "60s" 9 | illuminance_update_interval: "2s" 10 | hidden_ssid: "false" 11 | factory_reset_disabled: "true" 12 | uart_target_output_disabled: "true" 13 | uart_presence_output_disabled: "true" 14 | log_level: "ERROR" 15 | 16 | update: 17 | - platform: http_request 18 | id: update_http_request 19 | name: Everything Presence One Firmware 20 | source: https://everythingsmarthome.github.io/everything-presence-one/everything-presence-one-ha-sen0609-co2-noble-rev1-5-stable-manifest.json 21 | disabled_by_default: true 22 | 23 | dashboard_import: 24 | package_import_url: github://everythingsmarthome/everything-presence-one/everything-presence-one-sen0609-co2.yaml@main 25 | import_full_config: false 26 | 27 | packages: 28 | device_base: !include common/everything-presence-one-base.yaml 29 | sen0395_base: !include common/sen0609-common.yaml 30 | co2_base: !include common/modules/co2-rev1.5.yaml -------------------------------------------------------------------------------- /everything-presence-one-sen0609-rev1.6.yaml: -------------------------------------------------------------------------------- 1 | substitutions: 2 | name: "everything-presence-one" 3 | friendly_name: "Everything Presence One" 4 | project_name: "Everything Smart Technology.Everything Presence One" 5 | project_version: "1.2.10" 6 | temperature_offset: "-3" 7 | humidity_offset: "5" 8 | temperature_update_interval: "5s" 9 | illuminance_update_interval: "2s" 10 | hidden_ssid: "false" 11 | factory_reset_disabled: "true" 12 | uart_target_output_disabled: "true" 13 | uart_presence_output_disabled: "true" 14 | log_level: "DEBUG" 15 | 16 | update: 17 | - platform: http_request 18 | id: update_http_request 19 | name: Everything Presence One Firmware 20 | source: https://everythingsmarthome.github.io/everything-presence-one/everything-presence-one-ha-sen0609-nomodule-noble-rev1-6-stable-manifest.json 21 | disabled_by_default: true 22 | 23 | dashboard_import: 24 | package_import_url: github://everythingsmarthome/everything-presence-one/everything-presence-one-sen0609-rev1.6.yaml@main 25 | import_full_config: false 26 | 27 | packages: 28 | device_base: !include common/everything-presence-one-base.yaml 29 | sen0609_base: !include common/sen0609-common.yaml 30 | 31 | binary_sensor: 32 | - platform: gpio 33 | pin: 34 | number: 33 35 | mode: INPUT 36 | name: PIR 37 | id: !extend pir_motion_sensor -------------------------------------------------------------------------------- /everything-presence-one-sen0609.yaml: -------------------------------------------------------------------------------- 1 | substitutions: 2 | name: "everything-presence-one" 3 | friendly_name: "Everything Presence One" 4 | project_name: "Everything Smart Technology.Everything Presence One" 5 | project_version: "1.2.10" 6 | temperature_offset: "-3" 7 | humidity_offset: "5" 8 | temperature_update_interval: "60s" 9 | illuminance_update_interval: "2s" 10 | hidden_ssid: "false" 11 | factory_reset_disabled: "true" 12 | uart_target_output_disabled: "true" 13 | uart_presence_output_disabled: "true" 14 | log_level: "ERROR" 15 | 16 | update: 17 | - platform: http_request 18 | id: update_http_request 19 | name: Everything Presence One Firmware 20 | source: https://everythingsmarthome.github.io/everything-presence-one/everything-presence-one-ha-sen0609-nomodule-noble-rev1-5-stable-manifest.json 21 | disabled_by_default: true 22 | 23 | dashboard_import: 24 | package_import_url: github://everythingsmarthome/everything-presence-one/everything-presence-one-sen0609.yaml@main 25 | import_full_config: false 26 | 27 | packages: 28 | device_base: !include common/everything-presence-one-base.yaml 29 | sen0395_base: !include common/sen0609-common.yaml -------------------------------------------------------------------------------- /everything-presence-one-st-sen0609-rev1.6.yaml: -------------------------------------------------------------------------------- 1 | substitutions: 2 | name: "everything-presence-st" 3 | room: "" 4 | friendly_name: "Everything Presence One ST" 5 | project_name: "Everything Smart Technology.Everything Presence One" 6 | project_version: "1.1.17s" 7 | temperature_offset: "-3" 8 | humidity_offset: "5" 9 | temperature_update_interval: "60s" 10 | illuminance_update_interval: "30s" 11 | pir_delay_off: "10s" 12 | occupancy_delay_off: "15s" 13 | hidden_ssid: "false" 14 | factory_reset_disabled: "true" 15 | uart_target_output_disabled: "true" 16 | uart_presence_output_disabled: "true" 17 | 18 | esphome: 19 | name: "${name}" 20 | name_add_mac_suffix: true 21 | project: 22 | name: "${project_name}" 23 | version: "${project_version}" 24 | on_boot: 25 | priority: -100 26 | then: 27 | - uart.write: "sensorStart" 28 | 29 | esp32: 30 | board: esp32dev 31 | 32 | logger: 33 | 34 | web_server: 35 | 36 | wifi: 37 | fast_connect: ${hidden_ssid} 38 | ap: {} 39 | 40 | captive_portal: 41 | 42 | improv_serial: 43 | 44 | esp32_improv: 45 | authorizer: none 46 | 47 | light: 48 | - platform: status_led 49 | name: "ESP32 Status LED" 50 | pin: GPIO32 51 | entity_category: config 52 | 53 | i2c: 54 | sda: 26 55 | scl: 25 56 | scan: true 57 | 58 | sensor: 59 | - platform: shtcx 60 | temperature: 61 | name: "${room} Temperature" 62 | filters: 63 | offset: ${temperature_offset} 64 | humidity: 65 | name: "${room} Humidity" 66 | filters: 67 | offset: ${humidity_offset} 68 | address: 0x70 69 | update_interval: ${temperature_update_interval} 70 | - platform: bh1750 71 | name: "${room} Illuminance" 72 | address: 0x23 73 | update_interval: ${illuminance_update_interval} 74 | filters: 75 | - calibrate_linear: 76 | method: exact 77 | datapoints: 78 | - 0.3 -> 0.3 79 | - 0.9 -> 1.7 80 | - 1.2 -> 3.6 81 | - 3.2 -> 6.9 82 | - 5.1 -> 10.2 83 | - 6.8 -> 27.1 84 | - 7.0 -> 13.5 85 | - 7.4 -> 28.2 86 | - 8.7 -> 21.7 87 | - 8.9 -> 17.1 88 | - 10.9 -> 20.4 89 | - 12.8 -> 23.5 90 | - 14.5 -> 31.2 91 | - 14.9 -> 26.7 92 | - 16.8 -> 41.1 93 | - 16.9 -> 30.2 94 | - 18.8 -> 33.4 95 | - 19.1 -> 35.8 96 | - 20.7 -> 37.0 97 | - 24.3 -> 60.3 98 | - 26.1 -> 68.6 99 | - 26.7 -> 83.8 100 | - 30.2 -> 75.9 101 | - 32.6 -> 80.3 102 | - 34.6 -> 83.2 103 | - 40.4 -> 99.9 104 | - 48.0 -> 183.7 105 | - 48.3 -> 119.2 106 | - 55.5 -> 141.3 107 | - 55.8 -> 137.9 108 | - 63.8 -> 157.6 109 | - 71.5 -> 176.9 110 | - 79.8 -> 197.1 111 | - 84.3 -> 205.7 112 | - clamp: 113 | min_value: 0 114 | 115 | 116 | binary_sensor: 117 | - platform: gpio 118 | name: ${room} mmWave 119 | id: mmwave 120 | device_class: occupancy 121 | pin: 122 | number: GPIO15 123 | mode: INPUT_PULLDOWN 124 | - platform: gpio 125 | pin: 126 | number: 33 127 | mode: INPUT 128 | name: PIR 129 | id: pir_motion_sensor 130 | device_class: motion 131 | filters: 132 | - delayed_off: ${pir_delay_off} 133 | - platform: template 134 | name: ${room} Occupancy 135 | id: occupancy 136 | device_class: occupancy 137 | filters: 138 | - delayed_off: ${occupancy_delay_off} 139 | lambda: |- 140 | if ( id(mmwave).state or id(pir_motion_sensor).state) { 141 | return true; 142 | } 143 | else if (id(mmwave).state == 0 and id(pir_motion_sensor).state == 0) { 144 | return false; 145 | } 146 | else { 147 | return id(occupancy).state; 148 | } 149 | uart: 150 | id: uart_bus 151 | tx_pin: GPIO13 152 | rx_pin: GPIO14 153 | baud_rate: 115200 154 | debug: 155 | direction: BOTH 156 | dummy_receiver: true 157 | after: 158 | delimiter: "\n" 159 | sequence: 160 | - lambda: UARTDebug::log_string(direction, bytes); 161 | 162 | switch: 163 | - platform: template 164 | name: "mmWave Sensor" 165 | id: "mmwave_sensor" 166 | entity_category: config 167 | optimistic: true 168 | restore_mode: DISABLED 169 | turn_on_action: 170 | - uart.write: "sensorStart" 171 | - delay: 1s 172 | turn_off_action: 173 | - uart.write: "sensorStop" 174 | - delay: 1s 175 | 176 | - platform: template 177 | name: "mmWave LED" 178 | id: "mmwave_led" 179 | entity_category: config 180 | optimistic: true 181 | restore_mode: DISABLED 182 | turn_on_action: 183 | - switch.turn_off: mmwave_sensor 184 | - delay: 1s 185 | - uart.write: "setLedMode 1 0" 186 | - delay: 1s 187 | - uart.write: "saveConfig" 188 | - delay: 3s 189 | - switch.turn_on: mmwave_sensor 190 | turn_off_action: 191 | - switch.turn_off: mmwave_sensor 192 | - delay: 1s 193 | - uart.write: "setLedMode 1 1" 194 | - delay: 1s 195 | - uart.write: "saveConfig" 196 | - delay: 3s 197 | - switch.turn_on: mmwave_sensor 198 | 199 | - platform: template 200 | name: "uart_presence_output" 201 | id: "uart_presence_output" 202 | entity_category: config 203 | internal: ${uart_presence_output_disabled} 204 | optimistic: true 205 | turn_on_action: 206 | - switch.turn_off: mmwave_sensor 207 | - delay: 1s 208 | - uart.write: "setUartOutput 1 1" 209 | - delay: 1s 210 | - uart.write: "saveConfig" 211 | - delay: 3s 212 | - switch.turn_on: mmwave_sensor 213 | turn_off_action: 214 | - switch.turn_off: mmwave_sensor 215 | - delay: 1s 216 | - uart.write: "setUartOutput 1 0" 217 | - delay: 1s 218 | - uart.write: "saveConfig" 219 | - delay: 3s 220 | - switch.turn_on: mmwave_sensor 221 | 222 | - platform: template 223 | name: "uart_target_output" 224 | id: "uart_target_output" 225 | entity_category: config 226 | internal: ${uart_target_output_disabled} 227 | optimistic: true 228 | assumed_state: false 229 | turn_on_action: 230 | - switch.turn_off: mmwave_sensor 231 | - delay: 1s 232 | - uart.write: "setUartOutput 2 1 1 1" 233 | - delay: 1s 234 | - uart.write: "saveConfig" 235 | - delay: 3s 236 | - switch.turn_on: mmwave_sensor 237 | turn_off_action: 238 | - switch.turn_off: mmwave_sensor 239 | - delay: 1s 240 | - uart.write: "setUartOutput 2 0" 241 | - delay: 1s 242 | - uart.write: "saveConfig" 243 | - delay: 3s 244 | - switch.turn_on: mmwave_sensor -------------------------------------------------------------------------------- /everything-presence-one-st-sen0609.yaml: -------------------------------------------------------------------------------- 1 | substitutions: 2 | name: "everything-presence-st" 3 | room: "" 4 | friendly_name: "Everything Presence One ST" 5 | project_name: "Everything Smart Technology.Everything Presence One" 6 | project_version: "1.2.10s" 7 | temperature_offset: "-3" 8 | humidity_offset: "5" 9 | temperature_update_interval: "60s" 10 | illuminance_update_interval: "30s" 11 | pir_delay_off: "10s" 12 | occupancy_delay_off: "15s" 13 | hidden_ssid: "false" 14 | factory_reset_disabled: "true" 15 | uart_target_output_disabled: "true" 16 | uart_presence_output_disabled: "true" 17 | 18 | esphome: 19 | name: "${name}" 20 | name_add_mac_suffix: true 21 | project: 22 | name: "${project_name}" 23 | version: "${project_version}" 24 | on_boot: 25 | priority: -100 26 | then: 27 | - uart.write: "sensorStart" 28 | 29 | esp32: 30 | board: esp32dev 31 | 32 | logger: 33 | 34 | ota: 35 | - platform: esphome 36 | 37 | web_server: 38 | 39 | wifi: 40 | fast_connect: ${hidden_ssid} 41 | ap: {} 42 | 43 | captive_portal: 44 | 45 | improv_serial: 46 | 47 | light: 48 | - platform: status_led 49 | name: "ESP32 Status LED" 50 | pin: GPIO32 51 | entity_category: config 52 | 53 | i2c: 54 | sda: 26 55 | scl: 25 56 | scan: true 57 | 58 | sensor: 59 | - platform: shtcx 60 | temperature: 61 | name: "${room} Temperature" 62 | filters: 63 | offset: ${temperature_offset} 64 | humidity: 65 | name: "${room} Humidity" 66 | filters: 67 | offset: ${humidity_offset} 68 | address: 0x70 69 | update_interval: ${temperature_update_interval} 70 | - platform: bh1750 71 | name: "${room} Illuminance" 72 | address: 0x23 73 | update_interval: ${illuminance_update_interval} 74 | filters: 75 | - calibrate_linear: 76 | method: exact 77 | datapoints: 78 | - 0.3 -> 0.3 79 | - 0.9 -> 1.7 80 | - 1.2 -> 3.6 81 | - 3.2 -> 6.9 82 | - 5.1 -> 10.2 83 | - 6.8 -> 27.1 84 | - 7.0 -> 13.5 85 | - 7.4 -> 28.2 86 | - 8.7 -> 21.7 87 | - 8.9 -> 17.1 88 | - 10.9 -> 20.4 89 | - 12.8 -> 23.5 90 | - 14.5 -> 31.2 91 | - 14.9 -> 26.7 92 | - 16.8 -> 41.1 93 | - 16.9 -> 30.2 94 | - 18.8 -> 33.4 95 | - 19.1 -> 35.8 96 | - 20.7 -> 37.0 97 | - 24.3 -> 60.3 98 | - 26.1 -> 68.6 99 | - 26.7 -> 83.8 100 | - 30.2 -> 75.9 101 | - 32.6 -> 80.3 102 | - 34.6 -> 83.2 103 | - 40.4 -> 99.9 104 | - 48.0 -> 183.7 105 | - 48.3 -> 119.2 106 | - 55.5 -> 141.3 107 | - 55.8 -> 137.9 108 | - 63.8 -> 157.6 109 | - 71.5 -> 176.9 110 | - 79.8 -> 197.1 111 | - 84.3 -> 205.7 112 | - clamp: 113 | min_value: 0 114 | 115 | 116 | binary_sensor: 117 | - platform: gpio 118 | name: ${room} mmWave 119 | id: mmwave 120 | device_class: occupancy 121 | pin: 122 | number: GPIO17 123 | mode: INPUT_PULLDOWN 124 | - platform: gpio 125 | pin: 126 | number: 33 127 | mode: INPUT_PULLDOWN 128 | name: ${room} PIR 129 | id: pir_motion_sensor 130 | device_class: motion 131 | filters: 132 | - delayed_off: ${pir_delay_off} 133 | - platform: template 134 | name: ${room} Occupancy 135 | id: occupancy 136 | device_class: occupancy 137 | filters: 138 | - delayed_off: ${occupancy_delay_off} 139 | lambda: |- 140 | if ( id(mmwave).state or id(pir_motion_sensor).state) { 141 | return true; 142 | } 143 | else if (id(mmwave).state == 0 and id(pir_motion_sensor).state == 0) { 144 | return false; 145 | } 146 | else { 147 | return id(occupancy).state; 148 | } 149 | uart: 150 | id: uart_bus 151 | tx_pin: GPIO14 152 | rx_pin: GPIO13 153 | baud_rate: 9600 154 | debug: 155 | direction: BOTH 156 | dummy_receiver: true 157 | after: 158 | delimiter: "\n" 159 | sequence: 160 | - lambda: UARTDebug::log_string(direction, bytes); 161 | 162 | switch: 163 | - platform: template 164 | name: "mmWave Sensor" 165 | id: "mmwave_sensor" 166 | entity_category: config 167 | optimistic: true 168 | restore_mode: DISABLED 169 | turn_on_action: 170 | - uart.write: "sensorStart" 171 | - delay: 1s 172 | turn_off_action: 173 | - uart.write: "sensorStop" 174 | - delay: 1s 175 | 176 | - platform: template 177 | name: "mmWave LED" 178 | id: "mmwave_led" 179 | entity_category: config 180 | optimistic: true 181 | restore_mode: DISABLED 182 | turn_on_action: 183 | - switch.turn_off: mmwave_sensor 184 | - delay: 1s 185 | - uart.write: "setLedMode 1 0" 186 | - delay: 1s 187 | - uart.write: "saveConfig" 188 | - delay: 3s 189 | - switch.turn_on: mmwave_sensor 190 | turn_off_action: 191 | - switch.turn_off: mmwave_sensor 192 | - delay: 1s 193 | - uart.write: "setLedMode 1 1" 194 | - delay: 1s 195 | - uart.write: "saveConfig" 196 | - delay: 3s 197 | - switch.turn_on: mmwave_sensor 198 | 199 | - platform: template 200 | name: "uart_presence_output" 201 | id: "uart_presence_output" 202 | entity_category: config 203 | internal: ${uart_presence_output_disabled} 204 | optimistic: true 205 | turn_on_action: 206 | - switch.turn_off: mmwave_sensor 207 | - delay: 1s 208 | - uart.write: "setUartOutput 1 1" 209 | - delay: 1s 210 | - uart.write: "saveConfig" 211 | - delay: 3s 212 | - switch.turn_on: mmwave_sensor 213 | turn_off_action: 214 | - switch.turn_off: mmwave_sensor 215 | - delay: 1s 216 | - uart.write: "setUartOutput 1 0" 217 | - delay: 1s 218 | - uart.write: "saveConfig" 219 | - delay: 3s 220 | - switch.turn_on: mmwave_sensor 221 | 222 | - platform: template 223 | name: "uart_target_output" 224 | id: "uart_target_output" 225 | entity_category: config 226 | internal: ${uart_target_output_disabled} 227 | optimistic: true 228 | assumed_state: false 229 | turn_on_action: 230 | - switch.turn_off: mmwave_sensor 231 | - delay: 1s 232 | - uart.write: "setUartOutput 2 1 1 1" 233 | - delay: 1s 234 | - uart.write: "saveConfig" 235 | - delay: 3s 236 | - switch.turn_on: mmwave_sensor 237 | turn_off_action: 238 | - switch.turn_off: mmwave_sensor 239 | - delay: 1s 240 | - uart.write: "setUartOutput 2 0" 241 | - delay: 1s 242 | - uart.write: "saveConfig" 243 | - delay: 3s 244 | - switch.turn_on: mmwave_sensor 245 | 246 | number: 247 | - platform: template 248 | name: mmWave Min Distance 249 | id: mmwave_min_distance 250 | entity_category: config 251 | min_value: 0 252 | max_value: 2500 253 | initial_value: 0 254 | optimistic: true 255 | step: 10 256 | restore_value: true 257 | unit_of_measurement: cm 258 | mode: slider 259 | set_action: 260 | - switch.turn_off: mmwave_sensor 261 | - delay: 1s 262 | - uart.write: !lambda 263 | int min = id(mmwave_min_distance).state / 100; 264 | int max = id(mmwave_distance).state / 100; 265 | std::string ms = "setRange " + to_string(min) + " " + to_string(max); 266 | return std::vector(ms.begin(), ms.end()); 267 | - delay: 1s 268 | - uart.write: "saveConfig" 269 | - delay: 1s 270 | - switch.turn_on: mmwave_sensor 271 | - platform: template 272 | name: mmWave Distance 273 | id: mmwave_distance 274 | entity_category: config 275 | min_value: 0 276 | max_value: 2500 277 | initial_value: 300 278 | optimistic: true 279 | step: 10 280 | restore_value: true 281 | unit_of_measurement: cm 282 | mode: slider 283 | set_action: 284 | - switch.turn_off: mmwave_sensor 285 | - delay: 1s 286 | - uart.write: !lambda 287 | int min = id(mmwave_min_distance).state / 100; 288 | int max = id(mmwave_distance).state / 100; 289 | std::string ms = "setRange " + to_string(min) + " " + to_string(max); 290 | return std::vector(ms.begin(), ms.end()); 291 | - delay: 1s 292 | - uart.write: "saveConfig" 293 | - delay: 1s 294 | - switch.turn_on: mmwave_sensor 295 | 296 | - platform: template 297 | name: mmWave Off Latency 298 | id: mmwave_off_latency 299 | entity_category: config 300 | min_value: 1 301 | max_value: 60 302 | initial_value: 15 303 | optimistic: true 304 | step: 1 305 | restore_value: true 306 | unit_of_measurement: seconds 307 | mode: slider 308 | set_action: 309 | - switch.turn_off: mmwave_sensor 310 | - delay: 1s 311 | - uart.write: !lambda |- 312 | std::string mss = "setLatency " + to_string(id(mmwave_on_latency).state) + " " + to_string(id(mmwave_off_latency).state); 313 | return std::vector(mss.begin(), mss.end()); 314 | - delay: 1s 315 | - uart.write: "saveConfig" 316 | - delay: 1s 317 | - switch.turn_on: mmwave_sensor 318 | 319 | - platform: template 320 | name: mmWave On Latency 321 | id: mmwave_on_latency 322 | entity_category: config 323 | min_value: 0 324 | max_value: 60 325 | initial_value: 0 326 | optimistic: true 327 | step: 0.5 328 | restore_value: true 329 | unit_of_measurement: seconds 330 | mode: slider 331 | set_action: 332 | - switch.turn_off: mmwave_sensor 333 | - delay: 1s 334 | - uart.write: !lambda |- 335 | std::string mss = "setLatency " + to_string(id(mmwave_on_latency).state) + " " + to_string(id(mmwave_off_latency).state); 336 | return std::vector(mss.begin(), mss.end()); 337 | - delay: 1s 338 | - uart.write: "saveConfig" 339 | - delay: 1s 340 | - switch.turn_on: mmwave_sensor 341 | 342 | - platform: template 343 | id: mmwave_range_reduced 344 | name: mmWave Range Reduced 345 | icon: mdi:arrow-left-right 346 | entity_category: config 347 | min_value: 0 348 | max_value: 25 349 | initial_value: 0.8 350 | optimistic: true 351 | step: 0.1 352 | restore_value: true 353 | unit_of_measurement: m 354 | mode: slider 355 | set_action: 356 | - switch.turn_off: mmwave_sensor 357 | - delay: 1s 358 | - uart.write: !lambda 359 | std::string ms = "setRangeReduced " + to_string(x); 360 | return std::vector(ms.begin(), ms.end()); 361 | - delay: 1s 362 | - uart.write: "saveConfig" 363 | - delay: 1s 364 | - switch.turn_on: mmwave_sensor 365 | 366 | - platform: template 367 | name: mmWave Sensitivity 368 | id: mmwave_sensitivity 369 | entity_category: config 370 | min_value: 0 371 | max_value: 9 372 | initial_value: 7 373 | optimistic: true 374 | step: 1 375 | restore_value: true 376 | set_action: 377 | - switch.turn_off: mmwave_sensor 378 | - delay: 1s 379 | - uart.write: 380 | !lambda std::string mss = "setSensitivity " + to_string(id(mmwave_sensitivity).state) + " " + to_string(id(mmwave_trigger_sensitivity).state); 381 | return std::vector(mss.begin(), mss.end()); 382 | - delay: 1s 383 | - uart.write: "saveConfig" 384 | - delay: 1s 385 | - switch.turn_on: mmwave_sensor 386 | 387 | - platform: template 388 | name: mmWave Trigger Sensitivity 389 | icon: mdi:target-variant 390 | id: mmwave_trigger_sensitivity 391 | entity_category: config 392 | min_value: 0 393 | max_value: 9 394 | initial_value: 5 395 | optimistic: true 396 | step: 1 397 | restore_value: true 398 | set_action: 399 | - switch.turn_off: mmwave_sensor 400 | - delay: 1s 401 | - uart.write: 402 | !lambda std::string mss = "setSensitivity " + to_string(id(mmwave_sensitivity).state) + " " + to_string(id(mmwave_trigger_sensitivity).state); 403 | return std::vector(mss.begin(), mss.end()); 404 | - delay: 1s 405 | - uart.write: "saveConfig" 406 | - delay: 1s 407 | - switch.turn_on: mmwave_sensor 408 | 409 | button: 410 | - platform: restart 411 | name: Restart_internal 412 | id: restart_internal 413 | entity_category: config 414 | internal: true 415 | - platform: template 416 | name: "Restart mmWave Sensor" 417 | id: "restart_mmwave" 418 | entity_category: config 419 | internal: true 420 | on_press: 421 | - uart.write: "resetSystem" 422 | - platform: template 423 | name: Restart $name 424 | entity_category: config 425 | on_press: 426 | - button.press: restart_mmwave 427 | - button.press: restart_internal 428 | - platform: safe_mode 429 | internal: false 430 | name: $name Safe Mode 431 | entity_category: config 432 | - platform: template 433 | name: "Factory Reset mmWave" 434 | id: "factory_reset_mmwave" 435 | internal: ${factory_reset_disabled} 436 | entity_category: config 437 | on_press: 438 | - switch.turn_off: mmwave_sensor 439 | - delay: 1s 440 | - uart.write: "resetCfg" 441 | - delay: 3s 442 | - switch.turn_on: mmwave_sensor 443 | -------------------------------------------------------------------------------- /everything-presence-one-st.yaml: -------------------------------------------------------------------------------- 1 | substitutions: 2 | name: "everything-presence-st" 3 | room: "" 4 | friendly_name: "Everything Presence One ST" 5 | project_name: "Everything Smart Technology.Everything Presence One" 6 | project_version: "1.1.17s" 7 | temperature_offset: "-3" 8 | humidity_offset: "5" 9 | temperature_update_interval: "60s" 10 | illuminance_update_interval: "30s" 11 | pir_delay_off: "10s" 12 | occupancy_delay_off: "15s" 13 | hidden_ssid: "false" 14 | factory_reset_disabled: "true" 15 | uart_target_output_disabled: "true" 16 | uart_presence_output_disabled: "true" 17 | 18 | esphome: 19 | name: "${name}" 20 | name_add_mac_suffix: true 21 | project: 22 | name: "${project_name}" 23 | version: "${project_version}" 24 | on_boot: 25 | priority: -100 26 | then: 27 | - uart.write: "sensorStart" 28 | 29 | esp32: 30 | board: esp32dev 31 | 32 | logger: 33 | 34 | ota: 35 | - platform: esphome 36 | 37 | web_server: 38 | 39 | wifi: 40 | fast_connect: ${hidden_ssid} 41 | ap: {} 42 | 43 | captive_portal: 44 | 45 | improv_serial: 46 | 47 | esp32_improv: 48 | authorizer: none 49 | 50 | light: 51 | - platform: status_led 52 | name: "ESP32 Status LED" 53 | pin: GPIO32 54 | entity_category: config 55 | 56 | i2c: 57 | sda: 26 58 | scl: 25 59 | scan: true 60 | 61 | sensor: 62 | - platform: shtcx 63 | temperature: 64 | name: "${room} Temperature" 65 | filters: 66 | offset: ${temperature_offset} 67 | humidity: 68 | name: "${room} Humidity" 69 | filters: 70 | offset: ${humidity_offset} 71 | address: 0x70 72 | update_interval: ${temperature_update_interval} 73 | - platform: bh1750 74 | name: "${room} Illuminance" 75 | address: 0x23 76 | update_interval: ${illuminance_update_interval} 77 | filters: 78 | - calibrate_linear: 79 | method: exact 80 | datapoints: 81 | - 0.3 -> 0.3 82 | - 0.9 -> 1.7 83 | - 1.2 -> 3.6 84 | - 3.2 -> 6.9 85 | - 5.1 -> 10.2 86 | - 6.8 -> 27.1 87 | - 7.0 -> 13.5 88 | - 7.4 -> 28.2 89 | - 8.7 -> 21.7 90 | - 8.9 -> 17.1 91 | - 10.9 -> 20.4 92 | - 12.8 -> 23.5 93 | - 14.5 -> 31.2 94 | - 14.9 -> 26.7 95 | - 16.8 -> 41.1 96 | - 16.9 -> 30.2 97 | - 18.8 -> 33.4 98 | - 19.1 -> 35.8 99 | - 20.7 -> 37.0 100 | - 24.3 -> 60.3 101 | - 26.1 -> 68.6 102 | - 26.7 -> 83.8 103 | - 30.2 -> 75.9 104 | - 32.6 -> 80.3 105 | - 34.6 -> 83.2 106 | - 40.4 -> 99.9 107 | - 48.0 -> 183.7 108 | - 48.3 -> 119.2 109 | - 55.5 -> 141.3 110 | - 55.8 -> 137.9 111 | - 63.8 -> 157.6 112 | - 71.5 -> 176.9 113 | - 79.8 -> 197.1 114 | - 84.3 -> 205.7 115 | - clamp: 116 | min_value: 0 117 | 118 | 119 | binary_sensor: 120 | - platform: gpio 121 | name: ${room} mmWave 122 | id: mmwave 123 | device_class: occupancy 124 | pin: 125 | number: GPIO15 126 | mode: INPUT_PULLDOWN 127 | - platform: gpio 128 | pin: 129 | number: 33 130 | mode: INPUT_PULLDOWN 131 | name: ${room} PIR 132 | id: pir_motion_sensor 133 | device_class: motion 134 | filters: 135 | - delayed_off: ${pir_delay_off} 136 | - platform: template 137 | name: ${room} Occupancy 138 | id: occupancy 139 | device_class: occupancy 140 | filters: 141 | - delayed_off: ${occupancy_delay_off} 142 | lambda: |- 143 | if ( id(mmwave).state or id(pir_motion_sensor).state) { 144 | return true; 145 | } 146 | else if (id(mmwave).state == 0 and id(pir_motion_sensor).state == 0) { 147 | return false; 148 | } 149 | else { 150 | return id(occupancy).state; 151 | } 152 | uart: 153 | id: uart_bus 154 | tx_pin: GPIO13 155 | rx_pin: GPIO14 156 | baud_rate: 115200 157 | debug: 158 | direction: BOTH 159 | dummy_receiver: true 160 | after: 161 | delimiter: "\n" 162 | sequence: 163 | - lambda: UARTDebug::log_string(direction, bytes); 164 | 165 | switch: 166 | - platform: template 167 | name: "mmWave Sensor" 168 | id: "mmwave_sensor" 169 | entity_category: config 170 | optimistic: true 171 | restore_mode: DISABLED 172 | turn_on_action: 173 | - uart.write: "sensorStart" 174 | - delay: 1s 175 | turn_off_action: 176 | - uart.write: "sensorStop" 177 | - delay: 1s 178 | 179 | - platform: template 180 | name: "mmWave LED" 181 | id: "mmwave_led" 182 | entity_category: config 183 | optimistic: true 184 | restore_mode: DISABLED 185 | turn_on_action: 186 | - switch.turn_off: mmwave_sensor 187 | - delay: 1s 188 | - uart.write: "setLedMode 1 0" 189 | - delay: 1s 190 | - uart.write: "saveConfig" 191 | - delay: 3s 192 | - switch.turn_on: mmwave_sensor 193 | turn_off_action: 194 | - switch.turn_off: mmwave_sensor 195 | - delay: 1s 196 | - uart.write: "setLedMode 1 1" 197 | - delay: 1s 198 | - uart.write: "saveConfig" 199 | - delay: 3s 200 | - switch.turn_on: mmwave_sensor 201 | 202 | - platform: template 203 | name: "uart_presence_output" 204 | id: "uart_presence_output" 205 | entity_category: config 206 | internal: ${uart_presence_output_disabled} 207 | optimistic: true 208 | turn_on_action: 209 | - switch.turn_off: mmwave_sensor 210 | - delay: 1s 211 | - uart.write: "setUartOutput 1 1" 212 | - delay: 1s 213 | - uart.write: "saveConfig" 214 | - delay: 3s 215 | - switch.turn_on: mmwave_sensor 216 | turn_off_action: 217 | - switch.turn_off: mmwave_sensor 218 | - delay: 1s 219 | - uart.write: "setUartOutput 1 0" 220 | - delay: 1s 221 | - uart.write: "saveConfig" 222 | - delay: 3s 223 | - switch.turn_on: mmwave_sensor 224 | 225 | - platform: template 226 | name: "uart_target_output" 227 | id: "uart_target_output" 228 | entity_category: config 229 | internal: ${uart_target_output_disabled} 230 | optimistic: true 231 | assumed_state: false 232 | turn_on_action: 233 | - switch.turn_off: mmwave_sensor 234 | - delay: 1s 235 | - uart.write: "setUartOutput 2 1 1 1" 236 | - delay: 1s 237 | - uart.write: "saveConfig" 238 | - delay: 3s 239 | - switch.turn_on: mmwave_sensor 240 | turn_off_action: 241 | - switch.turn_off: mmwave_sensor 242 | - delay: 1s 243 | - uart.write: "setUartOutput 2 0" 244 | - delay: 1s 245 | - uart.write: "saveConfig" 246 | - delay: 3s 247 | - switch.turn_on: mmwave_sensor 248 | 249 | number: 250 | - platform: template 251 | name: mmWave Distance 252 | id: mmwave_distance 253 | entity_category: config 254 | min_value: 0 255 | max_value: 800 256 | initial_value: 315 257 | optimistic: true 258 | step: 15 259 | restore_value: true 260 | unit_of_measurement: cm 261 | mode: slider 262 | set_action: 263 | - switch.turn_off: mmwave_sensor 264 | - delay: 1s 265 | - uart.write: !lambda int cm = (int)ceil(x / 15.0); 266 | std::string cms = "detRangeCfg -1 0 " + to_string(cm); 267 | return std::vector(cms.begin(), cms.end()); 268 | - delay: 1s 269 | - uart.write: "saveCfg 0x45670123 0xCDEF89AB 0x956128C6 0xDF54AC89" 270 | - delay: 1s 271 | - switch.turn_on: mmwave_sensor 272 | 273 | - platform: template 274 | name: mmWave Off Latency 275 | id: mmwave_off_latency 276 | entity_category: config 277 | min_value: 1 278 | max_value: 60 279 | initial_value: 15 280 | optimistic: true 281 | step: 1 282 | restore_value: true 283 | unit_of_measurement: seconds 284 | mode: slider 285 | set_action: 286 | - switch.turn_off: mmwave_sensor 287 | - delay: 1s 288 | - uart.write: !lambda |- 289 | std::string mss = "setLatency " + to_string(id(mmwave_on_latency).state) + " " + to_string(id(mmwave_off_latency).state); 290 | return std::vector(mss.begin(), mss.end()); 291 | - delay: 1s 292 | - uart.write: "saveCfg 0x45670123 0xCDEF89AB 0x956128C6 0xDF54AC89" 293 | - delay: 1s 294 | - switch.turn_on: mmwave_sensor 295 | 296 | - platform: template 297 | name: mmWave On Latency 298 | id: mmwave_on_latency 299 | entity_category: config 300 | min_value: 0 301 | max_value: 60 302 | initial_value: 0 303 | optimistic: true 304 | step: 0.5 305 | restore_value: true 306 | unit_of_measurement: seconds 307 | mode: slider 308 | set_action: 309 | - switch.turn_off: mmwave_sensor 310 | - delay: 1s 311 | - uart.write: !lambda |- 312 | std::string mss = "setLatency " + to_string(id(mmwave_on_latency).state) + " " + to_string(id(mmwave_off_latency).state); 313 | return std::vector(mss.begin(), mss.end()); 314 | - delay: 1s 315 | - uart.write: "saveCfg 0x45670123 0xCDEF89AB 0x956128C6 0xDF54AC89" 316 | - delay: 1s 317 | - switch.turn_on: mmwave_sensor 318 | 319 | - platform: template 320 | name: mmWave Sensitivity 321 | id: mmwave_sensitivity 322 | entity_category: config 323 | min_value: 0 324 | max_value: 9 325 | initial_value: 7 326 | optimistic: true 327 | step: 1 328 | restore_value: true 329 | set_action: 330 | - switch.turn_off: mmwave_sensor 331 | - delay: 1s 332 | - uart.write: 333 | !lambda std::string mss = "setSensitivity " + to_string((int)x); 334 | return std::vector(mss.begin(), mss.end()); 335 | - delay: 1s 336 | - uart.write: "saveConfig" 337 | - delay: 1s 338 | - switch.turn_on: mmwave_sensor 339 | 340 | button: 341 | - platform: restart 342 | name: Restart_internal 343 | id: restart_internal 344 | entity_category: config 345 | internal: true 346 | - platform: template 347 | name: "Restart mmWave Sensor" 348 | id: "restart_mmwave" 349 | entity_category: config 350 | internal: true 351 | on_press: 352 | - uart.write: "resetSystem" 353 | - platform: template 354 | name: Restart $name 355 | entity_category: config 356 | on_press: 357 | - button.press: restart_mmwave 358 | - button.press: restart_internal 359 | - platform: safe_mode 360 | internal: false 361 | name: $name Safe Mode 362 | entity_category: config 363 | - platform: template 364 | name: "Factory Reset mmWave" 365 | id: "factory_reset_mmwave" 366 | internal: ${factory_reset_disabled} 367 | entity_category: config 368 | on_press: 369 | - switch.turn_off: mmwave_sensor 370 | - delay: 1s 371 | - uart.write: "resetCfg" 372 | - delay: 3s 373 | - switch.turn_on: mmwave_sensor 374 | -------------------------------------------------------------------------------- /everything-presence-one.yaml: -------------------------------------------------------------------------------- 1 | substitutions: 2 | name: "everything-presence-one" 3 | friendly_name: "Everything Presence One" 4 | project_name: "Everything Smart Technology.Everything Presence One" 5 | project_version: "1.2.10" 6 | temperature_offset: "-3" 7 | humidity_offset: "5" 8 | temperature_update_interval: "60s" 9 | illuminance_update_interval: "2s" 10 | hidden_ssid: "false" 11 | factory_reset_disabled: "true" 12 | uart_target_output_disabled: "true" 13 | uart_presence_output_disabled: "true" 14 | log_level: "ERROR" 15 | 16 | update: 17 | - platform: http_request 18 | id: update_http_request 19 | name: Everything Presence One Firmware 20 | source: https://everythingsmarthome.github.io/everything-presence-one/everything-presence-one-ha-sen0395-nomodule-noble-rev1-5-stable-manifest.json 21 | disabled_by_default: true 22 | 23 | dashboard_import: 24 | package_import_url: github://everythingsmarthome/everything-presence-one/everything-presence-one.yaml@main 25 | import_full_config: false 26 | 27 | packages: 28 | device_base: !include common/everything-presence-one-base.yaml 29 | device_version: !include common/everything-presence-one-sen0395-stable.yaml 30 | sen0395_base: !include common/sen0395-common.yaml -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Everything Presence One 6 | 10 | 11 | 12 | 13 | 14 | 18 | 19 | 23 | 124 | 128 | 129 | 130 |
131 | Web installer for the Everything Presence One board. 137 |

Everything Presence One ESPHome Installer

138 |

139 |

140 | This site installs the latest 141 | ESPHome firmware on the Everything 142 | Presence One board for direct integration with 143 | Home Assistant. 144 |

145 |

146 | Hit the connect button to install the latest ESPHome firmware on you're 147 | Everything Presence One board. No programming or other software 148 | required. 149 |

150 | 151 |
152 | 165 |
166 | 167 |

168 | 169 |

170 | 171 |

User Guide

172 |

Unboxing and Preperation

173 |

You will need 4 items to build your EP1 with this guide:

174 |
    175 |
  • Everything Presence One Board
  • 176 |
  • Panasonic PIR
  • 177 |
  • DFRobot mmWave Sensor
  • 178 |
  • 3D Printed Case
  • 179 |
180 | 181 |

Assembly

182 |

183 | First you will want to grab all 5 pieces of the 3D printed case - front, 184 | back, stand, ball socket and locking ring: 185 |

186 | Placeholder image 187 |

188 | Start by taking the back, and inserting the ball socket into it from the 189 | front and use the locking ring to tighten it down: 190 |

191 | Web installer for the Everything Presence One board. 196 |

197 | Note that it will be pretty tight, but will still rotate if enough 198 | pressure is applied - this is intentional to allow for setting the 199 | position easier. Note also that the locking ring has a slight grove on 200 | one side, make sure this faces the back of the case: 201 |

202 | Web installer for the Everything Presence One board. 207 |

Next, grab the EP1 base board and place it into the back of the case. Press down in all 4 corners and it will click into place securely.

208 | 209 | 215 |
216 | 237 | 238 | 239 | -------------------------------------------------------------------------------- /static/Advanced Features/advanced-features.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Advanced Features 4 | nav_order: 11 5 | has_children: true 6 | permalink: /advanced-features 7 | --- 8 | 9 | # Advanced Features 10 | 11 | The Everything Presence One has some features and settings that you can change to make it more suitable for your environment. 12 | {: .fs-6 .fw-300 } 13 | -------------------------------------------------------------------------------- /static/Advanced Features/editing-esphome-code.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Editing ESPHome Code 4 | parent: Advanced Features 5 | nav_order: 2 6 | --- 7 | 8 | # Editing ESPHome Code 9 | 10 | {: .no_toc } 11 | 12 | ## Importing the ESPHome code to your dashboard 13 | 14 | If you want to make some more advanced changes to the EP1, you first need to add the ESPHome code to your dashboard. 15 | 16 | First make sure that the EP1 has been added to Home Assistant, see [Connecting Home Assistant](https://everythingsmarthome.github.io/everything-presence-one/Home%20Assistant/connecting-home-assistant.html) if you have not already done that. 17 | 18 | Then, make sure that the ESPHome Add-on [is installed](https://esphome.io/guides/getting_started_hassio.html) 19 | 20 | 33 | -------------------------------------------------------------------------------- /static/Home Assistant/connecting-home-assistant.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Connecting Home Assistant 4 | nav_order: 1 5 | parent: Home Assistant 6 | --- 7 | 8 | # Connecting Home Assistant 9 | 10 | {: .no_toc } 11 | 12 | The final step is to connect to Home Assistant! 13 | {: .fs-6 .fw-300 } 14 | 15 | ## Connecting to Home Assistant (Automatic method) 16 | 17 | For most people, Home Assistant will automatically discover and add the EP1 immediately, thanks to ESPHome's mDNS discovery. 18 | 19 | To add it to Home Assistant, simply head to Settings > Devices and Services and you should see the Everything Presence One has been automatically discovered and is displayed - simply hit the configure button to add it to Home Assistant and that's it! 20 | 21 | ![Connecting the EP1 to Home Assistant](https://everythingsmarthome.github.io/everything-presence-one/images/connecting-home-assistant-auto-1.png) 22 | ![Connecting the EP1 to Home Assistant](https://everythingsmarthome.github.io/everything-presence-one/images/connecting-home-assistant-auto-2.png) 23 | 24 | ## Connecting to Home Assistant (Manual method) 25 | 26 | If for some reason the Everything Presence One is not automatically discovered, or your network is not setup for mDNS you can add the EP1 manually to Home Assistant. 27 | 28 | You will need to first figure out what the IP address of your EP1 is by checking your routers web page: 29 | 30 | ![Find the IP address in your router](https://everythingsmarthome.github.io/everything-presence-one/images/connecting-home-assistant-router-ip-address.png) 31 | 32 | You can also use a program like [fing](https://www.fing.com) to discover network devices. 33 | 34 | Once you have the IP address, head over to Home Assistant and go to Settings > Devices and Services and click the add Integration button in the bottom right. 35 | 36 | ![Connecting the EP1 to Home Assistant](https://everythingsmarthome.github.io/everything-presence-one/images/connecting-home-assistant-manual-1.png) 37 | 38 | Search for ESPHome to add an ESPHome device, and then enter the IP address into the box: 39 | 40 | ![Connecting the EP1 to Home Assistant](https://everythingsmarthome.github.io/everything-presence-one/images/connecting-home-assistant-manual-2.png) 41 | 42 | Hit next and finish, and the EP1 is now connected to Home Assistant. 43 | 44 | ![Connecting the EP1 to Home Assistant](https://everythingsmarthome.github.io/everything-presence-one/images/connecting-home-assistant-manual-3.png) 45 | 46 | ## Next Steps 47 | 48 | Setup is now finished and you can go ahead and get automating the Everything Presence One! 🥳 49 | 50 | If you would like a bit more information about what each entity does inside of Home Assistant, check out the Entities Explained page. 51 | 52 | [Entities Explained](https://everythingsmarthome.github.io/everything-presence-one/Home%20Assistant/home-assistant-entities.html){: .btn .btn-blue } 53 | 54 | 67 | -------------------------------------------------------------------------------- /static/Home Assistant/home-assistant-entities.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Home Assistant Entities 4 | nav_order: 2 5 | parent: Home Assistant 6 | --- 7 | 8 | # Home Assistant Entities Explained 9 | 10 | {: .no_toc } 11 | 12 | What are all of these entities!? 13 | {: .fs-6 .fw-300 } 14 | 15 | ## Home Assistant Entities 16 | 17 | After adding the EP1 to Home Assistant, you may wonder which sensors you can use and what they do. 18 | 19 | To view all of the sensors and entities, click on the device from the ESPHome menu: 20 | 21 | ![Home Assistant Device menu](https://everythingsmarthome.github.io/everything-presence-one/images/home-assistant-devices.png) 22 | 23 | This will show you a dashboard of all of the sensors and controls inside of Home Assistant that you can use in your Automations: 24 | 25 | ![All Home Assistant Entities](https://everythingsmarthome.github.io/everything-presence-one/images/home-assistant-entities-overview.png) 26 | 27 | ### Temperature, Humidity and Illuminance 28 | 29 | Temperature is the current room temperature as measured by the on-board temperature sensor and is given in celsius. This sensor supports a configureable offset allowing you to adjust the reading. See the advanced section for how to do that. 30 | 31 | ![Home Assistant Temperature Entity](https://everythingsmarthome.github.io/everything-presence-one/images/home-assistant-entities-temperature.jpg) 32 | 33 | Humidity gives a humidity sensor reading in percent for the room: 34 | 35 | ![Home Assistant Humidity Entity](https://everythingsmarthome.github.io/everything-presence-one/images/home-assistant-entities-humidity.jpg) 36 | 37 | Illuminance is measured from the on-board light sensor in lux. There are slots at the side of the EP1 case that allow for light to pass-through and be measured, so make sure not to obstruct these for the best readings. 38 | 39 | ![Home Assistant Illuminance Entity](https://everythingsmarthome.github.io/everything-presence-one/images/home-assistant-entities-illuminance.jpg) 40 | 41 | Temperature, Humidity and Illuminance all support configurable offsets using the UI (if you don't see these entities, make sure to update to v1.16 or higher) which allows you to offset the reported value on the fly to calibrate each of these sensors for your environment. You can do that with these highlighted controls under the configuration section: 42 | 43 | ![Home Assistant Offset Entities](https://everythingsmarthome.github.io/everything-presence-one/images/home-assistant-entities-offset-controls.png) 44 | 45 | ### mmWave, PIR and Occupancy 46 | 47 | You will find a sensor called mmWave - this is the output from the mmWave sensor directly and indicates if movement is detected. The mmWave sensor has a configurable offset for the "Blind time" which we will cover below. The default blind time is 12.5 seconds, which is basically how long the sensor takes to go to an "Off" or "clear" state after motion has stopped being detected: 48 | 49 | ![Home Assistant mmWave Sensor Entity](https://everythingsmarthome.github.io/everything-presence-one/images/home-assistant-entities-mmwave.jpg) 50 | 51 | The PIR sensor indicates if motion was detected or not. It also has a user configurable timeout period, which by default is 10 seconds. This means that it will take 10 seconds after the last motion for the PIR sensor to go back to the "Off" or "Clear" state: 52 | 53 | ![Home Assistant PIR Sensor Entity](https://everythingsmarthome.github.io/everything-presence-one/images/home-assistant-entities-pir.jpg) 54 | 55 | Occupancy is a combination of the mmWave and PIR sensor. If **either** the mmWave or PIR sensor detects motion, Occupancy will be "On" or "Detected". Both the mmWave and PIR sensor must be clear before Occupancy will change to the "Off" or "Clear" state. This is the sensor that you will generally want to use in your Automations. This also has a user configurable timeout period. 56 | 57 | ### Offsets for mmWave, PIR and Occupancy 58 | 59 | All 3 sensors have configurable timeout periods that can be set, which allows you to fine-tune for your environment. 1 of these can be configured directly from the Home Assistant UI, and the other 2 require adjustments to the ESPHome code (ESPHome doesn't support UI sliders for these yet). 60 | 61 | The mmWave sensor has an adjustable timeout period inside of Home Assistant using the mmWave Off Latency control. The value is measured in ms and the default is for 12500ms (12.5 seconds). I generally wouldn't recommend setting this below 10s. 62 | 63 | ![Home Assistant mmWave Offset Entity](https://everythingsmarthome.github.io/everything-presence-one/images/home-assistant-entities-mmwave-offset.jpg) 64 | 65 | On Latency configures a delay of how long motion must be detected for before the sensor will change to "detected". It's also really useful for filtering out detections from unwanted objects - see the [tuning guide](https://everythingsmarthome.github.io/everything-presence-one/tuning.html) for more information. 66 | 67 | The PIR and Occupancy sensor off-time needs to be configured with ESPHome code due to ESPHome not supporting dynamic values for these in code. See the Advanced page for how to edit the ESPHome code. 68 | 69 | ### Distance and Sensitivity (SEN0395) 70 | 71 | The SEN0395 mmWave sensor has a configurable Sensitivity and Distance control inside of Home Assistant. 72 | 73 | Sensitivity allows you to adjust how sensitive the mmWave sensor reacts to movement - this can be useful to configure in rooms where slight movements by something not Human triggers the device (this cannot filter out non Human objects like fans or pets) - see the [tuning guide](https://everythingsmarthome.github.io/everything-presence-one/tuning.html) for more information: 74 | 75 | ![Home Assistant mmWave sensitivity Entity](https://everythingsmarthome.github.io/everything-presence-one/images/home-assistant-entities-mmwave-sensitivity.jpg) 76 | 77 | Distance allows you to adjust the max range of the sensor, up to a maximum of 8m. Please note that 8m is the max range, but doesn't nessecarily mean the sensor is capable of detecting the tiniest of movements at 8m - placement is still important for the best results - see the [tuning guide](https://everythingsmarthome.github.io/everything-presence-one/tuning.html) for more information: 78 | 79 | ![Home Assistant mmWave distance Entity](https://everythingsmarthome.github.io/everything-presence-one/images/home-assistant-entities-mmwave-distance.jpg) 80 | 81 | ### Distance and Sensitivity (SEN0609) 82 | 83 | The newer SEN0609 mmWave sensor has 2 individual controls for sensitivity and 3 individual controls for distance inside of Home Assistant. 84 | 85 | Sensitivity allows you to adjust how sensitive the mmWave sensor reacts to movement - this can be useful to configure in rooms where slight movements by something not Human triggers the device (this cannot filter out non Human objects like fans or pets) - see the [tuning guide](https://everythingsmarthome.github.io/everything-presence-one/tuning.html) for more information. 86 | 87 | The SEN0609 has 2 controls for sensitivity - Sustained Sensitivity and Trigger Sensitivity: 88 | 89 | ![Home Assistant mmWave sensitivity Entity](https://everythingsmarthome.github.io/everything-presence-one/images/home-assistant-entities-sen0609-mmwave-sensitivity.png) 90 | 91 | Trigger Sensitivity allows you to configure the sensitivity level to do the initial trigger of the sensor (to make it go from clear to detected). This is on a scale of 1-9, where 1 is the lowest sensitivity and 9 is the highest. 92 | 93 | Sustained Sensitivity allows you to configure the sensitivity level AFTER the initial trigger, and is the sensitivity level to keep the sensor detecting. This is on a scale of 1-9, where 1 is the lowest sensitivity and 9 is the highest. 94 | 95 | One scenario this can be useful, would be to prevent a small movement triggering the sensor (say a curtain moving in the wind) when the room is unoccupied, but allowing enough sensitivty to trigger when someone enters the room and then keep detecting them sitting down or sleeping with very little movement. 96 | 97 | {: .important } 98 | You MUST press the "Set Sensitivity" button in order to send the senstivity settings to the sensor after changing the sliders. No change will take effect without pressing this. 99 | 100 | Distance allows you to adjust the max range of the sensor, up to a maximum of 25m. Please note that 25m is the max range, but doesn't nessecarily mean the sensor is capable of detecting the tiniest of movements at 25m - placement is still important for the best results - see the [tuning guide](https://everythingsmarthome.github.io/everything-presence-one/tuning.html) for more information. 101 | 102 | The SEN0609 has 3 controls for distance too - minimum Distance, maximum distance and range reduced: 103 | 104 | ![Home Assistant mmWave distance Entity](https://everythingsmarthome.github.io/everything-presence-one/images/home-assistant-entities-sen0609-mmwave-distance.png) 105 | 106 | Minimum and maximum are pretty self explanatory - they allow you to set the operating distance for the mmwave sensor, so that only movement that is within these two values will be considered occupied. For example, if you have the minimum value as 3m, and the maximum value as 6m, then only movement that occurs between 3m and 6m will cause the sensor to trigger. 107 | 108 | Range reduced is a new addition that let's you set a smaller distance that will be used only for triggering the sensor. The value is subtracted from the maximum distance. For example, if you have a maximum distance of 10m and a range reduced of 1m, the sensor will only trigger when a target is within 0-9m (10m - 1m = 9m). Once a target is detected, it will continued to be detected until they go over the 10m mark at which point the sensor will go back to unoccupied. 109 | 110 | This can be useful for setting a smaller trigger range to help with false positives that might occur at the edge of the sensors detection range. 111 | 112 | {: .important } 113 | You MUST press the "Set Distance" button in order to send the senstivity settings to the sensor after changing the sliders. No change will take effect without pressing this. 114 | 115 | ### Distance (Beta - SEN0395 only) 116 | 117 | If you have updated to the beta firmware 1.23b, you have access to target tracking and distance zones. 118 | 119 | Distance on the beta firmware works differently than was previously implemented. Previously, distance was set using a single slider which would set the maximum distance the sensor would monitor, meaning the sensor would monitor anywhere from 0cm up to the value you specified in the distance slider (see distance section above). 120 | 121 | With 1.23b, distance zones have now been added. This allows you to set up to 4 different zones to track, which is extremely useful if you want to exclude an area, for example if you have a fan that triggers the sensor, you could use distance zones to exclude the fan. 122 | 123 | Distance zones work by defining a start and an end distance for each zone. By setting a start distance and an end distance, the sensor will only trigger for movement within that range. The distance refers to the physical distance from the sensor - e.g if you set zone 1 to start at 105cm and the end distance to be 315cm, the sensor will only trigger if there is movement between that range. Up to a maximum of 4 zones is supported. 124 | 125 | By default, only one zone is an enabled entity in Home Assistant, so as to not overwhelm new users: 126 | 127 | ![Home Assistant Distance Zone 1 Entities](https://everythingsmarthome.github.io/everything-presence-one/images/home-assistant-entities-distance-zone-1.jpg) 128 | 129 | If you would like to enable zones 2, 3 and 4, simply click on the entities not shown message: 130 | 131 | ![Home Assistant Distance Zone Entities](https://everythingsmarthome.github.io/everything-presence-one/images/home-assistant-entities-distance-entities-not-shown.png) 132 | 133 | To reveal entities that are disabled by default: 134 | 135 | ![Home Assistant Disabled Entities](https://everythingsmarthome.github.io/everything-presence-one/images/home-assistant-entities-disabled-reveal.png) 136 | 137 | Click the entity you want to enable, then click the settings icon in the right hand corner of the popup. Then enable the entity: 138 | 139 | ![Home Assistant Enabling Entities](https://everythingsmarthome.github.io/everything-presence-one/images/home-assistant-entities-enabling-toggle.png) 140 | 141 | Wait 30 seconds, refresh the page and the entity is now enabled. Repeat this for each entity you want to enable (start and end zone for example). 142 | 143 | To setup distance zones, set a start and an end distance for each zone you want to monitor. If you do not want to use one of the zones, leave both the start and the end point set to zero. This is important! 144 | 145 | This is very much in beta, so some rules to keep in mind: 146 | 147 | * Zones cannot overlap each other 148 | * The distance of a zone must be a greater distance than the previous zone. I.e, Zone 2 must not have a lower start and end distance than Zone 1. 149 | * If you don't want to use one or multiple zones, leave the start and end distance set to 0 and it will not be included. 150 | * If you want to replicate the previous functionality, i.e you want the sensor to measure everything from 0cm to 510cm, set zone 1 start to 0cm and the end to 510cm. Then set zone 2, zone 3 and zone 4 start and end point to 0. 151 | 152 | You MUST then hit the "set distance" button in the UI for these zones to take effect. Previously, the updated value for distance would be set to the sensor immediately as soon as you changed the slider. This is no longer the case and the set distance button must be used before new values will be sent to the sensor. This is because updating the sliders immediately could cause the sensor to get confused if the user hasn't quite finished setting up the zones yet. 153 | 154 | If you make a mistake configuring the zones, the sensor won't accept the value and nothing will change, but the UI sliders will indicate it has, making it difficult to know. This is a beta/advanced feature so I do want to improve the feedback from the sensor for this to make it more obvious if something didn't work, but there is a text sensor that will update to show you if the zones were sent correctly or not: 155 | 156 | ![Home Assistant Enabling Entities](https://everythingsmarthome.github.io/everything-presence-one/images/home-assistant-entities-distance-status.png) 157 | 158 | The numbers in the error message are "segments" of the distance set above. The first number is zone 1 start, second number is zone 1 end, third number is zone 2 start, fourth is zone 2 end and so on. These numbers can be multiplied by 15 to get the value in cm, corresponding to what you set in the sliders. Confusing/complicated I know, working on it. 159 | 160 | ### Turning off LEDs 161 | 162 | The EP1 has two LED's that will be visible, both of which can be turned off. 163 | 164 | The mmWave LED disables the LED on the mmWave sensor itself which flashes when in use and the ESP32 Status LED disables the LED on the EP1 board: 165 | 166 | ![Home Assistant LED Controls](https://everythingsmarthome.github.io/everything-presence-one/images/home-assistant-entities-led-controls.jpg) 167 | 168 | 181 | -------------------------------------------------------------------------------- /static/Home Assistant/home-assistant.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Home Assistant 4 | nav_order: 7 5 | has_children: true 6 | permalink: /home-assistant 7 | --- 8 | 9 | # Home Assistant 10 | 11 | If you selected the Home Assistant firmware in the [Updating and Connecting to WiFi](https://everythingsmarthome.github.io/everything-presence-one/updating.html), then this is the section for you! It will help you to connect your EP1 to Home Assistant, and show you the entities available. 12 | 13 | {: .fs-6 .fw-300 } 14 | -------------------------------------------------------------------------------- /static/SmartThings/connecting-smartthings.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Connecting to SmartThings 4 | nav_order: 2 5 | parent: Samsung SmartThings 6 | --- 7 | 8 | # Connecting to SmartThings 9 | 10 | {: .no_toc } 11 | 12 | Next, we can connect the Everything Presence One to SmartThings! 13 | {: .fs-6 .fw-300 } 14 | 15 | ## Driver installation 16 | 17 | {: .note } 18 | This page is a work in progress, the rough steps are outlined below. 19 | 20 | First open up the SmartThings app, head over to the devices menu and hit the plus button to add a new device: 21 | 22 | ![SmartThings Connecting EP1](https://everythingsmarthome.github.io/everything-presence-one/images/smartthings-connect-ep1-1.jpg) 23 | 24 | Next hit Scan for Nearby Devices: 25 | 26 | ![SmartThings Connecting EP1](https://everythingsmarthome.github.io/everything-presence-one/images/smartthings-connect-ep1-2.jpg) 27 | 28 | After a few seconds, the SmartThings app will automagically detect the EP1 on the network and add it to your hub. This uses mDNS, which should work by default on most networks, unless you have disabled it or have a more advanced network setup - read on if it isn't auto discovered: 29 | 30 | ![SmartThings Connecting EP1](https://everythingsmarthome.github.io/everything-presence-one/images/smartthings-connect-ep1-3.jpg) 31 | 32 | If you want to rename the device to a more suitable name, hit the rename button and change the name: 33 | 34 | ![SmartThings Connecting EP1](https://everythingsmarthome.github.io/everything-presence-one/images/smartthings-connect-ep1-4.jpg) 35 | 36 | Go back to the devices menu and you'll see your new EP1 device is added, tap it to view its sensors and settings: 37 | 38 | ![SmartThings Connecting EP1](https://everythingsmarthome.github.io/everything-presence-one/images/smartthings-connect-ep1-5.jpg) 39 | ![SmartThings Connecting EP1](https://everythingsmarthome.github.io/everything-presence-one/images/smartthings-connect-ep1-6.jpg) 40 | 41 | ## Next Steps 42 | 43 | EP1 is now fully connected to Samsung SmartThings! Next you can take a look at the sensors and settings that are available: 44 | 45 | [SmartThings Sensors and Settings](https://everythingsmarthome.github.io/everything-presence-one/SmartThings/smartthings-sensors.html){: .btn .btn-blue } -------------------------------------------------------------------------------- /static/SmartThings/smartthings-driver.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Adding the Samsung SmartThings Driver 4 | nav_order: 1 5 | parent: Samsung SmartThings 6 | --- 7 | 8 | # Adding the Samsung SmartThings Driver 9 | 10 | {: .no_toc } 11 | 12 | Next, we need to add the Samsung SmartThings Edge Driver 13 | {: .fs-6 .fw-300 } 14 | 15 | ## Driver installation 16 | 17 | The Samsung SmartThings Edge driver is in Beta currently which means we need to add it to our SmartThings account. 18 | 19 | First, [click this link](https://bestow-regional.api.smartthings.com/invite/adMKdn651029) to accept the invitation to the Everything Presence One driver. 20 | 21 | Make sure you are logged into your Samsung account. 22 | 23 | ![SmartThings Accept Driver](https://everythingsmarthome.github.io/everything-presence-one/images/smartthings-driver-accept-terms-1.png) 24 | 25 | Hit the Accept button to add the EP1 Driver to your account and then hit the Enroll button: 26 | 27 | ![SmartThings Accept Driver](https://everythingsmarthome.github.io/everything-presence-one/images/smartthings-driver-accept-terms-2.png) 28 | 29 | Then hit the available drivers button: 30 | 31 | ![SmartThings Accept Driver](https://everythingsmarthome.github.io/everything-presence-one/images/smartthings-driver-accept-terms-3.png) 32 | 33 | And finally hit the install button: 34 | 35 | ![SmartThings Accept Driver](https://everythingsmarthome.github.io/everything-presence-one/images/smartthings-driver-accept-terms-4.png) 36 | 37 | {: .note } 38 | It may take up to 24 hours for the driver to appear in your SmartThings Hub. This is a feature of the SmartThings Platform. 39 | 40 | ## Next Steps 41 | 42 | Now the SmartThings driver has been installed, we can now add the EP1 to SmartThings! 43 | 44 | [Connecting to SmartThings](http://everythingsmarthome.github.io/everything-presence-one/connecting-smartthings.html){: .btn .btn-blue } -------------------------------------------------------------------------------- /static/SmartThings/smartthings-sensors.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Sensors 4 | nav_order: 3 5 | parent: Samsung SmartThings 6 | --- 7 | 8 | # SmartThings Sensors Available 9 | 10 | {: .no_toc } 11 | 12 | What are all of these sensors!? 13 | {: .fs-6 .fw-300 } 14 | 15 | ### Temperature, Humidity and Illuminance 16 | 17 | Temperature is the current room temperature as measured by the on-board temperature sensor and is given in celsius. This sensor supports a configureable offset allowing you to adjust the reading. See the settings section below for how to do that. 18 | 19 | Humidity gives a humidity sensor reading in percent for the room: 20 | 21 | ![SmartThings Temperature and Humidity](https://everythingsmarthome.github.io/everything-presence-one/images/smartthings-sensors-temp.jpg) 22 | 23 | Illuminance is measured from the on-board light sensor in lux. There are slots at the side of the EP1 case that allow for light to pass-through and be measured, so make sure not to obstruct these for the best readings. 24 | 25 | ![SmartThings Light Sensor](https://everythingsmarthome.github.io/everything-presence-one/images/smartthings-sensors-light.jpg) 26 | 27 | ### mmWave, PIR and Occupancy 28 | 29 | ![SmartThings Presence and Motion Sensors](https://everythingsmarthome.github.io/everything-presence-one/images/smartthings-sensors-presence.jpg) 30 | 31 | You will find a sensor called mmWave - this is the output from the mmWave sensor directly and indicates if movement is detected. The mmWave sensor has a configurable offset for the "Blind time" which we will cover below. The default blind time is 12.5 seconds, which is basically how long the sensor takes to go to an "Off" or "clear" state after motion has stopped being detected: 32 | 33 | The sensor called "Motion Sensor" is the PIR. The PIR sensor indicates if motion was detected or not. It also has a timeout period, which by default is 10 seconds. This means that it will take 10 seconds after the last motion for the PIR sensor to go back to the "Off" or "Clear" state. 34 | 35 | The sensor called "Presence Sensor" is a combination of the mmWave and PIR sensor. If **either** the mmWave or PIR sensor detects motion, Occupancy will be "On" or "Detected". Both the mmWave and PIR sensor must be clear before Occupancy will change to the "Off" or "Clear" state. This is the sensor that you will generally want to use in your Automations. 36 | 37 | ## Settings 38 | 39 | Click the three dots in the top right corner of the sensor from within the SmartThings app and select Settings: 40 | 41 | ![SmartThings Settings](https://everythingsmarthome.github.io/everything-presence-one/images/smartthings-sensors-settings.jpg) 42 | 43 | ### Offsets for mmWave 44 | 45 | The mmWave sensor has 2 configurable time periods - "On Latency" and "Off Latency". 46 | 47 | On Latency configures a delay of how long motion must be detected for before the sensor will change to "detected". It's also really useful for filtering out detections from unwanted objects - see the [tuning guide](https://everythingsmarthome.github.io/everything-presence-one/tuning.html) for more information. 48 | 49 | Off Latency configures a delay of how long the sensor will still on detected for after motion has stopped. I would generally recommending keeping this to at least 15 seconds. 50 | 51 | ### Distance and Sensitivity 52 | 53 | The mmWave sensor has a configurable Sensitivity and Distance control inside of SmartThings. 54 | 55 | Sensitivity allows you to adjust how sensitive the mmWave sensor reacts to movement - this can be useful to configure in rooms where slight movements by something not Human triggers the device (this cannot filter out non Human objects like fans or pets) - see the [tuning guide](https://everythingsmarthome.github.io/everything-presence-one/tuning.html) for more information. 56 | 57 | Distance allows you to adjust the max range of the sensor, up to a maximum of 8m. Please note that 8m is the max range, but doesn't nessecarily mean the sensor is capable of detecting the tiniest of movements at 8m - placement is still important for the best results - see the [tuning guide](https://everythingsmarthome.github.io/everything-presence-one/tuning.html) for more information. 58 | 59 | ### Turning off LEDs 60 | 61 | The EP1 has two LED's that will be visible, both of which can be turned off. 62 | 63 | The mmWave LED disables the LED on the mmWave sensor itself which flashes when in use and the LED disables the LED on the EP1 board itself. 64 | 65 | 78 | -------------------------------------------------------------------------------- /static/SmartThings/smartthings.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Samsung SmartThings 4 | nav_order: 8 5 | has_children: true 6 | permalink: /smartthings 7 | --- 8 | 9 | # Samsung SmartThings 10 | 11 | If you selected the SmartThings firmware in the [Updating and Connecting to WiFi](https://everythingsmarthome.github.io/everything-presence-one/updating.html), then this is the section for you! It will help you to connect your EP1 to Samsung SmartThings, and show you the sensors available. 12 | 13 | {: .fs-6 .fw-300 } 14 | -------------------------------------------------------------------------------- /static/_config.yml: -------------------------------------------------------------------------------- 1 | title: Everything Presence One Documentation 2 | description: Documentation for the Everything Presence One smart home sensor! 3 | remote_theme: just-the-docs/just-the-docs 4 | #theme: just-the-docs 5 | 6 | url: https://everythingsmarthome.github.io 7 | 8 | aux_links: 9 | Template Repository: https://github.com/just-the-docs/just-the-docs-template 10 | 11 | search_enabled: true 12 | search: 13 | # Split pages into sections that can be searched individually 14 | # Supports 1 - 6, default: 2 15 | heading_level: 2 16 | # Maximum amount of previews per search result 17 | # Default: 3 18 | previews: 2 19 | # Maximum amount of words to display before a matched word in the preview 20 | # Default: 5 21 | preview_words_before: 3 22 | # Maximum amount of words to display after a matched word in the preview 23 | # Default: 10 24 | preview_words_after: 3 25 | # Set the search token separator 26 | # Default: /[\s\-/]+/ 27 | # Example: enable support for hyphenated search words 28 | tokenizer_separator: /[\s/]+/ 29 | # Display the relative url in search results 30 | # Supports true (default) or false 31 | rel_url: true 32 | # Enable or disable the search button that appears in the bottom right corner of every page 33 | # Supports true or false (default) 34 | button: false 35 | 36 | # For copy button on code 37 | enable_copy_code_button: true 38 | 39 | # Enable or disable heading anchors 40 | heading_anchors: true 41 | 42 | # Aux links for the upper right navigation 43 | aux_links: 44 | "View on GitHub": 45 | - "https://github.com/EverythingSmartHome/everything-presence-one" 46 | 47 | # Makes Aux links open in a new tab. Default is false 48 | aux_links_new_tab: false 49 | 50 | # Footer content 51 | # appears at the bottom of every page's main content 52 | 53 | # Back to top link 54 | back_to_top: true 55 | back_to_top_text: "Back to top" 56 | 57 | footer_content: "" 58 | 59 | # Color scheme currently only supports "dark", "light"/nil (default), or a custom scheme that you define 60 | color_scheme: nil 61 | 62 | callouts_level: quiet # or loud 63 | callouts: 64 | highlight: 65 | color: yellow 66 | important: 67 | title: Important 68 | color: blue 69 | new: 70 | title: New 71 | color: green 72 | note: 73 | title: Note 74 | color: purple 75 | warning: 76 | title: Warning 77 | color: red 78 | -------------------------------------------------------------------------------- /static/_includes/header_custom.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /static/_sass/custom/custom.scss: -------------------------------------------------------------------------------- 1 | .hidden { 2 | display: none; 3 | } 4 | 5 | .container { 6 | width: 80%; 7 | margin: auto; 8 | overflow: hidden; 9 | padding: 20px; 10 | background: #fff; 11 | border-radius: 8px; 12 | box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); 13 | } 14 | h1, .question-prompt { 15 | text-align: left; 16 | font-size: 1.3em; 17 | font-weight: 500; 18 | } 19 | .types label { 20 | display: block; 21 | border: 1px solid #ddd; 22 | margin: 10px 0; 23 | padding: 10px; 24 | border-radius: 5px; 25 | background: #f9f9f9; 26 | cursor: pointer; 27 | } 28 | .types label:hover { 29 | background: #f0f0f0; 30 | } 31 | .types input { 32 | margin-right: 10px; 33 | } 34 | .description { 35 | font-size: 0.9em; 36 | } 37 | 38 | .option-content { 39 | display: flex; 40 | align-items: center; 41 | } 42 | 43 | .option-image { 44 | width: auto; 45 | height: 125px; 46 | margin-right: 10px; 47 | border-radius: 5px; 48 | } 49 | 50 | .title { 51 | font-size: 1.2em; /* Larger font size */ 52 | font-weight: bold; /* Bolder font weight */ 53 | margin-bottom: 5px; 54 | } 55 | 56 | .types label { 57 | display: flex; 58 | align-items: center; 59 | margin-bottom: 10px; 60 | } 61 | 62 | .types input[type="radio"] { 63 | display: none; 64 | } 65 | 66 | .types label:hover { 67 | cursor: pointer; 68 | opacity: 0.8; 69 | } 70 | 71 | .selected-option { 72 | box-shadow: 0 0 10px rgba(0, 0, 0, 0.4); /* Example of highlight with shadow */ 73 | opacity: 1; /* Override the hover effect opacity */ 74 | } 75 | 76 | .types label { 77 | /* existing styles */ 78 | transition: box-shadow 0.3s ease, opacity 0.3s ease; /* Smooth transition for the shadow and opacity */ 79 | } 80 | 81 | .advanced-sensors-divider { 82 | text-align: center; 83 | color: #007bff; /* Example color, adjust to fit your design */ 84 | padding: 10px 0; 85 | margin: 20px 0; 86 | border-top: 1px solid #ddd; 87 | border-bottom: 1px solid #ddd; 88 | cursor: pointer; 89 | font-size: 1em; 90 | user-select: none; /* Prevent text selection */ 91 | } 92 | 93 | .advanced-sensors-divider:hover { 94 | color: #0056b3; /* Darker shade for hover effect */ 95 | text-decoration: underline; /* Add underline on hover for better interactivity indication */ 96 | } 97 | 98 | .selected-options { 99 | background-color: #f9f9f9; 100 | padding: 10px; 101 | margin: 10px 0; 102 | border-radius: 5px; 103 | border: 1px solid #ddd; 104 | } 105 | 106 | .purchase-link { 107 | display: block; 108 | margin-top: 5px; 109 | font-size: 0.9em; 110 | color: #007bff; /* Change this to match your site's color scheme */ 111 | text-decoration: none; /* Optional: if you prefer links without underlines */ 112 | } 113 | 114 | .purchase-link:hover { 115 | text-decoration: underline; /* Optional: if you want to highlight on hover */ 116 | } 117 | 118 | /* Remove that for solution 2: same container, smaller text size */ 119 | @media (min-width: 50rem) { 120 | .site-header { 121 | min-height: 100px; 122 | } 123 | } 124 | 125 | @media (min-width: 50rem) { 126 | .site-nav { 127 | padding-top: 1rem; 128 | } 129 | } -------------------------------------------------------------------------------- /static/assembly.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Assembly 4 | nav_order: 3 5 | --- 6 | 7 | # Assembly 8 | 9 | {: .no_toc } 10 | 11 | Time to assemble the hardware ready for setup! 12 | {: .fs-6 .fw-300 } 13 | 14 | ## Case - Part 1 15 | 16 | First you are going to want to grab 4 components of the case - the back, ball joint, locking ring and stand. 17 | 18 | ![Inserting the ball joint](images/assembly-insert-ball-joint-1.jpg) 19 | 20 | Insert the ball joint through the back of the case from the front side. Then, while holding the ball joint in place, use the locking ring to tighten in place. 21 | 22 | ![Inserting the ball joint](images/assembly-insert-ball-joint-2.jpg) 23 | 24 | ![Inserting the ball joint](images/assembly-insert-ball-joint-3.jpg) 25 | 26 | {: .important } 27 | The locking ring has a slight groove on one side - make sure the groove faces the back of the case. 28 | 29 | {: .note } 30 | The ball joint will be pretty tight but will still rotate with enough force - this is intentional to allow you to orientate in any position. 31 | 32 | Use your thumb to press against the back of the ball joint for support and then push the stand onto the ball joint. 33 | 34 | ![Inserting the stand](images/assembly-attaching-stand.jpg) 35 | 36 | {: .note } 37 | The stand may be quite tight initially due to the 3D printing process, but should loosen up after a few rotations. 38 | 39 | ![Inserting the stand](images/assembly-attaching-stand-2.jpg) 40 | 41 | ## Board and Sensors 42 | 43 | Grab the EP1 board, mmWave Sensor and PIR. 44 | 45 | The the EP1 board and press it into the back of the case - each corner should click into place. Please note we have removed the stand in the below photos for demo purposes. 46 | 47 | ![Inserting the EP1 Board](images/assembly-insert-ep1-board-1.jpg) 48 | 49 | ![Inserting the EP1 Board](images/assembly-insert-ep1-board-2.jpg) 50 | 51 | Next, take the mmWave sensor and identify which sensor you have - either the SEN0395 (6 Pin) or the SEN0609 (5 Pin). 52 | 53 | ### Double slot board 54 | 55 | If your EP1 board has 2 x 6 pin slots (one horizontal and one vertical), this board is only compatible with the 6 pin SEN0395. 56 | 57 | ![Rev 1.3/1.4 EP1 Board](images/hardware-overview-ep1-board-rev-1.4.jpg) 58 | 59 | Insert the SEN0395 into one of the two slots: 60 | ![Inserting the mmWave Sensor](images/assembly-insert-mmwave-top-slot.jpg) 61 | 62 | ![Inserting the mmWave Sensor](images/assembly-insert-mmwave-side-slot.jpg) 63 | 64 | Slot 1 at the top of the board gives you a wider horizontal field of view with a narrower vertical field of view. Slot 2 at the side of the board gives you a wider vertical field of view with a narrower horizontal field of view. Slot 1 is the recommendation for most people. 65 | 66 | ### Single 8 Pin slot 67 | 68 | If your board has the newer 8 pin slot, this is compatible with **both the SEN0395 and SEN0609.** 69 | 70 | ![Rev 1.5 EP1 Board](images/hardware-overview-ep1-board-rev-1.5.jpg) 71 | 72 | If you have the SEN0395 sensor (6 pin), it goes to the far left position. The "V" pin on the mmWave should line up with the 5v on the board: 73 | 74 | ![Rev 1.5 EP1 with SEN0395](images/hardware-overview-ep1-board-rev-1.5-SEN0395.jpg) 75 | 76 | If you have the SEN0609 (5 pin), it goes to the far right position. The "VIN" pin on the mmWave should line up with the 5v on the board: 77 | 78 | ![Rev 1.5 EP1 with SEN0609](images/hardware-overview-ep1-board-rev-1.5-SEN0609.jpg) 79 | 80 | {: .warning } 81 | Making sure to line up the 5v pin on the sensor with the correct 5v pin on the board, damage could occur to the sensor from plugging it in to the wrong socket. 82 | 83 | {: .warning } 84 | Please take extra care with the mmWave sensor when it's inserted into the slot since the pins will bend easily and could cause damage. Remove the sensor whenever moving or working on it. 85 | 86 | Then take PIR sensor and push it into the PIR socket in the middle of the board. The PIR can only fit in the socket in one orientation. 87 | 88 | ![Inserting the PIR Sensor](images/assembly-insert-pir-sensor-1.jpg) 89 | 90 | ![Inserting the PIR Sensor](images/assembly-insert-pir-sensor-2.jpg) 91 | 92 | With both sensors and the board installed, it should look like this: 93 | 94 | ![Inserting the PIR Sensor](images/assembly-insert-pir-sensor-3.jpg) 95 | 96 | ## Case - Part 2 97 | 98 | Finally, clip the front of the case on and into position. 99 | 100 | ![Attach the Front of the case](images/assembly-attaching-front-case.jpg) 101 | 102 | ![Attach the Front of the case](images/assembly-attaching-front-case-2.jpg) 103 | 104 | The final hardware will look like this: 105 | 106 | ![Completed EP1](images/assembly-complete.jpg) 107 | 108 | We can now power on for the first time. 109 | {: .fs-6 .fw-300 } 110 | 111 | ## Powering On 112 | 113 | You will want to grab a USB-C cable and a power brick - any charger should suffice, as power requirements are around 200 milliamps. 114 | 115 | The power brick will be used later when moving the EP1 to it's final position, but 116 | 117 | Plug the USB-C cable into the EP1 and a red light will illuminate on the front of the device. 118 | 119 | ![Powering on the sensor](images/connecting-wifi-power.jpg) 120 | 121 | ## Next Steps 122 | 123 | Now we have assembled the hardware, we can update it and connect it to WiFi! 124 | 125 | [Updating and connecting to WiFi](http://everythingsmarthome.github.io/everything-presence-one/updating.html){: .btn .btn-blue } 126 | 127 | 140 | -------------------------------------------------------------------------------- /static/everything-presence-one.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/everything-presence-one.png -------------------------------------------------------------------------------- /static/hardware-overview.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Hardware Overview 4 | nav_order: 2 5 | --- 6 | 7 | # Hardware Overview 8 | 9 | {: .no_toc } 10 | 11 | Let's take a look at an overview of the hardware and parts required for setup. 12 | {: .fs-6 .fw-300 } 13 | 14 | There are several components that make up the Everything Presence One. You may have received some or all of these components depending which version you purchased - if you purchased the board only then you will need to provide your own mmWave Sensor and PIR sensor for example. 15 | 16 | Each component is listed below - please familiarise yourself with each component for this guide. 17 | 18 | ## Everything Presence One Board 19 | 20 | ![Everything Presence One Board](images/hardware-overview-ep1-board-2.jpg) 21 | 22 | The EP1 board is the main PCB for the device. It's where the ESP32 is located that provides Wi-Fi connectivity and is the brains of all of the sensors. 23 | 24 | Each of the main components is labelled directly on the board itself to help with assembly. Directly on the EP1 board we have the following components: 25 | * ESP32-WROOM-32E - 4MB flash version 26 | * BH1750 Light Illuminance sensor 27 | * SHTC3 Temperature and Humidity Sensor 28 | * Header Slot for DFRobot SEN0395 and SEN0609 mmWave Sensor 29 | * Socket for Panasonic EKMC1603111/2/3 PIR Sensor 30 | * USB-C for power and programming 31 | * 5v Header input for optional power 32 | * 4 Additional GPIO pins for expansion 33 | 34 | ## Official Case 35 | 36 | ![Everything Presence One Official Case](images/hardware-overview-official-case.jpg) 37 | 38 | The Official Case for the EP1 is available for purchase [here](https://shop.everythingsmart.io/products/everything-presence-one-official-case) or if you prefer to print your own, the STL is located on [Printables](https://www.printables.com/model/302846-Everything%20Presence%20One%20-%20Official%20Case) 39 | 40 | The case has 5 components - Front, Back, Stand, Ball Joint and Locking Ring. 41 | 42 | Front: 43 | 44 | ![Everything Presence One Official Case Front](images/hardware-overview-case-front.jpg) 45 | 46 | Back: 47 | 48 | ![Everything Presence One Official Case Back](images/hardware-overview-case-back.jpg) 49 | 50 | Stand: 51 | 52 | ![Everything Presence One Official Case Stand](images/hardware-overview-case-stand.jpg) 53 | 54 | Ball Joint: 55 | 56 | ![Everything Presence One Official Case Ball Joint](images/hardware-overview-case-ball-joint.jpg) 57 | 58 | Locking Ring: 59 | 60 | ![Everything Presence One Official Case Ball Joint](images/hardware-overview-case-locking-ring.jpg) 61 | 62 | ## mmWave Sensor 63 | 64 | ![DFFRobot mmWave Sensor for EP1](images/hardware-overview-mmwave-sensor.jpg) 65 | 66 | The mmWave comes included as part of the Everything Presence One Full Kit - if you purchased the board only then you will need to supply your own mmWave sensor. 67 | 68 | The DFRobot mmWave Sensor SEN0395 and SEN0609 (for newer Rev 1.5 EP1 boards) are the **only** compatible and validated sensor currently - please do not try to use a different sensor as you may cause damage. 69 | 70 | ## Motion Sensor PIR 71 | 72 | ![Panasonic EKMC PIR](images/hardware-overview-pir-sensor.jpg) 73 | 74 | The PIR comes included as part of the Everything Presence One Full Kit - if you purchased the board only then you will need to supply your own PIR sensor. 75 | 76 | Part numbers for the PIR are one of the following: 77 | 78 | * EKMC1603111 79 | * EKMC1603112 80 | * EKMC1603113 81 | 82 | The Panasonic EKMC series of sensor is the **only** compatible and validated sensor currently - please do not try to use a different sensor as you may cause damage. 83 | 84 | ## Next Steps 85 | 86 | Now we have familiarised ourselves with the hardware, let's get the hardware assembled and ready to setup! 87 | 88 | [Assembly](http://everythingsmarthome.github.io/everything-presence-one/assembly.html){: .btn .btn-blue } 89 | 90 | 103 | -------------------------------------------------------------------------------- /static/header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/header.png -------------------------------------------------------------------------------- /static/images/assembly-attaching-front-case-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/assembly-attaching-front-case-2.jpg -------------------------------------------------------------------------------- /static/images/assembly-attaching-front-case-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/assembly-attaching-front-case-3.jpg -------------------------------------------------------------------------------- /static/images/assembly-attaching-front-case.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/assembly-attaching-front-case.jpg -------------------------------------------------------------------------------- /static/images/assembly-attaching-stand-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/assembly-attaching-stand-2.jpg -------------------------------------------------------------------------------- /static/images/assembly-attaching-stand.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/assembly-attaching-stand.jpg -------------------------------------------------------------------------------- /static/images/assembly-case-back-lock-ball-joint.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/assembly-case-back-lock-ball-joint.jpg -------------------------------------------------------------------------------- /static/images/assembly-complete.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/assembly-complete.jpg -------------------------------------------------------------------------------- /static/images/assembly-insert-ball-joint-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/assembly-insert-ball-joint-1.jpg -------------------------------------------------------------------------------- /static/images/assembly-insert-ball-joint-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/assembly-insert-ball-joint-2.jpg -------------------------------------------------------------------------------- /static/images/assembly-insert-ball-joint-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/assembly-insert-ball-joint-3.jpg -------------------------------------------------------------------------------- /static/images/assembly-insert-ep1-board-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/assembly-insert-ep1-board-1.jpg -------------------------------------------------------------------------------- /static/images/assembly-insert-ep1-board-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/assembly-insert-ep1-board-2.jpg -------------------------------------------------------------------------------- /static/images/assembly-insert-mmwave-side-slot.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/assembly-insert-mmwave-side-slot.jpg -------------------------------------------------------------------------------- /static/images/assembly-insert-mmwave-top-slot.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/assembly-insert-mmwave-top-slot.jpg -------------------------------------------------------------------------------- /static/images/assembly-insert-pir-sensor-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/assembly-insert-pir-sensor-1.jpg -------------------------------------------------------------------------------- /static/images/assembly-insert-pir-sensor-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/assembly-insert-pir-sensor-2.jpg -------------------------------------------------------------------------------- /static/images/assembly-insert-pir-sensor-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/assembly-insert-pir-sensor-3.jpg -------------------------------------------------------------------------------- /static/images/beta-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/beta-logo.png -------------------------------------------------------------------------------- /static/images/ble_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/ble_logo.png -------------------------------------------------------------------------------- /static/images/connecting-home-assistant-auto-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/connecting-home-assistant-auto-1.png -------------------------------------------------------------------------------- /static/images/connecting-home-assistant-auto-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/connecting-home-assistant-auto-2.png -------------------------------------------------------------------------------- /static/images/connecting-home-assistant-manual-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/connecting-home-assistant-manual-1.png -------------------------------------------------------------------------------- /static/images/connecting-home-assistant-manual-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/connecting-home-assistant-manual-2.png -------------------------------------------------------------------------------- /static/images/connecting-home-assistant-manual-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/connecting-home-assistant-manual-3.png -------------------------------------------------------------------------------- /static/images/connecting-home-assistant-router-ip-address.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/connecting-home-assistant-router-ip-address.png -------------------------------------------------------------------------------- /static/images/connecting-wifi-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/connecting-wifi-1.png -------------------------------------------------------------------------------- /static/images/connecting-wifi-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/connecting-wifi-2.png -------------------------------------------------------------------------------- /static/images/connecting-wifi-power.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/connecting-wifi-power.jpg -------------------------------------------------------------------------------- /static/images/everything-presence-co2-scd40-one.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/everything-presence-co2-scd40-one.jpg -------------------------------------------------------------------------------- /static/images/everything-presence-one-gpio-pins.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/everything-presence-one-gpio-pins.jpg -------------------------------------------------------------------------------- /static/images/everything-presence-one-ha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/everything-presence-one-ha.png -------------------------------------------------------------------------------- /static/images/everything-presence-one-st.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/everything-presence-one-st.png -------------------------------------------------------------------------------- /static/images/hardware-overview-case-back.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/hardware-overview-case-back.jpg -------------------------------------------------------------------------------- /static/images/hardware-overview-case-ball-joint.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/hardware-overview-case-ball-joint.jpg -------------------------------------------------------------------------------- /static/images/hardware-overview-case-front.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/hardware-overview-case-front.jpg -------------------------------------------------------------------------------- /static/images/hardware-overview-case-locking-ring.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/hardware-overview-case-locking-ring.jpg -------------------------------------------------------------------------------- /static/images/hardware-overview-case-stand.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/hardware-overview-case-stand.jpg -------------------------------------------------------------------------------- /static/images/hardware-overview-ep1-board-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/hardware-overview-ep1-board-2.jpg -------------------------------------------------------------------------------- /static/images/hardware-overview-ep1-board-rev-1.4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/hardware-overview-ep1-board-rev-1.4.jpg -------------------------------------------------------------------------------- /static/images/hardware-overview-ep1-board-rev-1.5-SEN0395.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/hardware-overview-ep1-board-rev-1.5-SEN0395.jpg -------------------------------------------------------------------------------- /static/images/hardware-overview-ep1-board-rev-1.5-SEN0609.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/hardware-overview-ep1-board-rev-1.5-SEN0609.jpg -------------------------------------------------------------------------------- /static/images/hardware-overview-ep1-board-rev-1.5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/hardware-overview-ep1-board-rev-1.5.jpg -------------------------------------------------------------------------------- /static/images/hardware-overview-ep1-board.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/hardware-overview-ep1-board.jpg -------------------------------------------------------------------------------- /static/images/hardware-overview-mmwave-sensor.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/hardware-overview-mmwave-sensor.jpg -------------------------------------------------------------------------------- /static/images/hardware-overview-official-case.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/hardware-overview-official-case.jpg -------------------------------------------------------------------------------- /static/images/hardware-overview-pir-sensor.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/hardware-overview-pir-sensor.jpg -------------------------------------------------------------------------------- /static/images/home-assistant-devices.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/home-assistant-devices.png -------------------------------------------------------------------------------- /static/images/home-assistant-entities-controls.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/home-assistant-entities-controls.png -------------------------------------------------------------------------------- /static/images/home-assistant-entities-disabled-reveal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/home-assistant-entities-disabled-reveal.png -------------------------------------------------------------------------------- /static/images/home-assistant-entities-distance-entities-not-shown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/home-assistant-entities-distance-entities-not-shown.png -------------------------------------------------------------------------------- /static/images/home-assistant-entities-distance-status.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/home-assistant-entities-distance-status.png -------------------------------------------------------------------------------- /static/images/home-assistant-entities-distance-zone-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/home-assistant-entities-distance-zone-1.jpg -------------------------------------------------------------------------------- /static/images/home-assistant-entities-enabling-toggle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/home-assistant-entities-enabling-toggle.png -------------------------------------------------------------------------------- /static/images/home-assistant-entities-humidity.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/home-assistant-entities-humidity.jpg -------------------------------------------------------------------------------- /static/images/home-assistant-entities-illuminance.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/home-assistant-entities-illuminance.jpg -------------------------------------------------------------------------------- /static/images/home-assistant-entities-led-controls.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/home-assistant-entities-led-controls.jpg -------------------------------------------------------------------------------- /static/images/home-assistant-entities-mmwave-distance.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/home-assistant-entities-mmwave-distance.jpg -------------------------------------------------------------------------------- /static/images/home-assistant-entities-mmwave-offset.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/home-assistant-entities-mmwave-offset.jpg -------------------------------------------------------------------------------- /static/images/home-assistant-entities-mmwave-sensitivity.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/home-assistant-entities-mmwave-sensitivity.jpg -------------------------------------------------------------------------------- /static/images/home-assistant-entities-mmwave.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/home-assistant-entities-mmwave.jpg -------------------------------------------------------------------------------- /static/images/home-assistant-entities-occupancy.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/home-assistant-entities-occupancy.jpg -------------------------------------------------------------------------------- /static/images/home-assistant-entities-offset-controls.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/home-assistant-entities-offset-controls.png -------------------------------------------------------------------------------- /static/images/home-assistant-entities-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/home-assistant-entities-overview.png -------------------------------------------------------------------------------- /static/images/home-assistant-entities-pir.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/home-assistant-entities-pir.jpg -------------------------------------------------------------------------------- /static/images/home-assistant-entities-sen0609-mmwave-distance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/home-assistant-entities-sen0609-mmwave-distance.png -------------------------------------------------------------------------------- /static/images/home-assistant-entities-sen0609-mmwave-sensitivity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/home-assistant-entities-sen0609-mmwave-sensitivity.png -------------------------------------------------------------------------------- /static/images/home-assistant-entities-sensors.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/home-assistant-entities-sensors.png -------------------------------------------------------------------------------- /static/images/home-assistant-entities-temperature.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/home-assistant-entities-temperature.jpg -------------------------------------------------------------------------------- /static/images/home-assistant-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/home-assistant-logo.png -------------------------------------------------------------------------------- /static/images/no_ble_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/no_ble_logo.png -------------------------------------------------------------------------------- /static/images/sen0395.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/sen0395.png -------------------------------------------------------------------------------- /static/images/sen0609.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/sen0609.png -------------------------------------------------------------------------------- /static/images/smartthings-connect-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/smartthings-connect-1.png -------------------------------------------------------------------------------- /static/images/smartthings-connect-ep1-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/smartthings-connect-ep1-1.jpg -------------------------------------------------------------------------------- /static/images/smartthings-connect-ep1-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/smartthings-connect-ep1-2.jpg -------------------------------------------------------------------------------- /static/images/smartthings-connect-ep1-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/smartthings-connect-ep1-3.jpg -------------------------------------------------------------------------------- /static/images/smartthings-connect-ep1-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/smartthings-connect-ep1-4.jpg -------------------------------------------------------------------------------- /static/images/smartthings-connect-ep1-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/smartthings-connect-ep1-5.jpg -------------------------------------------------------------------------------- /static/images/smartthings-connect-ep1-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/smartthings-connect-ep1-6.jpg -------------------------------------------------------------------------------- /static/images/smartthings-connect-manual-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/smartthings-connect-manual-2.png -------------------------------------------------------------------------------- /static/images/smartthings-connect-manual-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/smartthings-connect-manual-3.png -------------------------------------------------------------------------------- /static/images/smartthings-connect-manual-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/smartthings-connect-manual-4.png -------------------------------------------------------------------------------- /static/images/smartthings-driver-accept-terms-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/smartthings-driver-accept-terms-1.png -------------------------------------------------------------------------------- /static/images/smartthings-driver-accept-terms-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/smartthings-driver-accept-terms-2.png -------------------------------------------------------------------------------- /static/images/smartthings-driver-accept-terms-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/smartthings-driver-accept-terms-3.png -------------------------------------------------------------------------------- /static/images/smartthings-driver-accept-terms-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/smartthings-driver-accept-terms-4.png -------------------------------------------------------------------------------- /static/images/smartthings-sensors-light.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/smartthings-sensors-light.jpg -------------------------------------------------------------------------------- /static/images/smartthings-sensors-presence.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/smartthings-sensors-presence.jpg -------------------------------------------------------------------------------- /static/images/smartthings-sensors-settings.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/smartthings-sensors-settings.jpg -------------------------------------------------------------------------------- /static/images/smartthings-sensors-temp.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/smartthings-sensors-temp.jpg -------------------------------------------------------------------------------- /static/images/stable-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EverythingSmartHome/everything-presence-one/b97396e483cc7f560eadb92f220ad7988ff73db4/static/images/stable-logo.png -------------------------------------------------------------------------------- /static/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Home 3 | layout: home 4 | nav_order: 1 5 | --- 6 | 7 | ![Everything Presence One](images/assembly-complete.jpg) 8 | 9 | {: .warning-title } 10 | Make sure to update your EP1 to the latest firmware that fixes known issues by [Updating](https://everythingsmarthome.github.io/everything-presence-one/updating.html){: .btn .btn-blue } 11 | 12 | Welcome to the documentation for the Everything Presence One! 13 | 14 | This documentation will guide you through the hardware, setup and installation of the EP1 for use with Home Assistant. Each section will be broken out into their own pages, and at the bottom of each page you will find a link to the next step. 15 | 16 | Let's get started with the hardware unboxing and preperation first! 17 | 18 | [Hardware Overview](http://everythingsmarthome.github.io/everything-presence-one/hardware-overview.html){: .btn .btn-blue } 19 | -------------------------------------------------------------------------------- /static/modules/carbon-dioxide.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Carbon Dioxide (CO2) 4 | nav_order: 1 5 | parent: Modules 6 | --- 7 | 8 | # Integrating the CO2 module 9 | 10 | {: .no_toc } 11 | 12 | Add Carbon Dioxide monitoring to your Everything Presence One. 13 | {: .fs-6 .fw-300 } 14 | 15 | {: .important } 16 | Please note the CO2 module is only compatible with Home Assistant and not SmartThings at this time. 17 | 18 | ## Hardware 19 | 20 | First take your EP1 (with it powered off!) and identify the GPIO pins in the bottom corner (depending on your board your revision, these may look slightly different): 21 | 22 | ![Everything Presence One GPIO Pins](https://everythingsmarthome.github.io/everything-presence-one/images/everything-presence-one-gpio-pins.jpg) 23 | 24 | Grab your CO2 module and push it onto the pins, making sure to line up the 3.3v and Ground pins: 25 | 26 | ![Everything Presence One CO2 placement](https://everythingsmarthome.github.io/everything-presence-one/images/everything-presence-co2-scd40-one.jpg) 27 | 28 | ## Software 29 | 30 | You will need to install the CO2 version of the firmware by heading over to the [update page](https://everythingsmarthome.github.io/everything-presence-one/updating.html), selecting Home Assistant, select your mmwave sensor, select CO2, select board revision and then choose between the Bluetooth or Non-Bluetooth versions of the firmware. Finally hit the Connect button and follow the instructions. 31 | 32 | Once installed, the CO2 sensor should automatically show up in Home Assistant, nice! 33 | 34 | {: .note } 35 | If your ESPHome config produces an error when trying to install, try hitting the "clean build files" button on the config to clear your cache, then try again. 36 | 37 | Once installed, the CO2 sensor should automatically show up in Home Assistant, nice! 38 | 39 | 40 | 53 | -------------------------------------------------------------------------------- /static/modules/modules.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Modules 4 | nav_order: 11 5 | has_children: true 6 | permalink: /modules 7 | --- 8 | 9 | # Modules 10 | 11 | The Everything Presence One has some spare GPIO pins which let's it work with some optional modules to extend its functionality. 12 | 13 | We currently offer a [Carbon Dioxide CO2 module](https://shop.everythingsmart.io/products/everything-presence-one-lite-co2-add-on), with more planned soon. 14 | 15 | See instructions for integrating the CO2 module. 16 | 17 | {: .fs-6 .fw-300 } 18 | -------------------------------------------------------------------------------- /static/troubleshooting.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Troubleshooting 4 | nav_order: 12 5 | --- 6 | 7 | # FAQ 8 | 9 | {: .no_toc } 10 | 11 | 12 | {: .warning-title } 13 | Please make sure you have updated your EP1 to the latest avaliable firmware by going to [Updating](https://everythingsmarthome.github.io/everything-presence-one/updating.html){: .btn .btn-blue } 14 | 15 | 16 | Lets cover off some of the commonly asked questions. 17 | {: .fs-6 .fw-300 } 18 | 19 | ## Everything Presence One 20 | 21 | **Will the EP1 detect moving animals or objects?** Yes the EP1 will detect any moving thing; a pet, fan or even even moving objects such as blinds. 22 | 23 | **Help, my sensor is giving false detections!** The vast majority of the time, the sensor is detecting movement accurately, but users aren't aware of how tiny a movement it is able to detect. Make sure to check out the [tuning guide](https://everythingsmarthome.github.io/everything-presence-one/tuning.html) for tweaking the settings to get the best results! 24 | 25 | **Can the sensor detect the direction of motion or zones?** 26 | No, it will only show a detected or not detected status. 27 | 28 | **I prefer to 3D print my own case** No worries you can find the files you need here [https://www.printables.com/model/302846-everything-presence-one-official-case](https://www.printables.com/model/302846-everything-presence-one-official-case "https://www.printables.com/model/302846-everything-presence-one-official-case") -------------------------------------------------------------------------------- /static/tuning.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Tuning 4 | nav_order: 9 5 | --- 6 | 7 | # FAQ 8 | 9 | {: .no_toc } 10 | 11 | mmWave is incredibly sensitive in comparison to a regular PIR, and needs the settings tweaking to suit it's environment. This will also help you get the most out of the EP1's occupancy. 12 | {: .fs-6 .fw-300 } 13 | 14 | ## Placement 15 | 16 | One of the first things to start with is to think about the placement in a room. 17 | 18 | Ideally you'll want the sensor wall mounted or on a sturdy object like a shelf or cabinet - because the mmWave is extremely good at picking up really fine movement, the object it's mounted needs to be solid, otherwise this could introduce false detections (because there is genuine movement). 19 | 20 | {: .important } 21 | Don't place the EP1 on top of something that moves with vibrations such as an air-conditioning unit, as these small vibrations will be treated as detections. 22 | 23 | You also don't want to place it infront of or near things that move frequently too, as again, these will be picked up as detections. 24 | 25 | I've seen a number of users confused thinking that the sensor is being triggered "falsely". The vast majority of these are actually **real** detections - users just weren't aware that something was moving, or how tiny a movement mmWave sensors can detect! I don't blame you either, since the only real benchmark you have to go on is a regular PIR, which by comparison, take quite a lot of movement to trigger. 26 | 27 | Common things that users don't realise can be triggers are: 28 | * AC units 29 | * Plants moving in the wind 30 | * Curtains moving in the wind 31 | * Water droplets in a bathroom 32 | * Ceiling fans 33 | * Fans inside of a laptop/TV 34 | 35 | There are ways to try and combat these movements, which we will discuss below - but if you can, try and avoid placement really close to things that move. 36 | 37 | The mmWave sensor can also "see through" objects, which includes really thin walls - this means that movement could be detected through a wall (but generally this is only really thin walls.) 38 | 39 | ## Distance 40 | 41 | Once you have the placement set, next you should adjust the distance to the room. 42 | 43 | Distance is really important to set correctly and should be set according to the distance of the room you have the EP1 in. If you have the distance set too short, you might miss events that are outside of the range. If it's set too long for the room, it might catch things that are outside of the room, or it can cause the signal to "bounce". 44 | 45 | {: .important } 46 | Don't set the distance too long for the room it is place in - this can cause undesirable results. 47 | 48 | You don't need to be very accurate with the distance, just a rough ball park within roughly 0.5m. 49 | 50 | ## Sensitivity and Latency 51 | 52 | Finally you can adjust the sensitivity and On Latency - both of these paremeters will take the most tuning to suit your environment and do require some on the fly tweaking. 53 | 54 | Sensitivity is how much motion is required to trigger the sensor. 55 | 56 | On Latency sets for how long the object must be moving for, before it is considered as moving and thus triggering the sensor. Adding a very small on latency to the sensor will make the mmWave sensor slightly slower to respond, but **can** drastically reduce detections from unwanted objects, such as a plant moving. 57 | 58 | {: .important } 59 | Making the mmWave slower to respond should have zero impact, since I would recommend using the EP1's PIR for things that you want to trigger on. 60 | 61 | I would recommend starting with 0s of on latency first, which will give you the fastest response time as a nice to have. Then start at a medium sensitivity at a 4-5. 62 | 63 | Observe the results over a good period of time and check to see if firstly that it is detecting presence accurately when you are in the room, and secondly that is changing to clear (no detection) when you aren't in the room. 64 | 65 | If the sensor occasionally changes to not detected for a few seconds when you are in the room, you probably need more sensitivity. However, increasing sensitivity can sometimes cause detections from unwanted objects when you are not in the room, so to combat this, use the on latency and add 0.5s. 66 | 67 | 0.5s of on latency is generally enough to clear up all detections from undesireable objects, but you can increase more if needed. Start low and increment one step at a time. 68 | 69 | The process I use is: 70 | 71 | 1. Start at 0s with 4 sensitivity 72 | 2. Observe results 73 | 3. Increase one sensitivity level to get accurate detections when I am in the room 74 | 4. Observe results and repeat until desireable results achieved 75 | 5. Once sensitvity is correct, observe any detections when room is un-occupied 76 | 6. If detections are being triggered when room is un-occupied, add 0.5s to on latency 77 | 7. Observe results, if needed add another 0.5s to on latency 78 | 8. Optional - Adding on latency may allow you to increase sensitivity if needed. 79 | 80 | Ultimately, the best settings for you will come down to your specific room and will depend on your environment. --------------------------------------------------------------------------------