diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/devicesettings/DeviceSettingsPreferenceConst.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/devicesettings/DeviceSettingsPreferenceConst.java
index 778fa9572a..9ec70f94eb 100644
--- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/devicesettings/DeviceSettingsPreferenceConst.java
+++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/devicesettings/DeviceSettingsPreferenceConst.java
@@ -679,6 +679,7 @@ public class DeviceSettingsPreferenceConst {
public static final String PREF_BATTERY_MINIMUM_CHARGE = "battery_minimum_charge";
public static final String PREF_BATTERY_MAXIMUM_CHARGE = "battery_maximum_charge";
public static final String PREF_BATTERY_ALLOW_PASS_THROUGH = "battery_allow_pass_through";
+ public static final String PREF_OUTPUT_POWER_GRID = "output_power_grid";
public static final String PREF_DISPLAY_ENABLED = "display_enabled";
public static final String PREF_DISPLAY_ENABLED_ALL_DAY = "display_all_day";
diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/devicesettings/DeviceSpecificSettingsFragment.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/devicesettings/DeviceSpecificSettingsFragment.java
index ef5e5b2c27..025083d94d 100644
--- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/devicesettings/DeviceSpecificSettingsFragment.java
+++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/devicesettings/DeviceSpecificSettingsFragment.java
@@ -1003,6 +1003,7 @@ public class DeviceSpecificSettingsFragment extends AbstractPreferenceFragment i
addPreferenceHandlerFor(PREF_BATTERY_MINIMUM_CHARGE);
addPreferenceHandlerFor(PREF_BATTERY_MAXIMUM_CHARGE);
addPreferenceHandlerFor(PREF_BATTERY_ALLOW_PASS_THROUGH);
+ addPreferenceHandlerFor(PREF_OUTPUT_POWER_GRID);
addPreferenceHandlerFor(PREF_DISPLAY_ENABLED);
addPreferenceHandlerFor(PREF_DISPLAY_ENABLED_ALL_DAY);
@@ -1363,12 +1364,15 @@ public class DeviceSpecificSettingsFragment extends AbstractPreferenceFragment i
setInputTypeFor(PREF_CALENDAR_SYNC_EVENTS_AMOUNT, InputType.TYPE_CLASS_NUMBER);
setInputTypeFor(PREF_CALENDAR_MAX_TITLE_LENGTH, InputType.TYPE_CLASS_NUMBER);
setInputTypeFor(PREF_CALENDAR_MAX_DESC_LENGTH, InputType.TYPE_CLASS_NUMBER);
- setNumericInputTypeWithRangeFor(DeviceSettingsPreferenceConst.PREF_BATTERY_DISCHARGE_INTERVAL1_WATT, 80, 800, false);
- setNumericInputTypeWithRangeFor(DeviceSettingsPreferenceConst.PREF_BATTERY_DISCHARGE_INTERVAL2_WATT, 80, 800, false);
- setNumericInputTypeWithRangeFor(DeviceSettingsPreferenceConst.PREF_BATTERY_DISCHARGE_INTERVAL3_WATT, 80, 800, false);
- setNumericInputTypeWithRangeFor(DeviceSettingsPreferenceConst.PREF_BATTERY_DISCHARGE_INTERVAL4_WATT, 80, 800, false);
- setNumericInputTypeWithRangeFor(DeviceSettingsPreferenceConst.PREF_BATTERY_DISCHARGE_INTERVAL5_WATT, 80, 800, false);
+ setNumericInputTypeWithRangeFor(PREF_BATTERY_DISCHARGE_INTERVAL1_WATT, 80, 800, false);
+ setNumericInputTypeWithRangeFor(PREF_BATTERY_DISCHARGE_INTERVAL2_WATT, 80, 800, false);
+ setNumericInputTypeWithRangeFor(PREF_BATTERY_DISCHARGE_INTERVAL3_WATT, 80, 800, false);
+ setNumericInputTypeWithRangeFor(PREF_BATTERY_DISCHARGE_INTERVAL4_WATT, 80, 800, false);
+ setNumericInputTypeWithRangeFor(PREF_BATTERY_DISCHARGE_INTERVAL5_WATT, 80, 800, false);
+ setNumericInputTypeWithRangeFor(PREF_OUTPUT_POWER_GRID, 0, 2400, false);
+
setNumericInputTypeWithRangeFor(PREF_BATTERY_MINIMUM_CHARGE, 0, 100, false);
+ setNumericInputTypeWithRangeFor(PREF_BATTERY_MAXIMUM_CHARGE, 0, 100, false);
new PasswordCapabilityImpl().registerPreferences(getContext(), coordinator.getPasswordCapability(), this);
new HeartRateCapability().registerPreferences(getContext(), coordinator.getHeartRateMeasurementIntervals(), this);
diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/zendure/SolarFlowDeviceCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/zendure/SolarFlowDeviceCoordinator.java
index 248c17cc05..a394bfd47a 100644
--- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/zendure/SolarFlowDeviceCoordinator.java
+++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/zendure/SolarFlowDeviceCoordinator.java
@@ -92,6 +92,7 @@ public class SolarFlowDeviceCoordinator extends AbstractBLEDeviceCoordinator {
return new int[]{
R.xml.devicesettings_battery_minimum_charge,
R.xml.devicesettings_battery_maximum_charge,
+ R.xml.devicesettings_output_power_grid,
};
}
diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/zendure/SolarFlowDeviceSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/zendure/SolarFlowDeviceSupport.java
index c3e3b79690..28bc2c46f7 100644
--- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/zendure/SolarFlowDeviceSupport.java
+++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/zendure/SolarFlowDeviceSupport.java
@@ -18,6 +18,7 @@ package nodomain.freeyourgadget.gadgetbridge.service.devices.zendure;
import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_BATTERY_MAXIMUM_CHARGE;
import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_BATTERY_MINIMUM_CHARGE;
+import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_OUTPUT_POWER_GRID;
import android.bluetooth.BluetoothGatt;
import android.bluetooth.BluetoothGattCharacteristic;
@@ -162,6 +163,12 @@ public class SolarFlowDeviceSupport extends AbstractBTLESingleDeviceSupport {
if (socSet > 100) socSet = 100;
sendWriteProperty("socSet", socSet * 10);
}
+ case PREF_OUTPUT_POWER_GRID -> {
+ int outputLimit = devicePrefs.getInt(PREF_OUTPUT_POWER_GRID, 800);
+ if (outputLimit < 0) outputLimit = 0;
+ if (outputLimit > 2400) outputLimit = 2400;
+ sendWriteProperty("outputLimit", outputLimit);
+ }
default -> LOG.warn("Unknown config changed: {}", config);
}
}
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 6b300d7c7a..2a0792a075 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -2184,6 +2184,7 @@
Coospo HW807
Garmin HRM 200
Coospo H9Z
+ SolarFlow
Nothing
Status
@@ -4133,6 +4134,7 @@
Discharge interval 4
Discharge interval 5
Power in W
+ Output power to grid in W
when disabled, this assumes intelligent discharge controlled by an external power meter (not supported by Gadgetbridge)
Manual discharge intervals
Send configuration below to device
diff --git a/app/src/main/res/xml/devicesettings_output_power_grid.xml b/app/src/main/res/xml/devicesettings_output_power_grid.xml
new file mode 100644
index 0000000000..dad6c7500e
--- /dev/null
+++ b/app/src/main/res/xml/devicesettings_output_power_grid.xml
@@ -0,0 +1,10 @@
+
+
+
+
\ No newline at end of file