IP-Symcon WS300-Series Modul

Einsatz:

Einheitliche Implementierung von WS300-Series Sensoren (Devices) von verschieden Empfangsgeräte (Splitter) in IP-Symcon 

Download: www.tdressler.net

Komponenten:

Kompatibilität und Voraussetzungen

Installation

Die Datei ws300series.dll muss in das IP-Symcon-“modules“-Unterverzeichnis kopiert werden. Anschließend muss der Dienst neu gestartet werden.

Konfiguration:

Zunächst muss das passende Splittermodul für die eingesetzte Hardware ausgewählt und eine Instanz angelegt werden. Dazu (entsprechend der jeweils gültigen IP-Symcon-Dokumentation ) in der Verwaltungskonsole "Objekt hinzufügen"->"Instanz-Hinzufügen" auswählen. Im nächsten Fenster erst den Haken bei "Alle Module anzeigen" machen, dann kann man links die Sektion "Splitter auswählen, wodurch rechts alle Splittermodule auftauchen. Dort kann das entsprechende Splittermodul selektiert und der Dialog mit OK verlassen werden.




Anschließend muss die Konfiguration überprüft werden. Bei Bedarf legt das Splittermodul sich eine passende "Übergeordnete-Instanz" an, verwendet aber bevorzugt schon vorhandene kompatible Parents. Diese Auswahl muss unbedingt geprüft und ggf. korrigiert werden.  

Wichtig: Sind im System schon "SendText-Interface kompatible"-IO-Instanzen vorhanden, wird sich das Modul diese Instanz bei Neuanlage als parent suchen. Das kann leider dazu führen, das deren Konfiguration geändert wird. Diese Konflikte müssen z.Z. manuell evtl. mit einer Neuanlage einer IO-Instanz und deren Zuweisung an den WS300-Splitter gelöst werden (siehe "Bekannte Probleme"

Die eingestellte Konfiguration muss nun noch mit "Übernehmen" und "OK" bestätigt werden. Evtl. noch notwendige Zusatzkonfigurationen können leider auf Grund einer Beschränkung des aktuellen IP-Symcon-SDK nicht auf diesen Seiten vorgenommen, aber über PHP-Funktionen eingestellt werden. Dazu ist die Modulreferenz zu konsultieren.

Bei einer richtigen Verknüpfung von Parent (IO-Modul) und Splitter ist von nun an ein Datenempfang und Verarbeitung möglich. Nach Ablauf der eingestellten (IPWE1 und WS300PC =300s) bzw. vorgegebenen (WDE1 =ca. 180s) Ausleseintervalle sollten die angeschlossenen Sensoren als neue Objekte angelegt worden sein. Beim FS20WUE werden die Instancen nach der erfolgreichen Auswertung des Empfanges angelegt. Das manuelle Erstellen der Sensor-Instanzen ist deshalb i.d.R. nicht notwendig. Bei Problemen und Fehlanzeigen liefert die Debug-Funktion wertvolle Hinweise 

WSWIN-Unterstützung (nicht für FS20WUE)

Zur Nutzung der ab Modulversion V2.20.68 vorhandenen WSWIN-Unterstützung muss in IPS mittels der xxx_setWsWinFile('<Dateiname>') -Funktion ein Dateiname übergeben werden, worin die Daten für den WSWIN-Dateiüberwachungsmodus gespeichert werden. Details dazu in der Funktionsreferenz. Diese Datei wird unmittelbar nach dem Auslesen durch WSWIN gelöscht und kann in der Regel nur gefunden werden, wenn WSWIN nicht läuft.

WSWIN muss für den Dateiüberwachungsmodus(CSV) ohne echtes Interface konfiguriert werden (Menü Wetterstation->Interface->Dateiüberwachung). Als Wetterstation kann der Typ „WS2000PC“ verwendet werden. Details finden sich in der WSWIN-Hilfe.




Als Regenmenge wird das Produkt aus Zählerstand und Umrechnungsfaktor (Summe=Typ134) übergeben . Nicht genutzte Felder erhalten den Wert „0“. Bei der WS300PC der Luftdruck wie aus dem Interface gemeldet übergeben. Da darin schon die Korrektur für die Höhe enthalten ist, darf im WSWIN Höhe „0“ ohne Korrektur eingetragen werden.

Referenz

1. IPWE1

Funktion

Extrahiert Daten aus der Webseite des IPWE1-Empfängers

Status-Variablen

keine

Konfiguration




PHP-Funktionen

Alle Funktionen haben im PHP den Präfix "IPWE1_"

Beispiel: IPWE1_SetInterval(600); //Ausleseintervall=600s
Hinweis: Die gleiche Funktionalität bietet das WWWReader-Modul auf seiner Konfigurationsseite. Zusätzlich ist dort die Checkbox "Timer aktiviert" zu setzen.
Beispiel: IPWE1_SetLogFile("ipwe1.log"); //Log to %IP-Symcon%\ipwe1.log
Time;Typ;id;Name;Temp;Hum;Wind;Rain
2009-04-17 07:54:49;T/F;0; Wohnzimmer;21.9;43;;; 
2009-04-17 07:54:49;T/F;1; Büro UG;20.4;45;;; 
2009-04-17 07:54:49;T/F;4; S300;23.1;46;;; 
2009-04-17 07:54:49;T/F;5; Werkstatt;23.2;0;;; 
2009-04-17 07:54:49;T/F;7;Serverschrank;18.3;0;;; 
2009-04-17 07:54:49;Kombi;8;Kombisensor;8.6;94;0.0;54.6;
Beispiel: IPWE1_SetWsWinFile("wswin.csv"); //Log to %IP-Symcon%\wswin.csv erzeugt eine Datei mit diesem Inhalt.
,,2,18,3,19,4,20,5,21,6,22,7,23,8,24,9,25,10,26,1,17,33,134,35
03.06.2010,20:38,18.6,58,21.9,62,25.5,35,0,0,23.6,46,0,0,0,0,22.6,0,0,0,0,0,0,0,0
Beispiel: IPWE1_SetAuth("admin:adminpw"); //Setzt User und Password für WWWReader
Hinweis: Die gleiche Funktionalität bietet das WWWReader-Modul auf seiner Konfigurationsseite. Zusatzlich ist dort die Checkbox "Benutze Authentifizierung" zu setzen.
Beispiel: IPWE1_SetRainPerCount(294); //Setzt Umrechnungskonstante auf 0.294mm Regen pro Tick

Alle Set-Funktionen müssen mit einem finalen Aufruf von IPS_ApplySettings übernommen werden.

2. WDE1

Funktion

Extrahiert Daten aus der Logging-Ausgabe des WDE1-Empfängers

Status-Variablen

keine

Konfiguration




PHP-Funktionen

Alle Funktionen haben im PHP den Präfix "WDE1_"

Beispiel: WDE1_SetLogFile("wde1.log"); //Log to %IP-Symcon%\wde1.log
Time;Typ;id;Name;Temp;Hum;Bat;Lost;Wind;Rain;Raining
2009-05-09 20:18:04;T/F;4;;23.2;46;;;;;NO 
2009-05-09 20:20:59;T/F;4;;23.3;46;;;;;NO 
2009-05-09 20:23:54;T/F;4;;23.2;46;;;;;NO 
2009-05-09 20:26:49;T/F;4;;23.2;45;;;;;NO
Beispiel: WDE1_SetWsWinFile("wswin.csv"); //Log to %IP-Symcon%\wswin.csv
,,2,18,3,19,4,20,5,21,6,22,7,23,8,24,9,25,10,26,1,17,33,134,35
03.06.2010,20:38,18.6,58,21.9,62,25.5,35,0,0,23.6,46,0,0,0,0,22.6,0,0,0,0,0,0,0,0
Beispiel: WDE1_SetRainPerCount(294); //Setzt Umrechnungskonstante auf 0.294mm Regen pro Tick

3. WS300PC

Funktion

Extrahiert Daten aus der USB-Schnittstelle des WS300PC Loggers

Status-Variablen

Konfiguration






PHP-Funktionen

Alle Funktionen haben im PHP den Präfix "WS300PC_"

Beispiel: WS300PC_SetReadInterval(600); //Ausleseintervall=600s
liest das zuletzt eingestellte Ausleseintervall
Beispiel: WS300PC_SetLogFile("ws300.log"); //Log to %IP-Symcon%\ws300pc.log
Time;Typ;id;Name;Temp;Hum;Bat;Lost;Wind;Rain;IsRaining;RainCounter;Pressure;willi;
2009-05-09 21:37:34;;4;;23.4;45;OK;0;
2009-05-09 21:37:34;;9;;23.7;47;;;;;;;1023;0;
2009-05-09 21:42:34;;4;;23.4;45;OK;0;
2009-05-09 21:42:34;;9;;23.8;47;;;;;;;1023;0;
2009-05-09 21:47:35;;9;;23.8;47;;;;;;;1023;0;
Beispiel: WS300PC_SetWsWinFile("wswin.csv"); //Log to %IP-Symcon%\wswin.csv
,,2,18,3,19,4,20,5,21,6,22,7,23,8,24,9,25,10,26,1,17,33,134,35
03.06.2010,20:38,18.6,58,21.9,62,25.5,35,0,0,23.6,46,0,0,0,0,22.6,0,0,0,0,0,0,0,0
Anmerkung:
Mit dieser Funktion wird der älteste verfügbare Record in der WS300PC ausgelesen und aus dem Speicher gelöscht. Sind keine Fehler aufgetreten, wird True zurückgegeben. Durch mehrfaches Aufrufen der Funktion bis False können alle gespeicherten Sätze nach und nach ausgelesen werden. Dabei ist die max. Laufzeit eines PHP-Scriptes (30s) zu beachten, da das vollständige Auslesen mehrere Minuten in Anspruch nehmen kann. Im folgenden Beispiel wird deshalb das Script immer wieder neu gestartet, bis keine Daten mehr da sind oder ein Fehler vorliegt. Die Anzahl der Sätze wird dabei in der Statusvariablen "HistoryRecordCount", das Datum des letzten Satzes in der Status-Variable "LastHistoryRecord" und der letzte Rückgabe-Status in der Variable "MoreHistoryRecords" zur nachträglichen Auswertung abgelegt.
Beispiel-Script: ws300_auslesen.php
<?php 

//Fügen Sie hier ihren Skriptquellcode ein,
if (WS300PC_getNextRecord(37470 /*[WS300PC USB]*/,'alldata.log') { 
        IPS_RunScript($IPS_SELF);
}
?>

4. FS20WUE

Funktion

Verarbeitung der Daten des FS20WUE Empfängers. Es werden sowohl die Wetterdaten der WS300 Sensoren als auch empfangene FS20 Daten (z.B von der FS20FB oder FS20 Regensensor) ausgewertet.

Status-Variablen

Das Modul hat keine Status-Variablen

Konfiguration






PHP-Funktionen

Alle Funktionen haben im PHP den Präfix "FS20WUE__"

Beispiel:FS20WUE_SetLogFile($id,"fs20wue_wetter.log"); //Log to %IP-Symcon%\fs20wue_wetter.log
Time;Typ;id;Name;Temp;Hum;Bat;Lost;Wind;Rain;IsRaining;RainCounter;Pressure;willi;
	2009-05-09 21:37:34;;4;;23.4;45;OK;0;
	2009-05-09 21:37:34;;9;;23.7;47;;;;;;;1023;0;
	2009-05-09 21:42:34;;4;;23.4;45;OK;0;
	2009-05-09 21:42:34;;9;;23.8;47;;;;;;;1023;0;
	2009-05-09 21:47:35;;9;;23.8;47;;;;;;;1023;0;
Beispiel: FS20WUE_SetRainPerCount($id,294); //Setzt Umrechnungskonstante auf 0.294mm Regen pro Tick

Beispiel:Testscript

<?php
 //Fügen Sie hier Ihren Skriptquellcode ein
$id=52002;
FS20WUE_SetRainPerCount($id,360);
print FS20WUE_GetRainPerCount($id)."\n";
print FS20WUE_GetComPort($id)."\n";
FS20WUE_SetLogFile($id,'fs20wue.log');
print FS20WUE_GetLogFile($id)."\n";
?>






4. WS300Device

Funktion

Anzeige der von den Splittern aufgearbeiteten Sensor-Daten. Dabei wir für jeden Sensor pro Splitter eine eigene Instanz angelegt und mit dem anlegenden Splitter verknüpft. Jede Instanz referenziert auf die Device-ID des Sensors. Sensoren mit der Device-ID 0-7 sind reine Temperatur (und Feuchte-)-Sensoren. Der Kombisensor hat immer die ID8 und der interne Sensor der WS300PC die ID9. Letztere haben zusätzliche Funktionen.

Status-Variablen

für alle Sensoren
für den Kombi-Sensor
für den Internen WS300PC-Sensor

für Funksensoren, die an eine WS300PC senden

Konfiguration

keine Konfiguration erforderlich

PHP-Funktionen

Alle Funktionen haben im PHP den Präfix "WS300SENSOR_"




Bekannte Probleme

10.05.2009 16:30:49.134 | 41988 | MESSAGE | WS300 Series Sensor | Creating...
10.05.2009 16:30:49.134 | 41988 | DEBUG | WS300 Series Sensor | Set Device ID:5
10.05.2009 16:30:49.135 | 41988 | ERROR | WS300 Series Sensor | Variable #20688 existiert nicht
10.05.2009 16:30:49.135 | 41988 | ERROR | WS300 Series Sensor | Variable #40400 existiert nicht
10.05.2009 16:30:49.135 | 41988 | ERROR | WS300 Series Sensor | Variable #42021 existiert nicht



Index
Disclaimer

© 2009-2012 Thomas Dreßler
Alle Rechte vorbehalten
letzte Änderung 02.05.2012