{"id":15163014,"url":"https://github.com/rwanou88/magicframe","last_synced_at":"2026-01-19T08:32:28.521Z","repository":{"id":253112941,"uuid":"841850046","full_name":"Rwanou88/MagicFrame","owner":"Rwanou88","description":"Home dashboard : weather, temperature, humidity, events and guest wifi","archived":false,"fork":false,"pushed_at":"2024-11-23T09:34:29.000Z","size":5174,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-08T08:18:40.260Z","etag":null,"topics":["calendar-events","dashboard","diy","domotic","electronic","esp32","esphome","guest-wifi","home-assistant","waveshare-epaper","weather-forecast"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Rwanou88.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-13T07:01:54.000Z","updated_at":"2024-11-23T09:34:32.000Z","dependencies_parsed_at":"2024-08-22T23:25:57.144Z","dependency_job_id":"4e703bdb-7d5a-4e56-85b1-c291697fafe3","html_url":"https://github.com/Rwanou88/MagicFrame","commit_stats":{"total_commits":141,"total_committers":1,"mean_commits":141.0,"dds":0.0,"last_synced_commit":"1485b4954f0259b30053e4a8b4051dc35f95d4b0"},"previous_names":["rwanou88/magicframe"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rwanou88%2FMagicFrame","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rwanou88%2FMagicFrame/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rwanou88%2FMagicFrame/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rwanou88%2FMagicFrame/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Rwanou88","download_url":"https://codeload.github.com/Rwanou88/MagicFrame/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247801170,"owners_count":20998339,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["calendar-events","dashboard","diy","domotic","electronic","esp32","esphome","guest-wifi","home-assistant","waveshare-epaper","weather-forecast"],"created_at":"2024-09-27T02:02:25.565Z","updated_at":"2026-01-19T08:32:28.515Z","avatar_url":"https://github.com/Rwanou88.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# MagicFrame - FR/EN\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://github.com/user-attachments/assets/a6f44f41-5818-4442-afc4-017f5addda86\" width=\"400\"/\u003e\n\u003cimg src=\"https://github.com/user-attachments/assets/b979119b-fafe-4016-985f-2d873fd0a38e\" width=\"400\"/\u003e\n\u003c/p\u003e\n\nFR - Inspiré par ces projets\n\nEN - Inspired by these projects\n\n- GammaTroniques (FR) : [GitHub](https://github.com/NoahJst/HomeAssistant-Config/blob/main/esphome/README.md) / [Youtube](https://www.youtube.com/watch?v=XyooZe_9hc0)\n- Madalena (EN) : [GitHub](https://github.com/Madelena/esphome-weatherman-dashboard)\n- Tech Dregs (EN) : [Youtube](https://www.youtube.com/watch?v=qJuF58CjwIA)\n\n## Materiel - Hardware\nAmazon FR\n- [ESP32 + écran](https://www.amazon.fr/Waveshare-Electronic-Interface-Bluetooth-Raspberry/dp/B07MB7SVHQ)\n- [Cadre RIBBA IKEA](https://www.amazon.fr/Ikea-Cadre-RIBBA-13-noir/dp/B0BW8SLP9C/ref=sr_1_4)\n\nAmazon US\n- [e-Paper ESP32 Driver Board](https://www.amazon.com/gp/product/B07M5CNP3B)\n- [Waveshare 7.5inch E-Ink Display](https://www.amazon.com/waveshare-7-5inch-HAT-Raspberry-Consumption/dp/B075R4QY3L)\n- [IKEA RIBBA Picture Frame](https://www.amazon.com/Ikea-Ribba-Picture-Frame-White/dp/B01JEFG1B8)\n\n3D printer\n- [Thingiverse](https://www.thingiverse.com/thing:6427159)\n\nFR- Vous pouvez en trouver d'autres en cherchant \"waveshare\", \"esp32\".\n\nEN - You can find more by searching for \"waveshare\", \"esp32\".\n\n## Logiciels - Software\n- Home Assistant\n  - [EN - Home Assistant : Installation](https://www.home-assistant.io/installation/)\n  - [FR - Abrège : Fabriquer la box domotique parfaite !](https://www.youtube.com/watch?v=XyooZe_9hc0)\n- ESPHome\n  - [FR - Abrège : Tuto ESPHome 2022](https://youtu.be/3GbyYQHQvV8)\n- Studio Code Server\n\n## Installation - FR\n\n1. Connectez l'écran à l'ESP32, en vérifiant bien que les 2 petits interrupteurs \"1\" et \"2\" de l'ESP32 soient bien sur \"A\" et \"ON\". Dans le cas contraire, vous aurez des problèmes d'affichage sur l'écran.\n2. À l'aide de Studio Code Server, dans votre dossier `/.config/esphome` (cf. image [Screenshot.png](https://github.com/Rwanou88/MagicFrame/blob/d5d15970d22fd17562468809398384b56ce35467/pictures/Screenshot.png)) :\n    - copiez les fichiers `magicframe.yaml` et `secrets.yaml`\n    - ajoutez le contenu du dossier `/fonts` dans votre dossier `/fonts`\n3. Toujours à l'aide de Studio Code Server, intégrez le contenu des fichiers `sensors.yaml` et `templates.yaml` dans vos fichiers YAML de configuration Home Assistant (cf. image [Screenshot.png](https://github.com/Rwanou88/MagicFrame/blob/d5d15970d22fd17562468809398384b56ce35467/pictures/Screenshot.png))\n4. Mettez à jours les parties commentées des fichiers `magicframe.yaml`, `secrets.yaml` et `templates.yaml` avec vos propres informations (entity ID, identifiants, mots de passe, API key...)\n5. Branchez l'ESP32 à votre ordinateur, lancez ESPHome et suivez les instructions pour installer `magicframe.yaml` sur votre ESP32.\n6. Enjoy!\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://github.com/user-attachments/assets/22bbd79e-67af-4a39-8ac2-9701a0a2f3db\" width=\"400\"/\u003e\n\u003c/p\u003e\n\n## Installation - EN\n1. Connect the screen to the ESP32, making sure that the 2 small switches \"1\" and \"2\" on the ESP32 are on \"A\" and \"ON\". Otherwise, you will have display problems on the screen.\n2. Using Studio Code Server, in your folder `/.config/esphome` (cf. picture [Screenshot.png](https://github.com/Rwanou88/MagicFrame/blob/d5d15970d22fd17562468809398384b56ce35467/pictures/Screenshot.png)):\n    - copy the files `magicframe.yaml` and `secrets.yaml`\n    - add the contents of the folder `/fonts` in your folder `/fonts`\n3. Still using Studio Code Server, integrate the contents of the files `sensors.yaml` and `templates.yaml`in your Home Assistant configuration YAML files (cf. picture [Screenshot.png](https://github.com/Rwanou88/MagicFrame/blob/d5d15970d22fd17562468809398384b56ce35467/pictures/Screenshot.png))\n4. Update the commented parts of the files `magicframe.yaml`, `secrets.yaml` and `templates.yaml` with your own information (entity ID, identifiers, passwords, API key...)\n5. Connect the ESP32 to your computer, launch ESPHome and follow the instructions to install `magicframe.yaml` on your ESP32.\n6. Enjoy!\n\n## Fonctionnalités - Features\n\n### * Mise à jour automatique de l'écran - Automatic screen update *\n\nFR - Réglé pour une mise à jour toutes les 4h.\nLe paramétrage est présent dans le fichier `magicframe.yaml`.\n\nEN - Set to update every 4 hours.\nThe setting is present in the file `magicframe.yaml`.\n\n### * Prévision météo - Weather forecast *\nIntegrations : [Meteorologisk institutt (Met.no)](https://www.home-assistant.io/integrations/met) - [Time \u0026 Date](https://www.home-assistant.io/integrations/time_date)\n\nFR - Utilisation de cette intégration.\nIl faudra paramétrer votre ville et récupérer l'ID d'entité `weather.forecast_VotreVille` pour l'intégrer au fichier `templates.yaml`.\nLa prévision et la température principales sont celles au moment de la mise à jour de l'écran.\nEn-dessous, on a la prévision et les températures min. et max, pour la journée en cours et les 4 jours suivants.\n\nEN - I'm using this integration.\nYou will need to set up your city and retrieve the entity ID `weather.forecast_YourCity` to integrate it into the file `templates.yaml`.\nThe main forecast and temperature are those at the time of the screen update.\nBelow, we have the forecast and the min. and max. temperatures, for the current day and the following 4 days.\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://github.com/user-attachments/assets/05af2c0b-8508-4de5-b912-c87673f9b3d2\" width=\"400\"/\u003e\n\u003c/p\u003e\n\n### * Température et humidité de la maison - Home temperature and humidity *\nIntegration : [Tado°](https://www.home-assistant.io/integrations/tado)\n\nFR - Utilisation de cette intégration car j'ai des têtes thermostatiques de cette marque sur mes radiateurs.\nLes ID d'entité température et humidité sont à intégrer directement dans le fichier `magicframe.yaml`.\nIl est possible d'afficher les infos de 5 pièces.\n\nEN - I'm using this integration because I have thermostatic heads of this brand on my radiators.\nThe temperature and humidity entity IDs are to be integrated directly into the file `magicframe.yaml`.\nIt is possible to display information for 5 rooms.\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://github.com/user-attachments/assets/df3f795d-aa0a-4c34-bb1e-b987ff0713d0\" width=\"400\"/\u003e\n\u003c/p\u003e\n\n### * Calendrier - Calendar *\nIntegrations : [CalDAV](https://www.home-assistant.io/integrations/caldav) - [Time \u0026 Date](https://www.home-assistant.io/integrations/time_date)\n\nFR - Utilisation de cette intégration pour récupérer l'agenda souhaité (iCloud).\nL'ID d'entité est à intégrer dans le fichier `templates.yaml`.\nIl est possible d'afficher les 5 prochains événements du calendrier (sur les 90 prochains jours).\nLes emojis peuvent être pris en compte, il faudra les ajouter, au fur et à mesure des besoin, dans le fichier `magicframe.yaml`.\n\nEN - I'm using this integration to retrieve the desired calendar (iCloud).\nThe entity ID is to be included in the file `templates.yaml`.\nIt is possible to display the next 5 calendar events (over the next 90 days).\nEmojis can be taken into account, they will have to be added, as and when needed, in the file `magicframe.yaml`.\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://github.com/user-attachments/assets/cec0014b-4b0b-4bde-a56d-cab2923c0b43\" width=\"400\"/\u003e\n\u003c/p\u003e\n\n### * Wifi invité - Guest Wifi *\nESPHome : [QR Code](https://esphome.io/components/qr_code.html)\n\nFR - Utilisation du composant d'ESPHome.\nLe paramétrage est présent dans le fichier `secrets.yaml`.\n\nVoici comment est configuré le code QR : `WIFI:T:WPA;S:NomDeMonRéseau;P:MonMotDePasse;H:false;`\n| Options   | Exemple         | Description                                                                     |\n| :-------: | :-------:       | :-------                                                                        |\n| T         | WPA             |  Type d’authentification : WEP, WPA ou aucun en cas d’absence de mot de passe.  |\n| S         | NomDeMonRéseau\t|  Nom de réseau SSID.                                                            |\n| P         | MonMotDePasse   |  Mot de passe, à ignorer si « T » est vide.                                     |\n| H         | true            |  \"true\" si le réseau SSID est caché (Facultatif)                                |\n\nEN - I'm using the ESPHome component.\nThe setting is present in the file `secrets.yaml`.\n\nThis is how the QR code is configured : `WIFI:T:WPA;S:MyNetworkName;P:MyPassword;H:false;`\n| Options   | Exemple         | Description                                             |\n| :-------: | :-------:       | :-------                                                |\n| T         | WPA             |  Authentication type: WEP, WPA or none if no password   |\n| S         | MyNetworkName\t  |  SSID Network Name                                      |\n| P         | MyPassword      |  Password, ignore if \"T\" is empty                       |\n| H         | true            |  \"true\" if the network SSID is hidden (Optional)        |\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://github.com/user-attachments/assets/3e589afc-ce22-4e4c-9052-cb93871b2248\" width=\"400\"/\u003e\n\u003c/p\u003e\n\n### * Date et heure de mise à jour - Date and time of update *\nIntegration : [Time \u0026 Date](https://www.home-assistant.io/integrations/time_date)\n\nFR - Affiche la date et l'heure de la dernière mise à jour de l'écran.\n\nEN - Displays the date and time of the last screen update.\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://github.com/user-attachments/assets/e047e738-e1e1-4497-93ff-19ff7939ead3\" width=\"400\"/\u003e\n\u003c/p\u003e\n\n## TO DO\nFR - Traduire en français les dates des événements de l'agenda.\n\nEN - Translate the dates of the calendar events into french.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frwanou88%2Fmagicframe","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frwanou88%2Fmagicframe","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frwanou88%2Fmagicframe/lists"}