.gitignore
.gitmodules
.readthedocs.yaml
CAMERA_DETECTION_SUMMARY.md
CAMERA_QUICKSTART.md
CAMERA_QUICK_REFERENCE.md
CAMERA_URL_COMPLETE.md
CAMERA_URL_FIX_SUMMARY.md
CONTRIBUTING.md
GROUPING_FEATURE_IMPLEMENTATION.md
LICENSE
MANIFEST.in
Makefile
QUICKSTART_CAMERA_UI.md
README.md
RELEASE.md
TEST_SUMMARY.md
TRUNCATED_IMAGE_TEST_QUICK_REF.md
ansible.cfg
prepare-device.md
pumaguard-logo-2-1024-1024.png
pumaguard-logo-2-512-512.png
pumaguard-logo-2.webp
pumaguard-logo-3-1024-1024.png
pumaguard-logo-3-512-512.png
pumaguard-logo-4-1024-1024.png
pumaguard-logo-4-512-512.png
pumaguard-logo.png
pylintrc
pyproject.toml
requirements.txt
test-requirements.txt
uv.lock
.github/CODEOWNERS
.github/copilot-instructions.md
.github/dependabot.yml
.github/actions/clean-runner/action.yaml
.github/actions/setup-python/action.yaml
.github/agents/general.md
.github/workflows/build-webpage.yaml
.github/workflows/codeql.yaml
.github/workflows/test-and-package.yaml
docs/API_REFERENCE.md
docs/BUILD_REFERENCE.md
docs/CAMERA_AUTO_REMOVAL.md
docs/CAMERA_HEARTBEAT.md
docs/CAMERA_INTEGRATION.md
docs/CAMERA_STATUS_REFRESH.md
docs/CAMERA_TRACKING.md
docs/CAMERA_URL_TROUBLESHOOTING.md
docs/CAPTIVE_PORTAL.md
docs/DEVICE_REMOVAL.md
docs/DYNAMIC_URL_DETECTION.md
docs/HEARTBEAT_FEATURE.md
docs/IMAGE_BROWSER.md
docs/MDNS_FEATURES.md
docs/MDNS_SETUP.md
docs/Makefile
docs/PUMA_THRESHOLD.md
docs/QUICK_START_MDNS.md
docs/SETTINGS_PERSISTENCE.md
docs/SHELLY_PLUG_SWITCH_API.md
docs/SOUND_SETTINGS_FIX.md
docs/STOP_SOUND_FEATURE.md
docs/TIME_SYNC.md
docs/UI_DEVELOPMENT_CONTEXT.md
docs/VOLUME_CONTROL.md
docs/VOLUME_FIX.md
docs/WEB_UI_STRUCTURE.md
docs/XDG_MIGRATION.md
docs/make.bat
docs/source/About.rst
docs/source/Camera_parts.rst
docs/source/Cameralocation.rst
docs/source/Deployment.rst
docs/source/HLD.rst
docs/source/Parts.rst
docs/source/Performance.rst
docs/source/PowerConsiderations.rst
docs/source/WeatherProofing.rst
docs/source/camerapowerconsumption.rst
docs/source/conf.py
docs/source/index.rst
docs/source/lights.rst
docs/source/modules.rst
docs/source/pumaguard.rst
docs/source/pumaguard.web_routes.rst
docs/source/raspberrypie5powerconsumption.rst
docs/source/requirements.txt
docs/source/solarpanelresearch.rst
docs/source/_static/20241021-puma01.png
docs/source/_static/20241022-puma01.png
docs/source/_static/MLProj.png
docs/source/_static/Stables map.png
docs/source/_static/Stables.png
docs/source/_static/custom.css
docs/source/_static/figure01.png
docs/source/_static/server-demo.gif
docs/source/_static/stables-map.png
docs/source/presentations/2024-12-08 PEEC Presentations.odp
docs/source/presentations/2024-12-08 PEEC Presentations.pdf
notebooks/Mountain_Lions.ipynb
notebooks/dogs-vs-cats-classification-with-transfer-learning.ipynb
notebooks/dogs-vs-cats-classification-with-transfer-learning.log
notebooks/lion-vs-nolion-classification-with-transfer.ipynb
notebooks/puma-two-stage-inference-only.ipynb
notebooks/puma-two-stage-pipeline-flatprefix.ipynb
pumaguard/AUTOMATIC_PLUG_CONTROL.md
pumaguard/CAMERA_AUTO_REMOVAL_IMPLEMENTATION.md
pumaguard/CAMERA_AUTO_REMOVAL_QUICKSTART.md
pumaguard/CAMERA_AUTO_REMOVAL_README.md
pumaguard/CAMERA_AUTO_REMOVAL_VALIDATION.md
pumaguard/DEVICE_REDETECTION_FIX.md
pumaguard/SHELLY_PLUG_CONTROL_SUMMARY.md
pumaguard/SHELLY_PLUG_SWITCH_IMPLEMENTATION.md
pumaguard/SHELLY_PLUG_TESTING_SUMMARY.md
pumaguard/TEST_COVERAGE_IMPROVEMENTS.md
pumaguard/__init__.py
pumaguard/camera_heartbeat.py
pumaguard/classify.py
pumaguard/device_heartbeat.py
pumaguard/lock_manager.py
pumaguard/main.py
pumaguard/model-registry.yaml
pumaguard/model_cli.py
pumaguard/model_downloader.py
pumaguard/plug_heartbeat.py
pumaguard/presets.py
pumaguard/server.py
pumaguard/shelly_control.py
pumaguard/sound.py
pumaguard/stats.py
pumaguard/utils.py
pumaguard/verify.py
pumaguard/web_ui.py
pumaguard-sounds/deterrent_puma.mp3
pumaguard-sounds/hounds.mp3
pumaguard-sounds/people_talking.mp3
pumaguard-sounds/screaming.mp3
pumaguard-sounds/siren01.mp3
pumaguard-sounds/siren02.mp3
pumaguard-sounds/siren03.mp3
pumaguard-ui/.gitignore
pumaguard-ui/.metadata
pumaguard-ui/API_REFERENCE.md
pumaguard-ui/LICENSE
pumaguard-ui/Makefile
pumaguard-ui/README.md
pumaguard-ui/UI_DEVELOPMENT_CONTEXT.md
pumaguard-ui/analysis_options.yaml
pumaguard-ui/pubspec.lock
pumaguard-ui/pubspec.yaml
pumaguard-ui/android/.gitignore
pumaguard-ui/android/build.gradle.kts
pumaguard-ui/android/gradle.properties
pumaguard-ui/android/settings.gradle.kts
pumaguard-ui/android/app/build.gradle.kts
pumaguard-ui/android/app/src/debug/AndroidManifest.xml
pumaguard-ui/android/app/src/main/AndroidManifest.xml
pumaguard-ui/android/app/src/main/kotlin/com/example/pumaguard_ui/MainActivity.kt
pumaguard-ui/android/app/src/main/res/drawable/launch_background.xml
pumaguard-ui/android/app/src/main/res/drawable-v21/launch_background.xml
pumaguard-ui/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
pumaguard-ui/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
pumaguard-ui/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
pumaguard-ui/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
pumaguard-ui/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
pumaguard-ui/android/app/src/main/res/values/styles.xml
pumaguard-ui/android/app/src/main/res/values-night/styles.xml
pumaguard-ui/android/app/src/profile/AndroidManifest.xml
pumaguard-ui/android/gradle/wrapper/gradle-wrapper.properties
pumaguard-ui/fonts/README.md
pumaguard-ui/fonts/Roboto-Bold.ttf
pumaguard-ui/fonts/Roboto-Light.ttf
pumaguard-ui/fonts/Roboto-Medium.ttf
pumaguard-ui/fonts/Roboto-Regular.ttf
pumaguard-ui/fonts/RobotoMono-Bold.ttf
pumaguard-ui/fonts/RobotoMono-Medium.ttf
pumaguard-ui/fonts/RobotoMono-Regular.ttf
pumaguard-ui/fonts/download_fonts.sh
pumaguard-ui/ios/.gitignore
pumaguard-ui/ios/Flutter/AppFrameworkInfo.plist
pumaguard-ui/ios/Flutter/Debug.xcconfig
pumaguard-ui/ios/Flutter/Release.xcconfig
pumaguard-ui/ios/Flutter/ephemeral/flutter_lldb_helper.py
pumaguard-ui/ios/Runner/AppDelegate.swift
pumaguard-ui/ios/Runner/Info.plist
pumaguard-ui/ios/Runner/Runner-Bridging-Header.h
pumaguard-ui/ios/Runner.xcodeproj/project.pbxproj
pumaguard-ui/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata
pumaguard-ui/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
pumaguard-ui/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
pumaguard-ui/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
pumaguard-ui/ios/Runner.xcworkspace/contents.xcworkspacedata
pumaguard-ui/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
pumaguard-ui/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
pumaguard-ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
pumaguard-ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
pumaguard-ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
pumaguard-ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
pumaguard-ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
pumaguard-ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
pumaguard-ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
pumaguard-ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
pumaguard-ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
pumaguard-ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
pumaguard-ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
pumaguard-ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
pumaguard-ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
pumaguard-ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
pumaguard-ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
pumaguard-ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
pumaguard-ui/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json
pumaguard-ui/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
pumaguard-ui/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
pumaguard-ui/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
pumaguard-ui/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md
pumaguard-ui/ios/Runner/Base.lproj/LaunchScreen.storyboard
pumaguard-ui/ios/Runner/Base.lproj/Main.storyboard
pumaguard-ui/ios/RunnerTests/RunnerTests.swift
pumaguard-ui/lib/main.dart
pumaguard-ui/lib/models/camera.dart
pumaguard-ui/lib/models/plug.dart
pumaguard-ui/lib/models/settings.dart
pumaguard-ui/lib/models/status.dart
pumaguard-ui/lib/screens/devices_screen.dart
pumaguard-ui/lib/screens/directories_screen.dart
pumaguard-ui/lib/screens/home_screen.dart
pumaguard-ui/lib/screens/image_browser_screen.dart
pumaguard-ui/lib/screens/server_discovery_screen.dart
pumaguard-ui/lib/screens/settings_screen.dart
pumaguard-ui/lib/screens/wifi_settings_screen.dart
pumaguard-ui/lib/services/api_service.dart
pumaguard-ui/lib/services/camera_events_service.dart
pumaguard-ui/lib/services/image_events_service.dart
pumaguard-ui/lib/services/mdns_service.dart
pumaguard-ui/lib/services/mdns_service_impl.dart
pumaguard-ui/lib/services/mdns_service_io.dart
pumaguard-ui/lib/services/mdns_service_web.dart
pumaguard-ui/lib/utils/download_helper.dart
pumaguard-ui/lib/utils/download_helper_stub.dart
pumaguard-ui/lib/utils/download_helper_web.dart
pumaguard-ui/lib/utils/platform_url.dart
pumaguard-ui/lib/utils/platform_url_stub.dart
pumaguard-ui/lib/utils/platform_url_web.dart
pumaguard-ui/linux/.gitignore
pumaguard-ui/linux/CMakeLists.txt
pumaguard-ui/linux/flutter/CMakeLists.txt
pumaguard-ui/linux/flutter/generated_plugin_registrant.cc
pumaguard-ui/linux/flutter/generated_plugin_registrant.h
pumaguard-ui/linux/flutter/generated_plugins.cmake
pumaguard-ui/linux/runner/CMakeLists.txt
pumaguard-ui/linux/runner/main.cc
pumaguard-ui/linux/runner/my_application.cc
pumaguard-ui/linux/runner/my_application.h
pumaguard-ui/macos/.gitignore
pumaguard-ui/macos/Flutter/Flutter-Debug.xcconfig
pumaguard-ui/macos/Flutter/Flutter-Release.xcconfig
pumaguard-ui/macos/Flutter/GeneratedPluginRegistrant.swift
pumaguard-ui/macos/Runner/AppDelegate.swift
pumaguard-ui/macos/Runner/DebugProfile.entitlements
pumaguard-ui/macos/Runner/Info.plist
pumaguard-ui/macos/Runner/MainFlutterWindow.swift
pumaguard-ui/macos/Runner/Release.entitlements
pumaguard-ui/macos/Runner.xcodeproj/project.pbxproj
pumaguard-ui/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
pumaguard-ui/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
pumaguard-ui/macos/Runner.xcworkspace/contents.xcworkspacedata
pumaguard-ui/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
pumaguard-ui/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
pumaguard-ui/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png
pumaguard-ui/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png
pumaguard-ui/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png
pumaguard-ui/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png
pumaguard-ui/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png
pumaguard-ui/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png
pumaguard-ui/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png
pumaguard-ui/macos/Runner/Base.lproj/MainMenu.xib
pumaguard-ui/macos/Runner/Configs/AppInfo.xcconfig
pumaguard-ui/macos/Runner/Configs/Debug.xcconfig
pumaguard-ui/macos/Runner/Configs/Release.xcconfig
pumaguard-ui/macos/Runner/Configs/Warnings.xcconfig
pumaguard-ui/macos/RunnerTests/RunnerTests.swift
pumaguard-ui/test/widget_test.dart.skip
pumaguard-ui/test/models/camera_test.dart
pumaguard-ui/test/models/plug_test.dart
pumaguard-ui/test/models/settings_test.dart
pumaguard-ui/test/models/status_test.dart
pumaguard-ui/test/screens/image_browser_grouping_test.dart
pumaguard-ui/test/services/api_service_cameras_test.dart
pumaguard-ui/test/services/api_service_image_browser_test.dart
pumaguard-ui/test/services/image_events_service_test.dart
pumaguard-ui/web/favicon.png
pumaguard-ui/web/index.html
pumaguard-ui/web/manifest.json
pumaguard-ui/web/icons/Icon-192.png
pumaguard-ui/web/icons/Icon-512.png
pumaguard-ui/web/icons/Icon-maskable-192.png
pumaguard-ui/web/icons/Icon-maskable-512.png
pumaguard-ui/windows/.gitignore
pumaguard-ui/windows/CMakeLists.txt
pumaguard-ui/windows/flutter/CMakeLists.txt
pumaguard-ui/windows/flutter/generated_plugin_registrant.cc
pumaguard-ui/windows/flutter/generated_plugin_registrant.h
pumaguard-ui/windows/flutter/generated_plugins.cmake
pumaguard-ui/windows/runner/CMakeLists.txt
pumaguard-ui/windows/runner/Runner.rc
pumaguard-ui/windows/runner/flutter_window.cpp
pumaguard-ui/windows/runner/flutter_window.h
pumaguard-ui/windows/runner/main.cpp
pumaguard-ui/windows/runner/resource.h
pumaguard-ui/windows/runner/runner.exe.manifest
pumaguard-ui/windows/runner/utils.cpp
pumaguard-ui/windows/runner/utils.h
pumaguard-ui/windows/runner/win32_window.cpp
pumaguard-ui/windows/runner/win32_window.h
pumaguard-ui/windows/runner/resources/app_icon.ico
pumaguard.egg-info/PKG-INFO
pumaguard.egg-info/SOURCES.txt
pumaguard.egg-info/dependency_links.txt
pumaguard.egg-info/entry_points.txt
pumaguard.egg-info/requires.txt
pumaguard.egg-info/top_level.txt
pumaguard/completions/pumaguard-classify-completions.sh
pumaguard/completions/pumaguard-completions.sh
pumaguard/completions/pumaguard-server-completions.sh
pumaguard/completions/pumaguard-train-completions.sh
pumaguard/pumaguard-ui/.last_build_id
pumaguard/pumaguard-ui/favicon.png
pumaguard/pumaguard-ui/flutter.js
pumaguard/pumaguard-ui/flutter_bootstrap.js
pumaguard/pumaguard-ui/flutter_service_worker.js
pumaguard/pumaguard-ui/index.html
pumaguard/pumaguard-ui/main.dart.js
pumaguard/pumaguard-ui/main.dart.mjs
pumaguard/pumaguard-ui/main.dart.wasm
pumaguard/pumaguard-ui/manifest.json
pumaguard/pumaguard-ui/version.json
pumaguard/pumaguard-ui/assets/AssetManifest.bin
pumaguard/pumaguard-ui/assets/AssetManifest.bin.json
pumaguard/pumaguard-ui/assets/FontManifest.json
pumaguard/pumaguard-ui/assets/NOTICES
pumaguard/pumaguard-ui/assets/fonts/MaterialIcons-Regular.otf
pumaguard/pumaguard-ui/assets/fonts/Roboto-Bold.ttf
pumaguard/pumaguard-ui/assets/fonts/Roboto-Light.ttf
pumaguard/pumaguard-ui/assets/fonts/Roboto-Medium.ttf
pumaguard/pumaguard-ui/assets/fonts/Roboto-Regular.ttf
pumaguard/pumaguard-ui/assets/fonts/RobotoMono-Bold.ttf
pumaguard/pumaguard-ui/assets/fonts/RobotoMono-Medium.ttf
pumaguard/pumaguard-ui/assets/fonts/RobotoMono-Regular.ttf
pumaguard/pumaguard-ui/assets/packages/cupertino_icons/assets/CupertinoIcons.ttf
pumaguard/pumaguard-ui/assets/shaders/ink_sparkle.frag
pumaguard/pumaguard-ui/assets/shaders/stretch_effect.frag
pumaguard/pumaguard-ui/canvaskit/canvaskit.js
pumaguard/pumaguard-ui/canvaskit/canvaskit.js.symbols
pumaguard/pumaguard-ui/canvaskit/canvaskit.wasm
pumaguard/pumaguard-ui/canvaskit/skwasm.js
pumaguard/pumaguard-ui/canvaskit/skwasm.js.symbols
pumaguard/pumaguard-ui/canvaskit/skwasm.wasm
pumaguard/pumaguard-ui/canvaskit/skwasm_heavy.js
pumaguard/pumaguard-ui/canvaskit/skwasm_heavy.js.symbols
pumaguard/pumaguard-ui/canvaskit/skwasm_heavy.wasm
pumaguard/pumaguard-ui/canvaskit/wimp.js
pumaguard/pumaguard-ui/canvaskit/wimp.js.symbols
pumaguard/pumaguard-ui/canvaskit/wimp.wasm
pumaguard/pumaguard-ui/canvaskit/chromium/canvaskit.js
pumaguard/pumaguard-ui/canvaskit/chromium/canvaskit.js.symbols
pumaguard/pumaguard-ui/canvaskit/chromium/canvaskit.wasm
pumaguard/pumaguard-ui/icons/Icon-192.png
pumaguard/pumaguard-ui/icons/Icon-512.png
pumaguard/pumaguard-ui/icons/Icon-maskable-192.png
pumaguard/pumaguard-ui/icons/Icon-maskable-512.png
pumaguard/web_routes/__init__.py
pumaguard/web_routes/artifacts.py
pumaguard/web_routes/dhcp.py
pumaguard/web_routes/diagnostics.py
pumaguard/web_routes/directories.py
pumaguard/web_routes/folders.py
pumaguard/web_routes/images_events.py
pumaguard/web_routes/photos.py
pumaguard/web_routes/settings.py
pumaguard/web_routes/sync.py
pumaguard/web_routes/system.py
scripts/README_CAMERA_TESTING.md
scripts/__init__.py
scripts/add_fake_cameras.sh
scripts/classify.py
scripts/configure-device.yaml
scripts/configure-laptop.yaml
scripts/deploy-pumaguard.yaml
scripts/device_vault.yaml
scripts/device_vault.yaml.example
scripts/image-sd-card-for-pi.sh
scripts/install-pumaguard.sh
scripts/laptop_config.yaml
scripts/laptop_vault.yaml
scripts/launch-pi-VM.sh
scripts/pick_files.py
scripts/play_sound.py
scripts/pumaguard
scripts/pumaguard-train-snap-wrapper.sh
scripts/server.py
scripts/test-server.sh
scripts/test_xception.py
scripts/train.py
scripts/verify.py
scripts/vsftpd.conf.j2
scripts/wireless_credentials.yaml
scripts/templates/dnsmasq-wlan0.conf.j2
scripts/templates/hostapd.conf.j2
scripts/templates/netplan-network-manager.j2
scripts/templates/netplan-pumaguard.j2
scripts/templates/netplan-wired.j2
scripts/templates/netplan-wireless.j2
scripts/templates/pumaguard-dhcp-notify.sh.j2
scripts/templates/pumaguard.service.j2
scripts/templates/systemd-network-wlan0.link.j2
scripts/templates/systemd-network-wlan0.network.j2
settings/notebook-1.yaml
snap/snapcraft.yaml
tests/TRUNCATED_IMAGE_TESTS.md
tests/__init__.py
tests/example_truncated_test.py
tests/manual_test_plug_switch.py
tests/test_artifacts.py
tests/test_camera_heartbeat.py
tests/test_classify.py
tests/test_dhcp_routes.py
tests/test_diagnostics_routes.py
tests/test_directories_routes.py
tests/test_folders_routes.py
tests/test_images_events_routes.py
tests/test_lock_manager.py
tests/test_main.py
tests/test_model_cli.py
tests/test_model_downloader.py
tests/test_persistence_integration.py
tests/test_photos_routes.py
tests/test_pick_files.py
tests/test_plug_heartbeat.py
tests/test_presets.py
tests/test_puma_threshold_integration.py
tests/test_server.py
tests/test_settings_routes.py
tests/test_shelly_control.py
tests/test_sound_detection.py
tests/test_stats.py
tests/test_sync_routes.py
tests/test_system_routes.py
tests/test_tensorflow.py
tests/test_utils.py
tests/test_verify.py
tests/test_volume.py
tests/test_web_ui.py