{"id":2100,"date":"2026-05-29T10:34:14","date_gmt":"2026-05-29T10:34:14","guid":{"rendered":"https:\/\/aiper.com\/blogs\/?page_id=2100"},"modified":"2026-06-24T04:23:26","modified_gmt":"2026-06-24T04:23:26","slug":"pool-heizung-berechnen","status":"publish","type":"page","link":"https:\/\/aiper.com\/blogs\/de\/pool-heizung-berechnen\/","title":{"rendered":"Poolheizung berechnen"},"content":{"rendered":"\n<div class=\"phc-wrapper\">\n\n  <!-- STEP 1: Calculation Method -->\n  <div class=\"phc-step-section\">\n    <div class=\"phc-step-header\">\n      <span class=\"phc-step-num\">1<\/span>\n      <h3>Berechnungsmethode<\/h3>\n    <\/div>\n    <div class=\"phc-toggle-group\">\n      <button type=\"button\" class=\"phc-toggle-btn active\" id=\"method-dims\" onclick=\"setMethod('dimensions')\">Poolma\u00dfe<\/button>\n      <button type=\"button\" class=\"phc-toggle-btn\" id=\"method-vol\" onclick=\"setMethod('volume')\">Poolvolumen<\/button>\n    <\/div>\n  <\/div>\n\n  <!-- STEP 2: Pool Shape -->\n  <div class=\"phc-step-section\">\n    <div class=\"phc-step-header\">\n      <span class=\"phc-step-num\">2<\/span>\n      <h3>Poolform w\u00e4hlen<\/h3>\n    <\/div>\n    <div class=\"phc-shape-grid\">\n      <div class=\"phc-shape-card active\" id=\"shape-rectangular\" onclick=\"setShape('rectangular')\">Rechteckig<\/div>\n      <div class=\"phc-shape-card\" id=\"shape-lshaped\" onclick=\"setShape('lshaped')\">L-Form<\/div>\n      <div class=\"phc-shape-card\" id=\"shape-circle\" onclick=\"setShape('circle')\">Rund<\/div>\n      <div class=\"phc-shape-card\" id=\"shape-triangular\" onclick=\"setShape('triangular')\">Dreieckig<\/div>\n      <div class=\"phc-shape-card\" id=\"shape-kidney\" onclick=\"setShape('kidney')\">Nierenform<\/div>\n      <div class=\"phc-shape-card\" id=\"shape-oval\" onclick=\"setShape('oval')\">Oval<\/div>\n      <div class=\"phc-shape-card\" id=\"shape-oblong\" onclick=\"setShape('oblong')\">L\u00e4ngsoval<\/div>\n    <\/div>\n  <\/div>\n\n  <!-- STEP 3: Pool Size \/ Volume -->\n  <div class=\"phc-step-section\">\n    <div class=\"phc-step-header\" style=\"justify-content: space-between; align-items: center;\">\n      <div style=\"display: flex; align-items: center; gap: 12px;\">\n        <span class=\"phc-step-num\">3<\/span>\n        <h3 id=\"step3-title\">Poolgr\u00f6\u00dfe<\/h3>\n      <\/div>\n      <!-- Unit Toggles for Step 3 -->\n      <div id=\"unit-toggle-dims\" class=\"phc-mini-toggle\">\n        <span class=\"active\" id=\"unit-ft\" onclick=\"setDimUnit('ft')\">ft<\/span>\n        <span id=\"unit-m\" onclick=\"setDimUnit('m')\">m<\/span>\n      <\/div>\n      <div id=\"unit-toggle-vol\" class=\"phc-mini-toggle\" style=\"display: none;\">\n        <span class=\"active\" id=\"unit-gal\" onclick=\"setVolUnit('gal')\">gal<\/span>\n        <span id=\"unit-l\" onclick=\"setVolUnit('l')\">Liter<\/span>\n        <span id=\"unit-m3\" onclick=\"setVolUnit('m3')\">m\u00b3<\/span>\n      <\/div>\n    <\/div>\n\n    <!-- Dynamic Inputs Based on Method & Shape -->\n    <div id=\"inputs-dimensions-container\">\n      <div class=\"phc-grid-inputs\" id=\"fields-rectangular\">\n        <div class=\"phc-field\"><label>L\u00e4nge (<span class=\"d-unit\">ft<\/span>)<\/label><input type=\"number\" id=\"rect-len\" value=\"30\" min=\"0\"><\/div>\n        <div class=\"phc-field\"><label>Breite (<span class=\"d-unit\">ft<\/span>)<\/label><input type=\"number\" id=\"rect-wid\" value=\"15\" min=\"0\"><\/div>\n        <div class=\"phc-field\"><label>Tiefe (flaches Ende) (<span class=\"d-unit\">ft<\/span>)<\/label><input type=\"number\" id=\"rect-shallow\" value=\"3\" min=\"0\"><\/div>\n        <div class=\"phc-field\"><label>Tiefe (tiefes Ende) (<span class=\"d-unit\">ft<\/span>)<\/label><input type=\"number\" id=\"rect-deep\" value=\"6\" min=\"0\"><\/div>\n      <\/div>\n\n      <div class=\"phc-grid-inputs\" id=\"fields-lshaped\" style=\"display: none;\">\n        <div class=\"phc-field\"><label>Gesamtl\u00e4nge (<span class=\"d-unit\">ft<\/span>)<\/label><input type=\"number\" id=\"l-tot-len\" value=\"40\" min=\"0\"><\/div>\n        <div class=\"phc-field\"><label>Gesamtbreite (<span class=\"d-unit\">ft<\/span>)<\/label><input type=\"number\" id=\"l-tot-wid\" value=\"20\" min=\"0\"><\/div>\n        <div class=\"phc-field\"><label>L\u00e4nge des kurzen Schenkels (<span class=\"d-unit\">ft<\/span>)<\/label><input type=\"number\" id=\"l-arm-len\" value=\"15\" min=\"0\"><\/div>\n        <div class=\"phc-field\"><label>Breite des kurzen Schenkels (<span class=\"d-unit\">ft<\/span>)<\/label><input type=\"number\" id=\"l-arm-wid\" value=\"10\" min=\"0\"><\/div>\n        <div class=\"phc-field\"><label>Tiefe (flaches Ende) (<span class=\"d-unit\">ft<\/span>)<\/label><input type=\"number\" id=\"l-shallow\" value=\"3\" min=\"0\"><\/div>\n        <div class=\"phc-field\"><label>Tiefe (tiefes Ende) (<span class=\"d-unit\">ft<\/span>)<\/label><input type=\"number\" id=\"l-deep\" value=\"6\" min=\"0\"><\/div>\n      <\/div>\n\n      <div class=\"phc-grid-inputs\" id=\"fields-circle\" style=\"display: none;\">\n        <div class=\"phc-field\"><label>Radius (<span class=\"d-unit\">ft<\/span>)<\/label><input type=\"number\" id=\"circ-rad\" value=\"9\" min=\"0\"><\/div>\n        <div class=\"phc-field\"><label>Tiefe (flaches Ende) (<span class=\"d-unit\">ft<\/span>)<\/label><input type=\"number\" id=\"circ-shallow\" value=\"4\" min=\"0\"><\/div>\n        <div class=\"phc-field\"><label>Tiefe (tiefes Ende) (<span class=\"d-unit\">ft<\/span>)<\/label><input type=\"number\" id=\"circ-deep\" value=\"4\" min=\"0\"><\/div>\n      <\/div>\n\n      <div class=\"phc-grid-inputs\" id=\"fields-triangular\" style=\"display: none;\">\n        <div class=\"phc-field\"><label>Basis (<span class=\"d-unit\">ft<\/span>)<\/label><input type=\"number\" id=\"tri-base\" value=\"20\" min=\"0\"><\/div>\n        <div class=\"phc-field\"><label>H\u00f6he (<span class=\"d-unit\">ft<\/span>)<\/label><input type=\"number\" id=\"tri-height\" value=\"15\" min=\"0\"><\/div>\n        <div class=\"phc-field\"><label>Tiefe (flaches Ende) (<span class=\"d-unit\">ft<\/span>)<\/label><input type=\"number\" id=\"tri-shallow\" value=\"3\" min=\"0\"><\/div>\n        <div class=\"phc-field\"><label>Tiefe (tiefes Ende) (<span class=\"d-unit\">ft<\/span>)<\/label><input type=\"number\" id=\"tri-deep\" value=\"5\" min=\"0\"><\/div>\n      <\/div>\n\n      <div class=\"phc-grid-inputs\" id=\"fields-kidney\" style=\"display: none;\">\n        <div class=\"phc-field\"><label>L\u00e4nge (<span class=\"d-unit\">ft<\/span>)<\/label><input type=\"number\" id=\"kid-len\" value=\"28\" min=\"0\"><\/div>\n        <div class=\"phc-field\"><label>Breite (<span class=\"d-unit\">ft<\/span>)<\/label><input type=\"number\" id=\"kid-wid\" value=\"14\" min=\"0\"><\/div>\n        <div class=\"phc-field\"><label>Tiefe (flaches Ende) (<span class=\"d-unit\">ft<\/span>)<\/label><input type=\"number\" id=\"kid-shallow\" value=\"3.5\" min=\"0\"><\/div>\n        <div class=\"phc-field\"><label>Tiefe (tiefes Ende) (<span class=\"d-unit\">ft<\/span>)<\/label><input type=\"number\" id=\"kid-deep\" value=\"5.5\" min=\"0\"><\/div>\n      <\/div>\n\n      <div class=\"phc-grid-inputs\" id=\"fields-oval\" style=\"display: none;\">\n        <div class=\"phc-field\"><label>L\u00e4nge \/ Hauptachse (<span class=\"d-unit\">ft<\/span>)<\/label><input type=\"number\" id=\"oval-len\" value=\"30\" min=\"0\"><\/div>\n        <div class=\"phc-field\"><label>Breite \/ Nebenachse (<span class=\"d-unit\">ft<\/span>)<\/label><input type=\"number\" id=\"oval-wid\" value=\"15\" min=\"0\"><\/div>\n        <div class=\"phc-field\"><label>Tiefe (flaches Ende) (<span class=\"d-unit\">ft<\/span>)<\/label><input type=\"number\" id=\"oval-shallow\" value=\"3\" min=\"0\"><\/div>\n        <div class=\"phc-field\"><label>Tiefe (tiefes Ende) (<span class=\"d-unit\">ft<\/span>)<\/label><input type=\"number\" id=\"oval-deep\" value=\"6\" min=\"0\"><\/div>\n      <\/div>\n\n      <div class=\"phc-grid-inputs\" id=\"fields-oblong\" style=\"display: none;\">\n        <div class=\"phc-field\"><label>Gro\u00dfer Durchmesser (<span class=\"d-unit\">ft<\/span>)<\/label><input type=\"number\" id=\"ob-ldia\" value=\"16\" min=\"0\"><\/div>\n        <div class=\"phc-field\"><label>Kleiner Durchmesser (<span class=\"d-unit\">ft<\/span>)<\/label><input type=\"number\" id=\"ob-sdia\" value=\"12\" min=\"0\"><\/div>\n        <div class=\"phc-field\"><label>L\u00e4nge (<span class=\"d-unit\">ft<\/span>)<\/label><input type=\"number\" id=\"ob-len\" value=\"32\" min=\"0\"><\/div>\n        <div class=\"phc-field\"><label>Tiefe (flaches Ende) (<span class=\"d-unit\">ft<\/span>)<\/label><input type=\"number\" id=\"ob-shallow\" value=\"3\" min=\"0\"><\/div>\n        <div class=\"phc-field\"><label>Tiefe (tiefes Ende) (<span class=\"d-unit\">ft<\/span>)<\/label><input type=\"number\" id=\"ob-deep\" value=\"6\" min=\"0\"><\/div>\n      <\/div>\n    <\/div>\n\n    <div id=\"inputs-volume-container\" style=\"display: none;\">\n      <div class=\"phc-grid-inputs\">\n        <div class=\"phc-field\">\n          <label>Poolvolumen (<span id=\"v-input-unit\">Gallonen<\/span>)<\/label>\n          <input type=\"number\" id=\"input-pure-volume\" value=\"15000\" min=\"0\">\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <!-- STEP 4: Heating Parameters -->\n  <div class=\"phc-step-section\">\n    <div class=\"phc-step-header\" style=\"justify-content: space-between; align-items: center;\">\n      <div style=\"display: flex; align-items: center; gap: 12px;\">\n        <span class=\"phc-step-num\">4<\/span>\n        <h3>Heizparameter<\/h3>\n      <\/div>\n      <div class=\"phc-mini-toggle\">\n        <span class=\"active\" id=\"temp-f\" onclick=\"setTempUnit('F')\">\u00b0F<\/span>\n        <span id=\"temp-c\" onclick=\"setTempUnit('C')\">\u00b0C<\/span>\n      <\/div>\n    <\/div>\n    <div class=\"phc-grid-inputs\">\n      <div class=\"phc-field\">\n        <label>Anfangstemperatur Pool (<span class=\"t-unit\">\u00b0F<\/span>)<\/label>\n        <input type=\"number\" id=\"heat-start\" value=\"65\">\n      <\/div>\n      <div class=\"phc-field\">\n        <label>Gew\u00fcnschte Wassertemperatur (<span class=\"t-unit\">\u00b0F<\/span>)<\/label>\n        <input type=\"number\" id=\"heat-des\" value=\"80\">\n      <\/div>\n      <div class=\"phc-field\">\n        <label>Aufheizzeit (Stunden)<\/label>\n        <input type=\"number\" id=\"heat-time\" value=\"24\" min=\"1\">\n        <div class=\"phc-input-note\">Mindestens 1 empfohlen<\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <!-- Action Buttons -->\n  <div class=\"phc-btn-row\">\n    <button type=\"button\" class=\"phc-btn-calc\" onclick=\"calculateHeater()\">Berechnen<\/button>\n    <button type=\"button\" class=\"phc-btn-reset\" onclick=\"resetCalculator()\">Zur\u00fccksetzen<\/button>\n  <\/div>\n\n  <!-- STEP 5: Results Section -->\n  <div class=\"phc-results-section\" id=\"results-box\" style=\"display: none;\">\n    <div class=\"phc-results-header\">\n      <h3>Berechnungsergebnisse<\/h3>\n      <div class=\"phc-mini-toggle result-toggle\">\n        <span class=\"active\" id=\"res-gal\" onclick=\"changeResultVolUnit('gal')\">gal<\/span>\n        <span id=\"res-l\" onclick=\"changeResultVolUnit('l')\">Liter<\/span>\n        <span id=\"res-m3\" onclick=\"changeResultVolUnit('m3')\">m\u00b3<\/span>\n      <\/div>\n    <\/div>\n\n    <div class=\"phc-results-grid\">\n      <div class=\"phc-res-card highlight\">\n        <div class=\"phc-res-label\">Erforderliche BTU<\/div>\n        <div class=\"phc-res-val\" id=\"res-btu\">&#8211;<\/div>\n        <div class=\"phc-res-sub\">BTU pro Stunde, um die Zielzeit zu erreichen<\/div>\n      <\/div>\n      <div class=\"phc-res-card\">\n        <div class=\"phc-res-label\">Poolvolumen (ca.)<\/div>\n        <div class=\"phc-res-val\" id=\"res-vol-val\">&#8211;<\/div>\n        <div class=\"phc-res-sub\" id=\"res-vol-unit-lbl\">Gallonen<\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<style>\n\/* CSS Styling Root Elements *\/\n.phc-wrapper {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  max-width: 650px;\n  margin: 20px auto;\n  background: #ffffff;\n  border: 1px solid #e2e8f0;\n  border-radius: 12px;\n  padding: 24px;\n  box-shadow: 0 4px 12px rgba(0,0,0,0.05);\n}\n.phc-title {\n  color: #1e293b;\n  margin-top: 0;\n  margin-bottom: 24px;\n  font-size: 24px;\n  font-weight: 700;\n  border-bottom: 2px solid #f1f5f9;\n  padding-bottom: 12px;\n}\n.phc-step-section {\n  background: #f8fafc;\n  border-radius: 8px;\n  padding: 16px;\n  margin-bottom: 20px;\n  border-left: 4px solid #1ecad3;\n}\n.phc-step-header {\n  display: flex;\n  align-items: center;\n  gap: 10px;\n  margin-bottom: 14px;\n}\n.phc-step-header h3 {\n  margin: 0;\n  font-size: 16px;\n  color: #334155;\n  font-weight: 600;\n}\n.phc-step-num {\n  background: #1ecad3;\n  color: #fff;\n  width: 24px;\n  height: 24px;\n  border-radius: 50%;\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  font-size: 12px;\n  font-weight: bold;\n}\n\n\/* Toggles & Shape Selectors *\/\n.phc-toggle-group {\n  display: flex;\n  background: #e2e8f0;\n  padding: 4px;\n  border-radius: 6px;\n}\n.phc-toggle-btn {\n  flex: 1;\n  background: transparent;\n  border: none;\n  padding: 8px 12px;\n  font-size: 14px;\n  font-weight: 500;\n  color: #475569;\n  cursor: pointer;\n  border-radius: 4px;\n  transition: all 0.2s ease;\n}\n.phc-toggle-btn.active {\n  background: #1ecad3;\n  color: white;\n}\n.phc-shape-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));\n  gap: 8px;\n}\n.phc-shape-card {\n  background: #ffffff;\n  border: 1px solid #cbd5e1;\n  padding: 10px;\n  text-align: center;\n  border-radius: 6px;\n  font-size: 13px;\n  cursor: pointer;\n  color: #475569;\n  font-weight: 500;\n  transition: all 0.2s ease;\n}\n.phc-shape-card:hover {\n  border-color: #1ecad3;\n  background: #f0fdfa;\n}\n.phc-shape-card.active {\n  background: #1ecad3;\n  color: white;\n  border-color: #1ecad3;\n}\n\n\/* Mini Unit Toggles *\/\n.phc-mini-toggle {\n  display: inline-flex;\n  background: #e2e8f0;\n  padding: 2px;\n  border-radius: 4px;\n}\n.phc-mini-toggle span {\n  padding: 3px 8px;\n  font-size: 11px;\n  font-weight: 600;\n  cursor: pointer;\n  border-radius: 3px;\n  color: #64748b;\n}\n.phc-mini-toggle span.active {\n  background: #fff;\n  color: #0f172a;\n  box-shadow: 0 1px 3px rgba(0,0,0,0.1);\n}\n\n\/* Form Layout Inputs *\/\n.phc-grid-inputs {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));\n  gap: 12px;\n}\n.phc-field {\n  display: flex;\n  flex-direction: column;\n  gap: 4px;\n}\n.phc-field label {\n  font-size: 12px;\n  font-weight: 600;\n  color: #475569;\n}\n.phc-field input {\n  padding: 8px;\n  border: 1px solid #cbd5e1;\n  border-radius: 6px;\n  font-size: 14px;\n  color: #1e293b;\n  background: #ffffff;\n}\n.phc-field input:focus {\n  outline: none;\n  border-color: #1ecad3;\n  box-shadow: 0 0 0 2px rgba(30, 202, 211, 0.2);\n}\n.phc-input-note {\n  font-size: 11px;\n  color: #64748b;\n  margin-top: 1px;\n}\n\n\/* Submission Row *\/\n.phc-btn-row {\n  display: flex;\n  gap: 12px;\n  margin-top: 24px;\n}\n.phc-btn-calc {\n  flex: 2;\n  background: #1ecad3;\n  color: #fff;\n  border: none;\n  padding: 12px;\n  border-radius: 6px;\n  font-size: 15px;\n  font-weight: 600;\n  cursor: pointer;\n  transition: background 0.2s ease;\n}\n.phc-btn-calc:hover {\n  background: #19b2ba;\n}\n.phc-btn-reset {\n  flex: 1;\n  background: #f1f5f9;\n  color: #475569;\n  border: 1px solid #cbd5e1;\n  padding: 12px;\n  border-radius: 6px;\n  font-size: 15px;\n  font-weight: 500;\n  cursor: pointer;\n}\n.phc-btn-reset:hover {\n  background: #e2e8f0;\n}\n\n\/* Results Formatting *\/\n.phc-results-section {\n  margin-top: 24px;\n  background: #f0fdfa;\n  border: 1px solid #99f6e4;\n  border-radius: 8px;\n  padding: 18px;\n}\n.phc-results-header {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  margin-bottom: 14px;\n  border-bottom: 1px dashed #ccfbf1;\n  padding-bottom: 8px;\n}\n.phc-results-header h3 {\n  margin: 0;\n  font-size: 15px;\n  color: #115e59;\n}\n.phc-results-grid {\n  display: grid;\n  grid-template-columns: 1fr 1fr;\n  gap: 12px;\n}\n@media (max-width: 480px) {\n  .phc-results-grid { grid-template-columns: 1fr; }\n}\n.phc-res-card {\n  background: #ffffff;\n  padding: 14px;\n  border-radius: 6px;\n  border: 1px solid #e2e8f0;\n}\n.phc-res-card.highlight {\n  border-color: #1ecad3;\n  background: #f8fafc;\n}\n.phc-res-label {\n  font-size: 12px;\n  font-weight: 600;\n  color: #64748b;\n  text-transform: uppercase;\n  letter-spacing: 0.5px;\n}\n.phc-res-val {\n  font-size: 22px;\n  font-weight: 700;\n  color: #0f172a;\n  margin: 4px 0;\n}\n.phc-res-card.highlight .phc-res-val {\n  color: #19b2ba;\n}\n.phc-res-sub {\n  font-size: 11px;\n  color: #94a3b8;\n}\n<\/style>\n\n<script>\n\/\/ State Management Engine\nlet currentMethod = 'dimensions';\nlet currentShape = 'rectangular';\nlet dimUnit = 'ft';\nlet volUnit = 'gal';\nlet tempUnit = 'F';\nlet resultVolUnit = 'gal';\nlet calculatedVolumeInGallons = 0;\n\nfunction setMethod(method) {\n  currentMethod = method;\n  document.getElementById('method-dims').classList.toggle('active', method === 'dimensions');\n  document.getElementById('method-vol').classList.toggle('active', method === 'volume');\n\n  const titleEl = document.getElementById('step3-title');\n  if (method === 'dimensions') {\n    titleEl.innerText = \"Poolgr\u00f6\u00dfe\";\n    document.getElementById('unit-toggle-dims').style.display = 'inline-flex';\n    document.getElementById('unit-toggle-vol').style.display = 'none';\n    document.getElementById('inputs-dimensions-container').style.display = 'block';\n    document.getElementById('inputs-volume-container').style.display = 'none';\n  } else {\n    titleEl.innerText = \"Poolvolumen\";\n    document.getElementById('unit-toggle-dims').style.display = 'none';\n    document.getElementById('unit-toggle-vol').style.display = 'inline-flex';\n    document.getElementById('inputs-dimensions-container').style.display = 'none';\n    document.getElementById('inputs-volume-container').style.display = 'block';\n  }\n}\n\nfunction setShape(shape) {\n  currentShape = shape;\n  const cards = document.querySelectorAll('.phc-shape-card');\n  cards.forEach(card => card.classList.remove('active'));\n  document.getElementById('shape-' + shape).classList.add('active');\n\n  \/\/ Hide all inner dimension layouts\n  const dimContainers = document.querySelectorAll('#inputs-dimensions-container .phc-grid-inputs');\n  dimContainers.forEach(el => el.style.display = 'none');\n\n  \/\/ Show target layout\n  const targetFields = document.getElementById('fields-' + shape);\n  if (targetFields) targetFields.style.display = 'grid';\n}\n\nfunction setDimUnit(unit) {\n  dimUnit = unit;\n  document.getElementById('unit-ft').classList.toggle('active', unit === 'ft');\n  document.getElementById('unit-m').classList.toggle('active', unit === 'm');\n\n  const labels = document.querySelectorAll('.d-unit');\n  labels.forEach(lbl => lbl.innerText = unit);\n}\n\nfunction setVolUnit(unit) {\n  volUnit = unit;\n  document.getElementById('unit-gal').classList.toggle('active', unit === 'gal');\n  document.getElementById('unit-l').classList.toggle('active', unit === 'l');\n  document.getElementById('unit-m3').classList.toggle('active', unit === 'm3');\n\n  let unitText = 'Gallonen';\n  if(unit === 'l') unitText = 'Liter';\n  if(unit === 'm3') unitText = 'Kubikmeter (m\u00b3)';\n  document.getElementById('v-input-unit').innerText = unitText;\n}\n\nfunction setTempUnit(unit) {\n  tempUnit = unit;\n  document.getElementById('temp-f').classList.toggle('active', unit === 'F');\n  document.getElementById('temp-c').classList.toggle('active', unit === 'C');\n\n  const labels = document.querySelectorAll('.t-unit');\n  labels.forEach(lbl => lbl.innerText = '\u00b0' + unit);\n}\n\nfunction changeResultVolUnit(unit) {\n  resultVolUnit = unit;\n  document.getElementById('res-gal').classList.toggle('active', unit === 'gal');\n  document.getElementById('res-l').classList.toggle('active', unit === 'l');\n  document.getElementById('res-m3').classList.toggle('active', unit === 'm3');\n  updateResultVolumeDisplay();\n}\n\nfunction updateResultVolumeDisplay() {\n  let displayValue = 0;\n  let lbl = 'Gallonen';\n\n  if (resultVolUnit === 'gal') {\n    displayValue = calculatedVolumeInGallons;\n    lbl = 'Gallonen';\n  } else if (resultVolUnit === 'l') {\n    displayValue = calculatedVolumeInGallons * 3.78541;\n    lbl = 'Liter';\n  } else if (resultVolUnit === 'm3') {\n    displayValue = calculatedVolumeInGallons * 0.00378541;\n    lbl = 'Kubikmeter (m\u00b3)';\n  }\n\n  document.getElementById('res-vol-val').innerText = Math.round(displayValue).toLocaleString();\n  document.getElementById('res-vol-unit-lbl').innerText = lbl;\n}\n\nfunction calculateHeater() {\n  let volumeInGal = 0;\n\n  if (currentMethod === 'dimensions') {\n    \/\/ Collect standard dynamic values converting everything to feet if entry is in meters\n    const mult = (dimUnit === 'm') ? 3.28084 : 1;\n\n    if (currentShape === 'rectangular') {\n      let l = parseFloat(document.getElementById('rect-len').value) * mult;\n      let w = parseFloat(document.getElementById('rect-wid').value) * mult;\n      let s = parseFloat(document.getElementById('rect-shallow').value) * mult;\n      let d = parseFloat(document.getElementById('rect-deep').value) * mult;\n      let avgDepth = (s + d) \/ 2;\n      volumeInGal = l * w * avgDepth * 7.48;\n    }\n    else if (currentShape === 'lshaped') {\n      let totL = parseFloat(document.getElementById('l-tot-len').value) * mult;\n      let totW = parseFloat(document.getElementById('l-tot-wid').value) * mult;\n      let armL = parseFloat(document.getElementById('l-arm-len').value) * mult;\n      let armW = parseFloat(document.getElementById('l-arm-wid').value) * mult;\n      let s = parseFloat(document.getElementById('l-shallow').value) * mult;\n      let d = parseFloat(document.getElementById('l-deep').value) * mult;\n      let avgDepth = (s + d) \/ 2;\n      \/\/ Splitting shape into two components: main rectangle body and short arm extension\n      let area = ((totL - armL) * totW) + (armL * armW);\n      volumeInGal = area * avgDepth * 7.48;\n    }\n    else if (currentShape === 'circle') {\n      let r = parseFloat(document.getElementById('circ-rad').value) * mult;\n      let s = parseFloat(document.getElementById('circ-shallow').value) * mult;\n      let d = parseFloat(document.getElementById('circ-deep').value) * mult;\n      let avgDepth = (s + d) \/ 2;\n      volumeInGal = Math.PI * Math.pow(r, 2) * avgDepth * 7.48;\n    }\n    else if (currentShape === 'triangular') {\n      let b = parseFloat(document.getElementById('tri-base').value) * mult;\n      let h = parseFloat(document.getElementById('tri-height').value) * mult;\n      let s = parseFloat(document.getElementById('tri-shallow').value) * mult;\n      let d = parseFloat(document.getElementById('tri-deep').value) * mult;\n      let avgDepth = (s + d) \/ 2;\n      volumeInGal = 0.5 * b * h * avgDepth * 7.48;\n    }\n    else if (currentShape === 'kidney') {\n      let l = parseFloat(document.getElementById('kid-len').value) * mult;\n      let w = parseFloat(document.getElementById('kid-wid').value) * mult;\n      let s = parseFloat(document.getElementById('kid-shallow').value) * mult;\n      let d = parseFloat(document.getElementById('kid-deep').value) * mult;\n      let avgDepth = (s + d) \/ 2;\n      volumeInGal = l * w * avgDepth * 0.85 * 7.48;\n    }\n    else if (currentShape === 'oval') {\n      let l = parseFloat(document.getElementById('oval-len').value) * mult;\n      let w = parseFloat(document.getElementById('oval-wid').value) * mult;\n      let s = parseFloat(document.getElementById('oval-shallow').value) * mult;\n      let d = parseFloat(document.getElementById('oval-deep').value) * mult;\n      let avgDepth = (s + d) \/ 2;\n      volumeInGal = (l \/ 2) * (w \/ 2) * Math.PI * avgDepth * 7.48;\n    }\n    else if (currentShape === 'oblong') {\n      let lDia = parseFloat(document.getElementById('ob-ldia').value) * mult;\n      let sDia = parseFloat(document.getElementById('ob-sdia').value) * mult;\n      let len = parseFloat(document.getElementById('ob-len').value) * mult;\n      let s = parseFloat(document.getElementById('ob-shallow').value) * mult;\n      let d = parseFloat(document.getElementById('ob-deep').value) * mult;\n      let avgDepth = (s + d) \/ 2;\n      let area = (sDia * (len - sDia)) + (Math.PI * Math.pow(sDia \/ 2, 2));\n      volumeInGal = area * avgDepth * 7.48;\n    }\n  } else {\n    \/\/ Pure Volume calculation route\n    let rawVol = parseFloat(document.getElementById('input-pure-volume').value);\n    if (volUnit === 'gal') {\n      volumeInGal = rawVol;\n    } else if (volUnit === 'l') {\n      volumeInGal = rawVol \/ 3.78541;\n    } else if (volUnit === 'm3') {\n      volumeInGal = rawVol \/ 0.00378541;\n    }\n  }\n\n  \/\/ Ensure volume configuration isn't corrupted or empty\n  if(isNaN(volumeInGal) || volumeInGal <= 0) volumeInGal = 0;\n  calculatedVolumeInGallons = volumeInGal;\n\n  \/\/ Heating Math Calculations\n  let tStart = parseFloat(document.getElementById('heat-start').value);\n  let tEnd = parseFloat(document.getElementById('heat-des').value);\n  let hTime = parseFloat(document.getElementById('heat-time').value);\n\n  if (isNaN(hTime) || hTime < 1) hTime = 1;\n\n  let tempDiff = tEnd - tStart;\n  if(tempUnit === 'C') {\n    tempDiff = tempDiff * 1.8; \/\/ Convert variance scalar scale up to Fahrenheit Delta\n  }\n\n  if (tempDiff <= 0) tempDiff = 0;\n\n  \/\/ Formula: 1 Gallon of pure water weighs roughly 8.34 lbs. 1 BTU raises 1 lb water by 1\u00b0F.\n  let totalBtuNeeded = volumeInGal * 8.34 * tempDiff;\n  let btuPerHour = totalBtuNeeded \/ hTime;\n\n  \/\/ Real world thermodynamic buffer efficiency correction factor (approx 20% loss compensation)\n  btuPerHour = btuPerHour * 1.22;\n\n  \/\/ Output formatting to View Elements\n  document.getElementById('res-btu').innerText = Math.round(btuPerHour).toLocaleString();\n  updateResultVolumeDisplay();\n\n  document.getElementById('results-box').style.display = 'block';\n}\n\nfunction resetCalculator() {\n  \/\/ Restore interface status to defaults\n  setMethod('dimensions');\n  setShape('rectangular');\n  setDimUnit('ft');\n  setVolUnit('gal');\n  setTempUnit('F');\n  changeResultVolUnit('gal');\n\n  \/\/ Clean all basic standard entries\n  const inputs = document.querySelectorAll('.phc-wrapper input');\n  inputs.forEach(input => {\n    if(input.id === 'heat-start') input.value = 65;\n    else if(input.id === 'heat-des') input.value = 80;\n    else if(input.id === 'heat-time') input.value = 24;\n    else if(input.id === 'rect-len' || input.id === 'oval-len') input.value = 30;\n    else if(input.id === 'rect-wid' || input.id === 'tri-height' || input.id === 'oval-wid' || input.id === 'l-arm-len') input.value = 15;\n    else if(input.id === 'rect-shallow' || input.id === 'l-shallow' || input.id === 'tri-shallow' || input.id === 'kid-shallow' || input.id === 'ob-shallow') input.value = 3;\n    else if(input.id === 'rect-deep' || input.id === 'l-deep' || input.id === 'oval-deep' || input.id === 'ob-deep') input.value = 6;\n    else if(input.id === 'input-pure-volume') input.value = 15000;\n    else if(input.id === 'l-tot-len') input.value = 40;\n    else if(input.id === 'l-tot-wid') input.value = 20;\n    else if(input.id === 'l-arm-wid') input.value = 10;\n    else if(input.id === 'circ-rad') input.value = 9;\n    else if(input.id === 'circ-shallow' || input.id === 'circ-deep') input.value = 4;\n    else if(input.id === 'tri-base') input.value = 20;\n    else if(input.id === 'kid-len') input.value = 28;\n    else if(input.id === 'kid-wid') input.value = 14;\n    else if(input.id === 'kid-deep') input.value = 5.5;\n    else if(input.id === 'ob-ldia') input.value = 16;\n    else if(input.id === 'ob-sdia') input.value = 12;\n    else if(input.id === 'ob-len') input.value = 32;\n  });\n\n  document.getElementById('results-box').style.display = 'none';\n}\n<\/script>\n\n\n<!-- aiper-tool-links -->\n<div class=\"aiper-tool-links\">\n  <div class=\"aiper-tl-section\">\n    <div class=\"aiper-tl-heading\">Weitere Tools<\/div>\n    <div class=\"aiper-tl-tags\">\n      <a href=\"https:\/\/aiper.com\/blogs\/de\/pool-befuellzeit-rechner\/\" class=\"aiper-tl-tag\">Pool-Bef\u00fcllzeit-Rechner<\/a>\n<a href=\"https:\/\/aiper.com\/blogs\/de\/pool-umwaelzraten-rechner\/\" class=\"aiper-tl-tag\">Pool-Umw\u00e4lzraten-Rechner<\/a>\n<a href=\"https:\/\/aiper.com\/blogs\/de\/pool-saettigungsindex-rechner\/\" class=\"aiper-tl-tag\">Pool-S\u00e4ttigungsindex-Rechner (LSI)<\/a>\n    <\/div>\n  <\/div>\n  <div class=\"aiper-tl-section\">\n    <div class=\"aiper-tl-heading\">Verwandte Artikel<\/div>\n    <div class=\"aiper-tl-tags\">\n      <a href=\"https:\/\/aiper.com\/blogs\/de\/pool-alkalitaet-senken\/\" class=\"aiper-tl-tag\">Pool-Alkalit\u00e4t senken: Was wirklich funktioniert<\/a>\n<a href=\"https:\/\/aiper.com\/blogs\/de\/poolroboter-steckt-am-hauptablauf\/\" class=\"aiper-tl-tag\">Warum bleibt der Poolroboter am Hauptablauf stecken?<\/a>\n<a href=\"https:\/\/aiper.com\/blogs\/de\/pool-einwintern-anleitung\/\" class=\"aiper-tl-tag\">Pool einwintern: Schritt-f\u00fcr-Schritt-Anleitung<\/a>\n<a href=\"https:\/\/aiper.com\/blogs\/de\/poolroboter-im-pool-lassen\/\" class=\"aiper-tl-tag\">Kann man einen Poolroboter im Pool lassen?<\/a>\n    <\/div>\n  <\/div>\n<\/div>\n\n<style>\n.aiper-tool-links{margin:2.5rem 0 1.5rem;padding:1.5rem 1.75rem;background:linear-gradient(135deg,rgba(148,134,247,.04),rgba(30,202,211,.04));border-radius:12px;border:1px solid rgba(148,134,247,.10)}\n.aiper-tl-section{margin-bottom:1.25rem}\n.aiper-tl-section:last-child{margin-bottom:0}\n.aiper-tl-heading{font-size:.75rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:#8899aa;margin:0 0 .65rem}\n.aiper-tl-tags{display:flex;flex-wrap:wrap;gap:.5rem}\n.aiper-tl-tag{display:inline-block;padding:.4rem .95rem;font-size:.82rem;font-weight:500;line-height:1.35;color:#9486f7;background:rgba(148,134,247,.055);border:1px solid rgba(30,202,211,.25);border-radius:22px;text-decoration:none;transition:all .18s}\n.aiper-tl-tag:hover{background:#1ecad3;color:#fff;border-color:#1ecad3;box-shadow:0 2px 10px rgba(30,202,211,.22)}\n<\/style>","protected":false},"excerpt":{"rendered":"<p>1 Berechnungsmethode Poolma\u00dfe Poolvolumen 2 Poolform w\u00e4hlen Rechteckig L-Form Rund Dreieckig Nierenform Oval L\u00e4ngsoval 3 Poolgr\u00f6\u00dfe ft m gal Liter m\u00b3 L\u00e4nge (ft) Breite (ft) Tiefe (flaches Ende) (ft) Tiefe (tiefes Ende) (ft) Gesamtl\u00e4nge (ft) Gesamtbreite (ft) L\u00e4nge des kurzen Schenkels (ft) Breite des kurzen Schenkels (ft) Tiefe (flaches Ende) (ft) Tiefe (tiefes Ende) (ft)&#8230;<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"class_list":["post-2100","page","type-page","status-publish","hentry"],"lang":"de","translations":{"de":2100,"en":1816,"fr":2101,"es":2102},"_links":{"self":[{"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/pages\/2100","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/comments?post=2100"}],"version-history":[{"count":3,"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/pages\/2100\/revisions"}],"predecessor-version":[{"id":4328,"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/pages\/2100\/revisions\/4328"}],"wp:attachment":[{"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/media?parent=2100"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}