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 ...