Hallo zusammen
Ich steh gerade etwas auf dem Schlauch. Ich möchte automatisch eine neue Kategorie mit dem Namen der Sensor-ID erstellen, wenn ich Daten eines neuen Lora-Sensors dem LoraWAN-Netz erhalte. Die Daten erhalte ich, das ist nicht das Problem, aber das Erstellen der Kategorien bereitet mir Kopfzerbrechen.
Als eindeutige ID verwende ich die DeviceID. Diese ID setze ich auch als „Ident“ der Kategorie, damit der eigentliche Variablenname auch geändert werden kann bei Bedarf. Natürlich suche ich dann diesen Ident auch bevor ich eine neue Kategorie erstelle.
Dazu verwende ich folgenden Script:
//Auswerten nach Sensor-DEVID --> Pro Sensor eine neue Kategorie anlegen
//prüfen, ob die Kategorie bereits existiert
$sensorkategorie = 32586;
$kategorieID = IPS_GetObjectIDByIdent($daten_decodiert["devid"], $sensorkategorie);
if ($kategorieID === false)
{
echo "Kategorie nicht gefunden. Erstelle Kategorie für Sensor ".$daten_decodiert["devid"]."\r\n";
$catID = IPS_CreateCategory();
IPS_SetName($catID, $daten_decodiert["devid"]);
IPS_SetIdent($catID, $daten_decodiert["devid"]);
IPS_SetParent($catID, $sensorkategorie);
}
else
echo "Die Kategorien-ID lautet: ". $kategorieID;
Dabei kriege ich aber folgende Fehlermeldung:
Warning: Objekt mit Ident A81758FFFE06E3FA wurde nicht gefunden in C:\ProgramData\Symcon\scripts\58331.ips.php on line 22
Kategorie nicht gefunden. Erstelle Kategorie für Sensor A81758FFFE06E3FA
Warning: Ident muss für jede Ebene eindeutig sein in C:\ProgramData\Symcon\scripts\58331.ips.php on line 28
Die 1. Warnung ist nachvollziehbar, weil ich kein @ vor IPS_GetObjectIDByIdent habe und es diese Kategorie noch nicht gibt. Aber die Zweite Warnung verstehe ich nicht. Die erste Warnung sagt ja aus, dass es diese ID noch nicht gibt, wie kann dann etwas nicht eindeutig sein ?