Borrar filtros
Borrar filtros

MATLAB code has not completed execution within the allocated time. Consider optimizing your MATLAB code to execute within the available time limit.

6 visualizaciones (últimos 30 días)
MATLAB code has not completed execution within the allocated time.
Consider optimizing your MATLAB code to execute within the available time limit.
  4 comentarios
naveen s
naveen s el 2 de Mayo de 2024
Editada: Christopher Stapels el 7 de Mayo de 2024
% Define ThingSpeak URL
channelID = '2406188'; % Replace 'YourChannelID' with your actual ThingSpeak channel ID
% Provide the ThingSpeak alerts API key. All alerts API keys start with TAK.
alertApiKey = 'takxxxxxxxxxxxxxxxx';
% Set the address for the HTTTP call
alertUrl="https://api.thingspeak.com/alerts/send";
readAPIKey = 'yyyyyyyyyyyyyyyy'; % Replace 'YourReadAPIKey' with your actual ThingSpeak read API key
thingSpeakURL = ['https://api.thingspeak.com/channels/', channelID, '/fields/1/last.json?api_key=', readAPIKey];
% webwrite uses weboptions to add required headers. Alerts needs a ThingSpeak-Alerts-API-Key header.
options = weboptions("HeaderFields", ["ThingSpeak-Alerts-API-Key", alertApiKey ]);
% Set the email subject.
alertSubject = sprintf("Temperature alert");
threshold = 25;
% Read last temperature value from ThingSpeak channel
data = webread(thingSpeakURL);
% Check the structure of the data variable
disp(data);
% Extract temperature value from the data struct
if isfield(data, 'field1')
temperature = str2double(data.field1);
% Check if temperature exceeds threshold
if temperature > threshold
% Display alert message
fprintf('Temperature alert! Current temperature: %.2f\n', temperature);
% Send email alert
recipientEmail = 'nithinnaveen50@gmail.com'; % Specify the recipient email address
subject = 'Temperature Alert'; % Email subject
message = sprintf('Temperature alert! Current temperature: %.2f', temperature); % Email message
% Configure email settings vdjuiqfdvplznyjb
setpref('Internet','SMTP_Server','smtp.gmail.com');
setpref('Internet','E_mail','ncbsthermocouple@gmail.com');
setpref('Internet','SMTP_Username','ncbsthermocouple@gmail.com');
setpref('Internet','SMTP_Password','****************');
% Send email
sendmail(recipientEmail, subject, message);
% (Add your email sending code here)
else
fprintf('Temperature normal. Current temperature: %.2f\n', temperature);
end
else
disp('Error: Temperature data not found in response.');
end

Iniciar sesión para comentar.

Respuesta aceptada

Christopher Stapels
Christopher Stapels el 7 de Mayo de 2024
I suggest using thingSpeakRead and the Alerts service. Your code will preform much faster and you wont have these errors.
  3 comentarios
naveen s
naveen s el 7 de Mayo de 2024
% Define ThingSpeak URL
channelID = '2406188'; % Replace 'YourChannelID' with your actual ThingSpeak channel ID
% Provide the ThingSpeak alerts API key. All alerts API keys start with TAK.
alertApiKey = 'takxxxxxxxxxxxxxxxx';
% Set the address for the HTTTP call
alertUrl="https://api.thingspeak.com/alerts/send";
readAPIKey = 'yyyyyyyyyyyyyyyy'; % Replace 'YourReadAPIKey' with your actual ThingSpeak read API key
thingSpeakURL = ['https://api.thingspeak.com/channels/', channelID, '/fields/1/last.json?api_key=', readAPIKey];
% webwrite uses weboptions to add required headers. Alerts needs a ThingSpeak-Alerts-API-Key header.
options = weboptions("HeaderFields", ["ThingSpeak-Alerts-API-Key", alertApiKey ]);
% Set the email subject.
alertSubject = sprintf("Temperature alert");
threshold = 25;
% Read last temperature value from ThingSpeak channel
data = webread(thingSpeakURL);
% Check the structure of the data variable
disp(data);
% Extract temperature value from the data struct
if isfield(data, 'field1')
temperature = str2double(data.field1);
% Check if temperature exceeds threshold
if temperature > threshold
% Display alert message
fprintf('Temperature alert! Current temperature: %.2f\n', temperature);
% Send email alert
recipientEmail = 'nithinnaveen50@gmail.com'; % Specify the recipient email address
subject = 'Temperature Alert'; % Email subject
message = sprintf('Temperature alert! Current temperature: %.2f', temperature); % Email message
% Configure email settings vdjuiqfdvplznyjb
setpref('Internet','SMTP_Server','smtp.gmail.com');
setpref('Internet','E_mail','ncbsthermocouple@gmail.com');
setpref('Internet','SMTP_Username','ncbsthermocouple@gmail.com');
setpref('Internet','SMTP_Password','****************');
% Send email
sendmail(recipientEmail, subject, message);
% (Add your email sending code here)
else
fprintf('Temperature normal. Current temperature: %.2f\n', temperature);
end
else
disp('Error: Temperature data not found in response.');
end
Christopher Stapels
Christopher Stapels el 7 de Mayo de 2024
ThingSpeak wont allow you to send emails to anyone but yourself. The SMTP code wont work in ThingSpeak code.
What you can do is to use the alerts service to forward it to yourself and then set a rule in your inbox to forward to additional emails. You can use a trigger code in the email body or subject so that your email client can detect the emails you want to forward.
Also you can use a thrd party service like Twillio. They take care of making sure the users you wnat to send emails to have opted in. ThingSpeak and Mathworks dont have a process for that agreement for emails from MATLAB. You can use MATLAB analysis code to trigger the Twillio API. There are many posts in this forum that show the method.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Write Data to Channel en Help Center y File Exchange.

Productos

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by