2019-07-19, 08:19 PM
Hi all,
I'm just learning about SignalK, and have just finished coding a remote temperature monitoring system that sends SignalK strings to Openplotter using UDP.
My question is about how to do remote displays. I did a display a while back that receives NMEA via MQTT and displays things like lat/lon, SOG, etc. Now I'm wanting to do a similar display that receives SignalK strings and decodes them.
I understand how this works with NMEA0183: the data is on the wire, or in the case of MQTT, it's in TCP packets. In the case of MQTT, the display subscribes to a topic on the server and gets the data. I don't know a lot about NMEA2000, but I assume that since it's a bus-based system, all data is on the bus and the displays just take what they want (I'm sure this is a huge simplification, but since I'm not doing anything with NMEA2000, I don't really care!).
So, we come to SignalK. What is the best way to send SIgnalK JSON packets to a display device? Is the data being sent like a firehose as in NMEA0182, is everything on the net like NMEA2000, or is the display requesting specific data? If it is requesting the data, do I then need another layer like MQTT or REST to request the data from the server? Is there no way to just send the data via UDP? If so, how? I'm not seeing anything in the Openplotter SignalK server that would allow me to do this.
I've been reading through the SignalK documentation, and the documentation of a few SignalK plugins, and I'm not getting it.
TIA
I'm just learning about SignalK, and have just finished coding a remote temperature monitoring system that sends SignalK strings to Openplotter using UDP.
My question is about how to do remote displays. I did a display a while back that receives NMEA via MQTT and displays things like lat/lon, SOG, etc. Now I'm wanting to do a similar display that receives SignalK strings and decodes them.
I understand how this works with NMEA0183: the data is on the wire, or in the case of MQTT, it's in TCP packets. In the case of MQTT, the display subscribes to a topic on the server and gets the data. I don't know a lot about NMEA2000, but I assume that since it's a bus-based system, all data is on the bus and the displays just take what they want (I'm sure this is a huge simplification, but since I'm not doing anything with NMEA2000, I don't really care!).
So, we come to SignalK. What is the best way to send SIgnalK JSON packets to a display device? Is the data being sent like a firehose as in NMEA0182, is everything on the net like NMEA2000, or is the display requesting specific data? If it is requesting the data, do I then need another layer like MQTT or REST to request the data from the server? Is there no way to just send the data via UDP? If so, how? I'm not seeing anything in the Openplotter SignalK server that would allow me to do this.
I've been reading through the SignalK documentation, and the documentation of a few SignalK plugins, and I'm not getting it.
TIA