Sending notifications to SignalK

I’d like to send notifications to SignalK that requires login like the following:

curl -X 'POST' \                                                                                                          
  'http://tika:3000/signalk/v1/auth/login' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "username": "uname",
  "password": "pass"
}'
{"token":"eyJhCfO9__ISpt4"}

followed by a request like

HTTP PUT 'http://tika:3000/signalk/v1/api/notifications/myalarm' {
  "message": "My alarm text.",
  "state": "alert"
}

Is this possible using webhook integration?

Thanks!

Grafana Alerting does not offer SignalK integration for notifications, and it looks like SignalK has the special format of the payload in the notifications API. Therefore, the webhook integration will not work out of the box. Also, it does not support sending authentication requests. Instead, it expects either basic authentication or a token that would work in PUT request.

So, the only recommendation I can give you is to run a webhook service on your side (for example an Azure Function, or AWS Lambda) that would accept requests in Grafana webhook format, convert it to SignalK format, submit a request to SignalK.

1 Like

Thanks Yuriy. What would you suggest within intranet (actually, on a sailing boat)?

Wonder if Node-RED can be used in this instance?

@grant2 any ideas?

Yes, Node-RED can in all likelihood do this. And it can run on a $15 Raspberry Pi Zero.

1 Like