SignalK / signalk-server

An implementation of a Signal K central server for boats.
http://signalk.org
Apache License 2.0
308 stars 153 forks source link

Add signalk-server to Venus OS #517

Closed mpvader closed 1 year ago

mpvader commented 6 years ago

And then nice to haves


The short story:

Status: its ready to be tested; and perhaps its even finished enough to be just used.

How can you use it? See (draft) Venus OS Signalk manual.

Why should I use this to have Signalk? Well; that depends on what you're looking for. If you want to have all things under control; self install, for example, a raspberrypi, configure it, tweak it, modify it; maintain it; and manually install Signalk as well as keep it all update date -manually-; and either already have- or want to learn linux commandline skills, then go here, do that and forget about Venus OS + Signalk.

If you want to use Signalk as if you'd gone to the store and bought a box that should -more or less- just work; then Venus OS + Signalk is good to consider. Its intention is to be a finished (technical-)consumer type product that doesn't need any special computer skills; and especially does not require linux skills.

Where the Venus GX comes in is that its like a raspberrypi; but then in a nice box; with nice connectors; wide input power supply (9 to 70 VDC); canbus; and more. Not such a rat's nest of usb cables like Pi setups.

What about updates? Both Venus OS as well as Signalk keep improving; new versions are released regularly. I'll be regularly making a new version now of Venus OS + Signalk; which can be installed easily: note that for now; you can only update by USB stick. Using the Firmware update menu will result in installing a normal image: without signalk. Settings; such as configured data providers; will remain in place when doing either update: going back to a normal one; or a newer one that has signalk.

What about support? For support on signalk; use its Slack or mailinglist. For support on Venus OS + SignalK; preferably use the #victron channel in SignalK slack. Whatever you do; don't use official Victron support channels; they are not setup to help with this.

Are there limitations? Yes, compared to a self-installed signalk there are limitations. Especially when it comes to installing plugins. Installing plugins that need compilation is currently not possible; and also all plugins will be installed on the data partition; which has its limits when it comes to diskspace. The idea is to have all normally used plugins installed by default: so if you think something is missing; please ping me on the #victron channel on Slack.

OK, I'm convinced; where can I get this? See (draft) Venus OS Signalk manual.


The long story:

0. Introduction

See here for what Venus OS is. The idea is to either add SignalK to standard Venus as released by Victron, or otherwise at least be able to make an alternative build of Venus that includes nodejs & SignalK server.

Its current status is that I can build Venus images that include signalk for both the Venus GX hardware (has two canbus ports) and also the raspberrypy image (for rpi2 & 3) builds. There is no way to put it on the CCGX, as its flash memory is too small. For more details, see below.

This project is looking for people that have spare time. See below for how to get up to the current state of the project and start contributing :smile:.

I. Context

Getting Victron data into SignalK server is already possible, see the venus-plugin. Its common use now is to run SignalK-server one one machine (a raspberrypi most often), and then connect the Venus running on another machine (a Color Control GX, or Venus GX for example).

This project is about running it all in one piece of kit; removing the need for an additional box.

And also this project is an option to make SignalK available more easy: ie pre-installed and very easily and robustly updateable. Note that other options are also pursued elsewhere, see for example #464. And also the recent Docker work by @tkurki (tbd. is there info or a link to somewhere?).

Note that manually installing SignalK on a Venus device has been done, and is documented here.

II. The work:

1. add nodejs & npm. DONE.

2. add signalk. DONE.

3. disk space. DONE.

Adding nodejs and signalk requires quite some extra space (see somewhere below in the comments for how much). And see this overview for available space on various hardware that can run Venus. In more detail per machine (=hw model):

mpvader commented 6 years ago

Some notes on the OE npm-fetcher:

Success!

So same for mdns:

serialport:

Note that after above steps, those recipes are still in the devtool workspace. See devtool docs for how to get them in one of the metas.

mpvader commented 6 years ago

Building an image nodejs 8.4.0 on it works fine. Tested on the raspberrypi. It adds 15MB of diskspace:

# opkg files nodejs
Package nodejs (8.4.0-r0) is installed on root and has the following files:
/usr/bin/node

# ls -al /usr/bin/node
-rwxr-xr-x    1 root     root      15069744 Apr 17 20:24 /usr/bin/node
mpvader commented 6 years ago

Just now remembered that signalk requires npm runtime. For (un)installing plugins from the admin. Added that. Effect on the disk space is a further chunk of 18.034 bytes out. Installed npm version is 5.3.0.

I've also added npm to above summary.

Remaining space before starting the next experiment (run npm i -g --unsafe-perm signalk-server on the pi itself) was 174265.

mpvader commented 6 years ago

Prepare for installing signalk-server (manually! not yet as part of the rootfs) by setting up python-compiler. It is required by the (few) packages that need pre-compilation. Above I already mentioned a possible way around this.

/opt/victronenergy/swupdate-scripts/set-feed.sh candidate
opkg update
opkg install packagegroup-core-buildessential  python-compiler python-misc git-perltools

After that there is a measily 7MB of free disk space left. Perhaps next step is to indeed pre-install serialport, socketcan and optionally also mdns on the rootfs.

mpvader commented 6 years ago

Also added a receipt for the node package bcrypt

devtool add "npm://registry.npmjs.org;name=bcrypt;version=1.0.3"
devtool finish bcrypt meta-third-party

Status update:

looks like I have a recipe that packages signalk-server (minus brypt, serial-port and the others) up without issues. Now there is an error when I try to install the generated swu using swu.sh.

Which I'll look into next time I have time.

${D}//usr/lib/node-modules/signalk-server size is 77MB

Latest error:

matthijs@matthijs-virt-i686:/media/venusbuilds/venus$ bb> ./swu.sh 192.168.178.151
Warning: Permanently added '192.168.178.151' (ECDSA) to the list of known hosts.
Warning: Permanently added '192.168.178.151' (ECDSA) to the list of known hosts.
*** Checking for updates ***
arguments: -swu file:///dev/stdin
Updating to file:///dev/stdin
Starting swupdate to install version file:///dev/stdin ...
software set: stable mode: copy2
Swupdate v2016.10.0

Licensed under GPLv2. See source distribution for detailed copyright notices.

Registered handlers:
    archive
    tar
    raw
    rawfile
    uboot
Main loop Daemon
[NOTIFY] : SWUPDATE running :  [network_thread] : Incoming network request: processing...
[NOTIFY] : SWUPDATE started :  Software Update started !
[NOTIFY] : SWUPDATE downloading :  
[NOTIFY] : SWUPDATE running :  [download_from_url] : Image download started : file:///dev/stdin
[NOTIFY] : SWUPDATE running :  [extract_file_to_tmp] : Found file:
    filename sw-description
    size 789
Version 0.1.0
[NOTIFY] : SWUPDATE running :  [parse_images] : Found compressed Image  : venus-image-raspberrypi2.ext4.gz in device : /dev/mmcblk0p3 for handler raw (installed from stream) 

[NOTIFY] : SWUPDATE running :  [parse_uboot] : U-Boot var: version = 2

[NOTIFY] : SWUPDATE running :  [extract_files] : Found file:
    filename venus-image-raspberrypi2.ext4.gz
    size 121370286 required
[NOTIFY] : SWUPDATE running :  [extract_files] : Installing STREAM venus-image-raspberrypi2.ext4.gz, 121370286 bytes

[NOTIFY] : SWUPDATE running :  [install_single_image] : Found installer for stream venus-image-raspberrypi2.ext4.gz raw
[NOTIFY] : SWUPDATE running :  [download_info] : Received : 2842622 / 0
[NOTIFY] : SWUPDATE running :  [download_info] : Received : 6733823 / 0
[NOTIFY] : SWUPDATE running :  [download_info] : Received : 10272767 / 0
[NOTIFY] : SWUPDATE running :  [download_info] : Received : 13680639 / 0
[NOTIFY] : SWUPDATE running :  [download_info] : Received : 15613951 / 0
[NOTIFY] : SWUPDATE running :  [download_info] : Received : 18595839 / 0
[NOTIFY] : SWUPDATE running :  [download_info] : Received : 22003711 / 0
[NOTIFY] : SWUPDATE running :  [download_info] : Received : 25214975 / 0
[NOTIFY] : SWUPDATE running :  [download_info] : Received : 28983295 / 0
[NOTIFY] : SWUPDATE running :  [download_info] : Received : 32849919 / 0
[NOTIFY] : SWUPDATE running :  [download_info] : Received : 36388863 / 0
[NOTIFY] : SWUPDATE running :  [download_info] : Received : 39600127 / 0
[NOTIFY] : SWUPDATE running :  [download_info] : Received : 42713087 / 0
[NOTIFY] : SWUPDATE running :  [download_info] : Received : 45924351 / 0
[NOTIFY] : SWUPDATE running :  [download_info] : Received : 48676863 / 0
[NOTIFY] : SWUPDATE running :  [download_info] : Received : 51855359 / 0
[NOTIFY] : SWUPDATE running :  [download_info] : Received : 55050240 / 0
[NOTIFY] : SWUPDATE running :  [download_info] : Received : 59064319 / 0
[NOTIFY] : SWUPDATE running :  [download_info] : Received : 62111743 / 0
[NOTIFY] : SWUPDATE running :  [download_info] : Received : 65060863 / 0
[NOTIFY] : SWUPDATE running :  [download_info] : Received : 68173823 / 0
[NOTIFY] : SWUPDATE running :  [download_info] : Received : 71286783 / 0
[NOTIFY] : SWUPDATE running :  [download_info] : Received : 74432511 / 0
[NOTIFY] : SWUPDATE running :  [download_info] : Received : 77578239 / 0
[NOTIFY] : SWUPDATE running :  [download_info] : Received : 80887807 / 0
[NOTIFY] : SWUPDATE running :  [download_info] : Received : 84099071 / 0
[NOTIFY] : SWUPDATE running :  [download_info] : Received : 87113727 / 0
[NOTIFY] : SWUPDATE running :  [download_info] : Received : 90324991 / 0
[NOTIFY] : SWUPDATE running :  [download_info] : Received : 93536255 / 0
[NOTIFY] : SWUPDATE running :  [download_info] : Received : 96206848 / 0
[NOTIFY] : SWUPDATE running :  [download_info] : Received : 100450303 / 0
[NOTIFY] : SWUPDATE running :  [download_info] : Received : 103923711 / 0
[NOTIFY] : SWUPDATE running :  [download_info] : Received : 107298815 / 0
[NOTIFY] : SWUPDATE running :  [download_info] : Received : 111165439 / 0
[NOTIFY] : SWUPDATE running :  [download_info] : Received : 114802687 / 0
[NOTIFY] : SWUPDATE running :  [download_info] : Received : 118439935 / 0
ERROR core/cpio_utils.c : copyfile : 180 : gunzip failure -5 (errno 28) -- aborting

[NOTIFY] : SWUPDATE failed [0] ERROR core/cpio_utils.c : copyfile : 180 : gunzip failure -5 (errno 28) -- aborting

[NOTIFY] : SWUPDATE running :  [install_single_image] : Installer for raw not successful !
ERROR corelib/stream_interface.c : extract_files : 251 : Error streaming venus-image-raspberrypi2.ext4.gz
[NOTIFY] : SWUPDATE failed [0] ERROR corelib/stream_interface.c : extract_files : 251 : Error streaming venus-image-raspberrypi2.ext4.gz
[NOTIFY] : SWUPDATE failed [1] Image invalid or corrupted. Not installing ...
[NOTIFY] : SWUPDATE running :  [network_initializer] : Main thread sleep again !
[NOTIFY] : No SWUPDATE running :  Waiting for requests...
ERROR corelib/downloader.c : write_data : 104 : Failure writing into IPC Stream

Main loop Daemon
[NOTIFY] : SWUPDATE failed [0] ERROR corelib/downloader.c : write_data : 104 : Failure writing into IPC Stream

[NOTIFY] : SWUPDATE running :  [download_info] : Received : 121470974 / 0
[NOTIFY] : SWUPDATE running :  [download_from_url] : Connection with server interrupted, try RESUME after 121470974
[NOTIFY] : SWUPDATE running :  [download_from_url] : Connection with server interrupted, try RESUME after 121470974
[NOTIFY] : SWUPDATE running :  [download_from_url] : Connection with server interrupted, try RESUME after 121470974
^C
tkurki commented 6 years ago

Fyi bcrypt was replaced with bryptjs in 6c09750.

mpvader commented 6 years ago

Thanks, I’ll update the version I’m using; it is still v1.0.0

mpvader commented 6 years ago

Success! I've managed to build a Venus OS images for the raspberrypy, including signalk-server v1.2.1, together with its dependencies. And it runs fine for as far as I can see.

For some reason that I don't understand yet, the full images can be burned to sdcard without issues (and 43MB of free space). While installing the swu gives above mentioned error.

Diskspace used by signalk v1.2.1 and its dependencies is 142.6MB. Which on a v2.20~22 raspberrypi image leaves 42MB free on the rootfs.

Details:

root@raspberrypi2:~# node -v
v8.4.0
root@raspberrypi2:~# npm -v
5.3.0

root@raspberrypi2:~# du -sh /usr/lib/node_modules/signalk-server 
91.1M   /usr/lib/node_modules/signalk-server
root@raspberrypi2:~# du -sh /usr/lib/node_modules/serialport    
7.9M    /usr/lib/node_modules/serialport
root@raspberrypi2:~# du -sh /usr/lib/node_modules/npm       
26.3M   /usr/lib/node_modules/npm
root@raspberrypi2:~# du -sh /usr/lib/node_modules/socketcan 
2.3M    /usr/lib/node_modules/socketcan

# opkg files nodejs
Package nodejs (8.4.0-r0) is installed on root and has the following files:
/usr/bin/node

# ls -al /usr/bin/node
-rwxr-xr-x    1 root     root      15069744 Apr 17 20:24 /usr/bin/node
mpvader commented 6 years ago

I tested some things:

Next on the todo list:

For the run file:

mkdir -p /data/conf/signalk
/usr/lib/node_modules/signalk-server/bin/signalk-server -c /data/conf/signalk-server
tkurki commented 6 years ago

Would a USB GPS puck be something worth testing re serialport & NMEA0183 testing?

Is CAN/NMEA2000 access possible?

Plugin configuration is stored in plugin-config-data/<plugin-id>.json. If you prepopulate that with proper content, with "enabled": true the server will load & enable the plugin as you want it.

mpvader commented 6 years ago

Would a USB GPS puck be something worth testing re serialport & NMEA0183 testing?

Yes. I don’t have one at home though. Let me see what I can find.

Is CAN/NMEA2000 access possible?

Yes.

mpvader commented 6 years ago

An update: I've successfully built, installed and ran the new image on the Venus GX. Also I've updated the top section of this issue to reflect current status.

mpvader commented 6 years ago

An update:

I cannot think of any other required default configs. Let me know if I forgot something.

mpvader commented 6 years ago

We are changing the partitioning of the Venus GX in production: larger sizes; to better accommodate signalk or similar applications: https://github.com/victronenergy/meta-victronenergy/commit/9110beead383c22523512da992e2572c176febef

Will come into effect as soon as we officially release v2.20 and thereafter deploy it to the factory.

Note that it might take quite a while before we start shipping units partitioned like that. Until then the procedure that I mentioned elsewhere (where?) is required to increase partitions on a unit.

mpvader commented 6 years ago

v2.20~59-signalk was tested on a NMEA2000 network with AIS and such on a Venus GX. Works great!

Also I've rebased and cleaned up the commits:

https://github.com/victronenergy/meta-victronenergy/tree/matthijs/signalk

mpvader commented 6 years ago

All right, i made a newer version, that includes node red.

Files here:

Note that for the Venus GX, you one time need to burn the install sdcard img and run that to repartition. And from then onwards you’ll only need the swu file.

And, also with the larger partitions, it’s still possible to run the normal swu files that now don’t have signalk

mcules commented 6 years ago

Can you add a hint to disable auto updates to IV? If not disabled, its installing the stock update ;)

mpvader commented 5 years ago

Hey @mcules,

Yes done, thanks!

mpvader commented 5 years ago

An update:

sbender9 commented 5 years ago

I have created a script to give you the list of ttys that the server is using: https://github.com/SignalK/signalk-server-node/pull/658

This outputs a json list of the devices:

$ ./bin/signalk-list-devices -s /usr/local/src/test_server_config/settings.json
["/dev/something","/dev/tty.usbserial-2B688"]

Let m know if that's ok, or if you would like it in a different format.

mpvader commented 5 years ago

Making node-gyp, required by npm for packages with code that needs compiling, work on the target, requires these packages: python-compiler, python-misc, packagegroup-core-buildessential. Maybe it also needs python-dev.

First I tried to it one by one; to minimize the number of added packages:

opkg install make
opkg install g++
opkg install g++-symlinks
and then when it failed on yet another (cc1plus), I gave up and installed the full thing instead. To resume; just run npm install abstract-socket.

Note that in the end, npm is perhaps not necessary to run on the target. But it sure is nice for development.

tkurki commented 5 years ago

App store features use npm to do the actual installs. For js only modules npm is enough. Some modules may use native extensions and are troublesome in that respect.

An example is charts plugin that uses native sqlite drivers for .mbtiles support.

mpvader commented 5 years ago

Yes thats one of the questions coming once I get that installing finally sorted: is offering the appstore a good idea. And then how to do it: apps on data partition? Or in rootfs?

mpvader commented 5 years ago

An update! The last few days I've:

And built a new version, v2.30~23-signalk. For Venus GX; and first time I think, also for Raspberrypis.

folotp commented 5 years ago

Are you going to build a new version with Venus OS 2.32? Will this Signal K build ever become the standard Venus OS?

ghost commented 4 years ago

Hi there, awesome project! I'd like to try this but am confused by the apparent (to me) recursiveness of the installation steps i.e. in IV-2 it says to download the SWU to SD and flash but if you haven't resized, to follow the flash expansion steps which says to back up the config and boot from an IMG...

So which is the correct method or do you have to do both?

Sorry for being obtuse but it looks like you're upgrading twice?!

Thanks, Phil

mpvader commented 4 years ago

Hi @Phil-Taylor-IW if you need to do the repartitioning depends on the serial number of your unit.

HQ1842 and later already have the required partitioning straight from our stock.

Earlier units do need the repartitioning.

Installer images from v2.17 and later have the right partitioning.

ghost commented 4 years ago

Thanks @mpvader mine is HQ1829 down here in New Zealand so my upgrade path is: Re-partition the flash ABC

ghost commented 4 years ago

Hi @mpvader I followed the instructions, copied the config files off, then booted from the SD image. The GX flashed red then went green so I rebooted. Now it just flashes red and the SSID is nowhere to be seen. Did I do something wrong and brick it? Have restarted with SD both in and out if that matters, which I doubt.

mpvader commented 4 years ago

Hi, the SSID works again after you put those config files back. You can still access the ethernet port. (Sorry to hear if this means trouble). Dont worry about bricking: you cant brick it

ghost commented 4 years ago

Wasn't trying to see SSID prior to replacing files- just need any access - have tried usual method to connect but it seems SSH port is closed.

I'm a Pi-guy but like what you guys do with Beaglebone

mpvader commented 4 years ago

ok.. I'm not sure I understand, since you mentioned SSID in your first post, and now SSH?

Anyway, I'm afraid that I'm in a meeting today (and at METS rest of the week) so dont have time to look into it.

If all else fails; you can always use a serial console access. Its explained here: https://github.com/victronenergy/venus/wiki/bbb-user-instructions#connecting-to-the-console-developer-feature

ghost commented 4 years ago

Sorry to have confused you, I reread your documentation and have sorted it out and now run the Node-RED firmware. I'll load the SignalK stuff up next.

ghost commented 4 years ago

SignalK working fine thanks @mpvader - I hope METS goes well ;-)

ghost commented 4 years ago

I've attached a GPS to the GX but can't seem to find how to add the data to the SignalK data. Can someone please advise?

mpvader commented 4 years ago

lets start with a side note: I've restarted the conversation about this on the #victron channel in Signalk slack; welcome to join there. How to get there is for sure known by google, search for signalk slack or something ismilar.

Allright, an update: I've build Venus OS v2.50~2-signalk-1.

It builded almost straight away (some license issue which I've worked around for now). And it runs:

2019-12-21 10:42:36.000842500 *** Starting signalk ***
2019-12-21 10:43:28.615682500 signalk-server running at 0.0.0.0:3000
2019-12-21 10:43:28.615694500 
2019-12-21 10:43:29.690633500 21 Dec 10:43:29 - [info] 
2019-12-21 10:43:29.690643500 
2019-12-21 10:43:29.690645500 Welcome to Node-RED
2019-12-21 10:43:29.690647500 ===================
2019-12-21 10:43:29.690650500 
2019-12-21 10:43:29.696786500 21 Dec 10:43:29 - [info] Node-RED version: v0.19.6
2019-12-21 10:43:29.699934500 21 Dec 10:43:29 - [info] Node.js  version: v8.15.0
2019-12-21 10:43:29.702491500 21 Dec 10:43:29 - [info] Linux 4.9.194-venus arm LE
2019-12-21 10:43:29.854935500 A new version (1.18.0) of the server is available
2019-12-21 10:43:36.811315500 21 Dec 10:43:36 - [info] Loading palette nodes
2019-12-21 10:43:38.493880500 21 Dec 10:43:38 - [warn] rpi-gpio : Raspberry Pi specific node set inactive
2019-12-21 10:43:38.504005500 21 Dec 10:43:38 - [warn] rpi-gpio : Cannot find Pi RPi.GPIO python library
2019-12-21 10:43:44.938791500 21 Dec 10:43:44 - [info] Context store  : 'default' [module=memory]
2019-12-21 10:43:44.949770500 21 Dec 10:43:44 - [info] User directory : /data/conf/signalk/red
2019-12-21 10:43:44.950761500 21 Dec 10:43:44 - [warn] Projects disabled : set editorTheme.projects.enabled=true to enable
2019-12-21 10:43:44.954589500 21 Dec 10:43:44 - [info] Flows file     : /data/conf/signalk/red/flows_beaglebone.json
2019-12-21 10:43:44.977998500 21 Dec 10:43:44 - [info] Creating new flow file
2019-12-21 10:43:45.008695500 21 Dec 10:43:45 - [info] Starting flows
2019-12-21 10:43:45.019476500 21 Dec 10:43:45 - [info] Started flows

And works: image

Next step is to build with newer signalk installed; and perhaps also newer nodejs.

mpvader commented 4 years ago

I tried updating nodejs to version 10.something, by backporting the related commits from meta-openbedded master; but that fails because (apparently/looks like-) it needs openssl 1.1.0 or newer, and we're on 1.0.2.

This is the error:

| In file included from ../src/node.cc:39:0:
| ../src/node_crypto.h:82:46: error: ‘EVP_MD_CTX_free’ was not declared in this scope
|  using EVPMDPointer = DeleteFnPtr<EVP_MD_CTX, EVP_MD_CTX_free>;
|                                               ^
| ../src/node_crypto.h:82:61: error: template argument 2 is invalid
|  using EVPMDPointer = DeleteFnPtr<EVP_MD_CTX, EVP_MD_CTX_free>;
|                                                              ^
| ../src/node_crypto.h:455:25: error: ‘HMAC_CTX_free’ was not declared in this scope
|    DeleteFnPtr<HMAC_CTX, HMAC_CTX_free> ctx_;
|                          ^
| ../src/node_crypto.h:455:38: error: template argument 2 is invalid
|    DeleteFnPtr<HMAC_CTX, HMAC_CTX_free> ctx_;
|                                       ^
| ../src/node_crypto.h: In constructor ‘node::crypto::Hmac::Hmac(node::Environment*, v8::Local<v8::Object>)’:
| ../src/node_crypto.h:450:21: error: cannot convert ‘std::nullptr_t’ to ‘int’ in initialization
|          ctx_(nullptr) {
|                      ^
| ../src/node_crypto.h: At global scope:
| ../src/node_crypto.h:482:3: error: ‘EVPMDPointer’ does not name a type
|    EVPMDPointer mdctx_;
|    ^
| ../src/node_crypto.h: In constructor ‘node::crypto::Hash::Hash(node::Environment*, v8::Local<v8::Object>)’:
| ../src/node_crypto.h:477:9: error: class ‘node::crypto::Hash’ does not have any field named ‘mdctx_’
|          mdctx_(nullptr) {
|          ^
| ../src/node_crypto.h: At global scope:
| ../src/node_crypto.h:512:3: error: ‘EVPMDPointer’ does not name a type
|    EVPMDPointer mdctx_;
|    ^

For now I'll just go back to nodejs 8, ~sounds like that should still~ sbender confirmed that that will work fine. And for Venus OS we already started moving to OE Zeus version, which is a lot newer and has openssl 1.1.0 as default

mpvader commented 4 years ago

Venus OS v2.50~2 + nodejs 8.15 + signalk version 1.18.0:

For some reason I don't know yet, signalk doesn't run by default, it seems stuck. Downing the service (svc -d) and then starting it manually works. See cat /usr/lib/node_modules/signalk-server/bin/start-signalk.sh for how to start it manually.

mpvader commented 4 years ago

Hey @Phil-Taylor-IW , you wrote

I've attached a GPS to the GX but can't seem to find how to add the data to the SignalK data. Can someone please advise?

Is it recognised by Venus OS? Ie is there any data in the Settings -> GPS menu?

Then I’d expect it to be available on SignalK automatically. Otherwise please get in touch on the #victron channel in the signalk slack

mpvader commented 4 years ago

@folotp , a long time ago (sorry.. ), you wrote:

Are you going to build a new version with Venus OS 2.32? Will this Signal K build ever become the standard Venus OS?

Yes, I’d sure hope so. To get there we need some more interest and also some help in testing. See #victron in the signalk slack

tkurki commented 4 years ago

Node 8 is really near its LTS end of life image but as long as it works and there are no horrible security related problems it is ok. "Officially" we support only 10 and will be moving on to 12, no schedule for it yet. Afaik there are no showstoppers for going to 12, I updated serialport that is rather crucial for basic functionality to a version that is supposed to be compatible with 12.

So my advice would be to skip 10 and move on to 12, that is the latest LTS now. Any ballpark idea for OE Zeus - like before next northern hemisphere sailing season or after?

ghost commented 4 years ago

Hey @Phil-Taylor-IW , you wrote

I've attached a GPS to the GX but can't seem to find how to add the data to the SignalK data. Can someone please advise?

Is it recognised by Venus OS? Ie is there any data in the Settings -> GPS menu?

Then I’d expect it to be available on SignalK automatically. Otherwise please get in touch on the #victron channel in the signalk slack

@Phil-Taylor-IW From the SignalK Server Dashboard click on Webapps and then on Instrumentpanel. The fault view should show all data currently available including GPS data.

Just installed the image on a RPi and connected a GPS dongle. Recognised by Venus OS with Data in the menu and available in SignalK.

Bildschirmfoto 2020-02-07 um 14 41 52 Bildschirmfoto 2020-02-07 um 14 41 25

@mpvader Now I wonder if it works the other way around. GPS connected to NMEA 2000 network, picked up by SignalK and then available in Venus OS - or does it work in one direction only?

edit: answer (not possible) found in Signal K Venus OS draft installation guide.

However, I hope you guys keep working on it. Integration with Grafana/InfluxDB. Will definitely install on the Cerbo asap.

Stefanie

ghost commented 4 years ago

HI @MichelleWhy , I needed a stable Venus OS (this one was giving regular data disconnection alarms) so reverted back to the mainstream non-SK release which is working fine. Am running SK on OpenPlotter 2 / RPi4 and it's awesome but I think I'l wait until you integrate it into the main branch of Venus OS.

mpvader commented 4 years ago

Hey @tkurki you wrote:

Any ballpark idea for OE Zeus - like before next northern hemisphere sailing season or after?

Its getting closer. Its supposedly already possible to make test versions of Venus OS with it, but haven't had the time to try. Maybe this weekend. I expect a few more months before we start our normal field testing with Zeus. The Zeus version of OE is on Node 10, see here. In their master branch [they do have updated to Nodejs 12[(https://github.com/openembedded/meta-openembedded/tree/master/meta-oe/recipes-devtools/nodejs). Maybe it easy enough to take that nodejs 12 recipe and run it in Zeus. Its a matter of trying. I tried making nodejs 10 compileable on our current version of OE (Rocko), a long time ago, but abandoned that quickly. Too many issues and non-critical anyway for the current status of this project.

mpvader commented 4 years ago

Hi @MichelleWhy (and hi Stefanie, you're everywhere ;o) ), you wrote:

Now I wonder if it works the other way around. GPS connected to NMEA 2000 network, picked up by SignalK and then available in Venus OS - or does it work in one direction only? edit: answer (not possible) found in Signal K Venus OS draft installation guide.

Indeed. But an variant is now working: Venus OS to pick-up the GPS from NMEA2000. And that can then through the integration be picked up by SignalK via the Signalk-VenusOS link.

And (I should know this myself ofcourse, but I dont now) I'd think Venus OS and SignalK can both be configured to work on the same canbus on the GX device, at the same time, and without any issues.

However, I hope you guys keep working on it. Integration with Grafana/InfluxDB. Will definitely install on the Cerbo asap.

Grafana/InfluxDB: yes the holy grail. Maybe sometime. Its yet another framework and language. Probably best to get Openembedded Zeus working first before continuing to try and marry all this IoT stuff with more hardcore things Open embedded.

ghost commented 4 years ago

Hi @mpvader - ehm yes, because it's so interesting. MichelleWhy is my artist name. Google for MichelleWhy Photography ;-)

Ok, get the info. But haven't tested the GPS pick-up from NMEA2000 yet. Thanks.

The Cerbo already acts as a can bus device and connects to the NMEA2000 network with a diy cable from RJ45 to Micro C. It's working great with the large image and easy to set up in Signal K. You guys did a wonderful job :-)

For Grafana/InfluxDB: For now venus-docker-grafana is a perfect solution, although it requires me to have still a Pi installed. But happy as how it's now.

mpvader commented 4 years ago

Hi all, the project to get a Venus OS with Signal K included is merged with a similar project to get Node-RED into Venus OS. This discussions mostly continues in the Node-RED thread, it includes a v2.60~22 image with Signal K on it: https://github.com/victronenergy/venus/issues/378

Also, I've started on a manual, its here: https://www.victronenergy.com/live/venus-os:extended.

Contributions and help to that are super welcome. You can make a login on the upper right of that page. Don't hesitate too much about making a mistake. The changes made will be regularly reviewed.

tkurki commented 1 year ago

Venus Large image has had SK for some time, so closing this.