{"id":35778,"date":"2026-08-12T12:48:11","date_gmt":"2026-08-12T12:48:11","guid":{"rendered":"https:\/\/monterai.ro\/statia-meteo-monterai-ibraov107\/"},"modified":"2026-09-16T09:25:58","modified_gmt":"2026-09-16T09:25:58","slug":"monterai-weather-station-ibraov107","status":"publish","type":"page","link":"https:\/\/monterai.ro\/en\/monterai-weather-station-ibraov107\/","title":{"rendered":"Monterai weather station &#8211; IBRAOV107"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"35778\" class=\"elementor elementor-35778 elementor-35573\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ed483f4 e-flex e-con-boxed e-con e-parent\" data-id=\"ed483f4\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-80ebca1 elementor-widget elementor-widget-html\" data-id=\"80ebca1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- Weather IBRAOV107 \u2014 isolated version (English).\r\n     All CSS is scoped under #mtr-widget, so it cannot affect the rest of the theme.\r\n     When the station is offline, shows a clear message and the last available reading. -->\r\n\r\n<div id=\"mtr-widget\" lang=\"en\">\r\n  <div class=\"mtr-card\" id=\"mtr-acum\"><p class=\"mtr-stare\">Loading\u2026<\/p><\/div>\r\n  <div class=\"mtr-card\" id=\"mtr-grafic\" style=\"display:none\"><\/div>\r\n  <div class=\"mtr-card\" id=\"mtr-istoric\" style=\"display:none\"><\/div>\r\n  <div class=\"mtr-card\" id=\"mtr-prognoza\" style=\"display:none\"><\/div>\r\n  <p class=\"mtr-sursa\">\r\n    Personal weather station IBRAOV107 \u00b7\r\n    <a href=\"https:\/\/www.wunderground.com\/dashboard\/pws\/IBRAOV107\" target=\"_blank\" rel=\"noopener nofollow\">Weather Underground<\/a>\r\n  <\/p>\r\n<\/div>\r\n\r\n<style>\r\n  #mtr-widget{font:inherit;display:block}\r\n  #mtr-widget .mtr-card{border:1px solid rgba(0,0,0,.12);border-radius:10px;padding:1.25rem;margin:0 0 1rem}\r\n  #mtr-widget .mtr-titlu{margin:0 0 1rem;font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;opacity:.55;font-weight:600}\r\n  #mtr-widget .mtr-temp{margin:0;font-size:3rem;line-height:1.05;font-weight:600}\r\n  #mtr-widget .mtr-loc{margin:.25rem 0 1.25rem;font-size:.85rem;opacity:.65}\r\n  #mtr-widget .mtr-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:.85rem;margin:0}\r\n  #mtr-widget .mtr-grid dt{margin:0;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;opacity:.6}\r\n  #mtr-widget .mtr-grid dd{margin:.15rem 0 0;font-size:1.1rem;font-weight:600}\r\n  #mtr-widget .mtr-azi{display:flex;flex-wrap:wrap;gap:1.5rem;margin:0 0 1.25rem;padding:0 0 1.25rem;border-bottom:1px solid rgba(0,0,0,.08)}\r\n  #mtr-widget .mtr-azi span{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;opacity:.6}\r\n  #mtr-widget .mtr-azi b{font-size:1.1rem}\r\n  #mtr-widget .mtr-svg{width:100%;height:auto;display:block}\r\n  #mtr-widget .mtr-legenda{margin:.5rem 0 0;font-size:.75rem;opacity:.6}\r\n  #mtr-widget .mtr-zile{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:.75rem;margin:0}\r\n  #mtr-widget .mtr-zi{text-align:center;padding:.6rem .35rem;border-radius:8px;background:rgba(0,0,0,.03)}\r\n  #mtr-widget .mtr-zi__nume{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;opacity:.6}\r\n  #mtr-widget .mtr-zi__icon{font-size:1.4rem;line-height:1.6}\r\n  #mtr-widget .mtr-zi__max{font-weight:600}\r\n  #mtr-widget .mtr-zi__min{opacity:.55}\r\n  #mtr-widget .mtr-zi__ploaie{font-size:.72rem;opacity:.6;margin-top:.2rem}\r\n  #mtr-widget .mtr-stare{margin:0;opacity:.6}\r\n  #mtr-widget .mtr-eroare{margin:0;font-size:.85rem;color:#a12}\r\n  #mtr-widget .mtr-sursa{margin:0;font-size:.75rem;opacity:.6}\r\n  #mtr-widget .mtr-offline{display:flex;align-items:center;gap:.6rem;margin:0;font-weight:600}\r\n  #mtr-widget .mtr-offline::before{content:\"\";width:10px;height:10px;border-radius:50%;background:#c33;flex:none}\r\n  #mtr-widget .mtr-offline-detalii{margin:.35rem 0 0;font-size:.85rem;opacity:.65}\r\n  #mtr-widget .mtr-offline-box{margin:0 0 1.25rem;padding:0 0 1.25rem;border-bottom:1px solid rgba(0,0,0,.08)}\r\n<\/style>\r\n\r\n<script>\r\n(function () {\r\n  'use strict';\r\n\r\n  var CFG = {\r\n    cheie: 'e1f10a1e78da46f5b10a1e78da96f525',\r\n    statie: 'IBRAOV107',\r\n    lat: 45.61, lon: 25.55,\r\n    unitati: 'm',          \/\/ 'm' = metric (\u00b0C, km\/h, mm, hPa) \u00b7 'e' = imperial\r\n    limbaAPI: 'en-US',\r\n    cacheMin: { acum: 5, zile: 60, grafic: 30, prognoza: 180 },\r\n    debug: false   \/\/ set to true to show technical errors directly on the page\r\n  };\r\n\r\n  var API = 'https:\/\/api.weather.com\/';\r\n  function $(id) { return document.getElementById(id); }\r\n\r\n  var MESAJ_OFFLINE = '<p class=\"mtr-offline\">Weather station offline<\/p>';\r\n\r\n  function offline() {\r\n    var box = $('mtr-acum');\r\n    if (!box) return;\r\n    box.innerHTML = MESAJ_OFFLINE\r\n      + '<p class=\"mtr-offline-detalii\">The station hasn&rsquo;t sent any data recently. Readings will reappear automatically once it&rsquo;s back online.<\/p>';\r\n  }\r\n\r\n  function raporteaza(unde, e) {\r\n    if (window.console && console.warn) console.warn('[weather]', unde, e);\r\n    if (CFG.debug) {\r\n      var box = $('mtr-acum');\r\n      if (box) box.innerHTML = '<p class=\"mtr-eroare\">Error in ' + unde + ': ' + (e && e.message ? e.message : e) + '<\/p>';\r\n    } else {\r\n      offline();\r\n    }\r\n  }\r\n\r\n  try {\r\n\r\n    function nr(v, sufix, zec) {\r\n      if (v === null || v === undefined || v === '') return '\u2013';\r\n      var n = Number(v);\r\n      if (isNaN(n)) return '\u2013';\r\n      return n.toFixed(zec === undefined ? 1 : zec) + (sufix || '');\r\n    }\r\n\r\n    function directie(g) {\r\n      if (g === null || g === undefined) return '';\r\n      var p = ['N','NNE','NE','ENE','E','ESE','SE','SSE','S','SSW','SW','WSW','W','WNW','NW','NNW'];\r\n      return p[Math.round((g % 360) \/ 22.5) % 16];\r\n    }\r\n\r\n    function esc(s) {\r\n      return String(s).replace(\/[&<>\"]\/g, function (c) {\r\n        return { '&': '&amp;', '<': '&lt;', '>': '&gt;', '\"': '&quot;' }[c];\r\n      });\r\n    }\r\n\r\n    function doua(n) { return (n < 10 ? '0' : '') + n; }\r\n\r\n    var ZILE = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'];\r\n    var LUNI = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];\r\n\r\n    var UM = {\r\n      temp:  { m: '\u00b0C',     e: '\u00b0F'   },\r\n      vant:  { m: ' km\/h',  e: ' mph' },\r\n      ploaie:{ m: ' mm',    e: ' in'  },\r\n      rata:  { m: ' mm\/h',  e: ' in\/h'},\r\n      pres:  { m: ' hPa',   e: ' inHg'}\r\n    };\r\n    function um(cheie) { return UM[cheie][CFG.unitati === 'm' ? 'm' : 'e']; }\r\n\r\n    \/* ---- API request with cache; empty responses (HTTP 204) return null ---- *\/\r\n    function ia(cale, params, minute) {\r\n      var q = [];\r\n      for (var k in params) { if (params.hasOwnProperty(k)) q.push(k + '=' + encodeURIComponent(params[k])); }\r\n      var url = API + cale + '?' + q.join('&') + '&apiKey=' + CFG.cheie;\r\n      var cheieCache = 'mtr_' + CFG.limbaAPI + '_' + CFG.unitati + '_' + cale;\r\n\r\n      try {\r\n        var brut = window.localStorage && localStorage.getItem(cheieCache);\r\n        if (brut) {\r\n          var c = JSON.parse(brut);\r\n          if (c && c.d && Date.now() - c.t < minute * 60000) return Promise.resolve(c.d);\r\n        }\r\n      } catch (e) {}\r\n\r\n      return fetch(url, { cache: 'no-store' })\r\n        .then(function (r) {\r\n          if (r.status === 204) return null;\r\n          if (!r.ok) throw new Error('API ' + r.status + ' on ' + cale);\r\n          return r.text().then(function (t) { return t ? JSON.parse(t) : null; });\r\n        })\r\n        .then(function (d) {\r\n          if (d) {\r\n            try { if (window.localStorage) localStorage.setItem(cheieCache, JSON.stringify({ t: Date.now(), d: d })); } catch (e) {}\r\n          }\r\n          return d;\r\n        });\r\n    }\r\n\r\n    var comun = { stationId: CFG.statie, format: 'json', units: CFG.unitati, numericPrecision: 'decimal' };\r\n    function param() {\r\n      var o = {};\r\n      for (var k in comun) { if (comun.hasOwnProperty(k)) o[k] = comun[k]; }\r\n      return o;\r\n    }\r\n    function M(o) { return o[CFG.unitati === 'm' ? 'metric' : 'imperial'] || {}; }\r\n\r\n    var azi = null;\r\n\r\n    \/* ---- last 24h observations (one request, used twice) ---- *\/\r\n    var promisiune24h = null;\r\n    function ultimele24h() {\r\n      if (!promisiune24h) promisiune24h = ia('v2\/pws\/observations\/all\/1day', param(), CFG.cacheMin.grafic);\r\n      return promisiune24h;\r\n    }\r\n\r\n    \/* ---- current conditions ---- *\/\r\n    function randeazaAcum(o) {\r\n      var u = M(o);\r\n      var randuri = [\r\n        ['Feels like', nr(u.heatIndex !== undefined && u.heatIndex !== null ? u.heatIndex : u.windChill, um('temp'))],\r\n        ['Humidity', nr(o.humidity, '%', 0)],\r\n        ['Wind', nr(u.windSpeed, um('vant')) + ' ' + directie(o.winddir)],\r\n        ['Gusts', nr(u.windGust, um('vant'))],\r\n        ['Pressure', nr(u.pressure, um('pres'))],\r\n        ['Dew point', nr(u.dewpt, um('temp'))],\r\n        ['Precipitation today', nr(u.precipTotal, um('ploaie'))],\r\n        ['Rain rate', nr(u.precipRate, um('rata'))],\r\n        ['Solar radiation', nr(o.solarRadiation, ' W\/m\u00b2')],\r\n        ['UV index', nr(o.uv, '', 0)]\r\n      ];\r\n\r\n      var d = new Date(o.obsTimeLocal);\r\n      var ora = isNaN(d.getTime()) ? '' : LUNI[d.getMonth()] + ' ' + d.getDate() + ', ' + doua(d.getHours()) + ':' + doua(d.getMinutes());\r\n\r\n      var html = '<p class=\"mtr-temp\">' + nr(u.temp, um('temp')) + '<\/p>'\r\n        + '<p class=\"mtr-loc\">' + esc(o.neighborhood || CFG.statie) + ' \u00b7 updated ' + esc(ora) + '<\/p>';\r\n\r\n      if (azi) {\r\n        html += '<div class=\"mtr-azi\">'\r\n          + '<div><span>Today&rsquo;s high<\/span><b>' + nr(azi.max, um('temp')) + '<\/b><\/div>'\r\n          + '<div><span>Today&rsquo;s low<\/span><b>' + nr(azi.min, um('temp')) + '<\/b><\/div>'\r\n          + '<div><span>Peak gust<\/span><b>' + nr(azi.rafala, um('vant')) + '<\/b><\/div>'\r\n          + '<div><span>Precipitation<\/span><b>' + nr(azi.ploaie, um('ploaie')) + '<\/b><\/div>'\r\n          + '<\/div>';\r\n      }\r\n\r\n      html += '<dl class=\"mtr-grid\">';\r\n      for (var i = 0; i < randuri.length; i++) {\r\n        html += '<div><dt>' + randuri[i][0] + '<\/dt><dd>' + randuri[i][1] + '<\/dd><\/div>';\r\n      }\r\n      $('mtr-acum').innerHTML = html + '<\/dl>';\r\n    }\r\n\r\n    \/* ---- station offline: last reading from the past 24h ---- *\/\r\n    function ultimaCitire() {\r\n      return ultimele24h().then(function (z) {\r\n        var obs = z && z.observations;\r\n        if (!obs || !obs.length) { offline(); return; }\r\n\r\n        var u = obs[obs.length - 1], m = M(u), o = {\r\n          obsTimeLocal: u.obsTimeLocal,\r\n          neighborhood: u.neighborhood,\r\n          humidity: u.humidityAvg,\r\n          winddir: u.winddirAvg,\r\n          solarRadiation: u.solarRadiationHigh,\r\n          uv: u.uvHigh\r\n        };\r\n        o[CFG.unitati === 'm' ? 'metric' : 'imperial'] = {\r\n          temp: m.tempAvg,\r\n          heatIndex: m.heatindexAvg,\r\n          windChill: m.windchillAvg,\r\n          windSpeed: m.windspeedAvg,\r\n          windGust: m.windgustHigh,\r\n          pressure: m.pressureMax,\r\n          dewpt: m.dewptAvg,\r\n          precipTotal: m.precipTotal,\r\n          precipRate: m.precipRate\r\n        };\r\n\r\n        randeazaAcum(o);\r\n        $('mtr-acum').insertAdjacentHTML('afterbegin',\r\n          '<div class=\"mtr-offline-box\">' + MESAJ_OFFLINE\r\n          + '<p class=\"mtr-offline-detalii\">The station hasn&rsquo;t sent any data recently. Showing the last available reading below.<\/p><\/div>');\r\n      });\r\n    }\r\n\r\n    \/* ---- 24h chart ---- *\/\r\n    function randeazaGrafic(obs) {\r\n      var ore = {}, ordine = [], i;\r\n\r\n      for (i = 0; i < obs.length; i++) {\r\n        var d = new Date(obs[i].obsTimeLocal);\r\n        if (isNaN(d.getTime())) continue;\r\n        var k = d.getFullYear() + '-' + d.getMonth() + '-' + d.getDate() + '-' + d.getHours();\r\n        if (!ore[k]) { ore[k] = { d: d, t: [], p0: null, p1: null }; ordine.push(k); }\r\n        var m = M(obs[i]);\r\n        if (m.tempAvg !== null && m.tempAvg !== undefined) ore[k].t.push(m.tempAvg);\r\n        if (m.precipTotal !== null && m.precipTotal !== undefined) {\r\n          if (ore[k].p0 === null) ore[k].p0 = m.precipTotal;\r\n          ore[k].p1 = m.precipTotal;\r\n        }\r\n      }\r\n\r\n      var puncte = [];\r\n      for (i = 0; i < ordine.length; i++) {\r\n        var h = ore[ordine[i]];\r\n        if (!h.t.length) continue;\r\n        var s = 0;\r\n        for (var j = 0; j < h.t.length; j++) s += h.t[j];\r\n        puncte.push({\r\n          d: h.d,\r\n          t: s \/ h.t.length,\r\n          p: (h.p0 !== null && h.p1 !== null) ? Math.max(0, h.p1 - h.p0) : 0\r\n        });\r\n      }\r\n      puncte = puncte.slice(-24);\r\n      if (puncte.length < 2) return;\r\n\r\n      var W = 700, H = 220, st = 38, dr = 12, sus = 14, jos = 26;\r\n      var temps = [], ploi = [];\r\n      for (i = 0; i < puncte.length; i++) { temps.push(puncte[i].t); ploi.push(puncte[i].p); }\r\n      var tMin = Math.floor(Math.min.apply(null, temps) - 1);\r\n      var tMax = Math.ceil(Math.max.apply(null, temps) + 1);\r\n      if (tMax === tMin) tMax = tMin + 1;\r\n      var pMax = Math.max(1, Math.max.apply(null, ploi));\r\n\r\n      function x(i) { return st + i * (W - st - dr) \/ (puncte.length - 1); }\r\n      function y(t) { return sus + (tMax - t) * (H - sus - jos) \/ (tMax - tMin); }\r\n\r\n      var svg = '<svg class=\"mtr-svg\" viewBox=\"0 0 ' + W + ' ' + H + '\" role=\"img\" aria-label=\"Temperature and precipitation over the last 24 hours\">';\r\n\r\n      var repere = [tMin, Math.round((tMin + tMax) \/ 2), tMax];\r\n      for (i = 0; i < repere.length; i++) {\r\n        svg += '<line x1=\"' + st + '\" y1=\"' + y(repere[i]) + '\" x2=\"' + (W - dr) + '\" y2=\"' + y(repere[i]) + '\" stroke=\"currentColor\" stroke-opacity=\".12\"\/>'\r\n          + '<text x=\"' + (st - 6) + '\" y=\"' + (y(repere[i]) + 4) + '\" text-anchor=\"end\" font-size=\"11\" fill=\"currentColor\" fill-opacity=\".5\">' + repere[i] + '&#176;<\/text>';\r\n      }\r\n\r\n      var lat = (W - st - dr) \/ puncte.length * 0.55;\r\n      for (i = 0; i < puncte.length; i++) {\r\n        if (puncte[i].p <= 0) continue;\r\n        var hb = puncte[i].p \/ pMax * (H - sus - jos) * 0.45;\r\n        svg += '<rect x=\"' + (x(i) - lat \/ 2).toFixed(1) + '\" y=\"' + (H - jos - hb).toFixed(1) + '\" width=\"' + lat.toFixed(1) + '\" height=\"' + hb.toFixed(1) + '\" fill=\"currentColor\" fill-opacity=\".22\" rx=\"1\"><\/rect>';\r\n      }\r\n\r\n      var cale = '';\r\n      for (i = 0; i < puncte.length; i++) {\r\n        cale += (i ? ' L' : 'M') + x(i).toFixed(1) + ' ' + y(puncte[i].t).toFixed(1);\r\n      }\r\n      svg += '<path d=\"' + cale + '\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\"\/>';\r\n\r\n      for (i = 0; i < puncte.length; i++) {\r\n        if (i % 6 !== 0 && i !== puncte.length - 1) continue;\r\n        svg += '<text x=\"' + x(i).toFixed(1) + '\" y=\"' + (H - 6) + '\" text-anchor=\"middle\" font-size=\"11\" fill=\"currentColor\" fill-opacity=\".5\">' + doua(puncte[i].d.getHours()) + ':00<\/text>';\r\n      }\r\n\r\n      svg += '<\/svg>';\r\n\r\n      $('mtr-grafic').innerHTML = '<h3 class=\"mtr-titlu\">Last 24 hours<\/h3>' + svg\r\n        + '<p class=\"mtr-legenda\">Line: hourly average temperature. Bars: hourly precipitation (peak ' + nr(pMax, um('ploaie')) + ').<\/p>';\r\n      $('mtr-grafic').style.display = '';\r\n    }\r\n\r\n    \/* ---- 7-day summary ---- *\/\r\n    function randeazaIstoric(sumare) {\r\n      var lista = sumare.slice(-7), html = '<h3 class=\"mtr-titlu\">Last 7 days<\/h3><div class=\"mtr-zile\">';\r\n\r\n      for (var i = 0; i < lista.length; i++) {\r\n        var m = M(lista[i]), d = new Date(lista[i].obsTimeLocal);\r\n        var nume = isNaN(d.getTime()) ? '' : ZILE[d.getDay()].substring(0, 3) + ' ' + (d.getMonth() + 1) + '\/' + d.getDate();\r\n        html += '<div class=\"mtr-zi\">'\r\n          + '<div class=\"mtr-zi__nume\">' + esc(nume) + '<\/div>'\r\n          + '<div class=\"mtr-zi__max\">' + nr(m.tempHigh, '&#176;', 0) + '<\/div>'\r\n          + '<div class=\"mtr-zi__min\">' + nr(m.tempLow, '&#176;', 0) + '<\/div>'\r\n          + '<div class=\"mtr-zi__ploaie\">' + nr(m.precipTotal, um('ploaie')) + '<\/div>'\r\n          + '<\/div>';\r\n\r\n        if (i === lista.length - 1) {\r\n          azi = { max: m.tempHigh, min: m.tempLow, ploaie: m.precipTotal, rafala: m.windgustHigh };\r\n        }\r\n      }\r\n\r\n      $('mtr-istoric').innerHTML = html + '<\/div>';\r\n      $('mtr-istoric').style.display = '';\r\n    }\r\n\r\n    \/* ---- forecast ---- *\/\r\n    function simbol(cod) {\r\n      if (cod === null || cod === undefined) return '';\r\n      if (cod <= 4 || cod === 47) return '\\u26C8';\r\n      if (cod <= 12 || cod === 39 || cod === 40 || cod === 45) return '\\uD83C\\uDF27';\r\n      if (cod <= 18 || cod === 25 || (cod >= 41 && cod <= 43) || cod === 46) return '\\u2744';\r\n      if (cod <= 22) return '\\uD83C\\uDF2B';\r\n      if (cod <= 24) return '\\uD83D\\uDCA8';\r\n      if (cod === 26) return '\\u2601';\r\n      if (cod <= 28) return '\\uD83C\\uDF25';\r\n      if (cod <= 30) return '\\u26C5';\r\n      if (cod <= 32) return '\\u2600';\r\n      if (cod <= 34) return '\\uD83C\\uDF24';\r\n      return '\\uD83C\\uDF26';\r\n    }\r\n\r\n    function randeazaPrognoza(p) {\r\n      var dp = (p.daypart && p.daypart[0]) ? p.daypart[0] : {};\r\n      var zile = (p.validTimeLocal || []).slice(0, 5);\r\n      if (!zile.length) return;\r\n\r\n      var html = '<h3 class=\"mtr-titlu\">Forecast for the days ahead<\/h3><div class=\"mtr-zile\">';\r\n\r\n      for (var i = 0; i < zile.length; i++) {\r\n        var d = new Date(zile[i]);\r\n        var idx = null;\r\n        if (dp.iconCode) {\r\n          idx = (dp.iconCode[i * 2] !== null && dp.iconCode[i * 2] !== undefined) ? i * 2 : i * 2 + 1;\r\n        }\r\n        var sansa = (idx !== null && dp.precipChance) ? dp.precipChance[idx] : null;\r\n\r\n        html += '<div class=\"mtr-zi\">'\r\n          + '<div class=\"mtr-zi__nume\">' + esc(isNaN(d.getTime()) ? '' : ZILE[d.getDay()].substring(0, 3)) + '<\/div>'\r\n          + '<div class=\"mtr-zi__icon\">' + (idx !== null && dp.iconCode ? simbol(dp.iconCode[idx]) : '') + '<\/div>'\r\n          + '<div class=\"mtr-zi__max\">' + nr(p.temperatureMax ? p.temperatureMax[i] : null, '&#176;', 0) + '<\/div>'\r\n          + '<div class=\"mtr-zi__min\">' + nr(p.temperatureMin ? p.temperatureMin[i] : null, '&#176;', 0) + '<\/div>'\r\n          + '<div class=\"mtr-zi__ploaie\">' + (sansa !== null && sansa !== undefined ? sansa + '% rain' : '') + '<\/div>'\r\n          + '<\/div>';\r\n      }\r\n\r\n      $('mtr-prognoza').innerHTML = html + '<\/div>';\r\n      $('mtr-prognoza').style.display = '';\r\n    }\r\n\r\n    \/* ---- start ---- *\/\r\n\r\n    if (typeof fetch !== 'function' || typeof Promise !== 'function') {\r\n      throw new Error('This browser does not support fetch\/Promise.');\r\n    }\r\n\r\n    ia('v2\/pws\/dailysummary\/7day', param(), CFG.cacheMin.zile)\r\n      .then(function (d) { if (d && d.summaries && d.summaries.length) randeazaIstoric(d.summaries); })\r\n      ['catch'](function (e) { if (window.console) console.warn('[weather] history:', e); })\r\n      .then(function () {\r\n        return ia('v2\/pws\/observations\/current', param(), CFG.cacheMin.acum)\r\n          .then(function (d) {\r\n            if (d && d.observations && d.observations.length) {\r\n              randeazaAcum(d.observations[0]);\r\n              return;\r\n            }\r\n            return ultimaCitire();\r\n          })\r\n          ['catch'](function (e) { raporteaza('current conditions', e); });\r\n      });\r\n\r\n    ultimele24h()\r\n      .then(function (d) { if (d && d.observations && d.observations.length) randeazaGrafic(d.observations); })\r\n      ['catch'](function (e) { if (window.console) console.warn('[weather] chart:', e); });\r\n\r\n    ia('v3\/wx\/forecast\/daily\/5day', {\r\n      geocode: CFG.lat + ',' + CFG.lon,\r\n      format: 'json',\r\n      units: CFG.unitati,\r\n      language: CFG.limbaAPI\r\n    }, CFG.cacheMin.prognoza)\r\n      .then(function (d) { if (d && d.validTimeLocal) randeazaPrognoza(d); })\r\n      ['catch'](function (e) { if (window.console) console.warn('[weather] forecast:', e); });\r\n\r\n  } catch (e) {\r\n    raporteaza('initialization', e);\r\n  }\r\n})();\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Loading\u2026 Personal weather station IBRAOV107 \u00b7 Weather Underground<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"rs_blank_template":"","rs_page_bg_color":"","slide_template_v7":"","footnotes":""},"class_list":["post-35778","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Monterai weather station - IBRAOV107 - Monterai Resort<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/monterai.ro\/en\/monterai-weather-station-ibraov107\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Monterai weather station - IBRAOV107 - Monterai Resort\" \/>\n<meta property=\"og:description\" content=\"Loading\u2026 Personal weather station IBRAOV107 \u00b7 Weather Underground\" \/>\n<meta property=\"og:url\" content=\"https:\/\/monterai.ro\/en\/monterai-weather-station-ibraov107\/\" \/>\n<meta property=\"og:site_name\" content=\"Monterai Resort\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-16T09:25:58+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/monterai.ro\\\/en\\\/monterai-weather-station-ibraov107\\\/\",\"url\":\"https:\\\/\\\/monterai.ro\\\/en\\\/monterai-weather-station-ibraov107\\\/\",\"name\":\"Monterai weather station - IBRAOV107 - Monterai Resort\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/monterai.ro\\\/en\\\/#website\"},\"datePublished\":\"2026-08-12T12:48:11+00:00\",\"dateModified\":\"2026-09-16T09:25:58+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/monterai.ro\\\/en\\\/monterai-weather-station-ibraov107\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/monterai.ro\\\/en\\\/monterai-weather-station-ibraov107\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/monterai.ro\\\/en\\\/monterai-weather-station-ibraov107\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Prima pagin\u0103\",\"item\":\"https:\\\/\\\/monterai.ro\\\/en\\\/accommodation-poiana-brasov\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Monterai weather station &#8211; IBRAOV107\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/monterai.ro\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/monterai.ro\\\/en\\\/\",\"name\":\"Monterai Resort\",\"description\":\"Complex turistic \u00een Poiana Bra\u0219ov\",\"publisher\":{\"@id\":\"https:\\\/\\\/monterai.ro\\\/en\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/monterai.ro\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/monterai.ro\\\/en\\\/#organization\",\"name\":\"Monterai Resort\",\"url\":\"https:\\\/\\\/monterai.ro\\\/en\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/monterai.ro\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/monterai.ro\\\/wp-content\\\/uploads\\\/2024\\\/06\\\/cropped-Monterai-logo.png\",\"contentUrl\":\"https:\\\/\\\/monterai.ro\\\/wp-content\\\/uploads\\\/2024\\\/06\\\/cropped-Monterai-logo.png\",\"width\":512,\"height\":512,\"caption\":\"Monterai Resort\"},\"image\":{\"@id\":\"https:\\\/\\\/monterai.ro\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Monterai weather station - IBRAOV107 - Monterai Resort","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/monterai.ro\/en\/monterai-weather-station-ibraov107\/","og_locale":"en_US","og_type":"article","og_title":"Monterai weather station - IBRAOV107 - Monterai Resort","og_description":"Loading\u2026 Personal weather station IBRAOV107 \u00b7 Weather Underground","og_url":"https:\/\/monterai.ro\/en\/monterai-weather-station-ibraov107\/","og_site_name":"Monterai Resort","article_modified_time":"2026-09-16T09:25:58+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/monterai.ro\/en\/monterai-weather-station-ibraov107\/","url":"https:\/\/monterai.ro\/en\/monterai-weather-station-ibraov107\/","name":"Monterai weather station - IBRAOV107 - Monterai Resort","isPartOf":{"@id":"https:\/\/monterai.ro\/en\/#website"},"datePublished":"2026-08-12T12:48:11+00:00","dateModified":"2026-09-16T09:25:58+00:00","breadcrumb":{"@id":"https:\/\/monterai.ro\/en\/monterai-weather-station-ibraov107\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/monterai.ro\/en\/monterai-weather-station-ibraov107\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/monterai.ro\/en\/monterai-weather-station-ibraov107\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Prima pagin\u0103","item":"https:\/\/monterai.ro\/en\/accommodation-poiana-brasov\/"},{"@type":"ListItem","position":2,"name":"Monterai weather station &#8211; IBRAOV107"}]},{"@type":"WebSite","@id":"https:\/\/monterai.ro\/en\/#website","url":"https:\/\/monterai.ro\/en\/","name":"Monterai Resort","description":"Complex turistic \u00een Poiana Bra\u0219ov","publisher":{"@id":"https:\/\/monterai.ro\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/monterai.ro\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/monterai.ro\/en\/#organization","name":"Monterai Resort","url":"https:\/\/monterai.ro\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/monterai.ro\/en\/#\/schema\/logo\/image\/","url":"https:\/\/monterai.ro\/wp-content\/uploads\/2024\/06\/cropped-Monterai-logo.png","contentUrl":"https:\/\/monterai.ro\/wp-content\/uploads\/2024\/06\/cropped-Monterai-logo.png","width":512,"height":512,"caption":"Monterai Resort"},"image":{"@id":"https:\/\/monterai.ro\/en\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/monterai.ro\/en\/wp-json\/wp\/v2\/pages\/35778","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/monterai.ro\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/monterai.ro\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/monterai.ro\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/monterai.ro\/en\/wp-json\/wp\/v2\/comments?post=35778"}],"version-history":[{"count":10,"href":"https:\/\/monterai.ro\/en\/wp-json\/wp\/v2\/pages\/35778\/revisions"}],"predecessor-version":[{"id":35946,"href":"https:\/\/monterai.ro\/en\/wp-json\/wp\/v2\/pages\/35778\/revisions\/35946"}],"wp:attachment":[{"href":"https:\/\/monterai.ro\/en\/wp-json\/wp\/v2\/media?parent=35778"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}