Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. ck_coke

    NEWS

    • Monatsrückblick – September 2025

    • Neues Video "KI im Smart Home" - ioBroker plus n8n

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    C
    • Profile
    • Following 0
    • Followers 0
    • Topics 5
    • Posts 26
    • Best 0
    • Groups 1

    ck_coke

    @ck_coke

    Starter

    0
    Reputation
    15
    Profile views
    26
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    ck_coke Follow
    Starter

    Latest posts made by ck_coke

    • RE: Widget abhängig von Variable drehen

      @sborg sagte in Widget abhängig von Variable drehen:

      @coffeelover Bin mir nicht zu 100% sicher, aber IMO Ja (zu einfach gedacht 😉 ). Ein Binding funktioniert nur innerhalb eines Widgets, deswegen bin ich skeptisch ob es innerhalb eines CSS' funktioniert ?

      @jay-0 sagte in Widget abhängig von Variable drehen:

      Hat vielleicht noch jemand eine Idee?

      Jepp, wie oben beschrieben, aber dann halt mal mit fertigem Code:

      HTML-Widget, dort unter HTML:

      <script type="text/javascript">
          var svgNS = "http://www.w3.org/2000/svg";
      	setTimeout(function () {
      
              // Winkel auslesen
          	let winkel = parseInt(document.getElementById("winkel").innerHTML);
      
          	// WoMo-Bild drehen
          	document.getElementById("womo").setAttribute("transform", "rotate ("+winkel+")");
          	
      	}, 1);
      
      </script>
      
      
      <svg>
      
      
      // Bild vom WoMo
      <path id="womo" transform="rotate (0)" fill="none" stroke="green" stroke-width="6" d="M0 15h100v10H0z"/>
      
      </svg>
      
      
      Winkel: <span id="winkel">{0_userdata.0.Winkel}</span>°<br>
      

      In Zeile #25 ist der DP definiert der den Lagewinkel enthält.
      Zeile #20 enthält dann zB. eine SVG eines WoMos (kann auch ein "echtes Bild" sein). Ich habe hier der Einfachheit halber einen grünen Kasten genommen, den man mir verzeihen möge.
      Bild 1b.png
      Bild 1a.png
      Bild 1.png
      ...und weil ich auch faul bin (^^) habe ich keinen gesteigerten Wert auf die Positionierung gelegt. Deswegen wird das Rechteck zum Teil abgeschnitten, da es aus dem HTML-Widget "herausragt" 😉

      Ich habe mir basierend auf diesem Widget ein eigenes mit gleicher Funktion gebaut.
      Ich möchte dieses nun mehrfach verwenden und jeweils einen anderen Datenpunkt (0_userdata.0.Winkel1, 0_userdata.0.Winkel2,...) verwenden.
      Das scheint nur nicht zu funktionieren. Es funktioniert immer nur eins und das auch nicht mit dem richtigen Wert aus seinem Datenpunkt sondern von irgendeinem anderen.
      Wie ließe sich das lösen?

      Mein Code sieht aktuell wie folgt aus:

      <div style="width: 100%; height: 100%; display: flex; justify-content: center; align-items: center; border: 2px solid #555; border-radius: 10px; box-sizing: border-box; background-color: #f0f0f0;">
      
        <svg id="t_svg_{w:widgetID}" viewBox="-10 -35 120 120" width="150">
          <path d="M47 20 V 80 H 53 V 20 Z" fill="#606060" stroke="#606060" stroke-width="2"/>
          
          <g class="winkel-anzeige-rechts" style="visibility: hidden;">
            <text class="text-rechts" x="55" y="15" font-size="8px" fill="black"></text>
          </g>
          <g class="winkel-anzeige-links" style="visibility: hidden;">
            <text class="text-links" x="45" y="15" font-size="8px" text-anchor="end" fill="black"></text>
          </g>
          
          <path class="rotierender-teil" transform="rotate(0, 50, 20)" stroke="green" stroke-width="6" stroke-linecap="round" d="M 0 20 H 100"/>
          <circle cx="50" cy="20" r="3" fill="black"/>
        </svg> <script type="text/javascript">
          (function updateWidget(winkel) {
            try {
              const winkelNum = parseInt(winkel) || 0;
              const svg = document.getElementById('t_svg_{w:widgetID}');
              if (!svg) return;
      
              const rotatingElement = svg.querySelector('.rotierender-teil');
              const anzeigeRechts = svg.querySelector('.winkel-anzeige-rechts');
              const anzeigeLinks = svg.querySelector('.winkel-anzeige-links');
              const textRechts = svg.querySelector('.text-rechts');
              const textLinks = svg.querySelector('.text-links');
              
              if (winkelNum > 0) {
                  anzeigeRechts.style.visibility = 'visible';
                  anzeigeLinks.style.visibility = 'hidden';
                  textRechts.textContent = winkelNum + '°';
              } else if (winkelNum < 0) {
                  anzeigeRechts.style.visibility = 'hidden';
                  anzeigeLinks.style.visibility = 'visible';
                  textLinks.textContent = Math.abs(winkelNum) + '°';
              } else {
                  anzeigeRechts.style.visibility = 'hidden';
                  anzeigeLinks.style.visibility = 'hidden';
              }
      
              rotatingElement.setAttribute("transform", "rotate(" + winkelNum + ", 50, 20)");
      
            } catch (err) {
              console.error(`[Widget {w:widgetID}] Fehler:`, err);
            }
          })({0_userdata.0.Winkel});
        </script>
      </div>
      
      posted in Visualisierung
      C
      ck_coke
    • RE: IDM Luftwärmepumpe per Modbus anbinden klappt nicht :( Tipps?

      @homoran
      Danke! Das war der richtige Hinweis.
      Mit maximal 7 Registern (Float) funktioniert es.

      posted in ioBroker Allgemein
      C
      ck_coke
    • RE: IDM Luftwärmepumpe per Modbus anbinden klappt nicht :( Tipps?

      @homoran
      Welche Infos werden denn benötigt?

      Die Debug Meldungen aus dem Adapter geben folgendes zurück:

      
      modbus.54
      2025-02-19 08:05:13.691	warn	[DevID_1] Poll error count: 6 code: {"errorCode":131,"exceptionCode":2,"message":"ILLEGAL DATA ADDRESS"}
      
      modbus.54
      2025-02-19 08:05:13.691	debug	Received pdu describes an error.
      
      modbus.54
      2025-02-19 08:05:13.689	debug	[DevID_1/holdingRegs] Poll address 1000 - 10 registers
      
      modbus.54
      2025-02-19 08:05:13.688	debug	[DevID_1] Poll start ---------------------
      
      posted in ioBroker Allgemein
      C
      ck_coke
    • RE: IDM Luftwärmepumpe per Modbus anbinden klappt nicht :( Tipps?

      @Bluefox Irgendeine Idee woran das liegen kann?

      posted in ioBroker Allgemein
      C
      ck_coke
    • RE: IDM Luftwärmepumpe per Modbus anbinden klappt nicht :( Tipps?

      Beim Abfragen von Register 1008 (Wärmespeichertemperatur) bekomme ich immer den Fehler "ILLEGAL DATA ADDRESS".

      Über Modbus Poll kann ich das Register jedoch ohne Probleme abfragen.
      Scheint bei anderen Registern auch der Fall zu sein. Hatte das schon mal jemand?

      posted in ioBroker Allgemein
      C
      ck_coke
    • RE: Material Design Widgets: Progress Widget

      Ist es möglich sich min und max aus einem Datenpunkt zu holen?

      posted in Visualisierung
      C
      ck_coke
    • RE: Regex liefert falschen Wert

      Kann es daran liegen das der Datenpunkt hinter switch:0, also eine Ebene tiefer liegt?

      Zumindest habe ich das nach Internetrechersche in anderen Foren so gesehen.

      posted in Skripten / Logik
      C
      ck_coke
    • RE: Regex liefert falschen Wert

      @haus-automatisierung

      Das ist wohl beim hier ins Forum kopieren passiert.

      Die Zeile sieht so aus:

                                 setState('0_userdata.0.Leistung-Entladen', obj.data.device_status.voltage, true);
      
      
      posted in Skripten / Logik
      C
      ck_coke
    • RE: Regex liefert falschen Wert

      Jetzt habe ich das Problem, dass es bei einem Gerät funktioniert und bei einem anderen

      {"ack":true}
      

      als Wert gesetzt wird.

      So sieht das Skript aus:

      schedule("*/10 * * * * *", function () {
      
      
      const server = 'https://shelly-89-eu.shelly.cloud';
      const authKey = 'XjBjN2JjdWlkB12AE36D401E9C6EC6573933F664EA9B25923B90241D5720122CC428B82EF7477624E84B517133E2';
      const deviceId = 'a0a3b3e7d67c';
       
      httpPost(`${server}/device/status`,
          {
              id: deviceId,
              auth_key: authKey,
          },
          (error, response) => {
              if (!error) {
                  try {
                      const obj = JSON.parse(response.data);
       
                      // Daten extrahieren
      
                      console.log(obj.data);
                      
                                 setState('0_userdata.0.Leistung-Entladen', obj.data.device_status.voltage, true);
      
      
       
                  } catch (e) {
                      console.error(e);
                  }
              } else {
                  console.error(error);
              }
          }
      );
       
      });
      
      
      
      

      Folgendes bekomme ich im Log angezeigt:

      javascript.0
      	2024-09-09 20:34:40.074	info	script.js.common.Balkonkraftwerk.Skript_1: setForeignState(id=0_userdata.0.Leistung-Entladen, state={"val":{"ack":true},"ack":true,"ts":1725906880074,"q":0,"from":"system.adapter.javascript.0","lc":1725906880074,"c":"script.js.common.Balkonkraftwerk.Skript_1"})
      javascript.0
      	2024-09-09 20:34:40.074	info	script.js.common.Balkonkraftwerk.Skript_1: { online: true, device_status: { sys: { available_updates: [Object], mac: 'A0A3B3E7D67C', restart_required: false, time: '11:48', unixtime: 1725788939, uptime: 3, ram_size: 246876, ram_free: 134944, fs_size: 458752, fs_free: 122880, cfg_rev: 19, kvs_rev: 0, schedule_rev: 10, webhook_rev: 0, reset_reason: 1 }, ts: 1725906873.77, plugs_ui: {}, id: 'a0a3b3e7d67c', code: 'SNPL-00112EU', ws: { connected: false }, wifi: { sta_ip: '192.168.33.67', status: 'got ip', ssid: 'ShellyPlusPlugS-E465B8B3A57C', rssi: -29, ap_client_count: 0 }, mqtt: { connected: false }, serial: 3566, ffs: { ts: 0 }, 'switch:0': { id: 0, current: 0.021, source: 'SHC', output: true, apower: 0, voltage: 232.9, aenergy: [Object], temperature: [Object] }, cloud: { connected: true }, _updated: '2024-09-09 18:34:34', ble: {} } }
      javascript.0
      	2024-09-09 20:34:40.074	info	script.js.common.Balkonkraftwerk.Skript_1: httpPost(url=https://shelly-89-eu.shelly.cloud/device/status, responseTime=66ms)
      javascript.0
      	2024-09-09 20:34:40.007	info	script.js.common.Balkonkraftwerk.Skript_1: httpPost(config={"method":"post","url":"https://shelly-89-eu.shelly.cloud/device/status","responseType":"text","responseEncoding":"utf8","timeout":2000,"headers":{"User-Agent":"Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/121.0"},"data":{"id":"a0a3b3e7d67c","auth_key":"XjBjN2JjdWlkB12AE36D401E9C6EC6573933F664EA9B25923B90241D5720122CC428B82EF7477624E84B517133E2"}}, data=[object Object])
      ```z
      posted in Skripten / Logik
      C
      ck_coke
    • RE: Regex liefert falschen Wert

      @haus-automatisierung

      Vielen Dank! So ist es natürlich noch besser gelöst.

      posted in Skripten / Logik
      C
      ck_coke
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo