Skip to content

Instantly share code, notes, and snippets.

@mrupperman
Last active June 20, 2024 13:57
Show Gist options
  • Save mrupperman/8a0761bbb416b8ef1ca4f51c228f63bf to your computer and use it in GitHub Desktop.
Save mrupperman/8a0761bbb416b8ef1ca4f51c228f63bf to your computer and use it in GitHub Desktop.
Niagara Sample BQL Queries
Alarm Queries
local:|fox:|station:|slot:/|bql:select name as 'Point Name',out as 'Point Status' from control:ControlPoint where status.alarm = 'true'
local:|fox:|station:|slot:/|bql:select * from alarm:AlarmSourceExt where alarmClass = 'defaultAlarmClass' and status.alarm = true
alarm:|bql:select timestamp,alarmData.sourceName,sourceState,ackState,ackRequired,alarmData.msgText,alarmClass where alarmData.sourceName like 'B1J*' and alarmClass like '*1*' order by timestamp desc
alarm:|bql:select timestamp,alarmData.sourceName,sourceState,ackState,ackRequired,alarmData.msgText,alarmClass where alarmData.sourceName like 'B1J*' and alarmClass like '*2*' order by timestamp desc
alarm:|bql:select *
History Queries
local:|fox:|history:/MyStation/ZoneTemp|bql:select timestamp, value where timestamp in bqltime.today
history:|bql:select *
Component Queries
local:|fox:|station:|slot:/VAV_Bldg_1|bql:select slotPath as 'Path', displayName as 'Display', out.value as 'Output Value' from control:NumericPoint where displayName like '*ZN_T*'
local:|fox:|station:|slot:/VAV_Bldg_1|bql:select slotPath as 'Path', displayName as 'Display', out.value as 'Output Value' from control:NumericPoint where displayName like '*ZN_T*' or displayName like '*STPT*'
local:|fox:|station:|slot:/Exercises|bql:select * where slotPath like '*TrafficLight1'
Http Queries - Must be using Basic Hx Profile
http://192.168.7.194/ord?station:|alarm:/|bql:select%20*
http://192.168.7.194/ord?station:|alarm:/|bql:select%20timestamp,%20source%20where%20source%20like%20%27*Temperature*%27
http://192.168.7.194/ord?station:|history:/SqlDemo|bql:select%20*
http://192.168.7.194/ord?station:|history:/SqlDemo/ZoneTemperature|bql:select%20*
http://192.168.7.194/ord?station:|history:/SqlDemo/ZoneTemperature|bql:select%20status,%20value%20where%20timestamp%20in%20bqltime.lastweek (for this you can also use bqltime.lastmonth, bqltime.last7days, etc)
http://192.168.7.194/ord?station:|history:/SqlDemo/ZoneTemperature?period=timeRange;start=2016-04-05T00:00:00.000-00:00;end=2016-04-17T00:00:00.000-00:00|bql:select%20status,%20value,%20timestamp
http://192.168.7.194/ord?station:|history:/SqlDemo/AuditHistory|bql:select%20*
http://192.168.7.194/ord?station:|slot:/|bql:select%20name,out.value%20as%20%27Absolute%20Ord%27%20from%20control:NumericPoint
@sammaniamsam
Copy link

sammaniamsam commented Sep 18, 2023

Example for BQL queries w/ a colon in the slot name

// 1. '$3a' is the colon encoded for the slot
// 2. '$24' is the '$' of $3a' encoded again for the BQL query
public static final String EncodedColon = "$243a";

Example for existence of slot n:history
station:|slot:/Drivers|bql:select * from control:NumericPoint where slotExists('n$243ahistory')

@rfincher86
Copy link

@sammaniamsam I am trying to use the program service to find all points that have a slot named "emergencyActive", your query works if I just do a bql query using ctrl+L but I cannot get it to work in the program service. I cannot figure out how to get the ( ) around the slot name using the program service.

@demelvin
Copy link

Has anybody in here figured out a way to limit the number of results returned or even better limit and set an offset for paginating the results? I've tried adding limit and count to the BQL query without success. Any suggestions or help would be greatly appreciated.

@robheathcock
Copy link

robheathcock commented May 23, 2024

@rfincher86
This is BQL will find anything with a slot called emegencyActive. It could be OR'd with other emergency slots names.
But good luck getting it to work in the Program Service - I can't see how you can get at the raw BQL search string outside of the basic editor.

station:|slot:/LabExercises|bql:select * from control:ControlPoint where slotExists('emergencyActive')

@ThomasMagnum308
Copy link

@robheathcock @rfincher86

Just wanted to share that you can do this in ProgramService - at least I've been able to run a similar query this way.

station:|slot:/LabExercises|bql:select * from control:ControlPoint where slotExists('emergencyActive')=true

You can type custom text into the match text field.

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment