Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

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

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.7k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.0k

IoBroker mit Warema WMS Web Control

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
127 Beiträge 26 Kommentatoren 39.1k Aufrufe 18 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • L Offline
    L Offline
    Lupin III.
    schrieb am zuletzt editiert von
    #65

    Noch was neues (diesmal mit einem Serialportmonitor rausgefischt):

    Diese zwei Befehle versetzen den Stick in einen Kanal-Scanner-Modus:

    {M<17}{Yon}

    Danach kommen laufend solche Zeilen:

    {yC11:30}{yC12:3E}{yC13:38}{yC14:2B}{yC15:62}{yC16:23}{yC17:20}{yC18:2C}{yC19:41}{yC20:1C}{yC21:19}{yC22:2B}{yC23:65}{yC24:19}{yC25:17}{yC26:15}

    Sendet auf den Frequenzen der Kanäle etwas anderes (z. B. WLAN), sind die Zahlen hinter dem Doppelpunkt höher. Das könnte bei der Fehlersuche helfen, wenn jemand Probleme mit dem Empfang hat.

    Stoppen kann man die Ausgabe einfach mit {Yoff} . Mit {M#17FFFF} (bzw. M% und/oder PANID) kommt man wieder in den normalen Modus.

    Außerdem habe ich meinen Reset gefunden: {Ureset} lässt den Stick neu starten. Er meldet sich mit der Versionsnummer. Auch das Funkmodul wird anscheinend wieder abgeschalten, denn der Stromverbrauch geht wieder auf die 10mA wie direkt nach dem Anstecken zurück.

    Die Zeile {R 11 xxxxxx 8020 09 0400 01 01} löscht übrigens einen Teilnehmer aus dem Netz. Eine Suche mit der Fernbedienung lässt ihn wieder rot auftauchen. Das Gegenstück (Einlernen), habe ich noch nicht reproduzieren können, da hier einiges mehr los ist. Für die, die's interessiert ist hier der Ablauf für einen Zwischenstecker, den ich zum Experimentieren aus meinem normalen Netzwerk genommen habe (der Key ist der, den WMS Studio pro erzeugt hat, nicht der von meinem Netzwerk):

    {M# 17 FFFF}
    {a}
    {R 01 xxxxxx 5060 FFFF011100}
    {a}
    {rxxxxxx50AC01B5}
    {M# 17 FFFF}
    {a}
    {R 01 xxxxxx 5018 708640990B5FFB32FD7B4A20CE70FDB3BFD00011}
    {a}
    {rxxxxxx50ACC65F}
    {M# 17 7086}
    {a}
    {K 4 01 D0BFB3FD70CE204A7BFD32FB5F0B9940}
    {a}
    {R 11 xxxxxx 8010 51 1800 20}
    {a}
    {rxxxxxx801151180020333730303131324220202000312E303430200020313032462020202020202000}
    {R 11 xxxxxx 8020 08 0700 43 3900012D00010164280214C8A5FFFF0034FFFFFF2E000101070009001000100096960034FFFFC8CAFFFFFF32000101010A0034FFFF01FF3000010118010A0034FFFFFF}
    {a}
    {rxxxxxx802108070043}
    {R 11 xxxxxx 8020 08 4A00 43 310001005600000034FFFFFF2F0001847C0A0AC8A5FFFF0034FFFFFF3A00FF4000FF3600010600FFFFFFFF011600FFFFFFFF00FFFFFFFFFFFF02FFFFFFFFFFFF020600}
    {a}
    {rxxxxxx8021084A0043}
    {R 11 xxxxxx 8020 08 8D00 43 FFFFFFFF011600FFFFFFFF00FFFFFFFFFFFF02FFFFFFFFFFFF020600FFFFFFFF011600FFFFFFFF00FFFFFFFFFFFF02FFFFFFFFFFFF020600FFFFFFFF011600FFFFFFFF}
    {a}
    {rxxxxxx8021088D0043}
    {R 11 xxxxxx 8020 08 D000 43 00FFFFFFFFFFFF02FFFFFFFFFFFF020600FFFFFFFF011600FFFFFFFF00FFFFFFFFFFFF02FFFFFFFFFFFF020600FFFFFFFF011600FFFFFFFF00FFFFFFFFFFFF02FFFFFF}
    {a}
    {rxxxxxx802108D00043}
    {R 11 xxxxxx 8020 08 1301 43 FFFFFF020600FFFFFFFF011600FFFFFFFF00FFFFFFFFFFFF02FFFFFFFFFFFF0238C8A5FFFF0033FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF}
    {a}
    {rxxxxxx802108130143}
    {R 11 xxxxxx 8020 08 5601 43 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF}
    {a}
    {rxxxxxx802108560143}
    {R 11 xxxxxx 8020 08 9901 43 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E0101010101010000010101010101385A5AFFFFFFFF}
    {a}
    {rxxxxxx802108990143}
    {R 11 xxxxxx 8020 08 DC01 1B 03001034CA0600FFFF190505050505050505050541FFFFFFFFFFFF}
    {a}
    {rxxxxxx802108DC011B}
    {R 11 xxxxxx 8020 08 0000 03 010103}
    {a}
    {rxxxxxx802108000003}
    {R 11 xxxxxx 8010 08 0000 01}
    {a}
    {rxxxxxx80110800000100}
    {R 11 xxxxxx 8020 23 0000 20 FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000000000000000000000000000}
    {a}
    {rxxxxxx802123000020}
    {R 11 xxxxxx 8020 24 0000 14 FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00}
    {a}
    {rxxxxxx802124000014}
    {R 11 xxxxxx 8020 09 0000 01 01}
    {a}
    {rxxxxxx802109000001}
    {R 11 xxxxxx 8020 09 0300 01 01}
    {a}
    {rxxxxxx802109030001}
    

    Ich habe ein paar der Befehle "nachgespielt", der Zwischenstecker wurde aber nie als im Netzwerk erkannt. Könnte sein, dass auch hier möglicherweise etwas zeitabhängig ist. Interessant ist es trotzdem, weil das heißt, dass man eigentlich mit USB-Stick und Zwischenstecker auskommt und keine Fernbedienung braucht.

    Die 8020 Befehle sind übrigens Schreibbefehle in den Speicher des Zwischensteckers (Block-Nr., Addresse im Block, Länge, Payload) bzw. Lesebefehle mit 8010. Der Großteil der Zeilen schreibt Szenen, Sensor-Limits usw. WMS Studio macht das auch schon beim Einlernen, weswegen es schwierig ist, rauszufinden, was für das Einlernen notwendig ist.

    1 Antwort Letzte Antwort
    0
    • R Offline
      R Offline
      radiorichter
      schrieb am zuletzt editiert von
      #66

      Hallo beisammen ;)

      so nun ist es auch bei mir soweit, dass ich mein Warema per iobroker zum laufen bringen möchte.

      Das mit dem Stick hat schon mal geklappt, hab auch Channel, Panid sowie Key eingetragen und das Skript neugestartet.

      Doch irgendwie wird mir kein Ordner im Javasript adapter erstellt… Der WMS stick steckt im Pi und ist ca 1m vom WMS Aktor entfernt.

      Hier mal der Log wenn ich das Skript neustarte:

      20:59:30.166 [info] javascript.0 Stop script script.js.common.Skript2_2

      20:59:30.321 [info] javascript.0 Start javascript script.js.common.Skript2_2

      20:59:30.322 [info] javascript.0 script.js.common.Skript2_2: registered 0 subscriptions and 0 schedules

      20:59:30.332 [info] javascript.0 script.js.common.Skript2_2: port opened

      20:59:30.354 [info] javascript.0 script.js.common.Skript2_2: Stick Version: v37605107

      Vielleicht kann mir ja hier einer von euch weiterhelfen ;)

      1 Antwort Letzte Antwort
      0
      • R Offline
        R Offline
        radiorichter
        schrieb am zuletzt editiert von
        #67

        so ich nochmal:

        Gibt es denn auch die Möglichkeit aus dem Quelltext vom Webcontrol was zu basteln?

        hier mal der ein Bild von der Website bzw vom Code:

        3364_2.jpg

        
          <title>Warema - Bedienen</title>
        
                ![](Images/warema_flag_rot 220x40.png)
        
        *   [Bedienung](index.html)
        
        *   |
        
        *   [Einstellungen](einstellungen.html)
        
        *   |
        
        *   [Konfiguration](konfigurieren.html)
        
        *   |
        
        *   [System](system.html)
        
                  
                  
                  
        
              
              
                      
               
        
              Automatiken
        
              
        
                       |
        
                     |
                       |
        
                       |
        
                     |
                       |
        
                       |
        
                     |
                       |
        
                       |
        
                     |
                       |
        
                       |
        
                     |
                       |
        
              Message
        
              Möchten Sie wirklich die Szene einlernen? Die alte Szene wird überschrieben.
        
        
        1 Antwort Letzte Antwort
        0
        • P Offline
          P Offline
          Pman
          schrieb am zuletzt editiert von
          #68

          @radiorichter:

          20:59:30.166 [info] javascript.0 Stop script script.js.common.Skript2_2

          20:59:30.321 [info] javascript.0 Start javascript script.js.common.Skript2_2

          20:59:30.322 [info] javascript.0 script.js.common.Skript2_2: registered 0 subscriptions and 0 schedules

          20:59:30.332 [info] javascript.0 script.js.common.Skript2_2: port opened

          20:59:30.354 [info] javascript.0 script.js.common.Skript2_2: Stick Version: v37605107 `

          Es startet erstmal alles korrekt, dann wird aber kein Gerät gefunden. Das kann jetzt viele Gründe haben:

          • alle angelernte Geräte sind außer Funkreichweite des Sticks. Besonders wenn du den Stick in einem Schrank oder Metallregal versteckst kann das passieren. Der Stick ist leider nicht auf starke Sendeleistung ausgelegt, ggf. kann ein USB-Verlängerungskabel helfen oder diverse 2.4 GHz Antennen-Mods.

          • Key, PANID oder CHANNEL sind falsch

          • Es befinden sich keine weiteren Geräte (wie z.B. Raffstore) im selben System, in das du den Stick eingelernt hast (das nehme ich mal nicht an)

          Versuche am besten die Fehlerquellen in der oben beschriebenen Reihenfolge auszuschließen und schalte den Javascript-Adapter auf debug-Ausgabe, damit das Skript mehr Infos ausspuckt.

          Ich hänge unten mal das Skript an, so wie bei mir in Verwendung (mit verfälschtem Key). So in etwa müsste das Skript ausgeben (ohne Debug):
          ` > 0:28:11.073 [info] javascript.1 Start javascript script.js.Devices.WMS

          00:28:11.073 [info] javascript.1 script.js.Devices.WMS: registered 0 subscriptions and 0 schedules

          00:28:11.082 [info] javascript.1 script.js.Devices.WMS: port opened

          00:28:11.110 [info] javascript.1 script.js.Devices.WMS: Stick Version: v37605100

          00:28:16.259 [info] javascript.1 script.js.Devices.WMS: device type 20 found: 699906

          00:28:16.295 [info] javascript.1 script.js.Devices.WMS: device type 20 found: F99906

          00:28:16.296 [info] javascript.1 script.js.Devices.WMS: device type 20 found: 1E9996 `

          var namespace = 'Custom.WMS';
          var SerialPort = require('serialport');
          
          //config
          const PATH = "/dev/ttyUSB0";
          const CHANNEL = 17;
          const PANID = "F228"; //inclusion mode: FFFF
          const KEY = "0E99EB48AB0AEDBB5682857D933D294D"; //inclusion mode: "00112233445566778899AABBCCDDEEFF"
          var positionInterval = 60; //how often current position is requested (seconds)
          var scanInterval = 600;  //how often to scan for devices (seconds)
          //listPorts();  //uncomment to list all available serial ports
          
          /* do not edit below! */
          //globals
          var knownDevices = {}; //stores known devices
          var lastData = ''; //contains last packet
          var writeQueue = []; //stores data to be sent to serial port
          var timers = {};
          
          /* open serial port and setup parser */
          function init() {
              //scan 3 times
              setTimeout(function () {
                  wmsScan();
              }, 5000);
              setTimeout(function () {
                  wmsScan();
              }, 10000);
              setTimeout(function () {
                  wmsScan();
              }, 30000);
              //scan again every scanInterval seconds
              setInterval(function () {
                  wmsScan();
              }, scanInterval * 1000);
          }
          
          //connect to serial port
          const port = new SerialPort(PATH, {
              baudRate: 125000,
              parity: 'none',
              dataBits: 8,
              stopBits: 1,
              autoOpen: false,
          });
          //create parser with '}' as delemiter
          const parser = port.pipe(new SerialPort.parsers.Readline({delimiter: '}'}));
          
          // handle serial port errors
          port.on('error', function () {
              log('serial port error!', 'warn');
              closePort();
          });
          
          //parse incomming packets
          parser.on('data', parseData);
          
          //open serial port
          portOpen().then((msg) => {
              log(msg);
              writeAndWaitFor('{G}', 'gWMS USB-Stick', true).then((line) => {
                  return writeAndWaitFor('{V}', 'v', true);
              }).then((line) => {
                  log('Stick Version: ' + line);
                  return writeAndWaitFor(encodeWMS('setKey', {key: KEY}), 'a', true);
              }).then((line) => {
                  return writeAndWaitFor(encodeWMS('switchChannel', {
                      channel: CHANNEL,
                      panId: PANID
                  }), 'a', true);
              }).then((line) => {
                  init();
              }).catch((err) => {
                  log(err, 'warn');
                  closePort();
              });
          }).catch((err) => {
              log(err, 'warn');
          });
          
          /* serialport helper functions */
          
          //opens port with promise
          function portOpen() {
              return new Promise((resolve, reject) => {
                  port.open((err) => {
                      err ? reject(err) : resolve('port opened');
                  })
              });
          }
          
          //close port if open
          function closePort() {
              return new Promise((resolve, reject) => {
                  log('closing open serial ports', 'warn');
                  if (port && port.isOpen) {
                      // close connection
                      port.close(() => {
                          resolve('port closed')
                      });
                  } else {
                      reject('no port was opened');
                  }
              });
          }
          
          //on script stop close port
          onStop(closePort, 2000);
          
          //handle incomming data
          function parseData(data) {
              //trim data
              data = wmsTrim(data);
              //do nothing, if packet is received twice
              if (lastData === data) return
              lastData = data;
              log('received message: ' + data, 'debug');
              //decode data into object
              var obj = decodeWMS(data);
              log(JSON.stringify(obj), 'debug');
              //process object
              processWMS(obj);
          }
          
          //list available serial ports
          function listPorts() {
              SerialPort.list().then((ports) => {
                  log('Serial Ports: ' + JSON.stringify(ports));
              }).catch((err) => {
                  log('error listing ports: ' + JSON.stringify(err));
              });
          }
          
          //write to serial port and wait for answer
          function writeAndWaitFor(data, expect, rejectOnTimeout, timeout) {
              return new Promise((resolve, reject) => {
                  if (isNaN(timeout)) timeout = 5000;
                  log('sending ' + data, 'debug');
                  listener = (line) => {
                      if (wmsTrim(line).substr(0, expect.length) === expect) {
                          log('received expected answer: ' + expect, 'debug');
                          parser.removeListener('data', listener);
                          resolve(wmsTrim(line));
                      } else {
                          log('received unexpected answer (still waiting): ' + wmsTrim(line).substr(0, expect.length) + '!=' + expect, 'debug');
                      }
                  };
                  parser.on('data', listener);
                  enqueue(data);
                  //remove listener after 5 seconds
                  setTimeout(() => {
                      parser.removeListener('data', listener);
                      rejectOnTimeout ? reject(expect) : resolve(false);
                  }, timeout);
              });
          }
          
          function enqueue(data) {
              if (typeof data === 'string') writeQueue.push(data);
              if (writeQueue.length === 1) {
                  port.write(writeQueue.shift());
                  port.drain((err) => {
                      if (writeQueue.length) enqueue();
                  });
              }
          }
          
          /* WMS helper functions */
          
          //trim wms string
          function wmsTrim(data) {
              return data.trim().substr(1);
          }
          
          //decode wms strings into an object
          function decodeWMS(packet) {
              var obj = {};
              switch (packet.substr(0, 1)) {
                  case 'g':
                      obj.type = 'stickType';
                      obj.payload = {name: packet.substr(1)};
                      break;
                  case 'v':
                      obj.type = 'stickVersion';
                      obj.payload = {version: packet.substr(1)};
                      break;
                  case 'f':
                      obj.type = 'error';
                      break;
                  case 'a':
                      obj.type = 'ack';
                      break;
                  case 'r':
                      obj.type = 'message';
                      obj.payload = decodeWMSMessage(packet.substr(1));
                      break;
                  default:
                      obj.type = 'unknown';
                      obj.payload = packet.substr(1);
              }
              return obj;
          }
          
          //decode wms messages into an object
          function decodeWMSMessage(message) {
              var obj = {};
              obj.src = message.substr(0, 6);
              var type = message.substr(6, 4);
              var payload = message.substr(10);
              switch (type) {
                  case '5018':
                      obj.type = 'joinNetworkRequest';
                      obj.messagePayload = {
                          panId: payload.substr(0, 4),
                          networkKey: payload.substr(4, 32).match(/../g).reverse().join(""),
                          unknown: payload.substr(36, 2),
                          channel: parseInt(payload.substr(38, 2), 16)
                      };
                      break;
                  case '5060':
                      obj.type = 'switchChannelRequest';
                      obj.messagePayload = {
                          panId: payload.substr(0, 4),
                          deviceType: payload.substr(4, 2),
                          channel: parseInt(payload.substr(6, 2), 16)
                      };
                      break;
                  case '50AC':
                      obj.type = 'ack';
                      obj.messagePayload = {
                          unknown: payload.substr(0, 4)
                      };
                      break;
                  case '7020':
                      obj.type = 'scanRequest';
                      obj.messagePayload = {
                          panId: payload.substr(0, 4),
                          deviceType: payload.substr(4, 2)
                      };
                      break;
                  case '7021':
                      obj.type = 'scanResponse';
                      obj.messagePayload = {
                          panId: payload.substr(0, 4),
                          deviceType: payload.substr(4, 2), //63: wetterstation, 06: webcontrol, 02: stick/software, 20: zwischenstecker
                          unknown: payload.substr(6) //optional
                      };
                      break;
                  case '7080':
                      obj.type = 'weatherBroadcast';
                      obj.messagePayload = {
                          unknown_1: payload.substr(0, 2),
                          wind: parseInt(payload.substr(2, 2), 16),
                          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,
                          unknown_2: payload.substr(6, 6),
                          unknown_3: payload.substr(14, 2),
                          rain: payload.substr(16, 2) === 'C8',
                          temp: parseInt(payload.substr(18, 2), 16) / 2 - 35,
                          unknown_4: payload.substr(20)
                      };
                      break;
                  case '7050':
                      obj.type = 'beckonRequest';
                      break;
                  case '7070':
                      obj.type = 'controlRequest';
                      obj.messagePayload = {
                          unknown: payload.substr(0, 2),
                          position: parseInt(payload.substr(2, 2), 16) / 2,
                          angle: parseInt(payload.substr(4, 2), 16) - 127,
                          valance_1: payload.substr(6, 2),
                          valance_2: payload.substr(8, 2)
                      };
                      break;
                  case '7071':
                      obj.type = 'controlResponse';
                      obj.messagePayload = payload;
                      break;
                  case '8010':
                      obj.type = 'parameterGetRequest';
                      obj.messagePayload = {
                          parameter: payload.substr(0) //01000005: position, 26000046: clock timer settings, 0C000006: auto modes & limits
                      };
                      break;
                  case '8011':
                      obj.type = 'parameterGetResponse';
                      obj.messagePayload = {
                          parameter: payload.substr(0, 8)
                      };
                      switch (obj.messagePayload.parameter) {
                          case '01000003': //position
                          case '01000005': //position
                              obj.messagePayload.type = 'position';
                              obj.messagePayload.position = parseInt(payload.substr(8, 2), 16) / 2;
                              obj.messagePayload.angle = parseInt(payload.substr(10, 2), 16) - 127;
                              obj.messagePayload.valance_1 = payload.substr(12, 2);
                              obj.messagePayload.valance_2 = payload.substr(14, 2);
                              break;
                          case '0C000006': //auto modes & limits
                              obj.messagePayload.type = 'autoSettings';
                              obj.messagePayload.wind = parseInt(payload.substr(8, 2), 16);
                              obj.messagePayload.rain = parseInt(payload.substr(10, 2), 16);
                              obj.messagePayload.sun = parseInt(payload.substr(12, 2), 16);
                              obj.messagePayload.dusk = parseInt(payload.substr(14, 2), 16);
                              obj.messagePayload.op = parseInt(payload.substr(16, 2), 16);
                              break;
                          case '26000046':
                              obj.messagePayload.type = 'clock';
                              obj.messagePayload.unknown = payload.substr(8);
                              break;
                          default:
                              obj.messagePayload.type = 'unknown';
                              obj.messagePayload.unknown = payload.substr(8);
                      }
                      break;
                  case '8020':
                      obj.type = 'parameterSetRequest';
                      obj.messagePayload = {
                          parameter: payload.substr(0, 8)
                      };
                      switch (obj.messagePayload.parameter) {
                          case '0B080009':
                              obj.messagePayload.type = 'clock';
                              obj.messagePayload.year = parseInt(payload.substr(8, 2), 16);
                              obj.messagePayload.month = parseInt(payload.substr(10, 2), 16);
                              obj.messagePayload.day = parseInt(payload.substr(12, 2), 16);
                              obj.messagePayload.hour = parseInt(payload.substr(14, 2), 16);
                              obj.messagePayload.minute = parseInt(payload.substr(16, 2), 16);
                              obj.messagePayload.second = parseInt(payload.substr(18, 2), 16);
                              obj.messagePayload.day_of_week = parseInt(payload.substr(20, 2), 16);
                              obj.messagePayload.unknown = payload.substr(22);
                              break;
                          default:
                              obj.messagePayload.type = 'unknown';
                              obj.messagePayload.unknown = payload.substr(8);
                      }
                      break;
                  default:
                      obj.type = 'unknown';
                      obj.messagePayload = payload;
              }
              return obj;
          }
          
          //create wms strings
          function encodeWMS(type, parameter) {
              if (!parameter) parameter = {};
              switch (type) {
                  case 'setKey':
                      if (!parameter.key) return false;
                      return '{K401' + parameter.key + '}';
                      break;
                  case 'setScanMode':
                      if (isNaN(parameter.channel) || !parameter.panId) return false;
                      return '{M#' + parameter.channel + parameter.panId.match(/../g).reverse().join("") + '}';
                      break;
                  case 'switchChannel':
                      if (isNaN(parameter.channel) || !parameter.panId) return false;
                      return '{M%' + parameter.channel + parameter.panId + '}';
                      break;
                  case 'ack':
                      if (!parameter.dst) return false;
                      return '{R21' + parameter.dst + '50AC}';
                      break;
                  case 'switchChannelRequest': //channel 17 fixed
                      if (!parameter.panId) return false;
                      return '{R04FFFFFF5060' + parameter.panId + '021100}'; // dst or FFFFFF???
                      break;
                  case 'scanRequest':
                      return '{R04FFFFFF7020' + parameter.panId + '02}';
                      break;
                  case 'scanResponse':
                      if (!parameter.panId || !parameter.dst) return false;
                      return '{R01' + parameter.dst + '7021' + parameter.panId + '02}'; //fixed to deviceType 02 for now
                      break;
                  case 'beckonRequest':
                      if (!parameter.dst) return false;
                      return '{R06' + parameter.dst + '7050}';
                      break;
                  case 'controlRequest':
                      if (!parameter.dst || isNaN(parameter.position) || isNaN(parameter.angle)) return false;
                      return '{R04' + parameter.dst + '7070' + '03'
                          + ('0' + (Math.min(Math.max(parameter.position, 0), 100) * 2).toString(16)).substr(-2).toUpperCase()
                          + ('0' + (Math.min(Math.max(parameter.angle, 0), 90) + 127).toString(16)).substr(-2).toUpperCase()
                          + 'FFFF}'; //no idea how valance works
                      break;
                  case 'parameterGetRequest':
                      if (!parameter.dst || !parameter.parameter) return false;
                      return '{R06' + parameter.dst + '8010' + parameter.parameter + '}';
                      break;
                  case 'parameterGetRequestPosition':
                      if (!parameter.dst) return false;
                      return '{R06' + parameter.dst + '8010' + '01000005}';
                      break;
                  case 'parameterGetRequestClock':
                      if (!parameter.dst) return false;
                      return '{R06' + parameter.dst + '8010' + '26000046}';
                      break;
                  case 'parameterGetRequestAutoSettings':
                      if (!parameter.dst) return false;
                      return '{R06' + parameter.dst + '8010' + '0C000006}';
                      break;
                  case 'parameterSetRequestAutoSettings':
                      if (!parameter.dst || !parameter.parameter
                          || isNaN(parameter.wind) || isNaN(parameter.rain)
                          || isNaN(parameter.sun) || isNaN(parameter.dusk))
                          return false;
                      return '{R06' + parameter.dst + '8020' + '0D000004'
                          + ('0' + Math.min(Math.max(parameter.wind, 0), 9).toString(16)).substr(-2).toUpperCase()
                          + ('0' + Math.min(Math.max(parameter.rain, 0), 9).toString(16)).substr(-2).toUpperCase()
                          + ('0' + Math.min(Math.max(parameter.sun, 0), 9).toString(16)).substr(-2).toUpperCase()
                          + ('0' + Math.min(Math.max(parameter.dusk, 0), 9).toString(16)).substr(-2).toUpperCase()
                          + (parameter.op ? '01' : '00')
                          + '}';
                      break;
                  case 'parameterSetRequestAutoAll':
                      if (!parameter.dst) return false;
                      return '{R06' + parameter.dst + '8020' + '0D040001' + (parameter.op ? '01' : '00') + '}';
                      break;
                  default: //unkown message type
                      return false;
                      break;
              }
          }
          
          //process packets
          function processWMS(obj) {
              //log(JSON.stringify(obj));
              if (obj.type !== 'message') return;
              switch (obj.payload.type) {
                  case 'switchChannelRequest':
                      log('received switchChannelRequest, switching channel to ' + obj.payload.messagePayload.channel, 'debug');
                      writeAndWaitFor(encodeWMS('switchChannel', {
                          channel: obj.payload.messagePayload.channel,
                          panId: PANID
                      }), 'a');
                      break;
                  case 'scanRequest':
                      // send scanResponse
                      log('received scanRequest, sending scanResponse', 'debug');
                      writeAndWaitFor(encodeWMS('scanResponse', {dst: obj.payload.src, panId: PANID}), 'a');
                      break;
                  case 'joinNetworkRequest':
                      log('received joinNetworkRequest:', 'debug');
                      log('KEY: ' + obj.payload.messagePayload.networkKey);
                      log('CHANNEL: ' + obj.payload.messagePayload.channel);
                      log('PANID: ' + obj.payload.messagePayload.panId);
                      writeAndWaitFor(encodeWMS('ack', {dst: obj.payload.src}), 'a');
                      break;
                  case 'scanResponse':
                      log('received scanResponse', 'debug');
                      log('TYPE: ' + obj.payload.messagePayload.deviceType, 'debug');
                      log('SNR:' + obj.payload.src, 'debug');
                      if (obj.payload.messagePayload.deviceType === '20') {
                          createState(this.namespace + '.Raffstore.' + obj.payload.src + '.position', 0, false, {
                              type: 'number',
                              min: 0,
                              max: 100,
                              unit: '%'
                          });
                          createState(this.namespace + '.Raffstore.' + obj.payload.src + '.angle', 0, false, {
                              type: 'number',
                              min: 0,
                              max: 90,
                              unit: '°'
                          }, function () {
                              if (knownDevices[obj.payload.src]) return;
                              knownDevices[obj.payload.src] = true;
                              var src = obj.payload.src;
                              log('device type 20 found: ' + src);
                              var deviceId = 'javascript.' + instance + '.' + this.namespace + '.Raffstore.' + src;
                              on({id: deviceId + '.position', change: 'ne', ack: false}, function (obj) {
                                  //send parameter
                                  writeAndWaitFor(
                                      encodeWMS('controlRequest', {
                                          dst: src,
                                          position: obj.state.val,
                                          angle: getState(deviceId + '.angle').val
                                      }),
                                      'r' + src + '7071'
                                  ).then(() => {
                                      var lastValue = getState(deviceId + '.position').val;
                                      writeAndWaitFor(encodeWMS('parameterGetRequestPosition', {dst: src}), 'a');
                                      var timer = setInterval(function () {
                                          //get parameter periodicaly until no change is detected
                                          log(getState(deviceId + '.position').val + ':' + lastValue, 'debug')
                                          if (getState(deviceId + '.position').val === lastValue)
                                              clearInterval(timer);
                                          lastValue = getState(deviceId + '.position').val;
                                          writeAndWaitFor(encodeWMS('parameterGetRequestPosition', {dst: src}), 'a');
                                      },  3500);
                                      //setState(deviceId + '.position', getState(deviceId + '.position').val, true);
                                  });
                              });
                              on({id: deviceId + '.angle', change: 'ne', ack: false}, function (obj) {
                                  //send parameter
                                  writeAndWaitFor(encodeWMS('controlRequest', {
                                          dst: src,
                                          position: getState(deviceId + '.position').val,
                                          angle: obj.state.val
                                      }),
                                      'r' + src + '7071'
                                  ).then(() => {
                                      var lastValue = getState(deviceId + '.angle').val;
                                      writeAndWaitFor(encodeWMS('parameterGetRequestPosition', {dst: src}), 'a');
                                      var timer = setInterval(function () {
                                          //get parameter periodicaly until no change is detected
                                          log(getState(deviceId + '.angle').val + ':' + lastValue, 'debug')
                                          if (getState(deviceId + '.angle').val === lastValue)
                                              clearInterval(timer);
                                          lastValue = getState(deviceId + '.angle').val;
                                          writeAndWaitFor(encodeWMS('parameterGetRequestPosition', {dst: src}), 'a');
                                      },  3500);
                                      //setState(deviceId + '.angle', getState(deviceId + '.angle').val, true);
                                  });
                              });
                              setTimeout(function () {
                                  //get parameter once
                                  writeAndWaitFor(encodeWMS('parameterGetRequestPosition', {dst: src}), 'a');
                              }, 5000 + Math.random() * 5000);
                              setInterval(function () {
                                  //get parameter periodicaly
                                  writeAndWaitFor(encodeWMS('parameterGetRequestPosition', {dst: src}), 'a');
                              }, positionInterval * 1000 + Math.random() * 5000);
                          });
                      }
                      break;
                  case 'parameterGetResponse':
                      log('received parameterGetResponse', 'debug');
                      switch (obj.payload.messagePayload.type) {
                          case 'position':
                              setStateDelayed(this.namespace + '.Raffstore.' + obj.payload.src + '.position', obj.payload.messagePayload.position, true, 100, true);
                              setStateDelayed(this.namespace + '.Raffstore.' + obj.payload.src + '.angle', obj.payload.messagePayload.angle, true, 100, true);
                          default:
                              break;
                      }
                      break;
                  case 'weatherBroadcast':
                      log('received weatherBroadcast', 'debug');
                      createState(this.namespace + '.Wetter.' + obj.payload.src + '.temp', 0, false, {
                          type: 'number',
                          unit: '°C',
                          write: false
                      }, function () {
                          setStateDelayed(this.namespace + '.Wetter.' + obj.payload.src + '.temp', obj.payload.messagePayload.temp, true, 100, true);
                      });
                      createState(this.namespace + '.Wetter.' + obj.payload.src + '.wind', 0, false, {
                          type: 'number',
                          min: 0,
                          unit: 'm/s',
                          write: false
                      }, function () {
                          setStateDelayed(this.namespace + '.Wetter.' + obj.payload.src + '.wind', obj.payload.messagePayload.wind, true, 100, true);
                      });
                      createState(this.namespace + '.Wetter.' + obj.payload.src + '.lux', 0, false, {
                          type: 'number',
                          min: 0,
                          unit: 'lux',
                          write: false
                      }, function () {
                          setStateDelayed(this.namespace + '.Wetter.' + obj.payload.src + '.lux', obj.payload.messagePayload.lumen, true, 100, true);
                      });
                      createState(this.namespace + '.Wetter.' + obj.payload.src + '.rain', false, false, {
                          type: 'boolean',
                          write: false
                      }, function () {
                          setStateDelayed(this.namespace + '.Wetter.' + obj.payload.src + '.rain', obj.payload.messagePayload.rain, true, 100, true);
                      });
                      break;
                  default:
                      break;
              }
          }
          
          //scan for devices
          function wmsScan() {
              writeAndWaitFor(encodeWMS('scanRequest', {panId: PANID}), 'a');
          }
          
          
          1 Antwort Letzte Antwort
          0
          • R Offline
            R Offline
            radiorichter
            schrieb am zuletzt editiert von
            #69

            komme immernoch nicht weiter… :cry:

            also reichweite sollte passen, der Stick ist nun 10 cm vorm dem Aktor... PANID, CHANNEL und KEY habe ich nun nochmal eingelernt, kam genau das gleiche raus.

            Das einzige was mich stutzig macht ist, dass ich den Stick nicht wirklich in der Fernbedienung speichern kann.

            Bei mir leuchten sozusagen gar keine der Produkttasten (wie in der Anleitung beschrieben) also ob die Fernbedienung dann irgendwas abspeichert weiß ich nicht...Wenn ich einen Aktor nehme der schon zum normalen Netzwerk gehört, klappt das mit den Produkttasten wunderbar.

            3364_unbenannt.jpg

            1 Antwort Letzte Antwort
            0
            • P Offline
              P Offline
              Pman
              schrieb am zuletzt editiert von
              #70

              Schalt mal auf debug und poste nochmal den Start des Adapters.

              1 Antwort Letzte Antwort
              0
              • R Offline
                R Offline
                radiorichter
                schrieb am zuletzt editiert von
                #71

                hey pman,

                hier mal alles was bei mir so passiert:

                also wms stick:

                3364_warema_1.jpg

                danach in der FB ein neues gerät suchen:

                3364_warema_22.jpg

                panid, channel und key eintragen und skript neustarten:

                3364_warema_33.jpg

                aber danach passiert dann nichts mehr…

                bekomme auch immer den selben key raus, also glaub ich schon dass ich im richtigen netz bin, sofern die FB ja die anderen Rolläden steuern kann.

                1 Antwort Letzte Antwort
                0
                • P Offline
                  P Offline
                  Pman
                  schrieb am zuletzt editiert von
                  #72

                  Diesen Debug-Knoopf direkt dort kannte ich noch gar nicht, weiß auch nicht was der genau macht. Was ich meinte ist: Im ioBroker Admin und Instanzen den ganzen Javascript-Adapter (bzw. die Instanz) auf Debug-Ausgabe schalten. Dazu musst du oben noch den "Expertenmodus" aktivieren.

                  Es sollte dann idealerweise wie unten aussehen, du kannst ja mal vergleichen wo es stoppt oder anders aussieht.
                  ` > 17:11:51.320 [info] javascript.1 Stop script script.js.Devices.WMS

                  17:11:51.321 [warn] javascript.1 script.js.Devices.WMS: closing open serial ports

                  17:11:53.348 [info] javascript.1 Start javascript script.js.Devices.WMS

                  17:11:53.348 [info] javascript.1 script.js.Devices.WMS: registered 0 subscriptions and 0 schedules

                  17:11:53.368 [info] javascript.1 script.js.Devices.WMS: port opened

                  17:11:53.373 [debug] javascript.1 script.js.Devices.WMS: sending {G}

                  17:11:53.416 [debug] javascript.1 script.js.Devices.WMS: received message: gWMS USB-Stick

                  17:11:53.416 [debug] javascript.1 script.js.Devices.WMS: {"type":"stickType","payload":{"name":"WMS USB-Stick"}}

                  17:11:53.416 [debug] javascript.1 script.js.Devices.WMS: received expected answer: gWMS USB-Stick

                  17:11:53.417 [debug] javascript.1 script.js.Devices.WMS: sending {V}

                  17:11:53.426 [debug] javascript.1 script.js.Devices.WMS: received message: v37605100

                  17:11:53.427 [debug] javascript.1 script.js.Devices.WMS: {"type":"stickVersion","payload":{"version":"37605100"}}

                  17:11:53.427 [debug] javascript.1 script.js.Devices.WMS: received expected answer: v

                  17:11:53.427 [info] javascript.1 script.js.Devices.WMS: Stick Version: v37605100

                  17:11:53.427 [debug] javascript.1 script.js.Devices.WMS: sending {K<key>}

                  17:11:53.448 [debug] javascript.1 script.js.Devices.WMS: received message: a

                  17:11:53.448 [debug] javascript.1 script.js.Devices.WMS: {"type":"ack"}

                  17:11:53.448 [debug] javascript.1 script.js.Devices.WMS: received expected answer: a

                  17:11:53.449 [debug] javascript.1 script.js.Devices.WMS: sending {M%<channel><panid>}

                  17:11:53.462 [debug] javascript.1 script.js.Devices.WMS: received expected answer: a

                  17:11:58.464 [debug] javascript.1 script.js.Devices.WMS: sending {R04FFFFFF7020<panid>02}

                  17:11:58.474 [debug] javascript.1 script.js.Devices.WMS: received expected answer: a

                  17:11:58.566 [debug] javascript.1 script.js.Devices.WMS: received message: r6997057021<panid>208FFF03000000000000000000000201010000000000000000

                  17:11:58.566 [debug] javascript.1 script.js.Devices.WMS: {"type":"message","payload":{"src":"699705","type":"scanResponse","messagePayload":{"panId":"<panid>","deviceType":"20","unknown":"8FFF03000000000000000000000201010000000000000000"}}}

                  17:11:58.567 [debug] javascript.1 script.js.Devices.WMS: received scanResponse

                  17:11:58.567 [debug] javascript.1 script.js.Devices.WMS: TYPE: 20

                  17:11:58.567 [debug] javascript.1 script.js.Devices.WMS: SNR:699705</panid></panid></panid></panid></channel></key> `

                  1 Antwort Letzte Antwort
                  -1
                  • R Offline
                    R Offline
                    radiorichter
                    schrieb am zuletzt editiert von
                    #73

                    puh… im log wird nach wie vor nicht mehr angezeigt... bekomme keine debug ausgabe, ich denke mein skript kommt gar nicht bis zu dem punkt...

                    punkt 6 sozusagen bei dir, soweit komme ich nicht:

                    17:11:53.373 [debug] javascript.1 script.js.Devices.WMS: sending {G}

                    hier der log:

                    3364_111.jpg
                    wenn ich zudem die Hilfe ausgabe aktiviere kommt das hier raus:

                    3364_112.jpg

                    1 Antwort Letzte Antwort
                    0
                    • P Offline
                      P Offline
                      Pman
                      schrieb am zuletzt editiert von
                      #74

                      Die Stick-Version steht ja in deinem Log und vorher müssten schon einige DEBUG Meldungen kommen!

                      z.B. :
                      > [debug] javascript.1 script.js.Devices.WMS: sending {V}
                      Ich glaube du hast noch immer nicht den Javascript-Adapter auf Debug gestellt.

                      1 Antwort Letzte Antwort
                      0
                      • R Offline
                        R Offline
                        radiorichter
                        schrieb am zuletzt editiert von
                        #75

                        :roll: okay wieder was gelernt mit der debug ausgabe… habs natürlich falsch gemacht....

                        nun hier das richtige Log. Hab alles verglichen aber keine Unterschiede feststellen können...

                        Heist ja nun das er Geräte findet, aber keine Datenpunkte anlegt... kann das eine Einstellung im Javascript-Adapter sein?

                        ` > javascript.0 2018-10-29 06:42:43.939 debug script.js.common.warema_versuch3: SNR:F33605

                        javascript.0 2018-10-29 06:42:43.939 debug script.js.common.warema_versuch3: TYPE: 21

                        javascript.0 2018-10-29 06:42:43.939 debug script.js.common.warema_versuch3: received scanResponse

                        javascript.0 2018-10-29 06:42:43.939 debug script.js.common.warema_versuch3: {"type":"message","payload":{"src":"F33605","type":"scanResponse","messagePayload":{"panId":"1529","deviceType":"21","unknown":"8FFF03000000000000000000020300010000000000000000'}}}

                        javascript.0 2018-10-29 06:42:43.939 debug script.js.common.warema_versuch3: received message: rF3360570211529218FFF03000000000000000000020300010000000000000000

                        javascript.0 2018-10-29 06:42:43.938 debug script.js.common.warema_versuch3: SNR:463705

                        javascript.0 2018-10-29 06:42:43.938 debug script.js.common.warema_versuch3: TYPE: 21

                        javascript.0 2018-10-29 06:42:43.938 debug script.js.common.warema_versuch3: received scanResponse

                        javascript.0 2018-10-29 06:42:43.938 debug script.js.common.warema_versuch3: {"type":"message","payload":{"src":"463705","type":"scanResponse","messagePayload":{"panId":"1529","deviceType":"21","unknown":"8FFF03000000000000000000020300010000000000000000'}}}

                        javascript.0 2018-10-29 06:42:43.935 debug script.js.common.warema_versuch3: received message: r46370570211529218FFF03000000000000000000020300010000000000000000

                        javascript.0 2018-10-29 06:42:43.806 debug script.js.common.warema_versuch3: received expected answer: a

                        javascript.0 2018-10-29 06:42:43.792 debug script.js.common.warema_versuch3: sending {R04FFFFFF7020152902}

                        javascript.0 2018-10-29 06:42:38.790 debug script.js.common.warema_versuch3: received expected answer: a

                        javascript.0 2018-10-29 06:42:38.767 debug script.js.common.warema_versuch3: sending {M%171529}

                        javascript.0 2018-10-29 06:42:38.767 debug script.js.common.warema_versuch3: received expected answer: a

                        javascript.0 2018-10-29 06:42:38.767 debug script.js.common.warema_versuch3: {"type":"ack"}

                        javascript.0 2018-10-29 06:42:38.766 debug script.js.common.warema_versuch3: received message: a

                        javascript.0 2018-10-29 06:42:38.737 debug script.js.common.warema_versuch3: sending {%%%%%%%%%%449D8FFE6BE301ED27377FE9F0}

                        javascript.0 2018-10-29 06:42:38.736 info script.js.common.warema_versuch3: Stick Version: v37605107

                        javascript.0 2018-10-29 06:42:38.736 debug script.js.common.warema_versuch3: received expected answer: v

                        javascript.0 2018-10-29 06:42:38.736 debug script.js.common.warema_versuch3: {"type":"stickVersion","payload":{"version":"37605107"}}

                        javascript.0 2018-10-29 06:42:38.735 debug script.js.common.warema_versuch3: received message: v37605107

                        javascript.0 2018-10-29 06:42:38.710 debug script.js.common.warema_versuch3: sending {V}

                        javascript.0 2018-10-29 06:42:38.709 debug script.js.common.warema_versuch3: received expected answer: gWMS USB-Stick

                        javascript.0 2018-10-29 06:42:38.709 debug script.js.common.warema_versuch3: {"type":"stickType","payload":{"name":"WMS USB-Stick"}}

                        javascript.0 2018-10-29 06:42:38.708 debug script.js.common.warema_versuch3: received message: gWMS USB-Stick

                        javascript.0 2018-10-29 06:42:38.689 debug script.js.common.warema_versuch3: sending {G}

                        javascript.0 2018-10-29 06:42:38.687 info script.js.common.warema_versuch3: port opened

                        javascript.0 2018-10-29 06:42:38.675 info script.js.common.warema_versuch3: registered 0 subscriptions and 0 schedules

                        javascript.0 2018-10-29 06:42:38.674 info Start javascript script.js.common.warema_versuch3

                        javascript.0 2018-10-29 06:42:34.944 info Stop script script.js.common.warema_versuch3 `

                        1 Antwort Letzte Antwort
                        0
                        • P Offline
                          P Offline
                          Pman
                          schrieb am zuletzt editiert von
                          #76

                          Super das hilft jetzt weiter. Bei dir Antworten die Zwischenstecker mit Device Type 21, bisher waren die nur unter 20 bekannt, daher kann das Skript nichts mit 21 anfangen.

                          Hoffen wir mal, dass es nur eine neue Version ist, aber gleich zu steuern. Hast du Sonderfunktionen, wie z.B. präzise Winkelsteuerung (habe das Marketing-Wort davon grad nicht parat) ?

                          Ändere mal in Zeile 456:

                          if (obj.payload.messagePayload.deviceType === '20') {
                          

                          in

                          if (obj.payload.messagePayload.deviceType === '21') {
                          
                          1 Antwort Letzte Antwort
                          0
                          • R Offline
                            R Offline
                            radiorichter
                            schrieb am zuletzt editiert von
                            #77

                            alles klar, mach ich dann gleich wenn ich später wieder zuhause bin, ich werde berichten :D

                            ich habe diese Aktoren für die Rollos und eben das Webcontrol-Kästchen.

                            Laut Warema Homepage:

                            3364_22.png
                            3364_23.png

                            1 Antwort Letzte Antwort
                            0
                            • R Offline
                              R Offline
                              radiorichter
                              schrieb am zuletzt editiert von
                              #78

                              nun es läuft es :D

                              habe aber gestern keine Zeit mehr gehabt damit ein wenig rumzuspielen. ich melde mich dann vermutlich am Wochenende mal wieder ;)

                              Pman, vielen Dank für deine Unterstüzung und Geduld ;)

                              1 Antwort Letzte Antwort
                              0
                              • R Offline
                                R Offline
                                radiorichter
                                schrieb am zuletzt editiert von
                                #79

                                so, nun konnte ich mal ein wenig rumspielen, bei mir werden zwar 12 Datenpunkte angelegt, aber iwie fahren dann immer alle Rollos… oder auch nur 10 von 12 oder wie auch immer. wirklich schlau werd ich draus noch nicht. jetzt würde ich gerne die Aktoren einzeln mal ansteuern und schauen was da dann passiert.

                                wie kann ich den im script einen einzelen Befehl schicken? Die Seriennummer der aktoren hätte ich ja.

                                ` > Zwischestecker auf Position fahren:

                                "{R06AAAAAA707003PPWWV1V2}"

                                AAAAAA = SNR (Seriennummer) vom abgefragten Zwischenstecker in HEX.

                                7070 = Nachrichten Typ hier Fahrbefehl

                                PP = Position in % * 2 (HEX) muss daher durch 2 geteilt werden

                                WW = Winkel +127 in HEX. 127 entspricht daher 0°.

                                V1 = Position Volant 1. FF entspricht nicht vorhanden.

                                V2 = Position Volant 2. FF entspricht nicht vorhanden. `

                                Was muss ich im Javascript eingeben, dass der Befehl geschickt wird?

                                Danke ;)

                                1 Antwort Letzte Antwort
                                0
                                • P Offline
                                  P Offline
                                  Pman
                                  schrieb am zuletzt editiert von
                                  #80

                                  Ändere mal in Zeile 384 "R04" in "R06". Kann sein, dass da ein Fehler im Skript ist. Es war glaube ich noch nicht ganz klar, was genau R04 macht.

                                  R 1 Antwort Letzte Antwort
                                  0
                                  • R Offline
                                    R Offline
                                    radiorichter
                                    schrieb am zuletzt editiert von
                                    #81

                                    und es läuft :D vielen Dank Pman :D

                                    ich werd mal die wochen noch ein wenig damit rumspielen und dann mal meine Erfahrung berichten ;)

                                    wäre es möglich, dann diesen Befehl für alle Rollos mit in das Script bzw in die abgelegten Objekte mit einzufügen?

                                    1 Antwort Letzte Antwort
                                    0
                                    • L Offline
                                      L Offline
                                      LaBamba
                                      schrieb am zuletzt editiert von
                                      #82

                                      Hallo,

                                      ich möchte gerne das WMS in meinen neuen Haus integrieren und mit dem IO-Broker nutzen.

                                      Für die Raffstores möchte ich die WMS Unterputzaktoren Aktoren mit dem WMS Webkontroll einsetzen. Diese werden in der nächsten Woche bestellen.

                                      Grundsätzlich wurde hier im Forum gezeigt, dass es funktionieren kann mit dem IO-Broker und einer Sprachsteuerung das System zu steuern.

                                      Eine Inbetriebnahme ist laut den Beschreibungen mit einer Fernsteuerung möglich.

                                      Mit der Software WMS Studio pro sollte mittlerweile auch eine Inbetriebnahme möglich sein.

                                      https://www.warema.de/Produkte/Steuerun … ftware.php

                                      Ist der Handsender dann überhaupt notwendig? Bzw. braucht man einen bestimmten Handsender?

                                      Zudem würde mich interessieren ob es möglich ist die Daten der Wetterstation auch auszulesen und im IO-Broker zu nutzen?

                                      Welchen Javascript Adapter habt Ihr im IO-Broker dafür genutzt? Ist dies Javascript to file?

                                      Ich wäre sehr dankbar wenn jemand eine sehr genaue Anleitung erstellen könnte wie ich dies genau installieren muss.

                                      Pman hat hier ja schon einmal angefangen. Besten Dank dafür!

                                      Leider bin ich mit dem Umgang von Scripten unerfahren.

                                      Besten Dank im voraus!

                                      1 Antwort Letzte Antwort
                                      0
                                      • R Offline
                                        R Offline
                                        Roger2k
                                        schrieb am zuletzt editiert von
                                        #83

                                        Hallo,

                                        ich nutze auch WMS für Rollläden und habe dafür den WMS Stick und die WMS Zentrale. Ich habe bisher alles mit dem Warema Studio Pro eingestellt und habe auch meine Projekt-Datei.

                                        Hat jemand rausgefunden wie man die benötigten Daten aus der Datei auslesen kann?

                                        1 Antwort Letzte Antwort
                                        0
                                        • R Offline
                                          R Offline
                                          radiorichter
                                          schrieb am zuletzt editiert von radiorichter
                                          #84

                                          Hallo Beisammen,

                                          @LaBamba du brauchst hierfür den normalen Javascript adapter.

                                          @Roger2k Ob du den Key aus der Software heraus bekommst weiß ich nicht. mit der Fernbedienung geht es auf jeden Fall wie in der Anleitung beschrieben. wie weit bist du denn schon gekommen?

                                          1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

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

                                          788

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe