-
Hi All, I am trying to integrate a Yoctopuce weather sensor (temperature, humidity, air pressure) into SignalK on a RPi4. Yoctopuce allows to extract data via different scripting languages to provide JSON structured files / data. Example I am using for my prototype: { This works in Data Fiddler and the data shows up in the Data Browser view. I've tried to read a file via the Data Connection configuration, when SignalK reads the file from the directory, the server log states "Could not parse JSON: ...". I've set the permission of the JSON file to 777. I then tried to use HTTP PUT and after figuring out how the authentication works, the message I receive is {"state":"COMPLETED","requestId":"0ed292c1-4a3d-47b3-8f7b-37937789527e","statusCode":405,"message":"PUT not supported for environment.inside.mainCabin.temperature","href":"/signalk/v1/requests/0ed292c1-4a3d-47b3-8f7b-37937789527e","user":"pi"}. Any other ideas on how I can integrate an external sensor where data can be provided in JSON without developing a plugin or use an MQTT? I am NOT a developer... Thanks in advance! |
Beta Was this translation helpful? Give feedback.
Replies: 4 comments 2 replies
-
What environment/language would you prefer for getting the data from the sensor? Or do you already have that part working? |
Beta Was this translation helpful? Give feedback.
-
You could use node red to read your data source (file or db) and send to signalk with the signalk nodes. A plugin is more graceful though. I've never written one (modified a couple, some successfully) and seem to recall a pretty good example and documentation in the signalk docs and faqs.
Good luck.
…On Thu, Jun 5, 2025, at 8:39 AM, ThB0987 wrote:
:) - I already have that part working on a web server, which I use on the boat to do passage planning, etc.
It's a PHP based implementation that is taking data from multiple Yoctopuce sensors and stores the data into a DB. It'll be "easy" to duplicate what is already there and create JSON files or use POST to update SignalK with the data.
—
Reply to this email directly, view it on GitHub <#180 (reply in thread)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AAEHFXANLQVIHHLERG6Q7W33CBJA7AVCNFSM6AAAAAB6VPMRCWVHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTGMZYGA3TINI>.
You are receiving this because you are subscribed to this thread.Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
After further digging, here the results for those who might need this:
Solution is the creation of NMEA0183 sentence(s), which get send to SignalK on a hourly basis or when required. Identified issue - without resolution - is the age of the NMEA0183 "standard" and mapping of sentence types to the SignalK database. For example: $IIMDA,,,,,15.5,C,,,,,,,,,,,,,,M* => will be stored against environment.outside.temperature, not environment.inside.mainCabin.temperature. For a lot of new devices and sensors there is no equivalent NMEA0183 sentence. The easiest way to resolve this would be the capability to update values via a PUT API call, which uses the existing authentication / token mechanism for security. |
Beta Was this translation helpful? Give feedback.
-
OK, first of all trust in AIs is misguided - possibly useful, but not the authoritative source for anything. Yes, you can use a file with NMEA0183 data as input, but it only works for a static file. But to answer your question "how I can integrate an external sensor where data can be provided in JSON without developing a plugin or use an MQTT".
![]()
One goal of Signal K is exactly what you mentioned: extensibility beyond what NMEA protocols can carry. No extra configuration needed, you can pass any paths to the server. If you want your data to have useful metadata like the unit that SK applications can use to present it you need to provide metadata. This you can do by sending meta deltas, that are like normal delta messages except you use There's such a huge variation in where are coming from with their questions in terms of technical knowledge that it is useful establish a common ground. If you have a PHP implementation that writes the data to a db and can PUT JSON then you no longer qualify as a non-developer, sorry 😁 FYI one option going forward is to get the data to SK server and use the influxdb plugin for db writing and get the benefit of recently added Grafana Signal K datasource that is SK metadata aware and can handle unit conversion out of the box as well as stream updates in real time. Great that you found SK Discussions, you are very welcome to also join our Discord server for chatting about all things Signal K, invite link is at https://signalk.org/. Apparently you missed the FAQ that has a section on PUTs as well as the WebSocket recommendation. |
Beta Was this translation helpful? Give feedback.
OK, first of all trust in AIs is misguided - possibly useful, but not the authoritative source for anything.
Yes, you can use a file with NMEA0183 data as input, but it only works for a static file.
But to answer your question "how I can integrate an external sensor where data can be provided in JSON without developing a plugin or use an MQTT".