Hilf mir Fehler finden...

Ich stehe gerade auf dem Schlauch, bitte helft mir runter.

Folgende Situation:
Eigenes Modul, dieses definiert einen SetReceiveDataFilter

$this->SetReceiveDataFilter(".*\"DeviceID\":".hexdec($this->ReadPropertyString("DeviceIDRet")).".*");

der Filter sieht in Lesbar so aus:

.„DeviceID“:4291626509.

der Wert von „DeviceIDRet“ war „FFCD060D“ und ist durch hexdec umgerechnet worden.

ABER, der Filter zieht nicht, ich hab mir man dann mal den Json-String ausgeben lassen, der sieht so aus:

{„DataID“:"{DE2DA2C0-7A28-4D23-A9AA-6D1C7609C7EC}",„Device“:165,„Status“:32,„DeviceID“:-3340787,„DataLength“:4,„DataByte12“:0,„DataByte11“:0,„DataByte10“:0,„DataByte9“:0,„DataByte8“:0,„DataByte7“:0,„DataByte6“:0,„DataByte5“:0,„DataByte4“:0,„DataByte3“:0,„DataByte2“:23,„DataByte1“:1,„DataByte0“:10}

Warum steht in der DeviceID ein Minus-Wert?´
Interessanterweise ein paar Zeilen später gebe ich mir die Device-ID aus, dazwischen folgende Code-Zeilen:

$data = json_decode($JSONString);
			$this->SendDebug("EnoceanGatewayData", $JSONString, 0);
			
			IPS_LogMessage("FSB14 Device ID (HEX)",dechex($data->{'DeviceID'}));

Ergebnis des Log:

25.05.2018 10:41:30 | FSB14 Device ID (HEX) | ffcd060d

Also ist irgendwie in dem jsonstring schon das richtige drin, aber irgendwo hab ich nen Denkfehler… kann mal einer ein Auge drauf werfen bitte

Bitte folgendes testen:
$this->SetReceiveDataFilter(".„DeviceID“:".(int)hexdec($this->ReadPropertyString(„DeviceIDRet“)).".");

Hintergrund (32Bit / 64Bit, Überlauf Integer) steht hier:
https://www.symcon.de/forum/showthread.php?p=360857
Michael

Ja, funktioniert. vielen Dank… oh mann… wie bist du auf die Idee gekommen??