Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
102 commits
Select commit Hold shift + click to select a range
f4c30c7
Update release.yml
susch19 Sep 4, 2021
c9641c2
Added new emtpy about page
susch19 Sep 6, 2021
7140a62
Create base model for zigbee switches, Adds Tradfro Control Outlet
TheBlubb14 Sep 12, 2021
d5b7c0b
Adds tradfri motion sensor
TheBlubb14 Sep 12, 2021
41e5f50
Removed nullable linkQuality, it was null because of old db data
TheBlubb14 Sep 13, 2021
ab14c9d
Use right device type
TheBlubb14 Sep 15, 2021
3435e2a
Added simple about page
susch19 Sep 15, 2021
546f8e2
Remove flutter plugins dependencies
susch19 Sep 15, 2021
e959ddb
Added new emtpy about page
susch19 Sep 6, 2021
8bb33e3
Added simple about page
susch19 Sep 15, 2021
d30b068
Remove flutter plugins dependencies
susch19 Sep 15, 2021
93802c7
Merge branch 'feature/aboutpage' of https://github.com/susch19/Smarth…
susch19 Sep 15, 2021
50ad02f
Implemented a simple about screen
susch19 Sep 19, 2021
635cdce
Fixes contract break
TheBlubb14 Sep 16, 2021
1a78e1c
Dont clear preferences
TheBlubb14 Sep 16, 2021
12761b8
Use localized date
TheBlubb14 Sep 16, 2021
ae13aad
Moved mdns things into it's own manager
susch19 Sep 21, 2021
4468c44
Added new emtpy about page
susch19 Sep 6, 2021
15d618b
Added simple about page
susch19 Sep 15, 2021
fa99009
Remove flutter plugins dependencies
susch19 Sep 15, 2021
e9b3c86
Implemented a simple about screen
susch19 Sep 19, 2021
d63a990
Moved mdns things into it's own manager
susch19 Sep 21, 2021
2d2768e
Merge branch 'feature/aboutpage' of https://github.com/susch19/Smarth…
susch19 Sep 21, 2021
83dd313
Made led strip use ontap of listtile
susch19 Sep 23, 2021
eace390
Removed generated files from git
susch19 Sep 23, 2021
9f9f385
Implemented base settings page
susch19 Oct 26, 2021
d98e7c8
Implemented multi layered type names
susch19 Dec 24, 2021
070ec48
Completed work on about and settings screen
susch19 Dec 24, 2021
d75dabe
Bump build version
susch19 Dec 24, 2021
525a092
Merge pull request #5 from susch19/feature/aboutpage
susch19 Dec 24, 2021
2394f44
Update release.yml
susch19 Dec 25, 2021
8328997
Bump version to v1.1.5
susch19 Dec 25, 2021
c365f27
Manual update check and quick link
TheBlubb14 Dec 28, 2021
38ff8f6
Show notification on android on other show dialog, check once every 16h
TheBlubb14 Jan 8, 2022
7e12c85
Fixes and cleanup theme
TheBlubb14 Jan 18, 2022
9fe94f3
Removed unused file
TheBlubb14 Jan 21, 2022
3068cb9
Minor improvements
TheBlubb14 Jan 22, 2022
92c4ad8
Merge pull request #8 from susch19/feature/AppVersionCheck
susch19 Jan 22, 2022
8382d9c
Merge pull request #9 from susch19/feature/FixTheme
susch19 Jan 22, 2022
69327cc
Implemented first version of server driven ui
susch19 Jan 15, 2022
fb938fb
Reworked to use riverpod for state management
susch19 Jan 23, 2022
f63d7ff
Removed base model from devices
susch19 Jan 25, 2022
4850bc0
Fixed group names not beeing changeable
susch19 Jan 27, 2022
c6b7c57
Fixes tradfri led bulb
TheBlubb14 Jan 28, 2022
3b85e9c
Fixes loop
TheBlubb14 Jan 28, 2022
b9b539c
Implemented caching for svgs and device layouts
susch19 Jan 30, 2022
7e1cf65
Fixed heater model not changing on conf change
susch19 Feb 20, 2022
e47e32b
Fixed group and add device fab
susch19 Feb 20, 2022
d766034
Merge pull request #12 from susch19/feature/serverUI
susch19 Jul 25, 2022
9662330
start of encryption implementation
susch19 Jul 30, 2022
53020ae
Not building
susch19 Aug 1, 2022
51c1a0f
More dynamic ui options
susch19 Aug 7, 2022
df140db
Use typed dart for uint8list
susch19 Aug 7, 2022
631373f
Fixed auto reconnect not working
susch19 Aug 7, 2022
459ae5c
Fixed hot reload of dynamic ui change not working
susch19 Aug 7, 2022
ca98875
Removed is connected from base device
susch19 Aug 14, 2022
f04aebc
Implemented tab support for detail view
susch19 Aug 23, 2022
13a63f7
Fix fab not toggeling for osram and tradfri plug
susch19 Aug 24, 2022
0edd457
Removed commented out code of old signalr libary
susch19 Aug 24, 2022
ccf7b4b
Merge pull request #13 from susch19/feature/encryption
susch19 Aug 24, 2022
29bbf93
Made compatibel with new server version
susch19 Sep 11, 2022
8360ddd
Default to empty list
TheBlubb14 Sep 11, 2022
6785ade
Fixes devices with no tabs
TheBlubb14 Sep 11, 2022
65a91f9
Fixed multi message error
susch19 Sep 12, 2022
ead15ac
Added version to dynamic ui layout
susch19 Sep 13, 2022
405430a
Added support for developer mode only devices
susch19 Sep 14, 2022
16f4f6e
Fixes showing when only one tab and show prop when there is no state
TheBlubb14 Sep 14, 2022
8103e07
Display all controls when no tab is configured
susch19 Sep 15, 2022
3fa90dc
Added support for modifying history props by app
susch19 Sep 16, 2022
6b770f5
Removed not needed then after page return
susch19 Sep 16, 2022
5f9aaec
Fixed history by type not showing correct values
susch19 Sep 17, 2022
cb7752e
Add support for boolean and string values in dynamic ui
susch19 Sep 18, 2022
9fa3735
Reworked the edit information
susch19 Sep 18, 2022
5a255f3
Added support for typeNames in layout provider
susch19 Sep 18, 2022
670c24a
Added support for selecting date in history view
susch19 Sep 18, 2022
a0be226
Added support for heater config for every device
susch19 Sep 29, 2022
e8b5a7f
Added support for radial gauge
susch19 Oct 9, 2022
413bd42
Show git details in about page
TheBlubb14 Oct 9, 2022
62d43fb
Adds actions to git detail listtile
TheBlubb14 Oct 10, 2022
c89e2d2
Allow to open settings when offline
TheBlubb14 Oct 10, 2022
9cfb3a9
Fixes update check
TheBlubb14 Oct 10, 2022
ffd75d7
Remove not needed hashcode
TheBlubb14 Oct 11, 2022
a1b72f1
Remove obsolete code
TheBlubb14 Oct 11, 2022
11a631e
Added support for stepped history graph
susch19 Oct 13, 2022
b59ee10
Fixed heater not showing debug info
susch19 Oct 29, 2022
58206f5
Merge branch 'develop' into feature/zigbee2mqtt
susch19 Oct 29, 2022
b55ea5c
Merge pull request #15 from susch19/feature/zigbee2mqtt
susch19 Oct 29, 2022
4cac01c
Added build only ci (#17)
susch19 Oct 29, 2022
edbc7e4
Update build.yml
susch19 Oct 29, 2022
f0c283b
Update build.yml (#18)
susch19 Nov 1, 2022
2f7b574
Bump Version to 1.2.0
susch19 Nov 1, 2022
9881c5d
Upgraded packages and did some cleanup
susch19 Aug 12, 2023
fccd6d7
Fixed svg colors beeing wrong
susch19 Aug 12, 2023
2bd9fc2
Added support for searching devices
susch19 Oct 22, 2023
42c254c
Bump Version to 1.2.1
susch19 Oct 22, 2023
f5bfc4c
A bit more cleanup
susch19 Oct 22, 2023
f98b904
Fixed problems with updater (#20)
susch19 Oct 23, 2023
f5d5392
Reworking Providers & App Notifications
susch19 Nov 26, 2024
a8f1778
Fix Icons not showing in details
susch19 Apr 21, 2025
1721aed
Fix notifications not beeing remembered
susch19 Apr 26, 2025
06b35a2
Made it work with latest appbroker version
susch19 Oct 8, 2025
53323a7
Use latest versions of github runner
susch19 Oct 8, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .flutter-plugins-dependencies

This file was deleted.

98 changes: 98 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
name: CI Build
on:
workflow_dispatch:
# Enable manual run
pull_request:
branches: [ "master", "develop" ]

jobs:
create-build:
name: Create ${{ matrix.target }} build
runs-on: ${{ matrix.os }}
strategy:
matrix:
target: [Android, Windows, Linux]
include:
- os: windows-latest
target: Windows
build_target: windows
build_path: build\windows\runner\Release
asset_extension: .zip
asset_content_type: application/zip
- os: ubuntu-latest
target: Linux
build_target: linux
build_path: build/linux/x64/release/bundle
asset_extension: .tar.gz
asset_content_type: application/gzip
- os: ubuntu-latest
target: Android
build_target: apk
build_path: build/app/outputs/flutter-apk
asset_extension: .apk
asset_content_type: application/vnd.android.package-archive
# Disable fail-fast as we want results from all even if one fails.
fail-fast: false
steps:
# Set up Flutter.
- name: Clone Flutter repository with master channel
uses: subosito/flutter-action@v2
with:
channel: master

- name: Install Linux dependencies
if: matrix.target == 'Linux'
run: |
sudo apt-get update
sudo apt-get install -y libgtk-3-dev libx11-dev pkg-config cmake ninja-build libblkid-dev

- name: Install Android dependencies
if: matrix.target == 'Android'
uses: actions/setup-java@v5
with:
java-version: "17"
distribution: "microsoft"

- name: Enable desktop support
if: matrix.target != 'Android'
run: |
flutter config --enable-linux-desktop
flutter config --enable-macos-desktop
flutter config --enable-windows-desktop
- run: flutter doctor -v

# Checkout smarthome code, recreate missing files, and get packages.
- name: Checkout smarthome code
uses: actions/checkout@v5
- run: flutter create . --project-name smarthome
- run: flutter pub get


- name: Configure Keystore for Android
if: matrix.target == 'Android'
run: |
echo "$PLAY_STORE_UPLOAD_KEY" | base64 --decode > app/smarthome-keystore.jks
echo "storeFile=smarthome-keystore.jks" >> key.properties
echo "keyAlias=$KEYSTORE_KEY_ALIAS" >> key.properties
echo "storePassword=$KEYSTORE_STORE_PASSWORD" >> key.properties
echo "keyPassword=$KEYSTORE_KEY_PASSWORD" >> key.properties
env:
PLAY_STORE_UPLOAD_KEY: ${{ secrets.PLAY_STORE_UPLOAD_KEY }}
KEYSTORE_KEY_ALIAS: ${{ secrets.KEYSTORE_KEY_ALIAS }}
KEYSTORE_KEY_PASSWORD: ${{ secrets.KEYSTORE_KEY_PASSWORD }}
KEYSTORE_STORE_PASSWORD: ${{ secrets.KEYSTORE_STORE_PASSWORD }}
working-directory: android

- name: Run code generators
run: flutter pub run build_runner build

# Build the application.

- name: Build non Android
if: matrix.target != 'Android'
run: flutter build -v ${{ matrix.build_target }} --release

- name: Android Build
if: matrix.target == 'Android'
run: flutter build -v ${{ matrix.build_target }} --release --no-tree-shake-icons

37 changes: 24 additions & 13 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,12 +34,12 @@ jobs:
draft-release:
name: Draft Github release
needs: generate-changelog
runs-on: ubuntu-20.04
runs-on: ubuntu-latest
outputs:
upload_url: ${{ steps.create_release.outputs.upload_url }}
steps:
- name: Download changelog
uses: actions/download-artifact@v2
uses: actions/download-artifact@v5
with:
name: changelog
- name: Draft release with changelog
Expand All @@ -60,21 +60,21 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
target: [Android] #Windows, Linux,
target: [Android, Windows, Linux]
include:
- os: windows-2019
- os: windows-latest
target: Windows
build_target: windows
build_path: build\windows\runner\Release
asset_extension: .zip
asset_content_type: application/zip
- os: ubuntu-20.04
- os: ubuntu-latest
target: Linux
build_target: linux
build_path: build/linux/x64/release/bundle
asset_extension: .tar.gz
asset_content_type: application/gzip
- os: ubuntu-20.04
- os: ubuntu-latest
target: Android
build_target: apk
build_path: build/app/outputs/flutter-apk
Expand All @@ -86,7 +86,7 @@ jobs:
steps:
# Set up Flutter.
- name: Clone Flutter repository with master channel
uses: subosito/flutter-action@4389e6cbc6cb8a4b18c628ff96ff90be0e926aa8
uses: subosito/flutter-action@v2
with:
channel: master

Expand All @@ -95,11 +95,14 @@ jobs:
run: |
sudo apt-get update
sudo apt-get install -y libgtk-3-dev libx11-dev pkg-config cmake ninja-build libblkid-dev

- name: Install Android dependencies
if: matrix.target == 'Android'
uses: actions/setup-java@v1
uses: actions/setup-java@v5
with:
java-version: '12.x'
java-version: "17"
distribution: "microsoft"

- name: Enable desktop support
if: matrix.target != 'Android'
run: |
Expand All @@ -110,9 +113,10 @@ jobs:

# Checkout smarthome code, recreate missing files, and get packages.
- name: Checkout smarthome code
uses: actions/checkout@v2
uses: actions/checkout@v5
- run: flutter create . --project-name smarthome
- run: flutter pub get


- name: Configure Keystore for Android
if: matrix.target == 'Android'
Expand All @@ -122,16 +126,23 @@ jobs:
echo "keyAlias=$KEYSTORE_KEY_ALIAS" >> key.properties
echo "storePassword=$KEYSTORE_STORE_PASSWORD" >> key.properties
echo "keyPassword=$KEYSTORE_KEY_PASSWORD" >> key.properties
echo "$(ls)"
env:
PLAY_STORE_UPLOAD_KEY: ${{ secrets.PLAY_STORE_UPLOAD_KEY }}
KEYSTORE_KEY_ALIAS: ${{ secrets.KEYSTORE_KEY_ALIAS }}
KEYSTORE_KEY_PASSWORD: ${{ secrets.KEYSTORE_KEY_PASSWORD }}
KEYSTORE_STORE_PASSWORD: ${{ secrets.KEYSTORE_STORE_PASSWORD }}
working-directory: android

# Build the application.
- run: flutter build -v ${{ matrix.build_target }} --release
- name: Run code generators
run: flutter pub run build_runner build

- name: Build non Android
if: matrix.target != 'Android'
run: flutter build -v ${{ matrix.build_target }} --release

- name: Android Build
if: matrix.target == 'Android'
run: flutter build -v ${{ matrix.build_target }} --release --no-tree-shake-icons

# Package the build.
- name: Copy VC redistributables to release directory for Windows
Expand Down
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
.pub-cache/
.pub/
build/
android/app/.cxx/

# Android related
**/android/**/gradle-wrapper.jar
Expand Down Expand Up @@ -72,3 +73,6 @@ build/
lib/syncfusion.dart
.flutter-plugins-dependencies
ios/Flutter/flutter_export_environment.sh
.flutter-plugins-dependencies
*.g.dart
**/.vs/*
Binary file added Skizze.xcf
Binary file not shown.
48 changes: 48 additions & 0 deletions analysis_options.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# This file configures the analyzer, which statically analyzes Dart code to
# check for errors, warnings, and lints.
#
# The issues identified by the analyzer are surfaced in the UI of Dart-enabled
# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be
# invoked from the command line by running `flutter analyze`.

# The following line activates a set of recommended lints for Flutter apps,
# packages, and plugins designed to encourage good coding practices.
include: package:flutter_lints/flutter.yaml

analyer:
exclude:
- 'build/**'
- '**.g.dart'

linter:
# The lint rules applied to this project can be customized in the
# section below to disable rules from the `package:flutter_lints/flutter.yaml`
# included above or to enable additional rules. A list of all available lints
# and their documentation is published at
# https://dart-lang.github.io/linter/lints/index.html.
#
# Instead of disabling a lint rule for the entire project in the
# section below, it can also be suppressed for a single line of code
# or a specific dart file by using the `// ignore: name_of_lint` and
# `// ignore_for_file: name_of_lint` syntax on the line or in the file
# producing the lint.
rules:
# Style rules
- camel_case_types
- library_names
- avoid_catching_errors
- avoid_empty_else
- unnecessary_brace_in_string_interps
- avoid_redundant_argument_values
- leading_newlines_in_multiline_strings
- prefer_final_in_for_each
- prefer_final_locals
- prefer_final_parameters
# doc comments
- slash_for_doc_comments
- curly_braces_in_flow_control_structures: false
# avoid_print: false # Uncomment to disable the `avoid_print` rule
# prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule

# Additional information about this file can be found at
# https://dart.dev/guides/language/analysis-options
Loading