{
 "schema": "spawner-tool/v1",
 "id": "bot_023",
 "name": "Schneelast Dach berechnen nach DIN EN 1991-1-3",
 "description": "Schneelast auf dem Dach berechnen: Dachneigung, charakteristische Schneelast und Dachfläche eingeben.",
 "url": "https://fachrechner.com/de/schneelast-dach-berechnen/",
 "spec_url": "https://fachrechner.com/de/schneelast-dach-berechnen/spec.json",
 "language": "de",
 "market": "DE",
 "live_since": null,
 "inputs": [
  {
   "id": "s_k",
   "label": "Charakteristische Schneelast am Boden (s_k)",
   "unit": "kN/m²",
   "min": 0.1,
   "max": 10.0,
   "step": 0.05,
   "default": 0.85
  },
  {
   "id": "dachneigung",
   "label": "Dachneigung (α)",
   "unit": "°",
   "min": 0.0,
   "max": 75.0,
   "step": 1.0,
   "default": 30.0
  },
  {
   "id": "flaeche",
   "label": "Dachfläche (Grundrissprojektion)",
   "unit": "m²",
   "min": 1.0,
   "max": 5000.0,
   "step": 1.0,
   "default": 100.0
  }
 ],
 "constants": [
  {
   "id": "c_e",
   "value": 1,
   "source": "Expositionsbeiwert C_e = 1,0 für normale Exposition nach DIN EN 1991-1-3, Abschnitt 5.2 (mit nationalem Anhang)"
  },
  {
   "id": "c_t",
   "value": 1,
   "source": "Thermischer Beiwert C_t = 1,0 nach DIN EN 1991-1-3, Abschnitt 5.2 (mit nationalem Anhang)"
  }
 ],
 "outputs": [
  {
   "id": "mu_faktor",
   "label": "Formbeiwert Dach (μ₁)",
   "unit": "-",
   "decimals": 3,
   "expression": "(0.8 if dachneigung <= 30 else (0.8*(60-dachneigung)/30 if dachneigung < 60 else 0))"
  },
  {
   "id": "schneelast_dach",
   "label": "Schneelast auf dem Dach (s)",
   "unit": "kN/m²",
   "decimals": 3,
   "expression": "mu_faktor*c_e*c_t*s_k"
  },
  {
   "id": "gesamtlast",
   "label": "Gesamte Schneelast über die Dachfläche",
   "unit": "kN",
   "decimals": 1,
   "expression": "schneelast_dach*flaeche"
  }
 ],
 "formula": "s = μ₁ · C_e · C_t · s_k, mit μ₁ = 0,8 für α ≤ 30°, μ₁ = 0,8 · (60° − α) / 30° für 30° < α < 60° und μ₁ = 0 für α ≥ 60°. Gesamtlast F = s · A.",
 "expression_language": {
  "name": "safeexpr",
  "syntax": "Python arithmetic subset: + - * / ** %, parentheses, numbers, input/constant ids and ids of earlier outputs, functions abs sqrt log log10 exp floor ceil sin cos tan min max round(x,n), constants pi e, conditionals (a if x > y else b)",
  "semantics": "% is fmod; round() rounds half away from zero; outputs are evaluated in the listed order"
 },
 "example": {
  "inputs": {
   "s_k": 0.85,
   "dachneigung": 30.0,
   "flaeche": 100.0
  },
  "outputs": {
   "mu_faktor": 0.8,
   "schneelast_dach": 0.68,
   "gesamtlast": 68.0
  }
 },
 "verification": "formula checked against independent test vectors; browser JS equals the reference evaluator",
 "commercial_action": {
  "type": "product_search",
  "label": "Schneefanggitter finden",
  "product_category": "Schneefanggitter und Dachzubehör",
  "store": "eBay.de",
  "query_template": "Schneefanggitter Dach {gesamtlast} kN",
  "search_url_template": "https://www.ebay.de/sch/i.html?_nkw={q}",
  "example": {
   "query": "Schneefanggitter Dach 68 kN",
   "url": "https://www.ebay.de/sch/i.html?_nkw=Schneefanggitter%20Dach%2068%20kN"
  },
  "bom": [
   {
    "slot": 1,
    "kind": "primary",
    "label": "Passend zum Ergebnis (Normgröße)",
    "query_template": "Schneefanggitter Dach {gesamtlast} kN",
    "standard_size_step": 0,
    "search_url_template": "https://www.ebay.de/sch/i.html?_nkw={q}",
    "example": {
     "query": "Schneefanggitter Dach 68 kN",
     "url": "https://www.ebay.de/sch/i.html?_nkw=Schneefanggitter%20Dach%2068%20kN"
    }
   },
   {
    "slot": 2,
    "kind": "accessory",
    "label": "Montagezubehör / Messgerät",
    "query_template": "Schneefanggitter Befestigung Dachhaken",
    "standard_size_step": 0,
    "search_url_template": "https://www.ebay.de/sch/i.html?_nkw={q}",
    "example": {
     "query": "Schneefanggitter Befestigung Dachhaken",
     "url": "https://www.ebay.de/sch/i.html?_nkw=Schneefanggitter%20Befestigung%20Dachhaken"
    }
   }
  ],
  "standard_series": null,
  "affiliate": false,
  "rel": "sponsored nofollow",
  "note": "Parts list (bom) in display order. Replace {placeholders} in query_template with the user's computed values (inputs or outputs); for placeholders listed in standard_series use the smallest series value >= the computed value, then move standard_size_step positions up the series; URL-encode the query and substitute {q} in search_url_template."
 },
 "api": {
  "endpoint": "https://fachrechner.com/api/v1/calc/bot_023",
  "method": "GET",
  "parameters": "input ids as query parameters (missing = default); response JSON with outputs",
  "free_calls_per_day": 10,
  "auth": null,
  "on_limit": "HTTP 402 daily_limit_reached (no paid tier; quota resets 00:00 UTC, Retry-After)",
  "pro_checkout": null,
  "expression_tree": "https://fachrechner.com/m2m/bot_023.json"
 }
}