command that returns the date and time and the day of the week
-
Hi @kl3m3n, I hope you're well.
As I'm using GPRS and need to save data, I didn't want to have to access NTP servers to set the local RTC.
As you have already done with the "ping" command, is it possible to create a command that returns the date and time and the day of the week, such as: 2025-07-03 5
Thanks
Best regards -
Hello @kl3m3n,
Sorry, that's now correct
2025-07-05 12:45:01 6
Sunday is weekday 7
Monday is weekday 1 -
@Sato Hi!
You can do this in the following way:
Set the format to:
"yyyy-MM-dd hh:mm:ss dddd"
The dddd part should give the days:
Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday.Create a lookup table to convert this into a number from 1 to 7.
P.S.: You can replace dddd with ddd, which will give you the short names for the days (e.g., Mon, Sun, ...).
Best regards,
Kl3m3n -
Hello @kl3m3n,
Thanks, after all this already exists in Gui-O, Real-time clock (RTC)
I should have paid more attention when reading the manual, I'm sorry to be bothering you with something you've already implemented and from what I can see, a long time ago.
In the next few days I'll check it out and use it to get the MCP7940 right.
Thank you
Best regards -
@Sato No problem!
-
Thank you @kl3m3n,
I've tried this, but it doesn't work, what mistake am I making?
Serial.print("MQTT CONECTED " ); Serial.println(mqttClient.state()); mqttClient.subscribe(&Out[0]); //subscrive topic
mqttClient.publish(&In[0], "RTC UID:rtc1 HID:rtc\r\n");
Main loop {
//for testing every 1000ms
Serial.println("Get rtc ");
//mqttClient.publish(&In[0], "@rtc1 RTCF:'HH:mm:ss' RTCR:2.0\n\r");
mqttClient.publish(&In[0], "@rtc1 RTCF:HH:mm:ss RTCR:2.0\n\r");
}void parseGuioMsg(const String &msg) {
Serial.print("Callback Gui-O ");
Serial.println(msg); // @init usr: //// here without reactionif (msg.startsWith("@rtc1")) {
Serial.print("Show RTC "); // here without reaction too
Serial.println(msg);
}
} -
Hello kl3m3n,
Now i receive the callback @rtc1. The ceation of the command was on the wrong part of the code.
Sorry and Thank You
Best regards
-
@Sato Yes, you were missing the '|' character.
BR,
Kl3m3n -
Hello @kl3m3n,
You are right, but i continue have a problem with RTC, the ddd show not the dayofweek. Have you a idea what it is wrong?
Thank Youvoid generateTheGUI {
getRtc = 0;
Serial.println("Create command RTC");
mqttClient.publish(&In[0], "|RTC UID:rtc1 HID:rtc\r\n");
app_on = 1;
}Main loop {
//only one time
if ((app_on == 1) && (getRtc == 0)) {
//mqttClient.publish(&In[0], "@rtc1\n\r"); ////same output on Serial Monitor
//mqttClient.publish(&In[0], "@rtc1 RTCF:hh:mm:ss ddd RTCR:5.0\n\r"); //same output on Serial Monitor
mqttClient.publish(&In[0], "@rtc1 RTCF:'hh:mm:ss ddd' RTCR:1.5\n\r"); //same output on Serial Monitor
delay(150);
mqttClient.publish(&In[0], "@rtc1 RTCE:0\n\r"); //Disable RTC ??????????????
getRtc = 1;
delay(150);
}
}void parseGuioMsg(const String &msg) {
if (msg.startsWith("@rtc1")) {
Serial.print("Show RTC ");
Serial.println(msg);
}
}On Serial Monitor, a few times, like this...
Show RTC @rtc1 2025/07/07 22:32:31:696 dev:W 0001 x.x uuid:d3f1c986-16b3-47
End Parse
Show RTC @rtc1 2025/07/07 22:32:33:696 dev:W 0001 x.x uuid:d3f1c986-16b3-47
End Parse
Show RTC @rtc1 2025/07/07 22:32:34:694 dev:W 0001 x.x uuid:d3f1c986-16b3-47
End Parse