Testing State Memory Enabled Message Handler Custom Function

Testing State Memory Enabled Message Handler Custom Function

With state memory enabled, you can store values that can be used in successive messages to handle the incoming messages. We will go through a sample code to understand how state memory works while creating a custom function.
  1. headerMap = header.toMap();
  2. deviceid = headerMap.get("deviceid");
  3. receivedtime = headerMap.get("occurred_timestamp")
  4. topic = headerMap.get("topic");
  5. communication_status_flag = headerMap.get("data_internal");
  6. state_memory = headerMap.get("state_memory");
  7. if(state_memory == null)     {
    state_memoryMap = Map();
         }
      else
        {
    state_memoryMap = state_memory.toMap();
         }
    if(communication_status_flag == false && topic == "telemetry") { payload = message.toMap(); if(payload.containKey("data")) { deviceMessage = payload.get("data"); } else { deviceMessage = payload; } } else if(communication_status_flag == true) { deviceMessage = Map(); }
  8. //Logic current_energy = deviceMessage.get('energy_consumed'); last_month_energy = state_memoryMap.get('previous_energy'); if(state_memoryMap.containKey('previous_energy'))      {
    total_energy = current_energy + last_month_energy; deviceMessage.put("energy_consumed", total_energy); state_memoryMap.put('previous_energy', total_energy); } else { state_memoryMap.put('previous_energy', current_energy); }
  9. //Prepare output output = Map(); output.put("device_message",deviceMessage); state_memory_string = state_memoryMap.toString(); output.put("state_memory",state_memory_string); return output; 
This sample code is designed to manage energy data from an energy meter. It operates by storing monthly energy consumption data in state memory. Whenever a new data message is received, the code adds this new consumption value to the existing data stored in state memory. Subsequently, it publishes the updated total and then saves this new total back to the state memory for future use.

We will test functionality of this code under two conditions: with and without a pre-existing value in the state memory.
For these tests, the payload has the key "energy_consumed", and the state memory stores the cumulative energy data under the key "previous_energy".

First, we will  test without any value stored in the state memory to assess how the code handles the absence of pre-existing data. This will verify the code’s initialization process and its ability to start accumulating data from scratch.
  1. Click Save and Execute in the top right.
  2. Select Device Message in the Message Type field.
  3. Provide the input {'energy_consumed':100} in the Message field.
  4. Click Save.

On executing without a value for state memory, the output will display "energy_consumed: 100" and "previous_energy: 100." This outcome occurs because, assuming this is the first message, no previous data exists in the state memory. Therefore, the received value is treated as the initial total consumed energy. This value is then updated and stored as "previous_energy" in the state memory, ready to be utilized for calculations with the next incoming message.
 
Next, we will test the code with a predefined value in the state memory to see how the code performs. This will help us confirm that the state memory value is correctly utilized when the code is executed
  1. Click Save and Execute in the top right.
  2. Select Device Message in the Message Type field.
  3. Provide the input {'energy_consumed':114} in the Message field.
  4. Provide the input {'previous_energy': 233} in the State Memory filed.
  5. Click Save.

On executing the code with an existing state memory value, you will observe that the output displays the total energy consumed as 347. This same value is then updated in the state memory. This output results from the current energy consumed being added to the "previous_energy" value stored in state memory. This test confirms the functionality of the code in accumulating energy usage over time by continuously updating the state memory with the new totals.
 
 

 



        Create. Review. Publish.

        Write, edit, collaborate on, and publish documents to different content management platforms.

        Get Started Now


          Access your files securely from anywhere

            Zoho CRM Training Programs

            Learn how to use the best tools for sales force automation and better customer engagement from Zoho's implementation specialists.

            Zoho CRM Training
              Redefine the way you work
              with Zoho Workplace

                Zoho DataPrep Personalized Demo

                If you'd like a personalized walk-through of our data preparation tool, please request a demo and we'll be happy to show you how to get the best out of Zoho DataPrep.

                Zoho CRM Training

                  Create, share, and deliver

                  beautiful slides from anywhere.

                  Get Started Now


                    Zoho Sign now offers specialized one-on-one training for both administrators and developers.

                    BOOK A SESSION







                                Quick LinksWorkflow AutomationData Collection
                                Web FormsEnterpriseOnline Data Collection Tool
                                Embeddable FormsBankingBegin Data Collection
                                Interactive FormsWorkplaceData Collection App
                                CRM FormsCustomer ServiceAccessible Forms
                                Digital FormsMarketingForms for Small Business
                                HTML FormsEducationForms for Enterprise
                                Contact FormsE-commerceForms for any business
                                Lead Generation FormsHealthcareForms for Startups
                                Wordpress FormsCustomer onboardingForms for Small Business
                                No Code FormsConstructionRSVP tool for holidays
                                Free FormsTravelFeatures for Order Forms
                                Prefill FormsNon-Profit

                                Intake FormsLegal
                                Mobile App
                                Form DesignerHR
                                Mobile Forms
                                Card FormsFoodOffline Forms
                                Assign FormsPhotographyMobile Forms Features
                                Translate FormsReal EstateKiosk in Mobile Forms
                                Electronic Forms
                                Drag & drop form builder

                                Notification Emails for FormsAlternativesSecurity & Compliance
                                Holiday FormsGoogle Forms alternative GDPR
                                Form to PDFJotform alternativeHIPAA Forms
                                Email FormsFormstack alternativeEncrypted Forms

                                Wufoo alternativeSecure Forms

                                TypeformWCAG


                                    All-in-one knowledge management and training platform for your employees and customers.

                                              Create. Review. Publish.

                                              Write, edit, collaborate on, and publish documents to different content management platforms.

                                              Get Started Now





                                                                You are currently viewing the help pages of Qntrl’s earlier version. Click here to view our latest version—Qntrl 3.0's help articles.




                                                                    Manage your brands on social media


                                                                      • Desk Community Learning Series


                                                                      • Digest


                                                                      • Functions


                                                                      • Meetups


                                                                      • Kbase


                                                                      • Resources


                                                                      • Glossary


                                                                      • Desk Marketplace


                                                                      • MVP Corner


                                                                      • Word of the Day


                                                                      • Ask the Experts


                                                                        Zoho Sheet Resources

                                                                         

                                                                            Zoho Forms Resources


                                                                              Secure your business
                                                                              communication with Zoho Mail


                                                                              Mail on the move with
                                                                              Zoho Mail mobile application

                                                                                Stay on top of your schedule
                                                                                at all times


                                                                                Carry your calendar with you
                                                                                Anytime, anywhere




                                                                                      Zoho Sign Resources

                                                                                        Sign, Paperless!

                                                                                        Sign and send business documents on the go!

                                                                                        Get Started Now




                                                                                                Zoho TeamInbox Resources





                                                                                                          Zoho DataPrep Demo

                                                                                                          Get a personalized demo or POC

                                                                                                          REGISTER NOW


                                                                                                            Design. Discuss. Deliver.

                                                                                                            Create visually engaging stories with Zoho Show.

                                                                                                            Get Started Now








                                                                                                                                • Related Articles

                                                                                                                                • Creating a Message Handler

                                                                                                                                  A message handler can be created in a Zoho IoT application by selecting "Message Handler" in the Category field while creating a custom function. Configuring the fields while creating a message handler Language: Deluge is the supported language for ...
                                                                                                                                • Testing a Message Handler Custom Function

                                                                                                                                  While creating a message handler custom function, you can test the function to see if the desired output is received. For testing, you can provide the expected value and see if the expected output value is obtained. For the message handler custom ...
                                                                                                                                • Specifications of message handler (deluge script)

                                                                                                                                  A message handler custom function can be used to enrich the data sent by the connected device. The custom function is written using the deluge scripting language. In this document, we provide a sample code to demonstrate how a message handler ...
                                                                                                                                • Message Handler Custom Function

                                                                                                                                  When data is received from endpoints such as gateways or smart devices in the Zoho IoT application, you can use a message handler to perform additional processing. This includes running complex computations, calling external APIs, and enriching the ...
                                                                                                                                • Understanding message formatter and message handler

                                                                                                                                  In the Zoho IoT application, data sent from the gateway/smart device can be enhanced further. This includes decoding raw payload into a usable JSON format and performing additional computations and enrich by calling external API's. This is achieved ...
                                                                                                                                  Wherever you are is as good as
                                                                                                                                  your workplace

                                                                                                                                    Resources

                                                                                                                                    Videos

                                                                                                                                    Watch comprehensive videos on features and other important topics that will help you master Zoho CRM.



                                                                                                                                    eBooks

                                                                                                                                    Download free eBooks and access a range of topics to get deeper insight on successfully using Zoho CRM.



                                                                                                                                    Webinars

                                                                                                                                    Sign up for our webinars and learn the Zoho CRM basics, from customization to sales force automation and more.



                                                                                                                                    CRM Tips

                                                                                                                                    Make the most of Zoho CRM with these useful tips.



                                                                                                                                      Zoho Show Resources