Add support for Leakage Detection device Safe-T Connect from Hans Sasserath GmbH & Co. KG

Hi there,

I am using a leakage protection device called Safe-T Connect from Hans Sasserath GmbH & Co. KG based in Germany. It measures water flow rate & volume and sudden pressure drops to detect leakages and shut a valve if necessary. The device also measures water consumption & pressure. Proprietary humidity sensors may also be attached but I am using ZWave. Further, water pressure can be regulated through the device and a water filter attached.

It works flowlessly on its own and can be controlled through the producers cloud. I would really like to combine it with HA but have no programming knowledge. Anyone interested in supporting the device & cloud services?

Link to device:

Link to cloud access:
https://syrconnect.de/Login.aspx

I do not know wheather a public API is available either locally or through the cloud.

Any support would be highly appreciated!

I’m looking for a leakage detector and also interested. I found this:

https://www.loxwiki.eu/display/LOX/Syr+Safe+Tech

Maybe it works with a web-request:

http://IPTO_SYR_DEVICE:5333/safe-tec/get/all

can you try this?

1 Like

Thanks tunguskar! I am in th process of setting HA up from scatch. It will take a while until I get back to this and will be in touch then!

I am also interested in Syr implementation. I am using it with their floor sensors but missing home assistant integration.

http://IPSyr Safe Tech:5333/safe-tec/get/all

The link works to get the data , good starting point. I’ll reach out to safe-tec if they are interested to get this support.

If I find time, I would write something, let’s see.

1 Like

Hi tunguskar,

I finally came around to trying this. No response from the device if I use your call with the local IP address. I get a login screen though when trying to connect to the IP w/o the port #. The screen is the same whether just the plain ip or with the addition of /safe-tec/get/all and looks like this:

Do you have any further ideas?

It’s not possible to get data with a Safe-T Connect, unfortunately…

Why is it working for @Buenavista and not for you @KNXBroker ? That’s the question I think

If I understand it correctly, @Buenavista does have a Safe-T Connect, which is not working. I also have a Safe-T Connect, it’s an older product line from SYR which does not have any port open, except 80 for the configuration interface. I have already tried a lot of things but I did not find any solution.

Edit: the configuration interface does help neither, you can only change IP settings and the web interface address.

No, it is not working. I only get a login page. Possibly if the correct syntax for a service call was known that could be used but I have no clue unfortunately.

I have had contact with manufacturer: Safe-T Connect does not have any open port for accessing data. The product is no longer sold and therefore no additional features will be implemented any more.

If you want to have access to the data locally, you have to buy the product range SafeTech

2 Likes

Thats really sad. I bought the product 3 yrs ago… Well, I guess that was too early… Thanks for clarifying!

Hello @Buenavista,

good news, I managed to create a Node-Red flow for the SYR Safe-T Connect.
You have to connect to the service port as described here.
You can either use a USB to RS485 converter or a USB to Ethernet converter. I have tested both variants with WaveShare equipment.

Important note: The flow is working in parallel to the web server requests, so it will not work completly offline. However this is fine for me so far, at least as long as the cloud is still there…

Node Red Flow V1:

[{"id":"e824d0981201a8b9","type":"serial in","z":"7d9d3cbb2597cd82","name":"","serial":"07c6650d2ff49b41","x":170,"y":140,"wires":[["85c56553215c9a1e"]]},{"id":"4cc9a835284572a7","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":520,"y":420,"wires":[["4dc7f49f9dab0a4b"]]},{"id":"59844575fdd751e0","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":520,"y":480,"wires":[["4568be3e63ad58f6"]]},{"id":"f1921704b556f513","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":260,"y":420,"wires":[["4cc9a835284572a7","59844575fdd751e0","7a96fc3658e9bc17","5b974fae3f107896"]]},{"id":"7a96fc3658e9bc17","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":520,"y":540,"wires":[["2f892648c1ec4d83"]]},{"id":"5b974fae3f107896","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":520,"y":600,"wires":[["fa7f0e99ecf2929b"]]},{"id":"a4c6f64f41fbfbf4","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":510,"y":180,"wires":[["92850a67e26f5bb8"]]},{"id":"fbf6e10b89fb32a3","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":520,"y":240,"wires":[["d75c3dd815aacf1d","28319ce882c9513e"]]},{"id":"bb2607fa.49b308","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":700,"y":880,"wires":[["c2971fa18102f06f"]]},{"id":"fca41a5e9d401758","type":"serial out","z":"7d9d3cbb2597cd82","name":"","serial":"07c6650d2ff49b41","x":730,"y":1040,"wires":[]},{"id":"c2971fa18102f06f","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":700,"y":960,"wires":[["fca41a5e9d401758"]]},{"id":"37ed6bcd4899378a","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":380,"y":820,"wires":[["bb2607fa.49b308"]]},{"id":"2be102cc0d7e0972","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":380,"y":880,"wires":[["bb2607fa.49b308"]]},{"id":"d97f80036aede5cc","type":"serial in","z":"7d9d3cbb2597cd82","name":"","serial":"07c6650d2ff49b41","x":150,"y":740,"wires":[["965fbf7114293fa9"]]},{"id":"988f89677bbd9f68","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":380,"y":1040,"wires":[["bb2607fa.49b308"]]},{"id":"9634f3b54748d20d","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":400,"y":980,"wires":[["bb2607fa.49b308"]]},{"id":"f8e59259e99406e5","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":520,"y":120,"wires":[["2d460625ff0e08f6"]]},{"id":"4568be3e63ad58f6","type":"ha-sensor","z":"7d9d3cbb2597cd82","name":"SYR Wasserzähler","entityConfig":"91c84f486222d981","version":0,"state":"payload","stateType":"msg","attributes":[],"inputOverride":"allow","outputProperties":[],"x":750,"y":480,"wires":[[]]},{"id":"2f892648c1ec4d83","type":"ha-sensor","z":"7d9d3cbb2597cd82","name":"SYR Batterie","entityConfig":"4328446e7360a0b4","version":0,"state":"payload","stateType":"msg","attributes":[],"inputOverride":"allow","outputProperties":[],"x":730,"y":540,"wires":[[]]},{"id":"fa7f0e99ecf2929b","type":"ha-sensor","z":"7d9d3cbb2597cd82","name":"SYR Wassertemperatur","entityConfig":"b7878567bdb417b8","version":0,"state":"payload","stateType":"msg","attributes":[],"inputOverride":"allow","outputProperties":[],"x":770,"y":600,"wires":[[]]},{"id":"92850a67e26f5bb8","type":"ha-binary-sensor","z":"7d9d3cbb2597cd82","name":"SYR Absperrung","entityConfig":"c746d19e8dbcb881","version":0,"state":"payload","stateType":"msg","attributes":[],"inputOverride":"allow","outputProperties":[],"x":750,"y":180,"wires":[[]]},{"id":"d75c3dd815aacf1d","type":"ha-sensor","z":"7d9d3cbb2597cd82","name":"SYR Störung","entityConfig":"0f59e4ec97f880d3","version":0,"state":"payload","stateType":"msg","attributes":[],"inputOverride":"allow","outputProperties":[],"x":730,"y":240,"wires":[[]]},{"id":"2d460625ff0e08f6","type":"ha-sensor","z":"7d9d3cbb2597cd82","name":"SYR Timer Inaktivität","entityConfig":"9965cb83a42f5f12","version":0,"state":"payload","stateType":"msg","attributes":[],"inputOverride":"allow","outputProperties":[],"x":760,"y":120,"wires":[[]]},{"id":"28319ce882c9513e","type":"ha-binary-sensor","z":"7d9d3cbb2597cd82","name":"SYR Status","entityConfig":"e62d4184f63594f9","version":0,"state":"issue","stateType":"msg","attributes":[],"inputOverride":"allow","outputProperties":[],"x":730,"y":300,"wires":[[]]},{"id":"4dae756fa9ce4dd4","type":"ha-button","z":"7d9d3cbb2597cd82","name":"SYR Absperrung Zu","version":0,"debugenabled":false,"outputs":1,"entityConfig":"471dc0a4059a0763","outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"x":170,"y":820,"wires":[["37ed6bcd4899378a"]]},{"id":"6b3c1ce8efe6fdd9","type":"ha-button","z":"7d9d3cbb2597cd82","name":"SYR Absperrung Auf","version":0,"debugenabled":false,"outputs":1,"entityConfig":"769df0b91c243d2d","outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"x":170,"y":880,"wires":[["2be102cc0d7e0972"]]},{"id":"0c30a0017db3efdd","type":"ha-button","z":"7d9d3cbb2597cd82","name":"SYR Timer 4h","version":0,"debugenabled":false,"outputs":1,"entityConfig":"ffb831d32f946183","outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"x":150,"y":980,"wires":[["9634f3b54748d20d"]]},{"id":"228602b1e77958a0","type":"ha-button","z":"7d9d3cbb2597cd82","name":"SYR Timer Aus","version":0,"debugenabled":false,"outputs":1,"entityConfig":"a17b33359d09e724","outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"x":160,"y":1040,"wires":[["988f89677bbd9f68"]]},{"id":"8b720be833b38581","type":"comment","z":"7d9d3cbb2597cd82","name":"SYR Connect - Control after Web Request","info":"","x":240,"y":680,"wires":[]},{"id":"3336031ba1622fda","type":"comment","z":"7d9d3cbb2597cd82","name":"SYR Connect - Sensors via Web Request","info":"","x":200,"y":20,"wires":[]},{"id":"d4606d869c1f464c","type":"comment","z":"7d9d3cbb2597cd82","name":"SYR Connect - Sensors without Web Request (to be completed))","info":"","x":270,"y":1520,"wires":[]},{"id":"4dc7f49f9dab0a4b","type":"ha-sensor","z":"7d9d3cbb2597cd82","name":"SYR Wasserdruck","entityConfig":"dbbf73d2cb515905","version":0,"state":"payload","stateType":"msg","attributes":[],"inputOverride":"allow","outputProperties":[],"x":750,"y":420,"wires":[[]]},{"id":"535f8664bea56c52","type":"serial request","z":"7d9d3cbb2597cd82","name":"","serial":"07c6650d2ff49b41","x":290,"y":1600,"wires":[["7f3b5cc35dcf8993"]]},{"id":"8ace5b4a82e64953","type":"function","z":"7d9d3cbb2597cd82","name":"setAdm","func":"var anfang = Buffer.from(\"0d0a1b313a\", \"hex\");\nvar mitte = Buffer.from(\"setADM(2)f\");\nvar ende = Buffer.from(\"0d0a\", \"hex\");  // CR + LF\n\nmsg.payload = Buffer.concat([anfang, mitte, ende]);\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":100,"y":1600,"wires":[["535f8664bea56c52"]]},{"id":"7f3b5cc35dcf8993","type":"function","z":"7d9d3cbb2597cd82","name":"getAVOman","func":"var anfang = Buffer.from(\"0d0a1b313a\", \"hex\");\nvar mitte = Buffer.from(\"getAVO\");\nvar ende = Buffer.from(\"0d\", \"hex\");\n\nmsg.payload = Buffer.concat([anfang, mitte, ende]);\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":110,"y":1640,"wires":[["a7fae7e043fffc00"]]},{"id":"a7fae7e043fffc00","type":"serial request","z":"7d9d3cbb2597cd82","name":"","serial":"07c6650d2ff49b41","x":290,"y":1660,"wires":[["c79579ec11551d1e"]]},{"id":"c79579ec11551d1e","type":"function","z":"7d9d3cbb2597cd82","name":"clrAdmin","func":"var anfang = Buffer.from(\"0d0a1b313a\", \"hex\");\nvar mitte = Buffer.from(\"clrADM\");\nvar ende = Buffer.from(\"0d0a\", \"hex\"); // CR + LF\n\nmsg.payload = Buffer.concat([anfang, mitte, ende]);\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":100,"y":1680,"wires":[["c3d7b127be2a8dee"]]},{"id":"c3d7b127be2a8dee","type":"serial request","z":"7d9d3cbb2597cd82","name":"","serial":"07c6650d2ff49b41","x":290,"y":1720,"wires":[[]]},{"id":"1b9642aeea92becc","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":510,"y":60,"wires":[["7b13ca53954d7196"]]},{"id":"7b13ca53954d7196","type":"ha-binary-sensor","z":"7d9d3cbb2597cd82","name":"SYR Anwesenheit","entityConfig":"881c3889e757b9a5","version":0,"state":"payload","stateType":"msg","attributes":[],"inputOverride":"allow","outputProperties":[],"x":750,"y":60,"wires":[[]]},{"id":"f0756698e18a680b","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":380,"y":1120,"wires":[["bb2607fa.49b308"]]},{"id":"424f1dcb44634342","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":380,"y":1180,"wires":[["bb2607fa.49b308"]]},{"id":"932dc8466f5a1d3c","type":"ha-button","z":"7d9d3cbb2597cd82","name":"SYR Anwesend","version":0,"debugenabled":false,"outputs":1,"entityConfig":"82f8358b306c1bf7","outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"x":160,"y":1120,"wires":[["f0756698e18a680b"]]},{"id":"81ae1a0991e0ad84","type":"ha-button","z":"7d9d3cbb2597cd82","name":"SYR Abwesend (30L)","version":0,"debugenabled":false,"outputs":1,"entityConfig":"90b9804141b83ce7","outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"x":180,"y":1180,"wires":[["424f1dcb44634342"]]},{"id":"82cbc44367634f90","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":510,"y":360,"wires":[["eb08a97f7b2abaee"]]},{"id":"eb08a97f7b2abaee","type":"ha-sensor","z":"7d9d3cbb2597cd82","name":"SYR Limit","entityConfig":"9d549570afaf3955","version":0,"state":"payload","stateType":"msg","attributes":[],"inputOverride":"allow","outputProperties":[],"x":720,"y":360,"wires":[[]]},{"id":"4c341a53c522cf1e","type":"function","z":"7d9d3cbb2597cd82","name":"clrAdmin","func":"var anfang = Buffer.from(\"0d0a1b313a\", \"hex\");\nvar mitte = Buffer.from(\"clrADM\");\nvar ende = Buffer.from(\"0d0a\", \"hex\"); // CR + LF\n\nmsg.payload = Buffer.concat([anfang, mitte, ende]);\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":380,"y":1380,"wires":[["bb2607fa.49b308"]]},{"id":"6fbc72cf109c87ed","type":"function","z":"7d9d3cbb2597cd82","name":"setAdm","func":"var anfang = Buffer.from(\"0d0a1b313a\", \"hex\");\nvar mitte = Buffer.from(\"setADM(2)f\");\nvar ende = Buffer.from(\"0d0a\", \"hex\");  // CR + LF\n\nmsg.payload = Buffer.concat([anfang, mitte, ende]);\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":380,"y":1260,"wires":[["025acb8777456f6c","bb2607fa.49b308"]]},{"id":"025acb8777456f6c","type":"function","z":"7d9d3cbb2597cd82","name":"clrALA","func":"var anfang = Buffer.from(\"0d0a1b313a\", \"hex\");\nvar mitte = Buffer.from(\"clrALA\");\nvar ende = Buffer.from(\"0d0a\", \"hex\"); // CR + LF\n\nmsg.payload = Buffer.concat([anfang, mitte, ende]);\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":370,"y":1320,"wires":[["4c341a53c522cf1e","bb2607fa.49b308"]]},{"id":"85c56553215c9a1e","type":"join","z":"7d9d3cbb2597cd82","name":"","mode":"custom","build":"string","property":"payload","propertyType":"msg","key":"topic","joiner":"","joinerType":"str","accumulate":false,"timeout":"4","count":"","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"num","reduceFixup":"","x":190,"y":240,"wires":[["f1921704b556f513","f8e59259e99406e5","fbf6e10b89fb32a3","82cbc44367634f90","1b9642aeea92becc","a4c6f64f41fbfbf4"]]},{"id":"965fbf7114293fa9","type":"join","z":"7d9d3cbb2597cd82","name":"","mode":"custom","build":"buffer","property":"payload","propertyType":"msg","key":"topic","joiner":"","joinerType":"str","accumulate":false,"timeout":"4","count":"","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"num","reduceFixup":"","x":350,"y":740,"wires":[["c48793841b0bf707"]]},{"id":"e20968b685ae0513","type":"ha-button","z":"7d9d3cbb2597cd82","name":"SYR Bestätigung","version":0,"debugenabled":false,"outputs":1,"entityConfig":"ce3f4f0111e088af","outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"x":160,"y":1260,"wires":[["6fbc72cf109c87ed"]]},{"id":"c48793841b0bf707","type":"function","z":"7d9d3cbb2597cd82","name":"msg.release in case of server request","func":"if (msg.payload.length > 20)\n{\n   msg.release = true\n   return msg;\n}","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":610,"y":740,"wires":[["bb2607fa.49b308"]]},{"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":"\\r","bin":"false","out":"char","addchar":"","responsetimeout":"500"},{"id":"91c84f486222d981","type":"ha-entity-config","server":"55c2f3c6.2dce0c","deviceConfig":"7c92a20e30b02c33","name":"SYR Wasserzähler","version":"6","entityType":"sensor","haConfig":[{"property":"name","value":"SYR Wasserzähler"},{"property":"icon","value":""},{"property":"entity_category","value":""},{"property":"entity_picture","value":""},{"property":"device_class","value":"water"},{"property":"unit_of_measurement","value":"L"},{"property":"state_class","value":"total_increasing"}],"resend":true,"debugEnabled":false},{"id":"4328446e7360a0b4","type":"ha-entity-config","server":"55c2f3c6.2dce0c","deviceConfig":"7c92a20e30b02c33","name":"SYR Batterie","version":"6","entityType":"sensor","haConfig":[{"property":"name","value":"SYR Batterie"},{"property":"icon","value":""},{"property":"entity_category","value":""},{"property":"entity_picture","value":""},{"property":"device_class","value":"voltage"},{"property":"unit_of_measurement","value":"V"},{"property":"state_class","value":"measurement"}],"resend":true,"debugEnabled":false},{"id":"b7878567bdb417b8","type":"ha-entity-config","server":"55c2f3c6.2dce0c","deviceConfig":"7c92a20e30b02c33","name":"SYR Wassertemperatur","version":"6","entityType":"sensor","haConfig":[{"property":"name","value":"SYR Wassertemperatur"},{"property":"icon","value":""},{"property":"entity_category","value":""},{"property":"entity_picture","value":""},{"property":"device_class","value":"temperature"},{"property":"unit_of_measurement","value":"°C"},{"property":"state_class","value":"measurement"}],"resend":true,"debugEnabled":false},{"id":"c746d19e8dbcb881","type":"ha-entity-config","server":"55c2f3c6.2dce0c","deviceConfig":"7c92a20e30b02c33","name":"SYR Absperrung","version":"6","entityType":"binary_sensor","haConfig":[{"property":"name","value":"SYR Absperrung"},{"property":"icon","value":""},{"property":"entity_category","value":""},{"property":"entity_picture","value":""},{"property":"device_class","value":"opening"}],"resend":true,"debugEnabled":false},{"id":"0f59e4ec97f880d3","type":"ha-entity-config","server":"55c2f3c6.2dce0c","deviceConfig":"7c92a20e30b02c33","name":"SYR Störung","version":"6","entityType":"sensor","haConfig":[{"property":"name","value":"SYR Störung"},{"property":"icon","value":""},{"property":"entity_category","value":""},{"property":"entity_picture","value":""},{"property":"device_class","value":""},{"property":"unit_of_measurement","value":""},{"property":"state_class","value":""}],"resend":true,"debugEnabled":false},{"id":"9965cb83a42f5f12","type":"ha-entity-config","server":"55c2f3c6.2dce0c","deviceConfig":"7c92a20e30b02c33","name":"SYR Timer Inaktivität","version":"6","entityType":"sensor","haConfig":[{"property":"name","value":"SYR Timer Inaktivität"},{"property":"icon","value":""},{"property":"entity_category","value":""},{"property":"entity_picture","value":""},{"property":"device_class","value":""},{"property":"unit_of_measurement","value":"s"},{"property":"state_class","value":""}],"resend":true,"debugEnabled":false},{"id":"e62d4184f63594f9","type":"ha-entity-config","server":"55c2f3c6.2dce0c","deviceConfig":"","name":"SYR Status","version":"6","entityType":"binary_sensor","haConfig":[{"property":"name","value":"SYR Status"},{"property":"icon","value":""},{"property":"entity_category","value":""},{"property":"entity_picture","value":""},{"property":"device_class","value":"problem"}],"resend":true,"debugEnabled":false},{"id":"471dc0a4059a0763","type":"ha-entity-config","server":"55c2f3c6.2dce0c","deviceConfig":"7c92a20e30b02c33","name":"SYR Absperrung Zu","version":"6","entityType":"button","haConfig":[{"property":"name","value":"SYR Absperrung Zu"},{"property":"icon","value":""},{"property":"entity_category","value":""},{"property":"entity_picture","value":""},{"property":"device_class","value":""}],"resend":false,"debugEnabled":false},{"id":"769df0b91c243d2d","type":"ha-entity-config","server":"55c2f3c6.2dce0c","deviceConfig":"7c92a20e30b02c33","name":"SYR Absperrung Auf","version":"6","entityType":"button","haConfig":[{"property":"name","value":"SYR Absperrung Auf"},{"property":"icon","value":""},{"property":"entity_category","value":""},{"property":"entity_picture","value":""},{"property":"device_class","value":""}],"resend":false,"debugEnabled":false},{"id":"ffb831d32f946183","type":"ha-entity-config","server":"55c2f3c6.2dce0c","deviceConfig":"7c92a20e30b02c33","name":"SYR Timer 4h","version":"6","entityType":"button","haConfig":[{"property":"name","value":"SYR Timer 4h"},{"property":"icon","value":""},{"property":"entity_category","value":""},{"property":"entity_picture","value":""},{"property":"device_class","value":""}],"resend":false,"debugEnabled":false},{"id":"a17b33359d09e724","type":"ha-entity-config","server":"55c2f3c6.2dce0c","deviceConfig":"7c92a20e30b02c33","name":"SYR Timer Aus","version":"6","entityType":"button","haConfig":[{"property":"name","value":"SYR Timer Aus"},{"property":"icon","value":""},{"property":"entity_category","value":""},{"property":"entity_picture","value":""},{"property":"device_class","value":""}],"resend":false,"debugEnabled":false},{"id":"dbbf73d2cb515905","type":"ha-entity-config","server":"55c2f3c6.2dce0c","deviceConfig":"7c92a20e30b02c33","name":"SYR Wasserdruck","version":"6","entityType":"sensor","haConfig":[{"property":"name","value":"SYR Wasserdruck"},{"property":"icon","value":""},{"property":"entity_category","value":""},{"property":"entity_picture","value":""},{"property":"device_class","value":"pressure"},{"property":"unit_of_measurement","value":"bar"},{"property":"state_class","value":"measurement"}],"resend":true,"debugEnabled":false},{"id":"881c3889e757b9a5","type":"ha-entity-config","server":"55c2f3c6.2dce0c","deviceConfig":"7c92a20e30b02c33","name":"SYR Anwesenheit","version":"6","entityType":"binary_sensor","haConfig":[{"property":"name","value":"SYR Anwesenheit"},{"property":"icon","value":""},{"property":"entity_category","value":""},{"property":"entity_picture","value":""},{"property":"device_class","value":"presence"}],"resend":false,"debugEnabled":false},{"id":"82f8358b306c1bf7","type":"ha-entity-config","server":"55c2f3c6.2dce0c","deviceConfig":"7c92a20e30b02c33","name":"SYR Anwesend","version":"6","entityType":"button","haConfig":[{"property":"name","value":"SYR Anwesend"},{"property":"icon","value":""},{"property":"entity_category","value":""},{"property":"entity_picture","value":""},{"property":"device_class","value":""}],"resend":false,"debugEnabled":false},{"id":"90b9804141b83ce7","type":"ha-entity-config","server":"55c2f3c6.2dce0c","deviceConfig":"7c92a20e30b02c33","name":"SYR Abwesend (30L)","version":"6","entityType":"button","haConfig":[{"property":"name","value":"SYR Abwesend (30L)"},{"property":"icon","value":""},{"property":"entity_category","value":""},{"property":"entity_picture","value":""},{"property":"device_class","value":""}],"resend":false,"debugEnabled":false},{"id":"9d549570afaf3955","type":"ha-entity-config","server":"55c2f3c6.2dce0c","deviceConfig":"7c92a20e30b02c33","name":"SYR Limit","version":"6","entityType":"sensor","haConfig":[{"property":"name","value":"SYR Limit"},{"property":"icon","value":""},{"property":"entity_category","value":""},{"property":"entity_picture","value":""},{"property":"device_class","value":"water"},{"property":"unit_of_measurement","value":"L"},{"property":"state_class","value":""}],"resend":false,"debugEnabled":false},{"id":"ce3f4f0111e088af","type":"ha-entity-config","server":"55c2f3c6.2dce0c","deviceConfig":"7c92a20e30b02c33","name":"SYR Bestätigung","version":"6","entityType":"button","haConfig":[{"property":"name","value":"SYR Bestätigung"},{"property":"icon","value":""},{"property":"entity_category","value":""},{"property":"entity_picture","value":""},{"property":"device_class","value":""}],"resend":false,"debugEnabled":false},{"id":"7c92a20e30b02c33","type":"ha-device-config","name":"Leckageschutz","hwVersion":"","manufacturer":"SYR","model":"SAFE-T connect","swVersion":""}]

Enjoy :slight_smile:

1 Like

Hi KNXBroker,

many thanks for this and for letting me know… I have no experience with NodeRed so this will be a project for when I have some time…

Ohh, I just read the documentation. Sounds like fun - for someone who is much more literate with Rasps and all that… I will not be able to get that working unfortunately…

But still many thanks for trying and enjoy!

Hi there,
is there any news regarding the newer SYR SafeTech Connect? I was just searching for a addon or possibilitiy to include it into my HA.
Here is much info about the device and how to include it with loxone.
I am not really a programmer so this stuff is quite hard for me…

https://loxwiki.atlassian.net/wiki/spaces/LOX/pages/1605271685/Syr+Safe+Tech

Maybe somebody can help out.
Thanks & bye,
Boris

1 Like

No unfortunately, no capable person has taken this up yet… I am the same, not a a tech person…

The product your link on Loxone refers to is slightly different to mine though… But I believe the underlying tech/app is the same.

Thanks for this! It’s working for me - I had some hard time with the “cat -v /dev/ttyUSB0” which showed no input for me regardless of the polarity. I used minicom to double check and that worked directly. No idea why - but maybe a usefull hint for others.