Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. IoBroker mit Warema WMS Web Control

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.8k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    895

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

IoBroker mit Warema WMS Web Control

Scheduled Pinned Locked Moved ioBroker Allgemein
127 Posts 26 Posters 41.0k Views 18 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • Marc BergM Marc Berg

    @patrickr sagte in IoBroker mit Warema WMS Web Control:

    vermutlich interessiert meine Frage die wenigsten da HA.

    Um ganz ehrlich zu sein: Mich interessiert HA auch nicht. Deshalb kann ich diesbezüglich auch keinen Support leisten.

    Wenn du dir selbst was zusammenstricken möchtest, dann musst du neben der index.js auch die Module unter addon-warema-wms/warema-bridge/srv/warema-wms-venetian-blinds anpassen, denn diese übernehmen die eigentliche Kommunikation mit dem WMS Netzwerk. Wegen der von mir entfernen HA-Funktionalität kannst du die Dateien aber nicht 1:1 ersetzen.

    P Offline
    P Offline
    PatrickR
    wrote on last edited by
    #121

    @marc-berg Vielen Dank

    P 1 Reply Last reply
    0
    • P PatrickR

      @marc-berg Vielen Dank

      P Offline
      P Offline
      PatrickR
      wrote on last edited by
      #122

      @Marc-Berg
      Hallo Marc,
      ich mußte bzgl. Wetterstation Pro
      bei mir im wms-util.js noch einen Wert ändern.

      Das wäre bei Dir
      wms2mqtt/warema-bridge/srv/warema-wms-venetian-blinds/wms-util.js
      Zeile 272
      params.temp = parseInt(payload.substr(18, 2), 16) / 2 - 35;

      Ich muß 40 abziehen, um die korrekten Werte zu erhalten.
      Vergleich mit WMS Stick und WMS studio pro.

      Gruß
      Patrick

      PS: Sieh bitte auch meinen Kommentar zum " Squash deduplication #6"
      Und vielen Dank für das "Implement comprehensive weather data deduplication"

      Marc BergM 1 Reply Last reply
      0
      • P PatrickR

        @Marc-Berg
        Hallo Marc,
        ich mußte bzgl. Wetterstation Pro
        bei mir im wms-util.js noch einen Wert ändern.

        Das wäre bei Dir
        wms2mqtt/warema-bridge/srv/warema-wms-venetian-blinds/wms-util.js
        Zeile 272
        params.temp = parseInt(payload.substr(18, 2), 16) / 2 - 35;

        Ich muß 40 abziehen, um die korrekten Werte zu erhalten.
        Vergleich mit WMS Stick und WMS studio pro.

        Gruß
        Patrick

        PS: Sieh bitte auch meinen Kommentar zum " Squash deduplication #6"
        Und vielen Dank für das "Implement comprehensive weather data deduplication"

        Marc BergM Offline
        Marc BergM Offline
        Marc Berg
        Most Active
        wrote on last edited by
        #123

        @patrickr sagte in IoBroker mit Warema WMS Web Control:

        Das wäre bei Dir
        wms2mqtt/warema-bridge/srv/warema-wms-venetian-blinds/wms-util.js
        Zeile 272
        params.temp = parseInt(payload.substr(18, 2), 16) / 2 - 35;

        Ich muß 40 abziehen, um die korrekten Werte zu erhalten.

        Da hast du Recht, das passt nicht. Habe ich aber auch nur aus der original Library übernommen. Ich verwende die Temperatur der Wetterstation nicht, da bei starker Sonneneinstrahlung gern mal Mondwerte ankommen. Auch in der Warema App wird die Temperatur nicht direkt angezeigt, dem Hersteller ist wohl auch klar, dass man darauf nichts geben kann. Passe ich aber trotzdem bei Gelegenheit mal an.

        Und vielen Dank für das "Implement comprehensive weather data deduplication"

        Ich dachte erst, es sei ein Fehler im Code, aber die Wetterstation sendet wirklich ständig doppelt und dreifach. Wahrscheinlich kann ich noch viel mehr Duplikate rausfiltern, auch das schaue ich mir nochmal an.

        NUC10I3+Ubuntu+Docker+ioBroker+influxDB2+Node Red+EMQX+Grafana

        Pi-hole, Traefik, Checkmk, Conbee II+Zigbee2MQTT, ESPSomfy-RTS, LoRaWAN, Arduino, KiCad

        Benutzt das Voting im Beitrag, wenn er euch geholfen hat.

        P 1 Reply Last reply
        0
        • Marc BergM Marc Berg

          @patrickr sagte in IoBroker mit Warema WMS Web Control:

          Das wäre bei Dir
          wms2mqtt/warema-bridge/srv/warema-wms-venetian-blinds/wms-util.js
          Zeile 272
          params.temp = parseInt(payload.substr(18, 2), 16) / 2 - 35;

          Ich muß 40 abziehen, um die korrekten Werte zu erhalten.

          Da hast du Recht, das passt nicht. Habe ich aber auch nur aus der original Library übernommen. Ich verwende die Temperatur der Wetterstation nicht, da bei starker Sonneneinstrahlung gern mal Mondwerte ankommen. Auch in der Warema App wird die Temperatur nicht direkt angezeigt, dem Hersteller ist wohl auch klar, dass man darauf nichts geben kann. Passe ich aber trotzdem bei Gelegenheit mal an.

          Und vielen Dank für das "Implement comprehensive weather data deduplication"

          Ich dachte erst, es sei ein Fehler im Code, aber die Wetterstation sendet wirklich ständig doppelt und dreifach. Wahrscheinlich kann ich noch viel mehr Duplikate rausfiltern, auch das schaue ich mir nochmal an.

          P Offline
          P Offline
          PatrickR
          wrote on last edited by
          #124

          @marc-berg sagte in IoBroker mit Warema WMS Web Control:
          Wo noch ein allgemeines Problem liegt, ist bei den Jalousien, der maximale Winkel welcher wie in meinem Fall auf 80° steht.

          Und bei der Umrechnung in % muss ich genau diesen maximal Wert als 100% hernehmen, ansonsten verwende ich einen falschen Wert.

          So ging es mir anfänglich.

          Da dieser Maximalwert für jeden Actuator unterschiedlich sein kann,
          gibt es für unterschiedliche Werte auch unterschiedliche Winkelwerte die 100% bedeuten.

          Man müßte eigentlich für jeden Actuator den maxWert als Berechnungsbasis ablegen und diesen in der Konfiguration übergeben (alles machbar aber mit Aufwand).

          Was anderes noch.
          Es gibt bestimmt eine Botschaft um im WMS-Mesh-System die Geräte auf "Abwesend" zu setzen.
          Ist Dir da etwas bekannt?

          Danke.
          Patrick

          Marc BergM 1 Reply Last reply
          0
          • P PatrickR

            @marc-berg sagte in IoBroker mit Warema WMS Web Control:
            Wo noch ein allgemeines Problem liegt, ist bei den Jalousien, der maximale Winkel welcher wie in meinem Fall auf 80° steht.

            Und bei der Umrechnung in % muss ich genau diesen maximal Wert als 100% hernehmen, ansonsten verwende ich einen falschen Wert.

            So ging es mir anfänglich.

            Da dieser Maximalwert für jeden Actuator unterschiedlich sein kann,
            gibt es für unterschiedliche Werte auch unterschiedliche Winkelwerte die 100% bedeuten.

            Man müßte eigentlich für jeden Actuator den maxWert als Berechnungsbasis ablegen und diesen in der Konfiguration übergeben (alles machbar aber mit Aufwand).

            Was anderes noch.
            Es gibt bestimmt eine Botschaft um im WMS-Mesh-System die Geräte auf "Abwesend" zu setzen.
            Ist Dir da etwas bekannt?

            Danke.
            Patrick

            Marc BergM Offline
            Marc BergM Offline
            Marc Berg
            Most Active
            wrote on last edited by
            #125

            @patrickr sagte in IoBroker mit Warema WMS Web Control:

            Wo noch ein allgemeines Problem liegt, ist bei den Jalousien, der maximale Winkel welcher wie in meinem Fall auf 80° steht.
            Und bei der Umrechnung in % muss ich genau diesen maximal Wert als 100% hernehmen, ansonsten verwende ich einen falschen Wert.

            Da ich keine Jalousien von Warema besitze, kann ich das nicht nachstellen.

            Es gibt bestimmt eine Botschaft um im WMS-Mesh-System die Geräte auf "Abwesend" zu setzen.
            Ist Dir da etwas bekannt?

            Nein, keine Ahnung.

            NUC10I3+Ubuntu+Docker+ioBroker+influxDB2+Node Red+EMQX+Grafana

            Pi-hole, Traefik, Checkmk, Conbee II+Zigbee2MQTT, ESPSomfy-RTS, LoRaWAN, Arduino, KiCad

            Benutzt das Voting im Beitrag, wenn er euch geholfen hat.

            P 1 Reply Last reply
            0
            • Marc BergM Marc Berg

              @patrickr sagte in IoBroker mit Warema WMS Web Control:

              Wo noch ein allgemeines Problem liegt, ist bei den Jalousien, der maximale Winkel welcher wie in meinem Fall auf 80° steht.
              Und bei der Umrechnung in % muss ich genau diesen maximal Wert als 100% hernehmen, ansonsten verwende ich einen falschen Wert.

              Da ich keine Jalousien von Warema besitze, kann ich das nicht nachstellen.

              Es gibt bestimmt eine Botschaft um im WMS-Mesh-System die Geräte auf "Abwesend" zu setzen.
              Ist Dir da etwas bekannt?

              Nein, keine Ahnung.

              P Offline
              P Offline
              PatrickR
              wrote on last edited by
              #126

              @marc-berg
              ich hab noch für mich eine Anpassung bzgl. Polling gemacht.
              Wenn ein neues Weather broadcast empfangen wird, wird der
              der Intervall-Zähler für "Weather polling function" retriggert.

              ///////////// index.js : Info

              //Neu: Info
              let weatherInterval;

              //Neu: Info
              function retriggerWeatherPolling() {
              if (weatherInterval) {
              clearInterval(weatherInterval);
              }
              weatherInterval = setInterval(pollWeatherData, pollingInterval);
              log.fkt_log_info('046:Restarted weather data polling every ' + pollingInterval + ' ms');
              }

              //Änderung : Info
              // Start weather polling with configurable interval
              weatherInterval = setInterval(pollWeatherData, pollingInterval);
              log.fkt_log_info('045:Started weather data polling every ' + pollingInterval + ' ms');

              //Neu: Info
              //function callback(err, msg)
              /////case 'wms-vb-rcv-weather-broadcast':
              ///////if (!cachedWeather || cachedWeather.hash !== weatherHash || (currentTime - cachedWeather.timestamp) > minTimeDiff) {
              /////////if (typeof client !== 'undefined' && client.connected) {
              retriggerWeatherPolling();

              Gruß
              Patrick

              P 1 Reply Last reply
              0
              • P PatrickR

                @marc-berg
                ich hab noch für mich eine Anpassung bzgl. Polling gemacht.
                Wenn ein neues Weather broadcast empfangen wird, wird der
                der Intervall-Zähler für "Weather polling function" retriggert.

                ///////////// index.js : Info

                //Neu: Info
                let weatherInterval;

                //Neu: Info
                function retriggerWeatherPolling() {
                if (weatherInterval) {
                clearInterval(weatherInterval);
                }
                weatherInterval = setInterval(pollWeatherData, pollingInterval);
                log.fkt_log_info('046:Restarted weather data polling every ' + pollingInterval + ' ms');
                }

                //Änderung : Info
                // Start weather polling with configurable interval
                weatherInterval = setInterval(pollWeatherData, pollingInterval);
                log.fkt_log_info('045:Started weather data polling every ' + pollingInterval + ' ms');

                //Neu: Info
                //function callback(err, msg)
                /////case 'wms-vb-rcv-weather-broadcast':
                ///////if (!cachedWeather || cachedWeather.hash !== weatherHash || (currentTime - cachedWeather.timestamp) > minTimeDiff) {
                /////////if (typeof client !== 'undefined' && client.connected) {
                retriggerWeatherPolling();

                Gruß
                Patrick

                P Offline
                P Offline
                PatrickR
                wrote on last edited by PatrickR
                #127

                @Marc-Berg

                Noch eine Änderung des "weatherBroadcast" für meinen batteriebetrieben Temperatursensor "65".

                       case '7080':
                            msgType = 'weatherBroadcast';
                            params.unknown_1 = payload.substr(0, 2);
                            params.wind = parseInt(payload.substr(2, 2), 16) / 2;                  // 2025-06-28 PatrickR68 added / 2
                            params.lumen = payload.substr(4, 2) === '00' ? parseInt(payload.substr(12, 2), 16) * 2 : parseInt(payload.substr(4, 2), 16) * parseInt(payload.substr(12, 2), 16) * 2;
                            params.unknown_2 = payload.substr(6, 6);
                            params.batt = parseInt(payload.substr(14, 2), 16) / 2;                // 2025-08-24 PatrickR68 0.99.111 Battery in V 
                            params.rain = payload.substr(16, 2) === 'C8';
                            params.temp = parseInt(payload.substr(18, 2), 16) / 2 - 40;           // 2025-07-02 PatrickR68 changed 35->40 (range -40..87,5)
                            params.temp_in = parseInt(payload.substr(20, 2), 16) / 2 - 40;        // 2025-08-24 PatrickR68 0.99.111 indoor °C
                            params.unknown_4 = payload.substr(22,4);
                            params.humidity = parseInt(payload.substr(26, 2), 16) / 2;            // 2025-08-24 PatrickR68 0.99.111 Humidity in % 
                            params.unknown_5 = payload.substr(28,34);
                            params.temp_target_in = parseInt(payload.substr(62, 2), 16) / 2 - 40; // 2025-08-24 PatrickR68 0.99.111 indoor target °C
                            params.unknown_6 = payload.substr(64,2);                              // 2025-08-24 PatrickR68 0.99.111 
                            break;
                
                1 Reply Last reply
                0
                Reply
                • Reply as topic
                Log in to reply
                • Oldest to Newest
                • Newest to Oldest
                • Most Votes


                Support us

                ioBroker
                Community Adapters
                Donate
                FAQ Cloud / IOT
                HowTo: Node.js-Update
                HowTo: Backup/Restore
                Downloads
                BLOG

                329

                Online

                32.6k

                Users

                82.1k

                Topics

                1.3m

                Posts
                Community
                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                ioBroker Community 2014-2025
                logo
                • Login

                • Don't have an account? Register

                • Login or register to search.
                • First post
                  Last post
                0
                • Home
                • Recent
                • Tags
                • Unread 0
                • Categories
                • Unreplied
                • Popular
                • GitHub
                • Docu
                • Hilfe