         (log "Setting selected project to: " projects)
         (om/update! data [:projects :selected] projects)
         (om/update! data [:properties :project_id] projects)
+        (om/update! data [:properties :sensors :selected] #{})
+        (om/update! data [:properties :sensors :alert] {})
+        (om/update! data [:properties :chart :sensors] #{})
+        (om/update! data [:properties :chart :measurements] [])
+        (om/update! data [:properties :chart :unit] "")
         (om/update! data [:properties :editable] (-> @data :projects :editable))
         (om/transact! data [:projects :data] (fn [d] (mapv #(cond
                                                              (= old-projects (:project_id %)) (assoc % :selected false)

        (om/update! data [:programmes :selected] programmes)
        (om/update! data [:projects :programme_id] programmes)
        (om/update! data [:properties :programme_id] programmes)
        (om/transact! data [:programmes :data] (fn [d] (mapv #(cond
                                                               (= old-programmes (:programme_id %)) (assoc % :selected false)
                                                               (= programmes (:programme_id %)) (assoc % :selected true)

        (log "Setting property details to: " properties)
        (om/update! data [:properties :selected] properties)
        (om/update! data [:properties :sensors :selected] #{})
        (om/update! data [:properties :sensors :alert] {})
        (om/update! data [:properties :chart :sensors] #{})
        (om/update! data [:properties :chart :unit] "")
        (om/update! data [:properties :chart :measurements] [])
        (om/transact! data [:properties :data] (fn [d] (mapv #(cond
                                                             (= old-properties (:entity_id %)) (assoc % :selected false)
                                                             (= properties (:entity_id %)) (assoc % :selected true)
