Auslesescript für XS1 Sensordaten

Nachdem einiger meiner WS2000 Sensoren den Geist aufgegeben haben, musste ich mich nach einer alternative Umsehen und bin dabei auf die Ventus W831 (auch als TFA Nexus bekannt) gestossen. Diese Wetterstation für 99Eur enthält neben dem Display auch Funksensoren für Regen, Wind(Stärke, Richtung und Boen) und kann bis zu 5 Temperatur/Feuchte empfangen. Die Station hat ein USB Interface, leider mit einem propritären Protokoll. Aber die Funksensoren werden von dem eigentlich von mir ungeliebten, aber netzwerkfähigen Ezcontrol XS1 empfangen. Da das XS1 auch die Sensoren der WS2000 und WS300-Reihen sowie HMS, EM1000 und FS20,FHT empfangen kann, auf eine SDCard loggen sowie auch Aktoren ansteuern kann, habe ich doch ins Portemonaise gegriffen und mir das XS1 gekauft.

Zum Auslesen der Sensordaten über die Json Schnittstelle habe ich nun ein Script nach Vorbild meines CUL/CUN-Scriptes geschrieben, welches die Daten aller aktiven Sensoren regelmäßig abfragt. Ihr findet es (wie immer mit Beschreibung) hier.

Tommi

Hallo ,
giebt es eine Möglichkeit einen Actuator zustand aus dem EZControl XS1 in ips anzuzeigen ? Kann mir da mal jemand bei helfen?Ich habe schon einmal das Script von „tommi“ dazu missbraucht und habe dazu alle ´sensor´variabele in áctor´
variabele umgeschrieben aber da kam anschliessend nur Müll bei raus.Ich habe zwar einige Werte angezeigt bekommen aber die waren alle durcheinander (Actorzustände mit Temperaturangaben ) Nur sensordaten auslesen bekomme ich hin.
Aber ich möchte einige Actoren angezeigt bekommen zb Zustand eines Rolladens (Geöffnet / Geschlossen ) Licht an/ aus) usw.
Ich möchte die Actoren auch garnicht bedienen können , Anzeige würde mir reichen.
wäre sehr Dankbar für Hilfe
Michael

Auf die schnelle mal das ohne IPS. Damit werden alle Schalter gesucht und der Zustand ausgewertet.Das Zuordnen der IPS-Variablen bekommst Du selber hin.

<?php
$xs1 = 'http://xs1/';
$url = $xs1."control?callback=list";
$idcol='pos'; 
//json needed, should be standard in IPS2.6 with PHP 5.4
if ( !function_exists('json_encode') || !function_exists('json_decode') )
{
	print "This requires PHP JSON support
";
	return;
}
//read actor list
$cmd = $url.'&cmd=get_list_actuators';
$xs1data = file_get_contents($cmd);
$json=preg_replace('/list\((\{.*\})\)/s','\1',$xs1data);
$data = json_decode($json);
if (!$data){
	 print "XS1 no data returned
";
	return;
}
$n=0;
foreach ($data->actuator as $dev) {
	
	$n++; 
	$addr=isset($dev->{$idcol})?$dev->{$idcol}:$n;
	$addr=sprintf("%02d",$addr); //format string
	$type=$dev->{'type'};
	if ($type == 'disabled') {
		continue;
	}
	$devname=$dev->{'name'};
	$val=$dev->{'value'};
	switch ($type) {
		case 'switch':
			$status=($val>0)?'ON':'OFF';
			break;
		default:continue 2;
	}
	$utime=$dev->{'utime'};
	$datum=date("d.m.y H:i:s",$utime);
	print "Actuator ID:".$addr." Type:".$type. " Name:".$devname." Status:".$status." Zeit:".$datum."
";
}
?>

Herzlichen Dank:)

Hallo nochmal,
die Zuordnung der variablen bekomme ich leider nicht hin , ich würde mich freuen wenn du mir nochmal helfen köntest:(
gruss , michael

woran klemmts?

Hallo,
Ich habe das skript eingebunden , ich bekomme auch beim ausführen des Skriptes alle Aktoren bzw Schalter in der skript Ausgabe angezeigt.
In der Ausgabe erscheint :
Notice : undefined Variable: Idcol in c:\ip-symcon\scripts\56956.ips.php on line23
Actuator id:02 Type:Switch Name:Lampe Status : Off…
Soweit io , aber ich weiß einfach nicht wie ich die Variable mit diesem skript verbinden soll damit ich den Status in webfront angezeigt bekomme.diese notice undefined Variable on line 23 macht mir auch Kopfzerbrechen . Und bat Not List warum werden meine Rolladenschalter nicht mit aufgeführt die ich im ezcontrol mit eingebunden habe??
Wie gesagt ich möchte nur den Status im webfront sehen sowie bei meinen homematic rolladenschaltern.
Wäre für ein paar Tipps sehr dankbar.
MfG Michael

eine Status-Variable mit Profile Switch anlegen und an diese Variable ein Script anhängen, welches den Schalter bei Variablenänderung entweder mit der preset oder set_state_actuator-Methode des XS1(siehe XS1 doku) betätigt. Beim Schalten mit set_state_actuator wird auch der Status zurückgegeben.

Äh , jetzt funktioniert es .nochmals vielen dank.

Hallo tommi,
Es funktioniert sehr wohl dein Script , es werden auch alle Actoren aus meinem Ezcontrol angezeigt , aber nur in der Scriptausgabe. Da war ich glaube ich zu voreilig mit meiner Aussage das es funktioniert.
Ich bekomme es einfach nicht gebacken dort Variabele zu zuordnen.
Ich habe es jetzt mit einem Befehl gebacken bekommen :

Echo sys_getUrlContent (http://ip_ezcontrol/preset?switch=2&value=on");
Echo sys_getUrlContent (http://ip_ezcontrol/preset?switch=2&value=of");
Aber das ist keine so elegante Lösung.
Kanst du mir noch mal einen tip geben.

Geht doch nicht, ich bin zu dumm…

Ich bekomme es einfach nicht mit den Variablen gebacken .kann mir jemand mal ein Beispiel posten

Ich bedanke mich sehr für Eure Hilfe…
Ich habe immer noch kein Studium in Elektrotechnik belegt!!

Studium der Elektrotechnik nutzt auch nichts,lesen und beschäftigen mit der Dokumentation von IPS, PHP und XS1 hilft mehr. Die meiste Denkarbeit zum Auslesen und Ansteuern des XS1 steckt schon in diesen Scripten. Das Anpassen auf Deine Bedürfnisse wird Dir hier niemand abnehmen können.

Tommi

O Mann , bin ich blind …
Ich habe mich jetzt ein bisschen eingelesen ,ich dachte das ich keine Skripte aus anderen Programmteilen ( ezcontrol , oder sonst wo ) einfach ins ips einbinden kann. Du hast vollkommen recht , wer lesen kann ist klar im Vorteil. Ich gelobe Besserung.Aber ich finde nicht immer die Zeit dafür. Und glaube mir ich habe bald das ganze Forum durchgelesen. Ich gehöre zu den Leuten die einfach alles haben wollen und möglichst wenig dafür tun müssen.Aber du hast mir die Augen geöffnet.ps meine Aktoren funktionieren jetzt so wie ich es haben wollte ( freu) . Jetzt geht es weiter mit der led Steuerung projet-868 rgb und mit meiner Musik (sonos und sqeezebox) .ich glaube das wird noch ganz schön spannend.und wenn ich dann alles eingepflegt habe im ipsymcon wage ich mal an das Dashboard ran , da habe ich bis jetzt schon mal reingeblickt aber da versehe ich überhaupt nicht wie es funktioniert …
Ich bedanke mich für deine Hilfe.
MfG
Michael