www.haegi.org

www.haegi.org

  • 18. October 2020

    |

    Projects » Internet Radio

    PiRadio

    The PiRadio is a portable music player.

    Materials

    • Raspberry Pi Zero
    • Adafruit PowerBoost 1000
    • LiPo Battery
    • Pimoroni pHAT DAC
    • PAM8403 amplifier
    • 2x speaker Ø 8cm
    • 9x Anti-Vandal Momentary Push Buttons
    • 1x volume knob
    • 4x WS2801 LEDs
    • USB A Jack to Micro USB B Jack Round Panel Mount Adapter
    • Micro USB B Jack to USB A Plug Round Panel Mount Adapter
  • 18. October 2020

    |

    Projects » MagicMirror

    MagicMirror shrinked

    The frame of my MagicMirror is based on the IKEA RIBBA frame which is not matching the dimensions of the display. Unfortunately this is sometimes visible, so I deciced to shrink the frame and match the mirror the size of the display.

    GPIO Mapping

    DescriptionGPIOcable color
    Button left17red
    Button center27green
    Button right22yellow
    Relay PowerVCCyellow
    Relay Pin18green
    Relay GroundGNDblue
    WS2801 PowerVCCred
    WS2801 CISPI0 SCLKgreen
    WS2801 DISPI0 MOSIblue
    WS2801 GroundGNDblack
  • 12. August 2019

    |

    Projects » Web Applications

    JSTable

    While removing the jQuery dependencies from the Life-Tracking Dashboard I didn’t find a satisfying replacement for the jQuery datatables plugin with server side rendering.

    Vanilla-DataTables was unfortunately not able to do server-side rendering to I did a custom implementation using the in ES6 introduced classes.

    You can find the resulting project JSTable on github and more information about the usage on https://www.haegi.org/jstable/

  • 12. August 2019

    |

    Projects » Web Applications

    Life-Tracking improvements

    Since the last post several new features were added to the Life-Tracking dashboards:

    Finances

    Category Assignments

    It is now possible to automatically assign categories to new finance entries.

    Payment Methods

    You can define and save different payment methods.

    Budgets

    It is possible to define individual budgets for one or multiple categories. The budget is valid for one month and generated dynamically. The budgets are checked when a new finance entry is added.

    Crawlers

    You can now define individual data tables which can be populated by sending JSON data to the dashboard. It is also possible to define which fields should be visible or sortable and how the individual fields are displayed.

    Additionally it is possible to filter the data for one or multiple days.

    A new dataset or an update for a existing dataset can be send like follows:

    curl --header "Content-Type: application/json" \
      --request POST \
      --data '{"identifier":"offer1","data":{"name":"job offer 1", "company":"company 2", "pay":50000, "url":"http://www.google.com"}}' \
      http://<user>:<password>@<domain>/crawlers/<hash>/record/

    Multiple Cars

    The dashboard is now capable to support multiple cars.

    Splitted Bills

    Inspired by spliwise it is possible to share and split bills with other users. You can create groups of users and enable automatic finance entry generation. The expenses and payments can be splitted equally or by fixed values.

    The individual balances for the each user is calculated immediately.

    Trips

    The trip module enables easy trip planing. You can create a new trip and add accomodations, transportation or events which are then displayed in a list and map view.

    Location History

    The location history module is improved so that you can set individual location points or trigger new points by a Tasker task.

    Additionally all finance and car service entries are saved with the corresponding location. The location types are now clustered and can be hidden on the map.

    Tasker task

    A1: Standortsuche starten [ 
    Quelle:Beide 
    Timeout (Sekunden):10 
    sofort mit Task fortfahren:Aus 
    Standortsuche fortführen:Aus 
    ] 
    
    A2: HTTP Auth [ 
    Method:Username and Password 
    Client ID: 
    Client Secret: 
    Endpoint To Get Code: 
    Endpoint To Get Refresh Token: 
    Scopes: 
    Force Re-Authentication:Aus 
    Timeout (Sekunden):30 
    Username:<USERNAME> 
    Password:<PASSWORD> 
    ] 
    
    A3: HTTP Request [ 
    Method:POST 
    URL:https://<DOMAIN>/location/record 
    Headers:%http_auth_headers 
    Query Parameters: 
    Body: {
    "identifier":"<DEVICE>", 
    "device":"%DEVID",
    "date":"%DATE",
    "time":"%TIME",
    "batt":"%BATT",
    "times":"%TIMES",
    "wifi_state":"%WIFI",
    "gps_state":"%GPS",
    "mfield":"%MFIELD",
    "screen_state":"%SCREEN",
    "ups":"%UPS",
    "gps_loc":"%LOC",
    "gps_acc":"%LOCACC",
    "gps_alt":"%LOCALT",
    "gps_spd":"%LOCSPD",
    "gps_tms":"%LOCTMS",
    "net_loc":"%LOCN",
    "net_acc":"%LOCNACC",
    "net_tms":"%LOCNTMS",
    "cell_id":"%CELLID",
    "cell_sig":"%CELLSIG",
    "cell_srv":"%CELLSRV"
    }
    File To Send: 
    File To Save With Output: 
    Timeout (Sekunden):10 
    Trust Any Certificate:Aus 
    ]

    PWA with Notifications

    For a easy mobile application the dashboard is supporting a service worker with optional push notifications.

    It is possible to send a push notification to the following endpoint:

    curl "http://<user>:<password>@<domain>/notifications/notify?type=test11&title=Test%20title&message=Test%20message"

    User Management

    The individual modules can be made available for individual users:

  • 9. July 2019

    |

    Projects » PCB

    ParticleGen3-Shield

    For the Particle devices in the 3rd generation which are using the Adafruit Feather form factor I created a PCB to use a MCP23017 I/O Expander.

«Previous Page
1 2 3 4 5 … 12
Next Page»