Jump to content

Welcome to Smart Home Forum by FIBARO

Dear Guest,

 

as you can notice parts of Smart Home Forum by FIBARO is not available for you. You have to register in order to view all content and post in our community. Don't worry! Registration is a simple free process that requires minimal information for you to sign up. Become a part of of Smart Home Forum by FIBARO by creating an account.

 

As a member you can:

  •     Start new topics and reply to others
  •     Follow topics and users to get email updates
  •     Get your own profile page and make new friends
  •     Send personal messages
  •     ... and learn a lot about our system!

 

Regards,

Smart Home Forum by FIBARO Team


  • 0

Sending Email once on global variable change


Question

Posted

I understand  the concept of leveraging  a action againt a varaible but how do you send a email in a VD once only on a global vairable change with out it repeating each time the VD loops?

I tried putting a second variable  condition which has to be met for the email to be sent. It changes on "email send" and then gets reset by another stage in VD but it resets every time the main loop runs again

 

if fibaro:getGlobal("tankEmpty") =="1" and

  fibaro:getGlobal("sendEmailConditon") =="1" then

 fibaro:call(2, "sendEmail", "blar blar blar")

 fibaro:setGlobal("sendEmailCondition","0")

end

 

Is this the right approach?

 

 

3 answers to this question

Recommended Posts

  • 0
Posted (edited)
3 hours ago, Jamie mccrostie said:

I understand  the concept of leveraging  a action againt a varaible but how do you send a email in a VD once only on a global vairable change with out it repeating each time the VD loops?

I tried putting a second variable  condition which has to be met for the email to be sent. It changes on "email send" and then gets reset by another stage in VD but it resets every time the main loop runs again

 

if fibaro:getGlobal("tankEmpty") =="1" and

  fibaro:getGlobal("sendEmailConditon") =="1" then

 fibaro:call(2, "sendEmail", "blar blar blar")

 fibaro:setGlobal("sendEmailCondition","0")

end

 

Is this the right approach?

 

 

Hi @Jamie mccrostie

 

My LAN monitor does something similar. It sends one message when s device changes state

You need a second tracking variable and flip its state when the email in sent

In the lan monitor I have both variables in the one global variable in a table but you can use a second global variable 

 

Take a look at the main loop code.

The tracking  variable is called alerttrack and at the table at the top of the code you'll see it there also 

 

Have a look and see if this approach may work ... 

 

-f

Edited by AutoFrank
  • 0
  • Inquirer
  • Posted
    2 hours ago, AutoFrank said:

    My LAN monitor does something similar. It sends one message when s device changes state

    You need a second tracking variable and flip its state when the email in sent

     

    Of course I have that installed, why didnt I think to check that. 

    My internet is so *abuse* it sends me 20 messages a day :D

    • 0
    Posted
    14 minutes ago, Jamie mccrostie said:

     

    Of course I have that installed, why didnt I think to check that. 

    My internet is so *abuse* it sends me 20 messages a day :D

    @Jamie mccrostie

    You could use the simple logger for the internet message 

    It'll be in lan monitor 3.0 but you could replace the message call in 2.5 to use that instead of sendmsg 

    I could send you some code if you like 

     

    Join the conversation

    You can post now and register later. If you have an account, sign in now to post with your account.

    Guest
    Answer this question...

    ×   Pasted as rich text.   Paste as plain text instead

      Only 75 emoji are allowed.

    ×   Your link has been automatically embedded.   Display as a link instead

    ×   Your previous content has been restored.   Clear editor

    ×   You cannot paste images directly. Upload or insert images from URL.

    ×
    ×
    • Create New...