Non-functional requirements handle the aspects of the system that are not directly related to the functionalities of the system. SEBOK—the systems engineering body of knowledge maintained jointly by INCOSE and the IEEE computer society (https://www.sebokwiki.org/wiki/Non-Functional_Requirements_(glossary))—defines them as follows:
Quality attributes or characteristics that are desired in a system, that define how a system is supposed to be.
Non-functional requirements include security, performance, availability, resilience, safety, reliability, dependability, scalability, sustainability, portability, and interoperability.
IoT systems will require different variations of these requirements, depending on the context in which the system is designed to operate (C. Warren Axelrod, Engineering Safe and Secure Software...