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