WhatsApp bot die dienstschema PNGs verstuurt op dienstnummer
- JavaScript 77.9%
- Shell 22.1%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| docs/superpowers | ||
| src | ||
| .env | ||
| .env.example | ||
| .gitignore | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
Dienst Bot
Dit project is gemaakt door middel van vibecoding met OpenCode 1.14.40 en Z.AI/GLM-5.1.
WhatsApp bot die dienstschema's (PNG) verstuurt op basis van een dienstnummer in een WhatsApp groep.
Hoe het werkt
- Iemand tagt @EdGpt in de toegestane groep met een 4-cijferig dienstnummer (bijv.
@EdGpt 4002) - De bot zoekt het dienstschema op in
dienst-tijden.json - De bijbehorende PNG-bestanden worden privé naar de afzender gestuurd
Vereisten
- Node.js 18+
- wwebjs-api Docker container (poort 3000)
- WhatsApp sessie "EdGpt" actief in wwebjs-api
- PM2 (optioneel, voor procesbeheer)
Installatie
git clone <repo-url>
cd dienst_echo_whatsappgroep
npm install
Configuratie
Kopieer .env.example naar .env en vul de waarden in:
# WhatsApp API
WHATSAPP_API_ENDPOINT=http://localhost:3000
WHATSAPP_SESSION=EdGpt
# Webhook
WEBHOOK_PORT=3002
ALLOWED_GROUP=120363407356808413@g.us
BOT_NAME=EdGpt
# Bestanden
DIENSTEN_JSON=./diensten/dienst-tijden.json
DIENSTEN_PNG=./diensten/png
# Admin
ADMIN_NUMBER=31620248011@c.us
wwebjs-api webhook config
In de .env van wwebjs-api:
BASE_WEBHOOK_URL=http://host.docker.internal:3002/webhook
ENABLE_LOCAL_CALLBACK_EXAMPLE=FALSE
ENABLE_WEBHOOK=TRUE
Belangrijk: gebruik docker compose up -d (niet docker restart) om .env wijzigingen door te voeren.
Data
De map diensten/ bevat:
dienst-tijden.json— array met dienstmetadata:[ { "dienstnummer": "4002", "startTime": "09:30", "endTime": "10:30", "paginas": [ { "bestandsnaam": "4002-001.png" }, { "bestandsnaam": "4002-002.png" } ] } ]png/— PNG bestanden met dienstschema's (bijv.4002-001.png)
Beide zijn uitgesloten van git via .gitignore.
Gebruik
Starten
npm start
Of met PM2:
npx pm2 start src/index.js --name dienst-bot
npx pm2 save
Stoppen
npx pm2 stop dienst-bot
Logs bekijken
npx pm2 logs dienst-bot
Projectstructuur
src/
index.js # Express webhook server
messageHandler.js # Berichtverwerking en filtering
dienstService.js # JSON lookup en PNG bestandspaden
whatsappApi.js # WhatsApp API client (bericht + afbeelding)
Foutafhandeling
- Ongeldig dienstnummer: de bot stuurt een melding terug naar de afzender
- Fout bij verzenden PNG: de admin krijgt een WhatsApp melding
- Webhook fout: wordt gelogd in PM2 logs
Licentie
Privé project — niet voor distributie.