Void Function in neuer Void

Hallo,
Ich bin dabei mein ESP mit HomeKit auszustatten bzw. zu integrieren.
Unabhängig von der Steuerung über die Apple Home Kit benötige ich auch eine Möglichkeit, über eine url/Link eine Funktion auszulösen die das gleiche bewirkt wie die void Funktion für das HomeKit.

Wie schaffe ich es folgende Funktion:

void cha_switch_on_setter(const homekit_value_t value) {
	bool on = value.bool_value;
	cha_switch_on.value.bool_value = on;	//sync the value
	LOG_D("Switch: %s", on ? "ON" : "OFF");
	digitalWrite(PIN_SWITCH, on ? LOW : HIGH);
}

In der Funktion:

void handleSwitchBulb() {}

Auszulösen?
Später wird das mit
http://IP-Adresse/switchBulb

Ausgelöst..
Bisher hatte ich sowas immer mit
functionname(); gelöst aber da weitere Variablen innerhalb der function definiert sind, schaffe ich es nicht die Funktion so einzubinden.

Ich hoffe ihr könnt mein Anliegen verstehen und mir helfen.

Hier ist der Beispiel-Sketch zum einbinden im HomeKit..

Die Funktion verlangt einen Parameter:

homekit_value_t value

Den musst Du auf jeden Fall auch übergeben, wenn Du die Funktion von woanders aufrufen willst.

Wenn Du die Signatur von handleSwitchBulb() nicht verändern darfst geht das wie gewohnt - mit einer globalen Variablen.

void handleSwitchBulb() 
{
  cha_switch_on_setter(valueWhichIsGlobal);
}

Falls Du da dran ändern darfst, wie von MicroBahner vorgeschlagen:

void handleSwitchBulb(const homekit_value_t valueIntoBulb) 
{
  cha_switch_on_setter(valueIntoBulb);
}

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.