Skip to content

Skripten / Logik

Hilfe zu JavaScript, Blockly, TypeScript, Node-RED, Scenes und text2command

16.5k Themen 213.3k Beiträge

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    2k 49k
    2k Themen
    49k Beiträge
    R
    hier noch etwas überarbeitet und ohne Warnungen // version: 0.2.6 ////////////////////////////////////////////////// const locationName = 'wo auch immer'; ////////////////////////////////////////////////// // Schriftgrößen-Konfiguration const fontSizeCurrentLabel = '1.3rem'; const fontSizeTempBig = '3.8rem'; const fontSizeDescription = '1.1rem'; const fontSizeInfoGrid = '0.85rem'; const fontSizeSunMoon = '0.8rem'; const fontSizeHourly = '0.75rem'; const fontSizeHourlyRain = '0.65rem'; const fontSizeForecastDay = '0.75rem'; const fontSizeForecastText = '0.65rem'; const fontSizeForecastTempMax = '1rem'; const fontSizeForecastTempMin = '0.85rem'; const fontSizeForecastDetails = '0.65rem'; const version = '0.2.6'; const dpBase = 'open-meteo-weather.0.' + locationName + '.weather'; const forecast = dpBase + '.forecast'; const targetDP = '0_userdata.0.Wetter_Widget_HTML'; // Sprach-Check let sysLang = 'de'; try { const systemConfig = getObject("system.config"); sysLang = systemConfig.common.language || 'de'; } catch (e) { sysLang = 'de'; } const i18n = { de: { current: "Aktuell" }, en: { current: "Current" } }; const lang = i18n[sysLang] || i18n['en']; // DP anlegen falls nicht vorhanden if (!existsState(targetDP)) { createState(targetDP, '', { name: 'Weather Widget for VIS', type: 'string', role: 'html' }); } // ------------------------------------------------------------ // Hilfsfunktionen // ------------------------------------------------------------ // HEUTE aus JavaScript, kompakt function getToday() { const d = new Date(); const day = String(d.getDate()).padStart(2, "0"); const month = String(d.getMonth() + 1).padStart(2, "0"); const year = d.getFullYear(); return `${day}.${month}.${year}`; } function getVal(id, unit = "") { if (!existsState(id)) return "--" + unit; let state = getState(id); if (!state || state.val === null || state.val === undefined) return "--" + unit; return state.val + unit; } function getImg(id, size = "20px") { if (!existsState(id)) return ""; let state = getState(id); if (!state || !state.val) return ""; return `<img src="${state.val}" style="width:${size}; height:${size}; object-fit:contain;">`; } function getNum(id) { let s = getState(id); return (!s || s.val === null || s.val === undefined) ? null : Number(s.val); } function getSunHours(id) { let sec = getNum(id); if (sec === null) return "--h"; return (sec / 3600).toFixed(1) + "h"; } // ------------------------------------------------------------ // Hauptfunktion // ------------------------------------------------------------ function updateWeatherWidget() { // ⭐ AB HIER: ALLES UNVERÄNDERT GELASSEN let html = ` <style> @keyframes moonGlow { 0% { filter: drop-shadow(0 0 2px #fbbf24); opacity: 0.85; } 50% { filter: drop-shadow(0 0 6px #fbbf24); opacity: 1; } 100% { filter: drop-shadow(0 0 2px #fbbf24); opacity: 0.85; } } .moon-anim { animation: moonGlow 3.5s ease-in-out infinite; } .w-container { font-family: 'Segoe UI', sans-serif; background: linear-gradient(160deg, #1e293b 0%, #0f172a 100%); color: #f1f5f9; padding: 10px; border-radius: 20px; border: 1px solid #334155; box-shadow: 0 10px 30px rgba(0,0,0,0.5); } .w-header { display: grid; grid-template-columns: 1.2fr 1.5fr 1fr; gap: 10px; background: rgba(255,255,255,0.05); padding: 10px; border-radius: 10px; margin-bottom: 10px; border: 1px solid rgba(255,255,255,0.1); } .w-temp-big { font-size: ${fontSizeTempBig}; font-weight: 900; color: #fbbf24; line-height: 1; } .w-desc { font-size: ${fontSizeDescription}; color: #38bdf8; font-weight: 600; } .w-info-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; font-size: ${fontSizeInfoGrid}; margin-top: 10px; } .w-info-item { background: rgba(0,0,0,0.2); padding: 6px 10px; border-radius: 10px; display: flex; align-items: center; gap: 5px; } .w-sun-moon { font-size: ${fontSizeSunMoon}; line-height: 1.6; border-left: 1px solid rgba(255,255,255,0.1); padding-left: 15px; } .w-hourly { display: grid; grid-template-columns: repeat(6, 1fr); gap: 8px; margin-bottom: 10px; background: rgba(0,0,0,0.15); padding: 10px; border-radius: 15px; } .w-h-item { text-align: center; font-size: ${fontSizeHourly}; } .w-h-time { font-weight: bold; color: #38bdf8; } .w-h-temp { font-weight: bold; color: #fbbf24; display: block; } .w-h-rain { font-size: ${fontSizeHourlyRain}; color: #94a3b8; } .w-forecast { display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px; } .w-fc-day { background: rgba(255,255,255,0.03); padding: 12px 8px; border-radius: 18px; text-align: center; border: 1px solid rgba(255,255,255,0.05); display: flex; flex-direction: column; justify-content: space-between; } .w-fc-name { font-weight: bold; color: #38bdf8; font-size: ${fontSizeForecastDay}; text-transform: uppercase; margin-bottom: 2px; } .w-fc-text { font-size: ${fontSizeForecastText}; color: #94a3b8; min-height: 2.2em; display: flex; align-items: center; justify-content: center; text-align: center; margin-bottom: 5px; } .w-fc-temp-max { color: #f87171; font-weight: bold; font-size: ${fontSizeForecastTempMax}; display: block; text-align: center; } .w-fc-temp-min { color: #60a5fa; font-size: ${fontSizeForecastTempMin}; display: block; margin-bottom: 5px; text-align: center; } .w-fc-day img { margin: 2px 0 4px 0; } .w-fc-details { font-size: ${fontSizeForecastDetails}; color: #94a3b8; border-top: 1px solid rgba(255,255,255,0.05); margin-top: 8px; padding-top: 8px; } </style> <div class="w-container"> <div class="w-header"> <div style="text-align: center;"> <div style="font-size:${fontSizeCurrentLabel}; font-weight:bold;"> ${lang.current} / ${getVal(forecast + '.day0.name_day')} </div> <div style="font-size:0.75rem; color:#94a3b8; margin-top:0;"> ${getToday()} </div> ${getImg(dpBase + '.current.icon_url', "80px")} <div class="w-desc">${getVal(dpBase + '.current.weather_text')}</div> </div> <div> <div class="w-temp-big">${getVal(dpBase + '.current.temperature_2m', " °C")}</div> <div style="font-weight:bold; margin-bottom:10px;"> <span style="color:#f87171">${getVal(forecast + '.day0.temperature_2m_max', " °C")}</span> | <span style="color:#60a5fa">${getVal(forecast + '.day0.temperature_2m_min', " °C")}</span> </div> <div class="w-info-grid"> <div class="w-info-item">💧 ${getVal(dpBase + '.current.relative_humidity_2m', "%")}</div> <div class="w-info-item">🌧️ ${getVal(forecast + '.day0.precipitation_sum', "mm")}</div> <div class="w-info-item">☀️ ${getSunHours(forecast + '.day0.sunshine_duration')}</div> <div class="w-info-item">☁️ ${getVal(dpBase + '.current.cloud_cover', "%")}</div> <div class="w-info-item">💨 Wind ${getVal(dpBase + '.current.wind_speed_10m', " km/h")}</div> <div class="w-info-item">🌬️ Böen ${getVal(dpBase + '.current.wind_gusts_10m', " km/h")}</div> </div> </div> <div class="w-sun-moon" style="position:relative;"> 🌅 ${getVal(forecast + '.day0.sunrise')}<br> 🌇 ${getVal(forecast + '.day0.sunset')}<br> 🌙 ${getVal(forecast + '.day0.moonrise')}<br> 🌘 ${getVal(forecast + '.day0.moonset')}<br> <div style="margin-top:6px;"> ${getImg(forecast + '.day0.moon_phase_icon', "34px")} <div class="moon-anim" style="font-size:0.75rem; color:#cbd5e1;"> ${getVal(forecast + '.day0.moon_phase_text')} </div> </div> <div style="margin-top:10px;"> 💨 Richtung: ${getVal(dpBase + '.current.wind_direction_text')}<br> ${getImg(dpBase + '.current.wind_direction_icon', "30px")} </div> <div style="position:absolute; bottom:-10px; right:0; font-size:0.6rem; color:#475569; opacity:0.8;"> Script Version ${version} </div> </div> </div> <div class="w-hourly"> `; // Stunden – mit Wind + Mond for (let h = 0; h <= 5; h++) { let hPath = forecast + '.hourly.next_hours.hour' + h; let isNight = getNum(hPath + '.is_day') === 0; html += ` <div class="w-h-item"> <div class="w-h-time">${getVal(hPath + '.time')}</div> ${getImg(hPath + '.icon_url', "30px")} <span class="w-h-temp">${getVal(hPath + '.temperature_2m', " °C")}</span> <span class="w-h-rain"> 🌧️${getVal(hPath + '.precipitation_probability', "%")} / ${getVal(hPath + '.precipitation', "mm")} </span> <div style="margin-top:4px; font-size:0.7rem; color:#cbd5e1;"> 💨 ${getVal(hPath + '.wind_speed_10m', " km/h")} 🌬️ ${getVal(hPath + '.wind_gusts_10m', " km/h")} </div> <div style="margin-top:2px;"> ${getImg(hPath + '.wind_direction_icon', "32px")} <span style="font-size:0.7rem; color:#94a3b8;"> ${getVal(hPath + '.wind_direction_text')} </span> </div> ${ isNight ? ` <div style="margin-top:4px;"> ${getImg(hPath + '.moon_phase_icon', "24px")} <div style="font-size:0.65rem; color:#cbd5e1;"> ${getVal(hPath + '.moon_phase_text')} </div> </div> ` : "" } </div> `; } html += ` </div> <div class="w-forecast"> `; // 6-Tage-Vorhersage for (let i = 1; i <= 6; i++) { let d = forecast + '.day' + i; html += ` <div class="w-fc-day"> <div> <div class="w-fc-name">${getVal(d + '.name_day')}</div> <div class="w-fc-text">${getVal(d + '.weather_text')}</div> ${getImg(d + '.icon_url', "50px")} <span class="w-fc-temp-max">${getVal(d + '.temperature_2m_max', " °C")}</span> <span class="w-fc-temp-min">${getVal(d + '.temperature_2m_min', " °C")}</span> </div> <div class="w-fc-details"> 🌧️ ${getVal(d + '.precipitation_sum', "mm")} (${getVal(d + '.precipitation_probability_max', "%")})<br> 💧 ${getVal(d + '.relative_humidity_2m_mean', "%")}<br> 💨 Wind ${getVal(d + '.wind_speed_10m_max', " km/h")}<br> 🌬️ Böen ${getVal(d + '.wind_gusts_10m_max', " km/h")}<br> ${getVal(d + '.wind_direction_text')}<br> ${getImg(d + '.wind_direction_icon', "32px")}<br> ${getImg(d + '.wind_gust_icon', "24px")}<br> ☀️ ${getSunHours(d + '.sunshine_duration')} </div> </div> `; } html += `</div></div>`; setState(targetDP, html, true); console.log("Weather widget: HTML successfully generated (v0.2.6-XYZ-SUN-CLOUD-C-DATE-COMPACT)."); } // Trigger updateWeatherWidget(); schedule("*/5 * * * *", updateWeatherWidget); on({id: dpBase + '.current.temperature_2m', change: 'any'}, updateWeatherWidget); on({id: forecast + '.hourly.next_hours.hour0.time', change: 'any'}, updateWeatherWidget); [image: 1770566801260-43377c6a-c836-4580-8f67-56ca3bac553b-image.png]
  • Hilfe für Skripterstellung mit Blockly

    7k 79k
    7k Themen
    79k Beiträge
    AsgothianA
    Ich denke in deinem Fall greift diese Lösung nicht. Die Lösung ist den Baustein [image: 1770589884460-screenshot-2026-02-08-at-23.31.01.png] durch das folgende Konstrukt zu ersetzen: [image: 1770590133517-screenshot-2026-02-08-at-23.35.29.png] Zusätzlich muss vor jeder anderen Ansteuerung der Aussenlampe Ecke ein [image: 1770590157266-screenshot-2026-02-08-at-23.35.55.png] gesetzt werden. A.
  • Hilfe für Skripterstellung mit Node-RED

    953 13k
    953 Themen
    13k Beiträge
    S
    welche Palette hast du installiert, damit du den "AND" Baustein hast?
  • Existierende einzelne Kamera Bilder per Telegram verschicken

    blockly
    12
    0 Stimmen
    12 Beiträge
    3k Aufrufe
    HomoranH
    @kukoratsch sagte in Existierende einzelne Kamera Bilder per Telegram verschicken: Für Hilfe wäre ich dankbar. zu dem Thema @kukoratsch sagte in Existierende einzelne Kamera Bilder per Telegram verschicken: please use httpGet gibt es inzwischen gefühlt hundert Threads mit Beispielen. häng dich da an einen ran, hat mit diesem Thread nichts zu tun
  • Szene über KNX und Zigbee Leuchten

    3
    2
    0 Stimmen
    3 Beiträge
    307 Aufrufe
    N
    Hi @s-e, also in dem Fall möchte ich keine Typische KNX Szene über Zahlen. In meinen Fall ist es eine Tag/Nacht Szene die ich mit true = Tag oder false = Nacht steuere. Abends gehen die Rollos runter und das Nachtlicht an und Tags gehen die Rollos hoch und das Licht aus. Hier einmal der DP für die Szene. Auffällig ist schon mal, dass das "false" von den Status der Szene und den Tastern nicht bestätigt also rot ist. [image: 1717095283383-621c5c8c-e7ec-46da-85d7-44f6a9ff7478-image.png] [image: 1717095451648-95a5aa57-b370-4248-9bd6-b6f55835eca7-image-resized.png] [image: 1717095531176-cb9e57fc-414f-4d94-880e-012261b7bf05-image.png] Hier mal ein Auszug aus einem DP: { "_id": "openknx.0.Beleuchtung.Rückmeldung_Schalten_Dimmen_.Sophias-Nachtlicht-Status", "type": "state", "common": { "type": "boolean", "read": true, "write": true, "desc": "", "name": "Sophias-Nachtlicht-Status", "role": "switch", "states": { "0": "Off", "1": "On" } }, "native": { "address": "0/1/0", "answer_groupValueResponse": false, "autoread": true, "bitlength": 1, "desc": "Basetype: 1-bit value", "dpt": "DPT1.001", "valuetype": "basic" }, "from": "system.adapter.openknx.0", "user": "system.user.admin", "ts": 1714048400514, "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } } Die Leuchten sind via Zigbee angebunden und nicht über Hue.
  • (Gelöst) Auslesen ioBroker Hosts Systeminformationen?

    Verschoben blockly javascript
    53
    0 Stimmen
    53 Beiträge
    5k Aufrufe
    O
    @mcu Vielen Dank
  • Astro-Einstellungen Javascript 8.4.2

    3
    2
    0 Stimmen
    3 Beiträge
    208 Aufrufe
    S
    @homoran Danke.
  • Ich rechne mit Blockly falsch?

    14
    2
    0 Stimmen
    14 Beiträge
    828 Aufrufe
    HomoranH
    @wendy2702 sagte in Ich rechne mit Blockly falsch?: Der Import sieht so aus: dann hat er doch alles exportiert. sollte nur der obere Teil sein
  • Astrozeit spinnt - Lampen sind zu früh an

    42
    0 Stimmen
    42 Beiträge
    4k Aufrufe
    paul53P
    @homoran sagte: Da berechnet der Adapter seine aktuellen Astrozeiten, ob jemand sie nutzt oder nicht. Den Haken kann man in der Konfiguration entfernen. Im Skript von Pix sehe ich aber die Verwendung von "night" und "nightEnd", die ebenfalls zu einer entsprechenden Warnung führt.
  • Kaco Blueplanet NX3 10.0 Wechselrichter auslesen (JSON)

    47
    0 Stimmen
    47 Beiträge
    4k Aufrufe
    Jörg 5J
    @haus-automatisierung Vielen Dank für die schnelle Hilfe. Ich hatte das bei Blocky auch chon gesehen, als ich schauen wollte wie ich das mit Blocky notfalls machen könnte. Dein Link ist da auch sehr gut. Vielen Dank!!! Viele Grüße Jörg
  • JS 8.4.0: Keine Astroeinstellungen in Instanzkonfiguration

    6
    1
    0 Stimmen
    6 Beiträge
    590 Aufrufe
    paul53P
    @e-s In Version 8.4.2 ist wieder alles vorhanden.
  • [Vorlage Blockly] Wunderground Upload

    Verschoben
    48
    1
    1 Stimmen
    48 Beiträge
    8k Aufrufe
    haus-automatisierungH
    @c1olli sagte in [Vorlage Blockly] Wunderground Upload: Kannst Du vielleicht einen einfachen Kurs empfehlen? Ich habe das alles in meinem Online-Kurs zum ioBroker ausführlich erklärt. Mit vielen Beispielen (auch für http): https://haus-automatisierung.com/iobroker-kurs/
  • BWM mit Lichtsensor - Unbrauchbare Lichtstärke

    6
    0 Stimmen
    6 Beiträge
    363 Aufrufe
    F
    @homoran said in BWM mit Lichtsensor - Unbrauchbare Lichtstärke: die Helligkeit beim (vor dem) Anschalten in eine Variable schreiben und diese verwenden Das ist eine gute Idee. Also frage ich ab, ob die Lampe aus ist und schreibe dann diesen Wert in einen Datenpunkt. Das kann ich dann auch machen, wenn die Regelmäßige Rückmeldung vom BWM kommt. Eben nur dann, wenn die Lampe aus ist. Das teste ich gleich heute Abend mal aus!
  • Wetterstation überträgt keine Daten mehr

    3
    0 Stimmen
    3 Beiträge
    317 Aufrufe
    M
    @homoran sagte in Wetterstation überträgt keine Daten mehr: @mymeyer sagte in Wetterstation überträgt keine Daten mehr: wo ich suchen könnte wo der Fehler genau ist. @mymeyer sagte in Wetterstation überträgt keine Daten mehr: Kommunikationsfehler! Stimmt die WS_ID in der Konfiguration mit der der WS View-App ÃŒberein? Okay Sorry das habe ich natürlich geprüft. Die WS_ID stimmt. Mit der App habe ich alle Infos.
  • Shelly Zeitstempel/ Aktion x Minuten nach Schaltvorgang

    1
    0 Stimmen
    1 Beiträge
    225 Aufrufe
    Niemand hat geantwortet
  • IP Adresse einlesen

    Verschoben
    20
    0 Stimmen
    20 Beiträge
    4k Aufrufe
    W
    @crunchip Hättest Du ja gestern schon hier einstellen können. :grinning: Ich habe mir jetzt eben ein Blockly gebastelt, macht aber das gleiche, nur ohne Taster: <xml xmlns="https://developers.google.com/blockly/xml"> <block type="on_ext" id="wu+=d3FSm7!EP9bGuz}+" x="88" y="38"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="CP)F@J~.WrNshNe8^j@-"> <field name="oid">javascript.0.IP.public</field> </shadow> </value> <statement name="STATEMENT"> <block type="email" id="P0+MV?vsb;+eM.qRJU^5"> <field name="INSTANCE"></field> <field name="IS_HTML">FALSE</field> <field name="LOG"></field> <value name="TO"> <shadow type="text" id="KI~ORHiOlb#xW;c:9W(m"> <field name="TEXT">juergen@xxxxxx.net</field> </shadow> </value> <value name="TEXT"> <shadow type="text" id="U~l)Zi~A3Eid%//!@(ll"> <field name="TEXT"></field> </shadow> <block type="text_join" id="sX~Mmo1!DucqYfX|BS)W"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="/r2aD~vZ:B|:gPH7n#*u"> <field name="TEXT">IP-Adresse hat sich am </field> </block> </value> <value name="ADD1"> <block type="text_join" id="8l~5z).,pYq[2E%Bmbl7"> <mutation items="2"></mutation> <value name="ADD0"> <block type="convert_from_date" id="#Kb^2P.IqTBxb[_5*Ep1"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">DD.MM.YYYY</field> <value name="VALUE"> <block type="get_value" id="w!AcPGJL[eb}@E^7!{+h"> <field name="ATTR">lc</field> <field name="OID">javascript.0.IP.public</field> </block> </value> </block> </value> <value name="ADD1"> <block type="text_join" id="/Q1!];m1%c5[XSgObLCV"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="w~~sjln47Rslqo,#eCnA"> <field name="TEXT"> um </field> </block> </value> <value name="ADD1"> <block type="text_join" id="v{+[m.D0c=ULB0GkCcGx"> <mutation items="2"></mutation> <value name="ADD0"> <block type="convert_from_date" id="2E9b6yx[ac{3+bgb`@MS"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">hh:mm</field> <value name="VALUE"> <block type="get_value" id="W-B,S(,Vq8e0}X1dvcAU"> <field name="ATTR">lc</field> <field name="OID">javascript.0.IP.public</field> </block> </value> </block> </value> <value name="ADD1"> <block type="text_join" id="?(%~hV*[tk2/pbidDj+s"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="/^J7DcU@7W%NoSUX(qqz"> <field name="TEXT"> Uhr geändert. Letzte Änderung erfolgte am </field> </block> </value> <value name="ADD1"> <block type="text_join" id="@IPtq,WhN#oi`d#aDBP9"> <mutation items="2"></mutation> <value name="ADD0"> <block type="convert_from_date" id="^L_7r^)c(3z*`5L~fum6"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">DD.MM.YYYY</field> <value name="VALUE"> <block type="get_value" id="?8-6vS{X;~@3m!C~cwSK"> <field name="ATTR">lc</field> <field name="OID">javascript.0.IP.IP_alt</field> </block> </value> </block> </value> <value name="ADD1"> <block type="text_join" id="{U52#iPn-qj],gNt-kzw"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="4pZSt;ozH=qVKvFl/wHw"> <field name="TEXT"> um </field> </block> </value> <value name="ADD1"> <block type="text_join" id="P.Rh71Fpum6D)S6MzstV"> <mutation items="2"></mutation> <value name="ADD0"> <block type="convert_from_date" id="7ws*9uzEGa3{%mQ~i7DW"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">hh:mm</field> <value name="VALUE"> <block type="get_value" id="If=yqQ3j([.`tq~^LI/W"> <field name="ATTR">lc</field> <field name="OID">javascript.0.IP.IP_alt</field> </block> </value> </block> </value> <value name="ADD1"> <block type="text_join" id="yWS|YU/L?1{{10c=(X]8"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="xG-cGlyGtk}|;r-iPa`I"> <field name="TEXT"> Uhr. </field> </block> </value> <value name="ADD1"> <block type="text_join" id="Y;iF6ZQBl6}8G5y)@}Cb"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="eA4*#QE=y2A#lKy?gmZs"> <field name="TEXT">Neue IP lautet: </field> </block> </value> <value name="ADD1"> <block type="get_value" id="I3cL%z{/+{1[]2+{UVIh"> <field name="ATTR">val</field> <field name="OID">javascript.0.IP.public</field> </block> </value> </block> </value> </block> </value> </block> </value> </block> </value> </block> </value> </block> </value> </block> </value> </block> </value> </block> </value> </block> </value> <value name="SUBJECT"> <shadow type="text" id="QvaUTb+Ce|.jF4iqF]vd"> <field name="TEXT">Internet war getrennt</field> </shadow> </value> <next> <block type="update" id="+G$F/H_gtDeqZz[T8,,p"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">javascript.0.IP.IP_alt</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1</field> <field name="UNIT">min</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="on_source" id="-9^HI`CB!P12M)8jp2%Y"> <field name="ATTR">state.val</field> </block> </value> </block> </next> </block> </statement> </block> </xml> Gruss, Jürgen
  • Eigenverbrauch (Solar) und Ersparnis berechnen

    10
    2
    0 Stimmen
    10 Beiträge
    816 Aufrufe
    HomoranH
    @berndsolar13 sagte in Eigenverbrauch (Solar) und Ersparnis berechnen: die niemand sieht nur weil man etwas nicht sieht..... :grin:
  • Debug-Optionen für JS/Blockly

    9
    3
    0 Stimmen
    9 Beiträge
    644 Aufrufe
    haus-automatisierungH
    @andersmacher sagte in Debug-Optionen für JS/Blockly: Dann muß ich mal zusehen, daß ich mir etwaige (weitere Aus-)wirkungen von "verbose" klar mache, Hab ich im Kurs zuletzt ausführlich erklärt was das macht und bedeutet.
  • Blockly mehrere Trigger für mehrere Datenpunkte ?

    7
    0 Stimmen
    7 Beiträge
    415 Aufrufe
    paul53P
    @berndsolar13 sagte: Da wird dann z.B. der aktuelle Einspeise Werte mit dem Wert zum Beginn des Tages vergleichen. Raus kommt dann was heute bisher eingespeist wurde. Das ist ein Trigger (auf Einspeisung) und die Verrechnung des Tagesstandes (aus Sourceanalytix).
  • Automatischer View wechsel mit Blockly

    blockly
    7
    0 Stimmen
    7 Beiträge
    1k Aufrufe
    NegaleinN
    @ralla66 sagte in Automatischer View wechsel mit Blockly: Beispiel auf die Schnelle Hallo Bin gerade auf dein Script gestossen. Danke dafür. Ich hab nur ein Problem. Mir wird unter vis.0.control.instance keine ID angezeigt, obwohl im VIS-Editor eine hinterlegt ist. Dies ist das Projekt für das Tablett. Beim Projekt für den PC seh ich die ID. [image: 1716412438023-f1426382-c36f-4af4-a914-02390bdd51ac-image.png] [image: 1716412542802-75ec318c-aff5-4616-b4a8-4312a985518e-image-resized.png] Was könnte da falsch sein? Edit: es schaltet leider nicht um. Hab die View am PC laufen, wegen ID. [image: 1716413689408-4282ffdc-ba3d-4f32-bfa8-330c7bbb5769-image.png] [image: 1716413750630-e064bc7c-cff0-44f5-86ed-ca255bb903ca-image-resized.png]
  • Rolladensteuerung funktioniert nicht richtig

    6
    1
    0 Stimmen
    6 Beiträge
    227 Aufrufe
    R
    @paul53 Ich werde das ausprobieren! Danke.
  • Spotify Vorlagen Skript Hilfe

    1
    0 Stimmen
    1 Beiträge
    181 Aufrufe
    Niemand hat geantwortet
  • Shelly schalten, solange bis...

    5
    0 Stimmen
    5 Beiträge
    224 Aufrufe
    surfer09S
    @paul53 Ich konnte es noch nicht testen, weil ich den Heizstab erst heute bekommen habt. Ich war mir nicht sicher mit dem Blockly, ob das so die beste Variante ist. Danke für den Hinweis mit den 20%.

420

Online

32.6k

Benutzer

82.3k

Themen

1.3m

Beiträge