■ Schumann Resonance Daily Bot
A Step-by-Step Setup Guide for Complete Beginners
Free • Automated • Runs in the Cloud • No Coding Experience Needed
What Is This Guide?
This guide will walk you through setting up a completely free, automated Telegram bot that posts live
Schumann Resonance data to your Telegram group(s) four times every day — at 6AM, 12PM, 6PM, and
Midnight (Central Time). Once set up, it runs entirely on its own in the cloud. You don't need to leave your
computer on or do anything manually.
The Schumann Resonance is Earth's natural electromagnetic heartbeat, hovering around 7.83 Hz. Many
researchers and communities track it for correlations with solar activity, geomagnetic events, and even
human consciousness. This bot pulls live sonogram images from the Space Observing System in Tomsk,
Russia and delivers them directly to your group.
What You Will Need Before Starting
■ A Telegram account (you already have one!)
■ A free GitHub account — sign up at [Link] if you don't have one
■ Your Telegram group(s) where you want the bot to post
■ About 20–30 minutes of focused time
Phase 1 — Create Your Telegram Bot
Step 1: Talk to BotFather
BotFather is Telegram's official bot that creates other bots. Think of it like a factory for bots.
1. Open Telegram and search for @BotFather in the search bar.
2. Tap on BotFather and press Start.
3. Type /newbot and send it.
4. BotFather will ask for a name — this is the display name, like "Schumann Daily".
5. Then it asks for a username — this must end in "bot", like "SchumannDailyBot".
6. BotFather will reply with a long string of letters and numbers — this is your Bot Token. Copy it and
save it somewhere safe!
■■ Important: Your Bot Token
Step 2: Add Your Bot to Your Group(s)
1. Open your Telegram group.
2. Tap the group name at the top → tap Add Members.
3. Search for your bot's username (the one ending in "bot") and add it.
4. Once added, type anything in the group and send it (just type "hello"). This is required!
Step 3: Find Your Group's Chat ID
Every Telegram group has a secret ID number. Here is how to find it. Open your web browser (Chrome,
Safari, etc.) and type the following into the address bar, replacing YOUR_TOKEN with your actual bot
token:
[Link]
You will see a page full of text. Look for something that says "chat" and then "id" — the number next to it
is your Chat ID. It will be a negative number starting with a minus sign, like -1001234567890. Copy the
whole thing including the minus sign.
■ Tip: If the page says "result":[] with empty brackets, make sure you sent a message in the group first,
then refresh the page.
Repeat Steps 2 and 3 for each group you want the bot to post in.
Phase 2 — Set Up Your Free GitHub Account
GitHub is a free website that will run your bot automatically in the cloud. You don't need to understand
coding to use it — just follow these steps exactly.
Step 4: Create a GitHub Account
1. Go to [Link] in your browser.
2. Click Sign Up and follow the steps to create a free account.
3. Verify your email address when prompted.
Step 5: Create a New Repository
A repository is like a folder in the cloud that holds your bot's files.
1. Once logged in, click the + button in the top right corner.
2. Click New repository.
3. Name it schumann-bot.
4. Set it to Private (so only you can see it).
5. Check the box that says Add a README file.
6. Click the green Create repository button.
Step 6: Add Your Secret Information
This is where you safely store your bot token and chat IDs. GitHub keeps these hidden — they will never
appear in your code files.
1. Inside your new repo, click Settings at the top.
2. In the left sidebar, click Secrets and variables → then Actions.
3. Click the green New repository secret button.
4. Add the following secrets one at a time:
Secret Name Value to Enter
TELEGRAM_BOT_TOKEN Your bot token from BotFather
CHAT_ID_1 The chat ID of your first group (negative number)
CHAT_ID_2 The chat ID of your second group (if you have one)
■ Only add CHAT_ID_2 if you are posting to two groups. If you only have one group, skip it — but you will
need to make a small edit in Phase 3 (we will note it there).
Phase 3 — Add the Bot Files
Now we add two files to your repository. These are the actual instructions that tell your bot what to do and
when to do it. You will copy and paste them exactly as shown.
Step 7: Create the Python Script
1. In your repo, click Add file → Create new file.
2. In the filename box at the top, type exactly: schumann_bot.py
3. Copy and paste ALL of the following code into the large text area below the filename:
import os
import requests
from datetime import datetime, timezone
BOT_TOKEN = [Link]["TELEGRAM_BOT_TOKEN"]
CHAT_IDS = [[Link]["CHAT_ID_1"], [Link]["CHAT_ID_2"]]
IMAGE_URL = "[Link]
def fetch_image():
response = [Link](IMAGE_URL, timeout=30)
response.raise_for_status()
return [Link]
def send_photo(chat_id, image_bytes, caption):
url = f"[Link]
files = {"photo": ("[Link]", image_bytes, "image/jpeg")}
data = {"chat_id": chat_id, "caption": caption, "parse_mode": "HTML"}
response = [Link](url, files=files, data=data, timeout=30)
response.raise_for_status()
return [Link]()
def main():
now = [Link]([Link])
timestamp = [Link]("%B %d, %Y — %H:%M UTC")
caption = (
f"■ Schumann Resonance Update\n"
f"■ Source: Space Observing System 70 (Tomsk, Russia)\n"
f"■ {timestamp}\n\n"
f"The sonogram shows ELF electromagnetic field activity "
f"over the last ~3 days. Bright vertical bands = lightning. "
f"Horizontal lines = manmade EM interference. "
f"The Schumann bands (7.83 Hz) run through the middle.\n\n"
f"■ What patterns are you noticing today?"
)
image_bytes = fetch_image()
for chat_id in CHAT_IDS:
result = send_photo(chat_id, image_bytes, caption)
print(f"Posted to {chat_id}: {result['ok']}")
if __name__ == "__main__":
main()
4. Scroll down and click Commit changes → then the green Commit changes button.
■ One Group Only? If you only have one group, change the CHAT_IDS line to:
CHAT_IDS = [[Link]["CHAT_ID_1"]]
Step 8: Create the Scheduler File
1. Click Add file → Create new file again.
2. In the filename box, type this exactly — the slashes will automatically create folders:
.github/workflows/post_schumann.yml
3. Paste the following into the text area:
name: Post Schumann Resonance
on:
schedule:
- cron: '0 11 * * *' # 6AM Central
- cron: '0 17 * * *' # 12PM Central
- cron: '0 23 * * *' # 6PM Central
- cron: '0 5 * * *' # Midnight Central
workflow_dispatch:
jobs:
post:
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install dependencies
run: pip install requests
- name: Run bot
env:
TELEGRAM_BOT_TOKEN: ${{ secrets.TELEGRAM_BOT_TOKEN }}
CHAT_ID_1: ${{ secrets.CHAT_ID_1 }}
CHAT_ID_2: ${{ secrets.CHAT_ID_2 }}
run: python schumann_bot.py
4. Commit this file the same way as before.
Phase 4 — Test It!
Before waiting for the scheduled times, let's make sure everything works by triggering it manually right
now.
Step 9: Run Your First Manual Test
1. In your repo, click the Actions tab at the top.
2. In the left sidebar, click Post Schumann Resonance.
3. On the right side, click the Run workflow button.
4. A small box appears — click the green Run workflow inside it.
5. A yellow spinning circle will appear. Click on it to watch the progress.
6. After 20–30 seconds it should turn green ■ — check your Telegram group for the image!
■ If you see the Schumann sonogram image appear in your Telegram group — you are done! Your bot will
now automatically post every day at 6AM, 12PM, 6PM, and Midnight Central Time without you having to do
anything.
Troubleshooting
Problem Most Likely Fix
Red ■ in Actions, says 'file not found' Check that your Python file is named exactly schumann_bot.py (lowercase, und
Red ■ says '400 Bad Request' Your bot is not in the group yet, or your Chat ID has a typo. Re-check both.
getUpdates page shows empty [] Send a message in the group first, then refresh the browser page.
Bot token gives 404 error Get a fresh token from BotFather — go to /mybots → your bot → API Token.
Image posts but times are wrong Check if your region is on Daylight Saving Time. Central DST = UTC-5, Standa
Data sourced from Space Observing System 70 — [Link] | Tomsk, Russia Tutorial prepared for community sharing —
free to distribute