sailoog / openplotter

Obsolete project. New one and active: https://github.com/openplotter
http://www.sailoog.com/openplotter
GNU General Public License v2.0
153 stars 53 forks source link

Prevent case where no self.data['pipedProviders'] is set at line 104 #251

Closed FredericGuilbault closed 5 years ago

FredericGuilbault commented 5 years ago

This is partial fix for https://github.com/sailoog/openplotter/issues/250

sailoog commented 5 years ago

We are rebuilding SK_settings.py. when changes are done we will see how we can add your changes

tkurki commented 5 years ago

I am curious: what settings are going to be OpenPlotter-managed? The reason I am asking is that now that SK server has a reasonable admin ui

FredericGuilbault commented 5 years ago

For my part, none. But AFAIK, SK still lack of a way to manage pipedProvider programmatically on the run. So I could see a need here.

tkurki commented 5 years ago

The ui can change some settings via http api. Not live, but a restart is not a huge issue. There is nothing fundamental blocking live updates, but nobody’s done the work.

I was more referring to rebuilding sk_settings.py.

sailoog commented 5 years ago

I think SK admin ui is more than reasonable now.

We have learned a lot these years from users feedback, last year we had more than 10,000 downloads and now we can define some usability patterns. In general people understand quite well the logic: data source -> (gpsd/kplex/pypilot) -> SK -> opencpn but some users still need help. They do not understand they do not have to do anything in opencpn to get data because SK is in charge of this or some users even do not understand why is SK there in the middle. Another shaking things is using N2K devices also as data output because data providers sounds to "just inputs" and many users fail searching or using the right plugin to do something. These would be the most common issues related to SK.

We will still keep some intervention with serial devices but we have tried to be more explicit and keep always the "manual" option in order to users can set their conf in every app. I would not say OpenPlotter-managed, I would say OpenPlotter-guided. These are the options to set a serial device:

The "manual" option just set an udev rule to remember devices. The rest of options create the needed settings and connections between apps automatically and according to the data will show advice messages like:

The N2K SK input has been created, edit SK to 0183 plugin (+link) to select what sentences you want in opencpn. This device can act as output too, if you want to send data from SK to your N2K network go to SK to N2K plugin (+link)

The 0183 SK input has been created

We have detected that you have deleted or disabled the input TCP localhost 10110 in opencpn. Please enable or create it to get data.

We will try to be no intrusive so manual and guided settings can coexist without problems. We do not manage network sources at all. Now kplex is optional. This time we will pay special attention to docs.

Restarting SK is not a problem for us.

We will replace some old OP features by pre-installed/configured SK plugins. I may have some doubts about influxDB/grafana to ask to you I have tested a configuration and I love it I will add an small python interface to make easy manage logs, obviously SK log files feature will keep working (I have found also that no many people use them).

I think we do not have any suggestion to SK. We suggested bauds field for N2K devices and you already have added this. I will let you know if something should be done on your side.

tkurki commented 5 years ago

Ping @sbender9.

Thanks for the insights! I think we should consider renaming Data Providers to Data Connections or something along those lines.

Logging is always risky, because you may fill your disk.

For logs to be more useful I have been thinking of a plugin to upload raw or summary level (min/max/avg per minute) to your cloud storage (Dropbox, S3, others). See https://rclone.org. And then a website, browser-only with no backend, to show your log data (track & values) so that it retrieves the data from your own cloud storage.

sailoog commented 5 years ago

That cloud solution sounds great. I have decided to use influxDB for logging because you can set a retention policy and be sure your old data will be erased and your disk will be safe.

Agree renaming data providers