{"id":13830348,"url":"https://github.com/schnibel/MMM-Memo","last_synced_at":"2025-07-09T11:32:43.583Z","repository":{"id":217324346,"uuid":"85507632","full_name":"schnibel/MMM-Memo","owner":"schnibel","description":"This an extension module for the MagicMirror². It adds the ability to manage different kind of memos.","archived":false,"fork":false,"pushed_at":"2020-10-22T21:36:20.000Z","size":589,"stargazers_count":34,"open_issues_count":5,"forks_count":8,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-08-04T10:02:57.071Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/schnibel.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2017-03-19T20:48:56.000Z","updated_at":"2024-08-04T10:02:59.900Z","dependencies_parsed_at":null,"dependency_job_id":"513385ab-8ab5-4b12-ba98-0f4115d83e63","html_url":"https://github.com/schnibel/MMM-Memo","commit_stats":null,"previous_names":["schnibel/mmm-memo"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schnibel%2FMMM-Memo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schnibel%2FMMM-Memo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schnibel%2FMMM-Memo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schnibel%2FMMM-Memo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/schnibel","download_url":"https://codeload.github.com/schnibel/MMM-Memo/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225539380,"owners_count":17485315,"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":[],"created_at":"2024-08-04T10:00:58.935Z","updated_at":"2025-07-09T11:32:43.570Z","avatar_url":"https://github.com/schnibel.png","language":"JavaScript","funding_links":[],"categories":["Productivity"],"sub_categories":[],"readme":"# MMM-Memo\nThis an extension for the [MagicMirror²](https://magicmirror.builders/).\n\u003cbr\u003eThis Module is used to add one to many memo notes on your Magic Mirror.\n\u003cbr\u003eContent is manageable through HTTP get requests.\n\n## What does it look like\n![alt tag](https://github.com/schnibel/MMM-Memo/blob/master/img/MMM-Memo.png)\n\n## Dependencies\n  * An installation of [MagicMirror\u003csup\u003e2\u003c/sup\u003e](https://github.com/MichMich/MagicMirror)\n\n## Installation\n\nIn your terminal, go to your MagicMirror's Module folder:\n````\ncd ~/MagicMirror/modules\n````\n\nClone this repository:\n````\ngit clone https://github.com/snille/MMM-Memo.git\n````\n\n## Using the module\n\nTo use this module, add it to the modules array in the `config/config.js` file:\n````javascript\nmodules: [\n    {\n        module: 'MMM-Memo',\n        position: 'top_left',\n        classes: 'default everyone',        // if using MMM-ProfileSwitcher module\n        config: {\n            // See 'Configuration options' for more information.\n            ...\n        }\n    }\n]\n````\nIf you declare several modules in the `config/config.js` file, you will get several memo notes on your MagicMirror\u003csup\u003e2\u003c/sup\u003e profile.\n\n## Configuration options\n\nThe following properties can be configured:\n\n| Option                     | Description\n| -------------------------- | -----------\n| `memoTitle`                | [MANDATORY]\u003cbr\u003eTitle of the memo note.\u003cbr\u003eThis title is also used to retreive memos from the persistence file.\u003cbr\u003e\u003cbr\u003e **This is NOT case sensitive**\n| `memoMaxItems`             | [OPTIONAL]\u003cbr\u003eInteger used to define the maximum number of memo to display per note.\u003cbr\u003eIf the number of memos is greater than the one specified here, a message (e.g. `+ 2 more memos`) will be displayed at the bottom of the note.\u003cbr\u003e\u003cbr\u003e **Default value:** `5`\n| `memoMaxMsgSize`           | [OPTIONAL]\u003cbr\u003eInteger used to define the maximum number of characters to be displayed per memo.\u003cbr\u003e\u003cbr\u003e **Default value:** `false` (It will show all characters)\n| `memoDisplayDuration`      | [OPTIONAL]\u003cbr\u003eUsed to show since when memos have been created.\u003cbr\u003e\u003cbr\u003e **Possible values:** `true` or `false`\u003cbr\u003e **Default value:** `false`\n| `memoDisplayIfEmpty`       | [OPTIONAL]\u003cbr\u003eUsed to display (or not) an empty note if there is no memo inside.\u003cbr\u003e\u003cbr\u003e **Possible values:** `true` or `false`\u003cbr\u003e **Default value:** `false`\n| `memoDisplayId`            | [OPTIONAL]\u003cbr\u003eUsed to display (or not) a number before each memo. This number is necessary to remove a memo.\u003cbr\u003e\u003cbr\u003e**Note that this unicode character is limited to 20**\u003cbr\u003e\u003cbr\u003e **Possible values:** `true` or `false`\u003cbr\u003e **Default value:** `true`\n| `memoDisplayHeader`        | [OPTIONAL]\u003cbr\u003eUsed to display (or not) the memoTitle at the top of the note.\u003cbr\u003e\u003cbr\u003e **Possible values:** `true` or `false`\u003cbr\u003e **Default value:** `true`\n| `memoDisplayNotification`  | [OPTIONAL]\u003cbr\u003eUsed to display (or not) the notification using the default alert module.\u003cbr\u003eSee [How to use](#to-temporary-display-the-second-memo-of-the-shopping-memo-note) section for more information on this property.\u003cbr\u003e\u003cbr\u003e **Possible values:** `true` or `false`\u003cbr\u003e **Default value:** `false`\n| `memoColorBackground`      | [OPTIONAL]\u003cbr\u003eUsed to define the color of the note.\u003cbr\u003e\u003cbr\u003e **Possible values:** See [Colors](#colors) for more information.\u003cbr\u003e **Default value:** `Yellow`\n| `memoColorHeader`          | [OPTIONAL]\u003cbr\u003eUsed to define the color of the header (if displayed).\u003cbr\u003e\u003cbr\u003e **Possible values:** See [Colors](#colors) for more information.\u003cbr\u003e **Default value:** `Black`\n| `memoColorFont`            | [OPTIONAL]\u003cbr\u003eUsed to define the color of the memo font.\u003cbr\u003e\u003cbr\u003e **Possible values:** See [Colors](#colors) for more information.\u003cbr\u003e **Default value:** `Black`\n| `memoColorWarning`         | [OPTIONAL]\u003cbr\u003eUsed to define the color of a WARNING note.\u003cbr\u003e\u003cbr\u003e **Possible values:** See [Colors](#colors) for more information.\u003cbr\u003e **Default value:** `Red`\n| `memoRotation`             | [OPTIONAL]\u003cbr\u003eUsed to rotate the note.\u003cbr\u003e\u003cbr\u003e **Possible values:** `-10` or `-8` or `-6` or `-4` or `-2` or `0` or `2` or `4` or `6` or `8` or `10`\u003cbr\u003e **Default value:** `0`\n| `memoWidth`                | [OPTIONAL]\u003cbr\u003eValue to specify the width of the note.\u003cbr\u003e\u003cbr\u003e **Default value:** `100px`\n| `memoHeight`               | [OPTIONAL]\u003cbr\u003eValue to specify the height of the note.\u003cbr\u003e\u003cbr\u003e **Default value:** `100px`\n| `memoPadding`              | [OPTIONAL]\u003cbr\u003eValue to specify the padding of the note.\u003cbr\u003e\u003cbr\u003e **Default value:** `20px`\n| `memoItemAllign`           | [OPTIONAL]\u003cbr\u003eTo set the note entry either alligned to the \"left\" or to the \"right\".\u003cbr\u003e\u003cbr\u003e **Default value:** `right`\n| `format`                   | [OPTIONAL]\u003cbr\u003eDisplays relative date format, for absolute date format provide a string like `'DD:MM HH:mm'` [All Options](http://momentjs.com/docs/#/displaying/format/)\n\n\n\n## How to Use\n\nI'm using this module with my Jarvis installation from [DomotiqueFacile](http://domotiquefacile.fr/jarvis/).\n\u003cbr\u003eWhen I speak to Jarvis, I say for example : \"add FRUITS to the SHOPPING memo list\", and Jarvis automatically sends a HTTP get request to the MMM-Memo module.\n\u003cbr\u003e\u003cbr\u003eThe available HTTP get requests are the following at the moment:\n\n### To add 'Fruits' to the 'Shopping' memo note:\n````\nhttp://MIRROR_IP:MIRROR_PORT/AddMemo?memoTitle=SHOPPING\u0026item=Fruits\u0026level=INFO\n````\n**NOTE** : The level property is optional in the request. If not specified, the `INFO` level will be set.\n\n### To add 'Daddy: +33123456789' to the 'Phone Numbers' memo note with a WARNING level:\n````\nhttp://MIRROR_IP:MIRROR_PORT/AddMemo?memoTitle=phone%20numbers\u0026item=Daddy%3A%20%2B33123456789\u0026level=WARNING\n````\n**NOTE** : The level property is optional in the request. If not specified, the `INFO` level will be set.\n\u003cbr\u003e**NOTE** : Here is an example of a curl command with urlencode syntax\n````\ncurl -G -v \"http://MIRROR_IP:MIRROR_PORT/AddMemo?memoTitle=SHOPPING\" --data-urlencode \"item=Bonjour, êtes-vous allées dans votre boutique préférée ?\"\n````\n\n### To remove the second displayed memo of the 'Phone Numbers' memo note:\n````\nhttp://MIRROR_IP:MIRROR_PORT/RemoveMemo?memoTitle=phone%20numbers\u0026item=2\n````\n\n### To remove ALL memos of the 'Phone Numbers' memo note:\n````\nhttp://MIRROR_IP:MIRROR_PORT/RemoveMemo?memoTitle=phone%20numbers\u0026item=ALL\n````\n\n### To temporary display the second memo of the 'Shopping' memo note:\n````\nhttp://MIRROR_IP:MIRROR_PORT/DisplayMemo?memoTitle=SHOPPING\u0026item=2\n````\nMemo note is displayed using the [default alert module](https://github.com/MichMich/MagicMirror/tree/master/modules/default/alert),\nso it is necessary to configure this alert module in your `config/config.js` file if you want to see notifications.\n\u003cbr\u003e\u003cbr\u003e**NOTE** : I saw a problem when more than one unique MMM-Memo module is defined in the `config/config.js` file.\n\u003cbr\u003eIndeed, the same notification is displayed several times (e.g. 3 times if you defined 3 MMM-Memo modules). I did not\ndeeply investigate to understand the root cause.\n\u003cbr\u003eA workaround is to use the `memoDisplayNotification` property by setting it to `true` for ONLY ONE MMM-MEMO MODULE\n\u003cbr\u003eDo not forget to have ONE `memoDisplayNotification` set to `true` if you want to see notifications.\n\n### To temporary display ALL memos of the 'Shopping' memo note:\n````\nhttp://MIRROR_IP:MIRROR_PORT/DisplayMemo?memoTitle=SHOPPING\u0026item=ALL\n````\nMemo note is displayed using the [default alert module](https://github.com/MichMich/MagicMirror/tree/master/modules/default/alert),\nso it is necessary to configure this alert module in your `config/config.js` file if you want to see notifications.\n\u003cbr\u003e\u003cbr\u003e**NOTE** : I saw a problem when more than one unique MMM-Memo module is defined in the `config/config.js` file.\n\u003cbr\u003eIndeed, the same notification is displayed several times (e.g. 3 times if you defined 3 MMM-Memo modules). I did not\ndeeply investigate to understand the root cause.\n\u003cbr\u003eA workaround is to use the `memoDisplayNotification` property by setting it to `true` for ONLY ONE MMM-MEMO MODULE\n\u003cbr\u003eDo not forget to have ONE `memoDisplayNotification` set to `true` if you want to see notifications.\n\n\n## Colors\nHere are the available colors.\n### Whites / Pastels\n![alt tag](https://github.com/schnibel/MMM-Memo/blob/master/img/MMM-Memo-Whites.png)\n\n### Grays\n![alt tag](https://github.com/schnibel/MMM-Memo/blob/master/img/MMM-Memo-Grays.png)\n\n### Blues\n![alt tag](https://github.com/schnibel/MMM-Memo/blob/master/img/MMM-Memo-Blues.png)\n\n### Greens\n![alt tag](https://github.com/schnibel/MMM-Memo/blob/master/img/MMM-Memo-Greens.png)\n\n### Yellows\n![alt tag](https://github.com/schnibel/MMM-Memo/blob/master/img/MMM-Memo-Yellows.png)\n\n### Browns\n![alt tag](https://github.com/schnibel/MMM-Memo/blob/master/img/MMM-Memo-Browns.png)\n\n### Oranges\n![alt tag](https://github.com/schnibel/MMM-Memo/blob/master/img/MMM-Memo-Oranges.png)\n\n### Pinks / Violets\n![alt tag](https://github.com/schnibel/MMM-Memo/blob/master/img/MMM-Memo-Pinks.png)\n\n\n\n\n## Special Thanks\n- [Michael Teeuw](https://github.com/MichMich) for creating the awesome [MagicMirror2](https://github.com/MichMich/MagicMirror/tree/develop) project that made this module possible.\n- [Paviro](https://github.com/paviro) for creating the [MMM-Syslog](https://github.com/paviro/MMM-syslog) module that I used as guidance in creating this module.\n- [Taylored Marketing](http://www.tayloredmktg.com/rgb/#PI) for colors definition.\n- [Creative Punch](http://creative-punch.net/2014/02/create-css3-post-it-note/) for the memo note CSS creation.\n- [Slamet PS](https://github.com/slametps) for the Indonesian translation\n- [Snille](https://github.com/Snille) for the Swedish translation\n\u003cbr\u003e\u003cbr\u003eEnjoy... and do not hesitate to make comments or propose new functionalities.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fschnibel%2FMMM-Memo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fschnibel%2FMMM-Memo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fschnibel%2FMMM-Memo/lists"}