A method for detecting anomalies in a water distribution system composed of a network of nodes, said method comprising: - A) parametrizing a hydraulic model of the water distribution system by initializing a set of values of control variables characterizing the network and its output at the nodes; - B) using sensors on the network to acquire observations of a subset of state variables, said observations having time references: - C) changing the set of values of the control variables ; - D) using the hydraulic model to calculate predicted values of a set of state variables characterizing at least water velocity and pressure at the nodes at the time references; - E) computing residue values of the set of state variables as a difference between predicted values and observations at the time references; - F) if said differences satisfy a break criterion meaning that the residue value are small enough for considering that values of control variables accurately describe the network, going to step H); - G) if not, changing the set of values of the control variables and going back to step D); - H) if said differences satisfy a refinement criterion comprising the calculation of values of one of a least square and a Bayesian objective function, going to step J); - I) if not, selecting a subset of the network where to calculate predicted values, going back to step D) - J) classifying an entity of the network, according to the set of control variables, to a class in a set of class comprising at least one class representative of a normal state, and at least one class representative of an abnormal state using a supervised machine learning engine previously trained using historical labeled feature vectors corresponding to said at least one class. - A) parametrizing a hydraulic model of the water distribution system by initializing a set of values of control variables characterizing the network and its output at the nodes; - B) using sensors on the network to acquire observations of a subset of state variables, said observations having time references: - C) changing the set of values of the control variables ; - D) using the hydraulic model to calculate predicted values of a set of state variables characterizing at least water velocity and pressure at the nodes at the time references; - E) computing residue values of the set of state variables as a difference between predicted values and observations at the time references; - F) if said differences satisfy a break criterion meaning that the residue value are small enough for considering that values of control variables accurately describe the network, going to step H); - G) if not, changing the set of values of the control variables and going back to step D); - H) if said differences satisfy a refinement criterion comprising the calculation of values of one of a least square and a Bayesian objective function, going to step J); - I) if not, selecting a subset of the network where to calculate predicted values, going back to step D) - J) classifying an entity of the network, according to the set of control variables, to a class in a set of class comprising at least one class representative of a normal state, and at least one class representative of an abnormal state using a supervised machine learning engine previously trained using historical labeled feature vectors corresponding to said at least one class. <EOS>