<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>eigene Projekte Archive - Das ist die Welt von Thomas</title>
	<atom:link href="https://www.schiffler.eu/category/eigene-projekte/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.schiffler.eu/category/eigene-projekte/</link>
	<description>meine Gedanken, mal strukturiert, mal nicht ...</description>
	<lastBuildDate>Thu, 02 Jul 2026 08:59:27 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.1</generator>

<image>
	<url>https://www.schiffler.eu/wp-content/uploads/2025/07/cropped-Profilfoto_2024-32x32.png</url>
	<title>eigene Projekte Archive - Das ist die Welt von Thomas</title>
	<link>https://www.schiffler.eu/category/eigene-projekte/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Kapitel abgeschlossen: Mein Ausstieg aus assistent.ai</title>
		<link>https://www.schiffler.eu/kapitel-abgeschlossen-mein-ausstieg-aus-assistent-ai/</link>
					<comments>https://www.schiffler.eu/kapitel-abgeschlossen-mein-ausstieg-aus-assistent-ai/#respond</comments>
		
		<dc:creator><![CDATA[Thomas Schiffler]]></dc:creator>
		<pubDate>Mon, 29 Jun 2026 06:34:00 +0000</pubDate>
				<category><![CDATA[eigene Projekte]]></category>
		<category><![CDATA[assistent.ai]]></category>
		<category><![CDATA[Ausstieg]]></category>
		<category><![CDATA[Conversational AI]]></category>
		<category><![CDATA[CTO]]></category>
		<category><![CDATA[Gastronomie]]></category>
		<category><![CDATA[Gründer]]></category>
		<category><![CDATA[Karriere]]></category>
		<category><![CDATA[Perspektivwechsel]]></category>
		<category><![CDATA[Startup]]></category>
		<guid isPermaLink="false">https://www.schiffler.eu/?p=2955</guid>

					<description><![CDATA[<p>Vor ein paar Tagen habe ich beim Notar unterschrieben. Meine Anteile an assistent.ai sind verkauft. Der Startup Ausstieg als Gründer &#8230; <a href="https://www.schiffler.eu/kapitel-abgeschlossen-mein-ausstieg-aus-assistent-ai/" class="more-link">More <span class="screen-reader-text">Kapitel abgeschlossen: Mein Ausstieg aus assistent.ai</span> <span class="meta-nav">&#8594;</span></a></p>
<p>Der Beitrag <a href="https://www.schiffler.eu/kapitel-abgeschlossen-mein-ausstieg-aus-assistent-ai/">Kapitel abgeschlossen: Mein Ausstieg aus assistent.ai</a> erschien zuerst auf <a href="https://www.schiffler.eu">Das ist die Welt von Thomas</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Vor ein paar Tagen habe ich beim Notar unterschrieben. Meine Anteile an <a href="https://assistent.ai" target="_blank" rel="noreferrer noopener">assistent.ai</a> sind verkauft. Der <a href="https://www.schiffler.eu/thema/startup/" type="post_tag" id="336">Startup</a> Ausstieg als Gründer ist vollzogen — ein Kapitel, das vor Jahren mit einer Idee und einer Menge Enthusiasmus begann, ist offiziell geschlossen.</p>



<p class="wp-block-paragraph">Ich möchte kurz aufschreiben, wie es dazu gekommen ist — nicht weil ich das der Welt schulde, sondern weil es sich richtig anfühlt, das zu reflektieren.</p>



<h2 class="wp-block-heading">Was assistent.ai ist — und was ich dazu beigetragen habe</h2>



<p class="wp-block-paragraph">assistent.ai ist ein <a href="https://assistent.ai" target="_blank" rel="noreferrer noopener">KI-basierter Telefonassistent für die Gastronomie</a>. Das System übernimmt eingehende Anrufe, wenn das Serviceteam eines Restaurants nicht erreichbar ist: nimmt Reservierungen entgegen, trägt sie direkt ins Reservierungssystem ein, beantwortet Fragen zu Öffnungszeiten, Speisekarte und Parkmöglichkeiten — und das vollständig autonom.</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<p class="wp-block-paragraph">Gegründet haben wir das Ganze zu zweit: <a href="https://www.linkedin.com/in/jnkobls/">Jannik Oberlies</a> und <a href="https://www.schiffler.eu/thomas-schiffler-it-architekt-java-jee-spring-python/" type="page" id="45">ich</a>. Die Aufgabenteilung war von Anfang an klar: Jannik übernimmt 100 % Business, ich 100 % Technik. So ziemlich jede Zeile Code ist irgendwann mal durch meine Finger gelaufen. Wir haben eine eigene <a href="https://www.schiffler.eu/thema/conversational-ai/" type="post_tag" id="206">Conversational-AI-Plattform</a> im Backend aufgebaut, ein eigenes Frontend entwickelt und eine generische Lösung konzipiert, die es ermöglicht, Restaurant-APIs in wenigen Stunden anzubinden — egal wie unterschiedlich die jeweiligen Logiken darunter auch sein mögen.</p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<figure class="wp-block-image size-large has-lightbox"><img fetchpriority="high" decoding="async" width="1024" height="683" src="https://www.schiffler.eu/wp-content/uploads/2026/05/assistent_code_technik-1024x683.png" alt="Developing Notebook" class="wp-image-2959" srcset="https://www.schiffler.eu/wp-content/uploads/2026/05/assistent_code_technik-1024x683.png 1024w, https://www.schiffler.eu/wp-content/uploads/2026/05/assistent_code_technik-300x200.png 300w, https://www.schiffler.eu/wp-content/uploads/2026/05/assistent_code_technik-768x512.png 768w, https://www.schiffler.eu/wp-content/uploads/2026/05/assistent_code_technik.png 1536w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>
</div>



<h2 class="wp-block-heading">Warum ich raus bin</h2>



<p class="wp-block-paragraph">Ich bin ein technikverliebter Mensch. Ich mag es, <a href="https://www.schiffler.eu/category/eigene-projekte/" type="category" id="304">neue Dinge auszuprobieren</a>, sie zu verstehen, zu einem sauberen Produkt zu führen. Aber genau da liegt auch das Problem: Ab dem Moment, wo etwas wirklich ein Produkt ist — wo ich die Technik verstanden habe, die Frameworks kenne, die Architektur sitzt — verliert es für mich langsam seinen Reiz. Das ist keine Kritik an assistent.ai, das ist einfach, wie ich ticke.</p>



<p class="wp-block-paragraph">Dazu kommt: Ein eigenes Startup neben dem Hauptberuf kostet wirklich viel Zeit. Es ist Lebenszeit. Und Lebenszeit, die ich nicht mit meiner Familie verbringe. Ich habe keine intrinsische Motivation, ein Unternehmen zu führen oder zu skalieren. Was mich antreibt, ist die Technik — das Bauen, das Lösen, das Verstehen. Nicht das Verwalten.</p>



<p class="wp-block-paragraph">Und schließlich: Seit dem 1. November bin <a href="https://www.linkedin.com/in/thomasschiffler/" target="_blank" rel="noreferrer noopener">ich als Chief Product Owner</a> bei der <a href="https://www.syna.de/" type="link" id="https://www.syna.de/" target="_blank" rel="noreferrer noopener">Syna GmbH</a> tätig. Eine anspruchsvolle Rolle, die viel kognitive Kapazität fordert. Eine Ablenkung durch ein Startup wollte und konnte ich mir dort nicht mehr leisten.</p>



<p class="wp-block-paragraph">Die Entscheidung ist also keine einzelne Entscheidung gewesen. Sie war die logische Konsequenz aus mehreren Dingen gleichzeitig.</p>



<h2 class="wp-block-heading">Der Prozess</h2>



<p class="wp-block-paragraph">Wer glaubt, sowas passiert von heute auf morgen, irrt sich. Wir diskutieren seit über einem Jahr über meinen möglichen Ausstieg und das nicht zum ersten mal. Haben verschiedene Szenarien durchgespielt, Lösungen abgewogen. Jannik hat sich intensiv auf die Suche nach einem neuen technischen Mitgründer gemacht — <a href="https://www.linkedin.com/in/jasper-luig-1a04721ab/">Jasper</a> war nicht der erste Kandidat, den wir in Betracht gezogen haben. Es gab eine längere Einarbeitungsphase, Aufgaben wurden verteilt, die Zusammenarbeit zwischen Jannik und Jasper wurde erprobt.</p>



<p class="wp-block-paragraph">Und jetzt ist es so weit. Der Notarvertrag ist unterzeichnet.</p>



<h2 class="wp-block-heading">Startup des Jahres — ein Moment, den ich nicht vergesse</h2>



<p class="wp-block-paragraph">Bevor ich zum Valentinstag komme, noch ein anderer Moment, der mir in Erinnerung geblieben ist.</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<figure class="wp-block-image size-large has-lightbox"><img decoding="async" width="1024" height="683" src="https://www.schiffler.eu/wp-content/uploads/2026/05/assistent_fallstaff_auszeichnung-1024x683.jpg" alt="Assistent.ai - Auszeichnung durch Fallstaff" class="wp-image-2961" srcset="https://www.schiffler.eu/wp-content/uploads/2026/05/assistent_fallstaff_auszeichnung-1024x683.jpg 1024w, https://www.schiffler.eu/wp-content/uploads/2026/05/assistent_fallstaff_auszeichnung-300x200.jpg 300w, https://www.schiffler.eu/wp-content/uploads/2026/05/assistent_fallstaff_auszeichnung-768x512.jpg 768w, https://www.schiffler.eu/wp-content/uploads/2026/05/assistent_fallstaff_auszeichnung.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<p class="wp-block-paragraph">2022 hat das <a href="https://www.falstaff.com/profi/newsbeitrag/oberlies-schiffler-es-gibt-es-keinen-grund-aengstlich-gegenueber-kuenstlicher-intelligenz-zu-sein/" target="_blank" rel="noreferrer noopener">Branchenmagazin falstaff PROFI assistent.ai als bestes Startup des Jahres in der Kategorie &#8222;Innovation&#8220;</a> ausgezeichnet. Wir haben uns im Elevator-Pitch vor einer unabhängigen Jury gegen die Konkurrenz durchgesetzt — auf der Sterne-Nacht der Gastronomie in Graz, vor echtem Fachpublikum.</p>



<p class="wp-block-paragraph">Für ein kleines, junges Startup, das mit wenig Ressourcen und einem klaren Fokus gestartet ist, war das ein echter Vertrauensbeweis. Nicht nur von außen, sondern auch für uns intern: Scheinbar machen wir nicht alles falsch.</p>
</div>
</div>



<h2 class="wp-block-heading">Der Valentinstag-Moment</h2>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<p class="wp-block-paragraph">Bevor ich zum emotionalen Teil komme, möchte ich kurz von einem Moment berichten, der mir gezeigt hat, dass das, was wir gebaut haben, wirklich funktioniert.</p>



<p class="wp-block-paragraph">Es war der 15. oder 16. Februar. Ich schaue auf das Dashboard — und die Anrufzahlen sind explodiert. Ich meine: wirklich explodiert. Ein absolut vielfaches des normalen Tagesvolumens. Mein erster Gedanke: Haben wir einen Hack? Ist etwas schiefgelaufen? Irgendwas stimmt hier nicht.</p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<figure class="wp-block-image size-large has-lightbox"><img decoding="async" width="1024" height="683" src="https://www.schiffler.eu/wp-content/uploads/2026/05/assistent_dashboard-1024x683.png" alt="Dashboard mit starkem Anstieg" class="wp-image-2958" srcset="https://www.schiffler.eu/wp-content/uploads/2026/05/assistent_dashboard-1024x683.png 1024w, https://www.schiffler.eu/wp-content/uploads/2026/05/assistent_dashboard-300x200.png 300w, https://www.schiffler.eu/wp-content/uploads/2026/05/assistent_dashboard-768x512.png 768w, https://www.schiffler.eu/wp-content/uploads/2026/05/assistent_dashboard.png 1536w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>
</div>



<p class="wp-block-paragraph">In der Realität war es ganz einfach der 14. Februar. Valentinstag. Viele Menschen haben Tische reserviert, viele Restaurants hatten volle Leitungen — und das System hat es einfach weggesteckt. Kein einziger Alarm im Monitoring, keine Performance-Probleme, nichts. Die Last hat sämtliche Lasttests gesprengt, die wir je durchgeführt hatten. Und das System hat es nicht mal bemerkt.</p>



<p class="wp-block-paragraph">Das war für mich der Moment, wo ich gedacht habe: Okay. Was wir da gebaut haben, ist solide. Wirklich solide.</p>



<h2 class="wp-block-heading">Wehmut und Erleichterung</h2>



<p class="wp-block-paragraph">Natürlich ist es nicht nur Erleichterung. Ich habe viel Energie in dieses Startup gesteckt. Man baut etwas auf, kämpft mit den Herausforderungen, und irgendwann läuft es — und dann gibt man es ab.</p>



<p class="wp-block-paragraph">Die letzten Tage vor der Unterzeichnung waren ehrlich gesagt auch von Zweifeln begleitet. Ist das jetzt wirklich der richtige Schritt? Bin ich sicher? Aber am Ende war die Antwort immer die gleiche: Ja. Es ist der richtige Schritt. Jetzt.</p>



<p class="wp-block-paragraph">Was bleibt, ist ein gutes Gefühl: Ich habe ein Stück Software zum Leben erweckt, das in Produktion läuft, von echten Menschen genutzt wird und weiter wächst. Das ist keine Kleinigkeit. Das ist genau das, was ich am Anfang wollte.</p>



<h2 class="wp-block-heading">Jannik und ich</h2>



<p class="wp-block-paragraph">Die Zusammenarbeit mit Jannik war gut — aber natürlich nicht immer reibungslos. Wir sind unterschiedliche Menschen.</p>



<p class="wp-block-paragraph">Ich bin jemand, der sagt: Funktion geht vor Perfektion. Erst verproben, dann skalieren. Lieber eine kleine, stabile Lösung als eine große, die wackelt. Jannik strebt nach der 100 %-Lösung, denkt von Anfang an größer, denkt marketingseitig weiter. Das sind legitime Unterschiede zwischen einem Techniker und einem Business-Mann — aber sie erzeugen hier und da Reibung.</p>



<p class="wp-block-paragraph">Schwierig wurde es für mich persönlich, als die Grenze zwischen Business und Technik anfing zu verwischen. Als Einfluss auf technische Entscheidungen kam, wo ich ihn nicht erwartet hatte. Das war der Punkt, wo ich gemerkt habe: Meine Motivation bröckelt.</p>



<h2 class="wp-block-heading">Jasper, der neue CTO</h2>



<p class="wp-block-paragraph">Ich habe Jasper erst beim Notar persönlich kennengelernt. Vorher kannten wir uns nur aus Remote-Sessions und einigen gemeinsamen Coding-Runden.</p>



<p class="wp-block-paragraph">Mein ehrliches Urteil: Er ist noch jung in seiner Karriere aber mit Sicherheit dafür schon recht weit. Er scheint schon einen gewissen Weitblick mit zu bringen und trifft sinnvolle Entscheidungen. Auch er wird, so wie ich es auch getan habe, hier und da aus Fehlern lernen &#8230; Aber wir sind im Startup-Bereich. Das gehört dazu. Was zählt: Jannik und Jasper kommen miteinander aus, sie können zusammenarbeiten. Das ist das Wichtigste. Den Rest lernt man.</p>



<h2 class="wp-block-heading">Was jetzt kommt</h2>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<figure class="wp-block-image size-large has-lightbox"><img loading="lazy" decoding="async" width="683" height="1024" src="https://www.schiffler.eu/wp-content/uploads/2026/05/assistent_openDoor-683x1024.png" alt="offene Tür - bereit für neues" class="wp-image-2957" srcset="https://www.schiffler.eu/wp-content/uploads/2026/05/assistent_openDoor-683x1024.png 683w, https://www.schiffler.eu/wp-content/uploads/2026/05/assistent_openDoor-200x300.png 200w, https://www.schiffler.eu/wp-content/uploads/2026/05/assistent_openDoor-768x1152.png 768w, https://www.schiffler.eu/wp-content/uploads/2026/05/assistent_openDoor.png 1024w" sizes="auto, (max-width: 683px) 100vw, 683px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<p class="wp-block-paragraph">Ehrlich gesagt: erstmal nichts Neues. Ich beschäftige mich intensiv mit <a href="https://www.schiffler.eu/thema/llm/" type="post_tag" id="275">KI / LLMs / SLMs</a>, mit <a href="https://www.schiffler.eu/thema/vibecoding/" type="post_tag" id="299">Vibe Coding</a>, mit der Frage, wie Agenten im täglichen Arbeitsalltag sinnvoll unterstützen können. Mich interessiert gerade sehr, wie sich die Rolle von Softwareentwicklern und Business-Analysten in Zukunft verändern wird — wie KI hilft, Anforderungen zu erfassen und daraus sinnvolle Lösungen zu bauen.</p>



<p class="wp-block-paragraph">Aber ein neues Projekt? Noch nicht. Die Rolle bei der Syna fordert mich, meine Familie will Zeit — und die bekommt sie jetzt auch. Wer weiß, vielleicht kommt in einem Jahr wieder eine Idee. Vielleicht auch nicht. Im Moment ist das völlig in Ordnung so.</p>
</div>
</div>



<h2 class="wp-block-heading">Noch da — aber anders</h2>



<p class="wp-block-paragraph">Verkauft heißt nicht verschwunden. Ich stehe Jannik und Jasper weiterhin zur Verfügung — als externer Coach, wenn es Fragen gibt, wenn technische Entscheidungen anstehen oder einfach mal ein zweites Paar Augen gefragt ist. Aber eben nur dann, wenn ich Zeit habe. Und nicht mehr als Inhaber, der irgendwie mitverantwortlich ist.</p>



<p class="wp-block-paragraph">Wie das im Extremfall aussieht — also wenn es mal ein Produktionsproblem gibt und um 2 Uhr nachts jemand eine Idee braucht — das werden wir dann sehen. Ich bin zuversichtlich, dass wir auch da eine Lösung finden. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f604.png" alt="😄" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p class="wp-block-paragraph">Das Kapitel <a href="https://assistent.ai">assistent.ai</a> ist abgeschlossen. Es war gut. Und jetzt ist es vorbei.</p>



<p class="wp-block-paragraph"></p>
<p>Der Beitrag <a href="https://www.schiffler.eu/kapitel-abgeschlossen-mein-ausstieg-aus-assistent-ai/">Kapitel abgeschlossen: Mein Ausstieg aus assistent.ai</a> erschien zuerst auf <a href="https://www.schiffler.eu">Das ist die Welt von Thomas</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.schiffler.eu/kapitel-abgeschlossen-mein-ausstieg-aus-assistent-ai/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Wie ein Python-Lernprojekt zur Fotobox wurde — die SmileCube Story</title>
		<link>https://www.schiffler.eu/wie-ein-python-lernprojekt-zur-fotobox-wurde-die-smilecube-story/</link>
					<comments>https://www.schiffler.eu/wie-ein-python-lernprojekt-zur-fotobox-wurde-die-smilecube-story/#respond</comments>
		
		<dc:creator><![CDATA[Thomas Schiffler]]></dc:creator>
		<pubDate>Fri, 01 May 2026 07:15:00 +0000</pubDate>
				<category><![CDATA[eigene Projekte]]></category>
		<category><![CDATA[Fotobox]]></category>
		<category><![CDATA[gphoto2]]></category>
		<category><![CDATA[Maker]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Raspberry Pi]]></category>
		<category><![CDATA[SmileCube]]></category>
		<guid isPermaLink="false">https://www.schiffler.eu/?p=2924</guid>

					<description><![CDATA[<p>Ich bin Java-Entwickler. Seit über 20 Jahren. JEE, Spring, Enterprise-Architekturen — das ist meine Welt. Python war für mich ein &#8230; <a href="https://www.schiffler.eu/wie-ein-python-lernprojekt-zur-fotobox-wurde-die-smilecube-story/" class="more-link">More <span class="screen-reader-text">Wie ein Python-Lernprojekt zur Fotobox wurde — die SmileCube Story</span> <span class="meta-nav">&#8594;</span></a></p>
<p>Der Beitrag <a href="https://www.schiffler.eu/wie-ein-python-lernprojekt-zur-fotobox-wurde-die-smilecube-story/">Wie ein Python-Lernprojekt zur Fotobox wurde — die SmileCube Story</a> erschien zuerst auf <a href="https://www.schiffler.eu">Das ist die Welt von Thomas</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Ich bin Java-Entwickler. <a href="https://www.schiffler.eu/thomas-schiffler-it-architekt-java-jee-spring-python/" type="page" id="45">Seit über 20 Jahren.</a> JEE, Spring, Enterprise-Architekturen — das ist meine Welt. <a href="https://www.schiffler.eu/thema/python/" type="post_tag" id="129">Python</a> war für mich ein Fremdwort. Aber ich bin neugierig, und ich lerne gerne Neues. Am liebsten aber nicht mit irgendeinem Tutorial, sondern an einem echten Projekt. Etwas, das am Ende auch wirklich genutzt wird. Denn mal ehrlich: Ein Proof of Concept, der in der Schublade verschwindet, beweist gar nichts. 2016 planten Sarah und ich unsere Hochzeit. Eine Fotobox war gesetzt — die Gäste sollten Spaß haben und echte Abzüge mit nach Hause nehmen. Also schauten wir uns um. Und waren enttäuscht. Webcams in hübschen Gehäusen, matschige Bilder, langsame Drucker. Für viel Geld. Da kam beides zusammen: Ich wollte Python lernen, und ich wollte eine Fotobox, die unseren Ansprüchen genügt.</p>



<h2 class="wp-block-heading">Raspberry Pi, Canon DSLR und los</h2>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<p class="wp-block-paragraph">Die Basis war schnell definiert: Ein Raspberry Pi als Herzstück, eine Canon Spiegelreflexkamera für vernünftige Bildqualität und&nbsp;<a href="http://www.gphoto.org/" target="_blank" rel="noreferrer noopener">gphoto2</a>&nbsp;zur Kamerasteuerung. Die GUI habe ich mit Tkinter gebaut — nicht hübsch, aber funktional. Den Druck steuere ich über den Unix-Druckerpool (CUPS), angebunden ist ein professioneller Thermosublimationsdrucker. Das Ganze einmal das komplette Klavier von vorne bis hinten durchgespielt.</p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="683" src="https://www.schiffler.eu/wp-content/uploads/2026/04/smilecube_1-1024x683.jpg" alt="" class="wp-image-2925" srcset="https://www.schiffler.eu/wp-content/uploads/2026/04/smilecube_1-1024x683.jpg 1024w, https://www.schiffler.eu/wp-content/uploads/2026/04/smilecube_1-300x200.jpg 300w, https://www.schiffler.eu/wp-content/uploads/2026/04/smilecube_1-768x512.jpg 768w, https://www.schiffler.eu/wp-content/uploads/2026/04/smilecube_1.jpg 1200w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>
</div>
</div>



<p class="wp-block-paragraph">Aber bei der Kamera und dem Druck hört es nicht auf. Das Betriebssystem musste gehärtet werden, damit die Box nicht einfach hackbar ist. Eine Administrationsoberfläche zur Konfiguration musste her. Ein Buchungssystem zur Abwicklung. Automatische Prozesse, die nach dem Event die Bilder in eine Online-Galerie übertragen oder per Dropbox an die Kunden verteilen. Für die Online-Galerie hatte ich mit meinem&nbsp;<a href="https://www.portrait-service.com" target="_blank" rel="noreferrer noopener">Portrait-Archiv</a>&nbsp;bereits die perfekte Basis. Was als &#8222;ich schau mir mal Python an&#8220; anfing, wurde ziemlich schnell ein komplettes Ökosystem.</p>



<h2 class="wp-block-heading">Vom Labor zum Kunden</h2>



<p class="wp-block-paragraph">Auf unserer Hochzeit 2017 war der SmileCube dann zum ersten Mal im Einsatz. Und er war der Hit. Danach fragten Freunde, ob sie die Box leihen können. Dann Kollegen. Dann Bekannte von Bekannten. Plötzlich war man an Wochenenden ausgebucht.</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="683" src="https://www.schiffler.eu/wp-content/uploads/2026/04/smilecube_2-1024x683.jpg" alt="" class="wp-image-2926" srcset="https://www.schiffler.eu/wp-content/uploads/2026/04/smilecube_2-1024x683.jpg 1024w, https://www.schiffler.eu/wp-content/uploads/2026/04/smilecube_2-300x200.jpg 300w, https://www.schiffler.eu/wp-content/uploads/2026/04/smilecube_2-768x512.jpg 768w, https://www.schiffler.eu/wp-content/uploads/2026/04/smilecube_2.jpg 1200w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<p class="wp-block-paragraph">Mit echten Buchungen kommen echte Feedbacks — positive wie negative. Man muss sich der Sache stellen. Und genau das ist der Punkt, den ich bei jedem Lernprojekt predige:&nbsp;<strong>Maker ohne Produktion ist nichts.</strong>&nbsp;Solange etwas nur im Labor funktioniert, weißt du nicht, ob es wirklich funktioniert. Der Unterschied zwischen einem funktionierenden Prototyp und einem Produkt, das beim Kunden bestehen muss, ist riesig.</p>
</div>
</div>



<h2 class="wp-block-heading">Die Software lebt</h2>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<p class="wp-block-paragraph">Sowohl bei Hardware als auch Software passiert regelmäßig etwas. Neue Collagen-Layouts, Fotostreifen im Retro-Look, ein Fußauslöser für freie Hände, andere Blitze für bessere Ausleuchtung. Man spielt rum, verbessert, optimiert. Die Python-Software, die damals als Lernprojekt entstand, ist heute ein stabiles, ausgereiftes System, das zuverlässig auf Events läuft.&nbsp;</p>



<p class="wp-block-paragraph">Der tägliche Aufwand? Minimal. Das System ist maximal automatisiert. Der meiste Aufwand steckt darin, die Boxen vor einem Event zu konfigurieren und zu testen. Das ist aber inzwischen so rund, dass es nebenbei läuft — oder von meiner Frau Sarah erledigt wird.</p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="683" src="https://www.schiffler.eu/wp-content/uploads/2026/04/smilecube_3-1024x683.jpg" alt="" class="wp-image-2927" srcset="https://www.schiffler.eu/wp-content/uploads/2026/04/smilecube_3-1024x683.jpg 1024w, https://www.schiffler.eu/wp-content/uploads/2026/04/smilecube_3-300x200.jpg 300w, https://www.schiffler.eu/wp-content/uploads/2026/04/smilecube_3-768x512.jpg 768w, https://www.schiffler.eu/wp-content/uploads/2026/04/smilecube_3.jpg 1200w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>
</div>
</div>



<h2 class="wp-block-heading">Ehrlich gesagt</h2>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="720" height="480" src="https://www.schiffler.eu/wp-content/uploads/2026/04/smilecube_4.jpg" alt="" class="wp-image-2928" srcset="https://www.schiffler.eu/wp-content/uploads/2026/04/smilecube_4.jpg 720w, https://www.schiffler.eu/wp-content/uploads/2026/04/smilecube_4-300x200.jpg 300w" sizes="auto, (max-width: 720px) 100vw, 720px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<p class="wp-block-paragraph">Ich wollte schon ein paar Mal Schluss machen. Die Software läuft, es gibt nichts Spannendes mehr zu entwickeln, es wird langweilig. Sarah motiviert mich dann aber weiterzumachen — immerhin verdienen wir den ein oder anderen Taler damit dazu. Und sie hat recht. Denn was mich wirklich überrascht: Nach fast 9 Jahren ist die Fotobox nach wie vor gefragt. Die Boxen werden gebucht, sind auf Hochzeiten, Firmenjubiläen und Geburtstagen gesetzt und werden gut angenommen. Ich hätte damals gedacht, dass der Hype irgendwann vorbei ist. Ist er aber nicht.</p>
</div>
</div>



<h2 class="wp-block-heading">Was ich daraus gelernt habe</h2>



<p class="wp-block-paragraph">Python habe ich gelernt — das war das ursprüngliche Ziel. Aber die eigentliche Erkenntnis ist eine andere: Wenn du eine Technologie wirklich verstehen willst, bau etwas Echtes damit. Kein Tutorial, kein PoC, kein Spielprojekt, das nach zwei Wochen in der Schublade verschwindet. Bau etwas, das Menschen nutzen. Etwas, das funktionieren muss, wenn der Kunde am Samstag um 18 Uhr auf seiner Hochzeit steht und erwartet, dass alles läuft. Das zwingt dich, Probleme zu lösen, die in keinem Lehrbuch stehen. Und genau da lernst du am meisten. Der <a href="https://www.smilecube.de" target="_blank" rel="noreferrer noopener">SmileCube</a> ist heute ein kleines, feines Produkt. Regional, persönlich, zuverlässig. Was als Python-Lernprojekt begann, ist ein echtes Business geworden — mit vielen unterschiedlichen Events, zufriedenen Kunden und einer 4,9-Bewertung auf Google (man kann es nie allen recht machen &#8230;). Nicht schlecht für ein Spielprojekt.</p>
<p>Der Beitrag <a href="https://www.schiffler.eu/wie-ein-python-lernprojekt-zur-fotobox-wurde-die-smilecube-story/">Wie ein Python-Lernprojekt zur Fotobox wurde — die SmileCube Story</a> erschien zuerst auf <a href="https://www.schiffler.eu">Das ist die Welt von Thomas</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.schiffler.eu/wie-ein-python-lernprojekt-zur-fotobox-wurde-die-smilecube-story/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Spielverabredungen für Kinder organisieren &#8211; Wie ich als Vater eine App gebaut habe, die Eltern den Alltag erleichtert</title>
		<link>https://www.schiffler.eu/spielverabredungen-kinder-organisieren-spielmit-app/</link>
					<comments>https://www.schiffler.eu/spielverabredungen-kinder-organisieren-spielmit-app/#respond</comments>
		
		<dc:creator><![CDATA[Thomas Schiffler]]></dc:creator>
		<pubDate>Mon, 02 Mar 2026 11:15:00 +0000</pubDate>
				<category><![CDATA[eigene Projekte]]></category>
		<category><![CDATA[Claude]]></category>
		<category><![CDATA[Eltern]]></category>
		<category><![CDATA[Kinder]]></category>
		<category><![CDATA[spielmit.eu]]></category>
		<category><![CDATA[Spielverabredungen]]></category>
		<category><![CDATA[vibecoding]]></category>
		<category><![CDATA[Webdesign – aber nicht so, wie du denkst]]></category>
		<guid isPermaLink="false">https://www.schiffler.eu/?p=2849</guid>

					<description><![CDATA[<p>Wer Kinder im Kindergarten- oder Grundschulalter hat, kennt das Problem: Dein Kind kommt nach Hause und will unbedingt mit einem &#8230; <a href="https://www.schiffler.eu/spielverabredungen-kinder-organisieren-spielmit-app/" class="more-link">More <span class="screen-reader-text">Spielverabredungen für Kinder organisieren &#8211; Wie ich als Vater eine App gebaut habe, die Eltern den Alltag erleichtert</span> <span class="meta-nav">&#8594;</span></a></p>
<p>Der Beitrag <a href="https://www.schiffler.eu/spielverabredungen-kinder-organisieren-spielmit-app/">Spielverabredungen für Kinder organisieren &#8211; Wie ich als Vater eine App gebaut habe, die Eltern den Alltag erleichtert</a> erschien zuerst auf <a href="https://www.schiffler.eu">Das ist die Welt von Thomas</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Wer Kinder im Kindergarten- oder Grundschulalter hat, kennt das Problem: Dein Kind kommt nach Hause und will unbedingt mit einem Freund spielen. Du kennst den Namen – aber nicht die Eltern, nicht die Telefonnummer, und der Zettel vom Elternabend ist irgendwo verschollen. Was folgt, sind umständliche WhatsApp-Nachrichten über drei Ecken, verpasste Gelegenheiten und enttäuschte Kinderaugen.</p>



<p class="wp-block-paragraph">Mir ging es genauso. Und irgendwann habe ich beschlossen, das Problem zu lösen.</p>



<h3 class="wp-block-heading">Wenn Spielverabredungen zum Organisationsmarathon werden</h3>



<p class="wp-block-paragraph">Ob im Kindergarten oder in der Grundschule – die Situation ist immer die gleiche: Man kennt sich vom Sehen, aber der Schritt zur konkreten Verabredung ist oft erstaunlich schwierig. Es scheitert an banalen Dingen: Welcher Nachmittag passt? Hat das andere Kind Zeit? Wie erreiche ich die Eltern überhaupt?</p>



<p class="wp-block-paragraph">In WhatsApp-Gruppen geht die Frage „Hat jemand heute Nachmittag Zeit zum Spielen?&#8220; zwischen Kuchenbestellungen und Laternen-Bastelanleitungen unter. Aushänge werden übersehen. Und nicht alle Eltern möchten ihre Handynummer in einer Gruppe mit 25 Familien teilen – verständlich.</p>



<p class="wp-block-paragraph">Dabei ist das gemeinsame Spielen für Kinder unglaublich wichtig. Freundschaften entstehen nicht nur in der Kita oder Schule, sondern vor allem nachmittags – beim Toben im Garten, beim Lego bauen oder beim gemeinsamen Abenteuer auf dem Spielplatz. Als Vater wollte ich meiner Tochter das ermöglichen, ohne jedes Mal eine halbe Stunde Organisationsaufwand zu haben.</p>



<h3 class="wp-block-heading">Von der Idee zum Projekt: „Dann mach ich&#8217;s halt selbst&#8220;</h3>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<p class="wp-block-paragraph">Die Idee zu einer Plattform für Spielverabredungen trage ich schon länger mit mir herum. Ich habe sie immer wieder mit anderen Eltern diskutiert – im Kindergarten, auf dem Spielplatz, beim Abholen. Die Reaktion war jedes Mal die gleiche: <strong>„Das wäre großartig, so etwas bräuchten wir!&#8220;</strong></p>



<p class="wp-block-paragraph">Also habe ich gesucht. Nach einer App, einer Plattform, irgendetwas, das genau dieses Problem löst. Gefunden habe ich: nichts. Es gibt Familien-Kalender, Eltern-Netzwerke, Messenger-Gruppen – aber keine einfache Lösung, die nur diese eine Frage beantwortet: <strong>Wer hat wann Zeit zum Spielen?</strong></p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<figure class="wp-block-image size-full has-lightbox"><img loading="lazy" decoding="async" width="988" height="732" src="https://www.schiffler.eu/wp-content/uploads/2026/02/spielmit_artikel_1.png" alt="" class="wp-image-2851" srcset="https://www.schiffler.eu/wp-content/uploads/2026/02/spielmit_artikel_1.png 988w, https://www.schiffler.eu/wp-content/uploads/2026/02/spielmit_artikel_1-300x222.png 300w, https://www.schiffler.eu/wp-content/uploads/2026/02/spielmit_artikel_1-768x569.png 768w" sizes="auto, (max-width: 988px) 100vw, 988px" /></figure>
</div>
</div>



<p class="wp-block-paragraph">Also habe ich <a href="https://spielmit.eu" target="_blank" rel="noreferrer noopener">spielmit.eu</a> gebaut. Nicht als Startup, nicht als Geschäftsmodell. Sondern weil ich das Problem selbst hatte und es für alle Eltern kostenlos lösen wollte.</p>



<h3 class="wp-block-heading">Einfach, weil es einfach sein muss</h3>



<p class="wp-block-paragraph">Das Konzept ist bewusst simpel gehalten:</p>



<ul class="wp-block-list">
<li><strong>Spielgruppen erstellen</strong> – zum Beispiel „Kindergarten Sonnenblume&#8220; oder „Klasse 2a&#8220;. Über einen Einladungslink treten andere Eltern bei.</li>



<li><strong>Verfügbarkeit eintragen</strong> – jede Familie gibt an, an welchen Nachmittagen ihr Kind Zeit hat.</li>



<li><strong>Spielpartner finden</strong> – der Finder zeigt auf einen Blick, welche Kinder aus der Gruppe heute oder morgen verfügbar sind.</li>



<li><strong>Verabredung vorschlagen</strong> – mit Datum, Uhrzeit und Aktivität. Die andere Familie bekommt eine Benachrichtigung und kann zusagen oder absagen.</li>
</ul>



<p class="wp-block-paragraph">Kein Social Media, keine Werbung, keine endlosen Chats. Einfach nur: Wer hat wann Zeit zum Spielen?</p>



<h3 class="wp-block-heading">Datenschutz ist nicht optional – besonders bei Kindern</h3>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<figure class="wp-block-image size-large has-lightbox"><img loading="lazy" decoding="async" width="1024" height="580" src="https://www.schiffler.eu/wp-content/uploads/2026/02/spielmit_artikel_2-1024x580.png" alt="" class="wp-image-2854" srcset="https://www.schiffler.eu/wp-content/uploads/2026/02/spielmit_artikel_2-1024x580.png 1024w, https://www.schiffler.eu/wp-content/uploads/2026/02/spielmit_artikel_2-300x170.png 300w, https://www.schiffler.eu/wp-content/uploads/2026/02/spielmit_artikel_2-768x435.png 768w, https://www.schiffler.eu/wp-content/uploads/2026/02/spielmit_artikel_2.png 1092w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<p class="wp-block-paragraph">Als <a href="https://www.schiffler.eu/thomas-schiffler-it-architekt-java-jee-spring-python/" type="page" id="45">IT-Berater</a> und Vater war mir eines von Anfang an wichtig: <strong>Datenschutz.</strong> Wir reden hier über Kinder. Da gibt es keine Kompromisse.</p>



<p class="wp-block-paragraph">Deshalb haben Kinder bei spielmit.eu keine eigenen Accounts. Es gibt keine Fotos – stattdessen wählt jedes Kind ein lustiges Emoji als Avatar. Die Plattform ist DSGVO-konform, alle Daten liegen in der EU (Frankfurt), und Eltern können ihre Daten jederzeit vollständig exportieren oder löschen lassen.</p>
</div>
</div>



<p class="wp-block-paragraph">Diese bewusste Entscheidung gegen „je mehr Daten, desto besser&#8220; war mir wichtig. Kinder brauchen Schutz, nicht noch eine Plattform, die ihre Daten sammelt.</p>



<h3 class="wp-block-heading">Von der Idee zur fertigen App – mit KI als Entwicklungspartner</h3>



<p class="wp-block-paragraph">Hier wird die Geschichte besonders: Ich habe spielmit.eu nicht mit einem klassischen Entwicklerteam gebaut. Ich habe die gesamte Plattform in enger Zusammenarbeit mit <strong>Claude</strong> entwickelt – dem KI-Assistenten von Anthropic.</p>



<p class="wp-block-paragraph">Bevor jemand denkt, ich hätte „einfach ein paar Prompts eingegeben und fertig&#8220;: So funktioniert das nicht. Was als Experiment begann, wurde zu einem intensiven Entwicklungsprozess über viele Wochen und hunderte Iterationen. Ich habe die Architektur entworfen, Entscheidungen getroffen, Code reviewt und getestet. Claude hat mir dabei geholfen, diese Entscheidungen schnell und in hoher Qualität umzusetzen.</p>



<p class="wp-block-paragraph">Wer sich für die technische Seite interessiert – wie man KI-gestützte Softwareentwicklung <strong>richtig</strong> macht, mit Architektur-Dokumentation, Tests und Sicherheit – dem empfehle ich meinen Artikel <a href="https://www.schiffler.eu/ki-gestuetzte-softwareentwicklung-spielmit-spieleplattform/">„Mehr als nur ein Prompt: Warum Architektur-Dokumentation das Geheimnis meines KI-Projekts ist&#8220;</a>.</p>



<h3 class="wp-block-heading">Was spielmit.eu heute kann</h3>



<p class="wp-block-paragraph">Mittlerweile ist die Plattform unter <a href="https://spielmit.eu" target="_blank" rel="noreferrer noopener">spielmit.eu</a> live und wird von ersten Familien genutzt. Ein paar Highlights:</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<ul class="wp-block-list">
<li><strong>Spielpartner-Finder:</strong> Zeigt auf einen Blick, welche Kinder aus der Gruppe diese Woche verfügbar sind – inklusive gemeinsamer Interessen.</li>



<li><strong>Spontan-Anfragen:</strong> „Wer hat HEUTE um 15 Uhr Zeit?&#8220; – eine Nachricht an alle verfügbaren Familien der Gruppe.</li>



<li><strong>Push-Benachrichtigungen:</strong> Neue Einladungen und Nachrichten kommen direkt aufs Handy.</li>



<li><strong>Android App im Play Store:</strong> Kann direkt als App installiert werden.</li>



<li><strong>Nachrichten:</strong> Direkter Kontakt zwischen Familien, ohne Telefonnummern tauschen zu müssen.</li>
</ul>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<figure class="wp-block-image size-full has-lightbox"><img loading="lazy" decoding="async" width="692" height="710" src="https://www.schiffler.eu/wp-content/uploads/2026/02/spielmit_artikel_3.png" alt="" class="wp-image-2856" srcset="https://www.schiffler.eu/wp-content/uploads/2026/02/spielmit_artikel_3.png 692w, https://www.schiffler.eu/wp-content/uploads/2026/02/spielmit_artikel_3-292x300.png 292w" sizes="auto, (max-width: 692px) 100vw, 692px" /></figure>
</div>
</div>



<p class="wp-block-paragraph">Und das Beste: <strong>spielmit.eu ist komplett kostenlos.</strong> Keine Premium-Features, keine versteckten Kosten. Ich habe die Plattform gebaut, weil ich das Problem selbst hatte – nicht um damit Geld zu verdienen.</p>



<h3 class="wp-block-heading">Für wen ist spielmit.eu gedacht?</h3>



<p class="wp-block-paragraph">Die Plattform ist für alle Eltern, die Spielverabredungen einfacher organisieren wollen:</p>



<ul class="wp-block-list">
<li><strong>Kindergarten-Eltern</strong>, die andere Familien besser kennenlernen möchten</li>



<li><strong>Grundschul-Eltern</strong>, deren Kinder nachmittags Spielpartner suchen</li>



<li><strong>Zugezogene Familien</strong>, die in einer neuen Umgebung Anschluss suchen</li>



<li><strong>Berufstätige Eltern</strong>, die wenig Zeit für aufwändige Absprachen haben</li>



<li><strong>Elternbeiräte</strong>, die eine einfache Lösung für ihre Gruppe suchen</li>
</ul>



<p class="wp-block-paragraph">Ein Elternteil erstellt eine Gruppe, teilt den Einladungslink – und schon kann es losgehen. Keine Registrierungshürden, keine Kosten.</p>



<h3 class="wp-block-heading">Mitmachen: Ich suche Unterstützung!</h3>



<p class="wp-block-paragraph">spielmit.eu ist ein Herzensprojekt – und es gibt noch viel zu tun. Aktuell ist die App im <a href="https://play.google.com/store/apps/details?id=eu.spielmit.twa" target="_blank" rel="noreferrer noopener">Google Play Store</a> für Android verfügbar. Für eine <strong>iOS-App im Apple App Store</strong> fehlt mir allerdings ein Apple Developer Account. Zwar ist die App auf iOS heute als PWA App nutzbar (also manuell über die Webseite installierbar), eine App im Store wäre jedoch deutlich schöner.</p>



<p class="wp-block-paragraph"><strong>Deshalb mein Aufruf:</strong> Wenn du Lust hast, dich an diesem Projekt zu beteiligen – sei es als Tester, mit Feedback oder mit technischer Unterstützung – melde dich gerne bei mir. <strong>Besonders freue ich mich über Kontakt zu Personen, die einen Apple Developer Account haben und Erfahrung mit dem Veröffentlichen von Apps im App Store mitbringen.</strong> Gemeinsam könnten wir spielmit.eu auch für iPhone-Nutzer als native App verfügbar machen.</p>



<h3 class="wp-block-heading">Was ich als Vater dabei gelernt habe</h3>



<p class="wp-block-paragraph">Dieses Projekt hat mir zwei Dinge gezeigt:</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<figure class="wp-block-image size-full has-lightbox"><img loading="lazy" decoding="async" width="871" height="349" src="https://www.schiffler.eu/wp-content/uploads/2026/02/spielmit_artikel_4.png" alt="" class="wp-image-2857" srcset="https://www.schiffler.eu/wp-content/uploads/2026/02/spielmit_artikel_4.png 871w, https://www.schiffler.eu/wp-content/uploads/2026/02/spielmit_artikel_4-300x120.png 300w, https://www.schiffler.eu/wp-content/uploads/2026/02/spielmit_artikel_4-768x308.png 768w" sizes="auto, (max-width: 871px) 100vw, 871px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<p class="wp-block-paragraph"><strong>Erstens:</strong> Die Hürde, sein Kind zu verabreden, ist oft höher als man denkt. Es liegt selten am fehlenden Willen der Eltern – es fehlt einfach ein einfacher Weg, sich zu koordinieren. Genau diese Lücke füllt spielmit.eu.</p>
</div>
</div>



<p class="wp-block-paragraph"><strong>Zweitens:</strong> KI verändert, was ein einzelner Mensch umsetzen kann. Alleine hätte ich für ein Projekt dieser Größenordnung Wochen, vermutlich Monate gebraucht. Mit einem Team? Hätte ich es als Non-Profit-Projekt wahrscheinlich nie gemacht – der Abstimmungsaufwand wäre einfach zu groß gewesen für etwas, das kostenlos bleiben soll. Durch Claude als Entwicklungspartner wurde der gesamte Entwicklungsprozess extrem beschleunigt. Aber Vorsicht: Ein Selbstläufer ist KI-gestützte Entwicklung definitiv nicht. Ich habe die Architektur entworfen, jede Entscheidung getroffen, Code reviewt, getestet und immer wieder korrigiert. Claude ist ein hocheffizienter Assistent – aber kein Autopilot.</p>



<h3 class="wp-block-heading">Ausprobieren?</h3>



<p class="wp-block-paragraph">Wenn du Kinder im Kindergarten- oder Grundschulalter hast und Spielverabredungen einfacher organisieren willst, probier es aus: <strong><a href="https://spielmit.eu" target="_blank" rel="noreferrer noopener">spielmit.eu</a></strong></p>



<p class="wp-block-paragraph">Erstell eine Gruppe für eure Kita oder Klasse, teil den Link mit anderen Eltern, und schau was passiert. Ich freue mich über jede Familie, die mitmacht – und über jedes Kind, das dadurch einen Spielnachmittag mehr bekommt.</p>



<p class="wp-block-paragraph"><em>Du hast Fragen, Feedback oder möchtest dich beteiligen? Schreib mir gerne – ich freue mich über jede Rückmeldung.</em></p>
<p>Der Beitrag <a href="https://www.schiffler.eu/spielverabredungen-kinder-organisieren-spielmit-app/">Spielverabredungen für Kinder organisieren &#8211; Wie ich als Vater eine App gebaut habe, die Eltern den Alltag erleichtert</a> erschien zuerst auf <a href="https://www.schiffler.eu">Das ist die Welt von Thomas</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.schiffler.eu/spielverabredungen-kinder-organisieren-spielmit-app/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>WordPress Mainz: Warum ich diese Webseite trotzdem gebaut habe</title>
		<link>https://www.schiffler.eu/wordpress-mainz-goldenes-lamm-bodenheim/</link>
					<comments>https://www.schiffler.eu/wordpress-mainz-goldenes-lamm-bodenheim/#comments</comments>
		
		<dc:creator><![CDATA[Thomas Schiffler]]></dc:creator>
		<pubDate>Mon, 02 Feb 2026 06:53:13 +0000</pubDate>
				<category><![CDATA[eigene Projekte]]></category>
		<category><![CDATA[Bodenheim]]></category>
		<category><![CDATA[Homepage]]></category>
		<category><![CDATA[Kundenauftrag]]></category>
		<category><![CDATA[Webdesign – aber nicht so, wie du denkst]]></category>
		<category><![CDATA[Wordpress]]></category>
		<guid isPermaLink="false">https://www.schiffler.eu/?p=2833</guid>

					<description><![CDATA[<p>Ich baue normalerweise keine Webseiten. Und ich nehme auch keine Aufträge dafür an.Mein Alltag dreht sich eher um Funktionalität, saubere &#8230; <a href="https://www.schiffler.eu/wordpress-mainz-goldenes-lamm-bodenheim/" class="more-link">More <span class="screen-reader-text">WordPress Mainz: Warum ich diese Webseite trotzdem gebaut habe</span> <span class="meta-nav">&#8594;</span></a></p>
<p>Der Beitrag <a href="https://www.schiffler.eu/wordpress-mainz-goldenes-lamm-bodenheim/">WordPress Mainz: Warum ich diese Webseite trotzdem gebaut habe</a> erschien zuerst auf <a href="https://www.schiffler.eu">Das ist die Welt von Thomas</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Ich baue normalerweise keine Webseiten. Und ich nehme auch keine Aufträge dafür an.<br>Mein Alltag dreht sich eher um Funktionalität, saubere Lösungen und Dinge, die im Hintergrund einfach zuverlässig laufen.</p>



<p class="wp-block-paragraph">Aber manchmal gibt es Projekte, bei denen man nicht Nein sagen kann.</p>



<p class="wp-block-paragraph">Ein guter Freund hat im Januar <a href="https://goldeneslamm-bodenheim.de/gasthaus/" type="link" id="https://goldeneslamm-bodenheim.de/gasthaus/" target="_blank" rel="noreferrer noopener">das Restaurant seiner Eltern übernommen – ein Familienbetrieb</a>, der inzwischen in <strong>fünfter Generation</strong> geführt wird. Als ich mir die bestehende Webseite angesehen habe, war ich ehrlich gesagt erschrocken. Nicht, weil jemand „schlecht gearbeitet“ hätte, sondern weil sie dem, was dieses Restaurant ausmacht, einfach nicht gerecht wurde.</p>



<p class="wp-block-paragraph">Und genau da begann es.</p>



<h3 class="wp-block-heading">Warum WordPress – und warum Mainz?</h3>



<p class="wp-block-paragraph">Gerade für regionale Unternehmen rund um <strong>Mainz</strong> braucht es keine überladene Agentur-Webseite. Was es braucht, ist eine Seite, die:</p>



<ul class="wp-block-list">
<li>das Gefühl des Ortes transportiert</li>



<li>Vertrauen schafft</li>



<li>einfach zu pflegen ist</li>



<li>und bei Google gefunden wird</li>
</ul>



<p class="wp-block-paragraph"><strong>WordPress</strong> ist dafür nach wie vor mein Werkzeug der Wahl. Nicht, weil es hip ist, sondern weil es funktioniert. Sauber umgesetzt, mit klarer Struktur und ohne unnötigen Ballast, ist <a href="https://www.schiffler.eu/thema/wordpress/" type="post_tag" id="105">WordPress </a>eine extrem starke Basis – besonders für lokale Unternehmen im Raum Mainz.</p>



<h3 class="wp-block-heading">Mehr als nur „eine neue Webseite“</h3>



<p class="wp-block-paragraph"><a href="https://www.schiffler.eu/thomas-schiffler-it-architekt-java-jee-spring-python/" type="page" id="45">Ich </a>wollte keine Webseite bauen, die „okay“ ist.<br>Ich wollte eine Seite, die dem Restaurant gerecht wird.</p>



<p class="wp-block-paragraph">Eine Seite, bei der man beim Durchklicken merkt:<br>Hier steckt Herz drin. Hier isst man nicht einfach nur – hier wird Tradition gelebt.</p>



<p class="wp-block-paragraph">Also habe ich mir Zeit genommen. Habe reduziert statt aufgeblasen. Habe auf bewährte WordPress-Module gesetzt und nur dort eingegriffen, wo es wirklich nötig war. Kein Schnickschnack, kein lautes Design – sondern Klarheit, Wärme und Ruhe.</p>



<h3 class="wp-block-heading">Eine Seite, die sich richtig anfühlt</h3>



<p class="wp-block-paragraph">Die neue Webseite ist inzwischen online:<br><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f449.png" alt="👉" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <a href="https://goldeneslamm-bodenheim.de/" target="_blank" rel="noreferrer noopener">https://goldeneslamm-bodenheim.de/</a></p>



<p class="wp-block-paragraph">Und zum ersten Mal seit sehr langer Zeit kann ich sagen:<br>Diese Webseite gefällt mir wirklich. Nicht nur technisch, sondern als Ganzes.</p>



<p class="wp-block-paragraph">Sie fühlt sich stimmig an.<br>Sie passt zum Restaurant.<br>Und sie macht Lust darauf, dort einen Tisch zu reservieren.</p>



<p class="wp-block-paragraph">Genau das sollte eine gute Webseite tun.</p>



<h3 class="wp-block-heading">WordPress Mainz – manchmal macht man eine Ausnahme</h3>



<p class="wp-block-paragraph">Ich weiß, dass ich solche Projekte normalerweise nicht anbiete. Aber dieses hier zeigt, warum ich WordPress mag – und warum ich es gerade für Unternehmen in und um <strong>Mainz</strong> weiterhin für das richtige Werkzeug halte.</p>



<p class="wp-block-paragraph">Manchmal entsteht etwas Gutes, weil man nicht nach einem Auftrag sucht, sondern weil man helfen möchte.</p>



<p class="wp-block-paragraph">Und manchmal ist genau das der Unterschied.</p>
<p>Der Beitrag <a href="https://www.schiffler.eu/wordpress-mainz-goldenes-lamm-bodenheim/">WordPress Mainz: Warum ich diese Webseite trotzdem gebaut habe</a> erschien zuerst auf <a href="https://www.schiffler.eu">Das ist die Welt von Thomas</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.schiffler.eu/wordpress-mainz-goldenes-lamm-bodenheim/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Simple Amazon Referral &#8211; WordPress Modul durch ChatGPT</title>
		<link>https://www.schiffler.eu/simple-amazon-referral-wordpress-modul-durch-chatgpt/</link>
					<comments>https://www.schiffler.eu/simple-amazon-referral-wordpress-modul-durch-chatgpt/#respond</comments>
		
		<dc:creator><![CDATA[Thomas Schiffler]]></dc:creator>
		<pubDate>Mon, 20 Jan 2025 18:30:00 +0000</pubDate>
				<category><![CDATA[eigene Projekte]]></category>
		<category><![CDATA[artificial intelligence]]></category>
		<category><![CDATA[ChatGPT]]></category>
		<category><![CDATA[Codeschnipsel]]></category>
		<category><![CDATA[LLM]]></category>
		<category><![CDATA[Simple Amazon Referral]]></category>
		<category><![CDATA[werbung]]></category>
		<category><![CDATA[Wordpress]]></category>
		<guid isPermaLink="false">https://www.schiffler.eu/?p=2458</guid>

					<description><![CDATA[<p>Dem ein oder anderen mag es schon aufgefallen sein, hier und da verwende ich Referral Links in meinen Artikel. Diese &#8230; <a href="https://www.schiffler.eu/simple-amazon-referral-wordpress-modul-durch-chatgpt/" class="more-link">More <span class="screen-reader-text">Simple Amazon Referral &#8211; WordPress Modul durch ChatGPT</span> <span class="meta-nav">&#8594;</span></a></p>
<p>Der Beitrag <a href="https://www.schiffler.eu/simple-amazon-referral-wordpress-modul-durch-chatgpt/">Simple Amazon Referral &#8211; WordPress Modul durch ChatGPT</a> erschien zuerst auf <a href="https://www.schiffler.eu">Das ist die Welt von Thomas</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Dem ein oder anderen mag es schon aufgefallen sein, hier und da verwende ich Referral Links in meinen Artikel. Diese waren, bis vor kurzem, Abhängig von einer externen API welche den Zugriff beliebig beschränkt. Nun kam mir die Idee die Daten einfach direkt in WordPress zu halten ohne externe Abhängigkeiten. Also stellte ich am Sonntag ChatGPT die Frage ob er mir ein Modul erstellen könnte und das Ergebnis hat mich wirklich überrascht &#8211; entstanden ist das <a href="https://github.com/tschiffler/simple-amazon-referral" target="_blank" rel="noreferrer noopener">Simple Amazon Referral Modul für WordPress</a>. </p>



<h2 class="wp-block-heading">Warum überhaupt ein neues Modul?</h2>



<p class="wp-block-paragraph">Mehr oder weniger Regelmäßig kommt es dazu, dass <a href="https://amzn.to/3Ct8D2h" target="_blank" title="Amazon" alt="Amazon">Amazon*</a> seine Prozesse ändert. Anfangs konnte man über die UI HTML-Code mit Bildern etc. erstellen. Dann musste man das über das Backend machen, dann gab es eine API. Nun hat sich Amazon gedacht, es wäre clever die API zu drosseln, wenn man zu wenige Verkäufe hat was dazu führt, dass die Artikel nicht mehr angezeigt werden und weniger verkauft werden &#8230; Kein Kommentar dazu.</p>



<p class="wp-block-paragraph">Möchte man jedoch einen einfachen Link, ggf. mit einem Foto und einer Beschreibung anzeigen und zu <a href="https://amzn.to/3Ct8D2h" target="_blank" title="Amazon" alt="Amazon">Amazon*</a> verlinken benötigt man mehr als den bereitgestellten HTML-Link. Die Informationen die man selbst benötigt um einen Link zusammen zu bauen sind überschaubar (Link, Titel, Beschreibung, ID), also ist eine echte Abhängigkeit aus meiner Sicht nicht notwendig und über eine kleine Datenbanktabelle recht einfach umsetzbar.</p>



<h2 class="wp-block-heading">ChatGPT: erstelle mir ein WordPress-Modul</h2>



<p class="wp-block-paragraph">Es war Sonntag und ich saß mit dem Notebook am Wohnzimmertisch. Ich dachte mir ich könnte doch einfach mal ChatGPT fragen, ob es nicht Lust hätte mir ein WordPress-Modul zur Verwaltung der Referal Links zu erstellen. Ich eröffnete einen Chat und hatte nach nur 2 Prompts das erste funktionierende Modul. Als erstes fragte ich ChatGPT ob dies eine Möglichkeit kennt die Produkte zu integrieren:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Wie kann ich einen Amazon Artikel auf meiner Seite mit Name, Bild und Beschreibung anzeigen wenn ich einen Partner Account habe aber mein API Access limitiert ist?</p>
</blockquote>



<p class="wp-block-paragraph">Die Antworten zeigten unterschiedliche Möglichkeiten auf wie kostenpflichtige Module welche Amazon Scrapen über den Einsatz von Dienstleistern bis hin zur manuellen Erstellung der Anzeigen. Also fragte ich </p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Ich denke es ist am einfachsten, wenn ich mir hier selbst was bastle<br>Kannst du mir ein WordPress Modul erstellen? Dies soll folgende Funktionen haben</p>



<p class="wp-block-paragraph">Das Modul hat eine Datenbanktabelle in welcher die relevanten Daten gespeichert werden (Amazon-Produkt-ID, URL zum anzuzeigenden Bild, Titel des Produktes, Optionale Beschreibung, Link zum Artikel)</p>



<p class="wp-block-paragraph">Die Daten sollen über eine Maske im Adminbereich des Modules gepflegt werden können<br>Über einen Shortcode sollen die Artikel in einen Beitrag integriert werden &#8211; Beispiel<br><p>Produkt nicht gefunden.</p></p>



<p class="wp-block-paragraph">Wenn es integriert wird soll ein HTML Snippet in die Seite integriert werden bei welchen die entsprechenden Daten des Produktes zur ID angezeigt werden</p>



<p class="wp-block-paragraph">Die Snippets sollten in externen Dateien pflegbar und erweiterbar sein. </p>



<p class="wp-block-paragraph">Das Modul soll &#8218;Simple Amazon Referral&#8216; heissen</p>
</blockquote>



<p class="wp-block-paragraph">Um ehrlich zu sein habe ich nicht sonderlich viel erwartet doch das Ergebnis war direkt einsetzbar. ChatGPT erstellt mir eine erste Version des Modules welches den Vorgaben von WordPress entsprach, die Datenbank aufsetzte und sämtliche Vorgaben erfüllte.</p>



<h2 class="wp-block-heading">ChatGPT setzt auch Anpassungswünsche um</h2>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<p class="wp-block-paragraph">Nachdem die erste Version des Modules bereits recht gute Ergebnisse erzielte und ein erster PoC erfolgreich war versuchte ich, das Modul weiter zu verbessern. Hierbei blieb ich einfach im gleichen Chat und teilte meine Wünsche mit:</p>



<ul class="wp-block-list">
<li>Erstellung weiterer Anzeige-Templates</li>



<li>Shortcode erweitern um Auswahl des Templates</li>



<li>weitere Shortcode zur Erstellung eines Textlinks</li>



<li>Angabe der Datenbank-ID oder der Produkt-ID im Shortcode</li>
</ul>



<p class="wp-block-paragraph">Am &#8222;Ende&#8220; ist ein Modul entstanden welches ich, ohne eigene Anpassungen, direkt einsetzen könnte. Die Qualität überraschte mich wirklich enorm.</p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<figure class="wp-block-image size-full has-lightbox"><img loading="lazy" decoding="async" width="1024" height="1024" src="https://www.schiffler.eu/wp-content/uploads/2025/01/a65047e4-f060-4daa-9452-c2b801cd5506.webp" alt="" class="wp-image-2465" srcset="https://www.schiffler.eu/wp-content/uploads/2025/01/a65047e4-f060-4daa-9452-c2b801cd5506.webp 1024w, https://www.schiffler.eu/wp-content/uploads/2025/01/a65047e4-f060-4daa-9452-c2b801cd5506-300x300.webp 300w, https://www.schiffler.eu/wp-content/uploads/2025/01/a65047e4-f060-4daa-9452-c2b801cd5506-150x150.webp 150w, https://www.schiffler.eu/wp-content/uploads/2025/01/a65047e4-f060-4daa-9452-c2b801cd5506-768x768.webp 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>
</div>
</div>



<h2 class="wp-block-heading">Code nach kleinem Review veröffentlicht</h2>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="528" src="https://www.schiffler.eu/wp-content/uploads/2025/01/githubProjectSimpleAmazonReferral-1024x528.jpg" alt="Screenshot GitHub 'Simple Amazon Referal'" class="wp-image-2467" srcset="https://www.schiffler.eu/wp-content/uploads/2025/01/githubProjectSimpleAmazonReferral-1024x528.jpg 1024w, https://www.schiffler.eu/wp-content/uploads/2025/01/githubProjectSimpleAmazonReferral-300x155.jpg 300w, https://www.schiffler.eu/wp-content/uploads/2025/01/githubProjectSimpleAmazonReferral-768x396.jpg 768w, https://www.schiffler.eu/wp-content/uploads/2025/01/githubProjectSimpleAmazonReferral.jpg 1217w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<p class="wp-block-paragraph">Ich gebe zu, dass ich ChatGPT nicht vertraut und den Code nochmal geprüft habe. Auch habe ich mir manuell nochmal die Vorgaben von WordPress zur Entwicklung von Modulen durchgelesen (mein letzte Modul ist doch schon ein paar Jahre her). Allerdings musste ich selbst nichts verbessern was ich nicht über Prompts durch ChatGPT übernehmen lassen konnte. </p>



<p class="wp-block-paragraph">In den <a href="https://de.wordpress.org/plugins/">offiziellen WordPress Modulkatalog</a> habe ich das Modul nun nicht übernommen, dennoch entschied ich mich dazu es <a href="https://github.com/tschiffler/simple-amazon-referral" target="_blank" rel="noreferrer noopener">auf Github</a> abzulegen.</p>
</div>
</div>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"></p>
</blockquote>



<p class="wp-block-paragraph">Das gesamte Modul ist unter GitHub unter dem Namen &#8218;<a href="https://github.com/tschiffler/simple-amazon-referral" target="_blank" rel="noreferrer noopener">Simple Amazon Referral</a>&#8218; bereitgestellt. Mal sehen wie sich das ganze weiter entwickelt &#8230;</p>



<h2 class="wp-block-heading">ChatGPT als Gefahr für die Softwareentwicklung?</h2>



<p class="wp-block-paragraph">Wenn ich mich mit Bekannten unterhalte kommt häufig die Frage auf, ob ChatGPT (oder andere LLMs) nicht eine Gefahr für die Softwareentwicklung darstellen. Ich selbst sehe das nicht so sondern sehe in den LLMs Möglichkeiten zu Optimierung. Schon heute unterstützen mich die Modelle in meiner täglichen Arbeit (inzwischen auch in meinem Berufsleben) und nehmen mir &#8222;leichte Arbeiten&#8220; zum Teil ab. Hier und da werde ich korrigiert oder auf Fehler hingewiesen. Ich persönlich sehe die Large Language Modelle eher als eine neue Technik an die man als guter ITler kennen und beherrschen sollte. </p>



<p class="wp-block-paragraph">Wie seht Ihr das?</p>
<p>Der Beitrag <a href="https://www.schiffler.eu/simple-amazon-referral-wordpress-modul-durch-chatgpt/">Simple Amazon Referral &#8211; WordPress Modul durch ChatGPT</a> erschien zuerst auf <a href="https://www.schiffler.eu">Das ist die Welt von Thomas</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.schiffler.eu/simple-amazon-referral-wordpress-modul-durch-chatgpt/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Pushsafer für Waschmaschine &#8211; sag mir bescheid wenn Du fertig bist</title>
		<link>https://www.schiffler.eu/pushsafer-fuer-waschmaschine-sag-mir-bescheid-wenn-du-fertig-bist/</link>
					<comments>https://www.schiffler.eu/pushsafer-fuer-waschmaschine-sag-mir-bescheid-wenn-du-fertig-bist/#respond</comments>
		
		<dc:creator><![CDATA[Thomas Schiffler]]></dc:creator>
		<pubDate>Sat, 03 Jun 2023 09:47:48 +0000</pubDate>
				<category><![CDATA[eigene Projekte]]></category>
		<category><![CDATA[Automatisierung]]></category>
		<category><![CDATA[Codeschnipsel]]></category>
		<category><![CDATA[Heimautomatisierung]]></category>
		<category><![CDATA[openHAB]]></category>
		<category><![CDATA[werbung]]></category>
		<guid isPermaLink="false">https://www.schiffler.eu/?p=1852</guid>

					<description><![CDATA[<p>Wie bereits in meinem Beitrag zum gleichen Thema in Verbindung mit FHEM geschildet, ist die automatische Benachrichtigung wenn die Waschmaschine &#8230; <a href="https://www.schiffler.eu/pushsafer-fuer-waschmaschine-sag-mir-bescheid-wenn-du-fertig-bist/" class="more-link">More <span class="screen-reader-text">Pushsafer für Waschmaschine &#8211; sag mir bescheid wenn Du fertig bist</span> <span class="meta-nav">&#8594;</span></a></p>
<p>Der Beitrag <a href="https://www.schiffler.eu/pushsafer-fuer-waschmaschine-sag-mir-bescheid-wenn-du-fertig-bist/">Pushsafer für Waschmaschine &#8211; sag mir bescheid wenn Du fertig bist</a> erschien zuerst auf <a href="https://www.schiffler.eu">Das ist die Welt von Thomas</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Wie bereits in meinem <a href="https://www.schiffler.eu/waschmaschine-statusmail-fhem-homematic/">Beitrag zum gleichen Thema in Verbindung mit FHEM</a> geschildet, ist die automatische Benachrichtigung wenn die Waschmaschine (oder auch der Trockner) fertig ist ein elementares Feature in unserer Heimautomatisierung. Der Grund hierfür ist die erhöhte Akzeptanz für meine &#8222;Spielereien&#8220; bei meiner Frau. Durch die <a href="https://www.schiffler.eu/thema/openhab/">Umstellung auf OpenHAB</a> musste also auf hierfür eine neue Lösung herbei. Durch den Einsatz von Pushsafer für Waschmaschine Statusupdates konnte eine kostengünstige Lösung umgesetzt werden, bei welcher die Waschmaschine (und auch der Wäschetrockner) uns Benachrichtigungen senden, wenn diese Ihre Arbeit verrichtet haben. Wie ich das ganze mit OpenHAB umgesetzt habe, dokumentiere ich im folgenden Artikel.</p>



<h2 class="wp-block-heading">Das Grundsetup</h2>



<p class="wp-block-paragraph">Unsere Waschmaschine und auch unser Wäschetrockner stehen im Keller im Waschkeller. Wir befinden uns irgendwo im Haus (oder Garten) und hören selbige nicht. Wir bekommen also in der Regel nicht selbst mit, ob die Geräte fertig sind. Schön wäre es doch, wenn uns das Gerät selbst bescheid sagt, wenn es fertig ist, oder?</p>



<p class="wp-block-paragraph">Hierfür analysiere ich den Stromverbrauch der jeweiligen Geräte. Ist das Gerät aktiv so ist der Stromverbrauch höher als im Ruhemodus. Also messen wir &#8222;einfach&#8220; den Stromverbrauch und prüfen, ob dieser höher ist als der Ruhemodus. Befindet sich das Gerät längere Zeit im Ruhemodus so senden wir eine Benachrichtigung und schalten das Gerät aus. </p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow"><a href="https://amzn.to/3E1YgTz" target="_blank" style="text-decoration: none; color: inherit;">
    <div class="container">
        <div class="row">
            <div class="col-12 d-flex justify-content-center align-items-center">
                <img decoding="async" src="https://m.media-amazon.com/images/I/61lzoB+tG3L._AC_SX679_.jpg" alt="Homematic IP Smart Home Schalt-Mess-Steckdose" class="img-fluid" style="max-height: 200px; width: auto; margin: 0 auto; display: block;">
            </div>
        </div>
        <div class="row">
            <div class="col-12 text-center">
                <center><button class="btn btn-primary btn-sm">Jetzt auf Amazon ansehen *</button></center>
            </div>
        </div>
    </div>
</a>

</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow"><a href="https://amzn.to/40IDstq" target="_blank" style="text-decoration: none; color: inherit;">
    <div class="container">
        <div class="row">
            <div class="col-12 d-flex justify-content-center align-items-center">
                <img decoding="async" src="https://m.media-amazon.com/images/I/510VI9p193L._AC_SX679_.jpg" alt="Homematic IP Smart Home Zentrale CCU3" class="img-fluid" style="max-height: 200px; width: auto; margin: 0 auto; display: block;">
            </div>
        </div>
        <div class="row">
            <div class="col-12 text-center">
                <center><button class="btn btn-primary btn-sm">Jetzt auf Amazon ansehen *</button></center>
            </div>
        </div>
    </div>
</a>

</div>
</div>



<p class="wp-block-paragraph">Hierfür wurden beide Geräte über eine eigene smarte <a href="https://amzn.to/3oipHRP" target="_blank" rel="noreferrer noopener sponsored nofollow">Steckdose mit Leistungsmessung*</a> am Stromnetz angeschlossen. Hier habe ich mich für die Steckdosen von <a href="https://amzn.to/3Iwq7L2" target="_blank" rel="noreferrer noopener sponsored nofollow">Homematic*</a> entschieden. Dazu betreibe ich die <a href="https://amzn.to/3BPxppt" target="_blank" rel="noreferrer noopener sponsored nofollow">Homematic CCU3 Zentrale*</a> welche über das entsprechende <a href="https://www.openhab.org/addons/bindings/homematic/" target="_blank" rel="noreferrer noopener nofollow">Binding</a> an meine auf dem <a href="https://amzn.to/420jA2a" target="_blank" rel="noreferrer noopener sponsored nofollow">Raspberry*</a> betriebene <a href="https://www.openhab.org/" target="_blank" rel="noreferrer noopener">OpenHAB Installation</a> angebunden ist. </p>



<h2 class="wp-block-heading">Pushsafer für Waschmaschine Statusupdate versenden &#8211; Scripte</h2>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<p class="wp-block-paragraph">Im ersten Schritt benötigen wir in OpenHAB unsere Steckdose als &#8222;Thing&#8220;. Diese habe ich mir in mein Modell des Hauswirtschaftsraumes gezogen und mit 3 Items angelegt:</p>



<ul class="wp-block-list">
<li> Current -&gt; aktueller Stromverbrauch</li>



<li>Energy Counter -&gt; gesamter Stromverbrauch</li>



<li>State -&gt; Status (ein / aus)</li>
</ul>



<p class="wp-block-paragraph">Für die beschriebene Umsetzung wird der aktuelle Stromverbrauch sowie der Status benötigt. Hier aber zunächst mal das umgesetzte Script:</p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="264" height="241" src="https://www.schiffler.eu/wp-content/uploads/2023/05/openhab_waschmaschine_device.png" alt="OpenHAB - Device für Stromverbrauch der Waschmaschine" class="wp-image-1857"/></figure>
</div>
</div>



<pre class="wp-block-code"><code>rule "HWR Waschmaschine - Energychange"
  when
    Item Strom__HWR__Waschmaschine_Current.state changed
  then
    val Number grenze = 50

    if((Strom__HWR__Waschmaschine_Current.state.state as DecimalType).intValue &lt; grenze) {
      if (timerHwrWaschmaschine === null) {
        timerHwrWaschmaschine = createTimer(now.plusMinutes(2), &#091;
          if((Strom__HWR__Waschmaschine_Current.state.state as DecimalType).intValue &lt; grenze &amp;&amp; Strom__HWR__Waschmaschine_State.state.toString == "ON") {
            logInfo("rules.automatic.hwr.wash", "Stromverbrauch länger als 2 Minuten unter Grenzwert - ausschalten")
            Strom__HWR__Waschmaschine_State.sendCommand(OFF)

            val actions = getActions("pushsafer", "pushsafer:pushsafer-account:gemeinsam")
            actions.sendPushsaferMessage("Homecontrol - HWR", "Waschmaschine ist aus")

            timerHwrWaschmaschine = null
          }
        ])
      }
    } else {
      timerHwrWaschmaschine?.cancel
      timerHwrWaschmaschine = null
    }
end</code></pre>



<p class="wp-block-paragraph">Das Rule &#8218;HWR Waschmaschine &#8211; Energychange&#8216; reagiert auf jede Änderung des Stromverbrauches des Items &#8218;Strom__HWR__Waschmaschine_Current&#8216; welches auf den aktuellen Stromverbrauch der Waschmaschine gemappt wurde. Bei jeder Änderung eines Wertes wird die Regel getriggert und führt den Code aus. </p>



<p class="wp-block-paragraph">Im ersten Schritt lege ich eine Variable &#8222;grenze&#8220; an welche den Schwellert definiert, ab wann das Gerät sich für mich im Ruhemodus befindet. Dieser Wert ist für jedes Gerät individuell und variiert. Bei meiner Waschmaschine liegt der Verbrauch im Ruhemodus unter 50 Watt. Diese Definition ist nicht zwingend notwendig, macht den Code aber einfach lesbarer.</p>



<p class="wp-block-paragraph">Im nächsten Schritt prüfe ich, ob der aktuelle Stromverbrauch sich unterhalb der definierten Grenze liegt. Ist die der Fall so wird ein Timer gestartet welcher 2 Minuten lang läuft. Sind die 2 Minuten erreicht wird erneut geprüft ob der aktuelle Stromverbrauch weiterhin unterhalb der Grenze liegt und ob die Steckdose noch eingeschaltet ist. Ist dies der Fall senden wir die Pushsafer Notification über das entsprechend angelegte Binding und setzen den Timer wieder auf null. </p>



<p class="wp-block-paragraph">Ist der aktuelle Stromverbrauch höher als die Grenze beenden wir eventuell laufende Timer und setzen selbige auf null. </p>



<h2 class="wp-block-heading">Warum der Timer?</h2>



<p class="wp-block-paragraph">Die wenigsten Elektrogeräte haben über die Zeit hin immer den gleichen Stromverbrauch. In den ersten Versuchen habe ich die Waschmaschine regelmäßig während dem Betrieb ausgeschaltet da ich auf einen Timer verzichten wollte. Dummerweise ist es aber so, dass die Waschmaschine auch im normalen Betrieb irgendwann mal ansatzweise gar keinen Strom zieht. Kurz danach fährt der Stromverbrauch wieder hoch und die Maschine beginnt z.B. zu schleudern nachdem das Wasser abgepumpt wurde. Um diese Zeiten zu überbrücken wurde der Time umgesetzt. Wir warten also 2 Minuten lang bevor wir die Maschine abschalten. Springt der Stromverbrauch während dieser 2 Minuten wieder über die definierte Grenze so brechen wir den Timer ab. Nur wenn wir 2 Minuten den Stromverbrauch unterhalb der definierten Grenze haben ist die Arbeit für uns beendet und wir schalten die Maschine ab und senden die Benachrichtigung.</p>



<h2 class="wp-block-heading">Pushsafer Notification für die Waschmaschine läuft verlässlich</h2>



<p class="wp-block-paragraph">Bei uns zuhause ist die hier beschriebene Lösung nun seit einiger Zeit im Einsatz. Sie läuft sehr verlässlich und informiert uns immer sobald die Arbeit beendet ist. Somit wissen wir wann wir die nächste Ladung Wäsche anstellen oder den Trockner befüllen können. Mit Sicherheit ist das hier keine Raketentechnik &#8211; sie erleichtert uns jedoch das Leben ein wenig <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p class="wp-block-paragraph">Wie sind eure Erfahrungen? Habt Ihr selbst auch eine solche Lösung umgesetzt, eine andere Lösung oder ist es euch total egal und Ihr wollt von euren Maschine nicht angeschrien werden? </p>
<p>Der Beitrag <a href="https://www.schiffler.eu/pushsafer-fuer-waschmaschine-sag-mir-bescheid-wenn-du-fertig-bist/">Pushsafer für Waschmaschine &#8211; sag mir bescheid wenn Du fertig bist</a> erschien zuerst auf <a href="https://www.schiffler.eu">Das ist die Welt von Thomas</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.schiffler.eu/pushsafer-fuer-waschmaschine-sag-mir-bescheid-wenn-du-fertig-bist/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Voicefile aufnehmen per Browser &#8211; mit PHP und JavaScript</title>
		<link>https://www.schiffler.eu/voicefile-aufnehmen-stt-benchmark-word-error-rate-wer/</link>
					<comments>https://www.schiffler.eu/voicefile-aufnehmen-stt-benchmark-word-error-rate-wer/#respond</comments>
		
		<dc:creator><![CDATA[Thomas Schiffler]]></dc:creator>
		<pubDate>Sat, 24 Oct 2020 08:27:00 +0000</pubDate>
				<category><![CDATA[eigene Projekte]]></category>
		<category><![CDATA[Benchmark]]></category>
		<category><![CDATA[Github]]></category>
		<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Speech to Text]]></category>
		<category><![CDATA[STT]]></category>
		<category><![CDATA[Voice-First]]></category>
		<category><![CDATA[WER]]></category>
		<category><![CDATA[Word Error Rate]]></category>
		<guid isPermaLink="false">https://www.schiffler.eu/?p=1126</guid>

					<description><![CDATA[<p>Ich beschäftige mich aktuell ein wenig mit dem Voice-First Ansatz. Hierbei stolpere ich ständig über die unterschiedlichen Qualitäten der Speech &#8230; <a href="https://www.schiffler.eu/voicefile-aufnehmen-stt-benchmark-word-error-rate-wer/" class="more-link">More <span class="screen-reader-text">Voicefile aufnehmen per Browser &#8211; mit PHP und JavaScript</span> <span class="meta-nav">&#8594;</span></a></p>
<p>Der Beitrag <a href="https://www.schiffler.eu/voicefile-aufnehmen-stt-benchmark-word-error-rate-wer/">Voicefile aufnehmen per Browser &#8211; mit PHP und JavaScript</a> erschien zuerst auf <a href="https://www.schiffler.eu">Das ist die Welt von Thomas</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Ich beschäftige mich aktuell ein wenig mit dem <a href="https://www.schiffler.eu/thema/voice-first/">Voice-First Ansatz</a>. Hierbei stolpere ich ständig über die unterschiedlichen Qualitäten der Speech to Text Anbieter. Die im Internet auffindbaren Benchmarks der einzelnen Anbieter sind meist auf der englischen Sprache und für Deutsch wenig Aussagekräftig. Um einen eigenen Benchmark durchführen zu können benötigt man eine große Datenbasis an Sprachfiles und Transkriptionen der darin befindlichen Texte. Ein Voicefile aufnehmen ist über den Browser gar nicht so kompliziert. Also habe ich mich hingesetzt und fix <a rel="noreferrer noopener" href="https://github.com/tschiffler/WebVoiceRecorder" target="_blank">ein kleines Script</a> geschrieben welches mich beim Aufbau einer &#8222;eigenen Datenbasis&#8220; ein wenig unterstützen soll. </p>



<h2 class="wp-block-heading">Warum ein Voicefile aufnehmen?</h2>



<p class="wp-block-paragraph">Zur Durchführung eines Benchmarks unterschiedlicher Speech to Text Anbieter ist eine breite Datenbasis wichtig. Zu diesem Zweck werden Aufnahmen von möglichst vielen Personen benötigt. Wichtig ist hierbei nun das nicht nur die Aufnahmen vorliegen, sondern klar ist, welche Datei welchen Text beinhaltet. Um nun nicht alle Dateien einzeln anhören zu müssen kam die Überlegung auf, dass es sinnvoll sein könnte, die zu sprechenden Texte vorzugeben. </p>



<h2 class="wp-block-heading">Wie funktioniert das Voicefile aufnehmen?</h2>



<p class="wp-block-paragraph">Somit war die Idee zum <a href="https://github.com/tschiffler/WebVoiceRecorder" target="_blank" rel="noreferrer noopener">WebVoiceRecorder</a> geboren. Die Idee ist recht einfach:</p>



<ul class="wp-block-list">
<li>über einen Adminbereich können User angelegt werden</li>



<li>jedem User kann eine Liste von zu sprechenden Texten zugeordnet werden</li>



<li>nachdem ein User sich einloggt stimmt er den Datenschutzbestimmungen zu (Nutzung der Files)</li>



<li>der Nutzer bekommt den zu sprechenden Text angezeigt</li>



<li>die Aufzeichnung erfolgt direkt über den Browser</li>



<li>das Voicefile wird auf dem Server abgelegt</li>



<li>ein Export (ToDo) der gesprochenen Daten zum <a href="https://labelstud.io/" target="_blank" rel="noreferrer noopener">Label Studio</a> unterstützt beim Labeln der Daten</li>
</ul>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><a href="https://www.schiffler.eu/wp-content/uploads/2020/10/voiceRecorder_1.png"><img loading="lazy" decoding="async" width="660" height="331" data-id="1125" src="https://www.schiffler.eu/wp-content/uploads/2020/10/voiceRecorder_1.png" alt="WebVoiceRecorder - Login" class="wp-image-1125" srcset="https://www.schiffler.eu/wp-content/uploads/2020/10/voiceRecorder_1.png 660w, https://www.schiffler.eu/wp-content/uploads/2020/10/voiceRecorder_1-300x150.png 300w" sizes="auto, (max-width: 660px) 100vw, 660px" /></a></figure>



<figure class="wp-block-image size-large"><a href="https://www.schiffler.eu/wp-content/uploads/2020/10/voiceRecorder_2.png"><img loading="lazy" decoding="async" width="654" height="457" data-id="1124" src="https://www.schiffler.eu/wp-content/uploads/2020/10/voiceRecorder_2.png" alt="WebVoiceRecorder - Datenschutzbestimmungen" class="wp-image-1124" srcset="https://www.schiffler.eu/wp-content/uploads/2020/10/voiceRecorder_2.png 654w, https://www.schiffler.eu/wp-content/uploads/2020/10/voiceRecorder_2-300x210.png 300w" sizes="auto, (max-width: 654px) 100vw, 654px" /></a></figure>



<figure class="wp-block-image size-large"><a href="https://www.schiffler.eu/wp-content/uploads/2020/10/voiceRecorder_3.png"><img loading="lazy" decoding="async" width="585" height="213" data-id="1123" src="https://www.schiffler.eu/wp-content/uploads/2020/10/voiceRecorder_3.png" alt="WebVoiceRecorder - Record Voicefile" class="wp-image-1123" srcset="https://www.schiffler.eu/wp-content/uploads/2020/10/voiceRecorder_3.png 585w, https://www.schiffler.eu/wp-content/uploads/2020/10/voiceRecorder_3-300x109.png 300w" sizes="auto, (max-width: 585px) 100vw, 585px" /></a></figure>
</figure>



<h2 class="wp-block-heading">öffentliches Projekt bei Github</h2>



<p class="wp-block-paragraph">Bei der Suche geeigneter JavaScript Libraries zur Aufzeichnung eines Mikrofon-Streams über den Browser bin ich auf <a rel="noreferrer noopener" href="https://github.com/mattdiamond/Recorderjs" target="_blank">recorder.js</a> gestoßen. Dieses Plugin stellt die Kernfunktionalitäten meiner kleinen Anwendung bereit und ist unter der <a rel="noreferrer noopener" href="https://de.wikipedia.org/wiki/MIT-Lizenz" target="_blank">MIT-Lizenz</a> veröffentlicht. Also entschloss ich mich dazu auch mein Script unter derselben Lizenz <a href="https://github.com/tschiffler/WebVoiceRecorder" target="_blank" rel="noreferrer noopener">auf Github zu veröffentlichen</a>:</p>


<div class="wp-block-image is-style-rounded">
<figure class="aligncenter size-medium"><a href="https://github.com/tschiffler/WebVoiceRecorder" target="_blank" rel="WebVoiceRecorder auf Github noopener noreferrer"><img loading="lazy" decoding="async" width="300" height="179" src="https://www.schiffler.eu/wp-content/uploads/2020/10/voiceRecorder_4-300x179.png" alt="WebVoiceRecorder - Github Project" class="wp-image-1122" srcset="https://www.schiffler.eu/wp-content/uploads/2020/10/voiceRecorder_4-300x179.png 300w, https://www.schiffler.eu/wp-content/uploads/2020/10/voiceRecorder_4-768x458.png 768w, https://www.schiffler.eu/wp-content/uploads/2020/10/voiceRecorder_4.png 935w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></figure>
</div>


<h2 class="wp-block-heading">Überschaubarer Aufwand &#8211; großer Nutzen</h2>



<p class="wp-block-paragraph">Mit der gesamten Implementierung dieser Funktion habe ich mich in Summe nur gerade mal knapp 2 Stunden beschäftigt. Der Aufwand war also in der Tat überschaubar. Normalerweise setze ich weniger auf PHP als Programmiersprache, für solch kleine Dinge schätze ich die Sprache jedoch sehr. </p>



<p class="wp-block-paragraph">Im nächsten Schritt versuche ich das Script an das <a rel="noreferrer noopener" href="https://labelstud.io/" target="_blank">Label Studio</a> anzubinden und die Daten vorgelabelt in die Überprüfung zu geben. Die Scripte für den STT-Benchmark werden dann auf dieser Datenbasis aufsetzen. Der eigentliche Benchmark der Anbieter ist dann im Grunde, rein technisch gesehen, nur noch Fleißarbeit. </p>



<h2 class="wp-block-heading">OpenSource Projekt auf Github veröffentlicht</h2>



<p class="wp-block-paragraph">Wer Interesse an dem kleinen Script hat findet den gesamten Quelltext auf Github unter <a href="https://github.com/tschiffler/WebVoiceRecorder" target="_blank" rel="noreferrer noopener">https://github.com/tschiffler/WebVoiceRecorder</a>. Verbesserungsvorschläge und Erweiterungen werden natürlich gerne (am liebsten per Pull-Request) angenommen und mit integriert <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>Der Beitrag <a href="https://www.schiffler.eu/voicefile-aufnehmen-stt-benchmark-word-error-rate-wer/">Voicefile aufnehmen per Browser &#8211; mit PHP und JavaScript</a> erschien zuerst auf <a href="https://www.schiffler.eu">Das ist die Welt von Thomas</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.schiffler.eu/voicefile-aufnehmen-stt-benchmark-word-error-rate-wer/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Urlaub effektiv genutzt &#8211; neue Webseite</title>
		<link>https://www.schiffler.eu/lovelywords-freie-traurednerin-mainz-rheinhessen/</link>
					<comments>https://www.schiffler.eu/lovelywords-freie-traurednerin-mainz-rheinhessen/#respond</comments>
		
		<dc:creator><![CDATA[Thomas Schiffler]]></dc:creator>
		<pubDate>Fri, 24 Jul 2020 04:05:00 +0000</pubDate>
				<category><![CDATA[eigene Projekte]]></category>
		<category><![CDATA[Urlaub]]></category>
		<category><![CDATA[Webdesign – aber nicht so, wie du denkst]]></category>
		<category><![CDATA[Website]]></category>
		<category><![CDATA[Wordpress]]></category>
		<guid isPermaLink="false">https://www.schiffler.eu/?p=935</guid>

					<description><![CDATA[<p>Meine Frau Sarah hat den, für Sie, schönsten Nebenjob der Welt denn Sie darf Menschen bei dem Weg in Ihre &#8230; <a href="https://www.schiffler.eu/lovelywords-freie-traurednerin-mainz-rheinhessen/" class="more-link">More <span class="screen-reader-text">Urlaub effektiv genutzt &#8211; neue Webseite</span> <span class="meta-nav">&#8594;</span></a></p>
<p>Der Beitrag <a href="https://www.schiffler.eu/lovelywords-freie-traurednerin-mainz-rheinhessen/">Urlaub effektiv genutzt &#8211; neue Webseite</a> erschien zuerst auf <a href="https://www.schiffler.eu">Das ist die Welt von Thomas</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Meine Frau Sarah hat den, für Sie, schönsten Nebenjob der Welt denn Sie darf Menschen bei dem Weg in Ihre Ehe begleiten. Hierbei ist Sie als freie Traurednerin in Mainz und Umgebung unterwegs. Die Arbeit als freier Trauredner passt wunderbar zu meiner Frau, macht Ihr sehr viel Spaß und bietet Ihr den perfekten Ausgleich zum &#8222;tristen&#8220; Büroalltag. </p>



<p class="wp-block-paragraph">Umso wichtiger war es das Ihre Internetseite endlich auf den neuesten Stand gebracht wurde. In meinem Urlaub hatte ich hierfür uneingeschränkte Zeit und das Ergebnis kann sich, aus unserer Sicht, durchaus sehen lassen.</p>



<figure class="wp-block-image size-large is-style-rounded"><a href="https://www.lovelywords.eu/" target="_blank" rel="LovelyWords Traureden Mainz Wiesbaden Rheinhessen noopener noreferrer"><img loading="lazy" decoding="async" width="1024" height="564" src="https://www.schiffler.eu/wp-content/uploads/2020/07/screenshotLovelyWords2-1024x564.png" alt="Freie Traurednerin Mainz" class="wp-image-938" title="Freie Traurednerin Mainz" srcset="https://www.schiffler.eu/wp-content/uploads/2020/07/screenshotLovelyWords2-1024x564.png 1024w, https://www.schiffler.eu/wp-content/uploads/2020/07/screenshotLovelyWords2-300x165.png 300w, https://www.schiffler.eu/wp-content/uploads/2020/07/screenshotLovelyWords2-768x423.png 768w, https://www.schiffler.eu/wp-content/uploads/2020/07/screenshotLovelyWords2.png 1282w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<p class="wp-block-paragraph">Die neue Webseite wurde, natürlich, mit <a aria-label="undefined (opens in a new tab)" href="https://www.schiffler.eu/thema/wordpress/" target="_blank" rel="noreferrer noopener">WordPress</a> umgesetzt und ist unter <a aria-label="undefined (opens in a new tab)" href="https://www.lovelywords.eu/" target="_blank" rel="noreferrer noopener">LovelyWords.eu</a> erreichbar. </p>



<p class="wp-block-paragraph">Bei der Erstellung der Seite wurde Wert auf die Suchmaschinenoptimierung gelegt. Suchbegriffe wie <strong>Freie Trauung Mainz</strong> oder auch <strong>Freie Traurednerin Mainz</strong> standen hierbei im Focus. Ich bin gespannt wie lange es dauert bis die Seite bei den einzelnen Suchmaschinen indiziert ist und ob die Anstrengungen Ihren Zweck erfüllen. </p>
<p>Der Beitrag <a href="https://www.schiffler.eu/lovelywords-freie-traurednerin-mainz-rheinhessen/">Urlaub effektiv genutzt &#8211; neue Webseite</a> erschien zuerst auf <a href="https://www.schiffler.eu">Das ist die Welt von Thomas</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.schiffler.eu/lovelywords-freie-traurednerin-mainz-rheinhessen/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Object Caching 47/65 objects using APC
Page Caching using Disk: Enhanced 
Lazy Loading (feed)
Minified using APC
Database Caching 14/33 queries in 0.002 seconds using APC

Served from: www.schiffler.eu @ 2026-07-12 14:51:56 by W3 Total Cache
-->