how to set disk standby timeout

For manage disk install the utility hdparm
in debian/ubuntu/rasbian/bananian:

apt-get install hdparm

running the command:

hdparm -S60 /dev/sda

set temporary set timeout spindown disk.

for finally set,  edit the file /etc/hdparm.conf:

/dev/sda {
      spindown_time = 180
}

/dev/sda is the device to managed, here sda is the sata disk on my banana pi.

Install samba service (windows share)

Install with:
apt-get install samba samba-common-bin
backup the original configuration file:
cd /etc/samba
cp smb.conf smb.conf.original
edit the configuration file:
nano smb.conf

uncomment:
# security = user

for each directory that you want add

[download]
comment = Downloads directory
path = /downloads
writeable = yes

insert the authorized users:
smbpasswd -a claudio
Restart the service:
/etc/init.d/samba restart
or
service samba restart

 

Mount a disk at boot

Edit the file /etc/fstab
and insert row

/dev/sda /sata ext4 defaults 0 2

/dev/sda1 is the address of device to mount
/sata is the mount point
ext4 is the file system
defaults default settings for the mount (like rw,suid,dev,exec,auto,nouser,async).
0 backup
2 priority

Script php estrazione dati da db per tasker

Considerando una tabella nel db fatta così:

Tabella interventi
id | id_cliente	| tipo_intervento	| descrizione  
---------------------------------------------------
1 |	21	| 	a1 		| desc1 
2 | 	25	| 	a2 		| desc2 
3 | 	25 	| 	a3 		| desc3 
4 | 	29 	| 	a4 		| desc4 
5 | 	30 	| 	a5 		| desc5 


Questo è lo script php

define( 'DB_HOST', 'localhost' );
define( 'DB_USER', 'user' );
define( 'DB_PASSWORD', 'pass');
define( 'DB_NAME', 'nomedb' );

//connessione al db
$conn_id = @mysql_connect(DB_HOST, DB_USER, DB_PASSWORD) or die ('KO|500|problema temporaneo del server (Internal Server Error)1');
@mysql_select_db(DB_NAME, $conn_id) or die ('KO|500|problema temporaneo del server (Internal Server Error)2');
// @mysql_query("SET NAMES '".DB_CHARSET."'", $conn_id) or die ('KO|500|problema temporaneo del server (Internal Server Error)3');

$query = "SELECT * FROM interventi WHERE id_cliente = 25";

$result = mysql_query($query, $conn_id);

while ($data = mysql_fetch_assoc($result)) {
	$arraydati[] = $data;
}

echo json_encode($arraydati);

questo il risultato dello script

[
	{"id":"2","id_cliente":"25","tipo_intervento":"a2","descrizione":"desc2"},
	{"id":"3","id_cliente":"25","tipo_intervento":"a3","descrizione":"desc3"}
]

Ed in fine questo è lo scriptlet

var httpd = global('HTTPD');
var jsonparsed = [];
jsonparsed = JSON.parse(httpd);
setGlobal('TIPO', jsonparsed[0].tipo_intervento);

La differenza è nel tipo di dato generato, nell’esempio di facebook il risultato è un array unidimenzionale invece il risultato di quella query è un array bidimensionale.
Infatti vengono estratte 2 righe dalla tabella, in ogni caso anche se il risultato è una sola riga, per come è strutturato lo script php, lo scriptlet funziona.
La differenza è nel jsonparsed[0].
0 per la prima riga, 1 per la seconda ecc.

Visualizzare i like di una pagina facebook in un widget con tasker

Questo task permette di avere il numero di facebook  likes di una pagina in un widget.
image

Per il widget sto usando Zooper pro ma è possibile utilizzare qualsiasi altra app che legga le variabili di tasker (uccw, minimalistic text, ecc. )

Il task può essere accoppiato ad un profilo di cron orario.
image

Fa una richiesta al server facebook, alla pagina http://graph.facebook.com/facebookpage, riceve il risultato in json. Uno scriptlet parsa i dati
image

ed in fine viene messo in una variabile per il widget.

I like è solo una delle molte informazioni che la pagina graph di facebook restituisce.

Questo è uno screen del task
image

Questa è la descrizione testuale del task
Facebook Like (25)
A1: Ottieni HTTP [ Server:Porta:http://graph.facebook.com/facebookpage Percorso: Attributi: Cookies: User Agent: Timeout:10 Tipo Mime:text/plain File di Uscita: Fidati di qualsiasi certificato:Off ]
A2: JavaScriptlet [ Codice:var httpd = global(‘HTTPD’);
var jsonparsed =[];
jsonparsed = JSON.parse(httpd);
setGlobal(‘LIKES’, jsonparsed.likes); Librerie: Auto Uscita:On Timeout (Secondi):45 ]
A3: Zooper Widget Pro Variable [ Configurazione:#TLIKES# = %LIKES Pacchetto:org.zooper.zwpro Nome:Zooper Widget Pro Variable Timeout (Secondi):0 ]

Questo invece è l’xml

<TaskerData sr="" dvi="1" tv="4.6u2m">
	<Task sr="task25">
		<cdate>1355744034829</cdate>
		<edate>1423088721783</edate>
		<id>25</id>
		<nme>Facebook Like</nme>
		<pri>10</pri>
		<Action sr="act0" ve="7">
			<code>118</code>
			<Str sr="arg0" ve="3">http://graph.facebook.com/facebookpage</Str>
			<Str sr="arg1" ve="3"/>
			<Str sr="arg2" ve="3"/>
			<Str sr="arg3" ve="3"/>
			<Str sr="arg4" ve="3"/>
			<Int sr="arg5" val="10"/>
			<Str sr="arg6" ve="3">text/plain</Str>
			<Str sr="arg7" ve="3"/>
			<Int sr="arg8" val="0"/>
		</Action>
		<Action sr="act1" ve="7">
			<code>129</code>
			<Str sr="arg0" ve="3">var httpd = global('HTTPD');
var jsonparsed =[];
jsonparsed = JSON.parse(httpd);
setGlobal('LIKES', jsonparsed.likes);</Str>
			<Str sr="arg1" ve="3"/>
			<Int sr="arg2" val="1"/>
			<Int sr="arg3" val="45"/>
		</Action>
		<Action sr="act2" ve="7">
			<code>31664</code>
			<Bundle sr="arg0">
				<Vals sr="val">
					<com.twofortyfouram.locale.intent.extra.BLURB>#TLIKES# = %LIKES</com.twofortyfouram.locale.intent.extra.BLURB>
					<com.twofortyfouram.locale.intent.extra.BLURB-type>java.lang.String</com.twofortyfouram.locale.intent.extra.BLURB-type>
					<net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS>org.zooper.zw.tasker.var.extra.STRING_TEXT</net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS>
					<net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS-type>java.lang.String</net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS-type>
					<net.dinglisch.android.tasker.subbundled>true</net.dinglisch.android.tasker.subbundled>
					<net.dinglisch.android.tasker.subbundled-type>java.lang.Boolean</net.dinglisch.android.tasker.subbundled-type>
					<org.zooper.zw.tasker.var.extra.INT_VERSION_CODE>1</org.zooper.zw.tasker.var.extra.INT_VERSION_CODE>
					<org.zooper.zw.tasker.var.extra.INT_VERSION_CODE-type>java.lang.Integer</org.zooper.zw.tasker.var.extra.INT_VERSION_CODE-type>
					<org.zooper.zw.tasker.var.extra.STRING_TEXT>%LIKES</org.zooper.zw.tasker.var.extra.STRING_TEXT>
					<org.zooper.zw.tasker.var.extra.STRING_TEXT-type>java.lang.String</org.zooper.zw.tasker.var.extra.STRING_TEXT-type>
					<org.zooper.zw.tasker.var.extra.STRING_VAR>LIKES</org.zooper.zw.tasker.var.extra.STRING_VAR>
					<org.zooper.zw.tasker.var.extra.STRING_VAR-type>java.lang.String</org.zooper.zw.tasker.var.extra.STRING_VAR-type>
				</Vals>
			</Bundle>
			<Str sr="arg1" ve="3">org.zooper.zwpro</Str>
			<Str sr="arg2" ve="3">Zooper Widget Pro Variable</Str>
			<Int sr="arg3" val="0"/>
		</Action>
		<Img sr="icn" ve="2">
			<cls>com.facebook.katana.LoginActivity</cls>
			<pkg>com.facebook.katana</pkg>
		</Img>
	</Task>
</TaskerData>