MATLAB
MATLAB/Simulink kann benutzt werden, um die Routinen zu optimieren. Reale Daten liegen durch die Log-Files vor.
Der Raspi wird ja sogar direkt durch MATLAB/Simulink unterstützt. Wer dieses Paket nicht hat, kann erstmal zu Fuß mit den Logs von CCU.IO weitermachen.
Als Erstes werden die Logs eingelesen und probeweise jede Variable einmal geplottet :
ccuio_logs.m :
% 2016-12-12 Version 0.1, Lese die Logs ein, zunaechst die eines Tages
% date = datestr(<unixtime>/86400 + datenum(1970,1,1))
T=readtable ('devices-variables.log.2016-11-29.txt') ;
varnames = {'unixtime'; 'id'; 'value'} ;
T.Properties.VariableNames = varnames; % writetable (T, 'tback.txt') ;
B = sortrows(T,2);
j=1 ; i=1 ;
while (true)
idx = B (i,2).id ;
jdx = idx ;
Dt = [] ;
Dv = [] ;
k = 0 ;
while ( jdx == idx )
xtime = B (i,1).unixtime ;
xvalue= str2num (cell2mat ( B (i,3).value ));
Dt = [Dt ; xtime ] ;
Dv = [Dv ; xvalue] ;
i = i+1 ;
jdx = B(i,2).id ;
k = k + 1;
end
try plot (Dt, Dv)
end
j=j+1 ;
disp ( [i j k jdx] )
pause
end
Und beliebig viele Schritte können folgen ...