Navigation

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

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    H
    • Profile
    • Following 0
    • Followers 2
    • Topics 8
    • Posts 225
    • Best 39
    • Groups 3

    hacki11

    @hacki11

    Starter

    48
    Reputation
    142
    Profile views
    225
    Posts
    2
    Followers
    0
    Following
    Joined Last Online

    hacki11 Follow
    Developer Pro Starter

    Best posts made by hacki11

    • RE: Pool Temperatur

      Ich hab genau das für den Vor- und Rücklauf meiner Wärmepumpe gemacht. Am besten hast du irgendwo ein PVC-U Rohr, damit du die Sensoren sauber einbauen kannst.

      • ESP8266 z.B. D1 Mini Clone (am besten gleich 3 oder 5 kaufen, kann man immer brauchen)
      • 2x DS18B20 50-70mm (Digitaler Temperaturfühler)
      • 2x Tauchhülse Edelstahl 50x6mm G1/2"
      • 2x Anbohrschelle für 50x1/2"
      • Micro-USB Netzteil
      • Lötkolben
      • Als Gehäuse tuts eine Aufputzdose
        max. 60€ inkl. Versandkosten

      Mit EspHome ist die Konfiguration der beiden Sensoren inkl. MQTT und OTA innerhalb 5 Minuten erledigt.
      Sogar DeepSleep kommt mit - ich habe eine Messung jede Minute, dazwischen schläft der ESP und verbraucht nahezu keinen Strom.

      6958794F-4C60-430C-B712-D0D416D309EC.JPG

      F5F261DE-93B0-44FA-9319-23EAA1762945.JPG

      9F631453-E568-4EC5-AB9F-D4503C54D7A3.JPG
      IMG_4434.jpg

      IMG_4436.jpg

      IMG_4437.jpg

      25aa17a3-6c86-4bda-91af-34d551d0ece0-image.png

      Hier noch eine Anleitung die mir geholfen hat:
      https://www.az-delivery.de/blogs/azdelivery-blog-fur-arduino-und-raspberry-pi/smarte-steuerung-fuer-den-swimmingpool-2-4

      posted in Hardware
      H
      hacki11
    • RE: [Idee] ioBroker Widgets auf iPhone mittels Scriptable App

      Hier ist mein Proof of Concept:
      https://gist.github.com/hacki11/70665ef90312eadad492459ce6102cf8

      1. Manuell den Datenpunkt "0_userdata.0.ioswidget" anlegen
      2. Widget im native Bereich konfigurieren (ein Widget pro Datenpunkt):
      "native": {
          "widget": {
            "name": "energy",
            "elements": [
              {
                "summary": "Gasverbrauch",
                "value": "sourceanalytix.0.mqtt__0__gas__value.currentYear.consumed.01_currentDay"
              },
              {
                "summary": "Stromverbrauch",
                "value": "sourceanalytix.0.mqtt__0__power__counter.currentYear.consumed.01_currentDay"
              }
            ]
          }
        },
      
      1. Script in Scriptable einfügen und im Widget den Hostnamen konfigurieren

      2. Ständig die aktuellen Werte im Blick haben
        711d102f-c3ff-4deb-8b9d-ad1865270ebf-grafik.png

      Konzept:

      • Pro gewünschtem Widget wird ein Datenpunkt angelegt und konfiguriert
      • Ein Script in Scriptable, welches jedoch mehrfach als Widget konfiguriert werden kann
      • Als Argument muss dann noch der Name des Datenpunktes übergeben werden können
      • Größe des Widgets ggf. in Konfiguration hinterlegen

      Es gäbe noch viel zu tun

      • Aktuell gehen nur Zahlen und es wird auf eine Nachkommastelle getrimmt
      • Farben
      • Schriftgrößen
      • Abstände
      • Small, Medium, Large Widget Support
      • Fontstyles
      • Bin kein Designer, hier wäre einiges mögilch - aber UI/UX ist nicht mein Fachgebiet
      • Themes wären auch möglich
      • ioBroker Adapter zur grafischen Unterstützung der Konfiguration

      Alles könnte über die Konfiguration abgedeckt werden und man muss das Script nur einmalig aufs Target bringen.

      Ich finds immer noch MEGA, dass das alles relativ einfach und straight forward mit ioBroker umzusetzen ist.
      Je nachdem wie weit man dieses Thema treiben möchte, bräuchte man aber auch entsprechend Kapa dafür.

      posted in ioBroker Allgemein
      H
      hacki11
    • RE: Test Adapter mhi-wfrac v2.1.x GitHub

      v2.1.2 ist nun im offiziellen Latest Repository.

      Da bei ein paar Objekten seit 2.1.1 noch Roles und Enum-Namen geändert wurden, sollte man zuvor manuell die einzelnen Geräte aus dem Objektbaum löschen. Die Namen der Objekte wurde nicht verändert, d.h. die Referenzen aus Visualisierungen sollten weiterhin funktionieren. Sollten jedoch Einstellungen direkt in den Objekten vorgenommen worden sein, wie z.B. History, Sourceanalytix, InfluxDB, dann müssen diese erneut konfiguriert werden.

      Next: Going Stable!
      fyi @saeft_2003 @MrLarodos

      posted in Tester
      H
      hacki11
    • RE: invalid pattern

      @mcm57
      Absolut, dass ist auch der Grund für die grundlegende Änderung auf Nummern. Wenn ich jetzt nur die Forbidden Chars ersetze (bzw. Nur erlaubte zulasse) wird das für alle Parameter des Adapters bei allen User ein Breaking Change, da in jedem Parameter solch ein Zeichen ist. Deshalb mache ich dafür kein Update sondern gehe direkt den Weg alle Ids einmalig auf Nummern umzustellen. Ein Breaking Change ist unumgänglich aber zwei mache ich nicht.
      Natürlich kann ich dann auch auf gültige IDs gemäß deinem Vorschlag prüfen.

      posted in ioBroker Allgemein
      H
      hacki11
    • RE: Mitsubishi Heavy Industries Split Klimaanlage

      Hallo zusammen, ich kümmere mich gerade darum, den Adapter in das offizielle Repository zu bekommen. Hierzu habe ich ein paar Änderungen vornehmen müssen. Z.B. Adaptername, Statenames und Rollen, auf die neue JSON UI migriert und Abhängikeiten aktualisiert. Zudem habe ich eine Multi-Device Unterstützung integriert, damit man nicht pro Innengerät einen eigenen Adapter braucht.

      Pull Request für Latest Repository ist in Review, sobald es drin ist und ein paar Leute es laufen haben ist ein Pull Request für stable möglich.
      Adapter: https://github.com/hacki11/ioBroker.mhi-wfrac
      Latest PR: https://github.com/ioBroker/ioBroker.repositories/pull/4613

      hacki11 created this issue in ioBroker/ioBroker.repositories

      closed Add mhi-wfrac to latest #4613

      posted in ioBroker Allgemein
      H
      hacki11
    • RE: Mitsubishi Heavy Industries Split Klimaanlage

      Im main ist nun bereit für euch:

      • "online" Datenpunkt pro Innengerät
      • Erster Versuch einer Retry Logik um die stündlichen Fehlermeldungen zu vermeiden. (Gut möglich, dass man hier noch am Timing was drehen muss. Ich weiß gerade nicht wie lange ein Reboot des WF-RAC Moduls im IG dauert)
      posted in ioBroker Allgemein
      H
      hacki11
    • RE: Mitsubishi Heavy Industries Split Klimaanlage

      @mrlarodos Danke für den Test und euer Feedback. Hier der PR, ich warte nur drauf, dass er akzeptiert wird. Dann muss man wohl nochmal 2 Wochen auf Stable warten. Mal sehen, ob die letzten zwei Wochen angerechnet werden können. https://github.com/ioBroker/ioBroker.repositories/pull/4613#issuecomment-2726565128

      hacki11 created this issue in ioBroker/ioBroker.repositories

      closed Add mhi-wfrac to latest #4613

      posted in ioBroker Allgemein
      H
      hacki11
    • [Aufruf] ValloxMV Adapter

      Hallo zusammen,

      ich habe einen Adapter für Vallox Lüftungsanlagen erstellt.
      Würde mich über ein paar Tester freuen, damit wir das ganze stable bekommen.

      Es sind die wichtigsten Metriken sowie die Profile einstellbar.
      Falls etwas fehlt, einfach Feedback geben.

      Installieren über Admin panel (valloxmv) und IP Adresse konfigurieren.
      https://github.com/hacki11/ioBroker.valloxmv

      Viele Grüße

      posted in Tester
      H
      hacki11
    • RE: [gelöst] Blockly Skript wenn PV liefert Strom Klimaanlage an.

      Meine Variante als JavaScript:

      • Glättung zur Unterstützung von kurzeitigen Wolkenstand (alpha abhängig von Zykluszeit der Leistungsdaten)
      • Mindestlaufzeit der Pumpe
      • Reine Überschussregelng für Wärmepumpe
      • Notifications bei Zustandsänderung
      • Manuelle Steuerung bei Bedarf

      Vielleicht hilfts wem, läuft jetzt seit ein paar Wochen sehr gut.
      Sonnige Tage:
      5e4ee7e9-2b8d-4a5b-b185-962b3aa1d9cd-image.png

      Viele Wolken:
      4320229a-d17c-406c-922e-77ad344965a3-image.png

      // Übrige Leistung
      const Grid = 'fronius.0.powerflow.P_Grid';
      
      // Wärmepumpe
      const WP_SwitchID = 'shelly.0.SHSW-PM#68C63AFAF6BC#1.Relay0.Switch';
      const WP_Consumption = 1500;
      const WP_Hysteresis = 1000;
      
      // Pumpe
      const P_SwitchID = 'shelly.0.SHSW-PM#68C63AFAF893#1.Relay0.Switch';
      // Leistung der Pumpe
      const P_Consumption = 250;
      const P_Hysteresis = 100;
      // Minuten am Tag, die sie mindestens laufen muss
      const P_MinimumRuntime = 7*60
      // Stunde wann sie frühestens starten soll
      const P_MinStartTime = 9;
      // Betriebsstundenzähler der Pumpe
      const P_RuntimeID = 'hm-rpc.1.CUX9001001.1.TIME_ON_SUM';
      
      // Variablen zum Speichern der Infos, dadurch kann man das Skript auch neustarten
      const P_RuntimeStartTimeID = 'javascript.0.variables.PumpeStartTime';
      const P_StartDayID = 'javascript.0.variables.PumpeStartDay';
      // Variable für Glättung der Leistung
      const GridEMAID = 'javascript.0.variables.P_Grid_EMA'
      
      // Schalter um in den manuellen Modus zu wechseln
      const Override_SwitchID = 'hm-rpc.1.CUX2801005.1.STATE';
      
      // Notifications zum Handy
      const PushObject = getIdByName('pocketControlPushMessage', true)[0];
      
      function push(msg) {
          log(msg);
          setState(PushObject, msg);
      }
      
      var ema_grid_init = false;
      var ema_grid = 0;
      var alpha = 0.05;
      
      function calcExponentialMovingAverage(accumulator, new_value, alpha) {
        	const new_avg = (alpha * new_value) + (1.0 - alpha) * accumulator;
          return Math.round(new_avg * 100)/100;
      };
      
      on({id: Grid, change: 'any'}, (obj) => {
      
          // Use last average as starting value if script was restarted
          if(!ema_grid_init) {
              ema_grid_init = true;
              ema_grid = getState(GridEMAID).val;
          } else {
              ema_grid = calcExponentialMovingAverage(ema_grid, obj.state.val, alpha);
              setState(GridEMAID, ema_grid);
          }
          const grid = ema_grid;
          
          // Check if Manual Mode is enabled
          if(getState(Override_SwitchID).val) {
              return;
          }
      
          // Begin at minimumstarttime
          if(new Date().getHours() < P_MinStartTime) {
              return;
          }
      
          if(grid + P_Consumption + P_Hysteresis < 0) {
              if(startPumpe()) {
                  push("[POOL] Pumpe EIN (" + grid + ")")
              }
          } else if(grid > 0) {
              if(stopPumpe()) {
                  push("[POOL] Pumpe AUS (" + grid + ")");
              }
          }
      
          if (grid + WP_Consumption + WP_Hysteresis < 0) {
              if(startWP()) {
                  push("[POOL] Wärmepumpe EIN (" + grid + ")");
              }
      
          } else if (grid > 0) {
              if(stopWP()) {
                  push("[POOL] Wärmepumpe AUS (" + grid + ")");
              }
          }
      });
      
      function startWP() {
          const wpState = getState(WP_SwitchID).val;
          if(wpState) {
              // already running
              return false;
          }
           // if Pumpe is stopped, return
          const pState = getState(P_SwitchID).val;
          if(!pState) {
              push("[POOL] Wärmepumpe kann nicht gestartet werden, Pumpe läuft nicht");
              return false;
          }
      
          setState(WP_SwitchID, true);
          return true;
      }
      
      function stopWP() { 
      
          const wpState = getState(WP_SwitchID).val
          if(!wpState) {
              return false;
          }
      
          setState(WP_SwitchID, false);
          return true;
      }
      
      function updateStartInfo() {
          // check if it is the first time of the day we start the pumpe and store runtime infos
          const lastStartDay = getState(P_StartDayID).val;
          const currentDay = new Date().getDate();
          if(lastStartDay !== currentDay) {
              push("[POOL] Speichere Start Info für heute");
              setState(P_StartDayID, currentDay);
              setState(P_RuntimeStartTimeID, getState(P_RuntimeID).val)
          }
      }
      
      function startPumpe() {
      
          updateStartInfo();
          // already started
          const pState = getState(P_SwitchID).val
          if(pState) {
              return false;
          }
      
          // starte Pumpe
          setState(P_SwitchID, true);
          return true;
      }
      
      function stopPumpe() {
      
          // if Pumpe already stopped, return
          const pState = getState(P_SwitchID).val
          if(!pState) {
              return false;
          }
      
          // when WP is running, do not stop the pump
          const wpStatus = getState(WP_SwitchID).val;
          if(wpStatus) {
              //push("[POOL] Pumpe kann nicht gestoppt werden, WP läuft noch");
              return false;
          }
      
          // check if minimum runtime has exceeded
          const runtime = getState(P_RuntimeID).val - getState(P_RuntimeStartTimeID).val;
          if(runtime < P_MinimumRuntime) {
              //push("[POOL] Pumpe hat Mindestlaufzeit noch nicht erreicht:" + runtime + "min/" + P_MinimumRuntime + "min");
              return false;
          }
      
          // WP not running, but pump is
          setState(P_SwitchID, false);
          return true;
      }
      
      
      posted in Blockly
      H
      hacki11
    • RE: [Adapter] ValloxMV Steuerung Lüftungsanlagen der Fa. Vallox

      hliebscher hat sich denke ich genau diesbezüglich mit dem Support unterhalten und es ist einer von mehreren Bugs.

      https://github.com/hacki11/ioBroker.valloxmv/issues/26

      Wir sind gerade dran, die Klappe über IoBroker zu steuern und diese Regelung Evtl. über iobroker hinzubekommen.

      jayfizzle created this issue in hacki11/ioBroker.valloxmv

      closed Version 2.0.2 FACELIFT #26

      posted in ioBroker Allgemein
      H
      hacki11

    Latest posts made by hacki11

    • RE: Mitsubishi Heavy Industries Split Klimaanlage

      @mrlarodos Konntest du schon neue Erkenntnisse erlangen? Eigener AP, Messung ohne Adapter, etc?

      posted in ioBroker Allgemein
      H
      hacki11
    • RE: Mitsubishi Heavy Industries Split Klimaanlage

      @mrlarodos done in latest: https://forum.iobroker.net/post/1272558

      posted in ioBroker Allgemein
      H
      hacki11
    • RE: Test Adapter mhi-wfrac v2.1.x GitHub

      GitHub Latest Release)

      • Set online to false on adapter shutdown
      posted in Tester
      H
      hacki11
    • RE: Mitsubishi Heavy Industries Split Klimaanlage

      @mrlarodos Kann deine Sichtweise nachvollziehen und auch der Sonoff Adapter macht das beispielsweise auch in dem es beim Stoppen die alive Datenpunkte auf false setzt. Ich bau das ein.

      posted in ioBroker Allgemein
      H
      hacki11
    • RE: Mitsubishi Heavy Industries Split Klimaanlage

      Habt ihr den IG bereits feste IP Adressen zugewiesen? Glaube nicht, dass es was ändert aber das ist zumindest bei mir der Fall.

      Hier nochmal der Thread mit der Bestätigung der stündlichen Restarts seitens MHI.
      https://community.ui.com/questions/AC-Units-IOT-disconnecting-from-UniFi-Wi-Fi-at-regular-hourly-Intervals/821cd3e4-46a0-4d6b-8fd0-8d5cf182b90f

      Dort ist auch die Rede von der Verwendung identischer Source-Ports für ausgehende Verbindungen, was bei NAT zu Problemen führen kann. Vermutlich aber lokal weniger ein Problem?

      Ein anderer User spricht von ARP Paketen, die dem Netzwerk vorgaukeln, WF-RAC wäre der Router:
      https://community.home-assistant.io/t/mitsubishi-wifi-module-wf-rac-smart-m-air/411025/142

      Vielleicht einen Versuch wert, ein eigenes Subnetz + eigenes Wlan nur für ein IG aufzuspannen? Mit Ubiqiti ja recht schnell erledigt.

      Welche Firmware habt ihr auf dem Modul? Meine:
      mcuFirmwareVersion: 131
      wirelessFirmwareVersion: 010

      posted in ioBroker Allgemein
      H
      hacki11
    • RE: Mitsubishi Heavy Industries Split Klimaanlage

      @mrlarodos Ohne, dass der Adapter läuft kann man die Erreichbarkeit der IG nicht wissen. Offline ist hier dann genauso falsch wie online. Wie ist es denn bei den anderen Adaptern wie Shelly? Wird hier auch noch was vorm beenden verändert? Der letzte bekannte Zustand ist der beste den wir haben. Falls es um ne Vis geht bräuchte man evtl. den Adapterzustand oder?

      Ansonsten gut analysiert. Wer mag ein WLan Modul zerlegen, damit wir sehen was da drin ist? Vielleicht findet man auch noch Infos in englischsprachigen Foren.

      posted in ioBroker Allgemein
      H
      hacki11
    • RE: Mitsubishi Heavy Industries Split Klimaanlage

      @mrlarodos 😓

      posted in ioBroker Allgemein
      H
      hacki11
    • RE: Mitsubishi Heavy Industries Split Klimaanlage

      @mrlarodos Zur Sicherheit mal den Adapter stoppen und prüfen ob die Offlinezeit dadurch beeinflusst wird. Falls nicht ist zumindest der Adapter raus 🫠

      posted in ioBroker Allgemein
      H
      hacki11
    • RE: Mitsubishi Heavy Industries Split Klimaanlage

      @saeft_2003 Mein IG nimmt auch immer den weiter entfernten AP statt dem der 4m entfernt steht. Roaming ist in dem WLAN deaktiviert, da viele IOT Geräte damit nicht klar kommen. Das IG vermutlich gleich dreimal nicht.

      posted in ioBroker Allgemein
      H
      hacki11
    • RE: Mitsubishi Heavy Industries Split Klimaanlage

      @saeft_2003 Nimm mal den alive mit in die history auf. Aber man sieht schon schön ne Lücke in dem Graphen. Vermutlich gab’s keine Werte und es wird linear mit dem ersten Ping der wiederkommt verbunden? Zumindest würde das den Graphen erklären.

      posted in ioBroker Allgemein
      H
      hacki11
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo