GithubHelp home page GithubHelp logo

ilpork / vahti Goto Github PK

View Code? Open in Web Editor NEW
10.0 10.0 6.0 3.67 MB

Home monitoring system with MQTT, NET backend, .NET MAUI mobile app and ReactJS web app

License: MIT License

Python 0.77% C# 84.73% HTML 0.56% JavaScript 12.02% CSS 1.92%
android ble dotnet home-automation ios maui mqtt react reactjs xamarin-forms

vahti's People

Contributors

ilpork avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

vahti's Issues

Calculated measurement values get no history data

When Vahti.Server is configured to publish history data to Firebase database, the calculated measurements of a SensorDevice are not included in published history data. No graph is shown in mobile/web app respectively.

Expected behavior is that calculated measurements get history data in same way as "regular" measurement data gets.

Add widget for Android app

A home screen widget would provide a quick overview of values selected sensors. I had a simple widget in first version of the app, but it wasn't configurable, so I removed it from the project. The target is now to make a widget, which can show values from three sensors, and those sensors can be selected in the app.

It also requires different approach in selecting the items to be shown in overview tab in app (now it's done on location details page. Options page could provide means to define visibility in both use cases (overview page and widget).

Stability issues with BlueZ/D-Bus/Bluetooth when scanning BLE devices

I've noticed with my Raspberry Pi 4 (using Raspbian Buster and BlueZ 5.50) that Vahti.Collector runs fine for a couple of days or so, but then starts to get random errors from D-Bus like org.freedesktop.DBus.Error.UnknownObject: Method "GetAll" with signature "s" on interface "org.freedesktop.DBus.Properties" doesn't exist.

While Vahti.Collector continues to run despite of random errors, they get more and more frequent as time goes on. Vahti.Collector uses BleReader.Net, which uses DotNet-BlueZ, which uses the D-Bus. Those components seem also to be affected by these issues too.

Workaround to this problem is to restart the Bluetooth and Vahti services periodically.
Add RuntimeMaxSec=86400 line in Service section of /etc/systemd/system/bluetooth.target.wants/bluetooth.service. The number is the time (in seconds) to pass before service is restarted (86400 is one day).

Respectively Vahti itself can be restarted periodically in same way. See Setting Up Raspberry Pi for details on how to run it as service.

Fixing this problem is likely not easy as it seems to originate from Bluez/D-Bus. I'll go with the workaround for now and investigate this more later, especially if someone else encounters these issues too.

Add support for collecting other type of sensor data

Currently BluetoothGw project is meant to collect data from Bluetooth LE devices. It'd be good to be provide general support for reading other type of sensor data too (like System.Device.Gpio and Iot.Device.Bindings.

Graph is not shown in mobile app if all Y-axis values are same

If sensor history values have no variance (like a movement counter of a sensor which is not moved), showing the graph fails and error is shown instead of the graph:
OxyPlot exception: Step cannot be zero or negative

Expected behavior is that graph should be shown even if graph is straight line.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.