Jump to content

NMEA2000 input på Cerbo GX


Haveseiler I

Recommended Posts

samme som i DOS mye egentlig. cd.. funker ikke, må i tilfelle skrive cd ..  (altså cd mellomrom ..)
for å gå inn i en katalog er det likt som i dos, cd <katalognavn>
slette fil: rm <filnavn>

slette hele katalogstrukturen uten mer dill og dall, med filer og alt: rm -rf <katalognavn>
https://recoverit.wondershare.com/file-recovery/force-remove-directory-linux.html

mvh, Arne
www.tiarora.no

 

Link to post

Jeg endte med å bruke filene på den ene siden og boote opp med usb minnepinne. Da slettet signal-k seg og jeg kunne opprette nytt passord. 
systemet er nå oppe å kjører med node red i signal-k. Det fungerer som det skal og jeg har deaktivert standard node red. 
Jeg sliter imidlertid med enkel tilgang til node red dashboard. For å komme til dette når jeg ikke er på nettet i båten, må jeg gå inn i VRM, velge large features, velge signal-k velge apps, velge node red, velge dashboard og så trykke på linken til dashbord. Tungvint måte. Finnes det noen måte det kan forenkles? 

Link to post

Det ble en artig tråd, dette :-)

 

Nå har jeg bestilt en sånn WIFI-N2K til Rasberryen min, så får vi se om jeg ikke får liv i resten av nettverket også. De kan vel hende det regner på fjorden en dag eller to i sommer, så da får jeg nok tid til å installere. Ellers har jeg eksperimentert med MQTT, satt opp en broker på Rasberryen og fått kontakt med den fra Cerbo GX med Node Red. Tanken er vel kanskje å bruke dette til å få sendt N2K over til Node Red (eller evt. Signal K). 

 

Er det noen som har gode erfaringer med MQTT-klienter som kjører på Rasberry?

 

For de uinnvidde må jo denne tråden se ut som komplett galskap, men jeg synes det er artig å "nerde" framfor å kjøpe nøkkelferdige Raymarine/Simrad/Garmin-løsninger :-)

Link to post

@Haveseiler I Og ikke minst er det mye billigere å få til ting selv. Det opplegget jeg har i båten, sammen med det jeg har planlagt, ville koste en god del titusener i ferdige løsninger. Keyless start-systemet til Suzuki koster vel 5000, eller så, mitt er to ESP32-er til rundt 50 kroner hver (ett med relestyring og ett med ESPresense for å føle at mobilen min er i båten) og noen releer til 100 kroner. :lol:

 

Og MQTT-klienter er jo alle programmer som kjører MQTT. Men hvis du mener noe som kan se alle meldinger, er det jo bare å sette opp en MQTT Node med debug. Her er en som bare mangler å velge MQTT broker og så kan du enten kjøre hele meldingene eller bare payload, eller begge deler:

 

Sitat

[
    {
        "id": "518a2f6a8b4887d4",
        "type": "mqtt in",
        "z": "7ab3c919db455b4f",
        "name": "Vis alle MQTT-meldinger",
        "topic": "#",
        "qos": "2",
        "datatype": "auto-detect",
        "broker": "",
        "nl": false,
        "rap": true,
        "rh": 0,
        "inputs": 0,
        "x": 790,
        "y": 520,
        "wires": [
            [
                "550d33a170314ab4",
                "7f9740770b5f749e"
            ]
        ]
    },
    {
        "id": "550d33a170314ab4",
        "type": "debug",
        "z": "7ab3c919db455b4f",
        "name": "debug 63",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "payload",
        "targetType": "msg",
        "statusVal": "",
        "statusType": "auto",
        "x": 1000,
        "y": 500,
        "wires": []
    },
    {
        "id": "7f9740770b5f749e",
        "type": "debug",
        "z": "7ab3c919db455b4f",
        "name": "debug 64",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "true",
        "targetType": "full",
        "statusVal": "",
        "statusType": "auto",
        "x": 1000,
        "y": 540,
        "wires": []
    }
]

 

Link to post

Da har jeg fått og installert en WIFI-N2K. Jeg har hengt den på NMEA2000 nettverket, og det tok meg vel omtrent like kort tid å installere den som å konfigurere den. La oss kalle det 10 minutter, da.

 

Så satte jeg den opp til å levere NMEA2000-data over UDP. Det virket som den greieste løsningen sånn i starten. Så kom den frustrerende biten: det ser ikke ut til å være noen enkel vei til å tolke alle de rare dataene som kommer over UDP.

 

Sånn så det ut:

 

msg.payload : string[78]
"$IIDPT,5.6,0.0*43↵$IIDBK,18.3,f,5.6,M,3.1,F*35↵$VWVHW,,T,,M,0.0,N,0.0,K*54↵"
2.6.2024, 09:36:42node: 8a37d5ff8df5e564
msg.payload : string[78]
"$IIDPT,5.6,0.0*43↵$IIDBK,18.3,f,5.6,M,3.1,F*35↵$VWVHW,,T,,M,0.0,N,0.0,K*54↵"
2.6.2024, 09:36:42node: 8a37d5ff8df5e564
msg.payload : string[78]
"$IIDPT,5.6,0.0*43↵$IIDBK,18.3,f,5.6,M,3.1,F*35↵$VWVHW,,T,,M,0.0,N,0.0,K*54↵"
2.6.2024, 09:36:43node: 8a37d5ff8df5e564
 

Jeg skjønte jo at den derre "5,6, M" langt inni der måtte være at det var 5,6 meter dypt der jeg lå, men hvordan få ut akkurat dette hersens tallet? Mid? Len? Str? ARGH!!

 

Dermed var det igang med prøving og feiling. Til slutt klarte jeg å lage denne klossete flowen i Node-Red:

 

image.png.78209e5a49a3afb505d9f74007126fd2.png

 

CSV får det til å se slik ut:

{ col1: "$IIDBK", col2: 18.3, col3: "f", col4: 5.6, col5: "M" … }
2.6.2024, 09:38:20node: 8a37d5ff8df5e564

 

Og msg.payload.col4 gir meg dermed "5.6"

 

Så koblet jeg denne til en viser, og NÅ ENDELIG kan jeg se dybde under kjøl på Node-RED!!!

 

Men for et grisete oppsett. Jeg har sikkert brukt tre-fire frustrerende timer på å få dette til å virke, men nå har jeg ihvertfall "fasit" for å få til temp, fart og andre ting også...

 

Og ja: det finnes helt sikkert enklere veier enn denne, men det virker, ihvertfall :-)

 

image.png.0a92c5576f833f226d69d75ce606d80a.png

Link to post

@Haveseiler I Oi, sånt gjør man jo med en function node. Synd du ikke la det ut her før du jobbet med det, for jeg har akkurat det du trenger. (Men jeg har også en tendens til å ville finne ut av tinge selv og bruke flere timer før jeg poster på et forum...) Trekk ut en function node, og kopier inn denne teksten:

 

Sitat
msg.payload = msg.payload.split(',')[1];
return msg;

 

Da tar du det som står etter det første kommaet og før det andre kommaet (1). Det kan brukes til hva som helst i den strenga. Her har jeg laget en veldig enkel flow med en inject-node som sender inn den tekststrengen din, og så sender ut 5.6:

 

Sitat

[
    {
        "id": "37edc0c97a43e8ad",
        "type": "function",
        "z": "1ff2c33c.c249bd",
        "name": "function 1",
        "func": "msg.payload = msg.payload.split(',')[1];\nreturn msg;",
        "outputs": 1,
        "timeout": 0,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 280,
        "y": 2800,
        "wires": [
            [
                "dfd80b6719396300"
            ]
        ]
    },
    {
        "id": "dfd80b6719396300",
        "type": "debug",
        "z": "1ff2c33c.c249bd",
        "name": "debug 64",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "statusVal": "",
        "statusType": "auto",
        "x": 440,
        "y": 2800,
        "wires": []
    },
    {
        "id": "e13a2847369a191b",
        "type": "inject",
        "z": "1ff2c33c.c249bd",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "$IIDPT,5.6,0.0*43↵$IIDBK,18.3,f,5.6,M,3.1,F*35↵$VWVHW,,T,,M,0.0,N,0.0,K*54↵",
        "payloadType": "str",
        "x": 110,
        "y": 2800,
        "wires": [
            [
                "37edc0c97a43e8ad"
            ]
        ]
    }
]

 

Link to post

Ja, det var jo betydelig enklere! Takk!

 

Men jeg trenger den neste 5,6, ikke den første, altså denne:

 

$IIDPT,5.6,0.0*43↵$IIDBK,18.3,f,5.6,M,3.1,F*35↵$VWVHW,,T,,M,0.0,N,0.0,K*54↵ (her står dybden i fot, meter og favner)

 

Det første tallet, altså det etter IIDPT, hopper opp og ned mellom 0 og 5,6, mens det andre tallet er stabilt. Kan .split brukes til å hente ut dette også? altså til å ta teksten etter tredje komma etter "IIDBK"?

 

Jeg har vel vært borti split i et python-kurs en gang, men skjønte ikke at man kan bruke den i en function :-)

 

Men som du sier, jeg har en tendens til å prøve litt for lenge før jeg spør, men man lærer litt på den måten også :-)

 

 

Link to post

Ja, der satt den, det var etter komma nr. 13. 

 

$VWVHW,,T,,M,0.0,N,0.0,K*54 $IIDPT,5.6,0.0*43 $IIDBK,18.3,f,5.6,M,3.1,F*35
 

Men jeg måtte filtrere på IIDPT, for ellers så leter den blindt i alt den får inn etter tallet etter komma nr. 13. Det løste jeg med en switch-node som ignorere alle andre meldinger enn de som inneholder IIDPT. Men det kunne kanskje vært gjort direkte i function-noden også?

Link to post

KUULT!

 

Jeg har holdt på med å få tak i dette dybde-tallet i nærmere tre år, så det er nesten så jeg burde sprette sjampanjen her... selv om det er søndag formiddag. Da kan jeg lete rundt med switch og split etter flere nyttige data nå som PIen endelig ser N2K..

 

Tusen takk for all hjelp Mastiff :-) 

Link to post

Delta i diskusjonen

Du kan skrive innlegget nå, det vil bli postet etter at du har registrert deg. Logg inn hvis du allerede er registrert.

Guest
Svar på dette emnet

×   Du har postet formatert tekst..   Fjern formattering

  Only 75 emoji are allowed.

×   Innholdet du linket til er satt inn i innlegget..   Klikk her for å vise kun linken.

×   Det du skrev har blitt lagret.   Slett lagret

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...