dzvents weird behaviour with foreach as not everything is executed

Easy to use, 100% Lua-based event scripting framework.

Moderator: leecollings

Post Reply
User avatar
Ragdag
Posts: 169
Joined: Friday 30 March 2018 13:56
Target OS: Raspberry Pi / ODroid
Domoticz version: Beta
Location: Netherlands
Contact:

dzvents weird behaviour with foreach as not everything is executed

Post by Ragdag »

I've been at it for half a day and I can't figure out what is going wrong.
Running the script below, triggered by the 565 button

Code: Select all

local scriptVar = "Verlichting_Tuin"

local Illuminance = 401

local BorderKort = 1411
local BorderLang = 1420
local BorderVoor = 382

local TuinVerlichting = {
    BorderKort,
    BorderLang,
    BorderVoor
}

local LightsOff = "at 14:35"

return {
    on = {
        devices = {
            Illuminance = {"at 14:00-23:00"},
            565
        },
        timer = {
            LightsOff
        },
    },

    logging = {
        level = domoticz.LOG_DEBUG,
        marker = scriptVar
    },
    execute = function(domoticz, item)
        
        domoticz.log(tonumber(domoticz.devices(Illuminance).state), domoticz.LOG_DEBUG)
        domoticz.log("Before Item If", domoticz.LOG_DEBUG)
        
        if (item.isDevice) and (tonumber(domoticz.devices(Illuminance).state) >= 20) then
            domoticz.log("In Item If", domoticz.LOG_DEBUG)

        end        

    end
}
Gives me this Debug log:

Code: Select all

2022-08-06 15:27:26.334 Status: User: (IP: 192.168.2.254) initiated a switch command (565/TEST/On)
2022-08-06 15:27:26.440 Status: dzVents: Info: Verlichting_Tuin: ------ Start internal script: DZ_Verlichting_Tuin: Device: "TEST (iDRAC)", Index: 565
2022-08-06 15:27:26.441 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Illuminance: Lux device adapter
2022-08-06 15:27:26.441 Status: dzVents: Debug: Verlichting_Tuin: 4313
2022-08-06 15:27:26.441 Status: dzVents: Debug: Verlichting_Tuin: Before Item If
2022-08-06 15:27:26.441 Status: dzVents: Debug: Verlichting_Tuin: In Item If
2022-08-06 15:27:26.441 Status: dzVents: Info: Verlichting_Tuin: ------ Finished DZ_Verlichting_Tuin
This is as expected

Now when I introduce foreach to iterate through the lights that need to be controlled

Code: Select all

local scriptVar = "Verlichting_Tuin"

local Illuminance = 401

local BorderKort = 1411
local BorderLang = 1420
local BorderVoor = 382

local TuinVerlichting = {
    BorderKort,
    BorderLang,
    BorderVoor
}

local LightsOff = "at 14:35"

return {
    on = {
        devices = {
            Illuminance = {"at 14:00-23:00"},
            565
        },
        timer = {
            LightsOff
        },
    },

    logging = {
        level = domoticz.LOG_DEBUG,
        marker = scriptVar
    },
    execute = function(domoticz, item)
        
        domoticz.log(tonumber(domoticz.devices(Illuminance).state), domoticz.LOG_DEBUG)
        domoticz.log("Before Item If", domoticz.LOG_DEBUG)
        
        if (item.isDevice) and (tonumber(domoticz.devices(Illuminance).state) >= 20) then
            domoticz.log("In Item If", domoticz.LOG_DEBUG)
            
            domoticz.devices().filter(TuinVerlichting).forEach(
                function(Lamp)
                    domoticz.log(Lamp.name .. " Current level = " .. Lamp.level, domoticz.LOG_DEBUG)
                end
            )
        end        

    end
}
Gives me this

Code: Select all

2022-08-06 15:29:19.544 iDRAC: Light/Switch (TEST)
2022-08-06 15:29:19.733 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Inloopkast: Switch device adapter
2022-08-06 15:29:19.733 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Inloopkast kWh: kWh device adapter
2022-08-06 15:29:19.734 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Woonkamer: Switch device adapter
2022-08-06 15:29:19.735 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Woonkamer kWh: kWh device adapter
2022-08-06 15:29:19.735 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Woonkamer Doorloop: Switch device adapter
2022-08-06 15:29:19.736 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Woonkamer Doorloop kWh: kWh device adapter
2022-08-06 15:29:19.737 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Wandlampen: Switch device adapter
2022-08-06 15:29:19.737 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Wandlampen kWh: kWh device adapter
2022-08-06 15:29:19.738 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Keuken Eiland: Switch device adapter
2022-08-06 15:29:19.739 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Keuken Eiland kWh: kWh device adapter
2022-08-06 15:29:19.739 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Keuken spots: Switch device adapter
2022-08-06 15:29:19.740 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Keuken Spots kWh: kWh device adapter
2022-08-06 15:29:19.741 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Keuken Achter: Switch device adapter
2022-08-06 15:29:19.741 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Keuken achter kWh: kWh device adapter
2022-08-06 15:29:19.742 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Keuken Eettafel: Switch device adapter
2022-08-06 15:29:19.742 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Keuken Eettafel kWh: kWh device adapter
2022-08-06 15:29:19.743 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Hal Beneden: Switch device adapter
2022-08-06 15:29:19.743 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Hal Beneden kWh: kWh device adapter
2022-08-06 15:29:19.744 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Hal Boven: Switch device adapter
2022-08-06 15:29:19.744 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Hal Boven kWh: kWh device adapter
2022-08-06 15:29:19.745 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Hal Zolder: Switch device adapter
2022-08-06 15:29:19.745 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Hal Zolder kWh: kWh device adapter
2022-08-06 15:29:19.746 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Buiten Zijkant: Switch device adapter
2022-08-06 15:29:19.746 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Buiten Zijkant kWh: kWh device adapter
2022-08-06 15:29:19.747 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Buiten Achter: Switch device adapter
2022-08-06 15:29:19.748 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Buiten Achter kWh: kWh device adapter
2022-08-06 15:29:19.748 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Buiten Oprit: Switch device adapter
2022-08-06 15:29:19.749 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Buiten Oprit kWh: kWh device adapter
2022-08-06 15:29:19.749 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Berging: Switch device adapter
2022-08-06 15:29:19.750 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Berging kWh: kWh device adapter
2022-08-06 15:29:19.751 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Bijkeuken: Switch device adapter
2022-08-06 15:29:19.751 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Bijkeuken kWh: kWh device adapter
2022-08-06 15:29:19.752 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Badkamer: Switch device adapter
2022-08-06 15:29:19.752 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Badkamer kWh: kWh device adapter
2022-08-06 15:29:19.753 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Droger kWh: kWh device adapter
2022-08-06 15:29:19.753 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for $Nobody_Home: Switch device adapter
2022-08-06 15:29:19.754 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Wasmachine kWh: kWh device adapter
2022-08-06 15:29:19.754 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Server: Switch device adapter
2022-08-06 15:29:19.756 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Server kWh: kWh device adapter
2022-08-06 15:29:19.758 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for $Smoke Alarm - Server Ruimte: Switch device adapter
2022-08-06 15:29:19.760 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Server Ruimte: Temperature device adapter
2022-08-06 15:29:19.760 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Werkplek: Switch device adapter
2022-08-06 15:29:19.761 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Werkplek kWh: kWh device adapter
2022-08-06 15:29:19.762 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for $Smoke Alarm - Zolder Washok: Switch device adapter
2022-08-06 15:29:19.762 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Zolder Washok: Temperature device adapter
2022-08-06 15:29:19.762 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Buiten Voortuin: Switch device adapter
2022-08-06 15:29:19.763 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Buiten Voortuin kWh: kWh device adapter
2022-08-06 15:29:19.764 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Server Inlet: Temperature device adapter
2022-08-06 15:29:19.765 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Server Exhaust: Temperature device adapter
2022-08-06 15:29:19.765 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Server CPU1: Temperature device adapter
2022-08-06 15:29:19.766 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Home Security: Switch device adapter
2022-08-06 15:29:19.766 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Temperatuur Buiten: Temperature device adapter
2022-08-06 15:29:19.767 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Zolder Beamer: Switch device adapter
2022-08-06 15:29:19.767 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Zolder Beamer kWh: kWh device adapter
2022-08-06 15:29:19.768 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Slaapkamer Screen Links: Switch device adapter
2022-08-06 15:29:19.768 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Slaapkamer Screen Rechts: Switch device adapter
2022-08-06 15:29:19.769 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Slaapkamer Bo Screen: Switch device adapter
2022-08-06 15:29:19.769 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Slaapkamer Luuk Screen: Switch device adapter
2022-08-06 15:29:19.770 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Gordijn Achter: Switch device adapter
2022-08-06 15:29:19.770 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Gordijn Voor: Switch device adapter
2022-08-06 15:29:19.771 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Wekker Luuk: Switch device adapter
2022-08-06 15:29:19.772 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Heating supply temperature: Temperature device adapter
2022-08-06 15:29:19.772 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Heating return temperature: Temperature device adapter
2022-08-06 15:29:19.773 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Heating return temperature - target: Temperature device adapter
2022-08-06 15:29:19.773 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Outside temperature: Temperature device adapter
2022-08-06 15:29:19.774 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Outside temperature - average: Temperature device adapter
2022-08-06 15:29:19.774 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Hot water temperature: Temperature device adapter
2022-08-06 15:29:19.774 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Ground source temperature - in: Temperature device adapter
2022-08-06 15:29:19.775 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Ground source temperature - out: Temperature device adapter
2022-08-06 15:29:19.775 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Energy produced - heating: kWh device adapter
2022-08-06 15:29:19.776 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Energy produced - hot water: kWh device adapter
2022-08-06 15:29:19.776 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Energy produced - sum: kWh device adapter
2022-08-06 15:29:19.777 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Hot water temperature - target: Switch device adapter
2022-08-06 15:29:19.778 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Working mode: Alert sensor adapter
2022-08-06 15:29:19.778 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Flow: Custom sensor device adapter
2022-08-06 15:29:19.778 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Compressor frequency: Custom sensor device adapter
2022-08-06 15:29:19.779 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Actual room temperature: Temperature device adapter
2022-08-06 15:29:19.779 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Room temperature set: Temperature device adapter
2022-08-06 15:29:19.780 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Vakantie Modus: Switch device adapter
2022-08-06 15:29:19.780 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for $Smoke Alarm - Bijkeuken: Switch device adapter
2022-08-06 15:29:19.781 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Bijkeuken: Temperature device adapter
2022-08-06 15:29:19.782 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Zonnescherm: Switch device adapter
2022-08-06 15:29:19.782 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for TEST_BLIND: Switch device adapter
2022-08-06 15:29:19.783 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Waterflow: Waterflow device
2022-08-06 15:29:19.783 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Watermeter: Counter device adapter
2022-08-06 15:29:19.784 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Schuur: Switch device adapter
2022-08-06 15:29:19.784 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Schuur kWh: kWh device adapter
2022-08-06 15:29:19.785 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Overkapping Muziek: Switch device adapter
2022-08-06 15:29:19.785 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Overkapping Muziek kWh: kWh device adapter
2022-08-06 15:29:19.786 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Overkapping Lamellen: Switch device adapter
2022-08-06 15:29:19.786 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Overkapping Licht: Switch device adapter
2022-08-06 15:29:19.787 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Tuin Border Kort: Switch device adapter
2022-08-06 15:29:19.787 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Tuin Border Kort kWh: kWh device adapter
2022-08-06 15:29:19.788 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Tuin Border Lang: Switch device adapter
2022-08-06 15:29:19.789 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Tuin Border Lang kWh: kWh device adapter
2022-08-06 15:29:19.789 Status: dzVents: Debug: Verlichting_Tuin: Processing device-adapter for Tuin Overkapping Screen: Switch device adapter
2022-08-06 15:29:19.789 Status: dzVents: Debug: Verlichting_Tuin: Tuin Border Kort Current level = 20
2022-08-06 15:29:19.789 Status: dzVents: Debug: Verlichting_Tuin: Tuin Border Lang Current level = 20
2022-08-06 15:29:19.789 Status: dzVents: Debug: Verlichting_Tuin: Buiten Voortuin Current level = 20 
2022-08-06 15:29:19.790 Status: dzVents: Info: Verlichting_Tuin: ------ Finished DZ_Verlichting_Tuin

It seems only the Lamp fuction is executed and not the rest anymore.

Other question is it possible to use the foreach with only the devices you have specified in the table and not use a filter to find the devices from all the devices?
User avatar
Ragdag
Posts: 169
Joined: Friday 30 March 2018 13:56
Target OS: Raspberry Pi / ODroid
Domoticz version: Beta
Location: Netherlands
Contact:

Re: dzvents weird behaviour with foreach as not everything is executed

Post by Ragdag »

It might be that not all debug lines are being captured in the gui, is that possible?
Is there a maximum number of debug lines that can get show at the same time?
User avatar
boum
Posts: 136
Joined: Friday 18 January 2019 11:31
Target OS: Raspberry Pi / ODroid
Domoticz version: 4.10717
Location: France
Contact:

Re: dzvents weird behaviour with foreach as not everything is executed

Post by boum »

To loop through your table of indices, you can simply do:

Code: Select all

            
            for _,lampIndex in ipairs(TuinVerlichting) do
                local lamp = domoticz.devices(lampIndex)
                domoticz.log(lamp.name .. " Current level = " .. lamp.level, domoticz.LOG_DEBUG)
            end
User avatar
Ragdag
Posts: 169
Joined: Friday 30 March 2018 13:56
Target OS: Raspberry Pi / ODroid
Domoticz version: Beta
Location: Netherlands
Contact:

Re: dzvents weird behaviour with foreach as not everything is executed

Post by Ragdag »

Thanks will give that a try!
EDIT:
Yes that works beautifully simple :D
Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest