@@ -69,6 +69,7 @@ class Place::AreaManagement < PlaceOS::Driver
6969 desk_usage: Int32 ,
7070 capacity: LevelCapacity ,
7171 sensors: Hash (String , Float64 ),
72+ desk_checked_in: Int32 ,
7273 )
7374
7475 getter? campus : Bool = false
@@ -425,6 +426,7 @@ class Place::AreaManagement < PlaceOS::Driver
425426 wireless_count = 0
426427 desk_count = 0
427428 desk_bookings = 0
429+ desk_checked_in = 0
428430 xy_locs = locations.select do |loc |
429431 case loc[" location" ].as_s
430432 when " wireless"
@@ -436,7 +438,10 @@ class Place::AreaManagement < PlaceOS::Driver
436438 desk_count += 1 if (loc[" at_location" ]?.try(& .as_i?) || 0 ) > 0
437439 false
438440 when " booking"
439- desk_bookings += 1 if loc[" type" ].as_s == " desk"
441+ if loc[" type" ].as_s == " desk"
442+ desk_bookings += 1
443+ desk_checked_in += 1 if loc[" checked_in" ]?.try(& .as_bool) == true
444+ end
440445 false
441446 else
442447 false
@@ -462,6 +467,7 @@ class Place::AreaManagement < PlaceOS::Driver
462467 desk_usage: desk_count,
463468 capacity: details,
464469 sensors: sensor_summary,
470+ desk_checked_in: desk_checked_in,
465471 }
466472
467473 # we need to know the map dimensions to be able to count people in areas
@@ -586,7 +592,7 @@ class Place::AreaManagement < PlaceOS::Driver
586592 area.polygon.contains(x, y)
587593 end
588594
589- protected def build_level_stats (wireless_devices , desk_bookings , desk_usage , capacity , sensors )
595+ protected def build_level_stats (wireless_devices , desk_bookings , desk_usage , capacity , sensors , desk_checked_in )
590596 # raw data
591597 total_desks = capacity[:total_desks ]
592598 total_capacity = capacity[:total_capacity ]
@@ -607,8 +613,9 @@ class Place::AreaManagement < PlaceOS::Driver
607613 {
608614 " measurement" => " level_summary" ,
609615 " desk_count" => total_desks,
610- " desk_bookings" => desk_bookings, # booked desks
611- " desk_usage" => desk_usage, # sensor detected someone at a desk
616+ " desk_bookings" => desk_bookings, # booked desks
617+ " desk_checked_in" => desk_checked_in, # booked desks that were checked in
618+ " desk_usage" => desk_usage, # sensor detected someone at a desk
612619 " device_capacity" => total_capacity,
613620 " device_count" => wireless_devices,
614621 " estimated_people" => adjusted_devices.to_i,
0 commit comments