Is there a chat program that works offline and online and has mobile apps.
I am wondering if there is a chat program that works locally when the internet is out but still be connected to from the internet. I know this will be something that is self hosted.
Bonus points if I can set it up on the raspberry pi that is running Home Assistant.
I have read a bit about the Matrix protocol and once tried running the Synapse home server and Element front end which is also available as Android/iOS apps.
Matrix is a federated chat protocol in the same way that ActivityPub is a federated social networking protocol. You can host your own Matrix compatible server and chat with people on other servers.
Recently I watched a video about their recent progress in which they showed a chat working peer to peer over bluetooth low energy when devices did not have access to the internet. Writing this, I just watched another P2P demo video where they show off this functionality once again.
This means you can use your own chat server as usual when
You have an internet connection on your device
Your device is on the same network as your server
Your device can find a P2P route to the other users through nearby bluetooth devices running this software allowing your device to route through other devices network and bluetooth connections
Take all of this with a grain of salt as I am not completely sure I understand how the Matrix services work. I hope this helps.
Not really. You need to use a domain (correct me, if I'm wrong, but I think IP adresses don't work) to connect to the homeserver.
In theory you could setup a DNS server in your nezwork, which resolves this domain with the local adress and then it might work, but I'm not sure if the homeserver would like that.
Also I want to add, that I use TeamSpeak, which works perfectly globally and locally, but it's for voice chat.
Aah, yes. You're right there. You will require a domain for it to work. Although, you could still have it work with a local DNS server for internet outages. You would still be able to chat locally in that case. But yeah, this does not seem like what OP is looking for.