Variable in Modul erstellen

Ich bastel gerade an einem Modul und möchte eine Variable erstellen. Das klappt auch, allerdings wird diese immer im Root von Symcon und nicht oberhalb des Moduls erstellt.

Den Code habe ich aus einem Script geklaut, in einem Modul tut er so aber nicht - auf jeden Fall der $_IPS[‚SELF‘] anscheinend nicht


			$ID_thb_temp = @IPS_GetVariableIDByName("Station - Temp", $_IPS['SELF']);
			if($ID_thb_temp === false)
			{
				$ID_thb_temp = IPS_CreateVariable(3);
				IPS_SetName($ID_thb_temp, "Station - Temp");
				IPS_SetParent($ID_thb_temp, $_IPS['SELF']);
			}

			SetValue($ID_thb_temp,(string)$thb_temp);


Alles löschen und das hier lesen und nutzen:
RegisterVariableFloat — IP-Symcon :: Automatisierungssoftware
Und wenn der Name auch gleich übersetzt werden soll, das hier beim Namen nutzen:
https://www.symcon.de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/translate/

Michael

Danke - geht!

Für die, die auch an dem Problem hängen (ich lege eine Variable für die Temperatur an)

In der „public function Create“ (hier wird die Variable angelegt beim Anlegen der Moduls)

$this->RegisterPropertyInteger(„SourceID“, 0);
$this->RegisterVariableFloat(„BaseStation“, „Base Temperature“, „~Temperature“);

In der „public function SyncStation()“ <= wobei SyncStation der freie Name der Funktion ist

$sourceID = $this->ReadPropertyInteger(„SourceID“);
SetValue($this->GetIDForIdent(„BaseStation“), (float)$thb_temp);

Damit ging es - evtl. hilft es einem anderen noop :smiley: