Skip to content

Commit 40c7ee1

Browse files
authored
Merge pull request #620 from mathieucarbou/restart
Expose restart and max_current through mqtt
2 parents 290528a + 383cf8d commit 40c7ee1

File tree

4 files changed

+16
-1
lines changed

4 files changed

+16
-1
lines changed

docs/mqtt.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ Main settings:
4848

4949
`<base-topic>/divertmode/set [1 | 2]` : enable (1)/ disable (2) divert mode
5050
`<base-topic>/shaper/set [0 | 1]` : temporary enable (1)/ disable (0) current shaper ( doesn't survive reboot )
51+
`<base-topic>/restart` : restarts the gateway
52+
5153

5254

5355
MQTT setup is pre-populated with OpenEnergyMonitor [emonPi default MQTT server credentials](https://guide.openenergymonitor.org/technical/credentials/#mqtt).

src/divert.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -245,10 +245,10 @@ void DivertTask::update_state()
245245
if(_state != current_evse_state)
246246
{
247247
_state = current_evse_state;
248-
event["divert_active"] = isActive();
249248
}
250249
}
251250

251+
event["divert_active"] = isActive();
252252
event["charge_rate"] = _charge_rate;
253253
event["trigger_current"] = trigger_current;
254254
event["voltage"] = voltage;

src/input.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ class InputTask : public MicroTasks::Task
7373
event["vehicle"] = evse.isVehicleConnected() ? 1 : 0;
7474
event["colour"] = evse.getStateColour();
7575
event["pilot"] = evse.getChargeCurrent();
76+
event["max_current"] = evse.getMaxCurrent();
7677
event["manual_override"] = manual.isActive() ? 1 : 0; //TODO: remove this
7778
event["status"] = evse.getState().toString();
7879
event["elapsed"] = evse.getSessionElapsed();
@@ -104,6 +105,7 @@ void create_rapi_json(JsonDocument &doc)
104105
doc["voltage"] = evse.getVoltage() * VOLTS_SCALE_FACTOR;
105106
doc["power"] = evse.getPower() * POWER_SCALE_FACTOR;
106107
doc["pilot"] = evse.getChargeCurrent();
108+
doc["max_current"] = evse.getMaxCurrent();
107109
if(evse.isTemperatureValid(EVSE_MONITOR_TEMP_MONITOR)) {
108110
doc["temp"] = evse.getTemperature(EVSE_MONITOR_TEMP_MONITOR) * TEMP_SCALE_FACTOR;
109111
} else {

src/mqtt.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,11 @@ void mqttmsg_callback(MongooseString topic, MongooseString payload) {
183183
mqtt_clear_schedule(payload_str.toInt());
184184
}
185185

186+
// Restart
187+
else if (topic_string == mqtt_topic + "/restart") {
188+
restart_system();
189+
}
190+
186191
else
187192
{
188193
// If MQTT message is RAPI command
@@ -360,6 +365,12 @@ mqtt_connect()
360365
mqtt_sub_topic = mqtt_topic + "/schedule/clear";
361366
mqttclient.subscribe(mqtt_sub_topic);
362367
yield();
368+
369+
// ask for a system restart
370+
mqtt_sub_topic = mqtt_topic + "/restart";
371+
mqttclient.subscribe(mqtt_sub_topic);
372+
yield();
373+
363374
connecting = false;
364375
});
365376

0 commit comments

Comments
 (0)