{"id":560,"date":"2025-12-04T00:29:18","date_gmt":"2025-12-04T05:29:18","guid":{"rendered":"https:\/\/sites.wp.odu.edu\/fromdata2dialogue\/?page_id=560"},"modified":"2025-12-04T00:32:20","modified_gmt":"2025-12-04T05:32:20","slug":"wood-stove-safety-thermometer","status":"publish","type":"page","link":"https:\/\/sites.wp.odu.edu\/fromdata2dialogue\/wood-stove-safety-thermometer\/","title":{"rendered":"Wood Stove Safety Thermometer"},"content":{"rendered":"\n<p>\n<div id=\"stove-thermo-tool\">\r\n  <h2>Interactive Wood Stove Thermometer<\/h2>\r\n  <p>Enter your stove temperature or use the slider to see where you are on the burn scale.<\/p>\r\n\r\n  <div class=\"thermo-layout\">\r\n    <!-- Thermometer graphic -->\r\n    <div class=\"thermo-visual\">\r\n      <div class=\"thermo-inner\">\r\n        <div class=\"thermo-fill\" id=\"thermoFill\"><\/div>\r\n      <\/div>\r\n      <div class=\"thermo-bulb\"><\/div>\r\n      <div class=\"thermo-labels\">\r\n        <span>900\u00b0F<\/span>\r\n        <span>700\u00b0F<\/span>\r\n        <span>550\u00b0F<\/span>\r\n        <span>300\u00b0F<\/span>\r\n        <span>150\u00b0F<\/span>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <!-- Controls -->\r\n    <div class=\"thermo-controls\">\r\n      <label for=\"tempInput\"><strong>Stovetop Temperature (\u00b0F)<\/strong><\/label>\r\n      <input\r\n        type=\"number\"\r\n        id=\"tempInput\"\r\n        min=\"150\"\r\n        max=\"900\"\r\n        step=\"10\"\r\n        value=\"400\"\r\n      \/>\r\n\r\n      <label for=\"tempSlider\" class=\"slider-label\">Slide to match your thermometer:<\/label>\r\n      <input\r\n        type=\"range\"\r\n        id=\"tempSlider\"\r\n        min=\"150\"\r\n        max=\"900\"\r\n        step=\"10\"\r\n        value=\"400\"\r\n      \/>\r\n\r\n      <p class=\"current-reading\">\r\n        Current reading: <span id=\"tempDisplay\">400<\/span> \u00b0F\r\n      <\/p>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <!-- Zone info -->\r\n  <div class=\"thermo-zone-info\">\r\n    <h3 id=\"zoneTitle\">\ud83d\udd25 Optimal Burn Zone<\/h3>\r\n    <p id=\"zoneSummary\">\r\n      You are in the strong, efficient burn range. Great heat, cleaner glass, and much\r\n      less creosote in your chimney.\r\n    <\/p>\r\n    <ul id=\"zoneTips\">\r\n      <li>Keep burning dry, seasoned wood.<\/li>\r\n      <li>Maintain good airflow; don\u2019t choke the stove too soon.<\/li>\r\n      <li>This is the range to aim for once your fire is established.<\/li>\r\n    <\/ul>\r\n  <\/div>\r\n<\/div>\r\n\r\n<style>\r\n  #stove-thermo-tool {\r\n    max-width: 900px;\r\n    margin: 0 auto;\r\n    font-family: system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif;\r\n    line-height: 1.5;\r\n  }\r\n\r\n  #stove-thermo-tool h2 {\r\n    text-align: center;\r\n    margin-bottom: 0.5rem;\r\n  }\r\n\r\n  .thermo-layout {\r\n    display: flex;\r\n    flex-wrap: wrap;\r\n    gap: 1.5rem;\r\n    margin-top: 1rem;\r\n    align-items: center;\r\n  }\r\n\r\n  .thermo-visual {\r\n    flex: 0 0 140px;\r\n    display: flex;\r\n    flex-direction: column;\r\n    align-items: center;\r\n  }\r\n\r\n  .thermo-inner {\r\n    position: relative;\r\n    width: 40px;\r\n    height: 260px;\r\n    border-radius: 20px;\r\n    border: 3px solid #444;\r\n    background: #f3f4f6;\r\n    overflow: hidden;\r\n    box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.2);\r\n  }\r\n\r\n  .thermo-fill {\r\n    position: absolute;\r\n    bottom: 0;\r\n    left: 0;\r\n    width: 100%;\r\n    height: 40%;\r\n    background: linear-gradient(to top, #b91c1c, #f97316);\r\n    transition: height 0.3s ease, background 0.3s ease;\r\n  }\r\n\r\n  .thermo-bulb {\r\n    width: 60px;\r\n    height: 60px;\r\n    border-radius: 50%;\r\n    margin-top: -8px;\r\n    border: 3px solid #444;\r\n    background: radial-gradient(circle at 30% 30%, #fecaca, #b91c1c);\r\n    box-shadow: 0 0 10px rgba(0, 0, 0, 0.35);\r\n  }\r\n\r\n  .thermo-labels {\r\n    margin-top: 0.5rem;\r\n    font-size: 0.8rem;\r\n    color: #4b5563;\r\n    display: flex;\r\n    flex-direction: column;\r\n    gap: 0.1rem;\r\n    text-align: center;\r\n  }\r\n\r\n  .thermo-controls {\r\n    flex: 1 1 250px;\r\n    min-width: 250px;\r\n  }\r\n\r\n  .thermo-controls label {\r\n    display: block;\r\n    margin-top: 0.4rem;\r\n    margin-bottom: 0.2rem;\r\n  }\r\n\r\n  #tempInput {\r\n    width: 100%;\r\n    padding: 0.4rem;\r\n    font-size: 1rem;\r\n    border-radius: 6px;\r\n    border: 1px solid #d1d5db;\r\n    box-sizing: border-box;\r\n  }\r\n\r\n  .slider-label {\r\n    margin-top: 0.8rem;\r\n    font-size: 0.95rem;\r\n  }\r\n\r\n  #tempSlider {\r\n    width: 100%;\r\n    margin-top: 0.2rem;\r\n  }\r\n\r\n  .current-reading {\r\n    margin-top: 0.6rem;\r\n    font-weight: 600;\r\n  }\r\n\r\n  .thermo-zone-info {\r\n    margin-top: 1.5rem;\r\n    padding: 1rem;\r\n    border-radius: 8px;\r\n    background: #f9fafb;\r\n    border: 1px solid #e5e7eb;\r\n  }\r\n\r\n  .thermo-zone-info h3 {\r\n    margin-top: 0;\r\n    margin-bottom: 0.4rem;\r\n  }\r\n\r\n  .thermo-zone-info ul {\r\n    margin-top: 0.4rem;\r\n    padding-left: 1.2rem;\r\n  }\r\n\r\n  \/* Mobile *\/\r\n  @media (max-width: 600px) {\r\n    .thermo-layout {\r\n      flex-direction: column;\r\n      align-items: flex-start;\r\n    }\r\n\r\n    .thermo-visual {\r\n      align-self: center;\r\n    }\r\n  }\r\n<\/style>\r\n\r\n<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n  const minTemp = 150;\r\n  const maxTemp = 900;\r\n\r\n  const tempInput = document.getElementById(\"tempInput\");\r\n  const tempSlider = document.getElementById(\"tempSlider\");\r\n  const tempDisplay = document.getElementById(\"tempDisplay\");\r\n  const thermoFill = document.getElementById(\"thermoFill\");\r\n  const zoneTitle = document.getElementById(\"zoneTitle\");\r\n  const zoneSummary = document.getElementById(\"zoneSummary\");\r\n  const zoneTips = document.getElementById(\"zoneTips\");\r\n\r\n  function clampTemp(value) {\r\n    value = Number(value);\r\n    if (isNaN(value)) value = minTemp;\r\n    if (value < minTemp) value = minTemp;\r\n    if (value > maxTemp) value = maxTemp;\r\n    return value;\r\n  }\r\n\r\n  function updateThermometer(value) {\r\n    const v = clampTemp(value);\r\n\r\n    \/\/ Sync controls\r\n    tempInput.value = v;\r\n    tempSlider.value = v;\r\n    tempDisplay.textContent = v;\r\n\r\n    \/\/ Fill height\r\n    const percent = ((v - minTemp) \/ (maxTemp - minTemp)) * 100;\r\n    thermoFill.style.height = Math.max(5, percent) + \"%\";\r\n\r\n    \/\/ Zone logic\r\n    let color, title, summary, tips;\r\n\r\n    if (v < 250) {\r\n      \/\/ Too cool \/ creosote zone\r\n      color = \"linear-gradient(to top, #1d4ed8, #38bdf8)\";\r\n      title = \"\u2744\ufe0f Too Cool \u2013 Creosote Zone\";\r\n      summary =\r\n        \"Your fire is burning too cool. This range produces heavy smoke and creosote, and very little useful heat.\";\r\n      tips = [\r\n        \"Use smaller, well-seasoned splits to boost temperature.\",\r\n        \"Open the air control more to give the fire more oxygen.\",\r\n        \"Avoid burning in this range for long periods \u2014 it gunks up your chimney.\"\r\n      ];\r\n    } else if (v >= 250 && v <= 600) {\r\n      \/\/ Optimal zone\r\n      color = \"linear-gradient(to top, #16a34a, #86efac)\";\r\n      title = \"\ud83d\udd25 Optimal Burn Zone\";\r\n      summary =\r\n        \"You\u2019re in the efficient burn range. Good heat, cleaner glass, and slower creosote buildup.\";\r\n      tips = [\r\n        \"Keep using dry, seasoned wood (15\u201320% moisture).\",\r\n        \"Let each load burn bright before turning the air down.\",\r\n        \"Aim to keep most of your burn time in this zone.\"\r\n      ];\r\n    } else if (v > 600 && v <= 750) {\r\n      \/\/ Hot but generally okay\r\n      color = \"linear-gradient(to top, #f97316, #fde047)\";\r\n      title = \"\u26a0\ufe0f Very Hot \u2013 Short Bursts Only\";\r\n      summary =\r\n        \"Your stove is running hot. This can be okay for short periods, but don\u2019t cruise here for hours.\";\r\n      tips = [\r\n        \"Turn the air control down a bit and watch the temperature.\",\r\n        \"Avoid loading the firebox completely full at this temp.\",\r\n        \"Check your stove\u2019s manual for recommended max operating range.\"\r\n      ];\r\n    } else {\r\n      \/\/ Overfire \/ danger\r\n      color = \"linear-gradient(to top, #b91c1c, #fecaca)\";\r\n      title = \"\ud83d\udea8 Overfire \/ Danger Zone\";\r\n      summary =\r\n        \"Your stove temperature is dangerously high. Prolonged overfiring can warp metal and damage your stove or chimney.\";\r\n      tips = [\r\n        \"Close the air control fully and keep the door shut.\",\r\n        \"Move kids and pets away from the stove area.\",\r\n        \"If temps keep climbing or you see roaring\/embers at the cap, follow emergency procedures and call 911.\"\r\n      ];\r\n    }\r\n\r\n    thermoFill.style.background = color;\r\n    zoneTitle.textContent = title;\r\n    zoneSummary.textContent = summary;\r\n\r\n    \/\/ Rebuild tips list\r\n    zoneTips.innerHTML = \"\";\r\n    tips.forEach(t => {\r\n      const li = document.createElement(\"li\");\r\n      li.textContent = t;\r\n      zoneTips.appendChild(li);\r\n    });\r\n  }\r\n\r\n  \/\/ Event listeners\r\n  tempInput.addEventListener(\"input\", function () {\r\n    updateThermometer(this.value);\r\n  });\r\n\r\n  tempSlider.addEventListener(\"input\", function () {\r\n    updateThermometer(this.value);\r\n  });\r\n\r\n  \/\/ Initial state\r\n  updateThermometer(tempInput.value);\r\n});\r\n<\/script>\n<\/p>\n\n\n\n<p>\n<!-- Invisible looping fire sound -->\r\n<audio id=\"fireSound\" muted loop style=\"display:none;\">\r\n  <source src=\"https:\/\/www.dropbox.com\/scl\/fi\/ef97yv4voxjh3nxslog5l\/Short-Fireplace-Video-Loop-with-Sound-1-minute-loop-Template-Fireplace-for-Background-Winter.mp3?rlkey=05fgp5optoh1p7ipk4phq7tdq&st=1zbh9zos&raw=1\" type=\"audio\/mpeg\">\r\n<\/audio>\r\n\r\n<script>\r\n(document.addEventListener || window.addEventListener)(\"scroll\", function () {\r\n    const audio = document.getElementById(\"fireSound\");\r\n    if (audio.paused) {\r\n        audio.play().catch(()=>{});\r\n        audio.muted = false;\r\n    }\r\n}, { once: true });\r\n<\/script>\n<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Interactive Wood Stove Thermometer Enter your stove temperature or use the slider to see where you are on the burn scale. 900\u00b0F 700\u00b0F 550\u00b0F 300\u00b0F 150\u00b0F Stovetop Temperature (\u00b0F) Slide to match your thermometer: Current reading: 400 \u00b0F \ud83d\udd25 Optimal&#8230; <a class=\"more-link\" href=\"https:\/\/sites.wp.odu.edu\/fromdata2dialogue\/wood-stove-safety-thermometer\/\">Continue Reading &rarr;<\/a><\/p>\n","protected":false},"author":31707,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"_links":{"self":[{"href":"https:\/\/sites.wp.odu.edu\/fromdata2dialogue\/wp-json\/wp\/v2\/pages\/560"}],"collection":[{"href":"https:\/\/sites.wp.odu.edu\/fromdata2dialogue\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/sites.wp.odu.edu\/fromdata2dialogue\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/sites.wp.odu.edu\/fromdata2dialogue\/wp-json\/wp\/v2\/users\/31707"}],"replies":[{"embeddable":true,"href":"https:\/\/sites.wp.odu.edu\/fromdata2dialogue\/wp-json\/wp\/v2\/comments?post=560"}],"version-history":[{"count":2,"href":"https:\/\/sites.wp.odu.edu\/fromdata2dialogue\/wp-json\/wp\/v2\/pages\/560\/revisions"}],"predecessor-version":[{"id":563,"href":"https:\/\/sites.wp.odu.edu\/fromdata2dialogue\/wp-json\/wp\/v2\/pages\/560\/revisions\/563"}],"wp:attachment":[{"href":"https:\/\/sites.wp.odu.edu\/fromdata2dialogue\/wp-json\/wp\/v2\/media?parent=560"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}