NMEA 0183 to Home Assistant: Wi-Fi, Signal K & Serial (Complete Guide)
Build a central boat computer with Signal K (TCP) or USB (Serial) โ no YAML.
Iโve built two integrations to streamline NMEA 0183 โ Home Assistant. They aim for a near plug-and-play experience: no YAML, menu-driven setup, and full sensor autodiscovery via HACS.
- ๐ถ Smart0183 TCP (wireless) โ TCP/Wi-Fi connectivity (works with Signal K and NMEA 0183-over-TCP gateways). Ingest data over the network without extra cables.
- ๐ Smart0183 Serial (cabled) โ Direct USB-to-RS232/RS422 connection for reliable hard-wired feeds.
๐งญ What Youโll Learn
- โ
Smart0183 TCP: add the HACS repo, install, restart HA, enter a device name, IP and port (
10110
default for Signal K), then start streaming. - โ
Smart0183 Serial: wire RS232/RS422 to a USB adapter, detect ports (
/dev/ttyUSB0
,/dev/ttyUSB1
), set baud, begin decoding. - โ
Baud rates: typical
4800
(standard instruments),9600
(some talkers) and38400
for AIS. - โ
Auto entities: parses sentences like
HDM
,GLL
,MWV
,DBT
and auto-creates sensors grouped by function (GPS, wind, depth, etc.). - โ Dashboards & automations: one-click add to a dashboard; build rules for TTS/siren on wind shifts > 30 s, speed changes, depth limits, reefing cues, and more.
๐ง Quick Wiring & Setup Tips
- โ RS232 (USB adapter): Talker TX โ DB9 pin 2, GND โ pin 5.
- โ RS422 (USB adapter): TX+ โ RX+, TXโ โ RXโ (ground not needed for a listener). RS422 is preferred for longer runs.
- โ
Verify data flow: use a serial monitor (
minicom -D /dev/ttyUSB0 -b 4800
) to confirm readable sentences before configuring the integration. - โ Multiple hubs: split GPS vs instruments on separate serial hubs for clarity and performance.
๐ Use Cases
- โ Navigation: combine wind, depth, speed, heading and GPS into Home Assistant for rules & alerts.
- โ Safety: TTS or siren for wind-limit, shallow water, or course-deviation alarms.
- โ Sailing logic: reef prompts from sailing angle plus sustained wind thresholds; speed-trend notifications when conditions change.
๐ How Discovery & Naming Works
- โ Auto-grouped devices: sensors grouped logically (e.g., Global Positioning, Wind, Depth) for quick access.
- โ Human-readable entities: each NMEA 0183 sentence becomes one or more HA sensors with clear names/units.
- โ Reconfigure anytime: change IP/port (TCP) or port/baud (Serial) via Configure โ no YAML required.
- โ โAdd to dashboardโ shortcut: device page โ Add to dashboard to bulk-add gauges/cards.
๐งพ Sentence โ Sensor Examples
- ๐งญ
HDM
โ Magnetic heading โ single heading sensor (degrees). - ๐ก
GLL
/RMC
/VTG
โ Position & speed โ latitude/longitude, COG, SOG. - ๐ฌ๏ธ
MWV
โ Wind angle & speed โ angle (ยฐ) and speed (knots or m/s). - ๐
DBT
/DPT
โ Depth below transducer / depth plus offset. - ๐ก๏ธ
MTW
โ Water temperature (ยฐC/ยฐF).
The integrations parse fields and expose the useful ones as Home Assistant entities.
๐ถ Integration 1 โ Smart0183 TCP (Wi-Fi/TCP)
Why TCP? If you already run a Signal K server or use a Wi-Fi gateway, NMEA 0183 sentences are broadcast over TCP on port 10110
. This avoids long cable runs and works even when instruments are remote.
โ๏ธ Setup
- โ Add the repository โ HA โ HACS โ Integrations โ โฎ โ Custom repositories โ paste the Smart0183 TCP GitHub URL (from the Smart Boat Innovations site) โ Category: Integration โ Add. Download and restart HA.
- โ
Configure โ Settings โ Devices & Services โ Add Integration โ search โ0183โ โ Smart0183 TCP โ name it (e.g., Signal K), enter IP and port (
10110
default). Submit to start streaming. - โ Dashboard โ Use Add to dashboard to seed gauges (heading, wind, depth, GPS, water temp).
๐ Integration 2 โ Smart0183 Serial (USB / RS232 / RS422)
Why Serial? Many instruments still output NMEA 0183 over wires. The serial integration reads through a USB-to-serial adapter. Typical settings: 4800
baud, 8 data bits, no parity, 1 stop bit. RS422โs balanced signalling helps over long runs.
โ๏ธ Setup
- โ Wire the adapter โ RS232: talker TX โ DB9 pin 2, GND โ pin 5. RS422: TX+ โ RX+, TXโ โ RXโ (no ground for listener).
- โ
Detect the port โ Terminal add-on:
ls -l /dev | grep ttyUSB
before/after plugging in; new device (usually/dev/ttyUSB0
) is your port. - โ
Verify with minicom โ
minicom -D /dev/ttyUSB0 -b 4800
. If garbled, try9600
or38400
(AIS). - โ Add the repository โ HACS โ Integrations โ โฎ โ Custom repositories โ add Smart0183 Serial โ download โ restart HA.
- โ
Configure โ Add the Smart0183 Serial integration; set a name, port (e.g.,
/dev/ttyUSB0
), and baud (default4800
). For more feeds, Add hub (e.g.,/dev/ttyUSB1
). - โ Dashboard & automations โ Add device groups to dashboards; build automations (wind shifts, reefing cues, depth alerts) just like TCP.
๐ค Practical Automations You Can Build
- โ Wind-shift guard: if true wind angle shifts outside your limit for > 30 s, announce via TTS + notification.
- โ Reefing reminders: combine sailing angle + sustained wind to trigger โreef now.โ
- โ Depth safety: if depth drops below a threshold, sound siren + mobile alert; auto-clear when safe.
- โ Speed/course events: notify on large COG changes or sudden speed jumps.
๐ ๏ธ Troubleshooting
- โ
No devices/entities: confirm data is arriving. For TCP, use a Signal K monitor; for serial, check
minicom
and verify port/baud. - โ
Garbled values: default is
4800
baud; some devices use9600
or38400
(AIS). - โ Multiple feeds: add a separate hub for each serial port (split GPS from instruments).
- โ
TCP unreachable: ensure port
10110
is open/reachable between your gateway and HA.
๐ Next Steps
Refine dashboards with gauges & history graphs, layer additional automations, and expand with more TCP sources or serial hubs as your network grows. These integrations turn your boatโs data bus into a powerful, locally controlled automation platformโno proprietary software or subscriptions.
๐ฌ Video Transcript
Introduction
In this video I introduce two new integrations that bring standard marine data into a Home Assistant-based โsmart boatโ system. Both integrations are designed for the NMEA 0183 protocol, which is still widely used in marine electronics. One integration receives NMEA 0183 sentences over a TCP or Wi-Fi link, while the other reads the same sentences over a physical serial cable. Each integration is menu-driven and does not require any YAML configuration. When installed, they automatically create sensors for every NMEA 0183 sentence they receive and continue to discover new sentences as devices are added to your boat.
Why Use These Integrations?
Bringing instrument data into Home Assistant allows you to build dashboards, set alarms and automate responses. For example, you can create rules to notify you when the wind shifts while sailing downwind, when the wind speed or boat speed changes, or even to help decide when to reef sails. Because the integrations automatically create sensors and group them by manufacturer and sentence type, they simplify the process of turning raw NMEA 0183 data into readable gauges and automations.
Installing the Smart 0183 TCP Integration
To start, open Home Assistant and go to HACS. Click โIntegrations,โ then select the three dots at the top-right corner and choose Custom repositories. On my website there is a Smart 0183 TCP page under the โCodeโ section; copy the URL of the GitHub repository from that page. Back in HACS, paste the URL into the repository field, select Integration as the category and click Add. The integration will appear in the list with a note that a restart is pending. Restart Home Assistant to enable it.
After restarting, go to Settings โ Integrations โ Add Integration and search for โ0183.โ Select Smart 0183 TCP from the list. In the configuration dialog enter a name (for example โSignal Kโ if you are using a Signal K server) along with the IP address and port number of your data source. Signal K exposes NMEA 0183 sentences over TCP on port 10110 by default, so leave the port unchanged unless your gateway uses a different port. Click Submit. The integration will immediately start discovering sentences from your boat network and creating sensors for them. In my demonstration it found 12 devices and 81 entities right away.
Exploring Sensors and Devices
When you click on the Smart 0183 TCP integration you will see a list of devices grouped by manufacturer or sentence type. Each device contains one or more sensors. For example, the HDM (heading โ magnetic) sentence has one field and creates a single sensor showing the current magnetic heading. A GLL (geographic position โ latitude and longitude) sentence contains several fields, so it creates multiple sensors for latitude, longitude and direction. The model name of each device corresponds to the NMEA 0183 sentence ID.
To visualize the data, create a new dashboard in Home Assistant. Click Add to dashboard on any device to add all its sensors at once. You can then refine the dashboard by editing each card individually. In my example I added gauges for magnetic heading, water temperature and wind speed. The integration also allows you to reconfigure a device to change the IP address or reload the sensors, or to delete the integration if you no longer need it.
Installing the Smart 0183 Serial Integration
The serial integration is for boats whose instruments output NMEA 0183 over physical wires. You will need a USB-to-RS-232 or USB-to-RS-422 adapter connected to a Raspberry Pi. The typical NMEA 0183 serial connection uses a 4800 baud rate. RS-232 cables have three wires (transmit, receive and ground) while RS-422 cables use four wires and differential signalling. Connect the positive (transmit) wire from your NMEA 0183 cable to pin 2 (receive) on the DB9 connector of the RS-232 adapter and the ground wire to pin 5. For RS-422, connect your instrumentโs transmit + and transmit โ wires to the adapterโs receive + and receive โ terminals. If you are converting from NMEA 2000, use a commercial N2K โ 0183 converter and follow the same wiring for its output.
Before adding the serial integration, itโs useful to check that data is actually arriving. Open the terminal in Home Assistant. Run ls -l /dev | grep ttyUSB
to see which virtual serial port appears when you plug in the adapter. It will usually be /dev/ttyUSB0
for the first device. Next, install the minicom application (either through Home Assistantโs Terminal add-on or via your host OS). Run minicom -D /dev/ttyUSB0 -b 4800
to view the incoming NMEA sentences. If the output is garbled, try baud rates of 9600
or 38400
โ AIS devices use 38 400 baud. When finished, exit minicom with Ctrl+A, then X.
Adding the Serial Integration through HACS
Installing the serial integration follows the same pattern as the TCP version. In HACS choose Custom repositories, paste the Smart 0183 Serial GitHub URL from my website, select the Integration category and add it. Download the integration and restart Home Assistant. Then go to Settings โ Integrations โ Add Integration and search for โ0183.โ Select Smart 0183 Serial. In the configuration dialog, provide a name, the serial port (such as /dev/ttyUSB0
) and the baud rate (4800 by default). If you have multiple serial sources, click Add hub for each additional adapter (for example /dev/ttyUSB1
). After submission the integration will discover the same instruments and sensors as the TCP version and group them by hub.
Building Dashboards and Automations
Once sensors are in place, you can add them to dashboards just like with the TCP integration. More importantly, you can create automations that act on these sensors. For instance, you might configure Home Assistant to speak a text-to-speech alert when the wind shifts more than 30 seconds while sailing downwind, or to notify you when wind speed or boat speed rises or falls sharply. Combining sailing angle, wind speed and other parameters can even suggest when to reef. Because the sensors update continuously, Home Assistant can provide real-time alarms and actions.
Conclusion
These Smart 0183 integrations make it easy to bring NMEA 0183 data into Home Assistant without writing a line of YAML. Whether you use Signal K over TCP or connect instruments directly through a serial adapter, the integrations automatically create sensors, organize them logically and let you build dashboards and automations. With the ability to monitor your boatโs data and respond to changes, your smart-boat system becomes more than just a set of digital gauges โ it becomes a proactive tool for safer and more enjoyable boating.