@ -306,27 +306,28 @@ public class CalculatedFieldManagerMessageProcessor extends AbstractContextAware
newCfCtx.init();
}catch(Exceptione){
throwCalculatedFieldException.builder().ctx(newCfCtx).eventEntity(newCfCtx.getEntityId()).cause(e).errorMessage("Failed to initialize CF context").build();
# Safety trigger to fall back to use_ts_key_value_partitioning_on_read as true if estimated partitions count is greater than safety trigger value.
# It helps to prevent building huge partition list (OOM) for corner cases (like from 0 to infinity) and prefer fewer reads strategy from NoSQL database
"This node is particularly useful when device isn't using transports to receive data, such as when fetching data from external API or computing new data within the rule chain.",
"Other entities can be assigned only to one customer, so specified customer title in the configuration will be ignored if the originator isn't a dashboard.",
"The output is forwarded to the caller rule chain, as an output of the corresponding \"input\" rule node. "+
"The output rule node name corresponds to the relation type of the output message, and it is used to forward messages to other rule nodes in the caller rule chain. ",
"If the presence monitoring strategy <b>\"On each message\"</b> is selected, sends messages via rule node connection type <code>Inside</code> or <code>Outside</code> every time the geofencing condition is satisfied. "+
nodeDetails="Transforms message to email message. If transformation completed successfully output message type will be set to <code>SEND_EMAIL</code>.<br><br>"+
privatestaticfinalStringRELATED_DEVICE_NOT_FOUND_MESSAGE="Failed to find related device to message originator using relation query specified in the configuration!";
"If multiple related entities are found, only first entity is used for message enrichment, other entities are discarded. "+
"Useful when you need to retrieve data from an entity that has a relation to the message originator and use them for further message processing.<br><br>"+
privatestaticfinalStringRELATED_ENTITY_NOT_FOUND_MESSAGE="Failed to find related entity to message originator using relation query specified in the configuration!";
default->thrownewTbNodeException("Undefined message properties type '"+name+"'! Only "+supportedPropertiesStr+" message properties types are supported!");
"<br/><b>Note-</b> if you use system proxy properties, the next system proxy properties should be added: \"http.proxyHost\" and \"http.proxyPort\" or \"https.proxyHost\" and \"https.proxyPort\" or \"socksProxyHost\" and \"socksProxyPort\","+
"and if your proxy with auth, the next ones should be added: \"tb.proxy.user\" and \"tb.proxy.password\" to the thingsboard.conf file.",
"This rule node accepts the same messages as these nodes but allows you to trigger the processing of calculated "+
"fields or alarm rules independently, ensuring that derived data can be computed and utilized in real time without storing the original message in the database.",
"perimeter-attribute-key-required":"Perimeter attribute key is required.",
"perimeter-attribute-key-pattern":"Perimeter attribute key is invalid.",
"entity-zone-relationship":"Path from Entity to Zones *",
"direction":"Relation direction",
"direction-from":"From entity to zone",
"direction-to":"From zone to entity",
"relation-type":"Relation type",
"create-relation-with-matched-zones":"Create relations with matched zones",
"create-relation-with-matched-zones":"Create relations for source entity with matched zones",
"relation-level":"Relation level",
"fetch-last-available-level":"Fetch last available level only",
"zone-group-refresh-interval":"Zone groups refresh interval",
"copy-zone-group-name":"Copy zone group name",
"open-details-page":"Open entity details page",
"level":"Level",
"direction-level":"Direction",
"direction-up":"Up",
"direction-down":"Down",
"add-level":"Add level",
"delete-level":"Delete level",
"no-level":"No level configured",
"levels-required":"At least one level must be configured.",
"max-allowed-levels-error":"Relation level exceeds the maximum allowed.",
"hint":{
"arguments-simple-with-rolling":"Simple type calculated field should not contain keys with time series rolling type.",
"arguments-empty":"Arguments should not be empty.",
@ -1158,7 +1169,7 @@
"entity-coordinates":"Specify the time series keys that provide entity GPS coordinates (latitude and longitude).",
"geofencing-zone-groups":"Define one or more geofencing zones groups to check (e.g. 'allowedZones', 'restrictedZones'). Each group must have a unique name, which is used as a prefix for calculated field output telemetry keys.",
"perimeter-attribute-key":"Set the attribute key that contains the geofencing zone perimeter definition. The perimeter is always taken from server-side attributes of the zone entity.",
"report-strategy":"Presence status reports whether the entity is currently INSIDE or OUTSIDE the zone group.Transition events report when the entity ENTERED or LEFT the zone group.",
"report-strategy":"Presence status reports whether the entity is currently INSIDE or OUTSIDE the zone group.Transition events report when the entity ENTERED or LEFT the zone group.",
"create-relation-with-matched-zones":"Automatically create and maintain relations between the entity and the zones it is currently inside. Relations are removed when the entity leaves a zone and created when it enters a new one.",
"relation-type-required":"Relation type is required.",
"relation-level-required":"Relation level is required.",
@ -1167,9 +1178,9 @@
"geofencing-empty":"At least one zone group must be configured.",
"geofencing-entity-not-found":"Geofencing target entity not found.",
"max-geofencing-zone":"Maximum number of geofencing zones reached.",
"zone-group-refresh-interval":"Defines how often zone groups configured via related entities are refreshed. Set to 0 to disable scheduled refresh.",
"zone-group-refresh-interval":"Defines how often zone groups configured via related entities are refreshed.",
"zone-group-refresh-interval-required":"Zone groups refresh interval is required.",
"zone-group-refresh-interval-min":"Zone group refresh interval is below the minimum allowed system interval."
"zone-group-refresh-interval-min":"Zone group refresh interval should be at least {{ min }} second."