this post was submitted on 06 Mar 2024
9 points (100.0% liked)

Python

6327 readers
237 users here now

Welcome to the Python community on the programming.dev Lemmy instance!

📅 Events

PastNovember 2023

October 2023

July 2023

August 2023

September 2023

🐍 Python project:
💓 Python Community:
✨ Python Ecosystem:
🌌 Fediverse
Communities
Projects
Feeds

founded 1 year ago
MODERATORS
 

I'm sorry if this isn't the place to ask this, I also asked over at [email protected].

So what I want to do is this: Two RasPis are at different locations. They're on different networks but have internet access. Pressing a button on one of the Pis turns on an LED over at the other Pi via GPIO. How can I make the communication work? My first thought was Telegram bots as I'm familiar with those for notifications but you can't have Telegram bots communicate with each other, sadly. Is there a good (and secure) solution to this? Preferably using Python code and without continuous costs like server hosting, etc?

Thanks!

top 7 comments
sorted by: hot top controversial new old
[–] [email protected] 3 points 8 months ago

For a simple one way communucation where latency is unimportant, you might leverage any number of free services with apis you can abuse. You could send a tweer, or nastodon message, You could have one just update a file with a timestamp as a github gist or on pastebin or something.

There are also free mqtt broker services.

Or you could put one on the public internet with ddns name and talk directly to it.

Or you could set up a VPN between them - is logmein still a thing? - and then talk to each other directly via that interface

[–] [email protected] 2 points 8 months ago (1 children)

VPN server on one, client on another.

A matrix bot on each end would work too but seems unnecessarily complicated.

[–] norambna 1 points 8 months ago

A VPN would be my first choice. ZeroTier works like a charm on the RPis. I've shared even SQLite databases over Samba over Zerotier among a bunch of RPis daily for a couple of years without a hitch.

[–] [email protected] 2 points 8 months ago (1 children)

The easiest & cheapest option would be to expose one of the devices to the internet on a known port and connect from the other device to that one with SSH.

Once you've got a connection, you can do pretty much anything you want, including writing to a pipe or even a file and polling it.

If you don't want to expose either, then you need a third party to facilitate the connection that is on the Open internet, though that server can be yours too. Even a €4/mo box at Hetzner would do it.

If these options sound good, let me know and I can be more detailed.

[–] [email protected] 1 points 8 months ago

All of the answers I got so far were great. I'll probably use a messaging service though but thank you very much

[–] [email protected] 1 points 7 months ago

There are free IoT cloud solutions to send and receive data and that work with MQTT protocol for this purpose.

[–] [email protected] 1 points 8 months ago

Oracle cloud “always free” tier VM instance, which you could setup a VPN to, from each Pi.