{
 "manufacturer": "Neptronic",
 "manufacturer_slug": "neptronic",
 "model": "SKRO",
 "model_slug": "skro",
 "aliases": [
  "SKRO reverse osmosis",
  "SKRO BACnet"
 ],
 "equipment_type": "Reverse osmosis water treatment unit",
 "applies_to": "Neptronic SKRO reverse osmosis water treatment units feeding humidifiers.",
 "summary": "The SKRO produces purified water for humidifiers. Its controller offers BACnet MS/TP and BACnet IP, mostly for monitoring: state, system alarm, pressures and conductivity, valves and motor, service counters, plus a request object and email notification settings.",
 "bacnet_transport": [
  "BACnet MS/TP",
  "BACnet IP"
 ],
 "firmware": null,
 "default_device_instance": "153000 + MAC address (153001 by default)",
 "access_inferred": false,
 "notes": [
  "Objects and their writable properties are taken from the guide's 'W?' column; Present_Value writable means the BMS can change it."
 ],
 "source": {
  "title": "SKRO Reverse Osmosis Water Treatment Unit BACnet Communication Module User Guide",
  "doc_number": "SKRO-BACnet Guide-250913 (V1.0)",
  "revision_date": "2025-09-13",
  "url": "https://www.neptronic.com/Humidifiers/PDF/2025/SKRO-BACnet%20Guide-250913%20(V1.0).pdf"
 },
 "integration": {
  "summary": "Mostly a monitoring integration: read the SKRO state (MSV 141), system alarm (MSV 142), interlock and network timeout status. Few control writes are exposed; most objects are read-only in this guide.",
  "minimum_points": [
   {
    "ref": "MV 5",
    "name": "System Power State",
    "why": "System on (1) or off (0)"
   },
   {
    "ref": "MV 141",
    "name": "State",
    "why": "Operating state"
   },
   {
    "ref": "BV 19",
    "name": "Interlock",
    "why": "Interlock open (1) or closed (0)"
   },
   {
    "ref": "MV 142",
    "name": "System Alarm",
    "why": "Active alarm (0 = Normal)"
   },
   {
    "ref": "BV 68",
    "name": "Network Timeout Failsafe",
    "why": "1 = BACnet network timeout active"
   }
  ],
  "enable": null,
  "heartbeat": "The guide lists BV 71 BACnet Network Timeout (Off/On) and BV 68 Network Timeout Failsafe (0 = Ok, 1 = Timeout) but does not describe the timeout length or the resulting action.",
  "remote_sensors": null,
  "setup": [
   "MS/TP MAC defaults to 1 (000-254; 128-254 are non-token-passing slaves); baud rate auto-detects (Auto, 9600, 19200, 38400, 76800); Max_Master 127.",
   "Device instance defaults to 153000 + MAC (153001 out of the box) and can be changed from the menu or by writing Device Object_Identifier.",
   "BACnet IP uses UDP 47808 (0xBAC0) by default.",
   "Network/communication settings are in the controller's Integration menu (password 5544); power-cycle after connecting to the network.",
   "Reinitialize Device (warm/cold reset) over BACnet uses the password 'nep'."
  ],
  "gotchas": [
   "MSV 'BACnet Server List Mode' chooses which objects are published (Integrator, Advanced, Factory); objects marked Advanced in the guide, such as the program objects, only show in Advanced mode.",
   "Writing Out_of_Service = True disconnects an object from its physical input so the Present_Value can be overwritten; remember to set it back.",
   "The unit signals alarms through object values only; it does not send BACnet event notifications, so poll or use COV."
  ]
 },
 "points": [
  {
   "type": "AI",
   "instance": 1,
   "name": "Inlet Signal",
   "description": "Reading value at the inlet of the signal",
   "units": "V",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 2,
   "name": "Permeate Signal",
   "description": "Reading value of the permeate line signal",
   "units": "V",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 3,
   "name": "Concentrate Signal",
   "description": "Reading value of the concentrate line signal",
   "units": "V",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 9,
   "name": "Permeate Pulse",
   "description": "Raw pulse value of the flow meter for permeate",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 10,
   "name": "Concentrate Pulse",
   "description": "Raw pulse value of the flow meter for concentrate",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 10,
   "name": "MCU Load",
   "description": "Current microcontroller load",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 11,
   "name": "Memory Load",
   "description": "Current memory load",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 43,
   "name": "Inlet Pressure",
   "description": "Pressure at the inlet of the unit",
   "units": "psi",
   "access": "C",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 53,
   "name": "Permeate Pressure",
   "description": "Pressure of the permeate tank",
   "units": "psi",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 63,
   "name": "Concentrate Pressure",
   "description": "Osmotic pressure on the concentrate side",
   "units": "psi",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 73,
   "name": "TDS Sensor",
   "description": "Value read by the TDS sensor",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 150,
   "name": "Runtime",
   "description": "Actual run time since the last power up in seconds",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 151,
   "name": "HALTicks",
   "description": "Number of Hardware ticks",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 158,
   "name": "Modbus TCP IP Keep Alive Time Out",
   "description": "Amount of time the Modbus communication stays open before connection is cut...",
   "units": "min",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 399,
   "name": "Run Time",
   "description": "Total run time of the unit",
   "units": "h",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 400,
   "name": "On Time",
   "description": "Total operating time of the unit",
   "units": "h",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 401,
   "name": "Regulator Pressure",
   "description": "Parameter of the pressure of the regulator",
   "units": "psi",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 402,
   "name": "Pump On Fast Flush Delay",
   "description": "Delay after which the pump is turned on during fast flush routine",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 442,
   "name": "Idle Drain Time",
   "description": "Drain time interval",
   "units": "h",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 443,
   "name": "Damaged Membrane Delay",
   "description": "Time delay before the damaged membranes alarm is activated",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 444,
   "name": "Permeate Flow",
   "description": "Flow of the permeate water in liter per minute",
   "units": "min",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 445,
   "name": "Concentrate Flow",
   "description": "Flow of the concentrate water in liter per minute",
   "units": "min",
   "access": "W",
   "states": ""
  },
  {
   "type": "BO",
   "instance": 1,
   "name": "Motor",
   "description": "Status of the motor",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BO",
   "instance": 2,
   "name": "Inlet Valve",
   "description": "Status of the inlet valve",
   "units": "",
   "access": "R",
   "states": "0=Closed, 1=Open"
  },
  {
   "type": "BO",
   "instance": 3,
   "name": "Fast Flush Valve",
   "description": "Status of the fast flush (drain) valve",
   "units": "",
   "access": "R",
   "states": "0=Closed, 1=Open"
  },
  {
   "type": "BO",
   "instance": 5,
   "name": "Alarm",
   "description": "Status of the alarm contact",
   "units": "",
   "access": "C",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BO",
   "instance": 6,
   "name": "Work Signal",
   "description": "Status of the work signal contact",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BO",
   "instance": 10,
   "name": "Alarm LED",
   "description": "Status of the alarm LED",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BO",
   "instance": 11,
   "name": "Power LED",
   "description": "Status of the power LED",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BV",
   "instance": 16,
   "name": "High Level Float",
   "description": "High level float sensor",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BV",
   "instance": 17,
   "name": "Low Level Float",
   "description": "Low level float sensor",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BV",
   "instance": 18,
   "name": "Alarm Level Float",
   "description": "Alarm level float sensor",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BV",
   "instance": 19,
   "name": "Interlock",
   "description": "Status of the interlock",
   "units": "",
   "access": "R",
   "states": "0=Closed, 1=Open"
  },
  {
   "type": "BV",
   "instance": 26,
   "name": "Ethernet enable",
   "description": "Whether the Ethernet interface is enabled or not",
   "units": "",
   "access": "W",
   "states": "0=Disable, 1=Enable"
  },
  {
   "type": "BV",
   "instance": 53,
   "name": "AI8 Polarity",
   "description": "Polarity of the analog input",
   "units": "",
   "access": "C",
   "states": "0=Direct, 1=Reverse"
  },
  {
   "type": "BV",
   "instance": 58,
   "name": "SMTP SSL",
   "description": "Use a secure socket layer encrypt the communication between the device and...",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BV",
   "instance": 59,
   "name": "SMTP Port",
   "description": "Port number to be used for email transfer",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BV",
   "instance": 60,
   "name": "Notify Alarm",
   "description": "Get notified of all alarm messages by email",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BV",
   "instance": 61,
   "name": "Notify Warning",
   "description": "Get notified of all warning messages by email",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BV",
   "instance": 62,
   "name": "Notify App Msg",
   "description": "Get notified of all event messages by email",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BV",
   "instance": 68,
   "name": "Network Timeout Failsafe",
   "description": "Network timeout fail-safe state",
   "units": "",
   "access": "W",
   "states": "0=Ok, 1=Timeout"
  },
  {
   "type": "BV",
   "instance": 71,
   "name": "BACnet Network Timeout",
   "description": "BACnet Network Timeout value",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BV",
   "instance": 113,
   "name": "Memory Status",
   "description": "Memory status",
   "units": "",
   "access": "R",
   "states": "0=Ok, 1=Fail"
  },
  {
   "type": "BV",
   "instance": 116,
   "name": "Inlet Low Pressure Warning",
   "description": "Alarm to indicate that the pressure is insufficient at the inlet to...",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BV",
   "instance": 117,
   "name": "Fast Flush Blocked Warning",
   "description": "Warning to indicate that the fast flush valve has failed to close",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BV",
   "instance": 118,
   "name": "Inlet Valve Open Warning",
   "description": "Warning to indicate that the inlet valve has failed to open",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BV",
   "instance": 119,
   "name": "Insufficient Osmosis Warning",
   "description": "Warning to indicate that the water is not being replenished in the...",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BV",
   "instance": 120,
   "name": "Clogged Membrane Service Warning",
   "description": "Warning to indicate that the water in the tank is falling to...",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BV",
   "instance": 121,
   "name": "TDS Sensor Fail Warning",
   "description": "Warning to indicate that the TDS sensor is not working",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BV",
   "instance": 122,
   "name": "Over Usage Warning",
   "description": "Warning to indicate that the purifying state has been active for more...",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BV",
   "instance": 140,
   "name": "RO Tank Profile",
   "description": "Status of the RO tank profile",
   "units": "",
   "access": "W",
   "states": "0=Atmospheric, 1=Pressurized"
  },
  {
   "type": "CSV",
   "instance": 20,
   "name": "SMTP Server IP Address",
   "description": "Server IP address for the email account",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "CSV",
   "instance": 21,
   "name": "SMTP Mail From",
   "description": "Email address that will be sending the SKRO notification messages",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "CSV",
   "instance": 22,
   "name": "SMTP Mail To",
   "description": "Email address that will be receiving the SKRO notification messages",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "CSV",
   "instance": 23,
   "name": "SMTP Username",
   "description": "Login username for the email account",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "CSV",
   "instance": 25,
   "name": "SMTP Password",
   "description": "Login password for the email account",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "CSV",
   "instance": 35,
   "name": "EthernetMacAdd",
   "description": "MAC address of the Ethernet interface",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "CSV",
   "instance": 75,
   "name": "Database Version",
   "description": "Database version",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "MV",
   "instance": 5,
   "name": "System Power State",
   "description": "Whether the system is powered on or off",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "MV",
   "instance": 6,
   "name": "System Log Verbose Level",
   "description": "Type of information to be stored on the log file",
   "units": "",
   "access": "W",
   "states": "0=None, 1=Emergency, 2=Alert, 3=Critical, 4=Error, 5=Warning, 6=Notice, 7=Info, 8=Debug"
  },
  {
   "type": "MV",
   "instance": 8,
   "name": "BACnet Server Language",
   "description": "BACnet server language",
   "units": "",
   "access": "R",
   "states": "1=English"
  },
  {
   "type": "MV",
   "instance": 9,
   "name": "BACnet Server List Mode",
   "description": "Category of BACnet objects to display",
   "units": "",
   "access": "R",
   "states": "1=Integrator, 2=Advanced, 3=Factory"
  },
  {
   "type": "MV",
   "instance": 10,
   "name": "BACnet Server Units",
   "description": "Display units for the BACnet server",
   "units": "",
   "access": "R",
   "states": "1=Metric, 2=Imperial"
  },
  {
   "type": "MV",
   "instance": 139,
   "name": "Update Process Status",
   "description": "Process status",
   "units": "",
   "access": "R",
   "states": "0=Ok, 1=CRC, 2=Device, 3=Failed"
  },
  {
   "type": "MV",
   "instance": 140,
   "name": "Request",
   "description": "Request for the SKRO",
   "units": "",
   "access": "R",
   "states": "0=None, 1=ResetAlarms, 2=FastFlush, 3=ResetService"
  },
  {
   "type": "MV",
   "instance": 141,
   "name": "State",
   "description": "State of the operation of the SKRO",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=Idle, 2=Purifying, 3=FastFlush, 4=Alarm"
  },
  {
   "type": "MV",
   "instance": 142,
   "name": "System Alarm",
   "description": "Set the system alarms",
   "units": "",
   "access": "R",
   "states": "0=Normal, 1=InHiPress, 2=DmgMembrane, 3=BlocMembrane, 4=ConcOpen, 5=LoPumpPress, 6=InletClog, 7=PressReg, 8=NoPureWater, 9=TankClosed, 10=FloatOff, 11=InletSensor, 12=PermeatSensor, 13=ConcentSensor"
  },
  {
   "type": "Other",
   "instance": 1,
   "name": "NSDF Core Program",
   "description": "NSDF Core Program",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "Other",
   "instance": 2,
   "name": "Module 1",
   "description": "Module 1",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "Other",
   "instance": 3,
   "name": "Module 2",
   "description": "Module 2",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "Other",
   "instance": 4,
   "name": "Module 3",
   "description": "Module 3",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "Other",
   "instance": 5,
   "name": "Module 4",
   "description": "Module 4",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "Other",
   "instance": 6,
   "name": "Module 5",
   "description": "Module 5",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "Other",
   "instance": 7,
   "name": "Module 6",
   "description": "Module 6",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "Other",
   "instance": 8,
   "name": "Module 7",
   "description": "Module 7",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "Other",
   "instance": 9,
   "name": "Module 8",
   "description": "Module 8",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "Other",
   "instance": 10,
   "name": "Module 9",
   "description": "Module 9",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "Other",
   "instance": 11,
   "name": "Module 10",
   "description": "Module 10",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "Other",
   "instance": 12,
   "name": "Module 11",
   "description": "Module 11",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "Other",
   "instance": 13,
   "name": "Module 12",
   "description": "Module 12",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "Other",
   "instance": 14,
   "name": "Module 13",
   "description": "Module 13",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "Other",
   "instance": 15,
   "name": "NSDF Database",
   "description": "NSDF Database",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "FILE",
   "instance": 2,
   "name": "UpdatePackageFile",
   "description": "Update Package file",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "FILE",
   "instance": 4,
   "name": "SysLogAlarm",
   "description": "System Log Alarm",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "FILE",
   "instance": 5,
   "name": "USB System Log File",
   "description": "USB System Log file",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "FILE",
   "instance": 6,
   "name": "USB System Alarm Log File",
   "description": "USB System Alarm Log file",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "FILE",
   "instance": 16,
   "name": "System Log File",
   "description": "System Log file",
   "units": "",
   "access": "W",
   "states": ""
  }
 ],
 "page": "https://easybacnet.com/bacnet-points-lists/neptronic/skro",
 "note": "Re-typed from the manufacturer's public documentation (see source). Point availability varies by firmware and options; verify against the live device."
}
