A rewrite of the devolo Cockpit front end in Flutter

Overview

Cockpit Open Frontend

pipeline status coverage report



Cockpit Open Frontend is an alternative frontend for devolo Cockpit application. It uses the existing backend of devolo Cockpit application. It is written in Flutter and supports all desktops: Windows, macOS, and Linux. Here are some highlights of this app:

  • Provides an overview of connection speed of all powerline adapters from devolo on your network. You can see how high the data transmission is, for example, between the study and the living room.
  • If new firmware updates are available for adapters, updates can be applied directly via the network.
  • Provides control over encryption and other configuration settings.

Installation

Tips

  • To ensure Flutter is setup correctly, you can run the $ flutter doctor command in Terminal or Command Prompt.
  • To ensure that you have enabled desktop support for your device, run the $ flutter devices command in Terminal or Command Prompt.

Building and Running the App

To build and run the app on command-line, use the following commands:

$ cd cockpit_open_frontend
$ flutter run -d <platform>

where platform is windows, macos, or linux.

To build and run the app on programming IDEs, see instructions from Flutter for Android Studio and IntelliJ, and Visual Studio Code.
For Visual Studio Code and Linux users we provide a devcontainer which allows you to start developing inside a container. You need the devolo Cockpit application on your host system and you need to run xhost +local: if you want to see the UI while debugging.

Building Releases

  • To generate a release build, run the command: $ flutter build <platform>, where platform is windows, macos, or linux.

  • The executables and the data folder can be found in:

    • Windows: …/cockpit_open_frontend/build/windows/runner/Release
    • macOS: …/cockpit_open_frontend/build/macos/Build/Products/Release
    • Linux: …/cockpit_open_frontend/build/linux/release/bundle
  • Navigate in Terminal or Command Prompt to the above path and run:

    • Windows devoloCockpit (Note: Opening the app by double-clicking will result in an error - this is a known limitation of the current implementation.)
    • macOS: ./cockpit_open_frontend.app
    • Linux: ./devoloCockpit

Contributing

If you are interested in contributing to this project, check out Contributions Guide.

Comments
  • CI: Add nightly build for android, iOS, Web,  Windows, Linux and macOS

    CI: Add nightly build for android, iOS, Web, Windows, Linux and macOS

    Using the same GitHub Action which is already in use for the unit tests, add a nightly build for all flutter supported platforms.

    The configuration of the jobs is basically that which the readme of the Action is outlining: I do not know which platforms are intended to be supported - this is the maximum possible, feel free to adjust accordingly.

    https://github.com/subosito/flutter-action

    opened by olof-nord 5
  • Linux support?

    Linux support?

    Hello devolo,

    I found this repo, while looking for the devolo Cockpit source code.

    In the readme, Linux is listed as a supported platform, however it does not work for me.

    I understand this is probably a WIP project, but throught I should let you know anyhow. Your open-source approach to the re-write is greatly appreciated.

    ➜  cockpit_open_frontend git:(develop) ✗ flutter run -d linux
    No devices found with name or id matching 'linux'
    ➜  cockpit_open_frontend git:(develop) ✗
    
    ➜  cockpit_open_frontend git:(develop) flutter build linux 
    Downloading linux-x64/linux-x64-flutter-gtk tools...             2,443ms
    Downloading linux-x64-profile/linux-x64-flutter-gtk tools...      1,529ms
    Downloading linux-x64-release/linux-x64-flutter-gtk tools...      1,077ms
    Running "flutter pub get" in cockpit_open_frontend...              11.2s
    "build linux" is not currently supported. To enable, run "flutter config --enable-linux-desktop".
    ➜  cockpit_open_frontend git:(develop) ✗
    
    opened by olof-nord 4
  • Add GitHub workflow

    Add GitHub workflow

    Looking at the repo, as there is a gitlab CI file, I am guessing somewhere a pipeline is executed.

    As to also automatically test GitHub pull requests, one idea would be to add a GitHub Workflow which does the same as the GitLab CI.

    This PR is implementing a GitHub Workflow which does roughly the same as the GitLab CI automation.

    opened by olof-nord 3
  • intl: EN: Remove plural s for

    intl: EN: Remove plural s for "information"

    Hello Devolo team!

    Usually the usage of the English word "information" is uncountable.

    Me reading this message made me assume it was a translation mistake, the Wiktionary [1] entry lists it as usually uncountable.

    With this PR I can only talk for myself, and perhaps if you have a translation team ask them what they say?

    btw: many thanks for the recent updates, now I can run the application locally without any problems.

    [1] https://en.wiktionary.org/wiki/information

    opened by olof-nord 3
  • Update

    Update "provider" dependency to v6

    Update "provider" dependency to v6.

    This as to address the following build error:

    $ flutter build linux                  
    
    💪 Building with sound null safety 💪
    
    ERROR: ../../.pub-cache/hosted/pub.dartlang.org/provider-5.0.0/lib/src/inherited_provider.dart:391:26: Warning: Operand of null-aware operation '!' has type 'SchedulerBinding' which excludes null.
    ERROR:  - 'SchedulerBinding' is from 'package:flutter/src/scheduler/binding.dart' ('/opt/flutter/packages/flutter/lib/src/scheduler/binding.dart').
    ERROR:         SchedulerBinding.instance!.addPostFrameCallback((_) {
    ERROR:                          ^
    Building Linux application...             
    
    opened by olof-nord 2
  • Fix compilation errors

    Fix compilation errors

    Fix compilation errors in the main and lib/shared/informationDialogs files.

    Without these adjustments, the project does not build on my local machine.

    ➜  cockpit_open_frontend git:(develop) ✗ flutter run -d linux      
    Launching lib/main.dart on Linux in debug mode...
    ERROR: lib/main.dart:301:22: Warning: Operand of null-aware operation '!' has type 'WidgetsBinding' which excludes null.
    ERROR:  - 'WidgetsBinding' is from 'package:flutter/src/widgets/binding.dart' ('/opt/flutter/packages/flutter/lib/src/widgets/binding.dart').
    ERROR:       WidgetsBinding.instance!.addPostFrameCallback((_) {
    ERROR:                      ^
    ERROR: lib/shared/informationDialogs.dart:896:23: Error: Expected ',' before this.
    ERROR:                       Row(
    ERROR:                       ^^^
    ERROR: ../../.pub-cache/hosted/pub.dartlang.org/provider-5.0.0/lib/src/inherited_provider.dart:391:26: Warning: Operand of null-aware operation '!' has type 'SchedulerBinding' which excludes null.
    ERROR:  - 'SchedulerBinding' is from 'package:flutter/src/scheduler/binding.dart' ('/opt/flutter/packages/flutter/lib/src/scheduler/binding.dart').
    ERROR:         SchedulerBinding.instance!.addPostFrameCallback((_) {
    ERROR:                          ^
    Building Linux application...                                           
    Exception: Build process failed
    

    Additionally, the automatically updated files following executing flutter pub upgrade are also added.

    opened by olof-nord 2
  • Add vscode devcontainer

    Add vscode devcontainer

    Microsoft Visual Studio code supports an easy start in development using devcontainer. They come will all the packages that I need to start development right away.

    The devcontainer was developed and tested on Linux, other OS still need some love.

    This devcontainer requires two things: you need to start the devolonetsvc on the host system to see devices and you need to run 'xhost +local:' if you want to see the UI while debugging.

    opened by Shutgun 2
  • Amazing progress!

    Amazing progress!

    Hello devolo team,

    I just had to compliment the team and the recent development efforts!

    The adjusted/new(?) device icons and dark mode looks absolutely great.

    Perhaps its worth updating the screenshot in the readme as a way to show the work?

    opened by olof-nord 1
  • Pubspec: Replace no longer supported git:// dependency usage for URL

    Pubspec: Replace no longer supported git:// dependency usage for URL

    Fix the build on Linux by replacing the git:// prefix with https://.

    Without this, the following error is shown:

    ➜  cockpit_open_frontend git:(develop) ✗ flutter pub upgrade
    Resolving dependencies...
    Git error. Command: `git fetch`
    stdout: 
    stderr: fatal: remote error: 
      The unauthenticated git protocol on port 9418 is no longer supported.
    Please see https://github.blog/2021-09-01-improving-git-protocol-security-github/ for more information.
    exit code: 128
    pub finished with exit code 69
    ➜  cockpit_open_frontend git:(develop) ✗ 
    

    For further details, see this issue:

    https://github.com/flutter/flutter/issues/96456

    Lastly, this PR also suggest to document a workaround for another error, one which have happened to me after each flutter upgrade.

    ➜  cockpit_open_frontend git:(develop) ✗ flutter run -d linux
    Downloading linux-x64/linux-x64-flutter-gtk tools...                3.1s
    Downloading linux-x64-profile/linux-x64-flutter-gtk tools...      1,406ms
    Downloading linux-x64-release/linux-x64-flutter-gtk tools...      1,083ms
    Running "flutter pub get" in cockpit_open_frontend...              10.2s
    Launching lib/main.dart on Linux in debug mode...
    add_custom_command() missing VERBATIM or FLUTTER_TARGET_PLATFORM, updating.
    ERROR: ../../.pub-cache/hosted/pub.dartlang.org/platform-3.0.0/lib/src/interface/local_platform.dart:46:19: Error: Member not found: 'packageRoot'.
    ERROR:       io.Platform.packageRoot; // ignore: deprecated_member_use
    ERROR:                   ^^^^^^^^^^^
    Building Linux application...                                           
    Exception: Build process failed
    ➜  cockpit_open_frontend git:(develop) ✗
    
    opened by olof-nord 0
  • GitHub unit test action

    GitHub unit test action

    Inspired by #8 I created an action that runs the unit test on push. As far as I can see, it should do the same as the gitlab CI but as efficient as possible.

    opened by Shutgun 0
  • Add vscode dev container

    Add vscode dev container

    Microsoft Visual Studio code supports an easy start in development using devcontainer. They come will all the packages that I need to start development right away.

    The devcontainer was developed and tested on Linux, other OS still need some love.

    This devcontainer requires two things: you need to start the devolonetsvc on the host system to see devices and you need to run 'xhost +local:' if you want to see the UI while debugging.

    opened by Shutgun 0
Owner
devolo AG
Innovative Powerline and data communications products for private customers and professional users.
devolo AG
A M.U.D (multi user dungeon) with a back end API built with nestjs and a front end UI built with Flutter.

Nest M.U.D - Getting Started Getting Started How to Play API Design A M.U.D (multi user dungeon) with a back end API built with nestjs and a front end

Ben 4 Aug 3, 2022
Blog App Development Front-End and Back-End using Flutter, ExpressJs, NodeJS, and MongoDB

Blog App Development Front-End and Back-End using Flutter, ExpressJs, NodeJS, and MongoDB

null 2 Dec 14, 2022
A clean front-end to Volumio, the Linux distribution for music playback. DigiPlayer is written in Flutter.

EN | 中文 DigiPlayer - A Clean Touch UI for Volumio 3 DigiPlayer is a clean touch UI for Volumio 3, written in Flutter for the Raspberry Pi Touch Displa

Feng Zhou 5 Jul 26, 2022
Front-end of multiplayer web3 games implemented with Flutter to run on all platforms (Web, Android, iOS, Linux, Window, macOS, TV-OS)

Front-end of multiplayer web3 games implemented with Flutter to run on all platforms (Web, Android, iOS, Linux, Window, macOS, TV-OS)

R-Team 5 Nov 15, 2022
An alternative front-end to GoogleTranslate

SimplyTranslate Mobile (Unofficial) An alternative front-end to GoogleTranslate Download Via F-Droid: com.simplytranslate_mobile. For the most up-to-d

null 101 Dec 28, 2022
Ini merupakan repository yang ditujukan untuk memenuhi persyaratan Front-End Developer di Sribuu.

Sribuu Home Task - Movie App Ini merupakan repository yang ditujukan untuk memenuhi persyaratan Front-End Developer di Sribuu. Dimana pada aplikasi in

Tegar Yasindra 0 Dec 30, 2021
An end-to-end Flutter app built to get details and trending recipes - made as a part of the book 'Flutter Apprentice' by raywenderlich.com

Fooderlich - Flutter Apprentice An end-to-end Flutter app built to get details and trending recipes - made as a part of the book 'Flutter Apprentice'

Suvaditya Mukherjee 1 Dec 4, 2021
Corona Shield is an open sourced Corona Tracking Mobile Application with Back-end made by Amine Jafur with ♥ using Flutter, PHP, JS.

Corona-Shield A Corona Tracking Mobile Application. Corona Shield is an open sourced Corona Tracking Mobile Application with Back-end made by Amine Ja

Amine Jafur 56 Dec 11, 2022
Venni client app - A flutter ride-sharing end-user app supporting map location picking

Venni client app - A flutter ride-sharing end-user app supporting map location picking, driver location tracking, in-app credit card payments, trip rating system, and trip history.

Abrantes 1 Jan 3, 2022
It is a simple group chat application made with flutter back-end by Firebase. People can chat like a community chat.

flash_chat A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if th

Moideen Rafih P A 4 Aug 7, 2022
Upper is a open source back-end framework based on the Dart language.

What is Upper? Upper is a open source back-end framework based on the Dart language. With it, it is possible to automatically generate a gRPC API for

Andriws Luna 40 Sep 5, 2022
Dicoding End Capstone

votie A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if this is

Mineversal 5 May 18, 2022
Flutter Music Player - First Open Source Flutter based material design music player with audio plugin to play local music files.

Flutter Music Player First Open Source Flutter based Beautiful Material Design Music Player(Online Radio will be added soon.) Demo App Play Store BETA

Pawan Kumar 1.5k Jan 8, 2023
a project for learning all Flutter Widgets , sync from flutter.dev the officia website.

Flutter Widgets Catalog (WIP) 计划 1、使用Flutter开发一个全平台的Flutter Widgets Catalog APP,并且开源。在这个APP中可以通过图形化的方式查看所有Widgets的介绍,示例,视频教程。 2、所有文档内容由前一天从flutter.dev

ezshine 32 Aug 3, 2022
A low-cost Flutter screen adaptation solution(一个极低成本的 Flutter 屏幕适配方案)

A low-cost Flutter screen adaptation solution(一个极低成本的 Flutter 屏幕适配方案) 100% 还原 UI,只需要按照设计图写的宽高写即可 先看图片,设置的标准宽度是 360 iPhone 8 --------------------------

聂志洋 108 Sep 27, 2022
Flutter 2.0 (Null safety) Basic, Dynamic & Silver style Staggered Grid views made using flutter staggered grid view package. 🦺

Staggered Grid View Developement Stack Getting Started This project is a starting point for a Flutter application. A few resources to get you started

Nakshatra Singh 9 Oct 28, 2022
A Flutter package that makes it easy to customize and work with your Flutter desktop app's system tray.

system_tray A Flutter package that that enables support for system tray menu for desktop flutter apps. on Windows, macOS and Linux. Features: - Modify

AnTler 140 Dec 30, 2022
Email and Password Authentication In Flutter & Firebase in Flutter 2.2

Email and Password Authentication In Flutter & Firebase in Flutter 2.2

BackSlash Flutter 43 Nov 23, 2022