Navigation

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

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Profile
    • Following 0
    • Followers 0
    • Topics 11
    • Posts 113
    • Best 0
    • Groups 2

    Bernd 0

    @Bernd 0

    Starter

    0
    Reputation
    13
    Profile views
    113
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    Bernd 0 Follow
    Pro Starter

    Latest posts made by Bernd 0

    • RE: Test Adapter luxtronik2 v0.4.x

      @borsti84 here you go 🚀 - IOBroker JavaScript. Einmal via Datenpunkt und ebenso UDP send to Loxone

      // === Konfiguration ===
      const ip = '192.168.178.xx';
      const port = 8214;
      const password = '999999';
      const abfrageIntervall = 10 * 1000; // 10 Sekunden
      
      // === UDP-Konfiguration für Loxone ===
      const udpHost = '192.168.178.xx';
      const udpPort = 7000;
      
      // === interner Zustand zum Vergleich bei Änderungen ===
      const lastValues = {
          Heizung: null,
          Warmwasser: null,
          Gesamt: null
      };
      
      // === UDP-Funktion ===
      function sendeUDP(name, wert) {
          const dgram = require('dgram');
          const client = dgram.createSocket('udp4');
          const formatted = wert.toFixed(2); // Punkt als Dezimaltrennzeichen
          const befehl = `WP.${name}=${formatted}`;
          const message = Buffer.from(befehl);
          client.send(message, 0, message.length, udpPort, udpHost, (err) => {
              if (err) {
                  console.error(`❌ Fehler beim Senden an Loxone (${name}):`, err.message);
              } else {
                  console.log(`📤 UDP gesendet: ${befehl}`);
              }
              client.close();
          });
      }
      
      let leistungsaufnahmeId = null;
      
      // === WebSocket einrichten ===
      const WebSocket = require('ws');
      const ws = new WebSocket(`ws://${ip}:${port}`, 'Lux_WS');
      
      ws.on('open', () => {
          console.log('✅ WebSocket verbunden – Sende Login...');
          ws.send(`LOGIN;${password}`);
      });
      
      ws.on('message', async (data) => {
          let raw = "";
          if (Buffer.isBuffer(data)) {
              raw = data.toString('utf8');
          } else if (typeof data === "string") {
              raw = data;
          } else {
              console.error("❌ Unbekannter Nachrichtentyp:", typeof data);
              return;
          }
      
          try {
              const msg = JSON.parse(raw);
      
              if (msg.type === "Navigation") {
                  leistungsaufnahmeId = findIdByName(msg.items, "Leistungsaufnahme");
      
                  if (leistungsaufnahmeId) {
                      ws.send(`GET;${leistungsaufnahmeId}`);
                      setInterval(() => {
                          ws.send(`GET;${leistungsaufnahmeId}`);
                      }, abfrageIntervall);
                  } else {
                      console.error("❌ Konnte ID für 'Leistungsaufnahme' nicht finden!");
                  }
              }
      
              if (msg.type === "Content" && msg.name === "Leistungsaufnahme" && msg.items) {
                  for (const item of msg.items) {
                      const name = item.name.trim(); // z. B. "Gesamt"
                      const rawValue = item.value.trim(); // z. B. "5000.0 kWh"
                      const numericValue = parseFloat(rawValue.replace(",", "."));
                      const id = `javascript.0.Wärmepumpe.Leistungsaufnahme.${name}`;
      
                      // Datenpunkt anlegen, falls nicht vorhanden
                      if (!existsObject(id)) {
                          await createStateAsync(id, 0, {
                              name: `Leistungsaufnahme ${name}`,
                              unit: 'kWh',
                              read: true,
                              write: true,
                              type: 'number'
                          });
                      }
      
                      // Schreiben in ioBroker nur bei Änderung oder null
                      const oldVal = getState(id)?.val;
                      if (oldVal !== numericValue) {
                          await setStateAsync(id, { val: numericValue, ack: true });
                      }
      
                      // UDP nur bei Änderung senden
                      if (lastValues[name] !== numericValue) {
                          sendeUDP(name, numericValue);
                          lastValues[name] = numericValue;
                      }
                  }
              }
      
          } catch (err) {
              console.error("❌ Fehler beim Parsen:", err.message);
              console.error(raw);
          }
      });
      
      ws.on('close', () => {
          console.warn('🔌 Verbindung zur Wärmepumpe getrennt!');
      });
      
      // === Funktion zur ID-Suche ===
      function findIdByName(items, targetName) {
          for (const item of items) {
              if (item.name === targetName && item.id) {
                  return item.id;
              }
              if (item.items && item.items.length > 0) {
                  const result = findIdByName(item.items, targetName);
                  if (result) return result;
              }
          }
          return null;
      }
      
      
      
      posted in Tester
      Bernd 0
      Bernd 0
    • RE: Test Adapter luxtronik2 v0.4.x

      @bernd-0 Ich habe mir jetzt in IObroker ein Java-Script erstellt, welches die Leistungswerte aus der Weboberfläche zieht und diese als Datenpunkt in IOBroker zur Verfügung stellt. Ebenso lasse ich mir die Daten via UDP an Loxone senden. Wer das gebrauchen kann, kann sich gerne melden.

      PS.: Ich nutze nicht mehr Luxtronik für die Datenpunkte sondern nun die Anbindung via MyUplink, was mit der V3.91.0 möglich ist und auch stabil läuft. Einzig die Leistungsdaten kommen nicht rein - weder via Luxtronik noch über myUplink. Daher der Umweg über die Weboberflächen-Abfrage. 😖

      posted in Tester
      Bernd 0
      Bernd 0
    • RE: Test Adapter luxtronik2 v0.4.x

      Hi zusammen,
      bei mir wurde eine Wartung an der WP durchgeführt und der Techniker hat natürlich gleich ein Firmwareupdate gemacht. Nun habe ich die V3.91.0 auf meiner LADV 9.1-1/3.
      Es haben sich alle Datenpunkte in Luxtronic geändert. Zuvor war es deutsch nun ist es englisch und man muss auch bei vielen raten. (Beispiel das AV-Abtauventil ist so nicht mehr vorhanden. Nun ist es wahrscheinlich das VD1)
      Aber das ist alles garnicht so schlimm bisher. Was wirklich ein Problem darstellt, dass der Datenpunkt Leistungsaufnahme nicht mehr vorhanden ist. Zuvor konnte ich via
      luxtronik2.0.Informationen.Eingesetzte-Energie.Heizung
      luxtronik2.0.Informationen.Eingesetzte-Energie.Warmwasser
      die Leistungsaufnahme nachvollziehen. Beides ist nicht mehr vorhanden.
      Habt ihr eine Lösung dafür?
      Total schade, dass der Adapter nicht mehr aktualisiert wird 😞
      Gruß

      posted in Tester
      Bernd 0
      Bernd 0
    • RE: Brauche bitte Hilfe mit Parser

      @homoran Hi, du hattest mir damals mit dem Parser geholfen. Leider zeigt er nicht mehr das an, was er soll. Ich interessiere mich nach wie vor für die Tagessumme [mm]. Dein RegEx zieht nun aber die Spalte daneben die Akt. Summe [mm] und ich erhalte 21611 als Wert. Kannst du mir nochmals helfen?
      Bzw. kann es sein, dass wenn 0,0 (als kein Niederschlag) vorhanden ist, er auf den nächsten Wert geht?

      Edit: Vielleicht hab ich es jetzt selbst geschafft. Ich habe bei NUM in Parser von 1 auf 0 geändert.

      posted in Skripten / Logik
      Bernd 0
      Bernd 0
    • RE: Test Adapter luxtronik2 v0.4.x

      @michiproep luxtronik2.0.parameters.warmwater_temperature sollte schreibbar sein

      posted in Tester
      Bernd 0
      Bernd 0
    • RE: Say it - Sonos

      Hat niemand eine Idee? 🙂

      posted in ioBroker Allgemein
      Bernd 0
      Bernd 0
    • RE: Test Adapter luxtronik2 v0.4.x

      @tbsjah Hi, kannst du die Zeiten für die Zirkulation über iObroker steuern?

      posted in Tester
      Bernd 0
      Bernd 0
    • RE: Test Adapter luxtronik2 v0.4.x

      @homer-j Danke für deine Antwort.
      Ich habe gesehen, dass in der neuen Version für meine WP auch die verbrauchte Energie angezeigt wird. Dies wollte ich über IOBroker auslesen. Ebenso habe ich gesehen, dass weiter oben an den Zeiten für die Zirkulation gearbeitet wird. All das kann ich in meiner installierten Version nicht finden. 🤔

      posted in Tester
      Bernd 0
      Bernd 0
    • RE: Test Adapter luxtronik2 v0.4.x

      @homer-j Hi, mal eine ganz blöde Frage.
      Mit welchem Link schaffe ich es in iObroker die v0.5.2 zu installieren?
      Ich schaffe es über die Katze immer nur auf die stable version 0.4.2
      Danke!

      posted in Tester
      Bernd 0
      Bernd 0
    • Say it - Sonos

      Hi zusammen,
      ich habe 3 Sonos one Boxen. Eine im OG und zwei im EG, welche als Stereopaar zusammengeschalten sind in der App. Ich habe den Sonos Adapter am laufen und alle 3 Boxen eingepflegt. Wenn ich eine Sayit Ausgabe mache, geht meist nur die Box oben im OG. Manchmal aber auch alle Boxen. Es ist eher ein Glücksspiel, wo die Ausgabe kommt. Könnt ihr mir sagen, woran das liegt und wie ich es beheben kann?
      Danke & Gruß

      posted in ioBroker Allgemein
      Bernd 0
      Bernd 0
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo