% Template MATLAB code for prediction from a channel as a 2D line plot using PLOT function. % Zweipunkteform der Geradengleichung % Anpassen an eigene Applikation readChannelID = [167884]; % Eigener Kanal fieldID1 = [1 2]; % für die ersten beiden Felder (Temperatur, Feuchte) NumberOfData = 50; % die letzten 50 Datenpunkte holen est_time = 5; % letzten 5 Minuten zur Identifikation (Learning) pred_time= 5; % 5 Minuten Vorhersage der Zukunft (Prädiktion) % Channel Read API Key, if your channel is private, then enter the read API Key between the '' below: readAPIKey = ''; %% Read Data % [data, time] = thingSpeakRead(readChannelID, 'Field', fieldID1, 'NumPoints', NumberOfData, 'ReadKey', readAPIKey); % Auswahl der Zeitachse i = find(time > time(end)-minutes(est_time)); % Alle Daten aus Lernfenster t = minutes(time(i)-time(i(1))); % Zeitachse Minuten t_est = [t; (t(end)+.1:t(end)+pred_time)']; % mit Prädiktionshorizont time_est= time(i(1))+minutes(t_est); % Zeitachse mit Datum und Stunde % Für alle gewünschten Felder for feldindex = 1:length(fieldID1) % Modell für jedes Feld mess = data(i,feldindex); % Messdaten Punkt1 = mess(1); t1=t(1); % Erster Messpunkt Punkt2 = mess(end); t2=t(end); % Zweiter Messpunkt Steigung = (Punkt2-Punkt1)/(t2-t1); % Zweipunktform Offset = (Punkt1*t2-Punkt2*t1)/(t2-t1); Vorhersage(:,feldindex) = Steigung * t_est + Offset; % Polynomauswertung end plot(time, data,'o',time_est,Vorhersage);