Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Expand
titleImport the COUNT library into your project

See Import a Library if you need a refresher on how to do it.

Expand
titleCreate a custom number field called 'NextId' and set it to the value 156 in your card

NextId
First, in config.json add your Custom Fields. Then go to your component card and set the value to 156.

Note: You’ll need to change your component to use the DEVELOPMENT commit to see the newly added custom field. See Choosing the code to run for your component.

...

Expand
titleCOUNTset("NextId", NextId) is how we set the count value
title

COUNTset saves the new value of the custom field in the custom field value file.

Code Block
languagelua
COUNTset("NextId", NextId) 
Expand

This means we can see the NextId in the card view of the component - and we can set it too!

Image Removed

Expand
titleTo test this, we can set the component to run every 2 seconds using component.setTimer{delay=}

You can use component.setTimer{} is used here to run main every 2 seconds.

This is a complete little program to increment a custom number field:

Code Block
require "COUNT.COUNT"

function main(Data)
   --Poll the component every 2 seconds
   component.setTimer{delay=2000}
   local NextId = COUNTget("NextId")
   NextId = NextId+1
   COUNTset('NextId', NextId)
end
.setTimer{} is used here to run main every 2 seconds.
Expand
titleRun the component from the component
card view and see the NextId value change.
Image Added
Expand
titleThe COUNT library solves this problem by giving a convenient interface to get and set a custom field value

Remember, the Custom Fields the values for these are stored on disc in JSON. This means we can load and save them programmatically.

This is how this library works.

This is a very useful pattern for lots of Feeder interfaces. It’s used as part of the IMAP Email Feed component.