Haven is for people who need a way to protect their personal spaces and possessions without compromising their own privacy, through an Android app and on-device sensors
Currently notifications are only via Signal and this has multiple issues: Signal needs to have a primary phone-type mobile device, Signal needs a phone number to register, Signal is a singleton non-federated service, and there is no clear path to connecting notifications delivered via Signal into other machine-processable systems (e.g. to become states in Home Assistant).
This issue is a feature request to send notifications via XMPP, a relatively simple federated and therefore self-hostable protocol described by open standards with multiple independent interoperable implementation.
The implementation should support
configured JID and password, and the usual server discovery via SRV
TLS connection (and arguably TLS only)
a JID to transmit alert messages to
queuing of messages locally and retrying the server connection (while it's true that if the device isn't online during an intrusion, some of the value is lost, that's not an argument against robust networking)
optional heartbeat messages at a configurable interval, to an alternate JID, so that one can get alerts (from that receiver) on connection failure). Or perhaps this should use XMPP keepalives so that "haven device is connected with presence" is an indicator that it is working and connected. The real requrement is to be able to tell (and get alerts) when the haven device has been offline for a while.
Currently notifications are only via Signal and this has multiple issues: Signal needs to have a primary phone-type mobile device, Signal needs a phone number to register, Signal is a singleton non-federated service, and there is no clear path to connecting notifications delivered via Signal into other machine-processable systems (e.g. to become states in Home Assistant).
This issue is a feature request to send notifications via XMPP, a relatively simple federated and therefore self-hostable protocol described by open standards with multiple independent interoperable implementation.
The implementation should support