Skip to content


Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Creates a smart clock with a webserver used as webhook to receive messages from IFTTT. Built with a Raspberry Pi 3 Model B Rev 1.2 Raspbian GNU/Linux version "10 (buster)" and a 4 module MAX7219 (8x32 matrix) and python 2.7.

NOTE: If not cloned into /home/pi then paths need to be updated in the following locations and the in the instructions that follow.:

  • line 58
  • line 36 && 44
  • ledclock.service line 7
  • leddisplay.service line 7

Additional reference :


  1. Need a Raspberry Pi (4) module MAX7219 max7219

    (5) female - female wire jumpers

  2. On Raspberry Pi enable the GPIO interface sudo raspi-config Select option "5 Interfacing Options" and then "P5 I2C Enable/Disable automtic loading of SPI kernel module"

  3. connect MAX7219 to Raspberry Pi GPIO pins using the (5) jumper wires MAX7219 VCC to RPI pin 2 MAX7219 GND to RPI pin 6 MAX7219 DIN to RPI pin 19 MAX7219 CS to RPI pin 24 MAX7219 CLK to RPI pin 23

    Wiring Table

On Raspberry pi

  1. install to service the web requests

    sudo pip install
  2. install luma.led_matrix to provide the max7219 display libraries

    sudo pip install luma.led_matrix==1.4.1
  3. run to create the clock display

    /usr/bin/python /home/pi/hooks2/
  4. run to create the webserver

     /usr/bin/python /home/pi/hooks2/
  5. if you want clock & hooks2 to run at startup, create 2 services & allow permissions

    sudo cp ledclock.service /usr/lib/systemd/system
    sudo cp leddisplay.service /usr/lib/systemd/system

    Reload systemctl daemon, enable the 2 services and start them

     sudo systemctl daemon-reload
     sudo systemctl enable leddisplay.service
     sudo systemctl enable ledclock.service

    Start the services

     sudo systemctl start leddisplay.service
     sudo systemctl start ledclock.service
  6. monitor the services using their log files; clock.log & hooks2.log or by checking the service status

     sudo systemctl status leddisplay.service
     sudo systemctl status ledclock.service
  7. testing If you started the ledclock service or just run the clock script, a clock should display To test your webserver inside the firewall: get the static ip address for your raspberry pi (piip). open a browser to http://piip:8080/?id=hello world after the display updates, the web page should return with "hello world"

On your router

  1. Create a rule on your router/firewall to redirect connections on your public ip address & special port to your raspberry pi running the web server on port 8080. Get the static public ip address from your routers internet connection (pubip). Get the static ip address for your raspberry pi (piip). Create a firewall rule like; any inbound traffic on "pubip" port 5207 redirect to "piip" port 8080

    Firewall Example


  1. Create applets that will send messages to your smart clock. The smart clock end point on ifttt is a webhook.

    • URL: built from your public ip, port and the applet ingredients.
    • Method: GET
    • Content Type: text/plain
    • Body: leave blank for example ifttt will send a message when any new event is added to my google calendar Create applet, if Google Calender - any new event then Webhook
    • URL: http://pubip:5207/?id=a new event was added: {{Starts}} - {{Title}}
    • Method: GET
    • Content Type: text/plain
    • Body: leave blank

    IFTTT Part 1 IFTTT Part 2

  2. Create other applets with the "then" part as a webhook. Use the same url and add what ever ingredients you like.


No description, website, or topics provided.






No releases published


No packages published