onChange function not called on change

This code controls a battery balancer for a two-battery system. It runs well but none of the functions are called automatically if variables like the one below are changed:

CloudElectricPotential battery01Voltage;
CloudElectricPotential totalBatteryVoltage;
CloudElectricPotential voltageDifference;

It only works because I call all necessary functions under certain conditions, from within loop().

    // Wenn fünf Messungen durchgeführt wurden
    if (measurementCount == numMeasurements) {
      // Berechne den Mittelwert
      float avgBattery01Voltage = 0;
      float avgTotalBatteryVoltage = 0;
      for (int i = 0; i < numMeasurements; i++) {
        avgBattery01Voltage += (measurementsBattery01[i] / 1023.0) * 5.0 * ((10.0 + 3.3) / 3.3);
        avgTotalBatteryVoltage += (measurementsTotalBattery[i] / 1023.0) * 5.0 * ((10.0 + 1.3) / 1.3);
      }
      avgBattery01Voltage /= numMeasurements;
      avgTotalBatteryVoltage /= numMeasurements;

      // Setze den Zähler und die Zwischenspeicher zurück
      measurementCount = 0;


      // Setzen nur neue Werte solange der Balancer nicht aktiv ist
      if (balancer_Active == false) {

      // Speichere die Mittelwerte in den Cloud-Variablen
      battery01Voltage = avgBattery01Voltage;
      totalBatteryVoltage = avgTotalBatteryVoltage;

      // Berechnung von battery02Voltage
      battery02Voltage = totalBatteryVoltage - battery01Voltage;

      //Berechne die absolute Differenz der beiden Batteriespannungen
      voltageDifference = fabs(battery01Voltage - battery02Voltage);
      }

      // Arbeite alle Funktionen ab
      onVoltageDifferenceChange();
      onIsBattery01VoltageHighChange();
      onIsBattery01VoltageLowChange();
      onIsBattery02VoltageHighChange();
      onIsBattery02VoltageLowChange();

      // Falls wir in der Beruhigungsphase sind, verlasse wir loop sofort
      if (equalizationStartTime != 0) {
        if (millis() - equalizationStartTime < 20000) { // 20 seconds pause
          // Deaktiviere die Mosfet Status damit wir in onBalancerActiveChange() den Status von bool Balancer_Active neu bewerten können
          mosfetBattery01 = false;
          mosfetBattery02 = false;
          
          // Status von bool balancer_Active updaten
          onBalancerActiveChange();