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. Leckagesensor SYR Safe-T Connect - how to get it smart

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Leckagesensor SYR Safe-T Connect - how to get it smart

Scheduled Pinned Locked Moved ioBroker Allgemein
31 Posts 8 Posters 7.4k Views 10 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.
  • D dmq

    @knxbroker bei mir ging es leider nicht weiter. Ich stehe aber auch kurz davor, mir die Kombination einzubauen. Mir wäre allerdings wichtig, zu hören, ob es über einen längeren Zeitraum auch "robust" funktioniert, da die Installation schon aufwändiger ist (habe bisher nicht den SYR Universalflansch in der Leitung). Cool wäre halt, wenn dann alles noch gut läuft, wenn das Backend des Herstellers nicht mehr zur Verfügung steht.

    K Offline
    K Offline
    KNXbroker
    wrote on last edited by KNXbroker
    #11

    Ich bin gerade dran eine Lösung mittels NodeRed zu realisieren, allerdings im ersten Schritt parallel zu den Cloud Abfragen. Solange die Cloud aktiv ist, werde ich dies wahrscheinlich auch so belassen. Läuft bisher ganz gut, aber mir fehlen noch ein paar Kommandos bis ich mein Ergebnis veröffentlichen werde.
    Bin vor einiger Zeit zu Home Assistant gewechselt und werde dort meine Lösung auch präsentieren, sobald ich fertig bin. Den Link werde ich natürlich hier posten.

    D 2 Replies Last reply
    0
    • K KNXbroker

      Ich bin gerade dran eine Lösung mittels NodeRed zu realisieren, allerdings im ersten Schritt parallel zu den Cloud Abfragen. Solange die Cloud aktiv ist, werde ich dies wahrscheinlich auch so belassen. Läuft bisher ganz gut, aber mir fehlen noch ein paar Kommandos bis ich mein Ergebnis veröffentlichen werde.
      Bin vor einiger Zeit zu Home Assistant gewechselt und werde dort meine Lösung auch präsentieren, sobald ich fertig bin. Den Link werde ich natürlich hier posten.

      D Offline
      D Offline
      dmq
      wrote on last edited by
      #12

      @knxbroker das klingt doch gut - wäre ich natürlich auch sehr interessiert dran (gerade an dem NodeRed-Teil) - danke schon einmal vorab.

      1 Reply Last reply
      0
      • K KNXbroker

        Ich bin gerade dran eine Lösung mittels NodeRed zu realisieren, allerdings im ersten Schritt parallel zu den Cloud Abfragen. Solange die Cloud aktiv ist, werde ich dies wahrscheinlich auch so belassen. Läuft bisher ganz gut, aber mir fehlen noch ein paar Kommandos bis ich mein Ergebnis veröffentlichen werde.
        Bin vor einiger Zeit zu Home Assistant gewechselt und werde dort meine Lösung auch präsentieren, sobald ich fertig bin. Den Link werde ich natürlich hier posten.

        D Offline
        D Offline
        dmq
        wrote on last edited by
        #13

        @knxbroker bist Du ggf. schon weitergekommen? Danke vorab.

        K 2 Replies Last reply
        0
        • D dmq

          @knxbroker bist Du ggf. schon weitergekommen? Danke vorab.

          K Offline
          K Offline
          KNXbroker
          wrote on last edited by
          #14

          @dmq nicht wirklich, das Thema hat im Sommer leider keine Prio...

          Falls von Interesse, hier schon mal Node Red Code zum Auslesen der Webserver Requests.
          Die Einzelabfrage (komplett lokal) gestaltet sich als schwierig, da das interne LAN Modul immer dazwischen quatscht. Ich kann damit vorerst so leben, sollte es eines Tages die Cloud nicht mehr geben, dann werde ich das LAN Modul intern abklemmen.

          1a0b3e63-f698-458b-b780-32e34175f48d-image.png

          PS: Den Home Assistant spezifischen Teil habe ich in diesem Forum mal weggelassen.

          [{"id":"c346de70e5a46098","type":"serial in","z":"7d9d3cbb2597cd82","name":"","serial":"07c6650d2ff49b41","x":190,"y":2340,"wires":[["9d3388838e7f0cb7","94a5d32d473eb13d","d2190ca65994c11d","c499ae1e1b0a14b5","b09321ac134f816a","4ce39c90acf1d1d5"]]},{"id":"7c813e64bee7583b","type":"function","z":"7d9d3cbb2597cd82","name":"getBAR Match","func":"// Get water pressure [bar]\nconst pattern = new RegExp(\"(?<=getbar\\\\r)(\\\\d*)\", \"i\");\nvar found = msg.payload.match(pattern);\nif (Array.isArray(found)) {\n    msg.payload = Math.round(found[0].replace(',', '.') / 100) / 10;\n    return msg;\n} else {\n    return null;\n}","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":600,"y":2640,"wires":[[]]},{"id":"0e3a4af116c977f1","type":"function","z":"7d9d3cbb2597cd82","name":"getVOL Match","func":"// Get total water volume [L]\nconst pattern = new RegExp(\"(?<=Vol\\\\[L\\\\])(\\\\d*)\", \"i\");\nvar found = msg.payload.match(pattern);\nif (Array.isArray(found)) {\n    msg.payload = found[0].replace(',', '.');\n    return msg;\n} else {\n    return null;\n}","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":600,"y":2700,"wires":[[]]},{"id":"9d3388838e7f0cb7","type":"delay","z":"7d9d3cbb2597cd82","name":"","pauseType":"rate","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"minute","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":true,"allowrate":false,"outputs":1,"x":340,"y":2640,"wires":[["7c813e64bee7583b","0e3a4af116c977f1","1115f0f138466e0c","f424d047f8af2bea"]]},{"id":"1115f0f138466e0c","type":"function","z":"7d9d3cbb2597cd82","name":"getBAR Match","func":"// Get water pressure [Bar]\nconst pattern = new RegExp(\"(?<=getBat\\\\r)(\\\\d*,\\\\d*)\", \"i\");\nvar found = msg.payload.match(pattern);\nif (Array.isArray(found)) {\n    msg.payload = Math.round(found[0].replace(',', '.') * 10) / 10;\n    return msg;\n} else {\n    return null;\n}","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":600,"y":2760,"wires":[[]]},{"id":"f424d047f8af2bea","type":"function","z":"7d9d3cbb2597cd82","name":"getCEL Match","func":"// Get water temperature [°C]\nconst pattern = new RegExp(\"(?<=getCel\\\\r)(\\\\d*)\", \"i\");\nvar found = msg.payload.match(pattern);\nif (Array.isArray(found)) {\n    msg.payload = found[0].replace(',', '.') / 10;\n    return msg;\n} else {\n    return null;\n}","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":600,"y":2820,"wires":[[]]},{"id":"94a5d32d473eb13d","type":"function","z":"7d9d3cbb2597cd82","name":"getAB Match","func":"// Get valve status [1= Open / 2 = Closed]\nconst pattern = new RegExp(\"(?<=getAB\\\\r)(\\\\d*)\", \"i\");\nvar found = msg.payload.match(pattern);\nif (Array.isArray(found)) {\n    msg.payload = Math.abs(found[0] - 2); // HA specific adaption\n    return msg;\n} else {\n    return null;\n}","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":590,"y":2460,"wires":[[]]},{"id":"d2190ca65994c11d","type":"function","z":"7d9d3cbb2597cd82","name":"getALA Match","func":"// Get alarms\nconst pattern = new RegExp(\"(?<=getALA\\\\r)(.*)\", \"i\");\nvar found = msg.payload.match(pattern);\nif (Array.isArray(found)) {\n    var failure;\n    var issue = true;\n    switch (found[0]) {\n        case \"A1\":\n            failure = \"Absperrung defekt\"\n            break;\n        case \"A2\":\n            failure = \"Kein Turbinen-Signal\"\n            break;\n        case \"A3\":\n            failure = \"Anwesenheits-Leckage\"\n            break;\n        case \"A4\":\n            failure = \"Durchfluss-Leckage\"\n            break;\n        case \"A5\":\n            failure = \"Abwesenheits-Leckage\"\n            break;\n        case \"A6\":\n            failure = \"Bodensensor-Leckage\"\n            break;\n        case \"A7\":\n            failure = \"Leckage an Eingang IN2\"\n            break;\n        case \"FF\":\n            failure = \"Keine\";\n            issue = false;\n            break;\n        default:\n            failure = \"Unbekannte Störung \" + found;\n    }\n    msg.payload = failure;\n    msg.issue = issue;\n    return msg;\n} else {\n    return null;\n}","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":600,"y":2520,"wires":[[]]},{"id":"c499ae1e1b0a14b5","type":"function","z":"7d9d3cbb2597cd82","name":"getTMP Match","func":"// Get temporary inactivity time [s]\nconst pattern = new RegExp(\"(?<=getTMP\\\\r)(\\\\d*)\", \"i\");\nvar found = msg.payload.match(pattern);\nif (Array.isArray(found)) {\n    msg.payload = found[0];\n    return msg;\n} else {\n    return null;\n}","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":600,"y":2400,"wires":[[]]},{"id":"b09321ac134f816a","type":"function","z":"7d9d3cbb2597cd82","name":"getUL Match","func":"// Get presense\nconst pattern = new RegExp(\"(?<=getUL\\\\r)(\\\\d*)\", \"i\");\nvar found = msg.payload.match(pattern);\nif (Array.isArray(found)) {\n    if (found[0] == 0) {\n        msg.payload = true;\n        return msg;\n    }\n    else {\n        msg.payload = false;\n        return msg;\n    }\n} else {\n    return null;\n}","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":590,"y":2340,"wires":[[]]},{"id":"4ce39c90acf1d1d5","type":"function","z":"7d9d3cbb2597cd82","name":"getLE Match","func":"// Get current water limit [L]\nconst pattern = new RegExp(\"(?<=getLE\\\\r)(\\\\d*)\", \"i\");\nvar found = msg.payload.match(pattern);\nif (Array.isArray(found)) {\n    msg.payload = found[0]*50;\n    return msg;\n} else {\n    return null;\n}","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":590,"y":2580,"wires":[[]]},{"id":"d9ef234728f55896","type":"comment","z":"7d9d3cbb2597cd82","name":"Anwesendheit","info":"","x":850,"y":2340,"wires":[]},{"id":"8c0b98a0743a69a4","type":"comment","z":"7d9d3cbb2597cd82","name":"Temporäre Inaktivität","info":"","x":870,"y":2400,"wires":[]},{"id":"f8dd9b2a4b0d85fb","type":"comment","z":"7d9d3cbb2597cd82","name":"Auslesen von WebServer Requests","info":"","x":260,"y":2260,"wires":[]},{"id":"edce790ca722ef59","type":"comment","z":"7d9d3cbb2597cd82","name":"Ventilstatus","info":"","x":850,"y":2460,"wires":[]},{"id":"7e4e1d3dbd0ef890","type":"comment","z":"7d9d3cbb2597cd82","name":"Alarm","info":"","x":830,"y":2520,"wires":[]},{"id":"ef3777ab8741ac8f","type":"comment","z":"7d9d3cbb2597cd82","name":"Wasserlimit","info":"","x":850,"y":2580,"wires":[]},{"id":"8369c6d71aa2f63a","type":"comment","z":"7d9d3cbb2597cd82","name":"Wasserdruck","info":"","x":850,"y":2640,"wires":[]},{"id":"242b89811638941f","type":"comment","z":"7d9d3cbb2597cd82","name":"Volumen Gesamt","info":"","x":860,"y":2700,"wires":[]},{"id":"6cedcffe51a141e9","type":"comment","z":"7d9d3cbb2597cd82","name":"Wasserdruck","info":"","x":850,"y":2760,"wires":[]},{"id":"836ac7537e1cce37","type":"comment","z":"7d9d3cbb2597cd82","name":"Wassertemperatur","info":"","x":870,"y":2820,"wires":[]},{"id":"07c6650d2ff49b41","type":"serial-port","serialport":"/dev/ttyUSB1","serialbaud":"19200","databits":"8","parity":"none","stopbits":"1","waitfor":"","dtr":"none","rts":"none","cts":"none","dsr":"none","newline":"2000","bin":"false","out":"interbyte","addchar":"","responsetimeout":"300"}]
          
          1 Reply Last reply
          0
          • D dmq

            @knxbroker bist Du ggf. schon weitergekommen? Danke vorab.

            K Offline
            K Offline
            KNXbroker
            wrote on last edited by
            #15

            @dmq Und hier Node Red Code zur Steuerung, wieder ohne Home Assistant Knoten.

            ToDo: Bestätigung von Alarm Meldungen!

            Steuerung ist ebenfalls vom WebServer abhängig und somit nicht lokal. Der Code wartet auf die WebServer Abfrage und schickt danacht Befehle los, um eine Kollision zu vermeiden.

            0e54d18b-e87f-4b9d-8447-872143a2be72-image.png

            [{"id":"d2dddf837a5f48b7","type":"function","z":"7d9d3cbb2597cd82","name":"Wait for msg.release","func":"const messages = context.get('messages') || [];\n\nif(msg.release) {\n    context.set('messages', null);\n    node.status({text: `Sent: ${messages.length}`});\n    return [messages];\n}\n\nmessages.push(msg);\ncontext.set('messages', messages);\nnode.status({text: `Holding: ${messages.length}`});","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":720,"y":2580,"wires":[["9f5e2b7a9f1ee9da"]]},{"id":"850c0728ec1a735c","type":"change","z":"7d9d3cbb2597cd82","name":"","rules":[{"t":"set","p":"release","pt":"msg","to":"true","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":410,"y":2440,"wires":[["d2dddf837a5f48b7"]]},{"id":"2841702637ee5a33","type":"function","z":"7d9d3cbb2597cd82","name":"setAB2","func":"// Close the vavle\nvar cmdstart = Buffer.from(\"0d0a1b313a\", \"hex\");\nvar cmdmiddle = Buffer.from(\"setAB2\");\nvar cmdend = Buffer.from(\"0d0a\", \"hex\"); // cR + LF\nmsg.payload = Buffer.concat([cmdstart, cmdmiddle, cmdend]);\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":400,"y":2520,"wires":[["d2dddf837a5f48b7"]]},{"id":"7ec7b7f3b2be5f8b","type":"function","z":"7d9d3cbb2597cd82","name":"setAB1","func":"// Open the vavle\nvar cmdstart = Buffer.from(\"0d0a1b313a\", \"hex\");\nvar cmdmiddle = Buffer.from(\"setAB1\");\nvar cmdend = Buffer.from(\"0d0a\", \"hex\"); // CR + LF\nmsg.payload = Buffer.concat([cmdstart, cmdmiddle, cmdend]);\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":400,"y":2580,"wires":[["d2dddf837a5f48b7"]]},{"id":"3bc209160cce93a1","type":"serial in","z":"7d9d3cbb2597cd82","name":"","serial":"07c6650d2ff49b41","x":170,"y":2440,"wires":[["850c0728ec1a735c"]]},{"id":"41ad879c02123e89","type":"function","z":"7d9d3cbb2597cd82","name":"setTmp0","func":"// Set temporary inactivity time to 0s\nvar cmdstart = Buffer.from(\"0d0a1b313a\", \"hex\");\nvar cmdmiddle = Buffer.from(\"setTMP0\");\nvar cmdend = Buffer.from(\"0d\", \"hex\");\nmsg.payload = Buffer.concat([cmdstart, cmdmiddle, cmdend]);\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":400,"y":2740,"wires":[["d2dddf837a5f48b7"]]},{"id":"fce9cff1374cce55","type":"function","z":"7d9d3cbb2597cd82","name":"setTmp14400","func":"// Set temporary inactivity time to 4h\nvar cmdstart = Buffer.from(\"0d0a1b313a\", \"hex\");\nvar cmdmiddle = Buffer.from(\"setTMP14400\");\nvar cmdend = Buffer.from(\"0d\", \"hex\");\nmsg.payload = Buffer.concat([cmdstart, cmdmiddle, cmdend]);\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":420,"y":2680,"wires":[["d2dddf837a5f48b7"]]},{"id":"46a371ee6322b0b8","type":"comment","z":"7d9d3cbb2597cd82","name":"SYR Connect - Control ","info":"","x":200,"y":2380,"wires":[]},{"id":"55aa5d6d321d51ec","type":"function","z":"7d9d3cbb2597cd82","name":"setUL0","func":"// Close the vavle\nvar cmdstart = Buffer.from(\"0d0a1b313a\", \"hex\");\nvar cmdmiddle = Buffer.from(\"setUL0\");\nvar cmdend = Buffer.from(\"0d0a\", \"hex\"); // cR + LF\nmsg.payload = Buffer.concat([cmdstart, cmdmiddle, cmdend]);\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":400,"y":2820,"wires":[["d2dddf837a5f48b7"]]},{"id":"abef738776e765eb","type":"function","z":"7d9d3cbb2597cd82","name":"setUL3","func":"// Open the vavle\nvar cmdstart = Buffer.from(\"0d0a1b313a\", \"hex\");\nvar cmdmiddle = Buffer.from(\"setUL3\");\nvar cmdend = Buffer.from(\"0d0a\", \"hex\"); // CR + LF\nmsg.payload = Buffer.concat([cmdstart, cmdmiddle, cmdend]);\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":400,"y":2880,"wires":[["d2dddf837a5f48b7"]]},{"id":"e3b1591eaec5c765","type":"comment","z":"7d9d3cbb2597cd82","name":"Ventil Zu","info":"","x":160,"y":2520,"wires":[]},{"id":"9a432a6df02f8f39","type":"comment","z":"7d9d3cbb2597cd82","name":"Ventil Auf","info":"","x":160,"y":2580,"wires":[]},{"id":"996ebd2f1e184a87","type":"comment","z":"7d9d3cbb2597cd82","name":"Anwesend","info":"","x":160,"y":2820,"wires":[]},{"id":"95ab097536ee9cf2","type":"comment","z":"7d9d3cbb2597cd82","name":"Abwesend (30L)","info":"","x":180,"y":2880,"wires":[]},{"id":"b25ef65f1a65fc12","type":"comment","z":"7d9d3cbb2597cd82","name":"Inaktiv Timer 4h","info":"","x":180,"y":2680,"wires":[]},{"id":"bc165e6cd206e810","type":"comment","z":"7d9d3cbb2597cd82","name":"Inaktiv Timer Aus","info":"","x":180,"y":2740,"wires":[]},{"id":"344b580893fb384e","type":"serial out","z":"7d9d3cbb2597cd82","name":"","serial":"07c6650d2ff49b41","x":730,"y":2720,"wires":[]},{"id":"9f5e2b7a9f1ee9da","type":"delay","z":"7d9d3cbb2597cd82","name":"","pauseType":"delay","timeout":"300","timeoutUnits":"milliseconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":720,"y":2660,"wires":[["f4043b8aa0ba6a4e","344b580893fb384e"]]},{"id":"07c6650d2ff49b41","type":"serial-port","serialport":"/dev/ttyUSB1","serialbaud":"19200","databits":"8","parity":"none","stopbits":"1","waitfor":"","dtr":"none","rts":"none","cts":"none","dsr":"none","newline":"2000","bin":"false","out":"interbyte","addchar":"","responsetimeout":"300"}]
            
            D 1 Reply Last reply
            0
            • K KNXbroker

              @dmq Und hier Node Red Code zur Steuerung, wieder ohne Home Assistant Knoten.

              ToDo: Bestätigung von Alarm Meldungen!

              Steuerung ist ebenfalls vom WebServer abhängig und somit nicht lokal. Der Code wartet auf die WebServer Abfrage und schickt danacht Befehle los, um eine Kollision zu vermeiden.

              0e54d18b-e87f-4b9d-8447-872143a2be72-image.png

              [{"id":"d2dddf837a5f48b7","type":"function","z":"7d9d3cbb2597cd82","name":"Wait for msg.release","func":"const messages = context.get('messages') || [];\n\nif(msg.release) {\n    context.set('messages', null);\n    node.status({text: `Sent: ${messages.length}`});\n    return [messages];\n}\n\nmessages.push(msg);\ncontext.set('messages', messages);\nnode.status({text: `Holding: ${messages.length}`});","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":720,"y":2580,"wires":[["9f5e2b7a9f1ee9da"]]},{"id":"850c0728ec1a735c","type":"change","z":"7d9d3cbb2597cd82","name":"","rules":[{"t":"set","p":"release","pt":"msg","to":"true","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":410,"y":2440,"wires":[["d2dddf837a5f48b7"]]},{"id":"2841702637ee5a33","type":"function","z":"7d9d3cbb2597cd82","name":"setAB2","func":"// Close the vavle\nvar cmdstart = Buffer.from(\"0d0a1b313a\", \"hex\");\nvar cmdmiddle = Buffer.from(\"setAB2\");\nvar cmdend = Buffer.from(\"0d0a\", \"hex\"); // cR + LF\nmsg.payload = Buffer.concat([cmdstart, cmdmiddle, cmdend]);\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":400,"y":2520,"wires":[["d2dddf837a5f48b7"]]},{"id":"7ec7b7f3b2be5f8b","type":"function","z":"7d9d3cbb2597cd82","name":"setAB1","func":"// Open the vavle\nvar cmdstart = Buffer.from(\"0d0a1b313a\", \"hex\");\nvar cmdmiddle = Buffer.from(\"setAB1\");\nvar cmdend = Buffer.from(\"0d0a\", \"hex\"); // CR + LF\nmsg.payload = Buffer.concat([cmdstart, cmdmiddle, cmdend]);\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":400,"y":2580,"wires":[["d2dddf837a5f48b7"]]},{"id":"3bc209160cce93a1","type":"serial in","z":"7d9d3cbb2597cd82","name":"","serial":"07c6650d2ff49b41","x":170,"y":2440,"wires":[["850c0728ec1a735c"]]},{"id":"41ad879c02123e89","type":"function","z":"7d9d3cbb2597cd82","name":"setTmp0","func":"// Set temporary inactivity time to 0s\nvar cmdstart = Buffer.from(\"0d0a1b313a\", \"hex\");\nvar cmdmiddle = Buffer.from(\"setTMP0\");\nvar cmdend = Buffer.from(\"0d\", \"hex\");\nmsg.payload = Buffer.concat([cmdstart, cmdmiddle, cmdend]);\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":400,"y":2740,"wires":[["d2dddf837a5f48b7"]]},{"id":"fce9cff1374cce55","type":"function","z":"7d9d3cbb2597cd82","name":"setTmp14400","func":"// Set temporary inactivity time to 4h\nvar cmdstart = Buffer.from(\"0d0a1b313a\", \"hex\");\nvar cmdmiddle = Buffer.from(\"setTMP14400\");\nvar cmdend = Buffer.from(\"0d\", \"hex\");\nmsg.payload = Buffer.concat([cmdstart, cmdmiddle, cmdend]);\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":420,"y":2680,"wires":[["d2dddf837a5f48b7"]]},{"id":"46a371ee6322b0b8","type":"comment","z":"7d9d3cbb2597cd82","name":"SYR Connect - Control ","info":"","x":200,"y":2380,"wires":[]},{"id":"55aa5d6d321d51ec","type":"function","z":"7d9d3cbb2597cd82","name":"setUL0","func":"// Close the vavle\nvar cmdstart = Buffer.from(\"0d0a1b313a\", \"hex\");\nvar cmdmiddle = Buffer.from(\"setUL0\");\nvar cmdend = Buffer.from(\"0d0a\", \"hex\"); // cR + LF\nmsg.payload = Buffer.concat([cmdstart, cmdmiddle, cmdend]);\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":400,"y":2820,"wires":[["d2dddf837a5f48b7"]]},{"id":"abef738776e765eb","type":"function","z":"7d9d3cbb2597cd82","name":"setUL3","func":"// Open the vavle\nvar cmdstart = Buffer.from(\"0d0a1b313a\", \"hex\");\nvar cmdmiddle = Buffer.from(\"setUL3\");\nvar cmdend = Buffer.from(\"0d0a\", \"hex\"); // CR + LF\nmsg.payload = Buffer.concat([cmdstart, cmdmiddle, cmdend]);\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":400,"y":2880,"wires":[["d2dddf837a5f48b7"]]},{"id":"e3b1591eaec5c765","type":"comment","z":"7d9d3cbb2597cd82","name":"Ventil Zu","info":"","x":160,"y":2520,"wires":[]},{"id":"9a432a6df02f8f39","type":"comment","z":"7d9d3cbb2597cd82","name":"Ventil Auf","info":"","x":160,"y":2580,"wires":[]},{"id":"996ebd2f1e184a87","type":"comment","z":"7d9d3cbb2597cd82","name":"Anwesend","info":"","x":160,"y":2820,"wires":[]},{"id":"95ab097536ee9cf2","type":"comment","z":"7d9d3cbb2597cd82","name":"Abwesend (30L)","info":"","x":180,"y":2880,"wires":[]},{"id":"b25ef65f1a65fc12","type":"comment","z":"7d9d3cbb2597cd82","name":"Inaktiv Timer 4h","info":"","x":180,"y":2680,"wires":[]},{"id":"bc165e6cd206e810","type":"comment","z":"7d9d3cbb2597cd82","name":"Inaktiv Timer Aus","info":"","x":180,"y":2740,"wires":[]},{"id":"344b580893fb384e","type":"serial out","z":"7d9d3cbb2597cd82","name":"","serial":"07c6650d2ff49b41","x":730,"y":2720,"wires":[]},{"id":"9f5e2b7a9f1ee9da","type":"delay","z":"7d9d3cbb2597cd82","name":"","pauseType":"delay","timeout":"300","timeoutUnits":"milliseconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":720,"y":2660,"wires":[["f4043b8aa0ba6a4e","344b580893fb384e"]]},{"id":"07c6650d2ff49b41","type":"serial-port","serialport":"/dev/ttyUSB1","serialbaud":"19200","databits":"8","parity":"none","stopbits":"1","waitfor":"","dtr":"none","rts":"none","cts":"none","dsr":"none","newline":"2000","bin":"false","out":"interbyte","addchar":"","responsetimeout":"300"}]
              
              D Offline
              D Offline
              dmq
              wrote on last edited by
              #16

              @knxbroker besten Dank dafür. Schaue ich mir mal in Ruhe an.

              K 1 Reply Last reply
              0
              • D dmq

                @knxbroker besten Dank dafür. Schaue ich mir mal in Ruhe an.

                K Offline
                K Offline
                KNXbroker
                wrote on last edited by
                #17

                Hi @dmq, und alle anderen die daran Interesse haben:

                Habe nun auch die Bestätigung von Alarmmeldungen in Node Red Implementiert, ich verweise hier einfach mal auf meinen Post im Home Assistant Forum:

                https://community.home-assistant.io/t/add-support-for-leakage-detection-device-safe-t-connect-from-hans-sasserath-gmbh-co-kg/172728/12?u=knxbroker

                Eine komplette Offline Lösung sollte eigentlich auch nicht so schwer sein zu implementieren, aber für mich erstmal so okay.

                D 1 Reply Last reply
                0
                • K KNXbroker

                  Hi @dmq, und alle anderen die daran Interesse haben:

                  Habe nun auch die Bestätigung von Alarmmeldungen in Node Red Implementiert, ich verweise hier einfach mal auf meinen Post im Home Assistant Forum:

                  https://community.home-assistant.io/t/add-support-for-leakage-detection-device-safe-t-connect-from-hans-sasserath-gmbh-co-kg/172728/12?u=knxbroker

                  Eine komplette Offline Lösung sollte eigentlich auch nicht so schwer sein zu implementieren, aber für mich erstmal so okay.

                  D Offline
                  D Offline
                  dmq
                  wrote on last edited by dmq
                  #18

                  @knxbroker danke fürs informieren und freigeben. Ich habe die Komponenten hier, aber noch nicht physisch eingebaut (überlege auch noch ob ich es selbst einbaue oder (versuche) einbauen zu lassen. Daran hängt leider mein Fortschritt mich da tiefer einzuarbeiten und hoffentlich auch mal was sinnvolles zurückzugeben ;-)

                  K 1 Reply Last reply
                  0
                  • D dmq

                    @knxbroker danke fürs informieren und freigeben. Ich habe die Komponenten hier, aber noch nicht physisch eingebaut (überlege auch noch ob ich es selbst einbaue oder (versuche) einbauen zu lassen. Daran hängt leider mein Fortschritt mich da tiefer einzuarbeiten und hoffentlich auch mal was sinnvolles zurückzugeben ;-)

                    K Offline
                    K Offline
                    KNXbroker
                    wrote on last edited by
                    #19

                    @dmq Kein Ding, vielleicht hilft es ja auch anderen. Ohne die Hilfe von @Kachel wäre das nicht möglich gewesen, großes Dankeschön meinerseits. :+1:

                    1 Reply Last reply
                    0
                    • K Kachel

                      Hi,

                      ich hab einen Leckagesensor SYR Safe-T Connect (https://www.syr.de/de/Produkte/DF262290-60DA-4785-858F-3A155324CA68/Safe-T-Connect) in der Hauptwasserleitung im Haus. Das Teil heißt Connect, da es über Netzwerkkabel ins Heimnetz verbunden wird und dann nach Hause telefoniert. Leider ist die 'Connect'-Funktion ein proprietäre Lösung, bei dem der Safe-T nur mit dem Server von SYR redet. Wenn der SYR-Server mal down ist oder von SYR abgeschaltet wird, dann funktioniert nur noch die Steuerung am Gerät selber. Die Parameter nur im Heimnetz auslesen und ansteuern funktioniert nur mit älteren Firmwares und dem etwas aufwändigeren Abfangen der Netzwerkpackete. Bei neueren Firmwares sind die Pakete verschlüsselt und man sieht leider nix mehr, sodass der Weg für unseren Leckagesensor nicht funktionierte. Der Leckagesensor sendet alle paar Sekunden ein Paket zum Server, die Datenmenge liegt bei ca. 500 MB pro Monat.

                      Viele Informationen dazu findet man unter https://www.msxfaq.de/sonst/iot/syr_safe-t_connect.htm . An dieser Stelle ein Herzlichen Dank für das Zusammentragen der Informationen an den Autor dieser Seite! Es hat mich erst dazu inspiriert mich mit dem lokalen Auslesen vom Leckagesensor weiter auseinander zu setzen.

                      Die diversen Schnittstellen sind auf der Seite von MSXFAQ erläutert. Aber dieser Service-Eingang nicht.... Ich hab mich mit dem Oszilloskop dran gehängt und siehe da: Es läuft RS485 auf den mittleren beiden Pinnen des RJ10-Steckers (4P4C). Also flux einen USB auf RS485-Adapter gekauft, ein Telefonhörerkabel mit RJ10 geopfert und das ganze an einen Raspberry Pi gehängt.

                      Schritt 1:
                      Der Port erscheint bei mir unter /dev/ttyUSB1. Mit dem Oszi noch die Geschwindigkeit gemessen: Es läuft auf 19200 Baud. Polarität ... tjo... try&error... es kann eigentlich nichts kaputt gehen und es gibt nur zwei Möglichkeiten (A-A & B-B oder A-B & B-A).

                      Mit cat -v /dev/ttyUSB1 & wird alles auf dem Port auf die Kommandozeile ausgegeben. Ist die Polarität richtig, dann sieht man eine Ausgabe - andernfalls muss man die Polarität der beiden Adern drehen.

                      Man sieht dort die Kommunikation zwischen dem LAN-Modul, welches die diversen Parameter abfragt, und dem Steuer-Mikrokontroller selber, der auf die Abfragen antwortet. Das LAN-Modul fragt jedoch nur regelmäßig die Parameter ab, wenn es mit einem Netzwerk verbunden ist. Andernfalls kommt nur alle paar Minuten eine kurze Abfrage des Gerätetyps.

                      Schritt 2:
                      Jetzt wollen wir natürlich die Daten selber abfragen und der SYR soll nicht mehr im Internet hängen. Aus den Ausgaben von Schritt 1 und der MSXFAQ-Seite sieht man, dass immer ein clrADM:, dann ein setADM(2)f gesendet wird und darauf dann die unterschiedlichen Parameter mit z.b. getAVO für die aktuelle Zapfmenge in Milliliter kommt.

                      Von der Kommandozeile senden wir die aus Schritt 1 aufgezeichneten und interpretierten Hex-Werte - und lassen dabei den cat oben dank dem &-Zeichen im Hintergrund weiterlaufen:
                      echo -en "\x0D\x0A\x1B\x31\x3a\x63\x6C\x72\x41\x44\x4d\x0d\x0a" > /dev/ttyUSB1; sleep 0.3; echo -en "\x0d\x0a\x1b\x31\x3a\x73\x65\x74\x41\x44\x4d\x28\x32\x29\x66\x0d\x0a" > /dev/ttyUSB1; sleep 0.3; echo -en "\x0d\x0a\x1b\x31\x3agetAVO\x0d" > /dev/ttyUSB1;
                      Wie ihr seht ist getAVO nicht in Hex sondern zur besseren Lesbarkeit als ASCII drin.

                      Und wir bekommen zurück:
                      ADMIN RESET^MFACTORY^M0mL^M [^M ist das ASCII-Zeichen Carriage Return.]

                      -> Jackpot! Damit bekommen wir eine erste simple Lösung hin um Parameter in ioBroker zu bekommen. Der ioBroker läuft zufälliger Weise schon auf dem Raspberry Pi. Jetzt fehlt nur noch etwas Quellcode um den Seriellen Port anzusteuern.

                      Dafür bietet sich eine Javascript-Instanz an. Wir fügen das Package "serialport" in den Instanzeinstellungen hinzu und nutzen den folgenden Quellcode.

                      Javascript_SYR_T_Connect.txt

                      Das Script sendet alle 10 Sekunden die Befehle in der commands-variable in aufsteigender Reihenfolge, die zurück erhaltenen Werte werden parsed und als Objekte in den ioBroker gesendet. Danach wird der nächste Befehl rausgesendet. [Serialport muss auf einer 10.x-Version sein - andernfalls müsst ihr die 'require'-Zeilen anpassen.]

                      Es kann passieren, dass das LAN-Modul dazwischen funkt - wir betreiben den RS485-Bus ja gerade mit drei Transceivern, wovon zwei (Raspi und LAN-Modul) immer wieder von alleine anfangen zu senden ohne auf den anderen zu hören. Die Kollisionen sind leider unvermeidbar. Um das bestmöglichst abzufangen bricht das Script seine eigene Übertragung ab, wenn es eine Kommunikation vom LAN-Modul mitbekommt. In dem Fall kann es aber dennoch zu fehlerhaften Parameterwerten kommen.

                      Noch vorhandene TODOs:

                      • Parameter auf gültigen Wertebereich beschränken. Vermindert die Wahrscheinlichkeit von Lesefehlern durch Bus-Kollisionen
                      • Unbekannte Werte identifizieren. Die Parameterliste ist lang und bei vielen Parametern habe ich noch nicht verstanden was sie bedeuten.
                      • Set-Befehle einbauen.... man will ja schließlich eine automatische Umschaltung zwischen Anwesend (große erlaubte Zapfmenge) und Abwesend (kleine erlaubte Zapfmenge) haben sowie auf Knopfdruck den Leckagesensor für eine Zeit deaktivieren um [Blumen gießen, Pool füllen, Teich säubern,... you name it...].

                      Ich hoffe ich kann mit dem Script jemandem eine Freude machen. Wer möchte kann das Script gerne nutzen. Einfach den Pfad von eurer seriellen Schnittstelle eintragen und ausführen. Wer es ändern möchte darf dies auch gerne tun - es freut aber sicher alle ioBroker-Nutzer wenn ihr Änderungen auch wieder veröffentlicht.

                      der Kachel

                      ? Offline
                      ? Offline
                      A Former User
                      wrote on last edited by
                      #20

                      @kachel @KNXbroker

                      Die hier gezeigte Loesung waere mein Plan B gewesen, vielen Dank euch allen, die sich hier soviel Arbeit machen und alles und jeden Schritt dokumentieren!

                      Wer das hier findet, und vielleicht lieber ein Adapter installiert (leider wird zur Zeit noch ein dns-routing und webserver(alternativ iptables) gebraucht. Ist aber kein Hexenwerk zum installieren.
                      Der Adapter unterstuetzt seit heute auch die SyrLexPlus10SL.
                      https://github.com/eifel-tech/ioBroker.syrconnect

                      1 Reply Last reply
                      0
                      • K Offline
                        K Offline
                        KNXbroker
                        wrote on last edited by
                        #21

                        Habe mittlerweile auch eine Node Red Offline Lösung mittels seriellen Adapter am Laufen falls jemand Interesse hat. Läuft seit über einem Jahr ohne Probleme und ich bin nicht mehr auf die SYR Cloud angewiesen.

                        ? D 2 Replies Last reply
                        0
                        • K KNXbroker

                          Habe mittlerweile auch eine Node Red Offline Lösung mittels seriellen Adapter am Laufen falls jemand Interesse hat. Läuft seit über einem Jahr ohne Probleme und ich bin nicht mehr auf die SYR Cloud angewiesen.

                          ? Offline
                          ? Offline
                          A Former User
                          wrote on last edited by
                          #22

                          @knxbroker

                          kannst du auch schalten, Ventil, Abwesend etc.. ?
                          Meine ist ja Enthaertungsanlage und Safeconnect in einem...

                          K 1 Reply Last reply
                          0
                          • ? A Former User

                            @knxbroker

                            kannst du auch schalten, Ventil, Abwesend etc.. ?
                            Meine ist ja Enthaertungsanlage und Safeconnect in einem...

                            K Offline
                            K Offline
                            KNXbroker
                            wrote on last edited by
                            #23

                            @ilovegym kann alles schalten, aber habe den SYR safe-t connect; habe das Netzwerkkabel rausgezogen und bediene nun alles mittels der seriellen Service Schnittstelle

                            T 1 Reply Last reply
                            1
                            • K KNXbroker

                              Habe mittlerweile auch eine Node Red Offline Lösung mittels seriellen Adapter am Laufen falls jemand Interesse hat. Läuft seit über einem Jahr ohne Probleme und ich bin nicht mehr auf die SYR Cloud angewiesen.

                              D Offline
                              D Offline
                              dmq
                              wrote on last edited by
                              #24

                              @knxbroker ich hätte Interesse an der Node Red Offline Lösung. Hast Du hierzu einen Link? Würde mich sehr freuen - danke vorab.

                              K 1 Reply Last reply
                              0
                              • D dmq

                                @knxbroker ich hätte Interesse an der Node Red Offline Lösung. Hast Du hierzu einen Link? Würde mich sehr freuen - danke vorab.

                                K Offline
                                K Offline
                                KNXbroker
                                wrote on last edited by
                                #25

                                @dmq Kein Problem, unten findest du den Node Red Code im Anhang zur lokalen Ansteuerung eines SYR safe-t connect über RS485. Wie gesagt, ich nutze IOBroker nicht mehr, du musst die ganzen Home Assistant I/O Nodes entsprechend konvertieren, aber die Logik sollte die gleiche sein.

                                Achtung: Netzwerkkabel abstecken, sonst funktioniert es nicht. Parallelbetrieb von Cloud und dieser Offline Lösung ist nicht möglich, aber die Offline Lösung arbeitet bei mir seit langem zuverlässiger als die Cloud.

                                Was macht das Script?

                                • Alle drei Minuten gibt es auf dem RS485 Bus eine Art ALIVE Abfrage. Das Skript wartet auf diese Abfrage und beginnt dann zu arbeiten.
                                • Alle 20s werden Steuerungsbefehle abgeschickt, sofern vorhanden. Alle 25s werden die Statusdaten vom Gerät gelesen.
                                • Kurz bevor die ALIVE Abfrage wieder kommt, macht das Skript Pause und synchronisiert sich dann wieder auf die nächste ALIVE Abfrage auf.

                                Viel Spass

                                SYR Connect RS485 Offline Control V2.txt

                                D 2 Replies Last reply
                                0
                                • K KNXbroker

                                  @dmq Kein Problem, unten findest du den Node Red Code im Anhang zur lokalen Ansteuerung eines SYR safe-t connect über RS485. Wie gesagt, ich nutze IOBroker nicht mehr, du musst die ganzen Home Assistant I/O Nodes entsprechend konvertieren, aber die Logik sollte die gleiche sein.

                                  Achtung: Netzwerkkabel abstecken, sonst funktioniert es nicht. Parallelbetrieb von Cloud und dieser Offline Lösung ist nicht möglich, aber die Offline Lösung arbeitet bei mir seit langem zuverlässiger als die Cloud.

                                  Was macht das Script?

                                  • Alle drei Minuten gibt es auf dem RS485 Bus eine Art ALIVE Abfrage. Das Skript wartet auf diese Abfrage und beginnt dann zu arbeiten.
                                  • Alle 20s werden Steuerungsbefehle abgeschickt, sofern vorhanden. Alle 25s werden die Statusdaten vom Gerät gelesen.
                                  • Kurz bevor die ALIVE Abfrage wieder kommt, macht das Skript Pause und synchronisiert sich dann wieder auf die nächste ALIVE Abfrage auf.

                                  Viel Spass

                                  SYR Connect RS485 Offline Control V2.txt

                                  D Offline
                                  D Offline
                                  dmq
                                  wrote on last edited by
                                  #26

                                  @knxbroker super, vielen Dank. Schöne Tage wünsche ich.

                                  1 Reply Last reply
                                  0
                                  • K KNXbroker

                                    @dmq Kein Problem, unten findest du den Node Red Code im Anhang zur lokalen Ansteuerung eines SYR safe-t connect über RS485. Wie gesagt, ich nutze IOBroker nicht mehr, du musst die ganzen Home Assistant I/O Nodes entsprechend konvertieren, aber die Logik sollte die gleiche sein.

                                    Achtung: Netzwerkkabel abstecken, sonst funktioniert es nicht. Parallelbetrieb von Cloud und dieser Offline Lösung ist nicht möglich, aber die Offline Lösung arbeitet bei mir seit langem zuverlässiger als die Cloud.

                                    Was macht das Script?

                                    • Alle drei Minuten gibt es auf dem RS485 Bus eine Art ALIVE Abfrage. Das Skript wartet auf diese Abfrage und beginnt dann zu arbeiten.
                                    • Alle 20s werden Steuerungsbefehle abgeschickt, sofern vorhanden. Alle 25s werden die Statusdaten vom Gerät gelesen.
                                    • Kurz bevor die ALIVE Abfrage wieder kommt, macht das Skript Pause und synchronisiert sich dann wieder auf die nächste ALIVE Abfrage auf.

                                    Viel Spass

                                    SYR Connect RS485 Offline Control V2.txt

                                    D Offline
                                    D Offline
                                    dmq
                                    wrote on last edited by
                                    #27

                                    @knxbroker melde mich noch mal zurück, ich hoffe kleinere Rückfragen sind für dich in Ordnung. Als Eingang hätte ich ein serielles Gerät (ttyX) erwartet. Hier ist aber eine TCP/IP-Quelle (modbus-tcp, tcp/500). Hast Du da ggf. einen RS485 / MODBUS-TCP -Konverter dazwischen? Lieben Dank vorab.

                                    K 1 Reply Last reply
                                    0
                                    • D dmq

                                      @knxbroker melde mich noch mal zurück, ich hoffe kleinere Rückfragen sind für dich in Ordnung. Als Eingang hätte ich ein serielles Gerät (ttyX) erwartet. Hier ist aber eine TCP/IP-Quelle (modbus-tcp, tcp/500). Hast Du da ggf. einen RS485 / MODBUS-TCP -Konverter dazwischen? Lieben Dank vorab.

                                      K Offline
                                      K Offline
                                      KNXbroker
                                      wrote on last edited by KNXbroker
                                      #28

                                      @dmq ich hatte zu Beginn einen seriellen USB Stick am Raspberry, der hatte aber immer wieder Startprobleme (glaube das war aber ein Problem vom Stick / Rasperry Setup). Theoretisch sollte es genauso funktionieren, du musst nur die TCP Knoten tauschen, die seriellen Knoten sollten ähnlich heißen. Ich bin dann auf einen Waveshare RS485 auf Ethernet Konverter gewechselt, seit dem läuft es bei mir ohne Probleme.

                                      D 1 Reply Last reply
                                      0
                                      • K KNXbroker

                                        @dmq ich hatte zu Beginn einen seriellen USB Stick am Raspberry, der hatte aber immer wieder Startprobleme (glaube das war aber ein Problem vom Stick / Rasperry Setup). Theoretisch sollte es genauso funktionieren, du musst nur die TCP Knoten tauschen, die seriellen Knoten sollten ähnlich heißen. Ich bin dann auf einen Waveshare RS485 auf Ethernet Konverter gewechselt, seit dem läuft es bei mir ohne Probleme.

                                        D Offline
                                        D Offline
                                        dmq
                                        wrote on last edited by
                                        #29

                                        @knxbroker ok, sehr schön. Einen Waveshare RS485 Konverter habe ich tatsächlich auch noch hier liegen ;) Danke Dir und komm gut ins neue Jahr.

                                        1 Reply Last reply
                                        0
                                        • K KNXbroker

                                          @ilovegym kann alles schalten, aber habe den SYR safe-t connect; habe das Netzwerkkabel rausgezogen und bediene nun alles mittels der seriellen Service Schnittstelle

                                          T Offline
                                          T Offline
                                          tschortsch
                                          wrote on last edited by
                                          #30

                                          @knxbroker
                                          kannst du mir sagen, wie du den Syr-Safe+ in den iobroker eingebunden hast bzw. wie du den steuerst?
                                          Viele Grüße

                                          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

                                          339

                                          Online

                                          32.6k

                                          Users

                                          82.2k

                                          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