(EDGE Driver-Mc): Aplicaciones Virtuales Mc (virtual Switch Mirror, Virtual Calendar and virtual Switch Board...)

Hi @RebelMagpie

I’m going to expand a bit.

In order to be able to compare the dates, they must be type numeric, which increases value with the elapsed time.
Therefore in a number the zeros to the left disappear.
That’s why you have to enter the dates in the order Year Month, Day, hours, minutes.
It works the same as if it were a comparison of temperature or other numerical value.

Routines are evaluated when a trigger condition is met.
A precondition is not a routine trigger condition. Only it is evaluated as false or true and it waits for the trigger condition to be met.

In the date routine as your screenshot, the event that will trigger the routine is emitted at 0h:00 and 0h:01 min too. At that moment the execution of the routine is evaluated and triggered.

The condition is marked as true and the routine does not fire again until it returns to false condition before, even if the event is received again.

This is valid for all conditions

The local time, offset sunrise and sunset events are emitted every minute, others events are emitted every 30 minutes or 1 hour or when refresh is executed

Intervals, which can now also be done with standard routines in a single condition, evaluate to true or false and trigger routine execution only when there is a state change from false to true. During the time that the state remains true, the execution of the routine is not triggered again. Unless the routine has another trigger condition, then its state is also evaluated to fire the routine.

Now there is a problem reported and not requested, I guess they have other priority problems, when a routine is made with one or several previous conditions combined with OR type trigger conditions, that these conditions are met.
In these cases, the entire routine behaves like a routine that is triggered when any condition, prior or not, is met.

To solve this until it is resolved, you can group all the OR conditions in a routine and activate a virtual switch to be able to make a routine with a previous condition and and another condition that works well.

1 Like

Thanks as always @Mariano_Colmenarejo. That’s very clear.

So, to have something fire every day in a range, I would set the range as a precondition, and test a time of 00:00:01

1 Like

For some reason when i try and name switch 3 i get a server error? Any ideas? Thanks for you work

I tried all off switchboard 3,4 and 5 of Virtual appliances Mc and works fine for me.

Could you send CLI logs of the failure?

I actually rebooted my hub and it all worked as expected!

1 Like

First of all, thank you Mariano, for all the work you’ve done on these drivers.

Now to the questions/comments…

I am trying to set up a routine that uses the month as a precondition, specifically I want it to trigger during the winter months. This creates a problem, because I can only choose a range to INCLUDE. Since the winter runs from 11-4 (Nov-Apr) I have to create 2 separate routines, one for 11-12, and then another for 1-4. No big deal, but if I could exclude a range then I’d be able to do it with 1 routine.

Also, as a secondary way to do this I could say to run when sunset is less than 1900, but my only option for sunset is an exact time. Unless I am missing something.

Hi @mrfitz98

You can use a interval of a complete date yyyymmdd
In this case You need modify Routine every year

Correct, the sunset and sunrise are text type then >= ,<= or interval conditions are not possible

(New Release) Edge Driver Aplicaciones Virtuales Mc:

improvements

  • Seeing that some users @BlackRose67 or @DaWeav need timers to perform routines every X number of days, I have added a new virtual device called “Timer Number of Days”
  • It has a “Local Hour Offset” capability to introduce the offset of our local time with the GMT time handled by the LUA driver. It is very important to enter this value.
  • It has the Switch capability that goes to “On” when fulfilled
  • This device has a “Timer For Number Of Days” capability where you enter the number of days needed for the timer (from 0 to 500 days)
    • Value 0: stop the timer
    • Any value > 0 and <= 500: starts the timer and calculates the day that the switch will be activated at 00:00.
  • The “Timer Next Change” capability will show the next activation date of the Switch, updated every timer cycle init.

  • To facilitate the creation of the timer without having to enter the start day of the timer when the day that Timer is created is not the start day, it can be done as in this example.

  • In the case of @BlackRose67 who wants every 14 days and it’s Friday to execute a Routine to turn on some lights:

    • Today Monday 2022/11/21 we introduce in “Timer For Number Of Days” the days remaining for the first Friday that we want the routine to run: 4 days (2022/11/25)

  • We create the routine:
  • IF:
    • Time = 09:00 am
      and
    • device “Timer Number of Day” Switch = “On”
  • THEN:
    • Light X Turn On
    • Timer For Number Of Days = 14 Days

  • In this way the routine will be reconfigured to run again every 14 days and Friday

  • The switch will remain in the “On” state for 24 hours to be able to execute the routines as precondition throughout the day

  • The switch will go to the “Off” state the following day at 00:00 hours or if it is turned off voluntarily by the user.

I have tested that it maintains the operation of the timer variables with the initialization of the driver by driver update or by reboot and shutdown of the Hub
If you find something that doesn’t work well please let me know.

The update will be done automatically or by installing it manually with the CLI.

New driver version

───────────────────────────────────────────────────
 Name         Aplicaciones Virtuales Mc
 Version      2022-11-21T18:18:25.171873479        
───────────────────────────────────────────────────
4 Likes

That’s amazing @Mariano_Colmenarejo thanks for adding that new device!

I see the driver has now updated on my hub; I’ll take a closer look at that in the morning (it’s almost midnight here)

@Mariano_Colmenarejo I set up my new routine as you showed above, but I don’t have the option of just changing the Timer For Number of Days attribute, I also have to select Turn On in order to access the Timer For Number of Days attribute.

Hi @BlackRose67

Click in Active to uncheck this action

1 Like

Thanks.

I never knew that was possible with radio buttons; it wasn’t back when I used to do GUI development.

1 Like

I noticed that when I change the “Random On Off” to “Inactive” (both manually and via routines), the main switch turns off. Is there a way to disable that so the switch stays on?

Hi @sdgood

Yes, that is programmed behavior.
I did it this way because to deactivate the function on several lights at a certain time or when the away mode goes to home, I can make sure that they all turn off with a single automation

Is it important for you to change that?

Hi @Mariano_Colmenarejo ,

Using a 2 switch board (max 1 on) I do not seem to be getting notification in the below routine when the board has any switch on:

Individual switches and board status ‘all switch off’ are fine. Just the any on does not seem to be registering back to the routine.

Any suggestions?

My switch board routines using when any switch is on do not work either. I had to change it them individual routines.

Edit: I was using any switch on as a precondition with a different device as the trigger

This routine will only is executed and send the notification when there is a state change from “All Switch Off” to “Any Switch On”

If You need always notify when S1 or S2 change to On then You can do this other Routine

1 Like

Sorry, I am getting no notification when transitioning from ‘all off’ to ‘any on’ in the above routine either.

The example was really a simplification to demonstrate the (perceived) issue. The actual use case is nearer:

Which, as @Terri_Baker says, is not possible without a separate routine for each switch if ‘all on’ can not be used in this way?

1 Like

@TheHundredthIdiot @Terri_Baker

Sorry, “Any Switch On” states were in the first version.
Some time ago they changed to show which switches are On or if they are All Off or All Off, just like in Zigbee Multi Switch Mc driver, but the capability presentation was not updated.

“All Switch On”
“All Switch Off”
“S1:On”
“S2:On”

If you look at the details view you will see that the “Any Switch On” state is not shown and therefore the routine will never be activated

It is already updated and in automations it shows a text field to enter the text to be compared.

If you want to execute the routine that you had before, you have to do it with the states of each switch with a OR condition

Driver version with capability presentation updated
Delete app cache can be needed

───────────────────────────────────────────────────
 Name         Aplicaciones Virtuales Mc
 Version      2022-11-24T17:27:53.88154264
───────────────────────────────────────────────────
1 Like

What text is needed for a comparison? Would I enter “Any switch on” to use this as a precondition for the followinf rule?

If
switchboard status: any switch on (precondition) switch X changes to on
Then do things