In
een eerder draadje is de installatie, het idee van... en de meest eenvoudige Signal-K installatie uitgelegd.
Ook Seanymph heeft een goede stap-voor-stap handleiding gemaakt:
drive.google.com/file/d/1gPJfs...L_HdVNeGBXuA0ou/view
Het lijkt het mij nu tijd om een aantal praktsiche voorbeelden langs te laten komen, waarbij gebruikers kunnen uitleggen hoe (en waarom) ze Signal-K gebruiken. Ik geef mijzelf de aftrap
Als het navolging krijgt is dit de eerste post in een langer draadje; anders is het slechts een beschrijving hoe en waarom ik het op mijn boot gebruik.
Disclaimer: Ik ben géén IT’er laat staan netwerk-specialist, dus de gebruikte symbolen zullen vast verkeerd zijn. Maar in onderstaande tekening heb ik zo duidelijk mogelijk mijn netwerk opgetekend. Software en hardware loopt wat door elkaar heen.
De basis werkt ook zonder de mini-PC en Signal-K. Die basis is de N2K apparatuur die de Verper AIS transponder vertaalt naar NMEA0183 en beschikbaar maakt in haar TCP/IP server. Dit apparaat is óók een Wifi access point waar tablet, telefoon etc mee kunnen verbinden. TZ iBoat, iSailor werken dan al.
Ook de PC-Nautic stuurautomaat functioneert zonder de mini-PC.
Op de mini-PC draait OpenCPN. De mini-PC verbindt draadloos met het Access Point en OpenCPN leest direct vanuit de NMEA0183 server op de Vesper. Als ik een route aanmaak, stuurt OpenCPN de RMC etc data naar de Vesper. De Vesper neemt deze dan op in haar 0183 server, maar vertaalt deze óók naar NMEA2000 en zet deze nieuwe data op de N2K bus. De "Triton" klokjes tonen die route informatie dan:
Tot zover nog steeds geen Signal-K nodig dus (kán wel maar simpel vind ik fijner en SK vind ik geen doel opzich)
Wat doe ik wél met Signal-K?
Magnetische en ware heading op de NMEA2000 bus beschikbaar maken
De PC-Nautic autopilot heeft een electronisch kompas. Hoewel deze leest vanaf de Vesper NMEA0183 server, schrijft hij daar niet naartoe (kan ie niet). Wel heeft het apparaat zélf een NMEA0183 server, waarin ROT, TRIM, HEEL en HDM beschikbaar zijn. TRIM en HEEL héb ik al op het NMEA2000 netwerk vanaf de Airmar transducer. Heading echter niet. Signal-K verbindt met de NMEA0183 server van de PC-Nautic en vertaalt de magnetische heading daaruit naar een interne Signal-K variabele. Signal-K schrijft die heading op haar beurt naar de N2K bus (via de "SK to NMEA2000" plugin). Da's mooi, maar nog steeds een magnetische heading. Om de wind in de kaart te plotten, wil de tablet en OpenCPN een TRUE heading.
Die wordt in de SK plugin "derived data" berekend: uit de actuele variate (die komt van de GPS) berekent deze plugin de TRUE heading. Ook die wordt naar de bus geschreven:
Het mooie is dat de Vesper die weer vertaalt naar NMEA0183 en op háár server beschikbaar maakt, zodat deze HDT uiteindelijk in OpenCPN belandt.
SPD voeden met data
SPD heeft wat NMEA0183 zinnen nodig om te kunnen werken. In pricipe zou het eenvoudigst zijn om SPD via TCP/IP te laten verbinden met de Vesper, net zoals OpenCPN dat doet. Thomas en ik hebben eerder flink zitten stoeien, maar deze verbinding heeft nooit stabiel en voldoende snel gerealiseerd kunnen worden.
Als workaround leest SPD nu uit de door Signal-K aangemaakte NMEA0183 server op de miniPC; voor SPD is dat “localhost" en dan werkt deze verbinding om onduidelijke redenen wél snel en zonder hickups.
SPD outputs op klokken buiten weergeven
ZF'fer hanst heeft een aantal SK plugins geschreven op basis van zijn uitpluiswerk van welke data (PGN's) B&G gebruikt om haar Hydra/Hercules racecomputers in een (hún...) N2K netwerk op te nemen. Een van die plugins is de "B&G Performance" plugin. Deze vertaalt performance data beschikbaar in de SK database naar de juiste B&G PGN's en kan deze naar het N2K netwerk schrijven.
Daarvóór moet deze data wel beschikbaar zijn in Signal-K. In overleg met -ook ZF'fer- michaelh is de SPD websocket-server aangepast, zodat met een NODERED flow - een scriptje/functie (dat is grafisch programmeren, beetje Matlab Simulink achtig, maar dan event-based. Home Assistant gebruikt het ook...) de SPD output via een websocket verbinding gelezen kan worden.
Ik gebruik SPD dan headless; de outputs komen vanzelf in de SK server. De "B&G performance" plugin schrijft die data (ik gebruik maar 4 variabelen daarvan, maar er is meer mogelijk) naar de NMEA2000 bus:
VHF informatie op smartphone
Nog steeds in ontwikkeling maar voldoende "af" om te gebruiken is hanst' VHFinfo! plugin. Deze gebruikt GPS positie om te weten waar je bent en de heading en een zoekhoek/afstand om te bepalen in welk VTS of blokgebied, haven of kunstwerk je (bijna) in de buurt bent. Op je smartphone zie je dan dat VHF kanaal, de URL van dat object, meldpost etc, telefoonnummer en naam en aard van het object.
Accu monitoring
Totaal onnodig maar "omdat het kán" is de VE.Direct plugin. Deze leest data van de accumonitor (state of charge, stroom, spanning etc) van de Victron accumonitor en zet deze data in de SK database.
In de "SK to NMEA2000" plugin staat deze data aangevinkt om op de bus beschikbaar te maken. Ik zou op de klokken alarmen kunnen instellen, maar het is veel makkelijker dat gewoon binnen, op de accumonitor zélf te doen natuurlijk.
Configuratie
Hier nog wat voorbeelden uit de configuratieomgeving (webbrowser naar poort 3000 in mijn geval).
Hier zie je het Dashboard overview met bovenaan een overzicht van het dataverkeer door de plugins en verbindingen naar buiten; daaronder de status van de plugins:
Hier een stuk uit het configuratieschem van de "B&G Performance" plugin. Je ziet daar de mapping van de SK variabelen (de "paths") naar de PGN's die naar de NMEA2000 bus gaan:
Hier een stukje van het configuratiescherm van de "derived data" plugin die de TRUE heading berekent (de plugin kan veel meer maar gebruik ik niet):
Hier een overzicht van de dataverbindingen "naar buiten"
Hoe nerdy en stabiel is het
Ik heb best wel moeten stoeien alles goed werkend te krijgen. De meeste tijd kostte het werkend krijgen van de Actisense: in de standaard Windows installatie deed deze het niet; ik herinner mij dat ik bepaalde node.js uit het canboat project handmatig heb moeten toevoegen, maar reproduceren...? Ik moet nog steeds een backup maken!
Vanmorgen ook zoiets: ik update de NODERED plugin, is de "FLOW" van michaelh die daarvóór prima werkte zomaar verdwenen. “Geen probleem” dacht ik. “Pak ik de flow die meegeleverd is met de laatste SPD installatie”; blijkt deze niet meer te matchen met de versie van SPD die ik draai.
Idem voor de B&G performance plugin van hanst: versie 1.0.17 werkt bij bij níet, de oudere 1.0.10 wél. Geen idee waarom! Na veel gedoe (onervarenheid) heb ik de broncode van 1.0.10 terug kunnen vinden en gepaste in de desbetreffende files.
Ik weet nu nóg zekerder : NOOIT UPDATEN ZONDER REDEN (hoeveel "sneller, nóg beter!" sommigen ook roepen)
Verder ervaar ik Signal-K als stabiel, tot zover (begin afgelopen seizoen gaan gebruiken) geen gekke dingen meegemaakt. Maar "heel eenvoudig" is dit niet in mijn ervaring.