From ignition-scada
References 104 functions of Ignition expression language for tag bindings and Perspective property bindings. Use when authoring expressions in Ignition.
How this skill is triggered — by the user, by Claude, or both
Slash command
/ignition-scada:ignition-expressionsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Ignition expressions are used in tag expression bindings and Perspective property bindings. They are **NOT Python** — they use a distinct function-based syntax.
Ignition expressions are used in tag expression bindings and Perspective property bindings. They are NOT Python — they use a distinct function-based syntax.
if({[.]value} > 100, "High", "Normal")
dateFormat(now(5000), "HH:mm:ss")
tag("[default]Path/To/Tag")
runScript("project.library.myFunc", 5000, arg1)
Property references: {this.props.value}, {view.custom.myProp}, {view.params.x}, {[.]tagProperty}
abs(value) — Absolute valueceil(value) — Round upfloor(value) — Round downlog(value) — Natural logarithmmax(a, b) — Greater of two valuesmin(a, b) — Lesser of two valuesmod(dividend, divisor) — Remainderpow(base, exponent) — Exponentiationrand() — Random double 0.0-1.0round(value) — Round to nearest integersignum(value) — Sign (-1, 0, 1)sqrt(value) — Square rootconcat(str1, str2, ...) — Concatenate stringsendsWith(string, suffix) — Suffix checkindexOf(string, substring) — First occurrence index (-1 if not found)left(string, count) — Leftmost characterslen(string) — String lengthlower(string) — To lowercaseltrim(string) — Remove leading whitespacemid(string, start, length) — Substring by position and lengthnumberFormat(value, format) — Format number (Java DecimalFormat)regexExtract(string, pattern) — Extract regex matchrepeat(string, count) — Repeat stringreplace(string, search, replacement) — Replace all occurrencesreverse(string) — Reverse charactersright(string, count) — Rightmost charactersrtrim(string) — Remove trailing whitespacesplit(string, delimiter) — Split into arraystartsWith(string, prefix) — Prefix checksubstring(string, start, end) — Substring by indicestoStr(value) — Convert to stringtrim(string) — Remove surrounding whitespaceunicodeNormalize(string, form) — Unicode normalization (NFC, NFD, NFKC, NFKD)upper(string) — To uppercaseurlDecode(string) — URL decodeurlEncode(string) — URL encodedateArith(date, field, amount) — Add/subtract from date field ("hour", "day", "month")dateDiff(date1, date2, field) — Difference in field unitsdateExtract(date, field) — Extract field ("year", "month", "day", "hour")dateFormat(date, format) — Format date (Java SimpleDateFormat)dateParse(string, format) — Parse string to datedaysBetween(date1, date2) — Days between dateshoursBetween(date1, date2) — Hours between datesmillisBetween(date1, date2) — Millis between datesminutesBetween(date1, date2) — Minutes between datesmonthsBetween(date1, date2) — Months between datesnow(pollRate) — Current date/time. Always specify rate: now(5000) or now(0)secondsBetween(date1, date2) — Seconds between datessetTime(date, hour, minute, second) — Set time componentstoDate(value) — Convert to date (epoch millis or string)weeksBetween(date1, date2) — Weeks between datesyearsBetween(date1, date2) — Years between dateschoose(index, value0, value1, ...) — Select by 0-based indexcoalesce(value1, value2, ...) — First non-null valuehasChanged(value) — True if value changed since last evaluationif(condition, trueValue, falseValue) — ConditionalisNull(value) — Null checkpreviousValue(value) — Previous evaluation's valuequalify(tagPath) — Qualify tag path with current providerswitch(value, case1, result1, ..., default) — Case matchingtoBool, toColor(r,g,b), toDataSet, toDouble, toFloat, toInt, toLong
avg(values...) — AveragecolumnCount(dataset) — Column countdataSetToJSON(dataset) — Dataset to JSON stringforEach(dataset, expression) — Evaluate per rowgetColumn(dataset, columnIndex) — Column as arrayhasRows(dataset) — Has at least one rowjsonToDataSet(json) — JSON to datasetlookup(dataset, lookupCol, lookupVal, resultCol) — Column lookuprowCount(dataset) — Row countsum(values...) — SumjsonDecode(json) — Parse JSONjsonDelete(json, path) — Remove at pathjsonEncode(value) — Serialize to JSONjsonKeys(json) — Object keysjsonLength(json) — Array/object lengthjsonMerge(json1, json2) — Deep merge (json2 wins)jsonSet(json, path, value) — Set at pathjsonValueByKey(json, key) — Get by keyhasQuality(value, quality) — Check quality codeisBad(value) — Bad qualityisGood(value) — Good qualityisNotGood(value) — Not good qualityisUncertain(value) — Uncertain qualitytag(tagPath) — Read tag valuetagCount(folderPath) — Count tags in folderchooseColor(index, color0, color1, ...) — Select color by indexcolorMix(color1, color2, bias) — Blend colors (0.0=color1, 1.0=color2)binDecode(string, encoding) — Decode binary (Base64, Hex)binEncode(data, encoding) — Encode binaryforceQuality(value, qualityCode) — Set quality codegetMillis() — Current epoch millishtmlToPlain(html) — Strip HTML tagsisAuthorized(requiredRoles...) — Security role checkmapLat(value) — Latitude from map coordinatemapLng(value) — Longitude from map coordinaterunScript(scriptPath, pollRate, args...) — Call project scripttypeOf(value) — Type name stringnow() defaults to 1000ms polling — always use now(5000) or now(0)runScript("project.library.func", 5000, arg1) calls project scripts from expressionsgetSibling(), getParent(), getChild(), getComponent() — break on restructure{this.props.X} (own), {view.custom.X} (view), {view.params.X} (params)npx claudepluginhub thethoughtagen/ignition-ide-plugins --plugin ignition-scadaGuides writing and reviewing n8n expressions ({{...}} syntax), including $json/$node references, Luxon date handling, and expression error debugging.
Validates n8n expression syntax and fixes common errors including webhook data structure, $json/$node variable access, and performance concerns.
Validates n8n expression syntax and fixes common errors. Use when writing {{}} expressions, accessing $json/$node variables, or troubleshooting webhook data access.