<?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>Tools &#8211; Praxiswissen, Werkzeuge und ehrliche Vergleiche &#8211; für jede Stufe der Selbstversorgung</title>
	<atom:link href="https://selbstversorgen.com/tools/feed/" rel="self" type="application/rss+xml" />
	<link>https://selbstversorgen.com</link>
	<description>Das Praxisportal für Selbstversorgung — vom Balkon bis Off-Grid.</description>
	<lastBuildDate>Mon, 15 Jun 2026 07:27:01 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.2</generator>
	<item>
		<title>Wetter</title>
		<link>https://selbstversorgen.com/tools/wetter/</link>
		
		<dc:creator><![CDATA[Mark]]></dc:creator>
		<pubDate>Mon, 15 Jun 2026 07:23:15 +0000</pubDate>
				<guid isPermaLink="false">https://selbstversorgen.com/?post_type=sv_tool&#038;p=1285</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[<div id="sv-wk" class="sv-tool-wrap">
<style>
#sv-wk{font-family:"DM Sans",sans-serif;color:var(--ink,#1a1814)}
/* Suchzeile */
#sv-wk .sv-wk-search{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
#sv-wk .sv-wk-search input{flex:1;min-width:160px;padding:8px 12px;border:1.5px solid var(--line,#d6cab1);border-radius:5px;font:inherit;font-size:13px;background:var(--paper,#f3ecdc)}
#sv-wk .sv-wk-search input:focus{border-color:var(--forest,#1a3a2a);outline:0}
#sv-wk .sv-wk-btn{padding:8px 14px;background:var(--forest,#1a3a2a);color:var(--paper,#f3ecdc);border:0;border-radius:5px;font:inherit;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap}
#sv-wk .sv-wk-loc-btn{padding:8px 12px;background:var(--card,#faf5e8);color:var(--forest,#1a3a2a);border:1.5px solid var(--line,#d6cab1);border-radius:5px;font:inherit;font-size:12px;cursor:pointer}
/* Banner: aktuell + 7-Tage in einer Zeile */
#sv-wk .sv-wk-banner{display:none;background:var(--forest,#1a3a2a);border-radius:8px;padding:14px 18px;gap:16px;align-items:stretch}
#sv-wk .sv-wk-banner.show{display:flex;flex-wrap:wrap}
/* Aktuell (links) */
#sv-wk .sv-wk-now{min-width:140px;flex-shrink:0;display:flex;flex-direction:column;justify-content:center;border-right:1px solid rgba(255,255,255,.12);padding-right:16px}
#sv-wk .sv-wk-loc{font-family:"DM Mono",monospace;font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:rgba(243,236,220,.6);margin-bottom:4px}
#sv-wk .sv-wk-temp{font-family:"Playfair Display",serif;font-size:32px;font-weight:600;color:var(--paper,#f3ecdc);line-height:1}
#sv-wk .sv-wk-desc{font-size:12px;color:rgba(243,236,220,.75);margin-top:3px}
#sv-wk .sv-wk-stats{display:flex;gap:10px;margin-top:8px;flex-wrap:wrap}
#sv-wk .sv-wk-stat{text-align:center}
#sv-wk .sv-wk-stat .v{font-family:"DM Mono",monospace;font-size:11px;font-weight:600;color:var(--amber-2,#d9a14a)}
#sv-wk .sv-wk-stat .l{font-size:9px;color:rgba(243,236,220,.5);text-transform:uppercase;letter-spacing:.06em}
/* 7-Tage (rechts) */
#sv-wk .sv-wk-days{flex:1;display:flex;gap:6px;align-items:stretch;min-width:0;overflow-x:auto}
#sv-wk .sv-wk-day{flex:1;min-width:52px;display:flex;flex-direction:column;align-items:center;padding:6px 4px;border-radius:5px;background:rgba(255,255,255,.05);cursor:default;position:relative}
#sv-wk .sv-wk-day.today{background:rgba(255,255,255,.13)}
#sv-wk .sv-wk-day.ideal{border:1px solid rgba(80,180,60,.5)}
#sv-wk .sv-wk-day.frost{border:1px solid rgba(100,160,255,.4)}
#sv-wk .sv-wk-day-name{font-size:10px;font-weight:600;color:rgba(243,236,220,.7);margin-bottom:2px;white-space:nowrap}
#sv-wk .sv-wk-day-date{font-size:9px;color:rgba(243,236,220,.45);margin-bottom:4px}
#sv-wk .sv-wk-day-ico{font-size:18px;line-height:1;margin-bottom:4px}
#sv-wk .sv-wk-day-hi{font-size:13px;font-weight:700;color:var(--paper,#f3ecdc)}
#sv-wk .sv-wk-day-lo{font-size:10px;color:rgba(243,236,220,.5)}
#sv-wk .sv-wk-day-rain{font-size:9px;color:#7ec8f8;margin-top:2px}
#sv-wk .sv-wk-badge{position:absolute;top:-7px;left:50%;transform:translateX(-50%);font-size:8px;font-weight:700;padding:1px 5px;border-radius:3px;white-space:nowrap}
#sv-wk .sv-wk-badge.heute{background:var(--amber);color:#0f2419}
#sv-wk .sv-wk-badge.ideal{background:#3d9c28;color:#fff}
#sv-wk .sv-wk-badge.frost{background:#4a90d9;color:#fff}
/* Hinweis-Streifen */
#sv-wk .sv-wk-advice{display:none;font-size:12px;padding:7px 12px;border-radius:5px;margin-top:10px;line-height:1.5}
#sv-wk .sv-wk-advice.show{display:block}
#sv-wk .sv-wk-advice.gut{background:#eaf3de;border:1px solid #639922;color:#27500a}
#sv-wk .sv-wk-advice.warn{background:#fff3cd;border:1px solid var(--amber,#c08a2a);color:#6d4a00}
#sv-wk .sv-wk-advice.frost{background:#deeeff;border:1px solid #4a90d9;color:#1a3a6a}
/* Legende */
#sv-wk .sv-wk-legend{display:flex;gap:12px;margin-top:8px;font-size:10px;color:var(--ink-mute,#6b6555);flex-wrap:wrap}
#sv-wk .sv-wk-legend span{display:flex;align-items:center;gap:4px}
#sv-wk .sv-wk-dot{width:8px;height:8px;border-radius:2px;flex-shrink:0}
</style>

<div class="sv-wk-search">
    <label style="font-size:10px;font-family:'DM Mono',monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-mute);display:none" id="sv-wk-lbl">Ort oder PLZ</label>
    <input type="text" id="sv-wk-input" placeholder="Ort oder Postleitzahl" onkeydown="if(event.key==='Enter')svWK.search()">
    <button class="sv-wk-btn" onclick="svWK.search()">Suchen</button>
    <button class="sv-wk-loc-btn" onclick="svWK.gps()"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4cd.png" alt="📍" class="wp-smiley" style="height: 1em; max-height: 1em;" data-neo-global--processed-neo-rename="true" /> Mein Standort</button>
</div>

<div class="sv-wk-banner" id="sv-wk-banner">
    <div class="sv-wk-now">
        <div class="sv-wk-loc" id="sv-wk-loc"></div>
        <div class="sv-wk-temp" id="sv-wk-temp">—</div>
        <div class="sv-wk-desc" id="sv-wk-desc"></div>
        <div class="sv-wk-stats" id="sv-wk-stats"></div>
    </div>
    <div class="sv-wk-days" id="sv-wk-days"></div>
</div>
<div class="sv-wk-advice" id="sv-wk-advice"></div>
<div class="sv-wk-legend">
    <span><span class="sv-wk-dot" style="background:var(--amber)"></span>Pflanzhinweis</span>
    <span><span class="sv-wk-dot" style="background:#4a90d9"></span>Frostrisiko (≤2°C)</span>
    <span><span class="sv-wk-dot" style="background:#3d9c28"></span>Idealtag</span>
</div>

<script>
(function(){
const TAGE = ['So','Mo','Di','Mi','Do','Fr','Sa'];
const WMO = {0:'Klar',1:'Überwiegend klar',2:'Teilbewölkt',3:'Bedeckt',45:'Nebel',48:'Reifnebel',51:'Leichter Nieselregen',53:'Nieselregen',55:'Starker Nieselregen',61:'Leichter Regen',63:'Regen',65:'Starker Regen',71:'Leichter Schnee',73:'Schnee',75:'Starker Schnee',80:'Regenschauer',81:'Regenschauer',82:'Starke Schauer',95:'Gewitter',96:'Gewitter + Hagel',99:'Schwere Gewitter'};
const ICO = {0:'&#x2600;',1:'&#x1f324;',2:'&#x26c5;',3:'&#x2601;',45:'&#x1f32b;',48:'&#x1f32b;',51:'&#x1f326;',53:'&#x1f326;',55:'&#x1f327;',61:'&#x1f327;',63:'&#x1f327;',65:'&#x1f327;',71:'&#x2744;',73:'&#x2744;',75:'&#x2744;',80:'&#x1f326;',81:'&#x1f327;',82:'&#x26c8;',95:'&#x26c8;',96:'&#x26c8;',99:'&#x26c8;'};

window.svWK = {
    async search(){
        var q = document.getElementById('sv-wk-input').value.trim();
        if(!q) return;
        try {
            var lat, lon, name;
            if (/^\d{4,5}$/.test(q)){
                var r = await fetch('https://geocoding-api.open-meteo.com/v1/search?name='+encodeURIComponent(q)+'&count=1&language=de&format=json');
                var d = await r.json();
                if(!d.results?.length){ alert('PLZ nicht gefunden.'); return; }
                lat=d.results[0].latitude; lon=d.results[0].longitude;
                name=q+', '+(d.results[0].name||'');
            } else {
                var r = await fetch('https://geocoding-api.open-meteo.com/v1/search?name='+encodeURIComponent(q)+'&count=1&language=de&format=json');
                var d = await r.json();
                if(!d.results?.length){ alert('Ort nicht gefunden.'); return; }
                lat=d.results[0].latitude; lon=d.results[0].longitude;
                name=d.results[0].name+(d.results[0].admin1?', '+d.results[0].admin1:'');
            }
            await this.load(lat, lon, name);
        } catch(e){ console.error(e); }
    },
    async gps(){
        if(!navigator.geolocation){ alert('Geolocation nicht verfügbar.'); return; }
        navigator.geolocation.getCurrentPosition(async pos => {
            var lat=pos.coords.latitude, lon=pos.coords.longitude;
            var r = await fetch('https://nominatim.openstreetmap.org/reverse?lat='+lat+'&lon='+lon+'&format=json&accept-language=de');
            var d = await r.json();
            var name = d.address?.city||d.address?.town||d.address?.village||'Mein Standort';
            if(d.address?.postcode) name = d.address.postcode+', '+name;
            await this.load(lat, lon, name);
        }, ()=>alert('Standort konnte nicht ermittelt werden.'));
    },
    async load(lat, lon, name){
        try {
            var url='https://api.open-meteo.com/v1/forecast?latitude='+lat+'&longitude='+lon
                +'&current=temperature_2m,weathercode,windspeed_10m,relative_humidity_2m,apparent_temperature'
                +'&daily=temperature_2m_max,temperature_2m_min,weathercode,precipitation_sum'
                +'&timezone=Europe%2FBerlin&forecast_days=7';
            var r = await fetch(url);
            var d = await r.json();
            this.render(d, name);
        } catch(e){ console.error(e); }
    },
    render(d, name){
        var c=d.current, dd=d.daily;
        document.getElementById('sv-wk-loc').textContent = name.toUpperCase();
        document.getElementById('sv-wk-temp').textContent = Math.round(c.temperature_2m)+'°C';
        document.getElementById('sv-wk-desc').textContent = (ICO[c.weathercode]||'&#x1f321;')+' '+(WMO[c.weathercode]||'–');
        document.getElementById('sv-wk-stats').innerHTML = [
            {v:Math.round(c.apparent_temperature)+'°C',l:'Gefühlt'},
            {v:c.windspeed_10m+' km/h',l:'Wind'},
            {v:c.relative_humidity_2m+'%',l:'Feuchte'},
        ].map(s=>'<div class="sv-wk-stat"><div class="v">'+s.v+'</div><div class="l">'+s.l+'</div></div>').join('');

        // 7 Tage
        var html='';
        for(var i=0;i<7;i++){
            var dt=new Date(dd.time[i]);
            var hi=Math.round(dd.temperature_2m_max[i]), lo=Math.round(dd.temperature_2m_min[i]);
            var rain=dd.precipitation_sum[i], wc=dd.weathercode[i];
            var isToday=i===0, isFrost=lo<=2, isIdeal=lo>8&&hi>=15&&hi<=28&&rain<5&&!isFrost;
            var cls=isToday?'today':isFrost?'frost':isIdeal?'ideal':'';
            var badge=isToday?'<div class="sv-wk-badge heute">Heute</div>'
                :isFrost?'<div class="sv-wk-badge frost">&#x2744; Frost</div>'
                :isIdeal?'<div class="sv-wk-badge ideal">✓ Ideal</div>':'';
            var dayName=isToday?'Heute':TAGE[dt.getDay()];
            html+='<div class="sv-wk-day '+cls+'">'+badge
                +'<div class="sv-wk-day-name">'+dayName+'</div>'
                +'<div class="sv-wk-day-date">'+dt.getDate()+'.'+(dt.getMonth()+1)+'.</div>'
                +'<div class="sv-wk-day-ico">'+(ICO[wc]||'&#x1f321;')+'</div>'
                +'<div class="sv-wk-day-hi">'+hi+'°</div>'
                +'<div class="sv-wk-day-lo">'+lo+'°</div>'
                +(rain>0.5?'<div class="sv-wk-day-rain">&#x1f4a7;'+Math.round(rain*10)/10+'</div>':'')
                +'</div>';
        }
        document.getElementById('sv-wk-days').innerHTML = html;

        // Hinweis
        var minT=dd.temperature_2m_min[0], maxT=dd.temperature_2m_max[0], r0=dd.precipitation_sum[0];
        var adv='', cls='gut';
        if(minT<=2){ adv='<strong>&#x26a0; Frostgefahr!</strong> Empfindliche Pflanzen schützen oder in den Frost-resistenten Bereich bringen.'; cls='frost'; }
        else if(maxT>=35){ adv='<strong>&#x26a0; Hitzestress!</strong> Pflanzen morgens früh gießen, Mulch auftragen, Schatten für empfindliche Kulturen.'; cls='warn'; }
        else if(r0>15){ adv='<strong>&#x1f327; Starker Regen heute.</strong> Erntefrisches Gemüse früh einbringen. Auf Pilzkrankheiten achten.'; cls='warn'; }
        else if(minT>8&&maxT>=15&&maxT<=26){ adv='<strong>✓ Gute Gartenbedingungen.</strong> Temperaturen zwischen '+minT+'° und '+maxT+'°C — ideal zum Umpflanzen, Setzen und Säen.'; cls='gut'; }
        var advEl=document.getElementById('sv-wk-advice');
        if(adv){ advEl.innerHTML=adv; advEl.className='sv-wk-advice show '+cls; }
        else { advEl.className='sv-wk-advice'; }

        document.getElementById('sv-wk-banner').classList.add('show');
        localStorage.setItem('sv_wk_last',JSON.stringify({lat:d.latitude,lon:d.longitude,name}));
    }
};

// Letzten Standort wiederherstellen oder Frankfurt als Default
(function(){
    var last = localStorage.getItem('sv_wk_last');
    if(last){ try{ var o=JSON.parse(last); svWK.load(o.lat,o.lon,o.name); } catch(e){} }
    else { svWK.load(50.1109,8.6821,'Frankfurt am Main (Standard)'); }
})();
})();
</script>
</div>

]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Obstbaum-Krankheiten erkennen und behandeln – ohne Chemie</title>
		<link>https://selbstversorgen.com/tools/obstbaum-diagnose/</link>
		
		<dc:creator><![CDATA[Mark]]></dc:creator>
		<pubDate>Wed, 10 Jun 2026 12:43:02 +0000</pubDate>
				<guid isPermaLink="false">https://selbstversorgen.com/?post_type=sv_tool&#038;p=1248</guid>

					<description><![CDATA[Wer im eigenen Garten Apfel- oder Kirschbäume hat, kennt das Gefühl: Im Frühjahr treibt der Baum frisch aus, alles sieht gut aus — und dann, irgendwann im Mai …]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Wer im eigenen Garten Apfel- oder Kirschbäume hat, kennt das Gefühl: Im Frühjahr treibt der Baum frisch aus, alles sieht gut aus — und dann, irgendwann im Mai oder Juni, erscheinen plötzlich braune Flecken auf den Blättern, Früchte fallen vorzeitig ab, oder ganze Triebe welken innerhalb weniger Tage. Obstbaum-Krankheiten erkennen ist der erste und wichtigste Schritt — denn wer früh reagiert, kann in den meisten Fällen ohne jeden Einsatz von Chemie gegensteuern.</p>



<p class="wp-block-paragraph">Das Problem: Viele Schäden sehen sich auf den ersten Blick ähnlich, haben aber völlig unterschiedliche Ursachen und brauchen unterschiedliche Maßnahmen. Braunfärbung an Blättern kann Pilz, Bakterium, Schädlingsbefall oder auch einfach Trockenstress sein. Wer das falsch einschätzt und blind behandelt, verliert wertvolle Zeit — oder verschlimmert das Problem.</p>



<h2 class="wp-block-heading">Die vier Krankheitsgruppen, die jeden Obstbaumbesitzer betreffen</h2>



<p class="wp-block-paragraph"><strong>Pilzkrankheiten</strong> sind mit Abstand die häufigste Ursache für Schäden an Apfel- und Kirschbäumen. Apfelschorf, Echter Mehltau, Monilia-Fruchtfäule, Obstbaumkrebs — sie alle werden durch mikroskopisch kleine Pilze verursacht, die sich bei feuchtem Wetter rasend schnell ausbreiten. Die gute Nachricht: Die meisten Pilzkrankheiten sind gut erkennbar und mit konsequenter Prophylaxe (Schachtelhalmbrühe, Falllaub-Beseitigung, Kronenauslichtung) in Schach zu halten, ohne dass Fungizide nötig werden.</p>



<p class="wp-block-paragraph"><strong>Bakterienkrankheiten</strong> sind seltener, aber oft gefährlicher. Das bekannteste Beispiel ist der Feuerbrand — eine in Deutschland und Österreich meldepflichtige Bakterienkrankheit, die Apfel-, Birn- und Quittenbäume innerhalb weniger Wochen zerstören kann. Hakenförmig umgebogene, braun-hängende Triebspitzen sind das unverwechselbare Warnsignal. Hier ist schnelles Handeln und die Meldung an das zuständige Pflanzenschutzamt gesetzlich vorgeschrieben.</p>



<p class="wp-block-paragraph"><strong>Schädlinge</strong> reichen vom unscheinbaren Apfelwickler, dessen Raupen sich ins Kerngehäuse fressen, bis zur Kirschfruchtfliege, die weiße Maden in Kirschen hinterlässt. Auch Blattläuse, Gespinstmotten und die Blutlaus gehören dazu. Was viele nicht wissen: In einem ausgeglichenen Garten ohne Pestizideinsatz regulieren natürliche Feinde wie Marienkäfer, Schlupfwespen und Vögel einen Großteil dieser Schädlinge von selbst.</p>



<p class="wp-block-paragraph"><strong>Physiologische Schäden</strong> haben weder mit Pilzen noch mit Tieren zu tun — sondern mit Umweltbedingungen. Fruchtplatzen nach Trockenheit und anschließendem Starkregen, Frostplatzer am Stamm im Winter, Sonnenbrand nach einem starken Rückschnitt: Das alles sind Schäden, die sich durch einfache Maßnahmen (Mulchen, Baumweißung, gleichmäßiges Wässern) weitgehend verhindern lassen.</p>



<h2 class="wp-block-heading">Warum chemiefreie Behandlung nicht nur möglich, sondern besser ist</h2>



<p class="wp-block-paragraph">Der Griff zur Spritze ist verständlich — man will den Baum retten, und zwar schnell. Aber chemische Fungizide und Insektizide haben einen hohen Preis: Sie töten nicht nur den Zielorganismus, sondern auch Nützlinge wie Bienen, Schlupfwespen und Laufkäfer, die den Baum langfristig schützen würden. Ein Baum, der regelmäßig mit Breitbandmitteln behandelt wird, verliert sein natürliches Schutzschild — und braucht im nächsten Jahr wieder Chemie.</p>



<p class="wp-block-paragraph">Die Alternative funktioniert: Schachtelhalmbrühe stärkt die Zellwände und wirkt vorbeugend gegen Pilze. Kaolin-Ton irritiert Kirschfruchtfliegen und Apfelwickler mechanisch. Seifenwasser bekämpft Blattläuse direkt. Wellpappegürtel fangen Apfelwickler-Raupen ab. Diese Methoden erfordern mehr Aufmerksamkeit und Regelmäßigkeit — aber sie stärken das System statt es zu schwächen.</p>



<h2 class="wp-block-heading">So nutzt du das Diagnose-Tool</h2>



<p class="wp-block-paragraph">Das interaktive Tool auf dieser Seite führt dich in vier Schritten zur Diagnose:</p>



<ol class="wp-block-list">
<li><strong>Baumart wählen</strong> — Apfel, Kirsche, Pflaume oder Pfirsich</li>



<li><strong>Bereich angeben</strong> — Wo zeigt sich das Problem? Blätter, Früchte, Triebe oder Rinde</li>



<li><strong>Symptom auswählen</strong> — Was genau siehst du? Flecken, Fäule, Gespinste, Bohrlöcher?</li>



<li><strong>Diagnose lesen</strong> — Du erhältst den Namen der Krankheit oder des Schädlings, den typischen Verlauf, konkrete Vorbeugungsmaßnahmen und Sofortmaßnahmen — alles ohne Chemie</li>
</ol>



<p class="wp-block-paragraph">Bei Verdacht auf Feuerbrand: Das Tool zeigt den Hinweis auf die Meldepflicht. Bitte das zuständige Pflanzenschutzamt in deinem Bundesland kontaktieren.</p>



<h2 class="wp-block-heading">Wann du deinen Obstgarten besonders genau beobachten solltest</h2>



<p class="wp-block-paragraph">Obstbaum-Krankheiten erkennen heißt vor allem: zur richtigen Zeit hinschauen.</p>



<p class="wp-block-paragraph"><strong>März/April</strong> ist der kritische Zeitpunkt für Kräuselkrankheit am Pfirsich — die Infektion passiert in den ersten Tagen nach dem Knospenaustrieb. Wer zu spät hinschaut, kann für diese Saison nichts mehr tun.</p>



<p class="wp-block-paragraph"><strong>Mai</strong> ist Hochsaison für Apfelwickler-Schmetterling und Kirschfruchtfliege. Pheromonfallen und gelbe Leimtafeln jetzt aufhängen.</p>



<p class="wp-block-paragraph"><strong>Juni/Juli</strong> zeigen sich Apfelschorf und Monilia auf Früchten — befallene Früchte sofort entfernen verhindert die Ausbreitung.</p>



<p class="wp-block-paragraph"><strong>August/September</strong> ist die Zeit für vorzeitigen Blattfall (Marssonina) und Monilia-Mumienfrüchte. Alles aufsammeln, vernichten, nicht kompostieren.</p>



<p class="wp-block-paragraph"><strong>Oktober/November</strong> ist die wichtigste Vorbeugungszeit: Falllaub beseitigen, Leimringe anbringen, Baumweißung auftragen — wer jetzt handelt, hat im nächsten Frühjahr deutlich weniger Probleme.</p>



<p class="wp-block-paragraph">Ein gesunder Obstbaum ist kein Zufall. Er ist das Ergebnis von regelmäßiger Beobachtung, frühzeitigem Eingreifen — und dem Wissen, womit man es gerade zu tun hat.</p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"></p>


<style id="sv-aff-css">
.sv-aff{margin-bottom:20px}
.sv-aff:empty{display:none}
.sv-aff-head{font-family:"DM Mono",monospace;font-size:11px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-mute,#6b6555);margin:0 0 10px}
.sv-aff-row{display:flex;align-items:center;gap:12px;padding:10px 12px;background:var(--card,#faf5e8);border:1px solid var(--line,#d6cab1);border-radius:6px;margin-bottom:8px;text-decoration:none;color:var(--ink,#1a1814);transition:border-color .15s}
.sv-aff-row:hover{border-color:var(--forest,#1a3a2a)}
.sv-aff-img{width:48px;height:48px;flex-shrink:0;border-radius:4px;overflow:hidden;background:var(--paper,#f3ecdc);display:flex;align-items:center;justify-content:center}
.sv-aff-img img{width:100%;height:100%;object-fit:cover}
.sv-aff-noimg{font-size:22px;opacity:.5}
.sv-aff-info{flex:1;min-width:0}
.sv-aff-titel{display:block;font-size:14px;font-weight:600;color:var(--forest,#1a3a2a);line-height:1.35}
.sv-aff-badge{display:inline-block;margin-left:7px;padding:1px 7px;border-radius:10px;background:var(--amber-soft,#f1d792);color:var(--ink,#1a1814);font-size:10px;font-weight:600;vertical-align:middle}
.sv-aff-shop{display:block;font-size:12px;color:var(--ink-mute,#6b6555);margin-top:2px}
.sv-aff-right{display:flex;align-items:center;gap:12px;flex-shrink:0}
.sv-aff-preis{font-size:14px;font-weight:600;color:var(--ink,#1a1814);white-space:nowrap}
.sv-aff-preis-alt{font-size:12px;color:var(--ink-mute,#6b6555);text-decoration:line-through}
.sv-aff-btn{display:inline-block;padding:8px 15px;border-radius:4px;background:var(--amber,#c08a2a);color:var(--ink,#1a1814);font-size:12px;font-weight:700;white-space:nowrap;transition:background .15s}
.sv-aff-row:hover .sv-aff-btn{background:#d49a3c}
.sv-aff-hint{font-size:11px;color:var(--ink-mute,#6b6555);margin-top:8px;font-family:"DM Mono",monospace}
@media(max-width:480px){.sv-aff-row{flex-wrap:wrap}.sv-aff-right{width:100%;justify-content:space-between;margin-top:8px;padding-left:60px}}
</style>
<script>
window.svToolAff = window.svToolAff || { data:{} };
window.svToolAff.preis = function(p){
  if(!p.preis) return '';
  var h = '<span class="sv-aff-preis">'+p.preis+' &euro;</span>';
  if(p.preis_alt) h += ' <span class="sv-aff-preis-alt">'+p.preis_alt+' &euro;</span>';
  return h;
};
window.svToolAff.row = function(p){
  var img = p.img ? '<img decoding="async" src="'+p.img+'" alt="" loading="lazy">' : '<span class="sv-aff-noimg">\uD83D\uDCE6</span>';
  var badge = p.badge ? '<span class="sv-aff-badge">'+p.badge+'</span>' : '';
  var shop = p.shop ? '<span class="sv-aff-shop">'+p.shop+'</span>' : '';
  return '<a class="sv-aff-row" href="'+p.url+'" target="_blank" rel="sponsored nofollow noopener">'+
    '<span class="sv-aff-img">'+img+'</span>'+
    '<span class="sv-aff-info"><span class="sv-aff-titel">'+p.titel+badge+'</span>'+shop+'</span>'+
    '<span class="sv-aff-right">'+window.svToolAff.preis(p)+'<span class="sv-aff-btn">Ansehen \u2197</span></span></a>';
};
window.svToolAff.render = function(tool, slotKey, containerId, header){
  var el = document.getElementById(containerId);
  if(!el) return;
  var d = (window.svToolAff.data && window.svToolAff.data[tool]) ? window.svToolAff.data[tool] : null;
  if(!d){ el.innerHTML=''; return; }
  var ids = (d.slots && d.slots[slotKey]) ? d.slots[slotKey] : [];
  if(!ids.length){ el.innerHTML=''; return; }
  var rows='';
  ids.forEach(function(id){ var p=d.produkte[id]; if(p) rows+=window.svToolAff.row(p); });
  if(!rows){ el.innerHTML=''; return; }
  el.innerHTML='<div class="sv-aff-head">'+header+'</div>'+rows+
    '<div class="sv-aff-hint">* Affiliate-Links \u2013 kaufst du dar\u00FCber, unterst\u00FCtzt du selbstversorgen.com ohne Mehrkosten.</div>';
};
</script>
    <script>window.svToolAff=window.svToolAff||{data:{}};window.svToolAff.data=window.svToolAff.data||{};window.svToolAff.data["sv_obstbaum_diagnose"]={"slots":[],"produkte":[]};</script>
<div id="sv-obd" class="sv-tool-wrap">
<style>
#sv-obd{font-family:"DM Sans",sans-serif;color:var(--ink,#1a1814)}
#sv-obd *{box-sizing:border-box}

/* Schritte-Navigation */
#sv-obd .sv-obd-steps{display:flex;gap:0;margin-bottom:28px;border-radius:6px;overflow:hidden;border:1px solid var(--line,#d6cab1)}
#sv-obd .sv-obd-step{flex:1;padding:9px 6px;text-align:center;font-family:"DM Mono",monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-mute,#6b6555);background:var(--paper,#f3ecdc);cursor:pointer;border-right:1px solid var(--line,#d6cab1);transition:all .15s}
#sv-obd .sv-obd-step:last-child{border-right:0}
#sv-obd .sv-obd-step.aktiv{background:var(--forest,#1a3a2a);color:var(--paper,#f3ecdc)}
#sv-obd .sv-obd-step.fertig{background:var(--sage,#5a8a6a);color:var(--paper,#f3ecdc)}

/* Frage-Screens */
#sv-obd .sv-obd-screen{display:none}
#sv-obd .sv-obd-screen.aktiv{display:block}
#sv-obd .sv-obd-frage{font-family:"Playfair Display",serif;font-size:18px;color:var(--forest,#1a3a2a);margin:0 0 6px;line-height:1.35}
#sv-obd .sv-obd-hint{font-size:12px;color:var(--ink-mute,#6b6555);margin:0 0 18px}

/* Optionen */
#sv-obd .sv-obd-opts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:20px}
@media(max-width:560px){#sv-obd .sv-obd-opts{grid-template-columns:1fr}}
#sv-obd .sv-obd-opt{padding:12px 14px;border:1.5px solid var(--line,#d6cab1);border-radius:8px;background:var(--paper,#f3ecdc);cursor:pointer;text-align:left;font:inherit;font-size:13px;color:var(--ink,#1a1814);transition:all .15s;line-height:1.4}
#sv-obd .sv-obd-opt:hover{border-color:var(--forest,#1a3a2a);background:var(--paper-2,#ebe2cd)}
#sv-obd .sv-obd-opt.gewaehlt{border-color:var(--forest,#1a3a2a);background:var(--forest,#1a3a2a);color:var(--paper,#f3ecdc)}
#sv-obd .sv-obd-opt .emo{display:block;font-size:22px;margin-bottom:5px}
#sv-obd .sv-obd-opt .opt-label{font-weight:600;display:block;margin-bottom:2px}
#sv-obd .sv-obd-opt .opt-sub{font-size:11px;opacity:.75}

/* Ergebnis */
#sv-obd .sv-obd-result{display:none;margin-top:8px}
#sv-obd .sv-obd-diagnose{background:var(--paper,#f3ecdc);border:2px solid var(--forest,#1a3a2a);border-radius:10px;padding:18px 22px;margin-bottom:16px}
#sv-obd .sv-obd-d-eyebrow{font-family:"DM Mono",monospace;font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:var(--amber,#c08a2a);margin-bottom:4px}
#sv-obd .sv-obd-d-name{font-family:"Playfair Display",serif;font-size:20px;font-weight:700;color:var(--forest,#1a3a2a);margin-bottom:8px}
#sv-obd .sv-obd-d-desc{font-size:13px;color:var(--ink-mute,#6b6555);line-height:1.65;margin-bottom:0}

#sv-obd .sv-obd-cols{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}
@media(max-width:560px){#sv-obd .sv-obd-cols{grid-template-columns:1fr}}
#sv-obd .sv-obd-box{background:var(--card,#faf5e8);border:1px solid var(--line,#d6cab1);border-radius:8px;padding:14px 16px}
#sv-obd .sv-obd-box h4{font-size:12px;font-family:"DM Mono",monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-mute,#6b6555);margin:0 0 10px}
#sv-obd .sv-obd-box ul{margin:0;padding:0 0 0 16px;font-size:13px;color:var(--ink,#1a1814);line-height:1.8}

#sv-obd .sv-obd-gefahr{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:11px;font-weight:600;font-family:"DM Mono",monospace;margin-bottom:14px}
#sv-obd .gefahr-hoch{background:#FCEBEB;color:#791F1F}
#sv-obd .gefahr-mittel{background:#FAEEDA;color:#633806}
#sv-obd .gefahr-niedrig{background:#EAF3DE;color:#27500A}

#sv-obd .sv-obd-reset{margin-top:16px;padding:9px 20px;border:1.5px solid var(--line,#d6cab1);border-radius:6px;background:transparent;font:inherit;font-size:13px;color:var(--ink-mute,#6b6555);cursor:pointer;transition:all .15s}
#sv-obd .sv-obd-reset:hover{border-color:var(--forest,#1a3a2a);color:var(--forest,#1a3a2a)}
#sv-obd .sv-obd-hinweis{font-size:11px;color:var(--ink-mute,#6b6555);margin-top:14px;padding:10px 14px;background:var(--paper-2,#ebe2cd);border-radius:5px;line-height:1.6}
#sv-obd .sv-obd-d-bild{width:100%;height:auto;border-radius:6px;margin:12px 0 10px;display:block}
#sv-obd .sv-obd-saison{font-size:12px;color:var(--ink-mute,#6b6555);margin:8px 0 10px;font-family:"DM Mono",monospace}
#sv-obd .sv-obd-details{font-size:13px;color:var(--ink,#1a1814);line-height:1.75;margin-top:12px;padding-top:12px;border-top:1px solid var(--line,#d6cab1)}
</style>

<!-- Schritt-Indikatoren -->
<div class="sv-obd-steps">
    <div class="sv-obd-step aktiv" id="sv-obd-s1">1 · Baumart</div>
    <div class="sv-obd-step" id="sv-obd-s2">2 · Bereich</div>
    <div class="sv-obd-step" id="sv-obd-s3">3 · Symptom</div>
    <div class="sv-obd-step" id="sv-obd-s4">4 · Diagnose</div>
</div>

<!-- Schritt 1: Baumart -->
<div class="sv-obd-screen aktiv" id="sv-obd-screen1">
    <p class="sv-obd-frage">Welcher Baum zeigt Probleme?</p>
    <p class="sv-obd-hint">Wähle die Baumart, dann wird die Diagnose präziser.</p>
    <div class="sv-obd-opts">
        <button class="sv-obd-opt" onclick="svOBD.setze('baum','apfel',this)">
            <span class="emo"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f34e.png" alt="🍎" class="wp-smiley" style="height: 1em; max-height: 1em;" data-neo-global--processed-neo-rename="true" /></span>
            <span class="opt-label">Apfelbaum</span>
            <span class="opt-sub">inkl. Birne</span>
        </button>
        <button class="sv-obd-opt" onclick="svOBD.setze('baum','kirsche',this)">
            <span class="emo"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f352.png" alt="🍒" class="wp-smiley" style="height: 1em; max-height: 1em;" data-neo-global--processed-neo-rename="true" /></span>
            <span class="opt-label">Kirschbaum</span>
            <span class="opt-sub">Süß- und Sauerkirsche</span>
        </button>
        <button class="sv-obd-opt" onclick="svOBD.setze('baum','pflaume',this)">
            <span class="emo"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1fad0.png" alt="🫐" class="wp-smiley" style="height: 1em; max-height: 1em;" data-neo-global--processed-neo-rename="true" /></span>
            <span class="opt-label">Pflaume / Zwetschge</span>
            <span class="opt-sub">inkl. Mirabelle</span>
        </button>
        <button class="sv-obd-opt" onclick="svOBD.setze('baum','pfirsich',this)">
            <span class="emo"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f351.png" alt="🍑" class="wp-smiley" style="height: 1em; max-height: 1em;" data-neo-global--processed-neo-rename="true" /></span>
            <span class="opt-label">Pfirsich / Aprikose</span>
            <span class="opt-sub">Steinobst</span>
        </button>
    </div>
</div>

<!-- Schritt 2: Bereich -->
<div class="sv-obd-screen" id="sv-obd-screen2">
    <p class="sv-obd-frage">Wo zeigt sich das Problem?</p>
    <p class="sv-obd-hint">Betrachte den Baum genau — an welcher Stelle fällt etwas auf?</p>
    <div class="sv-obd-opts">
        <button class="sv-obd-opt" onclick="svOBD.setze('bereich','blaetter',this)">
            <span class="emo"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f343.png" alt="🍃" class="wp-smiley" style="height: 1em; max-height: 1em;" data-neo-global--processed-neo-rename="true" /></span>
            <span class="opt-label">Blätter</span>
            <span class="opt-sub">Flecken, Verfärbung, Deformation</span>
        </button>
        <button class="sv-obd-opt" onclick="svOBD.setze('bereich','fruechte',this)">
            <span class="emo"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f34f.png" alt="🍏" class="wp-smiley" style="height: 1em; max-height: 1em;" data-neo-global--processed-neo-rename="true" /></span>
            <span class="opt-label">Früchte</span>
            <span class="opt-sub">Fäule, Flecken, Würmer, Risse</span>
        </button>
        <button class="sv-obd-opt" onclick="svOBD.setze('bereich','triebe',this)">
            <span class="emo"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f33f.png" alt="🌿" class="wp-smiley" style="height: 1em; max-height: 1em;" data-neo-global--processed-neo-rename="true" /></span>
            <span class="opt-label">Triebe &amp; Äste</span>
            <span class="opt-sub">Welke, Absterben, Gallert</span>
        </button>
        <button class="sv-obd-opt" onclick="svOBD.setze('bereich','rinde',this)">
            <span class="emo"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1fab5.png" alt="🪵" class="wp-smiley" style="height: 1em; max-height: 1em;" data-neo-global--processed-neo-rename="true" /></span>
            <span class="opt-label">Rinde &amp; Stamm</span>
            <span class="opt-sub">Schorf, Risse, Auswüchse</span>
        </button>
    </div>
</div>

<!-- Schritt 3: Symptom -->
<div class="sv-obd-screen" id="sv-obd-screen3">
    <p class="sv-obd-frage" id="sv-obd-symptom-frage">Was genau siehst du?</p>
    <p class="sv-obd-hint">Wähle das Symptom, das am besten passt.</p>
    <div class="sv-obd-opts" id="sv-obd-symptom-opts"></div>
</div>

<!-- Schritt 4: Diagnose -->
<div class="sv-obd-screen" id="sv-obd-screen4">
    <div class="sv-obd-result" id="sv-obd-result"></div>
</div>

<script>
(function(){

var SYMPTOME = {
    blaetter: {
        frage: 'Wie sehen die Blätter aus?',
        opts: [
            {key:'schorf_bl',   emo:'&#x1f7e4;', label:'Braune/olivgrüne Flecken', sub:'Flecken mit korkigem Rand'},
            {key:'mehltau_bl',  emo:'&#x2b1c;', label:'Weißer Belag', sub:'Wie mit Mehl bestäubt'},
            {key:'kringelkr',   emo:'&#x1f534;', label:'Rote Blasen oder Kräuselung', sub:'Aufgewölbte rote Stellen'},
            {key:'blaettlaus',  emo:'&#x1f7e1;', label:'Eingerollte, klebrige Blätter', sub:'Oft mit Läusen besetzt'},
            {key:'gelbfall',    emo:'&#x1f342;', label:'Vorzeitiger Gelbfall', sub:'Blätter fallen ab Juli'},
            {key:'mosaik',      emo:'&#x1f7e9;', label:'Mosaik- oder Ringflecken', sub:'Hell-dunkel-Muster, Viren'},
        ]
    },
    fruechte: {
        frage: 'Was zeigen die Früchte?',
        opts: [
            {key:'monilia_fr',  emo:'&#x1f90e;', label:'Braune Fäule mit Ringen', sub:'Frucht schrumpft, bleibt hängen'},
            {key:'schorf_fr',   emo:'&#x26ab;', label:'Dunkle, korkige Flecken', sub:'Oft tief in die Frucht'},
            {key:'apfelwickl',  emo:'&#x1f41b;', label:'Wurmloch, Maden innen', sub:'Frucht fällt frühzeitig ab'},
            {key:'kirschfl',    emo:'&#x1fab0;', label:'Maden in Kirschen', sub:'Weiße Larven der Kirschfliege'},
            {key:'risse_fr',    emo:'&#x1f4a7;', label:'Platzen / Risse', sub:'Oft nach Regen nach Trockenheit'},
            {key:'saegewespe',  emo:'&#x1f7e3;', label:'Rosettenfraß, Frühfall', sub:'Früchte fallen im Juni ab'},
        ]
    },
    triebe: {
        frage: 'Was zeigen Triebe und Äste?',
        opts: [
            {key:'feuerbrand',  emo:'&#x1f525;', label:'Triebe welken wie verbrannt', sub:'Blätter bleiben braun hängen'},
            {key:'monilia_bl',  emo:'&#x1f32b;', label:'Blüten und Triebspitzen welken', sub:'Erst Blüten, dann Trieb'},
            {key:'gespinst',    emo:'&#x1f578;', label:'Gespinste, kahle Äste', sub:'Raupen im Netz'},
            {key:'blutlaus',    emo:'&#x1fa78;', label:'Wolliger roter Belag', sub:'An Wunden und Ästen'},
            {key:'krebs',       emo:'&#x1f534;', label:'Eingesunkene Wundstellen', sub:'Rinde stirbt ringförmig ab'},
        ]
    },
    rinde: {
        frage: 'Was siehst du an Rinde und Stamm?',
        opts: [
            {key:'obstbaumk',   emo:'&#x1f98b;', label:'Rindenschäden durch Frost', sub:'Längsrisse, Sonnenbrand'},
            {key:'pilz_rinde',  emo:'&#x1f344;', label:'Pilzkonsolen oder Gummifluss', sub:'Gummiartiger Ausfluss'},
            {key:'borkenkaefer',emo:'&#x1fab2;', label:'Bohrlöcher im Stamm', sub:'Sägemehl, Gänge unter Rinde'},
            {key:'flechten',    emo:'&#x1f33f;', label:'Flechten und Moos', sub:'Grüner/grauer Bewuchs'},
        ]
    }
};

var DIAGNOSEN = {
    schorf_bl: {
        name: 'Apfelschorf (Venturia inaequalis)',
        gefahr: 'hoch',
        saison: 'März – Juli',
        desc: 'Häufigste Pilzkrankheit bei Apfel und Birne. Übersteht den Winter in abgefallenem Laub. Feuchte Frühjahre begünstigen massiven Befall. Unbehandelt befällt er auch die Früchte.',
        details: 'Apfelschorf wird durch den Pilz Venturia inaequalis verursacht und gilt als die wirtschaftlich bedeutendste Obstbaumkrankheit in Mitteleuropa. Die Infektion erfolgt im Frühjahr: Sobald die Temperatur über 6 °C steigt und die Blätter für mindestens 9 Stunden nass bleiben, keimen die im Falllaub überwinterten Sporen aus und dringen in junges Blattgewebe ein. Charakteristisch sind olivbraune bis schwarze Flecken mit einem leicht erhöhten, korkigen Rand. Bei starkem Befall kräuseln sich die Blätter und fallen frühzeitig ab, was den Baum für die nächste Saison erheblich schwächt. Besonders anfällig sind alte Sorten wie Cox Orange oder Jonagold — widerstandsfähige Sorten wie Topaz, Rewena oder Florina sind deutlich robuster und eine langfristige Lösung für den chemiefreien Anbau.',
        vorbeugung: ['Falllaub im Herbst entfernen und vernichten','Schachtelhalmbrühe ab Knospenaustrieb alle 14 Tage','Widerstandsfähige Sorten pflanzen (Topaz, Rewena, Florina)','Kronenauslichtung für bessere Belüftung und schnellere Abtrocknung'],
        behandlung: ['Backpulverlösung (1 TL/L) bei ersten Anzeichen','Schwefelkalk-Spritzung im Frühjahr (Bio-zugelassen)','Stark befallene Triebe herausschneiden','Kupferkalk als letztes Mittel (akkumuliert im Boden — sparsam einsetzen)']
    },
    mehltau_bl: {
        name: 'Echter Mehltau (Podosphaera leucotricha)',
        gefahr: 'mittel',
        saison: 'April – September',
        desc: 'Weißer pudriger Belag auf Blättern und Trieben. Überlebt in befallenen Knospen. Befällt vor allem Jungtriebe in Trockenperioden nach Regen.',
        details: 'Echter Mehltau an Obstbäumen wird durch den obligaten Pilz Podosphaera leucotricha verursacht, der ausschließlich auf lebenden Pflanzengeweben lebt. Anders als viele andere Pilzkrankheiten bevorzugt er trockenes, warmes Wetter — er benötigt keine stehende Nässe zur Infektion. Das charakteristische weiße Pulver besteht aus Pilzfäden und Sporenketten (Konidien), die sich bei Wind auf gesunde Triebe verbreiten. Besonders gefährdet sind üppig mit Stickstoff gedüngte Bäume, die viele weiche Jungtriebe bilden. Der Pilz überwintert in befallenen Knospen und tritt im nächsten Frühjahr sofort wieder auf — deshalb ist es wichtig, stark befallene Triebspitzen noch im Sommer zu entfernen. Milch als Spray wirkt nachweislich: Proteine und Spurenelemente hemmen das Pilzwachstum, besonders wenn die Blätter in der Sonne abtrocknen.',
        vorbeugung: ['Schachtelhalmbrühe prophylaktisch ab April','Stickstoffdüngung reduzieren (weiche Triebe sind anfälliger)','Luftige Kronenform durch regelmäßigen Schnitt','Befallene Knospen im Winter herausschneiden'],
        behandlung: ['Milch 1:10 verdünnt, alle 3–5 Tage auf Blätter sprühen','Backpulver + Seife-Lösung (1 TL/L + Spritzer Spülmittel)','Befallene Triebspitzen sofort entfernen und vernichten','Neem-Öl als stärkeres Mittel bei heftigem Befall']
    },
    kringelkr: {
        name: 'Kräuselkrankheit (Taphrina deformans)',
        gefahr: 'hoch',
        saison: 'März – Mai (Infektion), sichtbar April – Juni',
        desc: 'Pilzkrankheit vor allem bei Pfirsich und Aprikose. Infiziert kurz nach dem Knospenaustrieb bei feuchtem Wetter. Blätter verformen sich rot-blasig und fallen früh ab.',
        details: 'Die Kräuselkrankheit ist die gefährlichste Pilzkrankheit für Pfirsiche und Aprikosen in Mitteleuropa. Der Pilz Taphrina deformans infiziert die Blätter genau in dem kurzen Zeitfenster zwischen Knospenöffnung und vollständiger Blattentfaltung — bei Temperaturen zwischen 10 und 16 °C und Nässe. Das ist der einzige Infektionszeitpunkt, danach ist der Baum für diese Saison geschützt. Die befallenen Blätter verdicken sich, wölben sich blasig auf und verfärben sich auffällig rötlich bis gelblich. Sie produzieren kaum noch Photosynthese und fallen oft schon im Mai ab. Starker Befall über mehrere Jahre schwächt den Baum erheblich und mindert den Fruchtertrag dauerhaft. Der entscheidende Handlungszeitpunkt ist das Frühjahr VOR dem Austrieb — eine Spritzung danach ist wirkungslos.',
        vorbeugung: ['Spritzung VOR dem Knospenaustrieb — das ist der einzige wirksame Zeitpunkt','Schachtelhalm ab Februar alle 10 Tage sprühen','Überdachung des Baumes im März/April wenn möglich (hält Nässe ab)','Geschützte, warme Standorte bevorzugen'],
        behandlung: ['Befallene Blätter sofort entfernen — NICHT kompostieren, verbrennen','Schwefelkalk direkt nach Blattfall im Herbst','Kupferpräparat im Frühjahr vor Austrieb (letztes Mittel)','Baum durch Düngen und Wässern stärken damit er austreiben kann']
    },
    blaettlaus: {
        name: 'Blattläuse (verschiedene Arten)',
        gefahr: 'mittel',
        saison: 'April – Oktober, Hauptbefall Mai – Juni',
        desc: 'Eingerollte Blätter schützen die Kolonien vor Behandlungsmitteln. Ameisen hüten die Läuse aktiv und vertreiben Nützlinge.',
        details: 'An Obstbäumen treten je nach Baumart unterschiedliche Blattlausarten auf: die Grüne Apfelblattlaus (Aphis pomi), die Mehlige Apfelblattlaus (Dysaphis plantaginea) oder die Schwarze Kirschenblattlaus (Myzus cerasi). Allen gemeinsam ist, dass sie aus Pflanzensaft saugen und dabei Viren übertragen können. Die eingerollten Blätter sind eine aktive Schutzreaktion der Pflanze, schützen die Kolonien aber gleichzeitig vor Spritzungen — weshalb das frühzeitige Eingreifen entscheidend ist. Ameisen, die Honigtau ernten, vertreiben gezielt Marienkäfer und andere Nützlinge. Ein Leimring am Stamm unterbricht diese Symbiose effektiv. In einem ausgeglichenen Garten regulieren Nützlinge wie Marienkäfer, Florfliegen und Schlupfwespen die Blattlauspopulation weitgehend von selbst — vorausgesetzt, es werden keine Breitbandinsektizide eingesetzt.',
        vorbeugung: ['Knoblauch oder Lavendel als Begleitpflanzen unter den Baum pflanzen','Leimring gegen Ameisen ab Oktober anbringen','Nützlingsförderung: Insektenhotels, keine Pestizide','Stickstoffdüngung reduzieren (weiche Triebe locken Läuse an)'],
        behandlung: ['Befallene Triebspitzen abschneiden bevor sich Kolonien ausbreiten','Seifenwasser (1 TL Kernseife/L) direkt auf Kolonien sprühen','Wermutbrühe alle 3 Tage als Spray','Ameisen mit erneutem Leimring vom Baum fernhalten']
    },
    gelbfall: {
        name: 'Marssonina-Blattfleckenkrankheit',
        gefahr: 'mittel',
        saison: 'Juli – Oktober',
        desc: 'Pilzkrankheit die ab Juli zu starkem vorzeitigem Blattfall führt. Schwächt den Baum für die Folgesaison. Warme, feuchte Sommer begünstigen den Befall.',
        details: 'Marssonina coronaria ist ein Pilzerreger der in den letzten Jahren durch milde, feuchte Sommer deutlich häufiger geworden ist. Zunächst erscheinen kleine braune Flecken mit gelbem Hof auf den Blättern — diese vergrößern sich rasch, und ab Juli/August kann es zu einem massiven vorzeitigen Blattfall kommen. Ein betroffener Baum treibt manchmal noch im Herbst erneut aus, was ihn für den Winter erheblich schwächt. Die Sporen überwintern im Falllaub und infizieren im nächsten Frühjahr erneut. Besonders anfällig sind Sorten mit dichter Krone und schlechter Belüftung. Die Krankheit ist nicht heilbar, aber durch konsequente Falllaub-Beseitigung und Schachtelhalmspritzungen im Sommer gut in Schach zu halten.',
        vorbeugung: ['Falllaub vollständig entfernen und vernichten — keinesfalls liegen lassen','Schachtelhalmbrühe von Juni bis Oktober alle 14 Tage','Gut belüftete Krone durch regelmäßigen Sommerschnitt','Baumscheibe mulchen verhindert Sporenaufflug aus dem Boden'],
        behandlung: ['Regelmäßige Schachtelhalmspritzungen ab ersten Symptomen','Befallene Blätter sofort aufsammeln','Im Herbst Baumscheibe mulchen','Baum im Herbst gut wässern und düngen damit er ausreichend Reserven hat']
    },
    mosaik: {
        name: 'Virusinfektion (z.B. ACLSV, ApMV)',
        gefahr: 'hoch',
        saison: 'Ganzjährig sichtbar, Infektion durch Läuse oder Pfropfung',
        desc: 'Durch Viren verursacht, übertragen durch Blattläuse oder infiziertes Pfropfmaterial. Nicht heilbar. Der Baum trägt noch Früchte, schwächt aber langfristig ab.',
        details: 'Obstbäume können von verschiedenen Viren befallen werden — häufig sind das Apple Chlorotic Leaf Spot Virus (ACLSV), Apple Mosaic Virus (ApMV) oder Prunus Necrotic Ringspot Virus (PNRSV). Die Symptome variieren stark: helle Mosaikflecken, ringförmige Aufhellungen, Blattkräuselung oder unregelmäßige Chlorosen. Viren werden dauerhaft im Pflanzengewebe eingelagert und können nicht entfernt werden. Der Baum lebt weiter, ist aber dauerhaft geschwächt und empfänglich für andere Erkrankungen. Die wichtigste Infektionsquelle ist infiziertes Pfropfmaterial — deshalb sollte Pfropfreiser grundsätzlich nur von zertifizierten Baumschulen bezogen werden. Blattläuse übertragen einige Virusarten, weshalb deren Bekämpfung auch der Virusvorbeugung dient.',
        vorbeugung: ['Nur zertifiziertes, virusgetestetes Pfropfmaterial von seriösen Baumschulen','Blattlausbefall konsequent und früh bekämpfen','Schnittwerkzeug desinfizieren (überträgt keine Viren, aber andere Erreger)'],
        behandlung: ['Keine Heilung möglich — Virus bleibt dauerhaft im Baum','Baum beobachten: bei starker Schwächung oder ausbleibender Ernte ersetzen','Auf resistente Unterlagen veredeln bei Neupflanzung','Vitalität durch gute Pflege (Wässern, organischer Dünger) erhalten']
    },
    monilia_fr: {
        name: 'Monilia-Fruchtfäule (Monilinia fructigena)',
        gefahr: 'hoch',
        saison: 'Juli – Oktober (Erntezeit)',
        desc: 'Häufigste Fruchtfäule bei Kernobst und Steinobst. Befallene Früchte "Mumien" bleiben hängen und überwintern als Infektionsquelle. Breitet sich schnell auf Nachbarfrüchte aus.',
        details: 'Monilia-Fruchtfäule ist in Heimgärten die häufigste Ursache für faulendes Obst direkt am Baum. Der Pilz Monilinia fructigena dringt bevorzugt durch Verletzungen ein — Hagel, Insektenfraß, Vogelschäden oder aufgeplatzte Stellen reichen als Eintrittspforte. Bei warmen, feuchten Bedingungen kann sich die Fäule von einer Frucht auf benachbarte ausbreiten — erkennbar an den charakteristischen konzentrischen Sporenringen. Das Tückische: befallene Früchte, die als "Mumien" am Baum hängen bleiben, überwintern und infizieren im nächsten Jahr erneut. Ein konsequentes Absammeln aller befallenen und mumifizierten Früchte ist deshalb der wichtigste Schritt. Früchte nie in den Kompost — Sporenübertragung wäre garantiert.',
        vorbeugung: ['Frühzeitiges Ausdünnen: berührende Früchte trennen','Schachtelhalm während der Fruchtentwicklung (ab Juni)','Insektenfraß und Hagelschäden sofort behandeln','Keine Verletzungen an Früchten durch enges Wachstum'],
        behandlung: ['Befallene Früchte sofort entfernen UND vernichten — nicht kompostieren','Mumienfrüchte im Winter absammeln — das ist die wichtigste Maßnahme','Alle Wunden am Baum mit Baumwachs versiegeln','Ernte bei trockenem Wetter und möglichst früh am Tag']
    },
    schorf_fr: {
        name: 'Apfelschorf (Fruchtbefall)',
        gefahr: 'hoch',
        saison: 'Juni – Oktober',
        desc: 'Dieselbe Erkrankung wie Blattschorf, befällt aber auch die Früchte direkt. Früchte sind noch essbar, aber nicht lagerfähig. Schorfige Früchte fördern Fäuleerreger.',
        details: 'Wenn Apfelschorf nicht früh genug bekämpft wird, befällt er ab Frühsommer auch die Früchte. Die dunklen, korkig-rissigen Flecken auf der Schale sind typisch — sie entstehen wenn der Pilz das Fruchtgewebe zerstört und die Schale reißt. Schorfige Früchte sind noch verwendbar (kochen, einmachen, Saft), aber für die Lagerung ungeeignet: An den Rissen dringen Fäuleerreger ein, und die Früchte verderben schnell. Ein sekundärer Befall mit Monilia ist häufig. Die Kontrolle am Blatt hat Vorrang — wer Blattschorf verhindert, verhindert automatisch auch den Fruchtbefall.',
        vorbeugung: ['Schorf-Bekämpfung am Blatt ist der entscheidende Schritt','Belüftete Krone durch Schnitt','Laubentfernung im Herbst'],
        behandlung: ['Befallene Früchte rasch ernten und zeitnah verarbeiten','Für die nächste Saison Prophylaxe konsequent starten','Widerstandsfähige Sorten langfristig einplanen']
    },
    apfelwickl: {
        name: 'Apfelwickler (Cydia pomonella)',
        gefahr: 'hoch',
        saison: 'Mai – September (2 Generationen)',
        desc: 'Raupe des Apfelwickler-Schmetterlings frisst sich ins Kerngehäuse. Pro Jahr 1–2 Generationen. Befallene Früchte fallen frühzeitig ab.',
        details: 'Der Apfelwickler ist der häufigste Schädling an Apfelbäumen in Europa. Der unscheinbare Schmetterling legt ab Ende Mai einzelne Eier auf Blättern oder Früchte — die geschlüpften Raupen fressen sich durch die Schale ins Kerngehäuse. Von außen ist nur ein kleines Eintrittsloch sichtbar, innen entsteht ein Fraßgang bis zu den Kernen. Befallene Früchte fallen oft schon ab August ab. Pro Jahr gibt es in Deutschland 1–2 Generationen; in warmen Sommern reicht die Zeit für eine zweite vollständige Generation. Die Raupen verpuppen sich unter der Rinde oder im Boden — deshalb ist der Wellpappegürtel so effektiv: er bietet einen perfekten Versteckplatz, der regelmäßig abgesammelt und vernichtet werden kann. Pheromonfallen zeigen den Schlüpfzeitpunkt an und helfen bei der Terminierung von Spritzungen.',
        vorbeugung: ['Wellpappegürtel um Stamm ab Anfang Juni anbringen','Pheromonfallen zur Überwachung des Schmetterlingsflugs','Neem-Öl ab Blütenfall alle 14 Tage auf Früchte sprühen','Alle vorjährigen Früchte im Frühjahr aufsammeln'],
        behandlung: ['Wellpappegürtel wöchentlich kontrollieren, Raupen verbrennen','Befallene Früchte sofort entfernen und vernichten','Granulosis-Virus (Madex HP) — hoch wirksam, Bio-zugelassen, schadet Nützlingen nicht','Spinosad-Präparate als Alternative bei starkem Befall']
    },
    kirschfl: {
        name: 'Kirschfruchtfliege (Rhagoletis cerasi)',
        gefahr: 'hoch',
        saison: 'Mai – Juli',
        desc: 'Weiße Maden in Süß- und Sauerkirschen. Fliege legt Eier ab Mitte Mai einzeln in reifende Früchte. Befallene Kirschen sind ungenießbar.',
        details: 'Die Kirschfruchtfliege ist der Hauptschädling an Kirschen in Mitteleuropa. Die etwa 4–5 mm große Fliege mit dem charakteristischen Flügelmuster schlüpft ab Mitte Mai und legt ihre Eier einzeln in Kirschen, sobald diese beginnen zu reifen. Die geschlüpfte Larve frisst das Fruchtfleisch und hinterlässt die typischen weißen Maden. Befallene Kirschen sind äußerlich kaum von gesunden zu unterscheiden — erst beim Aufbeißen oder Kochen werden die Maden sichtbar. Frühe Kirschen (vor Ende Mai reif) entgehen dem Befall fast komplett. Gelbe Leimtafeln oder Fangampullen mit Ammoniumacetat-Lockstoff sind das wichtigste Monitoring- und Bekämpfungsmittel. Kaolin-Ton auf die Früchte gesprüht irritiert die Fliege mechanisch beim Eiablegen.',
        vorbeugung: ['Gelbe Leimtafeln ab Mitte Mai in die Krone hängen','Kaolin-Ton (Surround) auf Früchte sprühen ab Mitte Mai','Frühe Sorten bevorzugen die vor dem Flug reifen','Fallobst täglich aufsammeln — Larven verpuppen sich im Boden'],
        behandlung: ['Alle Früchte zügig und vollständig ernten','Fallobst täglich sammeln und in geschlossenen Behältern entsorgen — nicht kompostieren','Neem-Öl als Spray (Abstand zur Ernte beachten)','Boden unter dem Baum im Herbst/Frühjahr auflockern (tötet Puppen)']
    },
    risse_fr: {
        name: 'Fruchtplatzen (physiologisch)',
        gefahr: 'niedrig',
        saison: 'Juni – August, nach Regen nach Trockenperioden',
        desc: 'Kein Pilz, kein Schädling — sondern unregelmäßige Wasserversorgung. Nach Trockenheit nimmt die Frucht bei Regen schlagartig Wasser auf und platzt.',
        details: 'Fruchtplatzen ist keine Krankheit, sondern eine physiologische Reaktion auf ungleichmäßige Wasserversorgung. Die Fruchtschale wächst während einer Trockenperiode langsamer als das Fruchtfleisch bei plötzlicher Wasserzufuhr — der Druck von innen reißt die Schale auf. Bei Kirschen passiert das sehr schnell nach Starkregen, bei Äpfeln eher bei anhaltend unregelmäßiger Bewässerung. Die entstandenen Risse sind selbst harmlos, werden aber sofort von Fäuleerregern (Monilia, Botrytis) besiedelt. Mulch auf der Baumscheibe puffert Feuchtigkeitsschwankungen im Boden erheblich — das ist die einfachste und wirksamste Vorbeugung.',
        vorbeugung: ['10–15 cm Mulchschicht auf der Baumscheibe (hält Feuchtigkeit gleichmäßig)','Gleichmäßige Bewässerung während der Fruchtentwicklung','Keine Staufeuchte — Drainage des Standorts prüfen'],
        behandlung: ['Gerissene Früchte sofort ernten und rasch verarbeiten','Risse sind Eintrittspforte für Fäule — nicht warten','Calciumdüngung (Kalkung) kann Zellwände stärken und Platzen reduzieren']
    },
    saegewespe: {
        name: 'Apfelsägewespe (Hoplocampa testudinea)',
        gefahr: 'mittel',
        saison: 'April – Juni (Flug während Blüte)',
        desc: 'Larven fressen ins Fruchtfleisch und verursachen den typischen "Junifruchtfall". Befallene Früchte riechen intensiv nach Wanzen.',
        details: 'Die Apfelsägewespe ist ein häufig übersehener Schädling, der im Frühjahr während der Apfelblüte aktiv ist. Das wespenartige Insekt legt seine Eier in die Blütenkelche — die geschlüpfte Larve frisst zunächst ringförmig unter der Schale (erkennbar an der typischen "Rosette"), dann tiefer ins Fruchtfleisch. Befallene Früchte fallen meist im Juni ab — zusammen mit dem natürlichen Junifruchtfall, weshalb der Befall oft nicht erkannt wird. Ein typisches Erkennungsmerkmal: die abgefallenen Früchte riechen intensiv nach Wanzen oder Stinkkäfer. Weiße Leimtafeln direkt nach der Blüte fangen die noch nicht eiablegenden Wespen effektiv ab.',
        vorbeugung: ['Weiße Leimtafeln direkt nach der Blüte aufhängen (weiß — nicht gelb!)','Boden unter dem Baum im Herbst und Frühjahr hacken (Puppen vernichten)','Nützlinge fördern (Laufkäfer fressen Puppen im Boden)'],
        behandlung: ['Frühzeitig abgefallene Früchte sofort aufsammeln und vernichten','Boden lockern damit Puppen freigelegt werden','Im nächsten Jahr Leimtafeln früher aufhängen']
    },
    feuerbrand: {
        name: 'Feuerbrand (Erwinia amylovora)',
        gefahr: 'hoch',
        saison: 'April – Juni (Infektion während Blüte)',
        desc: '&#x26a0; Meldepflichtige Bakterienkrankheit! Triebe welken rasch und biegen sich hakenförmig um. Blätter bleiben braun hängen wie verbrannt.',
        details: 'Feuerbrand ist die gefährlichste Bakterienkrankheit an Kernobst und in Deutschland und Österreich meldepflichtig. Das Bakterium Erwinia amylovora infiziert bevorzugt während der Blüte über Nektarien — Insekten, Regen und Wind verbreiten es. Charakteristisch ist das schnelle Welken von Trieben, die sich hakenförmig umbiegen und deren Blätter braun an der Pflanze hängen bleiben — wie verbrannt, daher der Name. Bei warmem Wetter (über 18 °C) und Feuchtigkeit kann die Krankheit sich innerhalb weniger Tage von befallenen Trieben auf den gesamten Baum ausbreiten. Arbeitsgeräte müssen nach jedem Schnitt in 70%igem Alkohol oder 10%iger Bleichlösung desinfiziert werden — das Bakterium verbreitet sich sonst mit jedem Schnitt weiter. Das zuständige Pflanzenschutzamt muss informiert werden.',
        vorbeugung: ['Resistente Sorten wählen (Topaz, Rewena, Pinova)','Arbeitsgeräte nach jedem Schnitt desinfizieren (70% Alkohol)','Keine Stickstoffüberdüngung (weiche Triebe sind anfälliger)','Während der Blüte keine Zuckerlösungen anbieten (lockt übertragende Insekten)'],
        behandlung: ['Befallene Triebe 50 cm ins gesunde Holz zurückschneiden — nach JEDEM Schnitt desinfizieren','Schnittgut sofort verbrennen — nicht kompostieren, nicht liegenlassen','Behörde/Pflanzenschutzamt informieren (gesetzliche Meldepflicht in DE und AT)','Kein Regen oder Bewässerung auf Blätter während Behandlung']
    },
    monilia_bl: {
        name: 'Monilia-Spitzendürre (Monilinia laxa)',
        gefahr: 'hoch',
        saison: 'März – Mai (Blütezeit)',
        desc: 'Pilz infiziert während der Blüte. Blüten welken, Pilz wandert in den Trieb. Vor allem bei Kirsche, Pflaume und Pfirsich. Feuchte, kühle Blütezeit erhöht das Risiko deutlich.',
        details: 'Monilia-Spitzendürre ist für Steinobst (Kirsche, Pflaume, Pfirsich, Aprikose) das was Monilia-Fruchtfäule für Kernobst ist — die häufigste und gefährlichste Pilzkrankheit. Der Pilz Monilinia laxa infiziert ausschließlich über die offenen Blüten, dringt in den Blütenstiel ein und wächst von dort in den Trieb. Befallene Blüten welken und sterben ab, braune Sporen bilden sich auf den toten Teilen. Innerhalb weniger Tage stirbt der gesamte Trieb ab — typisch ist die scharfe Grenze zwischen dem braunen toten und dem gesunden grünen Teil. In einem feuchten, kühlen Frühjahr kann ein ganzer Baum innerhalb von zwei Wochen seine gesamten Blüten verlieren. Konsequentes Herausschneiden befallener Teile und gute Kronenbelüftung sind die wichtigsten Gegenmaßnahmen.',
        vorbeugung: ['Schachtelhalmbrühe eine Woche vor der erwarteten Blüte','Belüftete Krone durch regelmäßigen Winterschnitt — enge Kronenteile begünstigen Feuchte','Kein Wasserstress kurz vor und während der Blüte'],
        behandlung: ['Befallene Triebe 15–20 cm ins gesunde Holz zurückschneiden','Schnittgut sofort verbrennen','Wunden mit Baumwachs versiegeln','Schnittgut nie in der Nähe des Baumes liegen lassen']
    },
    gespinst: {
        name: 'Gespinstmotten (Yponomeuta spec.)',
        gefahr: 'mittel',
        saison: 'Mai – Juli',
        desc: 'Raupen spinnen großflächige Gespinste und fressen Blätter komplett kahl. Sieht dramatisch aus, ist aber selten tödlich — Bäume treiben in der Regel wieder aus.',
        details: 'Gespinstmotten sind kleine Schmetterlinge, deren Raupen in großen Gruppen unter schützenden Gespinsten leben und Blätter skelettieren. Je nach Art befallen sie Apfelbäume (Apfelgespinstmotte), Vogelbeere oder Pfaffenhütchen. Ein stark befallener Baum kann komplett kahl und in weißes Gespinst gehüllt sein — ein dramatischer Anblick, der häufig Panik auslöst. Tatsächlich ist der Schaden für gesunde Bäume meist nicht dauerhaft: sie treiben in der Regel noch im selben Sommer wieder aus. Schwächer oder vorbelastete Bäume können dauerhaft Schaden nehmen. Die Gespinste schützen die Raupen vor Spritzungen, weshalb mechanisches Entfernen oft wirksamer ist als chemische Bekämpfung.',
        vorbeugung: ['Leimring verhindert Weibchen beim Hochklettern zur Eiablage','Nützlinge aktiv fördern: Vögel, Schlupfwespen, Laufkäfer','Keine Breitbandinsektizide (töten auch Nützlinge)'],
        behandlung: ['Gespinste morgens früh abschneiden und sofort verbrennen (Raupen noch drin)','Bt-Spritzung (Bacillus thuringiensis) — biologisch, wirkt gegen Raupen ohne Nützlinge zu schädigen','Baum nach dem Befall gut wässern und düngen für den Neuaustrieb','Keine Panik — der Baum erholt sich in der Regel vollständig']
    },
    blutlaus: {
        name: 'Blutlaus (Eriosoma lanigerum)',
        gefahr: 'mittel',
        saison: 'April – Oktober, Hauptbefall Mai – August',
        desc: 'Baumwollartiger weißer Belag mit roter Farbe beim Zerdrücken. Sitzt an Schnittwunden und Astgabeln. Schwächt den Baum langfristig und bildet Wucherungen.',
        details: 'Die Blutlaus ist eine aus Nordamerika eingeschleppte Läuseart, die an Schnittwunden, Rindenrissen und Astgabeln von Apfelbäumen siedelt. Der wollbauschige weiße Belag ist ihr Schutzwachs — beim Zerdrücken färbt er sich blutrot, daher der Name. Die Läuse saugen Pflanzensaft aus der Rinde und verursachen krebsartige Wucherungen am Holz, die den Wasserfluss behindern. Bei starkem Befall über Jahre können Äste absterben. Glücklicherweise gibt es eine sehr wirksame natürliche Gegenspielerin: die Schlupfwespe Aphelinus mali, die sich von selbst ansiedelt wenn keine Breitbandpestizide eingesetzt werden. Blutlaus-resistente Unterlagen (MM 106) sind die langfristig beste Lösung.',
        vorbeugung: ['Glatte, saubere Schnittwunden anlegen und sofort mit Baumwachs versiegeln','Blutlaus-resistente Unterlagen bei Neupflanzung wählen (MM 106, M 9)','Auf Pestizide verzichten — Schlupfwespe Aphelinus mali reguliert Befall natürlich'],
        behandlung: ['Kolonien mit harter Bürste und Seifenwasser mechanisch abwaschen','Raubwanze Anthocoris nemoralis als natürlicher Feind fördern','Schlupfwespe Aphelinus mali siedelt sich bei pestizidfreiem Anbau von selbst an','Stark befallene Wucherungen herausschneiden und Wunden versiegeln']
    },
    krebs: {
        name: 'Obstbaumkrebs (Neonectria ditissima)',
        gefahr: 'hoch',
        saison: 'Ganzjährig sichtbar, Infektion v.a. Herbst/Winter',
        desc: 'Pilz befällt Wunden und Astgabeln, tötet Rinde ringförmig ab. Befallene Äste sterben ab. Feuchte Lagen mit schweren Böden besonders gefährdet.',
        details: 'Obstbaumkrebs wird durch den Pilz Neonectria ditissima (früher Nectria galligena) verursacht und befällt vor allem Apfel- und Birnbäume. Der Pilz dringt über Schnittwunden, Frostplatzer, Blattnarben und andere Verletzungen ein. Er wächst langsam, tötet aber die Rinde ringförmig ab — der Ast stirbt oberhalb der Krebsstelle ab. Typisch sind eingesunkene, rissige Wundstellen mit abblätternder Rinde und im Herbst kleine orangerote Sporenlager. Feuchte Standorte, schwere Böden und hohe Stickstoffdüngung begünstigen den Befall. Der wichtigste Schutz ist das sofortige Versiegeln jeder Schnittwunde mit Baumwachs — jede offene Wunde ist eine Eintrittspforte.',
        vorbeugung: ['Alle Schnitte sofort und vollständig mit Baumwachs versiegeln','Wasserschosse entfernen — sie reißen beim Abbrechen die Rinde auf','Gut entwässerte, nicht zu feuchte Standorte wählen','Keine Überdüngung mit Stickstoff'],
        behandlung: ['Krebsstellen großzügig bis tief ins gesunde Holz herausschneiden','Alle Schnittwunden sofort mit Baumwachs versiegeln','Schnittgut verbrennen — Sporen übertragen sich sonst','Bei starkem Befall gesamten Ast entfernen']
    },
    obstbaumk: {
        name: 'Frostschäden / Sonnenbrand',
        gefahr: 'mittel',
        saison: 'Frostplatzer: Dezember – März / Sonnenbrand: März – April',
        desc: 'Keine Krankheit, sondern physiologischer Schaden. Frostplatzer entstehen durch wechselnde Temperaturen am Stamm. Sonnenbrand trifft Südseiten nach starkem Rückschnitt.',
        details: 'Frostschäden an Obstbäumen entstehen nicht durch Kälte allein, sondern durch Temperaturwechsel: An sonnigen Wintertagen erwärmt sich die südexponierte Stammseite auf über 10 °C, das Gewebe wird aktiv — nachts friert es wieder auf -10 °C. Dieses Auftauen und Wiedergefrieren zerstört die Rindenzellen und führt zu den typischen Längsrissen. Junge Bäume sind besonders gefährdet, weil ihre Rinde noch dünn ist. Baumweißung reflektiert die Sonnenstrahlung und verhindert die starke Erwärmung tagsüber — eine einfache und sehr wirksame Maßnahme. Sonnenbrand entsteht wenn nach einem starken Rückschnitt plötzlich bisher beschattete Rindenflächen direktem Sonnenlicht ausgesetzt werden.',
        vorbeugung: ['Baumweißung (Weißkalk + Wasser) auf Stamm und Äste im November/Dezember','Junge Bäume mit Juteband oder Vlies einwickeln','Keine starken Schnitte im Spätherbst — besser im Februar/März','Dunkle Baumscheibe reflektiert weniger Wärme auf den Stamm'],
        behandlung: ['Risse mit Baumwachs versiegeln bevor Pilze eindringen','Baumweißung erneuern','Rissige Stellen regelmäßig auf Obstbaumkrebs kontrollieren — Frost öffnet die Eintrittspforte']
    },
    pilz_rinde: {
        name: 'Gummifluss / Pilzkonsolen',
        gefahr: 'mittel',
        saison: 'Gummifluss: Mai – September / Pilzkonsolen: ganzjährig',
        desc: 'Gummifluss ist oft Reaktion auf Stress. Pilzkonsolen zeigen meist bereits fortgeschrittene Holzfäule — dann ist der Baum stark geschädigt.',
        details: 'Gummifluss ist keine eigenständige Krankheit, sondern eine Reaktion des Baumes auf verschiedene Stressfaktoren: Trockenheit, Staunässe, Pilzbefall, Schädlingsschäden oder mechanische Verletzungen. Das gummiartige Sekret (Gummi) ist ein Abwehrmechanismus, der Wunden versiegeln soll. Bei Steinobst (Kirsche, Pflaume, Pfirsich) tritt Gummifluss häufiger auf als bei Kernobst. Die Ursache muss gesucht und behoben werden — der Gummifluss selbst ist nur ein Symptom. Pilzkonsolen hingegen zeigen aktive Holzfäule an: der Pilz baut das Holz im Inneren ab und produziert die sichtbaren Fruchtkörper erst wenn das Holz bereits massiv geschädigt ist. Standfestigkeit prüfen ist wichtig.',
        vorbeugung: ['Alle Wunden sofort versiegeln','Gleichmäßige Bewässerung ohne Staunässe','Keine Verletzungen durch Rasenmäher, Pfähle oder Werkzeug am Stamm'],
        behandlung: ['Gummifluss: Ursache suchen (Trockenheit? Pilz? Schädling?) und beheben','Pilzkonsolen: Standfestigkeit des Baumes von Fachmann prüfen lassen — Sturmgefahr!','Befallenes Holz verbrennen — Pilzsporen sind hartnäckig','Stark befallene Bäume fällen bevor sie zur Gefahr werden']
    },
    borkenkaefer: {
        name: 'Borkenkäfer (Scolytidae)',
        gefahr: 'hoch',
        saison: 'April – August (Schwärmzeit)',
        desc: 'Befallen meist bereits geschwächte oder sterbende Bäume. Bohrlöcher mit Sägemehl und sternförmige Gänge unter der Rinde. Stark befallene Bäume kaum zu retten.',
        details: 'Borkenkäfer sind in erster Linie Sekundärschädlinge — sie befallen bevorzugt bereits geschwächte, gestresste oder sterbende Bäume. Gesunde, vitale Obstbäume können sich durch Harzfluss gegen eindringende Käfer wehren. Charakteristisch sind kleine runde Bohrlöcher mit feinem Sägemehl (Bohrmehl) am Stammfuß oder an Ästen. Unter der Rinde legen Weibchen einen Muttergang an, von dem sternförmig Larvengänge abzweigen — beim Abnehmen der Rinde ist dieses typische Muster zu sehen. Bei starkem Befall kann ein Baum innerhalb weniger Wochen komplett absterben. Wichtigste Maßnahme: befallenes Holz sofort und vollständig entfernen und verbrennen, bevor neue Käfer ausschlüpfen.',
        vorbeugung: ['Baum durch ausreichende Wasserversorgung und organische Düngung vital halten','Kein stehendes oder liegendes Totholz in der Nähe','Frühzeitig eingreifen bei ersten Anzeichen von Vitalitätsverlust'],
        behandlung: ['Stark befallene Äste sofort entfernen und verbrennen — vor dem Ausschlüpfen neuer Käfer','Baum auf Vitalität prüfen: lohnt sich die Pflege noch?','Nematoden haben begrenzte Wirkung gegen Borkenkäfer','Nachbarbäume auf Befall prüfen und vitalisieren']
    },
    flechten: {
        name: 'Flechten und Moos (harmlos)',
        gefahr: 'niedrig',
        desc: 'Flechten sind keine Parasiten — sie leben nur auf der Rinde, nicht davon. Ihr Auftreten zeigt gute Luftqualität an. Aber: Starker Bewuchs kann Schädlinge beherbergen und Rindenschäden verdecken.',
        vorbeugung: ['Ausreichende Belichtung der Krone','Lebendiger, gut versorgter Baum wächst schneller als Flechten'],
        behandlung: ['Kein Handlungsbedarf bei gesundem Baum','Bei sehr dichtem Bewuchs: mit Drahtbürste abbürsten und kalken','Rinde darunter auf Schäden prüfen']
    }
};

var GEFAHR_LABEL = {hoch:'&#x26a0; Hohe Dringlichkeit', mittel:'◎ Mittlere Dringlichkeit', niedrig:'✓ Geringe Dringlichkeit'};

// ── BILDER ── URLs hier eintragen sobald Illustrationen fertig sind ──
// Pfad-Empfehlung: /wp-content/themes/selbstversorgen-theme/assets/img/diagnose/
var BILDER = {
    schorf_bl:   '/wp-content/themes/selbstversorgen-theme/assets/img/diagnose/apfelschorf.png',   // Apfelschorf Blattbefall
    schorf_fr:   '/wp-content/themes/selbstversorgen-theme/assets/img/diagnose/apfelschorf.png',   // Apfelschorf Fruchtbefall
    mehltau_bl:  '/wp-content/themes/selbstversorgen-theme/assets/img/diagnose/mehltau.png',   // Echter Mehltau
    kringelkr:   '/wp-content/themes/selbstversorgen-theme/assets/img/diagnose/kraeuselkrankheit.png',   // KrÃ¤uselkrankheit Pfirsich
    monilia_fr:  '/wp-content/themes/selbstversorgen-theme/assets/img/diagnose/monilia-fruchtfaeule.png',   // Monilia FruchtfÃ¤ule
    monilia_bl:  '/wp-content/themes/selbstversorgen-theme/assets/img/diagnose/feuerbrand.png',   // Monilia SpitzendÃ¼rre
    feuerbrand:  '/wp-content/themes/selbstversorgen-theme/assets/img/diagnose/feuerbrand.png',   // Feuerbrand
    apfelwickl:  '/wp-content/themes/selbstversorgen-theme/assets/img/diagnose/apfelwickler.png',   // Apfelwickler
    kirschfl:    '/wp-content/themes/selbstversorgen-theme/assets/img/diagnose/kirschfruchtfliege.png',   // Kirschfruchtfliege
    blaettlaus:  '/wp-content/themes/selbstversorgen-theme/assets/img/diagnose/blattlaeuse.png',   // BlattlÃ¤use
    krebs:       '/wp-content/themes/selbstversorgen-theme/assets/img/diagnose/obstbaumkrebs.png',   // Obstbaumkrebs
};

var auswahl = {baum: null, bereich: null, symptom: null};

window.svOBD = {

    setze: function(typ, wert, el){
        auswahl[typ] = wert;
        var opts = el.closest('.sv-obd-opts').querySelectorAll('.sv-obd-opt');
        opts.forEach(function(b){ b.classList.remove('gewaehlt'); });
        el.classList.add('gewaehlt');

        if (typ === 'baum') {
            setTimeout(function(){ svOBD.zeige(2); }, 220);
        } else if (typ === 'bereich') {
            svOBD.bausymptome(wert);
            setTimeout(function(){ svOBD.zeige(3); }, 220);
        } else if (typ === 'symptom') {
            auswahl.symptom = wert;
            setTimeout(function(){ svOBD.diagnose(); svOBD.zeige(4); }, 220);
        }
    },

    zeige: function(nr){
        for (var i = 1; i <= 4; i++){
            document.getElementById('sv-obd-screen' + i).classList.remove('aktiv');
            var s = document.getElementById('sv-obd-s' + i);
            s.classList.remove('aktiv','fertig');
            if (i < nr) s.classList.add('fertig');
        }
        document.getElementById('sv-obd-screen' + nr).classList.add('aktiv');
        document.getElementById('sv-obd-s' + nr).classList.add('aktiv');
        document.getElementById('sv-obd').scrollIntoView({behavior:'smooth', block:'nearest'});
    },

    bausymptome: function(bereich){
        var data = SYMPTOME[bereich];
        document.getElementById('sv-obd-symptom-frage').textContent = data.frage;
        var html = '';
        data.opts.forEach(function(o){
            html += '<button class="sv-obd-opt" onclick="svOBD.setze(\'symptom\',\'' + o.key + '\',this)">'
                + '<span class="emo">' + o.emo + '</span>'
                + '<span class="opt-label">' + o.label + '</span>'
                + '<span class="opt-sub">' + o.sub + '</span>'
                + '</button>';
        });
        document.getElementById('sv-obd-symptom-opts').innerHTML = html;
    },

    diagnose: function(){
        var key = auswahl.symptom;
        var d   = DIAGNOSEN[key];
        if (!d) return;

        var gClass = 'gefahr-' + d.gefahr;
        var gLabel = GEFAHR_LABEL[d.gefahr];

        var vor  = d.vorbeugung.map(function(v){ return '<li>' + v + '</li>'; }).join('');
        var beh  = d.behandlung.map(function(v){ return '<li>' + v + '</li>'; }).join('');

        var bildUrl = BILDER[key] || '';
        var bildHtml = bildUrl
            ? '<img decoding="async" src="' + bildUrl + '" alt="' + d.name + '" class="sv-obd-d-bild">'
            : '';

        var saisonHtml = d.saison
            ? '<div class="sv-obd-saison">&#x1f5d3; <strong>Typische Saison:</strong> ' + d.saison + '</div>'
            : '';
        var detailsHtml = d.details
            ? '<div class="sv-obd-details">' + d.details + '</div>'
            : '';

        var html = '<div class="sv-obd-diagnose">'
            + '<div class="sv-obd-d-eyebrow">Diagnose · ' + svOBD.baumname() + '</div>'
            + '<div class="sv-obd-d-name">' + d.name + '</div>'
            + '<span class="sv-obd-gefahr ' + gClass + '">' + gLabel + '</span>'
            + saisonHtml
            + bildHtml
            + '<p class="sv-obd-d-desc">' + d.desc + '</p>'
            + detailsHtml
            + '</div>'
            + '<div class="sv-obd-cols">'
            + '<div class="sv-obd-box"><h4>Vorbeugung</h4><ul>' + vor + '</ul></div>'
            + '<div class="sv-obd-box"><h4>Sofortmaßnahmen</h4><ul>' + beh + '</ul></div>'
            + '</div>'
            + '<div class="sv-aff" id="sv-obd-aff"></div>'
            + '<button class="sv-obd-reset" onclick="svOBD.reset()">← Neue Diagnose starten</button>'
            + '<p class="sv-obd-hinweis">&#x2139; Diese Diagnose ersetzt keine Fachberatung. Bei Verdacht auf Feuerbrand (Meldepflicht) bitte sofort das zuständige Pflanzenschutzamt kontaktieren.</p>';

        var res = document.getElementById('sv-obd-result');
        res.innerHTML = html;
        res.style.display = 'block';

        var kurz = d.name.split(' (')[0];
        if (window.svToolAff) window.svToolAff.render('sv_obstbaum_diagnose', 'diagnose:' + key, 'sv-obd-aff', 'Das hilft gegen ' + kurz);
    },

    baumname: function(){
        var n = {apfel:'Apfelbaum', kirsche:'Kirschbaum', pflaume:'Pflaume/Zwetschge', pfirsich:'Pfirsich/Aprikose'};
        return n[auswahl.baum] || 'Obstbaum';
    },

    reset: function(){
        auswahl = {baum: null, bereich: null, symptom: null};
        document.querySelectorAll('#sv-obd .sv-obd-opt').forEach(function(b){ b.classList.remove('gewaehlt'); });
        document.getElementById('sv-obd-result').style.display = 'none';
        svOBD.zeige(1);
        for (var i = 1; i <= 4; i++){
            var s = document.getElementById('sv-obd-s' + i);
            s.classList.remove('aktiv','fertig');
        }
        document.getElementById('sv-obd-s1').classList.add('aktiv');
    }
};

})();
</script>
</div>




<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Gewächshaus-Planer</title>
		<link>https://selbstversorgen.com/tools/gewaechshaus-planer/</link>
		
		<dc:creator><![CDATA[Mark]]></dc:creator>
		<pubDate>Mon, 01 Jun 2026 10:57:36 +0000</pubDate>
				<guid isPermaLink="false">https://selbstversorgen.com/?post_type=sv_tool&#038;p=944</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[<div id="sv-gwp" class="sv-tool-wrap">
<style>
#sv-gwp{font-family:"DM Sans",sans-serif;color:var(--ink,#1a1814)}
#sv-gwp select,#sv-gwp button{font-family:inherit}
#sv-gwp .sv-gwp-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:24px}
@media(max-width:600px){#sv-gwp .sv-gwp-grid{grid-template-columns:1fr}}
#sv-gwp label.sv-lbl{font-size:12px;color:var(--ink-mute,#6b6555);display:block;margin-bottom:5px}
#sv-gwp select{width:100%;padding:8px 10px;border:1px solid var(--line,#d6cab1);border-radius:5px;font-size:13px;background:var(--paper,#f3ecdc);color:var(--ink,#1a1814)}
#sv-gwp .sv-gwp-goals{display:flex;flex-wrap:wrap;gap:8px}
#sv-gwp .sv-goal-btn{padding:6px 14px;border-radius:999px;font-size:12px;border:1px solid var(--line,#d6cab1);background:var(--paper,#f3ecdc);color:var(--ink-mute,#6b6555);cursor:pointer;transition:all .15s}
#sv-gwp .sv-goal-btn.aktiv{background:var(--forest,#1a3a2a);color:var(--paper,#f3ecdc);border-color:var(--forest,#1a3a2a)}
#sv-gwp .sv-gwp-btn{display:inline-block;margin-top:20px;padding:11px 26px;background:var(--forest,#1a3a2a);color:var(--paper,#f3ecdc);border:0;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:background .2s}
#sv-gwp .sv-gwp-btn:hover{background:#2d5a3d}
#sv-gwp .sv-gwp-result{display:none;margin-top:28px;border-top:1px solid var(--line,#d6cab1);padding-top:24px}
#sv-gwp .sv-gwp-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-bottom:20px}
#sv-gwp .sv-gwp-metric{background:var(--paper-2,#ebe2cd);border-radius:6px;padding:10px 14px;text-align:center}
#sv-gwp .sv-gwp-metric .val{font-family:"Playfair Display",serif;font-size:22px;font-weight:600;color:var(--forest,#1a3a2a)}
#sv-gwp .sv-gwp-metric .lbl{font-size:10px;color:var(--ink-mute,#6b6555);font-family:"DM Mono",monospace;text-transform:uppercase;letter-spacing:.08em;margin-top:2px}
#sv-gwp .sv-gwp-konzept{background:var(--paper,#f3ecdc);border:2px solid var(--forest,#1a3a2a);border-radius:8px;padding:16px 20px;margin-bottom:16px}
#sv-gwp .sv-gwp-konzept .k-eyebrow{font-family:"DM Mono",monospace;font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:var(--amber,#c08a2a);margin-bottom:4px}
#sv-gwp .sv-gwp-konzept .k-name{font-family:"Playfair Display",serif;font-size:18px;font-weight:600;color:var(--forest,#1a3a2a);margin-bottom:6px}
#sv-gwp .sv-gwp-konzept .k-desc{font-size:13px;color:var(--ink-mute,#6b6555);line-height:1.6}
#sv-gwp .sv-gwp-cols{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px}
@media(max-width:600px){#sv-gwp .sv-gwp-cols{grid-template-columns:1fr}}
#sv-gwp .sv-gwp-box{background:var(--card,#faf5e8);border:1px solid var(--line,#d6cab1);border-radius:8px;padding:14px 16px}
#sv-gwp .sv-gwp-box h4{font-size:13px;font-weight:600;color:var(--ink,#1a1814);margin:0 0 10px}
#sv-gwp .sv-gwp-box p{font-size:12px;color:var(--ink-mute,#6b6555);line-height:1.7;margin:0}
#sv-gwp .sv-gwp-chart-wrap{background:var(--paper-2,#ebe2cd);border-radius:8px;padding:14px 16px}
#sv-gwp .sv-gwp-chart-wrap h4{font-size:13px;font-weight:600;color:var(--ink,#1a1814);margin:0 0 10px}
#sv-gwp .sv-gwp-bars{display:flex;align-items:flex-end;gap:3px;height:100px}
#sv-gwp .sv-gwp-bar-wrap{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px}
#sv-gwp .sv-gwp-bar{width:100%;border-radius:3px 3px 0 0;transition:height .4s ease;min-height:3px}
#sv-gwp .sv-gwp-bar-lbl{font-size:9px;color:var(--ink-mute,#6b6555);font-family:"DM Mono",monospace}
#sv-gwp .sv-gwp-hinweis{font-size:11px;color:var(--ink-mute,#6b6555);margin-top:16px;padding:10px 14px;background:var(--paper-2,#ebe2cd);border-radius:5px}
</style>

<!-- Eingaben -->
<div class="sv-gwp-grid">
    <div>
        <label class="sv-lbl">Familiengröße</label>
        <select id="sv-gwp-family">
            <option value="1">1 Person</option>
            <option value="2" selected>2 Personen</option>
            <option value="3">3 Personen</option>
            <option value="4">4 Personen</option>
            <option value="5">5+ Personen</option>
        </select>
    </div>
    <div>
        <label class="sv-lbl">Verfügbare Fläche</label>
        <select id="sv-gwp-area">
            <option value="15">bis 15 m²</option>
            <option value="30" selected>15–30 m²</option>
            <option value="60">30–60 m²</option>
            <option value="100">60–100 m²</option>
            <option value="150">100–200 m²</option>
            <option value="250">über 200 m²</option>
        </select>
    </div>
    <div>
        <label class="sv-lbl">Budget (einmalig)</label>
        <select id="sv-gwp-budget">
            <option value="1500">bis 1.500 €</option>
            <option value="5000" selected>1.500–5.000 €</option>
            <option value="15000">5.000–15.000 €</option>
            <option value="40000">15.000–40.000 €</option>
        </select>
    </div>
    <div>
        <label class="sv-lbl">Klima / Standort</label>
        <select id="sv-gwp-climate">
            <option value="mild">Mild (Rheinland, Bodensee)</option>
            <option value="normal" selected>Gemäßigt (Bayern, Österreich)</option>
            <option value="kalt">Kalt (Alpen, Norddeutschland)</option>
        </select>
    </div>
</div>

<div style="margin-bottom:20px">
    <label class="sv-lbl" style="margin-bottom:8px">Ziele — mehrere möglich</label>
    <div class="sv-gwp-goals">
        <button class="sv-goal-btn aktiv" data-goal="salat">Salat &amp; Kräuter</button>
        <button class="sv-goal-btn aktiv" data-goal="tomaten">Tomaten &amp; Paprika</button>
        <button class="sv-goal-btn" data-goal="winter">Ganzjährig ernten</button>
        <button class="sv-goal-btn" data-goal="kalorien">Kalorien / Vorrat</button>
        <button class="sv-goal-btn" data-goal="protein">Protein &amp; Aquaponik</button>
    </div>
</div>

<button class="sv-gwp-btn" onclick="svGWP.calculate()">Empfehlung berechnen →</button>

<!-- Ergebnis -->
<div class="sv-gwp-result" id="sv-gwp-result">

    <div class="sv-gwp-metrics" id="sv-gwp-metrics"></div>

    <div class="sv-gwp-konzept">
        <div class="k-eyebrow">Empfohlenes Konzept</div>
        <div class="k-name" id="sv-gwp-k-name"></div>
        <div class="k-desc" id="sv-gwp-k-desc"></div>
    </div>

    <div class="sv-gwp-cols">
        <div class="sv-gwp-box">
            <h4>Empfohlene Kulturen</h4>
            <p id="sv-gwp-kulturen"></p>
        </div>
        <div class="sv-gwp-box">
            <h4>Nächste Schritte</h4>
            <p id="sv-gwp-schritte"></p>
        </div>
    </div>

    <div class="sv-gwp-chart-wrap">
        <h4>Ernte-Prognose übers Jahr</h4>
        <div class="sv-gwp-bars" id="sv-gwp-bars"></div>
    </div>

    <p class="sv-gwp-hinweis">
        <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2139.png" alt="ℹ" class="wp-smiley" style="height: 1em; max-height: 1em;" data-neo-global--processed-neo-rename="true" /> Die Prognose zeigt relative Erntemengen — nicht absolute Kilogramm. Basis: optimal besetztes Gewächshaus, samenfeste Wintersorten nach Coleman-Methode. Trockenheitsresistente Sorten aus dem Arboretum von Huber Kálmán (Treemail) verbessern die Ergebnisse bei Hitze zusätzlich.
    </p>
</div>

<script>
(function(){

document.querySelectorAll('#sv-gwp .sv-goal-btn').forEach(function(btn){
    btn.addEventListener('click', function(){
        this.classList.toggle('aktiv');
    });
});

window.svGWP = {
    calculate: function(){
        var family  = parseInt(document.getElementById('sv-gwp-family').value);
        var area    = parseInt(document.getElementById('sv-gwp-area').value);
        var budget  = parseInt(document.getElementById('sv-gwp-budget').value);
        var climate = document.getElementById('sv-gwp-climate').value;
        var goals   = [];
        document.querySelectorAll('#sv-gwp .sv-goal-btn.aktiv').forEach(function(b){ goals.push(b.dataset.goal); });

        var wWinter   = goals.indexOf('winter')   !== -1;
        var wKalorien = goals.indexOf('kalorien') !== -1;
        var wProtein  = goals.indexOf('protein')  !== -1;

        var konzept, desc, kosten, ernte_pct, harvest_months;

        if ( budget <= 1500 || area <= 30 ) {
            konzept = 'Folientunnel (Eigenbau)';
            desc    = 'Der günstigste Einstieg. Stahlbögen + doppelte Folie, kein Fundament nötig. Nach der Eliot-Coleman-Methode auch im Winter erntbar — Feldsalat, Spinat und Asiasalate wachsen bei Frost weiter.';
            kosten  = Math.min(budget, 1500);
            ernte_pct = wWinter ? 75 : 55;
            harvest_months = wWinter ? 11 : 8;
        } else if ( wProtein && budget >= 15000 && area >= 60 ) {
            konzept = 'Aquaponisches Gewächshaus';
            desc    = 'Gemüse und Fisch im geschlossenen Kreislauf. Fischabfall düngt Pflanzen, Pflanzen reinigen das Wasser. Deckt auch den Proteinbedarf der Familie. Höchste Effizienz, höchster Planungsaufwand.';
            kosten  = Math.min(budget, 25000);
            ernte_pct = 100;
            harvest_months = 12;
        } else if ( budget >= 8000 && area >= 60 && (wWinter || wKalorien) ) {
            konzept = 'Walipini — erdversunkenes Gewächshaus';
            desc    = 'Das Gewächshaus wird 1,5–2 m in den Boden eingegraben. Die Erdmassen isolieren: selbst bei -15 °C draußen bleibt es drinnen über dem Gefrierpunkt — ohne Heizung. Einmalige Investition, danach nahezu keine Betriebskosten.';
            kosten  = Math.min(budget, 12000);
            ernte_pct = 95;
            harvest_months = 12;
        } else if ( budget >= 5000 && area >= 60 ) {
            konzept = 'Solargarten-Haus (Chinesisches Prinzip)';
            desc    = 'Drei massive Wände aus Lehm oder Beton speichern Sonnenwärme des Tages und geben sie nachts ab. Die Südseite ist vollverglast. In China ernähren diese Häuser ganze Familien — in Deutschland funktioniert das ohne Zusatzheizung.';
            kosten  = Math.min(budget, 18000);
            ernte_pct = wWinter ? 95 : 85;
            harvest_months = 12;
        } else {
            konzept = 'Glasgewächshaus (kalt, ungeheizt)';
            desc    = 'Robuster als Folientunnel, bessere Temperaturpufferung. Mit winterharten Sorten und einfacher Innenisolierung (Blasenfolie) ganzjährig nutzbar. Ideal als zweiter Schritt nach dem Folientunnel.';
            kosten  = Math.min(budget, 5000);
            ernte_pct = wWinter ? 85 : 70;
            harvest_months = wWinter ? 12 : 9;
        }

        var area_pp   = Math.round(area / family);
        var coverage  = Math.min(100, Math.round(ernte_pct * (area / (family * 28))));

        // Metriken
        var metrics = [
            ['Gemüse-Deckung', Math.min(100, coverage) + ' %'],
            ['Erntemonate', harvest_months + ' / 12'],
            ['Fläche/Person', area_pp + ' m²'],
            ['Investition', kosten.toLocaleString('de-DE') + ' €'],
        ];
        var mhtml = '';
        metrics.forEach(function(m){
            mhtml += '<div class="sv-gwp-metric"><div class="val">' + m[1] + '</div><div class="lbl">' + m[0] + '</div></div>';
        });
        document.getElementById('sv-gwp-metrics').innerHTML = mhtml;

        document.getElementById('sv-gwp-k-name').textContent = konzept;
        document.getElementById('sv-gwp-k-desc').textContent = desc;

        // Kulturen
        var kul = [];
        if ( goals.indexOf('salat') !== -1 || wWinter ) {
            kul.push('Feldsalat, Asiasalate, Spinat');
            kul.push('Petersilie, Basilikum, Schnittlauch');
            kul.push('Mangold, Rucola, Postelein');
        }
        if ( goals.indexOf('tomaten') !== -1 ) {
            kul.push('Rispentomaten, Fleischtomaten');
            kul.push('Paprika, Chili, Aubergine');
            kul.push('Gurken, Zucchini (Voranzucht)');
        }
        if ( wKalorien ) {
            kul.push('Süßkartoffeln (Kalorienlieferant)');
            kul.push('Buschbohnen zum Trocknen');
            kul.push('Winterkarotten im Boden lagern');
        }
        if ( wProtein ) {
            kul.push('Tilapia oder Karpfen (Aquaponik)');
            kul.push('Wasserlinsen als Proteinspeicher');
        }
        document.getElementById('sv-gwp-kulturen').innerHTML = kul.slice(0,8).map(function(k){ return '– ' + k; }).join('<br>');

        // Schritte
        var sch = [
            '1. Standort wählen: maximale Südausrichtung',
            wWinter ? '2. Im August mit Wintersorten starten' : '2. Folie / Glas ab April aufbauen',
            '3. Samenfeste Sorten kaufen (keine F1-Hybride)',
            area >= 60 ? '4. Regenwassernutzung am Dach einplanen' : '4. Tröpfchenbewässerung installieren',
            kosten > 5000 ? '5. Baugenehmigung prüfen (ab 20 m²)' : '5. Bis 20 m² in DE meist genehmigungsfrei',
            '6. Wurzelkeller für Lagerung anlegen',
        ];
        document.getElementById('sv-gwp-schritte').innerHTML = sch.join('<br>');

        // Balkendiagramm
        var basis = wWinter
            ? [20,28,50,75,90,95,100,100,92,78,55,32]
            : [4,5,22,62,85,95,100,100,88,62,22,6];
        var scaled = basis.map(function(v){ return Math.round(v * area / 80); });
        var maxV   = Math.max.apply(null, scaled);
        var monate = ['J','F','M','A','M','J','J','A','S','O','N','D'];
        var colors = scaled.map(function(v){
            if (v > maxV * 0.75) return 'var(--forest,#1a3a2a)';
            if (v > maxV * 0.35) return '#639922';
            return '#C0DD97';
        });
        var bhtml = '';
        for (var i = 0; i < 12; i++) {
            var h = maxV > 0 ? Math.round((scaled[i] / maxV) * 90) : 3;
            bhtml += '<div class="sv-gwp-bar-wrap">'
                + '<div class="sv-gwp-bar" style="height:' + Math.max(3,h) + 'px;background:' + colors[i] + '"></div>'
                + '<div class="sv-gwp-bar-lbl">' + monate[i] + '</div>'
                + '</div>';
        }
        document.getElementById('sv-gwp-bars').innerHTML = bhtml;

        var res = document.getElementById('sv-gwp-result');
        res.style.display = 'block';
        res.scrollIntoView({behavior:'smooth', block:'nearest'});
    }
};

})();
</script>
</div>

]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Mischkultur-Planer</title>
		<link>https://selbstversorgen.com/tools/mischkultur/</link>
		
		<dc:creator><![CDATA[Mark]]></dc:creator>
		<pubDate>Sun, 17 May 2026 06:24:31 +0000</pubDate>
				<guid isPermaLink="false">https://selbstversorgen.com/?post_type=sv_tool&#038;p=883</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[<div id="sv-misch" class="sv-tool-wrap">
<style>
#sv-misch{font-family:"DM Sans",sans-serif;color:var(--ink,#1a1814)}
#sv-misch .sv-mc-layout{display:grid;grid-template-columns:1fr;gap:20px}
@media(min-width:800px){#sv-misch .sv-mc-layout{grid-template-columns:280px 1fr}}
/* Pflanzen-Auswahl */
#sv-misch .sv-mc-panel{background:var(--card,#faf5e8);border:1px solid var(--line,#d6cab1);border-radius:8px;padding:16px}
#sv-misch .sv-mc-panel h3{font-family:"Playfair Display",serif;font-size:15px;color:var(--forest,#1a3a2a);margin:0 0 10px}
#sv-misch .sv-mc-search{width:100%;padding:8px 12px;border:1px solid var(--line,#d6cab1);border-radius:6px;font:inherit;font-size:13px;background:var(--paper,#f3ecdc);outline:none;box-sizing:border-box;margin-bottom:10px}
#sv-misch .sv-mc-search:focus{border-color:var(--forest,#1a3a2a)}
#sv-misch .sv-mc-kat-label{font-family:"DM Mono",monospace;font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute,#6b6555);padding:6px 0 3px;display:block}
#sv-misch .sv-mc-plant-btn{display:flex;align-items:center;gap:7px;width:100%;padding:7px 10px;border-radius:5px;border:1px solid transparent;background:transparent;font:inherit;font-size:13px;cursor:pointer;text-align:left;transition:all .12s}
#sv-misch .sv-mc-plant-btn:hover{background:var(--paper-2,#ebe2cd)}
#sv-misch .sv-mc-plant-btn.selected{background:var(--forest,#1a3a2a);color:var(--paper,#f3ecdc);border-color:var(--forest)}
#sv-misch .sv-mc-plant-btn .emo{font-size:16px;width:20px;text-align:center;flex-shrink:0}
#sv-misch .sv-mc-plant-btn .cnt{margin-left:auto;font-size:10px;font-family:"DM Mono",monospace;opacity:.6}
/* Hauptbereich */
#sv-misch .sv-mc-empty{padding:40px 20px;text-align:center;color:var(--ink-mute,#6b6555);font-size:14px}
#sv-misch .sv-mc-empty p{margin:6px 0}
/* Ausgewählte Pflanzen */
#sv-misch .sv-mc-selected-wrap{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}
#sv-misch .sv-mc-chip{display:inline-flex;align-items:center;gap:5px;padding:5px 10px 5px 8px;background:var(--forest,#1a3a2a);color:var(--paper,#f3ecdc);border-radius:999px;font-size:13px;border:0;cursor:pointer}
#sv-misch .sv-mc-chip:hover{background:#2d5a3d}
#sv-misch .sv-mc-chip .x{font-size:14px;opacity:.7;line-height:1}
/* Matrix */
#sv-misch .sv-mc-matrix-wrap{overflow-x:auto;margin-bottom:24px}
#sv-misch .sv-mc-matrix{border-collapse:collapse;font-size:12px;min-width:200px}
#sv-misch .sv-mc-matrix th{padding:6px 8px;background:var(--paper-2,#ebe2cd);font-weight:600;font-size:11px;white-space:nowrap;border:1px solid var(--line,#d6cab1)}
#sv-misch .sv-mc-matrix td{width:44px;height:44px;text-align:center;border:1px solid var(--line,#d6cab1);font-size:18px;cursor:default}
#sv-misch .sv-mc-matrix td.gut{background:#d1fae5}
#sv-misch .sv-mc-matrix td.schlecht{background:#fee2e2}
#sv-misch .sv-mc-matrix td.neutral{background:#f3f4f6}
#sv-misch .sv-mc-matrix td.self{background:var(--paper-2,#ebe2cd)}
#sv-misch .sv-mc-matrix .row-label{font-size:12px;font-weight:500;padding:6px 10px;white-space:nowrap;background:var(--paper-2,#ebe2cd);border:1px solid var(--line,#d6cab1)}
/* Empfehlungen */
#sv-misch .sv-mc-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
#sv-misch .sv-mc-card{background:var(--paper,#f3ecdc);border:1px solid var(--line,#d6cab1);border-radius:8px;padding:14px}
#sv-misch .sv-mc-card-title{display:flex;align-items:center;gap:6px;font-weight:600;font-size:14px;color:var(--forest,#1a3a2a);margin-bottom:10px}
#sv-misch .sv-mc-section-label{font-size:10px;font-family:"DM Mono",monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-mute,#6b6555);margin:8px 0 4px}
#sv-misch .sv-mc-tag{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:3px;font-size:12px;margin:2px}
#sv-misch .sv-mc-tag.gut{background:#d1fae5;color:#065f46}
#sv-misch .sv-mc-tag.schlecht{background:#fee2e2;color:#991b1b}
#sv-misch .sv-mc-hinweis{font-size:11px;color:var(--ink-mute,#6b6555);margin-top:6px;font-style:italic}
#sv-misch .sv-mc-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--ink-mute);margin-bottom:12px}
#sv-misch .sv-mc-legend span{display:flex;align-items:center;gap:4px}
#sv-misch .sv-mc-legend .dot{width:12px;height:12px;border-radius:2px;flex-shrink:0}
#sv-misch .sv-mc-section-head{font-family:"Playfair Display",serif;font-size:16px;font-weight:600;color:var(--forest);margin:20px 0 10px}
</style>

<div class="sv-mc-layout">

<!-- ─── PFLANZEN-AUSWAHL ─── -->
<div class="sv-mc-panel">
    <h3><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f331.png" alt="🌱" class="wp-smiley" style="height: 1em; max-height: 1em;" data-neo-global--processed-neo-rename="true" /> Pflanzen auswählen</h3>
    <input type="text" class="sv-mc-search" id="mc-search" placeholder="Suche…" oninput="svMC.filter(this.value)">
    <div id="mc-plant-list"></div>
</div>

<!-- ─── HAUPTBEREICH ─── -->
<div>
    <div id="mc-main">
        <div class="sv-mc-empty">
            <p style="font-size:28px"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f331.png" alt="🌱" class="wp-smiley" style="height: 1em; max-height: 1em;" data-neo-global--processed-neo-rename="true" /></p>
            <p><strong>Wähle links Pflanzen aus</strong></p>
            <p>Wähle mindestens 2 Pflanzen um die Verträglichkeit zu prüfen</p>
        </div>
    </div>
</div>
</div><!-- /.layout -->

</div><!-- /#sv-misch -->

<script>
(function(){

// ─── PFLANZENDATENBANK ────────────────────────────────────
const PFLANZEN = [
  // Fruchtgemüse
  {id:'tomate',     name:'Tomate',       emo:'&#x1f345;', kat:'Fruchtgemüse',
   gut:['basilikum','petersilie','karotte','salat','spinat','ringelblume','tagetes','schnittlauch','borretsch'],
   schlecht:['fenchel','kohl','kohlrabi','fenchel','mais','paprika'],
   hinweis:'Keine Kreuzblütler; mag Basilikum als direkten Nachbar'},
  {id:'paprika',    name:'Paprika',       emo:'&#x1fad1;', kat:'Fruchtgemüse',
   gut:['basilikum','karotte','petersilie','tagetes','spinat'],
   schlecht:['tomate','fenchel','kohl'],
   hinweis:'Nicht neben Tomaten pflanzen — gleiches Beet erhöht Krankheitsdruck'},
  {id:'gurke',      name:'Gurke',         emo:'&#x1f952;', kat:'Fruchtgemüse',
   gut:['dill','salat','zwiebel','erbse','tagetes','radieschen','mais'],
   schlecht:['tomate','salbei','radieschen'],
   hinweis:'Dill fördert Wachstum; Radieschen wechselwirkend — je nach Sorte'},
  {id:'zucchini',   name:'Zucchini',      emo:'&#x1f96c;', kat:'Fruchtgemüse',
   gut:['mais','bohne','karotte','zwiebel','tagetes'],
   schlecht:['kartoffel','kohl'],
   hinweis:'Das "Drei-Schwestern"-Bett mit Mais und Bohne ist ideal'},
  {id:'kuerbis',    name:'Kürbis',        emo:'&#x1f383;', kat:'Fruchtgemüse',
   gut:['mais','bohne','tagetes','radieschen','ringelblume'],
   schlecht:['kartoffel','kohl','zucchini'],
   hinweis:'Braucht viel Platz; Tagetes schützt vor Wurzelschädlingen'},

  // Hülsenfrüchte
  {id:'erbse',      name:'Erbse',         emo:'&#x1fadb;', kat:'Hülsenfrüchte',
   gut:['karotte','radieschen','salat','spinat','rettich','kohl','kohlrabi','mais'],
   schlecht:['zwiebel','knoblauch','fenchel','bohne'],
   hinweis:'Fixiert Stickstoff — gut als Vorkultur für starkzehrende Pflanzen'},
  {id:'bohne',      name:'Bohne (Busch)', emo:'&#x1fad8;', kat:'Hülsenfrüchte',
   gut:['mais','gurke','karotte','kohl','salat','zucchini','kuerbis'],
   schlecht:['zwiebel','knoblauch','fenchel','erbse'],
   hinweis:'Stickstoffsammler; versteht sich nicht mit Lauchgewächsen'},
  {id:'stangenbohne',name:'Stangenbohne', emo:'&#x1fad8;', kat:'Hülsenfrüchte',
   gut:['mais','gurke','salat','radieschen'],
   schlecht:['zwiebel','knoblauch','fenchel','bohne'],
   hinweis:'Klassisch mit Mais kombiniert (Drei-Schwestern)'},

  // Wurzelgemüse
  {id:'karotte',    name:'Karotte',       emo:'&#x1f955;', kat:'Wurzelgemüse',
   gut:['salat','zwiebel','lauch','erbse','tomate','ringelblume'],
   schlecht:['dill','fenchel','ruebe'],
   hinweis:'Lauch hält die Möhrenfliege fern; nicht neben Fenchel'},
  {id:'radieschen', name:'Radieschen',    emo:'&#x1f534;', kat:'Wurzelgemüse',
   gut:['salat','spinat','karotte','erbse','gurke'],
   schlecht:['gurke','hyssop'],
   hinweis:'Schnellwüchsig — ideal als Lückenfüller zwischen langsamen Pflanzen'},
  {id:'rettich',    name:'Rettich',       emo:'&#x26aa;', kat:'Wurzelgemüse',
   gut:['erbse','salat','spinat','tomaten'],
   schlecht:['gurke','hyssop'],
   hinweis:'Lockert den Boden für Tiefwurzler'},
  {id:'ruebe',      name:'Rübe (Rote B.)',emo:'&#x1f7e3;', kat:'Wurzelgemüse',
   gut:['salat','zwiebel','kohlrabi','kohl'],
   schlecht:['tomate','stangenbohne','karotte'],
   hinweis:'Nicht neben Tomaten oder Stangenbohnen'},
  {id:'kartoffel',  name:'Kartoffel',     emo:'&#x1f954;', kat:'Wurzelgemüse',
   gut:['ringelblume','tagetes','koriander','bohne','kohl'],
   schlecht:['tomate','zucchini','kuerbis','gurke','fenchel'],
   hinweis:'Keine Nachtschattengewächse daneben — selbe Schädlinge'},

  // Blattgemüse
  {id:'salat',      name:'Salat',         emo:'&#x1f957;', kat:'Blattgemüse',
   gut:['karotte','radieschen','erdbeere','zwiebel','gurke','tomate','kohl'],
   schlecht:['sellerie','petersilie'],
   hinweis:'Ideal als Unterpflanzung unter Tomaten und Kohl'},
  {id:'spinat',     name:'Spinat',        emo:'&#x1f33f;', kat:'Blattgemüse',
   gut:['erdbeere','erbse','bohne','tomate','karotte','kohl'],
   schlecht:['mangold','rübe'],
   hinweis:'Schnell erntbar — gut als Vorfrucht oder unter Hochpflanzen'},
  {id:'mangold',    name:'Mangold',       emo:'&#x1f33f;', kat:'Blattgemüse',
   gut:['zwiebel','lauch','bohne','kohl'],
   schlecht:['spinat','mais','kartoffel'],
   hinweis:'Zieht ähnliche Schädlinge wie Rote Bete an'},
  {id:'kohl',       name:'Kohl / Weisskohl',emo:'&#x1f96c;', kat:'Blattgemüse',
   gut:['salat','dill','sellerie','ringelblume','tagetes','erbse','zwiebel'],
   schlecht:['tomate','erdbere','bohne','fenchel'],
   hinweis:'Tagetes und Ringelblume halten Blattläuse fern'},
  {id:'kohlrabi',   name:'Kohlrabi',      emo:'&#x1f7e2;', kat:'Blattgemüse',
   gut:['salat','spinat','erbse','bohne','zwiebel'],
   schlecht:['tomate','fenchel','stangenbohne'],
   hinweis:'Gute Kombination mit Salat und Zwiebeln'},

  // Zwiebelgewächse
  {id:'zwiebel',    name:'Zwiebel',       emo:'&#x1f9c5;', kat:'Zwiebelgewächse',
   gut:['karotte','salat','tomate','erdbeere','ringelblume'],
   schlecht:['erbse','bohne','stangenbohne'],
   hinweis:'Hält viele Schädlinge fern — guter Randstreifen'},
  {id:'knoblauch',  name:'Knoblauch',     emo:'&#x1f9c4;', kat:'Zwiebelgewächse',
   gut:['tomate','karotte','erdbeere','rosen'],
   schlecht:['erbse','bohne','kohl'],
   hinweis:'Antimykotisch — schützt Tomaten vor Pilzen'},
  {id:'lauch',      name:'Lauch / Porree',emo:'&#x1f33f;', kat:'Zwiebelgewächse',
   gut:['karotte','sellerie','tomate'],
   schlecht:['erbse','bohne'],
   hinweis:'Klassisch mit Karotte kombiniert — gegenseitiger Schädlingsschutz'},
  {id:'schnittlauch',name:'Schnittlauch', emo:'&#x1f331;', kat:'Zwiebelgewächse',
   gut:['tomate','karotte','gurke','erdbeere'],
   schlecht:['bohne','erbse'],
   hinweis:'Ideal als Randbepflanzung'},

  // Kräuter
  {id:'basilikum',  name:'Basilikum',     emo:'&#x1f33f;', kat:'Kräuter',
   gut:['tomate','paprika','gurke','zucchini'],
   schlecht:['salbei','fenchel'],
   hinweis:'Tomates bester Freund — verbessert Geschmack laut Volksmund'},
  {id:'petersilie', name:'Petersilie',    emo:'&#x1f33f;', kat:'Kräuter',
   gut:['tomate','karotte','spargel','erdbeere'],
   schlecht:['salat','zwiebel'],
   hinweis:'Stärkt Tomaten; nicht neben Salat'},
  {id:'dill',       name:'Dill',          emo:'&#x1f33f;', kat:'Kräuter',
   gut:['gurke','kohl','zwiebel','salat'],
   schlecht:['tomate','karotte','fenchel'],
   hinweis:'Hemmt Karottenwachstum; gut zu Gurken'},
  {id:'fenchel',    name:'Fenchel',       emo:'&#x1f33f;', kat:'Kräuter',
   gut:['dill'],
   schlecht:['tomate','paprika','kohl','gurke','karotte','bohne','erbse','kartoffel'],
   hinweis:'Allelopathisch — hemmt die meisten Gemüsepflanzen. Am besten allein pflanzen!'},
  {id:'salbei',     name:'Salbei',        emo:'&#x1f33f;', kat:'Kräuter',
   gut:['kohl','karotte','tomate','erdbeere'],
   schlecht:['gurke','zwiebel'],
   hinweis:'Hält Kohlweißling fern'},
  {id:'borretsch',  name:'Borretsch',     emo:'&#x1f499;', kat:'Kräuter',
   gut:['tomate','gurke','zucchini','erdbeere','kohl'],
   schlecht:[],
   hinweis:'Bienenmagnet; stärkt Nachbarpflanzen'},

  // Nützlinge & Begleitpflanzen
  {id:'tagetes',    name:'Tagetes',       emo:'&#x1f33c;', kat:'Begleitpflanzen',
   gut:['tomate','karotte','kartoffel','kohl','gurke','zucchini'],
   schlecht:['bohne'],
   hinweis:'Hält Nematoden und Weiße Fliege fern — universeller Schutz'},
  {id:'ringelblume',name:'Ringelblume',   emo:'&#x1f33b;', kat:'Begleitpflanzen',
   gut:['tomate','karotte','kohl','zwiebel','kartoffel'],
   schlecht:[],
   hinweis:'Blattlausabwehr; lockt Nützlinge an'},
  {id:'kapuzinerkresse',name:'Kapuzinerkresse',emo:'&#x1f33a;', kat:'Begleitpflanzen',
   gut:['tomate','gurke','zucchini','kohl','erdbeere'],
   schlecht:[],
   hinweis:'Aphiden-Falle — lockt Blattläuse von Gemüse ab'},

  // Sonstiges
  {id:'mais',       name:'Mais',          emo:'&#x1f33d;', kat:'Sonstiges',
   gut:['bohne','stangenbohne','gurke','zucchini','kuerbis'],
   schlecht:['tomate','sellerie'],
   hinweis:'Die Drei-Schwestern: Mais + Bohne + Kürbis'},
  {id:'erdbeere',   name:'Erdbeere',      emo:'&#x1f353;', kat:'Sonstiges',
   gut:['spinat','salat','zwiebel','knoblauch','petersilie','borretsch'],
   schlecht:['kohl','fenchel'],
   hinweis:'Spinat hält Boden feucht; Zwiebeln schützen vor Grauschimmel'},
  {id:'sellerie',   name:'Sellerie',      emo:'&#x1f33f;', kat:'Sonstiges',
   gut:['tomate','lauch','kohl','buschbohne'],
   schlecht:['mais','kartoffel'],
   hinweis:'Gute Dreier-Kombination: Sellerie + Lauch + Kohl'},
];

const KATS = [...new Set(PFLANZEN.map(p=>p.kat))];
let selected = [];
let searchTerm = '';

// ─── LOOKUP ──────────────────────────────────────────────
const byId = id => PFLANZEN.find(p=>p.id===id);
const relation = (a, b) => {
    const pa = byId(a), pb = byId(b);
    if (!pa || !pb || a === b) return 'self';
    if (pa.gut.includes(b) || pb.gut.includes(a)) return 'gut';
    if (pa.schlecht.includes(b) || pb.schlecht.includes(a)) return 'schlecht';
    return 'neutral';
};

// ─── PFLANZEN-LISTE ───────────────────────────────────────
function renderList() {
    const q = searchTerm.toLowerCase();
    const el = document.getElementById('mc-plant-list');
    let html = '';
    KATS.forEach(kat => {
        const plants = PFLANZEN.filter(p => p.kat===kat && (!q || p.name.toLowerCase().includes(q)));
        if (!plants.length) return;
        html += `<span class="sv-mc-kat-label">${kat}</span>`;
        plants.forEach(p => {
            const sel = selected.includes(p.id);
            const gutCount = p.gut.length;
            html += `<button class="sv-mc-plant-btn${sel?' selected':''}" onclick="svMC.toggle('${p.id}')">
                <span class="emo">${p.emo}</span>
                <span>${p.name}</span>
                <span class="cnt">${gutCount}✓</span>
            </button>`;
        });
    });
    el.innerHTML = html || '<p style="font-size:13px;color:var(--ink-mute);padding:8px">Keine Treffer</p>';
}

// ─── HAUPTBEREICH ────────────────────────────────────────
function renderMain() {
    const el = document.getElementById('mc-main');
    if (selected.length === 0) {
        el.innerHTML = `<div class="sv-mc-empty"><p style="font-size:28px">&#x1f331;</p><p><strong>Wähle links Pflanzen aus</strong></p><p>Wähle mindestens 2 Pflanzen um die Verträglichkeit zu prüfen</p></div>`;
        return;
    }

    // Gewählte Pflanzen als Chips
    let html = `<div class="sv-mc-selected-wrap">`;
    selected.forEach(id => {
        const p = byId(id);
        html += `<button class="sv-mc-chip" onclick="svMC.toggle('${id}')" title="Entfernen">
            ${p.emo} ${p.name} <span class="x">×</span>
        </button>`;
    });
    html += `</div>`;

    if (selected.length >= 2) {
        // Konflikte prüfen
        const konflikte = [];
        const superkombi = [];
        for (let i=0; i<selected.length; i++) {
            for (let j=i+1; j<selected.length; j++) {
                const r = relation(selected[i], selected[j]);
                const a = byId(selected[i]), b = byId(selected[j]);
                if (r === 'schlecht') konflikte.push([a,b]);
                if (r === 'gut') superkombi.push([a,b]);
            }
        }

        // Warnung/Erfolg
        if (konflikte.length > 0) {
            html += `<div style="background:#fee2e2;border:1px solid #fca5a5;border-radius:6px;padding:12px 16px;margin-bottom:16px;font-size:13px">
                <strong>&#x26a0; ${konflikte.length} Konflikt${konflikte.length>1?'e':''} in deiner Auswahl:</strong><br>
                ${konflikte.map(([a,b])=>`<span style="background:#fecaca;border-radius:3px;padding:1px 6px;margin:2px;display:inline-block">${a.emo}${a.name} ✗ ${b.emo}${b.name}</span>`).join(' ')}
            </div>`;
        }
        if (superkombi.length > 0 && konflikte.length === 0) {
            html += `<div style="background:#d1fae5;border:1px solid #6ee7b7;border-radius:6px;padding:12px 16px;margin-bottom:16px;font-size:13px">
                <strong>✓ Alle Pflanzen vertragen sich gut!</strong>
                ${superkombi.length > 0 ? '<br>Super-Kombis: '+superkombi.map(([a,b])=>`${a.emo}${a.name}+${b.emo}${b.name}`).join(', ') : ''}
            </div>`;
        }

        // Matrix
        html += `<div class="sv-mc-section-head">Verträglichkeits-Matrix</div>`;
        html += `<div class="sv-mc-legend">
            <span><span class="dot" style="background:#d1fae5"></span> Gute Nachbarn</span>
            <span><span class="dot" style="background:#fee2e2"></span> Schlechte Nachbarn</span>
            <span><span class="dot" style="background:#f3f4f6"></span> Neutral</span>
        </div>`;
        html += `<div class="sv-mc-matrix-wrap"><table class="sv-mc-matrix"><thead><tr><th></th>`;
        selected.forEach(id => { const p=byId(id); html+=`<th>${p.emo}<br>${p.name}</th>`; });
        html += `</tr></thead><tbody>`;
        selected.forEach(a => {
            const pa = byId(a);
            html += `<tr><td class="row-label">${pa.emo} ${pa.name}</td>`;
            selected.forEach(b => {
                const r = relation(a,b);
                const icons = {gut:'✓',schlecht:'✗',neutral:'–',self:'·'};
                html += `<td class="${r}" title="${r==='self'?pa.name:byId(b).name+': '+r}">${icons[r]}</td>`;
            });
            html += `</tr>`;
        });
        html += `</tbody></table></div>`;
    }

    // Einzelkarten
    html += `<div class="sv-mc-section-head">Details je Pflanze</div>`;
    html += `<div class="sv-mc-cards">`;
    selected.forEach(id => {
        const p = byId(id);
        // Nur Pflanzen zeigen die in der Auswahl sind oder zumindest im Bezug zur Auswahl stehen
        const selectedGut = p.gut.filter(g => selected.includes(g)).map(g=>byId(g));
        const selectedSchlecht = p.schlecht.filter(g => selected.includes(g)).map(g=>byId(g));
        // Weitere Empfehlungen (nicht in Auswahl)
        const weitereGut = p.gut.filter(g => !selected.includes(g)).slice(0,5).map(g=>byId(g)).filter(Boolean);

        html += `<div class="sv-mc-card">
            <div class="sv-mc-card-title">${p.emo} ${p.name}</div>`;

        if (selectedGut.length) {
            html += `<div class="sv-mc-section-label">✓ Gute Kombi in deiner Auswahl</div>`;
            html += selectedGut.map(n=>`<span class="sv-mc-tag gut">${n.emo} ${n.name}</span>`).join('');
        }
        if (selectedSchlecht.length) {
            html += `<div class="sv-mc-section-label">✗ Konflikte in deiner Auswahl</div>`;
            html += selectedSchlecht.map(n=>`<span class="sv-mc-tag schlecht">${n.emo} ${n.name}</span>`).join('');
        }
        if (weitereGut.length) {
            html += `<div class="sv-mc-section-label">&#x1f4a1; Weitere gute Nachbarn</div>`;
            html += weitereGut.map(n=>`<span class="sv-mc-tag gut">${n.emo} ${n.name}</span>`).join('');
        }
        if (p.hinweis) html += `<div class="sv-mc-hinweis">&#x1f4cc; ${p.hinweis}</div>`;
        html += `</div>`;
    });
    html += `</div>`;

    el.innerHTML = html;
}

// ─── API ─────────────────────────────────────────────────
window.svMC = {
    toggle(id) {
        const i = selected.indexOf(id);
        if (i === -1) selected.push(id);
        else selected.splice(i,1);
        renderList();
        renderMain();
    },
    filter(q) {
        searchTerm = q;
        renderList();
    }
};

renderList();
renderMain();
})();
</script>

]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Fluchtrucksack-Konfigurator</title>
		<link>https://selbstversorgen.com/tools/fluchtrucksack-konfigurator/</link>
		
		<dc:creator><![CDATA[Mark]]></dc:creator>
		<pubDate>Fri, 15 May 2026 12:11:19 +0000</pubDate>
				<guid isPermaLink="false">https://selbstversorgen.com/?post_type=sv_tool&#038;p=822</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[<div id="sv-ruck" class="sv-tool-wrap">
<style>
#sv-ruck{font-family:"DM Sans",sans-serif;color:var(--ink,#1a1814)}
#sv-ruck .sv-rk-header{background:var(--forest,#1a3a2a);color:var(--paper,#f3ecdc);border-radius:8px;padding:20px 24px;margin-bottom:20px;display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between}
#sv-ruck .sv-rk-header h3{font-family:"Playfair Display",serif;font-size:18px;margin:0;color:var(--paper)}
#sv-ruck .sv-rk-progress-bar{height:8px;background:rgba(255,255,255,.2);border-radius:4px;overflow:hidden;min-width:180px;flex:1;max-width:320px}
#sv-ruck .sv-rk-progress-fill{height:100%;background:var(--amber,#c08a2a);border-radius:4px;transition:width .4s}
#sv-ruck .sv-rk-stats{font-family:"DM Mono",monospace;font-size:12px;color:rgba(243,236,220,.8);margin-top:6px;text-align:right}
#sv-ruck .sv-rk-filter{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px}
#sv-ruck .sv-rk-filter button{padding:5px 12px;border-radius:999px;border:1.5px solid var(--line,#d6cab1);background:var(--paper,#f3ecdc);font:inherit;font-size:12px;cursor:pointer;transition:all .15s;font-family:"DM Mono",monospace;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-mute)}
#sv-ruck .sv-rk-filter button.aktiv{background:var(--forest,#1a3a2a);color:var(--paper,#f3ecdc);border-color:var(--forest)}
#sv-ruck .sv-rk-kat{margin-bottom:8px}
#sv-ruck .sv-rk-kat-head{font-family:"Playfair Display",serif;font-size:16px;font-weight:600;color:var(--forest,#1a3a2a);padding:10px 0 8px;border-bottom:1px solid var(--line,#d6cab1);margin-bottom:4px;display:flex;align-items:center;justify-content:space-between}
#sv-ruck .sv-rk-kat-count{font-size:11px;font-family:"DM Mono",monospace;color:var(--ink-mute,#6b6555);font-weight:400}
#sv-ruck .sv-rk-item{display:flex;align-items:flex-start;gap:10px;padding:10px 8px;border-bottom:1px solid rgba(214,202,177,.35);cursor:pointer;transition:background .12s;border-radius:4px}
#sv-ruck .sv-rk-item:hover{background:var(--paper-2,#ebe2cd)}
#sv-ruck .sv-rk-item.checked{opacity:.6}
#sv-ruck .sv-rk-item.checked .sv-rk-name{text-decoration:line-through;color:var(--ink-mute)}
#sv-ruck .sv-rk-cb{width:20px;height:20px;border-radius:4px;border:2px solid var(--line,#d6cab1);flex-shrink:0;margin-top:1px;display:grid;place-items:center;transition:all .15s}
#sv-ruck .sv-rk-item.checked .sv-rk-cb{background:var(--forest,#1a3a2a);border-color:var(--forest);color:var(--paper)}
#sv-ruck .sv-rk-prio{font-size:10px;font-family:"DM Mono",monospace;padding:1px 6px;border-radius:3px;flex-shrink:0;margin-top:2px}
#sv-ruck .sv-rk-prio.zwingend{background:#fee2e2;color:#991b1b}
#sv-ruck .sv-rk-prio.wichtig{background:#fef9c3;color:#713f12}
#sv-ruck .sv-rk-prio.sinnvoll{background:#e0f2fe;color:#075985}
#sv-ruck .sv-rk-name{font-size:14px;font-weight:500;color:var(--ink);line-height:1.3}
#sv-ruck .sv-rk-tipp{font-size:11px;color:var(--ink-mute);margin-top:2px;line-height:1.4}
#sv-ruck .sv-rk-actions{display:flex;gap:8px;margin-top:16px;flex-wrap:wrap}
#sv-ruck .sv-rk-btn{padding:8px 16px;border-radius:4px;border:0;font:inherit;font-size:13px;font-weight:600;cursor:pointer}
#sv-ruck .sv-rk-btn-prim{background:var(--forest,#1a3a2a);color:var(--paper,#f3ecdc)}
#sv-ruck .sv-rk-btn-sec{background:var(--paper-2,#ebe2cd);color:var(--ink,#1a1814)}
</style>

<div class="sv-rk-header">
    <div>
        <h3><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f392.png" alt="🎒" class="wp-smiley" style="height: 1em; max-height: 1em;" data-neo-global--processed-neo-rename="true" /> Fluchtrucksack-Checkliste</h3>
        <div style="font-size:12px;color:rgba(243,236,220,.7);margin-top:4px">72h-Set für einen Erwachsenen · Fortschritt wird gespeichert</div>
    </div>
    <div>
        <div class="sv-rk-progress-bar"><div class="sv-rk-progress-fill" id="rk-fill" style="width:0%"></div></div>
        <div class="sv-rk-stats" id="rk-stats">0 / 54 Punkte</div>
    </div>
</div>

<div class="sv-rk-filter">
    <button class="aktiv" onclick="svRK.filter('alle',this)">Alle</button>
    <button onclick="svRK.filter('zwingend',this)"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f534.png" alt="🔴" class="wp-smiley" style="height: 1em; max-height: 1em;" data-neo-global--processed-neo-rename="true" /> zwingend</button>
    <button onclick="svRK.filter('wichtig',this)"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f7e1.png" alt="🟡" class="wp-smiley" style="height: 1em; max-height: 1em;" data-neo-global--processed-neo-rename="true" /> Wichtig</button>
    <button onclick="svRK.filter('sinnvoll',this)"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f535.png" alt="🔵" class="wp-smiley" style="height: 1em; max-height: 1em;" data-neo-global--processed-neo-rename="true" /> Sinnvoll</button>
    <button onclick="svRK.filter('fehlt',this)">☐ Fehlt noch</button>
</div>

<div id="rk-liste"></div>

<div class="sv-rk-actions">
    <button class="sv-rk-btn sv-rk-btn-prim" onclick="svRK.exportPDF()"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4cb.png" alt="📋" class="wp-smiley" style="height: 1em; max-height: 1em;" data-neo-global--processed-neo-rename="true" /> Liste exportieren</button>
    <button class="sv-rk-btn sv-rk-btn-sec" onclick="svRK.reset()">↺ Zurücksetzen</button>
    <button class="sv-rk-btn sv-rk-btn-sec" onclick="svRK.allezwingend()">✓ Alle zwingenden abhaken</button>
</div>

</div>
<script>
(function(){
const DATA=[{"kat":"&#x1f4a7; Wasser & Ernährung","items":[{"id":"r01","n":"Trinkflasche (mind. 1L, BPA-frei)","prio":"zwingend","tipp":"Edelstahl oder harte Kunststoffflasche"},{"id":"r02","n":"Wasserfilter (Lifestraw o.ä.)","prio":"zwingend","tipp":"Filtert 99,9 % Bakterien direkt aus Quellen"},{"id":"r03","n":"Wasserreinigungstabletten (Chlor)","prio":"zwingend","tipp":"Backup zum Filter, 20 Tabletten reichen für Tage"},{"id":"r04","n":"Notration: Energieriegel (3–5 Stück)","prio":"zwingend","tipp":"Mindestens 400 kcal\/Riegel, lange haltbar"},{"id":"r05","n":"Lyophilisierte Mahlzeit (1–3 Portionen)","prio":"wichtig","tipp":"Freeze-dried, nur heißes Wasser nötig"},{"id":"r06","n":"Traubenzucker \/ Nüsse als Snacks","prio":"sinnvoll","tipp":"Schnelle Energie, leicht, klein"},{"id":"r07","n":"Kleiner Kochtopf (600–900ml, Titan)","prio":"wichtig","tipp":"Titan: leicht und langlebig"},{"id":"r08","n":"Camping-Gaskocher mit 2 Kartuschen","prio":"wichtig","tipp":"Piezoelektrische Zündung, kein Feuerzeug nötig"}]},{"kat":"&#x1fa7a; Erste Hilfe & Gesundheit","items":[{"id":"r09","n":"Kompaktes Erste-Hilfe-Set","prio":"zwingend","tipp":"Mind.: Verband, Pflaster, Schere, Handschuhe"},{"id":"r10","n":"Persönliche Medikamente (30 Tage)","prio":"zwingend","tipp":"Chronisch Kranke: mit Arzt absprechen!"},{"id":"r11","n":"Schmerzmittel & Fiebermittel","prio":"zwingend","tipp":"Ibuprofen + Paracetamol als Basis"},{"id":"r12","n":"Wunddesinfektion (Octenisept o.ä.)","prio":"wichtig","tipp":"Spray praktischer als Lösung im Rucksack"},{"id":"r13","n":"Breitspektrum-Antibiotikum (Rx)","prio":"wichtig","tipp":"Nur mit Rezept. Für echte Notfälle ohne Arzt"},{"id":"r14","n":"Zeckenkarte + Pinzette","prio":"sinnvoll","tipp":"Wald + Krise = erhöhtes Zeckenrisiko"},{"id":"r15","n":"Mund-Beatmungsmaske (Einwegmaske)","prio":"sinnvoll","tipp":"CPR ohne Direktkontakt"}]},{"kat":"&#x1f5fa; Navigation & Kommunikation","items":[{"id":"r16","n":"Papierkarte der Region (1:50.000)","prio":"zwingend","tipp":"Offline-Karte der 50km um den Heimatort"},{"id":"r17","n":"Kompass (militärischer Peilkompass)","prio":"zwingend","tipp":"Zusammen mit Karte nutzbar, kein GPS-Signal nötig"},{"id":"r18","n":"Vollgeladene Powerbank (20.000 mAh)","prio":"zwingend","tipp":"6–8 Smartphone-Ladungen, hält 3–6 Monate"},{"id":"r19","n":"Batterie-\/Kurbelradio (DAB+\/UKW)","prio":"zwingend","tipp":"Offizielle Notfallmeldungen empfangen"},{"id":"r20","n":"Wichtige Kontakte auf Papier","prio":"zwingend","tipp":"Familie, Arzt, Treffpunkte — kein Strom nötig"},{"id":"r21","n":"Pfeife (Signalpfeife, laut)","prio":"wichtig","tipp":"3 Töne = internationales Notsignal"},{"id":"r22","n":"Handspiegel zum Signalisieren","prio":"sinnvoll","tipp":"Signalwirkung bis zu 10km bei Sonne"}]},{"kat":"&#x1f3d5; Unterkunft & Wärme","items":[{"id":"r23","n":"Notfalldecke (Rettungsfolie, 2 Stück)","prio":"zwingend","tipp":"Verhindert Unterkühlung. Je 40g. Immer 2!"},{"id":"r24","n":"Leichter Schlafsack (mind. +5°C)","prio":"wichtig","tipp":"Für Saison angepasst, Kompressionspacksack"},{"id":"r25","n":"Notfall-Biwaksack (wasserdicht)","prio":"wichtig","tipp":"Hält auch ohne Zelt wärmer als die Folie"},{"id":"r26","n":"Ultraleichtes Tarp\/Plane (2×3m)","prio":"wichtig","tipp":"Vielseitiger als ein Zelt, leichter"},{"id":"r27","n":"Paracord 10m (550er)","prio":"wichtig","tipp":"Leine, Schlinge, Abspannung, repariert vieles"},{"id":"r28","n":"Wollmütze + Handschuhe","prio":"wichtig","tipp":"Wärme geht zu 50% über den Kopf verloren"},{"id":"r29","n":"Notfall-Poncho (leicht, wasserdicht)","prio":"sinnvoll","tipp":"Deckt Rucksack mit ab"}]},{"kat":"&#x1f526; Licht & Energie","items":[{"id":"r30","n":"Stirnlampe (LED, 200+ Lumen)","prio":"zwingend","tipp":"Hände bleiben frei. Ersatzbatterien mitpacken"},{"id":"r31","n":"Ersatzbatterien (AAA und AA)","prio":"zwingend","tipp":"Immer zum Gerät passend einpacken"},{"id":"r32","n":"Taschenlampe als Backup","prio":"wichtig","tipp":"Redundanz ist beim Licht lebenswichtig"},{"id":"r33","n":"Feuerzeug (windgesichert, 2 Stück)","prio":"zwingend","tipp":"Piezo-Gasfeuerzeug oder Sturmfeuerzeug"},{"id":"r34","n":"Feuerstarter (Zündstein + Docht)","prio":"wichtig","tipp":"Funktioniert noch nass und bei Kälte"},{"id":"r35","n":"Kerzen (3–5 Stück)","prio":"sinnvoll","tipp":"Wärme + Licht. Im Zelt\/Biwak aufwärmend"}]},{"kat":"&#x1f527; Werkzeug & Schutz","items":[{"id":"r36","n":"Taschenmesser \/ Multitool","prio":"zwingend","tipp":"Leatherman o.ä. Mit Säge, Zange, Schrauber"},{"id":"r37","n":"Festes Outdoormesser (feststehend)","prio":"wichtig","tipp":"Ergänzt das Multitool für schwere Arbeiten"},{"id":"r38","n":"Klebeband (Ducktape, 5m aufgerollt)","prio":"wichtig","tipp":"Repariert buchstäblich alles temporär"},{"id":"r39","n":"Werkzeugset klein (Schrauber, Zange)","prio":"sinnvoll","tipp":"Wenn Multitool fehlt"},{"id":"r40","n":"Handschuhe (Arbeitshandschuhe)","prio":"wichtig","tipp":"Schutz beim Graben, Heben, Holzsammeln"},{"id":"r41","n":"N95 Atemschutzmasken (5 Stück)","prio":"sinnvoll","tipp":"Rauch, Staub, Asche bei Katastrophen"}]},{"kat":"&#x1f4c4; Dokumente & Finanzen","items":[{"id":"r42","n":"Kopien: Ausweis, Reisepass, Führerschein","prio":"zwingend","tipp":"Wasserdichte Schutzhülle! Originals wenn möglich"},{"id":"r43","n":"Krankenversicherungskarte (Kopie)","prio":"zwingend","tipp":"Auch die Europäische Versicherungskarte"},{"id":"r44","n":"Bargeld (mind. 200 €, kleine Scheine)","prio":"zwingend","tipp":"Kartenzahlung ohne Strom unmöglich"},{"id":"r45","n":"Notfall-Kontaktliste (laminiert)","prio":"zwingend","tipp":"Familie, Arzt, Versicherung, Treffpunkte"},{"id":"r46","n":"USB-Stick mit wichtigen Dateien","prio":"wichtig","tipp":"Dokumente, Versicherungen, Fotos digital"},{"id":"r47","n":"Kleines Notizbuch + wasserfester Stift","prio":"wichtig","tipp":"Rite-in-Rain oder Notizbuch in Plastikbeutel"}]},{"kat":"&#x1f455; Kleidung & Hygiene","items":[{"id":"r48","n":"Wechselkleidung (1 Tag) in Drybag","prio":"wichtig","tipp":"Funktionsunterwäsche + Socken wasserdicht verpackt"},{"id":"r49","n":"Regenponcho oder Regenjacke","prio":"wichtig","tipp":"Hypothermie durch Nässe ist ein reales Risiko"},{"id":"r50","n":"Handtuch (Mikrofaser, klein)","prio":"sinnvoll","tipp":"Trocknet schnell, kompakt"},{"id":"r51","n":"Zahnbürste + Zahnpasta (klein)","prio":"sinnvoll","tipp":"Hygiene wichtig für Moral und Gesundheit"},{"id":"r52","n":"Toilettenpapier + Hygienetücher","prio":"wichtig","tipp":"In Plastikbeutel wasserdicht verpacken"},{"id":"r53","n":"Seife (Stück, multifunktional)","prio":"wichtig","tipp":"Auch als Wäsche- und Geschirrseife nutzbar"},{"id":"r54","n":"Sonnen- und Insektenschutz","prio":"sinnvoll","tipp":"Sonnenbrand schwächt, Mücken übertragen Krankheiten"}]}];
const SK='svRK_v1';
let state=JSON.parse(localStorage.getItem(SK)||'{}');
let aktFilter='alle';

const save=()=>localStorage.setItem(SK,JSON.stringify(state));
const total=DATA.reduce((s,k)=>s+k.items.length,0);

function render(){
    let checked=0,html='';
    DATA.forEach(kat=>{
        const vis=kat.items.filter(item=>{
            if(aktFilter==='alle')return true;
            if(aktFilter==='fehlt')return !state[item.id];
            return item.prio===aktFilter;
        });
        if(!vis.length)return;
        const katChecked=kat.items.filter(i=>state[i.id]).length;
        html+=`<div class="sv-rk-kat">
            <div class="sv-rk-kat-head">${kat.kat}<span class="sv-rk-kat-count">${katChecked}/${kat.items.length}</span></div>`;
        vis.forEach(item=>{
            const ok=!!state[item.id];
            if(ok)checked++;
            html+=`<div class="sv-rk-item${ok?' checked':''}" onclick="svRK.tog('${item.id}')">
                <div class="sv-rk-cb">${ok?'✓':''}</div>
                <div>
                    <div class="sv-rk-name">${item.n}</div>
                    <div class="sv-rk-tipp">${item.tipp}</div>
                </div>
                <span class="sv-rk-prio ${item.prio}">${item.prio}</span>
            </div>`;
        });
        html+='</div>';
    });
    document.getElementById('rk-liste').innerHTML=html;
    const pct=Math.round(checked/total*100);
    document.getElementById('rk-fill').style.width=pct+'%';
    document.getElementById('rk-stats').textContent=checked+' / '+total+' Punkte ('+pct+' %)';
}

window.svRK={
    tog(id){state[id]=!state[id];save();render();},
    filter(f,btn){aktFilter=f;document.querySelectorAll('.sv-rk-filter button').forEach(b=>b.classList.remove('aktiv'));btn.classList.add('aktiv');render();},
    reset(){if(confirm('Fortschritt zurücksetzen?')){state={};save();render();}},
    allezwingend(){DATA.forEach(k=>k.items.forEach(i=>{if(i.prio==='zwingend')state[i.id]=true;}));save();render();},
    exportPDF(){
        let t='FLUCHTRUCKSACK-CHECKLISTE\n'+'='.repeat(40)+'\n';
        t+='Status: '+Object.keys(state).filter(k=>state[k]).length+' / '+total+' Punkte\n\n';
        DATA.forEach(k=>{
            t+='\n'+k.kat+'\n';
            k.items.forEach(i=>t+='  ['+(state[i.id]?'x':' ')+'] '+i.n+' ('+i.prio+')\n      → '+i.tipp+'\n');
        });
        t+='\nErstellt mit selbstversorgen.com';
        const b=new Blob([t],{type:'text/plain'});
        const a=document.createElement('a');a.href=URL.createObjectURL(b);a.download='fluchtrucksack-checkliste.txt';a.click();
    }
};
render();
})();
</script>

]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Blackout-Checkliste: Zuhause vorbereitet</title>
		<link>https://selbstversorgen.com/tools/blackout-checkliste-zuhause-vorbereitet/</link>
		
		<dc:creator><![CDATA[Mark]]></dc:creator>
		<pubDate>Fri, 15 May 2026 12:09:36 +0000</pubDate>
				<guid isPermaLink="false">https://selbstversorgen.com/?post_type=sv_tool&#038;p=819</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[<div id="sv-bk" class="sv-tool-wrap">
<style>
#sv-bk{font-family:"DM Sans",sans-serif;color:var(--ink,#1a1814)}
#sv-bk .sv-bk-header{background:linear-gradient(135deg,#1a2744,#2d3f6b);color:var(--paper,#f3ecdc);border-radius:8px;padding:20px 24px;margin-bottom:20px}
#sv-bk .sv-bk-header h3{font-family:"Playfair Display",serif;font-size:18px;margin:0 0 12px;color:var(--paper)}
#sv-bk .sv-bk-meter{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
#sv-bk .sv-bk-pbar{flex:1;min-width:160px;max-width:280px;height:8px;background:rgba(255,255,255,.2);border-radius:4px;overflow:hidden}
#sv-bk .sv-bk-pfill{height:100%;background:#f59e0b;border-radius:4px;transition:width .4s}
#sv-bk .sv-bk-pts{font-family:"DM Mono",monospace;font-size:12px;color:rgba(243,236,220,.8)}
#sv-bk .sv-bk-stufe{font-family:"DM Mono",monospace;font-size:11px;padding:3px 10px;border-radius:999px;background:rgba(255,255,255,.1);color:var(--paper);letter-spacing:.08em}
#sv-bk .sv-bk-filter{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px}
#sv-bk .sv-bk-filter button{padding:5px 12px;border-radius:999px;border:1.5px solid var(--line,#d6cab1);background:var(--paper,#f3ecdc);font:inherit;font-size:12px;cursor:pointer;transition:all .15s;font-family:"DM Mono",monospace;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-mute)}
#sv-bk .sv-bk-filter button.aktiv{background:#1a2744;color:var(--paper,#f3ecdc);border-color:#1a2744}
#sv-bk .sv-bk-kat{margin-bottom:12px;background:var(--card,#faf5e8);border:1px solid var(--line,#d6cab1);border-radius:8px;overflow:hidden}
#sv-bk .sv-bk-kat-head{padding:12px 16px;background:var(--paper-2,#ebe2cd);display:flex;align-items:center;justify-content:space-between;gap:8px;cursor:pointer;user-select:none}
#sv-bk .sv-bk-kat-title{font-family:"Playfair Display",serif;font-size:15px;font-weight:600;color:var(--forest,#1a3a2a)}
#sv-bk .sv-bk-kat-info{font-size:11px;color:var(--ink-mute,#6b6555);margin-top:2px}
#sv-bk .sv-bk-kat-badge{font-family:"DM Mono",monospace;font-size:11px;color:var(--ink-mute);flex-shrink:0}
#sv-bk .sv-bk-items{padding:4px 0}
#sv-bk .sv-bk-item{display:flex;align-items:flex-start;gap:10px;padding:10px 16px;border-bottom:1px solid rgba(214,202,177,.3);cursor:pointer;transition:background .12s}
#sv-bk .sv-bk-item:last-child{border-bottom:0}
#sv-bk .sv-bk-item:hover{background:rgba(214,202,177,.2)}
#sv-bk .sv-bk-item.checked{opacity:.55}
#sv-bk .sv-bk-item.checked .sv-bk-name{text-decoration:line-through;color:var(--ink-mute)}
#sv-bk .sv-bk-cb{width:20px;height:20px;border-radius:4px;border:2px solid var(--line,#d6cab1);flex-shrink:0;margin-top:1px;display:grid;place-items:center;transition:all .15s;font-size:12px}
#sv-bk .sv-bk-item.checked .sv-bk-cb{background:#1a2744;border-color:#1a2744;color:var(--paper)}
#sv-bk .sv-bk-name{font-size:13px;font-weight:500;color:var(--ink);line-height:1.3}
#sv-bk .sv-bk-tipp{font-size:11px;color:var(--ink-mute);margin-top:2px;line-height:1.4}
#sv-bk .sv-bk-prio{font-size:9px;font-family:"DM Mono",monospace;padding:1px 6px;border-radius:3px;flex-shrink:0;margin-top:3px;text-transform:uppercase;letter-spacing:.06em}
#sv-bk .sv-bk-prio.kritisch{background:#fee2e2;color:#991b1b}
#sv-bk .sv-bk-prio.wichtig{background:#fef9c3;color:#713f12}
#sv-bk .sv-bk-prio.sinnvoll{background:#e0f2fe;color:#075985}
#sv-bk .sv-bk-actions{display:flex;gap:8px;margin-top:16px;flex-wrap:wrap}
#sv-bk .sv-bk-btn{padding:8px 16px;border-radius:4px;border:0;font:inherit;font-size:13px;font-weight:600;cursor:pointer}
#sv-bk .sv-bk-btn-prim{background:#1a2744;color:var(--paper,#f3ecdc)}
#sv-bk .sv-bk-btn-sec{background:var(--paper-2,#ebe2cd);color:var(--ink,#1a1814)}
</style>

<div class="sv-bk-header">
    <h3><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/26a1.png" alt="⚡" class="wp-smiley" style="height: 1em; max-height: 1em;" data-neo-global--processed-neo-rename="true" /> Blackout-Checkliste: Zuhause vorbereitet</h3>
    <div class="sv-bk-meter">
        <div class="sv-bk-pbar"><div class="sv-bk-pfill" id="bk-fill" style="width:0%"></div></div>
        <div class="sv-bk-pts" id="bk-pts">0 / 48 erledigt</div>
        <div class="sv-bk-stufe" id="bk-stufe">Nicht vorbereitet</div>
    </div>
    <div style="font-size:11px;color:rgba(243,236,220,.6);margin-top:8px">Fortschritt wird im Browser gespeichert · Für 10-Tage-Blackout ausgelegt</div>
</div>

<div class="sv-bk-filter">
    <button class="aktiv" onclick="svBK.filter('alle',this)">Alle</button>
    <button onclick="svBK.filter('kritisch',this)"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f534.png" alt="🔴" class="wp-smiley" style="height: 1em; max-height: 1em;" data-neo-global--processed-neo-rename="true" /> Kritisch</button>
    <button onclick="svBK.filter('wichtig',this)"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f7e1.png" alt="🟡" class="wp-smiley" style="height: 1em; max-height: 1em;" data-neo-global--processed-neo-rename="true" /> Wichtig</button>
    <button onclick="svBK.filter('sinnvoll',this)"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f535.png" alt="🔵" class="wp-smiley" style="height: 1em; max-height: 1em;" data-neo-global--processed-neo-rename="true" /> Sinnvoll</button>
    <button onclick="svBK.filter('fehlt',this)">☐ Fehlt noch</button>
</div>

<div id="bk-liste"></div>

<div class="sv-bk-actions">
    <button class="sv-bk-btn sv-bk-btn-prim" onclick="svBK.export()"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4cb.png" alt="📋" class="wp-smiley" style="height: 1em; max-height: 1em;" data-neo-global--processed-neo-rename="true" /> Liste exportieren</button>
    <button class="sv-bk-btn sv-bk-btn-sec" onclick="svBK.reset()">↺ Zurücksetzen</button>
</div>

</div>
<script>
(function(){
const DATA=[{"kat":"&#x1f4a7; Wasser","info":"Wasserwerke laufen mit Strom. Bei Ausfall kann Druck wegbrechen.","items":[{"id":"b01","n":"Trinkwasservorrat: 2L × Personen × 10 Tage","prio":"kritisch","tipp":"In Flaschen oder Wasserkanistern (BPA-frei)"},{"id":"b02","n":"Badewanne befüllen sobald Ausfall bekannt","prio":"kritisch","tipp":"Sofort-Maßnahme: 150–300L für Sanitär"},{"id":"b03","n":"Wasseraufbereitungstabletten (Chlor)","prio":"kritisch","tipp":"1 Tablette pro Liter, 30 Min. wirken lassen"},{"id":"b04","n":"Wasserfilter für Regenwasser","prio":"wichtig","tipp":"Gravitations- oder Keramikfilter ohne Strom"},{"id":"b05","n":"Regenwassertank (mind. 200L)","prio":"wichtig","tipp":"Für Toilette, Hygiene, Kochen nach Abkochen"},{"id":"b06","n":"Großer Kochtopf zum Abkochen","prio":"wichtig","tipp":"1 Minute sprudelnd = alle Keime tot"}]},{"kat":"&#x1f35e; Lebensmittel & Kochen","info":"10 Tage Vorrat ohne Kühlkette — BBK-Mindestempfehlung.","items":[{"id":"b07","n":"Notvorrat für 10 Tage (Trockenvorräte)","prio":"kritisch","tipp":"Reis, Nudeln, Hülsenfrüchte, Konserven"},{"id":"b08","n":"Campingkocher + 3 Gaskartuschen","prio":"kritisch","tipp":"Eine Kartusche ≈ 1h Kochzeit bei mittlerer Stufe"},{"id":"b09","n":"Kochgeschirr für stromlose Zubereitung","prio":"wichtig","tipp":"Topf, Pfanne, Besteck das Hitze verträgt"},{"id":"b10","n":"Dosenöffner (manuell!)","prio":"kritisch","tipp":"Klingt banal — aber elektrisch ist nutzlos"},{"id":"b11","n":"Vorrat für Haustiere (2 Wochen)","prio":"wichtig","tipp":"Trockenfutter ist ideal für den Notfall"},{"id":"b12","n":"Babymilch \/ Spezialnahrung falls nötig","prio":"kritisch","tipp":"Bei Kleinkind\/Säugling: mindestens 2 Wochen"}]},{"kat":"&#x1f526; Licht & Strom","info":"Ohne Licht verlierst du schnell Orientierung und Sicherheit.","items":[{"id":"b13","n":"Taschenlampe pro Person + Ersatzbatterien","prio":"kritisch","tipp":"Batteries regelmäßig erneuern (mind. 1× pro Jahr)"},{"id":"b14","n":"Stirnlampe (1 pro Erwachsenem)","prio":"kritisch","tipp":"Hände frei = sicherer beim Kochen\/Lesen"},{"id":"b15","n":"Kerzen (mind. 20 Stück) + Kerzenhalter","prio":"wichtig","tipp":"Bienenwachskerzen brennen länger, weniger Ruß"},{"id":"b16","n":"Sturmfeuerzeug + Streichhölzer (wasserdicht)","prio":"kritisch","tipp":"2 Zünder = Redundanz. Windgesichertes Feuerzeug"},{"id":"b17","n":"Powerbank (20.000 mAh), vollgeladen","prio":"kritisch","tipp":"Regelmäßig nachladen! Alle 3 Monate prüfen"},{"id":"b18","n":"Solarladegerät für Powerbank","prio":"wichtig","tipp":"Nach Tag 2 ist Powerbank leer ohne Nachladen"},{"id":"b19","n":"Powerstation 500+ Wh (LiFePO4)","prio":"sinnvoll","tipp":"Versorgt Heizpumpe, Kühlbox, Handy für Tage"}]},{"kat":"&#x1f525; Heizung & Wärme","info":"Moderne Heizungen brauchen Strom — auch Gas- und Ölheizungen.","items":[{"id":"b20","n":"Kaminofen oder Kachelofen vorhanden","prio":"kritisch","tipp":"Ideal: komplett stromlos. Genehmigung prüfen"},{"id":"b21","n":"Brennholzvorrat (mind. 1 Ster)","prio":"wichtig","tipp":"Für 1–2 Wochen kalte Jahreszeit"},{"id":"b22","n":"Katalytofen (Propan) + 2 Flaschen Propan","prio":"wichtig","tipp":"Für Wohnungen ohne Kamin. Lüften nicht vergessen!"},{"id":"b23","n":"Wolldecken (2 pro Person)","prio":"kritisch","tipp":"Wärmste Naturdecke: 100 % Schurwolle"},{"id":"b24","n":"Schlafsack (mind. +5°C Komfort)","prio":"wichtig","tipp":"Schlafzimmer verkleinern: 1 Raum für alle wärmer"},{"id":"b25","n":"Zugang zu Notstrom für Heizungspumpe","prio":"sinnvoll","tipp":"Powerstation 500W kann Umwälzpumpe 6–10h betreiben"}]},{"kat":"&#x1f4fb; Kommunikation & Information","info":"Nach 6–24h fallen Mobilfunkmasten auf Notstrom.","items":[{"id":"b26","n":"Batterie-\/Kurbelradio DAB+\/UKW","prio":"kritisch","tipp":"ARD\/Deutschlandradio senden im Notfall mit Notstrom"},{"id":"b27","n":"Wichtige Nummern auf Papier ausgedruckt","prio":"kritisch","tipp":"Familie, Arzt, Nachbarn, Notruf 110\/112"},{"id":"b28","n":"Familiennotfallplan schriftlich","prio":"kritisch","tipp":"Treffpunkte, wer holt Kinder ab, was bei Evakuierung"},{"id":"b29","n":"Offline-Karten (Papier) der Region","prio":"wichtig","tipp":"Wenn GPS-Apps keine Daten haben"},{"id":"b30","n":"Bargeld (mind. 200 €, kleine Scheine)","prio":"kritisch","tipp":"EC-Karte ohne Strom nutzlos"},{"id":"b31","n":"Whistle \/ Pfeife für Notsignal","prio":"sinnvoll","tipp":"3 kurze Töne = internationales Notsignal"}]},{"kat":"&#x1fa7a; Erste Hilfe & Medizin","info":"Apotheken und Arztpraxen sind bei Blackout schnell überlastet.","items":[{"id":"b32","n":"Vollständiges Erste-Hilfe-Set (DIN 13157)","prio":"kritisch","tipp":"Regelmäßig auf Ablaufdaten prüfen"},{"id":"b33","n":"Persönliche Medikamente (30-Tage-Vorrat)","prio":"kritisch","tipp":"Chroniker: jetzt mit Arzt besprechen!"},{"id":"b34","n":"Schmerzmittel & Fiebermittel","prio":"kritisch","tipp":"Ibuprofen + Paracetamol als Basis"},{"id":"b35","n":"Wunddesinfektion + Verbandsmaterial","prio":"kritisch","tipp":"Octenisept-Spray, sterile Wunden, Elastikbinden"},{"id":"b36","n":"Thermometer (nicht-digital als Backup)","prio":"wichtig","tipp":"Digitales Thermometer = Batterie nötig"},{"id":"b37","n":"Ersatzbrille \/ Kontaktlinsen-Vorrat","prio":"wichtig","tipp":"Oft vergessen — ohne Sehhilfe massiv eingeschränkt"}]},{"kat":"&#x1f6bf; Sanitär & Hygiene","info":"Bei Druckausfall funktioniert die Toilette nicht mehr normal.","items":[{"id":"b38","n":"Toilettenpapier (mind. 20 Rollen)","prio":"wichtig","tipp":"Klingt banal, fehlt aber in jeder Krise zuerst"},{"id":"b39","n":"Camping-Toilette oder Eimer-System als Backup","prio":"wichtig","tipp":"Plastikbeutel + Katzenstreu = funktioniert"},{"id":"b40","n":"Antibakterielles Händedesinfektionsmittel","prio":"kritisch","tipp":"Ohne fließendes Wasser: erste Hygienelinie"},{"id":"b41","n":"Seife (Stückseife, ausreichend)","prio":"wichtig","tipp":"Seife und Wasser schlagen jede Desinfektion"},{"id":"b42","n":"Feuchttücher \/ Baby-Tücher (2 Packungen)","prio":"wichtig","tipp":"Körperpflege ohne Wasser, auch für Geschirrspülen"},{"id":"b43","n":"Damenhygiene (ausreichend Vorrat)","prio":"kritisch","tipp":"Menstrual Cups: umweltfreundlich + notfallgeeignet"}]},{"kat":"&#x1f4c4; Dokumente & Finanzen","info":"Wichtige Dokumente sollten sofort griffbereit sein.","items":[{"id":"b44","n":"Ausweis, Reisepass — griffbereit","prio":"kritisch","tipp":"Wasserdichte Schutzhülle kaufen"},{"id":"b45","n":"Versicherungsdokumente (Kopie)","prio":"wichtig","tipp":"KV, Haftpflicht, Hausrat — auch digital auf USB"},{"id":"b46","n":"Kontodaten + IBAN schriftlich","prio":"wichtig","tipp":"Für Rückbuchungen nach der Krise"},{"id":"b47","n":"Bargeld (mind. 200 €, kleine Scheine)","prio":"kritisch","tipp":"Kleingeld für Markt \/ Direktkauf von Bauern"},{"id":"b48","n":"USB-Stick mit digitalen Kopien","prio":"sinnvoll","tipp":"Alle wichtigen Dokumente als PDF, verschlüsselt"}]}];
const SK='svBK_v1';
let state=JSON.parse(localStorage.getItem(SK)||'{}');
let aktFilter='alle';
const save=()=>localStorage.setItem(SK,JSON.stringify(state));
const total=DATA.reduce((s,k)=>s+k.items.length,0);

const STUFEN=[
    [0,  'Nicht vorbereitet'],
    [20, 'Erste Schritte'],
    [40, 'Grundsicherung'],
    [60, 'Gut vorbereitet'],
    [80, 'Sehr gut vorbereitet'],
    [95, '&#x1f3c6; Blackout-ready'],
];

function getStufe(pct){
    let s=STUFEN[0][1];
    for(const [min,lbl] of STUFEN){if(pct>=min)s=lbl;}
    return s;
}

function render(){
    let checked=0,html='';
    DATA.forEach((kat,ki)=>{
        const vis=kat.items.filter(item=>{
            if(aktFilter==='alle')return true;
            if(aktFilter==='fehlt')return !state[item.id];
            return item.prio===aktFilter;
        });
        if(!vis.length)return;
        const katDone=kat.items.filter(i=>state[i.id]).length;
        kat.items.forEach(i=>{if(state[i.id])checked++;});
        const pct100=Math.round(katDone/kat.items.length*100);
        html+=`<div class="sv-bk-kat">
            <div class="sv-bk-kat-head">
                <div>
                    <div class="sv-bk-kat-title">${kat.kat}</div>
                    <div class="sv-bk-kat-info">${kat.info}</div>
                </div>
                <span class="sv-bk-kat-badge">${katDone}/${kat.items.length} · ${pct100}%</span>
            </div>
            <div class="sv-bk-items">`;
        vis.forEach(item=>{
            const ok=!!state[item.id];
            html+=`<div class="sv-bk-item${ok?' checked':''}" onclick="svBK.tog('${item.id}')">
                <div class="sv-bk-cb">${ok?'✓':''}</div>
                <div>
                    <div class="sv-bk-name">${item.n}</div>
                    <div class="sv-bk-tipp">${item.tipp}</div>
                </div>
                <span class="sv-bk-prio ${item.prio}">${item.prio}</span>
            </div>`;
        });
        html+='</div></div>';
    });
    document.getElementById('bk-liste').innerHTML=html;
    const pct=Math.round(checked/total*100);
    document.getElementById('bk-fill').style.width=pct+'%';
    document.getElementById('bk-pts').textContent=checked+' / '+total+' erledigt ('+pct+' %)';
    document.getElementById('bk-stufe').textContent=getStufe(pct);
}

window.svBK={
    tog(id){state[id]=!state[id];save();render();},
    filter(f,btn){aktFilter=f;document.querySelectorAll('.sv-bk-filter button').forEach(b=>b.classList.remove('aktiv'));btn.classList.add('aktiv');render();},
    reset(){if(confirm('Fortschritt zurücksetzen?')){state={};save();render();}},
    export(){
        const checked=Object.keys(state).filter(k=>state[k]).length;
        const pct=Math.round(checked/total*100);
        let t='BLACKOUT-CHECKLISTE ZUHAUSE\n'+'='.repeat(40)+'\n';
        t+=`Vorbereitungsstand: ${checked}/${total} (${pct}%) — ${getStufe(pct)}\n\n`;
        t+='NOCH FEHLEND (Kritisch):\n';
        DATA.forEach(k=>k.items.filter(i=>i.prio==='kritisch'&&!state[i.id]).forEach(i=>t+='  ☐ '+i.n+'\n'));
        t+='\nVOLLSTÄNDIGE LISTE:\n';
        DATA.forEach(k=>{
            t+='\n'+k.kat+'\n';
            k.items.forEach(i=>t+='  ['+(state[i.id]?'x':' ')+'] '+i.n+'\n');
        });
        t+='\nErstellt mit selbstversorgen.com/tools/blackout-zuhause';
        const b=new Blob([t],{type:'text/plain'});
        const a=document.createElement('a');a.href=URL.createObjectURL(b);a.download='blackout-checkliste.txt';a.click();
    }
};
render();
})();
</script>

]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Frostzonen-Karte</title>
		<link>https://selbstversorgen.com/tools/frostzonen-karte/</link>
		
		<dc:creator><![CDATA[Mark]]></dc:creator>
		<pubDate>Wed, 13 May 2026 10:46:39 +0000</pubDate>
				<guid isPermaLink="false"></guid>

					<description><![CDATA[PLZ eingeben — sofort sehen wann der letzte Frühjahrsfrost und erste Herbstfrost in deiner Region ist. Mit Pflanzempfehlungen für alle 25 deutschen Klimazonen.]]></description>
										<content:encoded><![CDATA[<p><div id="sv-frost" class="sv-tool-wrap">
<style>
#sv-frost{font-family:"DM Sans",sans-serif;color:var(--ink,#1a1814)}
#sv-frost .sv-fr-plz-box{background:var(--card,#faf5e8);border:1px solid var(--line,#d6cab1);border-radius:8px;padding:20px;margin-bottom:20px}
#sv-frost .sv-fr-plz-row{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}
#sv-frost .sv-fr-plz-row label{display:block;font-size:12px;font-weight:500;color:var(--ink-mute,#6b6555);text-transform:uppercase;letter-spacing:.1em;margin-bottom:6px;font-family:"DM Mono",monospace}
#sv-frost .sv-fr-plz-row input{width:140px;padding:10px 14px;border:1.5px solid var(--line,#d6cab1);border-radius:6px;font:inherit;font-size:16px;letter-spacing:.1em;background:var(--paper,#f3ecdc);color:var(--ink,#1a1814)}
#sv-frost .sv-fr-plz-row input:focus{border-color:var(--forest,#1a3a2a);outline:0}
#sv-frost .sv-fr-result-card{display:none;background:var(--forest,#1a3a2a);color:var(--paper,#f3ecdc);border-radius:8px;padding:20px;margin-bottom:20px}
#sv-frost .sv-fr-result-card.show{display:block}
#sv-frost .sv-fr-region{font-family:"Playfair Display",serif;font-size:22px;font-weight:600;margin:0 0 4px}
#sv-frost .sv-fr-zone{font-family:"DM Mono",monospace;font-size:12px;color:var(--amber-2,#d9a14a);letter-spacing:.1em;margin-bottom:16px}
#sv-frost .sv-fr-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}
@media(max-width:500px){#sv-frost .sv-fr-stats{grid-template-columns:1fr 1fr}}
#sv-frost .sv-fr-stat{background:rgba(255,255,255,.07);border-radius:6px;padding:12px;text-align:center}
#sv-frost .sv-fr-stat-val{font-family:"Playfair Display",serif;font-size:18px;font-weight:600;color:var(--amber-2,#d9a14a);line-height:1.2}
#sv-frost .sv-fr-stat-lbl{font-size:10px;color:rgba(243,236,220,.65);font-family:"DM Mono",monospace;text-transform:uppercase;letter-spacing:.08em;margin-top:3px}
#sv-frost .sv-fr-desc{font-size:13px;color:rgba(243,236,220,.8);line-height:1.6}
#sv-frost .sv-fr-tips{background:var(--amber-soft,#f1d792);border:1px solid var(--amber,#c08a2a);border-radius:6px;padding:14px 16px;margin-bottom:20px;font-size:13px;line-height:1.6;display:none}
#sv-frost .sv-fr-tips.show{display:block}
#sv-frost .sv-fr-tips strong{color:var(--forest,#1a3a2a)}
/* Tabelle */
#sv-frost .sv-fr-table-wrap{overflow-x:auto}
#sv-frost .sv-fr-table{width:100%;border-collapse:collapse;font-size:13px;min-width:600px}
#sv-frost .sv-fr-table th{background:var(--forest,#1a3a2a);color:var(--paper,#f3ecdc);padding:8px 12px;text-align:left;font-size:11px;font-family:"DM Mono",monospace;letter-spacing:.1em;text-transform:uppercase;font-weight:500}
#sv-frost .sv-fr-table td{padding:9px 12px;border-bottom:1px solid var(--line,#d6cab1);vertical-align:top}
#sv-frost .sv-fr-table tr:hover td{background:var(--paper-2,#ebe2cd)}
#sv-frost .sv-fr-table tr.highlight td{background:rgba(26,58,42,.08);font-weight:500}
#sv-frost .sv-fr-table .zone-badge{display:inline-block;padding:2px 7px;border-radius:999px;font-family:"DM Mono",monospace;font-size:10px;font-weight:600}
#sv-frost .sv-fr-table .z8{background:#c8e6c9;color:#1b5e20}
#sv-frost .sv-fr-table .z7{background:#fff9c4;color:#f57f17}
#sv-frost .sv-fr-table .z6{background:#ffcdd2;color:#b71c1c}
#sv-frost .sv-fr-section-title{font-family:"Playfair Display",serif;font-size:18px;font-weight:600;color:var(--forest,#1a3a2a);margin:24px 0 12px}
</style>

<div class="sv-fr-plz-box">
  <div class="sv-fr-plz-row">
    <div>
      <label>Deine Postleitzahl</label>
      <input type="text" id="sv-fr-plz" placeholder="z.B. 80333" maxlength="5"
        oninput="svFrost.lookup(this.value)" pattern="[0-9]{5}">
    </div>
    <div style="font-size:13px;color:var(--ink-mute);padding-bottom:10px">
      Die ersten 2 Ziffern bestimmen deine Klimazone.<br>
      <span style="font-size:11px">Alle Angaben sind Durchschnittswerte — Mikroklima kann abweichen.</span>
    </div>
  </div>
</div>

<div class="sv-fr-result-card" id="sv-fr-result"></div>
<div class="sv-fr-tips" id="sv-fr-tips"></div>

<div class="sv-fr-section-title">Alle Regionen im Überblick</div>
<div class="sv-fr-table-wrap">
  <table class="sv-fr-table">
    <thead>
      <tr>
        <th>Region</th>
        <th>PLZ</th>
        <th>Zone</th>
        <th>Letzter Frost</th>
        <th>Erster Frost</th>
        <th>Frostfrei</th>
      </tr>
    </thead>
    <tbody id="sv-fr-tbody"></tbody>
  </table>
</div>

</div><!-- /.sv-tool-wrap -->

<script>
(function(){
const zonen = [["Nordseeküste","20","27","8b","1. April","10. November",220,"Mildestes Klima Deutschlands. Wenig Frost, viel Wind."],["Hamburg & Umland","20","22","8a","5. April","5. November",210,"Maritim beeinflusst. Früher Frühling, milder Herbst."],["Schleswig-Holstein","23","25","8a","10. April","31. Oktober",200,"Ozeanisch geprägt. Stabile, mild-feuchte Witterung."],["Mecklenburg-Vorpommern","17","19","7b","15. April","20. Oktober",185,"Küsteneinfluss nimmt nach innen ab. Ostseeklima."],["Berlin & Brandenburg","10","16","7b","20. April","15. Oktober",175,"Kontinentaler. Heiße Sommer, kalte Winter."],["Sachsen & Thüringen","01","09","7a","25. April","10. Oktober",165,"Mitteldeutschland. Kälter im Winter, wärmer im Sommer."],["Sachsen-Anhalt","38","39","7b","20. April","15. Oktober",175,"Niederschlagsarm (Regenschatten Harz). Trocken-warm."],["Bremen & Niedersachsen","26","32","8a","5. April","5. November",210,"Weser-Klima. Mild und feucht, ganzjährig."],["NRW Rhein-Ruhr","40","51","8a","1. April","10. November",220,"Wärmstes Klima NRWs. Großstadtwärme in Ballungsräumen."],["Sauerland & Eifel","56","59","7a","30. April","5. Oktober",155,"Mittelgebirge: späterer Frühlingsbeginn, früher Frost."],["Hessen","34","36","7b","15. April","15. Oktober",180,"Vielfältig: milde Täler (Rhein-Main) bis kalte Kuppen."],["Rhein-Main Frankfurt","60","65","8b","25. März","15. November",230,"Wärmstes Inland-Klima. Weinbau möglich. Früh starten."],["Rheinland-Pfalz","54","55","8a","1. April","10. November",220,"Mosel- und Rheintal: sehr mild, Weinbauklima."],["Saarland","66","66","8a","5. April","10. November",215,"Westlich-ozeanisch. Milder als Bundesdurchschnitt."],["Pfalz & Mannheim","67","69","8b","25. März","20. November",235,"Wärmstes Klima nördlich der Alpen! Feigen und Mandeln."],["Stuttgart & Schwaben","70","73","7b","10. April","25. Oktober",195,"Neckartal warm. Schwäbische Alb kälter (Zone 6b)."],["Schwarzwald","77","79","6b","10. Mai","1. Oktober",140,"Höhenlagen bis 1500m. Später Frühling, früher Frost!"],["Bodensee","88","88","8a","5. April","10. November",215,"Großer Milderer. Weinbau, Obstbau, milde Winter."],["Oberschwaben & Allgäu","87","89","7a","25. April","10. Oktober",165,"Regen- und schneereich. Kälteres Kontinentalklima."],["München & Oberbayern","80","85","7a","25. April","10. Oktober",165,"Föhn bringt Wärme, aber Spätfrost bis Mitte Mai möglich!"],["Alpenvorland","82","87","6b","10. Mai","1. Oktober",140,"Alpenrand: Spätfrost gefährlich! Vlies bereithalten."],["Augsburg & Donauried","86","86","7b","20. April","15. Oktober",175,"Kältesee-Lagen: Frühfrost durch Kaltluftabsenkung."],["Nürnberg & Franken","90","96","7b","20. April","15. Oktober",175,"Kontinental. Trocken-warm im Sommer, kalt im Winter."],["Würzburg & Mainfranken","97","97","8a","5. April","5. November",210,"Wärmstes Klima Frankens. Weinbauzone. Früher Frühling."],["Franken Ost","91","95","7a","30. April","5. Oktober",155,"Rauere Lagen. Fichtelgebirge und Frankenwald kälter."]];
const heute = 9;

const zoneClass = z => z.includes('8') ? 'z8' : z.includes('7') ? 'z7' : 'z6';

// Build table
const tbody = document.getElementById('sv-fr-tbody');
tbody.innerHTML = zonen.map(z => `
  <tr id="sv-row-${z[1]}">
    <td>${z[0]}</td>
    <td style="font-family:'DM Mono',monospace">${z[1]}–${z[2]}</td>
    <td><span class="zone-badge ${zoneClass(z[3])}">${z[3]}</span></td>
    <td>${z[4]}</td>
    <td>${z[5]}</td>
    <td style="font-family:'DM Mono',monospace">${z[6]} Tage</td>
  </tr>`).join('');

window.svFrost = {
  lookup(val) {
    const clean = val.replace(/\D/g,'');
    if (clean.length < 2) {
      document.getElementById('sv-fr-result').classList.remove('show');
      document.getElementById('sv-fr-tips').classList.remove('show');
      document.querySelectorAll('#sv-fr-tbody tr.highlight').forEach(r => r.classList.remove('highlight'));
      return;
    }
    const prefix = parseInt(clean.substring(0,2));
    const zone = zonen.find(z => prefix >= parseInt(z[1]) && prefix <= parseInt(z[2]));
    if (!zone) return;

    const resEl = document.getElementById('sv-fr-result');
    resEl.classList.add('show');
    resEl.innerHTML = `
      <div class="sv-fr-region">${zone[0]}</div>
      <div class="sv-fr-zone">USDA Zone ${zone[3]} · PLZ ${zone[1]}–${zone[2]}</div>
      <div class="sv-fr-stats">
        <div class="sv-fr-stat">
          <div class="sv-fr-stat-val">${zone[4]}</div>
          <div class="sv-fr-stat-lbl">Letzter Frost</div>
        </div>
        <div class="sv-fr-stat">
          <div class="sv-fr-stat-val">${zone[5]}</div>
          <div class="sv-fr-stat-lbl">Erster Frost</div>
        </div>
        <div class="sv-fr-stat">
          <div class="sv-fr-stat-val">${zone[6]} Tage</div>
          <div class="sv-fr-stat-lbl">Frostfrei</div>
        </div>
      </div>
      <div class="sv-fr-desc">${zone[7]}</div>`;

    // Tips based on current month and zone
    const tips = this.getTips(zone, heute);
    const tipsEl = document.getElementById('sv-fr-tips');
    tipsEl.classList.add('show');
    tipsEl.innerHTML = tips;

    // Highlight row in table
    document.querySelectorAll('#sv-fr-tbody tr.highlight').forEach(r => r.classList.remove('highlight'));
    const row = document.getElementById('sv-row-' + zone[1]);
    if (row) {
      row.classList.add('highlight');
      row.scrollIntoView({block:'nearest', behavior:'smooth'});
    }
  },
  getTips(zone, monat) {
    const isWarm = zone[3].includes('8');
    const isCold = zone[3].includes('6');
    const tips = [];

    if (monat <= 3) {
      tips.push(isWarm
        ? '&#x1f331; <strong>Jetzt:</strong> In deiner Region kannst du früh starten. Kälteschutz in Frühbeeten reicht für die ersten Aussaaten.'
        : '&#x2744; <strong>Jetzt:</strong> Noch zu früh fürs Freiland. Vorziehen drinnen möglich. Frühbeet erst ab April.');
    }
    if (monat >= 4 && monat <= 5) {
      tips.push(isCold
        ? '&#x26a0; <strong>Achtung:</strong> In deiner Region ist Spätfrost bis in den Mai möglich! Tomaten und Paprika erst nach dem 15. Mai auspflanzen — und Vlies bereithalten.'
        : isWarm
        ? '&#x2705; <strong>Jetzt:</strong> Du kannst wärmeliebende Kulturen früher auspflanzen als der Bundesdurchschnitt. Aber: Nachts beobachten!'
        : '&#x26a1; <strong>Eisheiligen (11.–15. Mai):</strong> In deiner Region besonders beachten! Erst danach Tomaten & Paprika ins Freiland.');
    }
    if (monat >= 9 && monat <= 10) {
      tips.push(isCold
        ? '&#x1f342; <strong>Erster Frost nah:</strong> In deiner Region kommt der erste Frost früh. Kürbis, Zucchini und Paprika jetzt ernten, sonst frieren sie ab.'
        : '&#x1f342; <strong>Herbst:</strong> Noch etwas Zeit. Grüne Tomaten nachreifen lassen, Kürbis ernten sobald Stiel verkorkt.');
    }
    if (monat >= 11 || monat <= 2) {
      tips.push('&#x1f33f; <strong>Winterharte Kulturen:</strong> Grünkohl und Rosenkohl trotzen dem Frost — schmecken danach sogar besser. Feldsalat unter Vlies möglich.');
    }
    tips.push(`&#x1f4cd; <strong>Deine Frostfreie Zone:</strong> ${zone[6]} frostfreie Tage geben dir Zeit für Kulturen mit ${zone[6] > 180 ? 'langen' : 'kürzeren'} Reifezeiten.`);
    return tips.map(t => `<p style="margin:4px 0">${t}</p>`).join('');
  }
};
})();
</script>
</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Pflanzplan-Generator</title>
		<link>https://selbstversorgen.com/tools/pflanzplan-generator/</link>
		
		<dc:creator><![CDATA[Mark]]></dc:creator>
		<pubDate>Wed, 13 May 2026 10:46:39 +0000</pubDate>
				<guid isPermaLink="false"></guid>

					<description><![CDATA[Wähle deine Wunschpflanzen und erhalte deinen persönlichen Monatsplan — mit Vorzieh-, Aussaat-, Pflanz- und Ernteterminen. Exportierbar als Text.]]></description>
										<content:encoded><![CDATA[<p><div id="sv-pflanz" class="sv-tool-wrap">
<style>
#sv-pflanz{font-family:"DM Sans",sans-serif;color:var(--ink,#1a1814)}
#sv-pflanz .sv-pf-layout{display:grid;gap:20px;grid-template-columns:1fr}
@media(min-width:800px){#sv-pflanz .sv-pf-layout{grid-template-columns:280px 1fr}}
#sv-pflanz .sv-pf-auswahl{background:var(--card,#faf5e8);border:1px solid var(--line,#d6cab1);border-radius:8px;overflow:hidden}
#sv-pflanz .sv-pf-auswahl-head{padding:12px 16px;background:var(--paper-3,#e1d6bd);border-bottom:1px solid var(--line,#d6cab1);font-weight:600;font-size:14px;color:var(--forest,#1a3a2a);display:flex;justify-content:space-between;align-items:center}
#sv-pflanz .sv-pf-auswahl-head span{font-family:"DM Mono",monospace;font-size:11px;color:var(--ink-mute,#6b6555);font-weight:400}
#sv-pflanz .sv-pf-search{padding:8px 12px;border-bottom:1px solid var(--line,#d6cab1)}
#sv-pflanz .sv-pf-search input{width:100%;border:1px solid var(--line,#d6cab1);border-radius:4px;padding:7px 10px;font:inherit;font-size:13px;background:var(--paper,#f3ecdc);color:var(--ink,#1a1814)}
#sv-pflanz .sv-pf-list{max-height:420px;overflow-y:auto}
#sv-pflanz .sv-pf-kat-head{padding:6px 14px;font-family:"DM Mono",monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-mute,#6b6555);background:var(--paper-2,#ebe2cd);border-bottom:1px solid var(--line,#d6cab1)}
#sv-pflanz .sv-pf-item{display:flex;align-items:center;gap:10px;padding:8px 14px;border-bottom:1px solid rgba(214,202,177,.4);cursor:pointer;transition:background .1s;font-size:13px}
#sv-pflanz .sv-pf-item:hover{background:var(--paper-2,#ebe2cd)}
#sv-pflanz .sv-pf-item.selected{background:rgba(26,58,42,.08)}
#sv-pflanz .sv-pf-item input[type=checkbox]{accent-color:var(--forest,#1a3a2a);width:15px;height:15px;flex-shrink:0}
#sv-pflanz .sv-pf-item .diff{margin-left:auto;font-size:10px;font-family:"DM Mono",monospace;color:var(--ink-mute,#6b6555)}
#sv-pflanz .sv-pf-item .diff.mittel{color:var(--amber,#c08a2a)}
#sv-pflanz .sv-pf-item .diff.schwer{color:var(--rust,#a8542a)}
#sv-pflanz .sv-pf-result{min-height:200px}
#sv-pflanz .sv-pf-empty{padding:40px 20px;text-align:center;color:var(--ink-mute,#6b6555);font-size:14px}
#sv-pflanz .sv-pf-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:20px}
#sv-pflanz .sv-stat-box{background:var(--paper-2,#ebe2cd);border-radius:6px;padding:12px;text-align:center}
#sv-pflanz .sv-stat-val{font-family:"Playfair Display",serif;font-size:22px;font-weight:600;color:var(--forest,#1a3a2a)}
#sv-pflanz .sv-stat-lbl{font-size:11px;color:var(--ink-mute,#6b6555);font-family:"DM Mono",monospace;text-transform:uppercase;letter-spacing:.08em;margin-top:2px}
#sv-pflanz .sv-monat-plan{display:flex;flex-direction:column;gap:2px}
#sv-pflanz .sv-mp-row{display:grid;grid-template-columns:90px 1fr;gap:8px;align-items:start;min-height:36px}
#sv-pflanz .sv-mp-label{font-family:"DM Mono",monospace;font-size:11px;color:var(--ink-mute,#6b6555);text-transform:uppercase;letter-spacing:.08em;padding-top:2px;text-align:right;padding-right:8px}
#sv-pflanz .sv-mp-label.heute{color:var(--forest,#1a3a2a);font-weight:700}
#sv-pflanz .sv-mp-tasks{display:flex;flex-wrap:wrap;gap:4px}
#sv-pflanz .sv-task-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:999px;font-size:12px;white-space:nowrap}
#sv-pflanz .sv-task-chip.v{background:#f1d792;color:#633806}
#sv-pflanz .sv-task-chip.d{background:#cfd6c4;color:#27500a}
#sv-pflanz .sv-task-chip.p{background:#1a3a2a;color:#f3ecdc}
#sv-pflanz .sv-task-chip.r{background:#c08a2a;color:#fff}
#sv-pflanz .sv-mp-divider{border:0;border-top:1px dashed var(--line,#d6cab1);margin:4px 0}
#sv-pflanz .sv-heute-marker{background:var(--forest,#1a3a2a);color:var(--paper,#f3ecdc);border-radius:4px;padding:2px 6px;font-size:10px;font-family:"DM Mono",monospace;margin-left:auto}
#sv-pflanz .sv-pf-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;background:var(--forest,#1a3a2a);color:var(--paper,#f3ecdc);border:0;border-radius:4px;font:inherit;font-size:13px;font-weight:600;cursor:pointer;margin-top:12px}
#sv-pflanz .sv-pf-btn:hover{background:var(--forest-3,#0f2419)}
#sv-pflanz .sv-legend-row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px;font-size:12px}
#sv-pflanz .sv-legend-chip{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:999px}
</style>

<div class="sv-pf-layout">

  <!-- Pflanzen-Auswahl -->
  <div class="sv-pf-auswahl">
    <div class="sv-pf-auswahl-head">
      Pflanzen wählen
      <span id="sv-pf-count">0 ausgewählt</span>
    </div>
    <div class="sv-pf-search">
      <input type="text" placeholder="Suchen…" oninput="svPflanz.filter(this.value)" id="sv-pf-q">
    </div>
    <div class="sv-pf-list" id="sv-pf-list"></div>
  </div>

  <!-- Plan-Ausgabe -->
  <div class="sv-pf-result" id="sv-pf-result">
    <div class="sv-pf-empty">← Wähle links Pflanzen aus um deinen persönlichen Monatsplan zu erhalten.</div>
  </div>

</div>

</div><!-- /.sv-tool-wrap -->

<script>
(function(){
const pflanzen = [["Tomate","Gemüse","&#x1f345;",[1,2,3],[],[5,6],[7,8,9,10],70,0.5,"mittel"],["Paprika","Gemüse","&#x1fad1;",[1,2,3],[],[5,6],[7,8,9,10],80,0.5,"mittel"],["Gurke","Gemüse","&#x1f952;",[4,5],[],[5,6],[7,8,9],50,0.5,"leicht"],["Zucchini","Gemüse","&#x1f96c;",[4,5],[5],[5,6],[6,7,8,9],50,1,"leicht"],["Kürbis","Gemüse","&#x1f383;",[4,5],[5],[5,6],[9,10],100,3,"leicht"],["Kopfsalat","Gemüse","&#x1f957;",[2,3,4],[3,4,8,9],[3,4,5,8,9],[4,5,6,9,10],45,0.2,"leicht"],["Rucola","Gemüse","&#x1f33f;",[],[3,4,5,6,7,8],[],[4,5,6,7,8,9],30,0.1,"leicht"],["Spinat","Gemüse","&#x1f33f;",[],[2,3,8,9],[],[4,5,9,10],45,0.2,"leicht"],["Karotte","Gemüse","&#x1f955;",[],[3,4,5,6,7],[],[7,8,9,10],90,0.1,"leicht"],["Kohlrabi","Gemüse","&#x1fad0;",[2,3],[4,5,6,7],[3,4,5,6,7],[5,6,7,8,9],50,0.2,"leicht"],["Brokkoli","Gemüse","&#x1f966;",[3,4],[],[4,5,6],[6,7,8,9],70,0.5,"mittel"],["Buschbohne","Gemüse","&#x1fad8;",[],[5,6,7],[],[7,8,9],55,0.2,"leicht"],["Erbse","Gemüse","&#x1f7e2;",[],[2,3,4,5],[],[5,6,7],60,0.2,"leicht"],["Mais","Gemüse","&#x1f33d;",[4,5],[5],[5,6],[8,9],90,0.5,"mittel"],["Rote Bete","Gemüse","&#x1f7e3;",[],[4,5,6],[],[7,8,9,10],70,0.2,"leicht"],["Knoblauch","Gemüse","&#x1f9c4;",[],[9,10,3,4],[],[6,7],250,0.1,"leicht"],["Zwiebel","Gemüse","&#x1f9c5;",[2,3],[3,4],[4],[7,8],120,0.1,"leicht"],["Kartoffel","Gemüse","&#x1f954;",[],[],[4,5],[7,8,9],100,0.5,"leicht"],["Radieschen","Gemüse","&#x1f534;",[],[3,4,5,6,7,8],[],[4,5,6,7,8,9],28,0.1,"leicht"],["Basilikum","Kräuter","&#x1f33f;",[3,4,5],[5,6],[5,6],[6,7,8,9],60,0.1,"mittel"],["Petersilie","Kräuter","&#x1f33f;",[2,3],[3,4,8],[4],[5,6,7,8,9,10,11],70,0.1,"leicht"],["Schnittlauch","Kräuter","&#x1f33f;",[2,3],[3,4],[3,4],[4,5,6,7,8,9,10],60,0.1,"leicht"],["Dill","Kräuter","&#x1f33f;",[],[3,4,5,6],[],[5,6,7,8],40,0.1,"leicht"],["Thymian","Kräuter","&#x1f33f;",[2,3,4],[4,5],[4,5],[5,6,7,8,9,10],90,0.1,"leicht"],["Minze","Kräuter","&#x1f33f;",[2,3],[],[4,5],[5,6,7,8,9,10],60,0.2,"leicht"],["Erdbeere","Obst","&#x1f353;",[],[],[3,4,8,9],[5,6,7],365,0.3,"leicht"],["Himbeere","Obst","&#x1fad0;",[],[],[3,4,10,11],[6,7,8],365,1,"leicht"],["Rhabarber","Obst","&#x1f7e5;",[],[],[3,4,10],[4,5,6],365,0.5,"leicht"]];
const monate = ["Jan","Feb","M\u00e4r","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"];
const monateL = ['Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember'];
const heute = new Date().getMonth() + 1; // 1-indexed
let selected = new Set();
let query = '';

const aktionen = [
  {key:'v', label:'Vorziehen', cls:'v'},
  {key:'d', label:'Direktsaat', cls:'d'},
  {key:'p', label:'Pflanzen', cls:'p'},
  {key:'r', label:'Ernten', cls:'r'},
];
const keyMap = {v:1, d:2, p:3, r:4};

window.svPflanz = {
  filter(q) { query = q.toLowerCase(); this.renderList(); },
  toggle(idx) {
    if (selected.has(idx)) selected.delete(idx);
    else selected.add(idx);
    this.renderList();
    this.renderPlan();
  },
  renderList() {
    const byKat = {};
    pflanzen.forEach((p, i) => {
      if (query && !p[0].toLowerCase().includes(query)) return;
      if (!byKat[p[1]]) byKat[p[1]] = [];
      byKat[p[1]].push({p, i});
    });
    let html = '';
    Object.entries(byKat).forEach(([kat, items]) => {
      html += `<div class="sv-pf-kat-head">${kat}</div>`;
      items.forEach(({p, i}) => {
        const sel = selected.has(i);
        html += `<div class="sv-pf-item${sel?' selected':''}" onclick="svPflanz.toggle(${i})">
          <input type="checkbox" ${sel?'checked':''} onclick="event.stopPropagation();svPflanz.toggle(${i})">
          <span>${p[2]}</span>
          <span>${p[0]}</span>
          <span class="diff ${p[9]}">${p[9]}</span>
        </div>`;
      });
    });
    document.getElementById('sv-pf-list').innerHTML = html || '<div style="padding:16px;font-size:13px;color:var(--ink-mute)">Keine Treffer</div>';
    document.getElementById('sv-pf-count').textContent = selected.size + ' ausgewählt';
  },
  renderPlan() {
    const el = document.getElementById('sv-pf-result');
    if (selected.size === 0) {
      el.innerHTML = '<div class="sv-pf-empty">← Wähle links Pflanzen aus um deinen persönlichen Monatsplan zu erhalten.</div>';
      return;
    }
    const sel = [...selected].map(i => pflanzen[i]);
    const totalPlatz = sel.reduce((s, p) => s + p[8], 0);
    const schwierig = sel.filter(p => p[9] === 'schwer').length;
    const mittel = sel.filter(p => p[9] === 'mittel').length;
    
    // Build month plan — Indizes: [3]=vorziehen [4]=direktsaat [5]=pflanzen [6]=ernte
    // Priorität: vorziehen > pflanzen > direktsaat > ernte
    const plan = {}; // month -> {v:[], d:[], p:[], r:[]}
    for (let m = 1; m <= 12; m++) {
      plan[m] = {v:[], d:[], p:[], r:[]};
      sel.forEach(p => {
        // Reihenfolge der Prüfung = Priorität (höchste zuerst)
        if      (p[3].includes(m)) plan[m].v.push(p);  // Vorziehen
        else if (p[5].includes(m)) plan[m].p.push(p);  // Auspflanzen
        else if (p[4].includes(m)) plan[m].d.push(p);  // Direktsaat
        else if (p[6].includes(m)) plan[m].r.push(p);  // Ernten
      });
    }

    let html = `
      <div class="sv-pf-summary">
        <div class="sv-stat-box"><div class="sv-stat-val">${sel.length}</div><div class="sv-stat-lbl">Kulturen</div></div>
        <div class="sv-stat-box"><div class="sv-stat-val">${totalPlatz.toFixed(1)}</div><div class="sv-stat-lbl">Min. m²</div></div>
        <div class="sv-stat-box"><div class="sv-stat-val">${mittel + schwierig > 0 ? mittel + schwierig : '–'}</div><div class="sv-stat-lbl">Anspruchsvoll</div></div>
      </div>
      <div class="sv-legend-row">
        <span class="sv-legend-chip v">Vorziehen</span>
        <span class="sv-legend-chip d">Direktsaat</span>
        <span class="sv-legend-chip p">Auspflanzen</span>
        <span class="sv-legend-chip r">Ernten</span>
      </div>
      <div class="sv-monat-plan">`;

    for (let m = 1; m <= 12; m++) {
      const isHeute = m === heute;
      const tasks = plan[m];
      const hasAny = tasks.v.length || tasks.d.length || tasks.p.length || tasks.r.length;
      if (!hasAny && !isHeute) continue;

      html += `<div class="sv-mp-row">
        <div class="sv-mp-label${isHeute?' heute':''}">${monate[m-1]}${isHeute?' &#x25c0;':''}</div>
        <div class="sv-mp-tasks">`;
      
      if (!hasAny) {
        html += '<span style="font-size:12px;color:var(--ink-mute);padding:3px 0">Keine Aufgaben</span>';
      }
      ['v','d','p','r'].forEach((key, ki) => {
        const aktLabel = ['Vorziehen','Direktsaat','Pflanzen','Ernten'][ki];
        tasks[key].forEach(p => {
          html += `<span class="sv-task-chip ${key}">${p[2]} ${p[0]}</span>`;
        });
      });
      html += `</div></div>`;
    }

    html += `</div>
      <button class="sv-pf-btn" onclick="svPflanz.exportPlan()">&#x1f4cb; Plan als Text exportieren</button>`;

    el.innerHTML = html;
  },
  exportPlan() {
    const sel = [...selected].map(i => pflanzen[i]);
    let txt = 'PFLANZPLAN — selbstversorgen.com\n' + '='.repeat(40) + '\n\n';
    txt += 'Ausgewählte Kulturen: ' + sel.map(p => p[0]).join(', ') + '\n\n';
    const plan = {};
    for (let m = 1; m <= 12; m++) {
      plan[m] = {v:[], d:[], p:[], r:[]};
      sel.forEach(p => {
        if      (p[3].includes(m)) plan[m].v.push(p[0]);
        else if (p[5].includes(m)) plan[m].p.push(p[0]);
        else if (p[4].includes(m)) plan[m].d.push(p[0]);
        else if (p[6].includes(m)) plan[m].r.push(p[0]);
      });
      const t = plan[m];
      if (!t.v.length && !t.d.length && !t.p.length && !t.r.length) continue;
      txt += `## ${monateL[m-1]}\n`;
      if (t.v.length) txt += `  Vorziehen: ${t.v.join(', ')}\n`;
      if (t.d.length) txt += `  Direktsaat: ${t.d.join(', ')}\n`;
      if (t.p.length) txt += `  Pflanzen: ${t.p.join(', ')}\n`;
      if (t.r.length) txt += `  Ernten: ${t.r.join(', ')}\n`;
      txt += '\n';
    }
    txt += '\nErstellt mit selbstversorgen.com/tools/pflanzplan-generator';
    const blob = new Blob([txt], {type:'text/plain'});
    const a = document.createElement('a');
    a.href = URL.createObjectURL(blob);
    a.download = 'pflanzplan.txt';
    a.click();
  }
};

svPflanz.renderList();
})();
</script>
</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Autarkie-Grad-Test</title>
		<link>https://selbstversorgen.com/tools/autarkie-grad-test/</link>
		
		<dc:creator><![CDATA[Mark]]></dc:creator>
		<pubDate>Wed, 13 May 2026 07:10:07 +0000</pubDate>
				<guid isPermaLink="false"></guid>

					<description><![CDATA[10 Fragen, 3 Minuten — finde heraus auf welcher Stufe der Selbstversorger-Leiter du stehst.]]></description>
										<content:encoded><![CDATA[<div id="sv-atest" class="sv-tool-wrap">
<style>
#sv-atest{font-family:"DM Sans",sans-serif;color:var(--ink,#1a1814)}
#sv-atest .sv-at-progress{height:6px;background:var(--line,#d6cab1);border-radius:999px;margin-bottom:24px;overflow:hidden}
#sv-atest .sv-at-bar{height:100%;background:var(--forest,#1a3a2a);border-radius:999px;transition:width .3s}
#sv-atest .sv-at-meta{display:flex;justify-content:space-between;font-size:12px;color:var(--ink-mute,#6b6555);font-family:"DM Mono",monospace;margin-bottom:8px}
#sv-atest .sv-at-q{background:var(--card,#faf5e8);border:1px solid var(--line,#d6cab1);border-radius:8px;padding:24px;min-height:180px}
#sv-atest .sv-at-q .sv-at-bereich{font-size:11px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;font-family:"DM Mono",monospace;color:var(--ink-mute,#6b6555);margin-bottom:10px;display:flex;align-items:center;gap:6px}
#sv-atest .sv-at-q h3{font-family:"Playfair Display",serif;font-size:20px;font-weight:600;color:var(--forest,#1a3a2a);margin:0 0 20px;line-height:1.3}
#sv-atest .sv-at-options{display:grid;gap:8px}
#sv-atest .sv-at-opt{display:flex;align-items:center;gap:12px;padding:12px 16px;border:1.5px solid var(--line,#d6cab1);border-radius:6px;cursor:pointer;transition:all .15s;background:var(--paper,#f3ecdc);font-size:14px}
#sv-atest .sv-at-opt:hover{border-color:var(--forest,#1a3a2a);background:var(--paper-2,#ebe2cd)}
#sv-atest .sv-at-opt.selected{border-color:var(--forest,#1a3a2a);background:var(--forest,#1a3a2a);color:var(--paper,#f3ecdc)}
#sv-atest .sv-at-opt .sv-opt-dot{width:18px;height:18px;border-radius:50%;border:2px solid var(--line,#d6cab1);flex-shrink:0;transition:all .15s}
#sv-atest .sv-at-opt.selected .sv-opt-dot{background:var(--amber,#c08a2a);border-color:var(--amber,#c08a2a)}
#sv-atest .sv-at-nav{display:flex;justify-content:space-between;margin-top:16px;gap:12px}
#sv-atest .sv-at-btn{padding:11px 22px;border-radius:4px;font:inherit;font-size:14px;font-weight:600;cursor:pointer;transition:all .15s}
#sv-atest .sv-at-btn-back{border:1.5px solid var(--line,#d6cab1);background:var(--card,#faf5e8);color:var(--ink-soft,#4a443a)}
#sv-atest .sv-at-btn-back:hover{border-color:var(--forest,#1a3a2a)}
#sv-atest .sv-at-btn-next{border:0;background:var(--forest,#1a3a2a);color:var(--paper,#f3ecdc)}
#sv-atest .sv-at-btn-next:hover{background:var(--forest-3,#0f2419)}
#sv-atest .sv-at-btn-next:disabled{background:var(--line,#d6cab1);cursor:not-allowed}
/* Ergebnis */
#sv-atest .sv-at-result{display:none}
#sv-atest .sv-at-stufe-badge{display:inline-block;background:var(--forest,#1a3a2a);color:var(--paper,#f3ecdc);font-family:"Playfair Display",serif;font-style:italic;font-size:48px;font-weight:600;width:80px;height:80px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:16px}
#sv-atest .sv-at-stufe-name{font-family:"Playfair Display",serif;font-size:28px;font-weight:600;color:var(--forest,#1a3a2a);margin-bottom:8px}
#sv-atest .sv-at-stufe-desc{font-size:15px;color:var(--ink-soft,#4a443a);line-height:1.6;margin-bottom:24px;max-width:58ch}
#sv-atest .sv-at-bereiche-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:24px}
@media(min-width:600px){#sv-atest .sv-at-bereiche-grid{grid-template-columns:repeat(3,1fr)}}
#sv-atest .sv-at-b-card{background:var(--card,#faf5e8);border:1px solid var(--line,#d6cab1);border-radius:6px;padding:12px}
#sv-atest .sv-at-b-name{font-size:12px;font-weight:600;color:var(--forest,#1a3a2a);margin-bottom:6px}
#sv-atest .sv-at-b-bar{height:8px;background:var(--line,#d6cab1);border-radius:999px;overflow:hidden;margin-bottom:4px}
#sv-atest .sv-at-b-fill{height:100%;border-radius:999px;background:var(--forest,#1a3a2a)}
#sv-atest .sv-at-b-pct{font-size:11px;color:var(--ink-mute,#6b6555);font-family:"DM Mono",monospace}
#sv-atest .sv-at-next-step{background:var(--amber-soft,#f1d792);border:1px solid var(--amber,#c08a2a);border-radius:6px;padding:14px 18px;font-size:14px;line-height:1.6;color:var(--ink,#1a1814);margin-bottom:20px}
#sv-atest .sv-at-next-step strong{color:var(--forest,#1a3a2a)}
#sv-atest .sv-at-cta-row{display:flex;gap:12px;flex-wrap:wrap}
#sv-atest .sv-at-cta{display:inline-flex;align-items:center;gap:8px;padding:11px 18px;border-radius:4px;font:inherit;font-size:13px;font-weight:600;cursor:pointer;text-decoration:none}
#sv-atest .sv-at-cta-prim{background:var(--forest,#1a3a2a);color:var(--paper,#f3ecdc);border:0}
#sv-atest .sv-at-cta-sec{background:transparent;color:var(--forest,#1a3a2a);border:1.5px solid var(--forest,#1a3a2a)}
/* Affiliate-Produkte am Ergebnis */
#sv-atest .sv-at-aff{margin-bottom:20px}
#sv-atest .sv-at-aff:empty{display:none}
#sv-atest .sv-at-aff-head{font-family:"DM Mono",monospace;font-size:11px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-mute,#6b6555);margin:0 0 10px}
#sv-atest .sv-at-aff-row{display:flex;align-items:center;gap:12px;padding:10px 12px;background:var(--card,#faf5e8);border:1px solid var(--line,#d6cab1);border-radius:6px;margin-bottom:8px;text-decoration:none;color:var(--ink,#1a1814);transition:border-color .15s}
#sv-atest .sv-at-aff-row:hover{border-color:var(--forest,#1a3a2a)}
#sv-atest .sv-at-aff-img{width:48px;height:48px;flex-shrink:0;border-radius:4px;overflow:hidden;background:var(--paper,#f3ecdc);display:flex;align-items:center;justify-content:center}
#sv-atest .sv-at-aff-img img{width:100%;height:100%;object-fit:cover}
#sv-atest .sv-at-aff-noimg{font-size:22px;opacity:.5}
#sv-atest .sv-at-aff-info{flex:1;min-width:0}
#sv-atest .sv-at-aff-titel{display:block;font-size:14px;font-weight:600;color:var(--forest,#1a3a2a);line-height:1.35}
#sv-atest .sv-at-aff-badge{display:inline-block;margin-left:7px;padding:1px 7px;border-radius:10px;background:var(--amber-soft,#f1d792);color:var(--ink,#1a1814);font-size:10px;font-weight:600;vertical-align:middle}
#sv-atest .sv-at-aff-shop{display:block;font-size:12px;color:var(--ink-mute,#6b6555);margin-top:2px}
#sv-atest .sv-at-aff-right{display:flex;align-items:center;gap:12px;flex-shrink:0}
#sv-atest .sv-at-aff-preis{font-size:14px;font-weight:600;color:var(--ink,#1a1814);white-space:nowrap}
#sv-atest .sv-at-aff-preis-alt{font-size:12px;color:var(--ink-mute,#6b6555);text-decoration:line-through}
#sv-atest .sv-at-aff-btn{display:inline-block;padding:7px 13px;border-radius:4px;background:var(--forest,#1a3a2a);color:var(--paper,#f3ecdc);font-size:12px;font-weight:600;white-space:nowrap}
#sv-atest .sv-at-aff-hint{font-size:11px;color:var(--ink-mute,#6b6555);margin-top:8px;font-family:"DM Mono",monospace}
@media(max-width:480px){
  #sv-atest .sv-at-aff-row{flex-wrap:wrap}
  #sv-atest .sv-at-aff-right{width:100%;justify-content:space-between;margin-top:8px;padding-left:60px}
}
</style>

<script>const svFragen = [{"bereich":"Anbau","emoji":"&#x1f331;","frage":"Baust du selbst Gemüse oder Kräuter an?","optionen":[{"text":"Nein, noch gar nicht","pts":0},{"text":"Ein paar Kräuter auf dem Fensterbrett","pts":1},{"text":"Balkon-\/Hochbeet mit Gemüse","pts":2},{"text":"Eigener Garten, Großteil Gemüse selbst","pts":3}]},{"bereich":"Anbau","emoji":"&#x1f331;","frage":"Wie versorgst du dich mit Saatgut?","optionen":[{"text":"Kaufe keins, baue nichts an","pts":0},{"text":"Kaufe fertige Jungpflanzen","pts":1},{"text":"Säe selbst aus gekauftem Saatgut","pts":2},{"text":"Gewinne eigenes Saatgut und tausche","pts":3}]},{"bereich":"Konservieren","emoji":"&#x1f3fa;","frage":"Konservierst du Lebensmittel für den Winter?","optionen":[{"text":"Nein","pts":0},{"text":"Selten — einfrieren wenn viel übrig ist","pts":1},{"text":"Regelmäßig einfrieren und einwecken","pts":2},{"text":"Einkochen, fermentieren, dörren — Vorratskeller","pts":3}]},{"bereich":"Konservieren","emoji":"&#x1f3fa;","frage":"Wie lange würde dein aktueller Vorrat reichen?","optionen":[{"text":"Weniger als 1 Woche","pts":0},{"text":"1–2 Wochen","pts":1},{"text":"1–3 Monate","pts":2},{"text":"3 Monate und länger","pts":3}]},{"bereich":"Wasser","emoji":"&#x1f4a7;","frage":"Wie sicherst du deine Wasserversorgung?","optionen":[{"text":"Nur Leitungswasser, keine Alternative","pts":0},{"text":"Ein paar Wasserflaschen als Reserve","pts":1},{"text":"Regentonne für Garten, Reserve für Notfall","pts":2},{"text":"Regenwassersystem, Filter oder eigener Brunnen","pts":3}]},{"bereich":"Wasser","emoji":"&#x1f4a7;","frage":"Nutzt du Wasser mehrfach oder filterst du selbst?","optionen":[{"text":"Nein","pts":0},{"text":"Grauwasser für Garten gelegentlich","pts":1},{"text":"Regelmäßig Grauwasser genutzt","pts":2},{"text":"Eigene Filteranlage oder Osmose installiert","pts":3}]},{"bereich":"Energie","emoji":"&#x26a1;","frage":"Erzeugst du eigenen Strom?","optionen":[{"text":"Nein","pts":0},{"text":"Balkonkraftwerk geplant oder installiert (≤800 W)","pts":1},{"text":"Balkonkraftwerk in Betrieb","pts":2},{"text":"PV-Anlage mit Speicher oder Inselanlage","pts":3}]},{"bereich":"Energie","emoji":"&#x26a1;","frage":"Wie heizt du und kochst du bei Stromausfall?","optionen":[{"text":"Gar nicht vorbereitet","pts":0},{"text":"Campingkocher als Backup","pts":1},{"text":"Gaskocher + Wärmflasche \/ Kerzen","pts":2},{"text":"Holzofen, Pellets oder Solar-Thermie","pts":3}]},{"bereich":"Kräuter","emoji":"&#x1f33f;","frage":"Nutzt du Heilpflanzen oder eigene Kräuter?","optionen":[{"text":"Nein","pts":0},{"text":"Ein paar Küchenkräuter (Basilikum, Schnittlauch)","pts":1},{"text":"Kräuterspirale oder ausgedehnte Kräutersammlung","pts":2},{"text":"Eigene Hausapotheke mit Tinkturen, Salben, Tees","pts":3}]},{"bereich":"Kräuter","emoji":"&#x1f33f;","frage":"Wie verarbeitest du geerntete Kräuter?","optionen":[{"text":"Nutze keine","pts":0},{"text":"Frisch verwenden","pts":1},{"text":"Trocknen oder einfrieren","pts":2},{"text":"Öle, Tinkturen, Tees und Salben selbst herstellen","pts":3}]},{"bereich":"Tiere & Kreislauf","emoji":"&#x267b;","frage":"Kompostierst du Küchenabfälle?","optionen":[{"text":"Nein, alles in den Restmüll","pts":0},{"text":"Selten, Biotonne genutzt","pts":1},{"text":"Eigener Komposthaufen in Betrieb","pts":2},{"text":"Kompost + Wurmkiste + Kreislaufgarten","pts":3}]},{"bereich":"Tiere & Kreislauf","emoji":"&#x267b;","frage":"Hältst du oder planst du Nutztiere?","optionen":[{"text":"Nein, kein Interesse","pts":0},{"text":"Interesse, aber noch keine Möglichkeit","pts":1},{"text":"Bienen, Wachteln oder Kleintiere","pts":2},{"text":"Hühner, Ziegen oder weitere Nutztiere","pts":3}]}];</script>
<script>const svAtAff = {"slots":{"bereich:Anbau":[898],"bereich:Wasser":[892]},"produkte":{"898":{"id":898,"titel":"BIO Gemüsesamen Set 16 x Samen Sorten Saatgut Gemüse Balkon &#038; Hochbeet Gemüse Samen samenfestes Saatgut","preis":"12,99","preis_alt":"","shop":"Amazon","badge":"","url":"https:\/\/www.amazon.de\/dp\/B0CZJY3QHZ?tag=selbstversorger06-21","img":"https:\/\/selbstversorgen.com\/wp-content\/uploads\/2026\/05\/61qpnR9qAKL._AC_SX679_-300x278.jpg"},"892":{"id":892,"titel":"Rainwater Harvesting for Drylands and Beyond: Water-Harvesting Earthworks (2)","preis":"39,56","preis_alt":"","shop":"Amazon","badge":"","url":"https:\/\/www.amazon.de\/dp\/0977246442?tag=selbstversorger06-21","img":"https:\/\/selbstversorgen.com\/wp-content\/uploads\/2026\/05\/71koB2tuzAL._SL1164_-232x300.jpg"}}};</script>

<div id="sv-atest-quiz">
  <div class="sv-at-meta">
    <span id="sv-at-q-counter">Frage 1 von 12</span>
    <span id="sv-at-bereich-lbl"></span>
  </div>
  <div class="sv-at-progress"><div class="sv-at-bar" id="sv-at-bar" style="width:8%"></div></div>
  <div class="sv-at-q" id="sv-at-q-box"></div>
  <div class="sv-at-nav">
    <button class="sv-at-btn sv-at-btn-back" onclick="svAtest.back()" id="sv-at-back" style="visibility:hidden">← Zurück</button>
    <button class="sv-at-btn sv-at-btn-next" onclick="svAtest.next()" id="sv-at-next" disabled>Weiter →</button>
  </div>
</div>

<div class="sv-at-result" id="sv-at-result">
  <div style="display:flex;align-items:center;gap:20px;margin-bottom:20px;flex-wrap:wrap">
    <div class="sv-at-stufe-badge" id="sv-stufe-badge"></div>
    <div>
      <div class="sv-at-stufe-name" id="sv-stufe-name"></div>
      <div style="font-family:'DM Mono',monospace;font-size:12px;color:var(--ink-mute,#6b6555)" id="sv-stufe-score"></div>
    </div>
  </div>
  <div class="sv-at-stufe-desc" id="sv-stufe-desc"></div>
  <div class="sv-at-bereiche-grid" id="sv-bereiche-grid"></div>
  <div class="sv-at-aff" id="sv-at-aff-bereich"></div>
  <div class="sv-at-next-step" id="sv-at-next-step"></div>
  <div class="sv-at-aff" id="sv-at-aff-step"></div>
  <div class="sv-at-cta-row">
    <a href="/stufe-1" class="sv-at-cta sv-at-cta-prim" id="sv-stufe-link">Zur meiner Stufe →</a>
    <button class="sv-at-cta sv-at-cta-sec" onclick="svAtest.restart()">Test wiederholen</button>
  </div>
</div>

<script>
(function(){
const fragen = svFragen;
let current = 0;
const answers = new Array(fragen.length).fill(null);

const stufen = [
  { n:'Einsteiger', name:'Balkon & Fensterbank', desc:'Du stehst am Anfang des Weges zur Selbstversorgung — das ist ein hervorragender Startpunkt. Mit ein paar Kräutern auf dem Balkon und einer kleinen Vorratshaltung kannst du sofort loslegen.', next:'Starte mit einem Kräutertopf oder einer Kräuterspirale. Schau dir unseren Saisonkalender an und leg einen kleinen Notvorrat für 2 Wochen an.' },
  { n:'Anfänger', name:'Hochbeet & Kleingarten', desc:'Du hast bereits erste Schritte gemacht und baust eigenes Gemüse an. Jetzt geht es darum, die Ernte zu konservieren und die Eigenversorgung systematisch auszubauen.', next:'Lege einen Vorrat für 4 Wochen an. Investiere in Einmachgläser und lerne Einkochen und Fermentieren.' },
  { n:'Fortgeschrittener', name:'Garten & Vorrat', desc:'Sehr gut! Du versorgst dich bereits zu einem bedeutenden Teil selbst. Deine Ernte wird konserviert und du hast einen Vorrat für mehrere Monate. Der nächste Schritt ist Energie und Wasser.', next:'Schau dir das Balkonkraftwerk an — 800W amortisieren sich in 2-3 Jahren. Richte eine Regenwasser-Auffanganlage ein.' },
  { n:'Erfahrener', name:'Energie & Wasser', desc:'Beeindruckend — du hast alle Grundbereiche gut im Griff und produzierst auch teilweise eigene Energie. Du bist auf dem Weg zur vollständigen Autarkie.', next:'Plane eine Photovoltaikanlage mit Speicher. Prüfe Möglichkeiten für Brunnen oder Zisterne. Erweitere die Tierhaltung.' },
  { n:'Experte', name:'Off-Grid', desc:'Herausragend! Du befindest dich auf Stufe 5 — nahezu vollständig autark. Dein Wissen und deine Infrastruktur sind ein Modell für nachhaltige Unabhängigkeit.', next:'Teile dein Wissen! Mentoriere andere Selbstversorger und optimiere weiter für volle Kreislaufwirtschaft.' },
];

function svAtPreis(p){
  if(!p.preis) return '';
  let h = '<span class="sv-at-aff-preis">'+p.preis+' €</span>';
  if(p.preis_alt) h += ' <span class="sv-at-aff-preis-alt">'+p.preis_alt+' €</span>';
  return h;
}
function svAtRow(p){
  const img = p.img
    ? '<img decoding="async" src="'+p.img+'" alt="" loading="lazy">'
    : '<span class="sv-at-aff-noimg">&#x1f4e6;</span>';
  const badge = p.badge ? '<span class="sv-at-aff-badge">'+p.badge+'</span>' : '';
  const shop  = p.shop ? '<span class="sv-at-aff-shop">'+p.shop+'</span>' : '';
  return '<a class="sv-at-aff-row" href="'+p.url+'" target="_blank" rel="sponsored nofollow noopener">'+
    '<span class="sv-at-aff-img">'+img+'</span>'+
    '<span class="sv-at-aff-info"><span class="sv-at-aff-titel">'+p.titel+badge+'</span>'+shop+'</span>'+
    '<span class="sv-at-aff-right">'+svAtPreis(p)+'<span class="sv-at-aff-btn">Ansehen &#x2197;</span></span></a>';
}
function svAtRenderAff(slotKey, containerId, header){
  const el = document.getElementById(containerId);
  if(!el) return;
  const ids = (svAtAff.slots && svAtAff.slots[slotKey]) ? svAtAff.slots[slotKey] : [];
  if(!ids.length){ el.innerHTML=''; return; }
  let rows = '';
  ids.forEach(id => { const p = svAtAff.produkte[id]; if(p) rows += svAtRow(p); });
  if(!rows){ el.innerHTML=''; return; }
  el.innerHTML = '<div class="sv-at-aff-head">'+header+'</div>'+rows+
    '<div class="sv-at-aff-hint">* Affiliate-Links – kaufst du darüber, unterstützt du selbstversorgen.com ohne Mehrkosten.</div>';
}

window.svAtest = {
  render() {
    const q = fragen[current];
    document.getElementById('sv-at-q-counter').textContent = `Frage ${current+1} von ${fragen.length}`;
    document.getElementById('sv-at-bereich-lbl').textContent = q.emoji + ' ' + q.bereich;
    document.getElementById('sv-at-bar').style.width = ((current+1)/fragen.length*100) + '%';
    document.getElementById('sv-at-back').style.visibility = current > 0 ? 'visible' : 'hidden';
    document.getElementById('sv-at-next').textContent = current === fragen.length-1 ? 'Ergebnis anzeigen →' : 'Weiter →';
    document.getElementById('sv-at-next').disabled = answers[current] === null;

    const opts = q.optionen.map((o,i) => `
      <div class="sv-at-opt ${answers[current]===i?'selected':''}" onclick="svAtest.select(${i})">
        <span class="sv-opt-dot"></span>
        <span>${o.text}</span>
      </div>`).join('');
    document.getElementById('sv-at-q-box').innerHTML = `
      <div class="sv-at-bereich">${q.emoji} ${q.bereich}</div>
      <h3>${q.frage}</h3>
      <div class="sv-at-options">${opts}</div>`;
  },
  select(i) {
    answers[current] = i;
    document.getElementById('sv-at-next').disabled = false;
    this.render();
  },
  next() {
    if (answers[current] === null) return;
    if (current < fragen.length-1) { current++; this.render(); }
    else this.showResult();
  },
  back() { if (current > 0) { current--; this.render(); } },
  showResult() {
    // Score pro Bereich
    const bereiche = {};
    fragen.forEach((q,i) => {
      if (!bereiche[q.bereich]) bereiche[q.bereich] = { pts:0, max:0 };
      bereiche[q.bereich].pts += fragen[i].optionen[answers[i]||0].pts;
      bereiche[q.bereich].max += 3;
    });
    const totalPts = Object.values(bereiche).reduce((s,b) => s+b.pts, 0);
    const totalMax = Object.values(bereiche).reduce((s,b) => s+b.max, 0);
    const pct = totalPts / totalMax;
    const stufeIdx = Math.min(4, Math.floor(pct * 5));
    const stufe = stufen[stufeIdx];

    document.getElementById('sv-atest-quiz').style.display = 'none';
    const resEl = document.getElementById('sv-at-result');
    resEl.style.display = 'block';
    document.getElementById('sv-stufe-badge').textContent = stufeIdx+1;
    document.getElementById('sv-stufe-name').textContent = 'Stufe ' + (stufeIdx+1) + ' — ' + stufe.name;
    document.getElementById('sv-stufe-score').textContent = totalPts + ' / ' + totalMax + ' Punkte';
    document.getElementById('sv-stufe-desc').textContent = stufe.desc;
    document.getElementById('sv-at-next-step').innerHTML = '<strong>&#x1f3af; Dein nächster Schritt:</strong> ' + stufe.next;
    document.getElementById('sv-stufe-link').href = '/stufe-' + (stufeIdx+1);
    document.getElementById('sv-stufe-link').textContent = 'Zur Stufe ' + (stufeIdx+1) + ' →';

    const grid = Object.entries(bereiche).map(([name, b]) => {
      const bPct = Math.round(b.pts/b.max*100);
      return `<div class="sv-at-b-card">
        <div class="sv-at-b-name">${name}</div>
        <div class="sv-at-b-bar"><div class="sv-at-b-fill" style="width:${bPct}%"></div></div>
        <div class="sv-at-b-pct">${bPct}%</div>
      </div>`;
    }).join('');
    document.getElementById('sv-bereiche-grid').innerHTML = grid;

    // Affiliate-Produkte: schwächster Bereich + aktuelle Stufe
    let schwach = null, schwachRatio = 2;
    Object.entries(bereiche).forEach(([name, b]) => {
      const r = b.pts / b.max;
      if (r < schwachRatio) { schwachRatio = r; schwach = name; }
    });
    svAtRenderAff('stufe:' + (stufeIdx+1), 'sv-at-aff-step', 'Das brauchst du dafür');
    if (schwach) {
      svAtRenderAff('bereich:' + schwach, 'sv-at-aff-bereich',
        'Dein schwächster Bereich: ' + schwach + ' — so kommst du weiter');
    }

    // Cookie speichern
    document.cookie = 'sv_autarkie_pct=' + Math.round(pct*100) + ';path=/;max-age=31536000';
  },
  restart() {
    current = 0;
    answers.fill(null);
    document.getElementById('sv-at-result').style.display = 'none';
    document.getElementById('sv-atest-quiz').style.display = 'block';
    this.render();
  }
};

svAtest.render();
})();
</script>

</div><!-- /.sv-tool-wrap -->



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Solar-Rechner</title>
		<link>https://selbstversorgen.com/tools/solar-rechner/</link>
		
		<dc:creator><![CDATA[Mark]]></dc:creator>
		<pubDate>Wed, 13 May 2026 07:10:07 +0000</pubDate>
				<guid isPermaLink="false"></guid>

					<description><![CDATA[Berechne Ertrag, Ersparnis und Amortisation für Balkonkraftwerk oder Dachanlage — PLZ-genau für alle deutschen Regionen.]]></description>
										<content:encoded><![CDATA[<p><script>window.svToolAff=window.svToolAff||{data:{}};window.svToolAff.data=window.svToolAff.data||{};window.svToolAff.data["sv_solar_rechner"]={"slots":[],"produkte":[]};</script>
<div id="sv-solar" class="sv-tool-wrap">
<style>
#sv-solar{font-family:"DM Sans",sans-serif;color:var(--ink,#1a1814)}
#sv-solar .sv-solar-grid{display:grid;gap:20px;grid-template-columns:1fr}
@media(min-width:700px){#sv-solar .sv-solar-grid{grid-template-columns:1fr 1fr}}
#sv-solar .sv-input-card{background:var(--card,#faf5e8);border:1px solid var(--line,#d6cab1);border-radius:8px;padding:20px}
#sv-solar .sv-input-card h3{font-family:"Playfair Display",serif;font-size:18px;font-weight:600;color:var(--forest,#1a3a2a);margin:0 0 16px}
#sv-solar .sv-field{margin-bottom:16px}
#sv-solar .sv-field label{display:block;font-size:12px;font-weight:500;color:var(--ink-mute,#6b6555);text-transform:uppercase;letter-spacing:.1em;margin-bottom:6px;font-family:"DM Mono",monospace}
#sv-solar .sv-field input[type=range]{width:100%}
#sv-solar .sv-field-val{font-family:"Playfair Display",serif;font-size:28px;font-weight:600;color:var(--forest,#1a3a2a);line-height:1;margin-bottom:4px}
#sv-solar .sv-field-unit{font-size:13px;color:var(--ink-mute,#6b6555)}
#sv-solar select{width:100%;padding:9px 12px;border:1px solid var(--line,#d6cab1);border-radius:6px;background:var(--card,#faf5e8);font:inherit;font-size:14px;color:var(--ink,#1a1814)}
#sv-solar .sv-type-btns{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:4px}
#sv-solar .sv-type-btn{padding:10px;border:1.5px solid var(--line,#d6cab1);border-radius:6px;background:var(--card,#faf5e8);cursor:pointer;font:inherit;font-size:13px;font-weight:500;color:var(--ink-soft,#4a443a);text-align:center;transition:all .15s}
#sv-solar .sv-type-btn.active{border-color:var(--forest,#1a3a2a);background:var(--forest,#1a3a2a);color:var(--paper,#f3ecdc)}
#sv-solar .sv-results{background:var(--forest,#1a3a2a);color:var(--paper,#f3ecdc);border-radius:8px;padding:24px;margin-top:20px}
#sv-solar .sv-results h3{font-family:"Playfair Display",serif;font-size:18px;font-weight:600;margin:0 0 16px;color:var(--paper,#f3ecdc)}
#sv-solar .sv-result-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
@media(min-width:500px){#sv-solar .sv-result-grid{grid-template-columns:repeat(3,1fr)}}
#sv-solar .sv-result-box{background:rgba(255,255,255,.07);border-radius:6px;padding:14px;text-align:center}
#sv-solar .sv-result-val{font-family:"Playfair Display",serif;font-size:22px;font-weight:600;color:var(--amber-2,#d9a14a);line-height:1}
#sv-solar .sv-result-lbl{font-size:11px;color:rgba(243,236,220,.7);margin-top:4px;font-family:"DM Mono",monospace;text-transform:uppercase;letter-spacing:.08em}
#sv-solar .sv-amort-bar{margin-top:16px}
#sv-solar .sv-amort-label{font-size:12px;color:rgba(243,236,220,.7);margin-bottom:6px;font-family:"DM Mono",monospace}
#sv-solar .sv-bar-track{height:10px;background:rgba(255,255,255,.1);border-radius:999px;overflow:hidden}
#sv-solar .sv-bar-fill{height:100%;background:var(--amber,#c08a2a);border-radius:999px;transition:width .4s}
#sv-solar .sv-recommendation{background:rgba(255,255,255,.06);border:1px solid rgba(243,236,220,.15);border-radius:6px;padding:14px;margin-top:16px;font-size:13px;line-height:1.6;color:rgba(243,236,220,.85)}
#sv-solar .sv-recommendation strong{color:var(--amber-2,#d9a14a)}
#sv-solar .sv-info-row{display:flex;gap:8px;align-items:flex-start;font-size:12px;color:var(--ink-mute,#6b6555);margin-top:6px}
</style>

<div class="sv-solar-grid">
  <div class="sv-input-card">
    <h3>Anlage</h3>
    <div class="sv-field">
      <label>Anlagentyp</label>
      <div class="sv-type-btns">
        <button class="sv-type-btn active" onclick="svSolar.setType('balkon',this)"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/26a1.png" alt="⚡" class="wp-smiley" style="height: 1em; max-height: 1em;" data-neo-global--processed-neo-rename="true" /> Balkonkraftwerk<br><small>600–800 W</small></button>
        <button class="sv-type-btn" onclick="svSolar.setType('dach',this)"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f3e0.png" alt="🏠" class="wp-smiley" style="height: 1em; max-height: 1em;" data-neo-global--processed-neo-rename="true" /> Dachanlage<br><small>1–20 kWp</small></button>
      </div>
    </div>
    <div class="sv-field" id="sv-kwp-field">
      <label>Leistung (kWp)</label>
      <div class="sv-field-val" id="sv-kwp-val">0.8</div>
      <div class="sv-field-unit">Kilowatt-Peak</div>
      <input type="range" min="0.3" max="0.8" value="0.8" step="0.1" oninput="svSolar.update()" id="sv-kwp">
    </div>
    <div class="sv-field" id="sv-kwp-dach-field" style="display:none">
      <label>Leistung (kWp)</label>
      <div class="sv-field-val" id="sv-kwp-dach-val">5</div>
      <div class="sv-field-unit">Kilowatt-Peak</div>
      <input type="range" min="1" max="20" value="5" step="0.5" oninput="svSolar.update()" id="sv-kwp-dach">
    </div>
    <div class="sv-field">
      <label>Ausrichtung & Neigung</label>
      <select onchange="svSolar.update()" id="sv-orient">
        <option value="1.0">Süd, 30–35° (optimal)</option>
        <option value="0.95">Süd, flach 15°</option>
        <option value="0.90">Südost / Südwest</option>
        <option value="0.80">Ost / West</option>
        <option value="0.70">Nord, ungünstig</option>
        <option value="1.0" selected>Balkon Süd / aufgeständert</option>
      </select>
    </div>
    <div class="sv-field">
      <label>Kosten der Anlage (€)</label>
      <div class="sv-field-val" id="sv-cost-val">700</div>
      <div class="sv-field-unit">Euro Gesamtkosten inkl. Installation</div>
      <input type="range" min="300" max="30000" value="700" step="100" oninput="svSolar.update()" id="sv-cost">
    </div>
  </div>
  <div class="sv-input-card">
    <h3>Standort & Verbrauch</h3>
    <div class="sv-field">
      <label>Region</label>
      <select onchange="svSolar.update()" id="sv-region">
        <option value="950">Norddeutschland (Hamburg, Bremen, Kiel)</option>
        <option value="1000" selected>Mitteldeutschland (Frankfurt, Köln, Berlin)</option>
        <option value="1050">Süddeutschland (München, Stuttgart)</option>
        <option value="1100">Alpenvorland / Bayern südlich</option>
        <option value="1150">Südbaden / Bodensee (sonnenreichste Region)</option>
        <option value="900">Nordseeküste / sehr bewölkt</option>
      </select>
    </div>
    <div class="sv-field">
      <label>Ihr Jahresverbrauch (kWh)</label>
      <div class="sv-field-val" id="sv-verbrauch-val">2.500</div>
      <div class="sv-field-unit">kWh pro Jahr</div>
      <input type="range" min="500" max="15000" value="2500" step="100" oninput="svSolar.update()" id="sv-verbrauch">
      <div class="sv-info-row"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4a1.png" alt="💡" class="wp-smiley" style="height: 1em; max-height: 1em;" data-neo-global--processed-neo-rename="true" /> Typisch: 1-Personen-HH ~1.500 kWh · 4 Personen ~4.000 kWh</div>
    </div>
    <div class="sv-field">
      <label>Strompreis (ct/kWh)</label>
      <div class="sv-field-val" id="sv-preis-val">32</div>
      <div class="sv-field-unit">Cent pro kWh</div>
      <input type="range" min="20" max="50" value="32" step="1" oninput="svSolar.update()" id="sv-preis">
      <div class="sv-info-row"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4ca.png" alt="📊" class="wp-smiley" style="height: 1em; max-height: 1em;" data-neo-global--processed-neo-rename="true" /> Aktueller Ø Deutschland: ~32 ct/kWh (2025)</div>
    </div>
    <div class="sv-field" id="sv-speicher-field" style="display:none">
      <label>Batteriespeicher</label>
      <select onchange="svSolar.update()" id="sv-speicher">
        <option value="0">Kein Speicher</option>
        <option value="5">5 kWh Speicher</option>
        <option value="10">10 kWh Speicher</option>
        <option value="15">15 kWh Speicher</option>
      </select>
    </div>
  </div>
</div>

<div class="sv-results" id="sv-results"></div>
<div class="sv-aff" id="sv-solar-aff"></div>

</div>

<script>
(function(){
let anlageType = 'balkon';

window.svSolar = {
  setType(t, btn) {
    anlageType = t;
    document.querySelectorAll('.sv-type-btn').forEach(b => b.classList.remove('active'));
    btn.classList.add('active');
    document.getElementById('sv-kwp-field').style.display = t === 'balkon' ? '' : 'none';
    document.getElementById('sv-kwp-dach-field').style.display = t === 'dach' ? '' : 'none';
    document.getElementById('sv-speicher-field').style.display = t === 'dach' ? '' : 'none';
    const costSlider = document.getElementById('sv-cost');
    if (t === 'balkon') { costSlider.min = 300; costSlider.max = 2000; costSlider.value = 700; }
    else { costSlider.min = 3000; costSlider.max = 30000; costSlider.value = 12000; }
    this.update();
    this.renderAff();
  },
  fmt(n) { return n.toLocaleString('de-DE'); },
  update() {
    const kwp = anlageType === 'balkon'
      ? parseFloat(document.getElementById('sv-kwp').value)
      : parseFloat(document.getElementById('sv-kwp-dach').value);
    const orient = parseFloat(document.getElementById('sv-orient').value);
    const region = parseInt(document.getElementById('sv-region').value);
    const verbrauch = parseInt(document.getElementById('sv-verbrauch').value);
    const preis = parseInt(document.getElementById('sv-preis').value) / 100;
    const cost = parseInt(document.getElementById('sv-cost').value);
    const speicher = anlageType === 'dach' ? parseInt(document.getElementById('sv-speicher').value) : 0;

    // Anzeige
    document.getElementById('sv-kwp-val').textContent = kwp.toFixed(1);
    document.getElementById('sv-kwp-dach-val').textContent = kwp.toFixed(1);
    document.getElementById('sv-cost-val').textContent = this.fmt(cost);
    document.getElementById('sv-verbrauch-val').textContent = this.fmt(verbrauch);
    document.getElementById('sv-preis-val').textContent = Math.round(preis * 100);

    // Berechnung
    const eta = 0.80; // Systemwirkungsgrad
    const jahresertrag = Math.round(kwp * region * orient * eta);

    // Eigenverbrauch: Balkon ~70% direkt, Dach ~30% ohne Speicher, +20% pro 5kWh Speicher
    let eigenverbrauchsQuote;
    if (anlageType === 'balkon') {
      eigenverbrauchsQuote = Math.min(0.90, jahresertrag / verbrauch * 0.85);
    } else {
      eigenverbrauchsQuote = Math.min(0.30 + speicher * 0.04, 0.80);
    }
    const eigenverbrauch = Math.round(jahresertrag * eigenverbrauchsQuote);
    const einspeisungKwh = jahresertrag - eigenverbrauch;

    // Einspeisevergütung: ~8 ct/kWh (2025)
    const einspeiseVerguetung = anlageType === 'dach' ? einspeisungKwh * 0.082 : 0;

    const ersparnis = eigenverbrauch * preis + einspeiseVerguetung;
    const co2 = Math.round(jahresertrag * 0.401); // kg CO2 (Dt. Strommix 2024)
    const amortisation = ersparnis > 0 ? cost / ersparnis : 999;
    const deckung = Math.round((eigenverbrauch / verbrauch) * 100);
    const amortPct = Math.min(100, Math.round((1 / amortisation) * 100 * 5));

    // Empfehlung
    let empfehlung = '';
    if (anlageType === 'balkon') {
      empfehlung = `<strong>Balkonkraftwerk (${kwp} kWp)</strong>: Mit ~${this.fmt(jahresertrag)} kWh Jahresertrag deckst du ca. ${deckung}% deines Verbrauchs selbst. Die Anlage amortisiert sich in <strong>${amortisation.toFixed(1)} Jahren</strong>.`;
      if (kwp < 0.8) empfehlung += ' Tipp: 800W-Anlage lohnt sich mehr als 600W.';
    } else {
      empfehlung = `<strong>Dachanlage (${kwp} kWp)</strong>: ${this.fmt(jahresertrag)} kWh Jahresertrag — ${deckung}% Eigendeckung. `;
      if (speicher === 0) empfehlung += 'Ohne Speicher geht viel Überschuss verloren. <strong>Empfehlung: 10 kWh Speicher</strong> für ~50% Eigenverbrauch.';
      else empfehlung += `Mit ${speicher} kWh Speicher nutzt du ~${Math.round(eigenverbrauchsQuote*100)}% selbst.`;
    }

    document.getElementById('sv-results').innerHTML = `
      <h3>&#x1f4ca; Ergebnis</h3>
      <div class="sv-result-grid">
        <div class="sv-result-box"><div class="sv-result-val">${this.fmt(jahresertrag)}</div><div class="sv-result-lbl">kWh/Jahr Ertrag</div></div>
        <div class="sv-result-box"><div class="sv-result-val">${Math.round(ersparnis)} €</div><div class="sv-result-lbl">Ersparnis/Jahr</div></div>
        <div class="sv-result-box"><div class="sv-result-val">${deckung}%</div><div class="sv-result-lbl">Eigendeckung</div></div>
        <div class="sv-result-box"><div class="sv-result-val">${amortisation < 99 ? amortisation.toFixed(1) : '>25'}</div><div class="sv-result-lbl">Jahre Amortisation</div></div>
        <div class="sv-result-box"><div class="sv-result-val">${co2}</div><div class="sv-result-lbl">kg CO₂/Jahr gespart</div></div>
        <div class="sv-result-box"><div class="sv-result-val">${this.fmt(Math.round(eigenverbrauch))}</div><div class="sv-result-lbl">kWh Eigenverbrauch</div></div>
      </div>
      <div class="sv-amort-bar">
        <div class="sv-amort-label">Amortisationsfortschritt (25 Jahre Laufzeit)</div>
        <div class="sv-bar-track"><div class="sv-bar-fill" style="width:${amortPct}%"></div></div>
      </div>
      <div class="sv-recommendation">${empfehlung}</div>
    `;
  },
  renderAff() {
    var header = anlageType === 'balkon' ? 'Empfohlene Balkonkraftwerke' : 'Dachanlage & Speicher';
    if (window.svToolAff) window.svToolAff.render('sv_solar_rechner', 'typ:'+anlageType, 'sv-solar-aff', header);
  }
};

svSolar.update();
svSolar.renderAff();
})();
</script>
</div><!-- /.sv-tool-wrap -->
</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
