Hallo,

das Filtern doppelter Einträge bei doppelter Auslösung geht meines Wissens nach nicht, da der monitord den vorher ausgewerteten Code nicht mehr kennt (das LUA-Skript wird für jede EINZELNE RIC oder ZVEI-Tonfolge einzeln, getrennt voneinander aufgerufen). Der Filter erschlägt also nur die Eintragung aktuell ausgewerteter aber nicht gewünschter RICs/ZVEI-Folgen.

Wie das geht, sollte eigentlich aus der Anleitung hervor gehen: Du gibst an, welche Tonfolgen/RICs Du in der DB haben magst und alle anderen werden verworfen. Hierzu entsprechend bei "Fund" die Eintragung mit "return 0" erlauben oder halt die Eintragung mit "return 1" verwerfen. Zugegeben, das Beispiel auf monitord.de ist recht umfangreich.

Das Beispiel unten zeigt einen einfachen Filter, bei dem nur die unter "toShowXXX" angegebenen RICs/ZVEI-Tonfolgen/FMS-Kennungen in der Datenbank landen (ungetestet, eben nur zusammen gesammelt).

Viele Grüße
Martin

Code:
-- PluginFilter.lua
--
-- Filter für die Plugins - wird pro aktivem Plugin aufgerufen
-- 
-- Globales Array "arg" enthält die Daten vom Auswertermodul
--
-- Zusätzliche Werte im Array:
--
-- client_authenticated: 	0/1  (1=angemeldet)
-- client_ip:			IP-Adresse des Clients
-- client_loginname: 		Anmeldename
-- client_type:			fms32, crusader, monitord
--
-- Rückgabewert:
-- 0 = an Client senden,
-- 1 = nicht an Client senden,
-- alle anderen = an Client senden
--

local toShowFMS = {"11111111", "22222222"} ;
local toShowPOCSAG = {"1111111", "2222222"} ;
local toShowZVEI = {"99000", "99001"} ;

function filter() 

	local dummyValue=1 ;

	-- DEBUG-Info: Alles ausgeben
	for index,testwert in pairs(arg) do 
		print(index)
		print(testwert)
	end	

	-- ZVEI
	if(arg["typ"] == "zvei") then
		for index,testwert in pairs(toShowZVEI) do 
			if(testwert == arg["zvei"]) then
				return 0
			end
		end
	end

	-- FMS
	if(arg["typ"] == "fms") then
		for index,testwert in pairs(toShowFMS) do 
			if(testwert == arg["fmskennung"]) then
				return 0
			end
		end
	end

	-- POCSAG
	if(arg["typ"] == "pocsag") then
		for index,testwert in pairs(toShowPOCSAG) do 
			if(testwert == arg["ric"]) then
				return 0
			end
		end
	end
	
	-- default: anzeige unterdruecken
	return 1;

end