Try dz.devices(339).dump()
or maybe better, try this script
Code: Select all
--[[
=== DOMOTICZ DEBUG HELPER SCRIPT ===
Geschreven voor dzVents 3.0+
Laatste update: 2024-06-15
FUNCTIES:
1. Toont systeeminformatie (Domoticz/dzVents versie)
2. Inspecteert devices (basisinfo + volledige structuur)
3. Toont tijdberekeningen (datum, zonnetijden)
4. Werkt via switch of custom event trigger
GEBRUIK:
1. Zet 'YourSwitchSelector' aan/uit om te triggeren
OF
2. Gebruik commando: dzVents.emit('DebugRequest')
CONFIGURATIE:
- Pas de TEST_DEVICES lijst aan voor je eigen devices
- Zet LOG_LEVEL op LOG_ERROR voor productie
--]]
-- Configuratieblok (buiten execute aanpasbaar)
local TEST_DEVICES = {
'Power',
--'TFA1 kamer',
--'YourSwitch',
--'YourTextSensor',
--'Zonnepanelen',
--'SmartEVSE'
}
local LOG_LEVEL = domoticz.LOG_DEBUG -- LOG_ERROR voor productie
local TRIGGER_DEVICE = 'YourSwitchSelector'
-- Script hoofdstructuur
return {
active = true,
on = {
devices = { TRIGGER_DEVICE },
customEvents = { 'DebugRequest' },
timer = {
'every 1 minutes' -- every x minutes
},
},
logging = {
level = LOG_LEVEL,
marker = 'DEBUG HELPER',
},
execute = function(dz, item)
-- ===== SYSTEEMINFO =====
dz.log('\n=== SYSTEEMINFORMATIE ===', dz.LOG_INFO)
dz.log('Domoticz versie: ' .. (dz.settings.domoticzVersion or "Onbekend"), dz.LOG_INFO)
dz.log('dzVents versie: ' .. (dz.utils.DZVERSION or "Onbekend"), dz.LOG_INFO)
-- ===== DEVICE INSPECTIE =====
dz.log('\n=== DEVICE INSPECTIE ===', dz.LOG_INFO)
for _, devName in ipairs(TEST_DEVICES) do
local device = dz.devices(devName)
if device then
dz.log(string.format('\n🛠️ %s (IDX: %d)', devName, device.id), dz.LOG_INFO)
-- Basis device info
dz.log('BASIS INFO:', dz.LOG_DEBUG)
pcall(function() dz.log(device.dump(), dz.LOG_DEBUG) end)
-- Uitgebreide info
dz.log('UITGEBREIDE STRUCTUUR:', dz.LOG_DEBUG)
pcall(function()
dz.log(dz.utils.toJSON({
name = device.name,
state = device.state,
lastUpdate = device.lastUpdate.raw,
data = device.rawData or "Geen rawData",
deviceType = device.deviceType,
deviceSubType = device.deviceSubType
}), dz.LOG_DEBUG)
end)
else
dz.log('❌ Device niet gevonden: ' .. devName, dz.LOG_ERROR)
end
end
-- ===== TIJD BEREKENINGEN =====
dz.log('\n=== TIJDGEGEVENS ===', dz.LOG_INFO)
pcall(function()
local now = os.date('*t')
local lastDay = os.date('*t', os.time{year=now.year, month=now.month+1, day=0})
dz.log('📅 Datum: ' .. os.date('%A %d %B %Y'), dz.LOG_INFO)
dz.log('⏰ Tijd: ' .. os.date('%H:%M:%S'), dz.LOG_INFO)
dz.log('🗓️ Laatste dag van de maand: ' .. lastDay.day, dz.LOG_INFO)
dz.log('🌅 Zon op/onder: ' .. dz.time.sunriseInMinutes .. '/' .. dz.time.sunsetInMinutes, dz.LOG_INFO)
end)
dz.log('\n=== DEBUG VOLTOOID ===\n', dz.LOG_INFO)
end
}
You can use a virtual switch or the timer to execute the script.
Replace the name under TEST_DEVICES with the nam of your device.
PS
In many programming scripts one users camelCase where nValue and sValue are written like first word starting with lowercase and the second, third party starting in uppercase.
So sValue has a better chance than Svalue.
Bugs bug me.