Frage an die Modulentwickler (bzw. wo finde ich die geheime Doku)

Ja genau so mache ich das auch und über den Punkt „Befehl testen“ funktioniert das Schalten auch.

Public Methoden werde als Instanz-Funktionen von Symcon verstanden. Dazu kommt davor das Präfix aus der module.json. Das steht auch in der Doku :wink:
Beispiel:

Zuerst im Abschnitt Konfigurationsformular der SDK Doku einmal die benötigten Elemente (CheckBox) raussuchen. Und wie man Eigenschaft einer Instanz registriert und liest: RegisterPropertyBoolean — IP-Symcon :: Automatisierungssoftware
Dann kannst du vor dem Senden prüfen ob die Eigenschaften aktiv ist oder nicht.

Sorry, verstehe die Frage nicht :sweat_smile:
Michael

OK die letzte Frage war vielleicht etwas aus der Hüfte geschossen :joy:

Bleibt nur noch die Frage nach der Standardaktion.

Die wurden doch beantwortet :confused:
Aktion aktivieren mit EnableAction (SDK Doku)
Und dann in RequestAction den ident und wert verarbeiten.
Michael

OK hab ich gemacht aber das läuft noch nicht, werde ich mir aber noch mal näher ansehen.

Auf jeden Fall hab ich mir das Ganze jetzt im Webfront angeschaut und wenn ich da irgendetwas einstelle kommt es sauber an der Steuerung an. Ich bin sehr begeistert.

Wenn ich jetzt noch raus bekomme wie ich die ab und an kommenden Meldungen über Zeitüberschreitung raus bekomme ist das Teil für mich perfekt nutzbar. :ok_hand:

Der Beitrag hier oben, genauer das verlinkte TestModule ist genau das.
Eine Variable ‚TestVariable‘ mit Standardaktion und dann in RequestAction die Verarbeitung der Aktion. In diesem TestModule wird einfach nur die Variable gesetzt. Du müsstest dann deine Schreibfunktion ausführen.

Michael

Ja genau das mache ich. Beim Schalten über das Webfront funktioniert es auch. Beim Ändern des Wertes über den Objektbaum nicht. Ist aber egal, da es mir darauf ankommt das Element sauber über die Oberfläche bzw. ein Skript setzen zu können.

		public function RequestAction($Ident, $Value) 
        { 
            switch ($Ident) 
            { 
                case 'eosSetTempValue':
                    $this->SetTempValue($Value);
                    break;
                default:
                    break; 
            }
        }

		public function SetTempValue(int $Value)
        {
            if($Value < 30) {$Value = 30;}
            if($Value > 115) {$Value = 115;}
            if ($this->ReadPropertyBoolean('StatusEmulieren') == true)
            {
                $this->SetValue('eosSetTempValue', $Value);
            }
            $this->WriteData(151, $Value);
        }

		private function WriteData($Address, $Value)
		{
			$DataID = "{E310B701-4AE7-458E-B618-EC13A1A6F6A8}"; 
			$Function = 6;
			$Quantity = 2;
			$Data = pack('n', $Value );

			set_error_handler([$this, 'ModulErrorHandler']);
			$response = $this->SendDataToParent(json_encode(Array("DataID" => $DataID, "Function" => $Function, "Address" => $Address , "Quantity" => $Quantity, "Data" => $Data)));
			restore_error_handler();
			
			return true;
		}

Richtig!
Das ging noch nie, auch nicht bei Symcon internen Modulen.
Michael

Ahhhh dann kann ich ja lange suchen. Dann bin ich also mit dem Teil fertig.
Vielen Dank für de geduldige Antworten! Ist auch nicht überall selbstverständlich.
Schönes Wochenende!