<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[My First Kitchen Mirror]]></title><description><![CDATA[<p dir="auto">second attempt.<br />
I hope I enter everything correctly this time</p>
<p dir="auto">Hello everyone,</p>
<p dir="auto">After a long time of work, I would now like to introduce you to my Magic Mirror and also try to provide you with the information from Config.js and custom.css to give you a clue as to which settings have resulted.<br />
I’m still not finished, especially with my calendar settings, but the basics are in place.</p>
<p dir="auto"><img src="/assets/uploads/files/1712651549490-magic-mirror2.jpg" alt="Magic Mirror2.jpg" class=" img-fluid img-markdown" /></p>
<p dir="auto">It was important to me that I have changing backgrounds, that the calendar is displayed in an agenda and in the correct monthly calendar format, that I have a shopping list and a to-do list and of course standard functions such as weather forecast, temperature and current news.</p>
<p dir="auto">I used the following default modules:<br />
Clock<br />
Weather (changed icons)<br />
Calendar (hidden)<br />
Compliments<br />
Newsfeed (NTV)</p>
<p dir="auto">And additional modules</p>
<p dir="auto">MMM-Wallpaper<br />
For the background<br />
<a href="https://github.com/kolbyjack/MMM-Wallpaper" target="_blank" rel="noopener noreferrer nofollow ugc">https://github.com/kolbyjack/MMM-Wallpaper</a></p>
<p dir="auto">MMM-Sonos<br />
To display what is currently playing on SONOS (is displayed above the shopping list and only if it is running)<br />
<a href="https://github.com/tbouron/MMM-Sonos" target="_blank" rel="noopener noreferrer nofollow ugc">https://github.com/tbouron/MMM-Sonos</a></p>
<p dir="auto">MMM-CalendarExt3<br />
To display the complete monthly overview<br />
<a href="https://github.com/MMRIZE/MMM-CalendarExt3" target="_blank" rel="noopener noreferrer nofollow ugc">https://github.com/MMRIZE/MMM-CalendarExt3</a></p>
<p dir="auto">MMM-CalendarExt3Agenda<br />
To display the agenda analogous to MMM-CalendarExt3<br />
<a href="https://github.com/MMRIZE/MMM-CalendarExt3Agenda" target="_blank" rel="noopener noreferrer nofollow ugc">https://github.com/MMRIZE/MMM-CalendarExt3Agenda</a></p>
<p dir="auto">MMM-AnyList<br />
Use for shopping list and to-do<br />
<a href="https://github.com/codetheweb/MMM-AnyList" target="_blank" rel="noopener noreferrer nofollow ugc">https://github.com/codetheweb/MMM-AnyList</a></p>
<p dir="auto">config.js</p>
<pre><code>	language: "de",
	locale: "de-DE",
	logLevel: ["INFO", "LOG", "WARN", "ERROR"], // Add "DEBUG" for even more logging
	timeFormat: 24,
	units: "metric",

	modules: [
		{
			module: "alert",
		},
		{
			module: "MMM-Wallpaper",
			position: "fullscreen_below",
			config: { // See "Configuration options" for more information.
				source: "local:/home/sven/Pictures/Wallpaper", //"photos/&lt;sven&gt;/Pictures/&lt;Wallpaper&gt;", // bing, chromecast, firetv, apod
				caption: "false",
				crossfade: "true",
				slideInterval: 60 * 1000 // Change slides every minute
			}
		},
		{
			module: "clock",
			position: "top_left",
			config: {
				dateFormat: "dd D.MM.YYYY"
				}
		},
		{
            module: 'MMM-Sonos',
            header: 'Was läuft',
            position: 'top_left',
            config: {
                animationSpeed: Number,
                showFullGroupName: Boolean,
                showArtist: Boolean,
                showAlbum: Boolean,
                showMetadata: Boolean
            }
        },
		{
			module: "weather",
			classes: "forecast",
			position: "top_right",
			header: "Wettervorschau",
			config: {
				weatherProvider: "openweathermap",
				type: "forecast",
				location: "Hamburg",
				locationID: "2911298", //ID from http://bulk.openweathermap.org/sample/city.list.json.gz; unzip the gz file and find your city
				apiKey: "c64bb3321848fe4e7616335dxxxxxxxx"
			}
		},
		{
			module: "weather",
			classes: "wetter",
			position: "top_center",
			config: {
				weatherProvider: "openweathermap",
				type: "current",
				location: "Hamburg",
				locationID: "2911xxx", //ID from http://bulk.openweathermap.org/sample/city.list.json.gz; unzip the gz file and find your city
				apiKey: "c64bb3321848fe4e7616335dxxxxxxxx"
			}
		},
		{
			module: "MMM-CalendarExt3",
			position: "bottom_bar",
			title: "Kalender",
			config: {
				mode: "week",
				useSymbol: true,
				eventTransformer: (ev) =&gt; {
						const customEvents = [
							{ keyword: "Gelber Sack", symbol: ["fa-solid fa-arrows-spin"], color: "yellow" },
							{ keyword: "Hausmüll", symbol: ["fa-regular fa-trash-can"], color: "brown" },
							{ keyword: "Fitness", symbol: ["fa-solid fa-dumbbell"], color: "pink" },
							{ keyword: "Blaue Tonne", symbol: ["fa-solid fa-dumbbell"], color: "blue" },
							{ keyword: "Geb.", symbol: ["fa-solid fa-dumbbell"], color: "magenta" },
							{ keyword: "Urlaub", symbol: ["fa-solid fa-dumbbell"], color: "cyan" },
							{ keyword: "Fussballtraining", symbol: ["fa-solid fa-futbol"], color: "green" },
						]
						const found = customEvents.find((condition) =&gt; {
							return ev.title.search(condition.keyword) !== -1
						})
						if (found) {
								ev.icon = [ found.symbol ]
								ev.color = found.color
						}
						if (ev.title.search('Fitness WSV') !== -1) {
							ev.symbol = [ 'fa-solid fa-dumbbell' ]
							if (!ev.isFullday) ev.title = ev.title.replace('Fitness WSV', '&lt;font color="pink"&gt;Fitness&lt;/font&gt;') 
						}
						if (ev.title.search('Hausmüll') !== -1) {
							ev.symbol = [ "fa-regular fa-trash-can" ]
						}
						if (ev.title.search('Blaue Tonne') !== -1) {
							ev.symbol = [ "fa-regular fa-trash-can" ]
						}
						if (ev.title.search('Gelber Sack') !== -1) {
							ev.symbol = [ "fa-solid fa-arrows-spin" ]
						}
						if (ev.title.search('Fussballtraining') !== -1) {
							ev.symbol = [ "fa-solid fa-futbol" ]
						}
						if (ev.title.search('Geb.') !== -1) {
							ev.title = ev.title.replace('Geb.', '')
							ev.symbol = [ "fa-solid fa-cake-candles" ]
						}
						return ev
				},
			}
		},
		{
			module: "MMM-CalendarExt3Agenda",
			position: "top_right",
			title: "Kalender",
			config: {
				eventTransformer: (ev) =&gt; {
						const customEvents = [
							{ keyword: "Gelber Sack", symbol: ["fa-solid fa-arrows-spin"], color: "yellow" },
							{ keyword: "Hausmüll", symbol: ["fa-regular fa-trash-can"], color: "brown" },
							{ keyword: "Fitness", symbol: ["fa-solid fa-dumbbell"], color: "pink" },
							{ keyword: "Blaue Tonne", symbol: ["fa-solid fa-dumbbell"], color: "blue" },
							{ keyword: "Geb.", symbol: ["fa-solid fa-dumbbell"], color: "magenta" },
							{ keyword: "Urlaub", symbol: ["fa-solid fa-dumbbell"], color: "cyan" },
							{ keyword: "Fussballtraining", symbol: ["fa-solid fa-futbol"], color: "green" },
						]
						const found = customEvents.find((condition) =&gt; {
							return ev.title.search(condition.keyword) !== -1
						})
						if (found) {
								ev.icon = [ found.symbol ]
								ev.color = found.color
						}
						if (ev.title.search('Fitness WSV') !== -1) {
							ev.symbol = [ 'fa-solid fa-dumbbell' ]
							if (!ev.isFullday) ev.title = ev.title.replace('Fitness WSV', '&lt;font color="pink"&gt;Fitness&lt;/font&gt;') 
						}
						if (ev.title.search('Hausmüll') !== -1) {
							ev.symbol = [ "fa-regular fa-trash-can" ]
						}
						if (ev.title.search('Blaue Tonne') !== -1) {
							ev.symbol = [ "fa-regular fa-trash-can" ]
						}
						if (ev.title.search('Gelber Sack') !== -1) {
							ev.symbol = [ "fa-solid fa-arrows-spin" ]
						}
						if (ev.title.search('Fussballtraining') !== -1) {
							ev.symbol = [ "fa-solid fa-futbol" ]
						}
						if (ev.title.search('Geb.') !== -1) {
							ev.title = ev.title.replace('Geb.', '')
							ev.symbol = [ "fa-solid fa-cake-candles" ]
						}
						return ev
				},
			}
		},
		{
			module: "calendar",
			header: "Kalender",
			//position: "top_left",	
			config: {
				calendars: [
					{
						fetchInterval: 7 * 24 * 60 * 60 * 1000,
						symbol: "arrow-right",
						coloredText: "true",
						maxTitleLength: "10",
						dateFormat: "M MM",
						timeFormat: "absolute",
						maximumEntries: "10",
						fade: "false",
						tableClass: "xsmall",
						customEvents: [{keyword: "Gelber Sack", symbol: "arrow-spin", color: "yellow"},
						{keyword: "Hausmüll", symbol: "trash-can", color: "green"}],
						url: "https://calendar.google.com/calendar/ical/vonhachtschulz%40gmail.com/private-17bde7ed8b912891083exxxxxxxxxx/basic.ics"
					}
				]
			}
		},
		{
			module: "compliments",
			position: "top_bar"
		},
		{
			module: 'MMM-AnyList',
			position: 'top_center',
			config: {
					email: 'meineMailAdresse@gmail.com',
					password: 'zEkTiCzxxxxxxxx',
			config: {
					em,
					list: 'ToDo',
					// Optional, values listed are the defaults
					onlyShowUnchecked: true,
					maxItemsInList: 20,
					fade: false,
					fadePoint: 0.5,
					animationSpeed: 2000,
					trimText: true,
					showCategories: true,
					showQuantities: true,
					textAlign: 'left'
					}
		},
		{
			module: 'MMM-AnyList',
			position: 'top_left',
			config: {
					email: 'meineMailAdresse@gmail.com',
					password: 'zEkTiCzxxxxxxxx',
					list: 'Einkaufsliste',
					// Optional, values listed are the defaults
					onlyShowUnchecked: true,
					maxItemsInList: 20,
					fade: false,
					fadePoint: 0.5,
					animationSpeed: 2000,
					trimText: true,
					showCategories: true,
					showQuantities: true,
					textAlign: 'left'
					}
		},
		{
			module: "newsfeed",
			position: "bottom_bar",
			config: {
				feeds: [
					{
						title: "News",
						lengthDescription: "400",
						url: "https://www.n-tv.de/rss"
					}
				],
				showSourceTitle: true,
				showPublishDate: true,
				broadcastNewsFeeds: true,
				broadcastNewsUpdates: true
			}
		},
	]
};
</code></pre>
<p dir="auto">Perhaps a little more information about custom.css</p>
<p dir="auto">CUSTOM.CSS</p>
<pre><code>:root {
  --color-text: #999;
  --color-text-dimmed: #666;
  --color-text-bright: #fff;
  --color-background: #000;
  --font-primary: "Roboto Condensed";
  --font-secondary: "Roboto";
  --font-size: 15px;
  --font-size-xsmall: 0.75rem;
  --font-size-small: 1rem;
  --font-size-medium: 1.5rem;
  --font-size-large: 2.25rem;
  --font-size-xlarge: 2.75rem;
  --gap-body-top: 10px;
  --gap-body-right: 10px;
  --gap-body-bottom: 10px;
  --gap-body-left: 10px;
  --gap-modules: 10px;
}


//body {
  margin-left: 10px;
  position: absolute;
  margin-right: 10px;
  margin-top: 10px;
  margin-bottom: 10px;
  border: 10px;
  }//

//Default Modules //

html {
   cursor: default;
}



.region.top.center {
  width: 230px;
  padding-right: 30px;
}
.region.top.left {
  width: 230px;
}

.MMM-AnyList .itemCellQuantity.style.textAlign {
	text-align: left;
	}


.newsfeed {
	font-size: 20px;
	line-height: 20px;
	}
.clock {
	font-size: 20px;
	line-heith: 20px;
	}
.comliments	.xlarge {
	font-size: 10px;
	}



// CalendarExt3 Module //

.CX3 .cell.month_8.date_18 {
  background-image: url("/modules/MMM-CalendarExt3/Herz.jpeg");
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}

.




// Weather Module //


.weather {
	text-align: left;
	min-width: 250px;
	max-width: 250px;
	}
	
.forecast .weathericon {
position:absolute;	// absolute
z-index: 0;
height: 200px;
right: 120px;
margin-top: -65px; 
padding-left: 60px;
padding-top: 50px;
height: 35px;
}

.forecast .wi-day-sunny {
content: url("/css/icons/day.svg");
}

.forecast .wi-day-cloudy {
content: url("/css/icons/cloudy-day-1.svg");
}

.forecast .wi-rain {
content: url("/css/icons/rainy-6.svg");
}

forecast .wi-night-clear {
content: url("/css/icons/night.svg");
}

.forecast .wi-night-cloudy {
content: url("/css/icons/cloudy-night-2.svg");
}

.forecast .wi-cloudy {
content: url("/css/icons/cloudy.svg");
}

.forecast .wi-showers {
content: url("/css/icons/rainy-7.svg");
}

.forecast .wi-thunderstorm {
content: url("/css/icons/thunder.svg");
}

.forecast .wi-snow {
content: url("/css/icons/snowy-6.svg");
}

.forecast .wi-cloudy-windy {
content: url("/css/icons/cloudy-day-3.svg");
}

.forescast.wi-night-rain {
content: url("/css/icons/rainy-6.svg");
}

.forecast .wi-night-snow {
content: url("/css/icons/snowy-6.svg");
}

.forecast .wi-night-thunderstorm {
content: url("/css/icons/thunder.svg");
}

.forecast .wi-night-showers {
content: url("/css/icons/rainy-7.svg");
}

.forecast .wi-fog {
content: url("/css/icons/cloudy.svg");
}

.forecast .wi-night-alt-cloudy-windy {
content: url("/css/icons/cloudy-night-1.svg");
}

/* Aenderungen Wettervorhersage */
.wetter .weathericon {
position: absolute;
z-index: 1;
margin-top: -33px;
padding-top: 20px;
left: 20px;	
}
	
.wetter .wi-day-sunny {
content: url("/css/icons/day.svg");
}

.wetter .wi-day-cloudy {
content: url("/css/icons/cloudy-day-1.svg");
}

.wetter .wi-rain {
content: url("/css/icons/rainy-6.svg");
}

.wetter .wi-night-clear {
content: url("/css/icons/night.svg");
}

.wetter .wi-night-cloudy {
content: url("/css/icons/cloudy-night-2.svg");	
}

.wetter .wi-cloudy {
content: url("/css/icons/cloudy.svg");
}

.wetter .wi-showers {
content: url("/css/icons/rainy-7.svg");
}

.wetter .wi-thunderstorm {
content: url("/css/icons/thunder.svg");
}

.wetter .wi-snow {
content: url("/css/icons/snowy-6.svg");
}

.wetter .wi-cloudy-windy {
content: url("/css/icons/cloudy-day-3.svg");
}

.wetter .wi-night-rain {
content: url("/css/icons/rainy-6.svg");
}

.wetter .wi-night-snow {
content: url("/css/icons/snowy-6.svg");
}

.wetter .wi-night-thunderstorm {
content: url("/css/icons/thunder.svg");
}

.wetter .wi-night-showers {
content: url("/css/icons/rainy-7.svg");
}

.wetter .wi-fog {
content: url("/css/icons/cloudy.svg");
}

.wetter .wi-night-alt-cloudy-windy {
content: url("/css/icons/cloudy-night-1.svg");
}

	

</code></pre>
<p dir="auto">I have taken the root area from the main.css and adjusted the margins and font sizes. I had previously tried to customize the body, but decided against it and left the entry in and excluded it.</p>
<p dir="auto">I tried to adjust the width of the regions a little.</p>
<p dir="auto">I also added a background image to a segment in the CalendarExt3 module. Works fine</p>
<p dir="auto">And finally, I changed the icons of my weather display. The files are stored in an extra folder in the CSS folder. Access works perfectly.</p>
<p dir="auto">If you have any questions, please let me know</p>
<p dir="auto">Best regards<br />
Sven</p>
]]></description><link>https://forum.magicmirror.builders/topic/18641/my-first-kitchen-mirror</link><generator>RSS for Node</generator><lastBuildDate>Sat, 11 Jul 2026 05:27:52 GMT</lastBuildDate><atom:link href="https://forum.magicmirror.builders/topic/18641.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 09 Apr 2024 08:40:07 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to My First Kitchen Mirror on Wed, 11 Dec 2024 12:59:04 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/svenpisa" aria-label="Profile: svenpisa">@<bdi>svenpisa</bdi></a> Min Sven,<br />
ich habe mir dieses Thema “MagicMirror” zum neuen Projekt gemacht, daher vielen Dank für deine Vorlagen, die sind echt MEGA!<br />
Leider funktionieren die Wettermodule nicht. Hast du mittlerweile schon eine neue config.js, die du mir zur Verfügung stellen kannst, damit ich darauf aufbauen kann?</p>
<p dir="auto">Viele Grüße von der Ostsee<br />
Marc</p>
<p dir="auto">moderator english translation<br />
Min Sven, I have made this topic “MagicMirror” my new project, so thank you very much for your templates, they are really MEGA! Unfortunately the weather modules don’t work. Do you already have a new config.js that you can provide to me so that I can build on it? Many greetings from the Baltic Sea</p>
]]></description><link>https://forum.magicmirror.builders/post/121834</link><guid isPermaLink="true">https://forum.magicmirror.builders/post/121834</guid><dc:creator><![CDATA[Schluensi]]></dc:creator><pubDate>Wed, 11 Dec 2024 12:59:04 GMT</pubDate></item><item><title><![CDATA[Reply to My First Kitchen Mirror on Wed, 10 Apr 2024 19:27:28 GMT]]></title><description><![CDATA[<p dir="auto">Hey <a class="plugin-mentions-user plugin-mentions-a" href="/user/alexjons" aria-label="Profile: Alexjons">@<bdi>Alexjons</bdi></a> ,</p>
<p dir="auto">What exactly do you want to know?<br />
I downloaded the icons from the following link and then created a new “Icons” folder in the CSS folder and placed the icons there.</p>
<p dir="auto"><a href="https://www.amcharts.com/free-animated-svg-weather-icons/" target="_blank" rel="noopener noreferrer nofollow ugc">https://www.amcharts.com/free-animated-svg-weather-icons/</a></p>
<p dir="auto">Then I differentiated between Forecast and Current. You can see this quite clearly in config.js and then all the entries in custom.css. There are a lot of entries, but if you use the same logic for storing the icons, you can copy and paste them into your custom.css.</p>
<p dir="auto">If you have any more questions or something is unclear, please let me know. I’m not that good at the right settings yet but I remember how hard it was when I was just starting out.</p>
<p dir="auto">Greetings<br />
sven</p>
<p dir="auto">Translated with <a href="http://DeepL.com" target="_blank" rel="noopener noreferrer nofollow ugc">DeepL.com</a> (free version)</p>
]]></description><link>https://forum.magicmirror.builders/post/116910</link><guid isPermaLink="true">https://forum.magicmirror.builders/post/116910</guid><dc:creator><![CDATA[svenpisa]]></dc:creator><pubDate>Wed, 10 Apr 2024 19:27:28 GMT</pubDate></item><item><title><![CDATA[Reply to My First Kitchen Mirror on Tue, 09 Apr 2024 22:44:52 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/svenpisa" aria-label="Profile: svenpisa">@<bdi>svenpisa</bdi></a> Hi man, great job, congratulations,</p>
<p dir="auto">I like the way how you made the default weather, could you please share more about that, I want to make the iconse move in my weather default model,</p>
<p dir="auto">thank you</p>
]]></description><link>https://forum.magicmirror.builders/post/116899</link><guid isPermaLink="true">https://forum.magicmirror.builders/post/116899</guid><dc:creator><![CDATA[Alexjons]]></dc:creator><pubDate>Tue, 09 Apr 2024 22:44:52 GMT</pubDate></item></channel></rss>