Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

diagram

Button Screenshot Calendar Screenshot

Setup & Running

1. Server Setup

  1. Build & run the containers:
    docker build -t swifi ./src && docker compose up -d
  2. Open http://<server-ip>:8080 in your browser.

2. Pico Client Setup

  1. Open pico/pico_client.py and update:
    • WIFI_SSID & WIFI_PASSWORD: Your Wi-Fi network credentials.
    • MQTT_BROKER: The server's IP address.
  2. Flash the script to the Pico (using Thonny) and wire according to the schematic.

User Management

1. MQTT Credentials

  • Default: guy / guy123
  • To change:
    1. Generate a new pwfile in mosquitto/conf/:
      docker run --rm -it -v "$PWD/mosquitto/conf:/mosquitto/config" eclipse-mosquitto mosquitto_passwd -c /mosquitto/config/pwfile <username>
    2. Update credentials in src/app.py and pico/pico_client.py, then rebuild and restart (docker build -t swifi ./src && docker compose down && docker compose up -d).

2. Web App Users

  • Default: guy / p4ssw0rd
  • To manage users (run while containers are running):
    • Add:
      docker exec -it swifi python -c "
      from app import app, db, User, hash_password
      with app.app_context():
          db.session.add(User(username='usr', password=hash_password('pwd')))
          db.session.commit()
      "
    • Change Password:
      docker exec -it swifi python -c "
      from app import app, db, User, hash_password
      with app.app_context():
          u = User.query.filter_by(username='usr').first()
          if u:
              u.password = hash_password('new_pwd')
              db.session.commit()
      "
    • Remove:
      docker exec -it swifi python -c "
      from app import app, db, User, Session
      with app.app_context():
          u = User.query.filter_by(username='usr').first()
          if u:
              Session.query.filter_by(user_id=u.id).delete()
              db.session.delete(u)
              db.session.commit()
      "

About

A smart switch

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages