Home Automation Blog
- Details
- Zugriffe: 33385
Achtung: Luxtronik.pm ist aktuell eine Testversion. Das Modul ist funktionsfähig, aber möglicherweise nicht ausreichend getestet.
Eine Haftung für Schäden, die eventuell durch Verwendung des Moduls entstehen, wird nicht übernommen. Die Verwendung erfolgt auf eigenes Risiko!
Download-Link unten am Ende der Seite
Installation:
1. Luxtronik.pm in ein Diskverzeichnis kopieren
2. Das Kommando > use lib "/path/to/your/directory" < im aufrufenden Skript verwenden, um das Modul einzubinden.
Luxtronik.pm
NAME
Luxtronik - Steuern und Abfragen einer Luxtronik 1 Steuerung
VERSION
Dieses Dokument bezieht sich auf die Version 0.5 der Luxtronik-Schnittstelle. Veroeffentlicht am 18.10.2014
SYNOPSIS
use Luxtronik;
my $luxtronik = Luxtronik->new();
# Hole Informationsdaten der Luxtronik-Steuerung: $luxtronik->update_infos();
# Speichere alle Temperatuerwerte in Liste @temperatur: my @temperatur = $luxtronik->temperaturen();
# Lege Ruecklauftemperatur in $tr ab: my $tr = $luxtronik->temperaturen('ruecklauf')
# Schalte Warmwasserbereitung ab: $luxtronik->warmwasser('aus');
BESCHREIBUNG
Luxtronik.pm stellt eine objektorientierte Schnittstelle zur Kommunikation mit einer Luxtronik-Steuerung (Hardwareversion 1) bereit.
KONSTRUKTORMETHODEN
- $luxtronik = Luxtronik->new();
- $luxtronik = Luxtronik->new(serialport => '/dev/ttyS0', request_retries => 5);
-
Diese Methode erzeugt das Luxtronik-Objekt und gibt es zurueck.
Option Voreinstellung Beschreibung ------ -------------- ------------ serialport /dev/ttyS0 Gibt die zu verwendente serielle Schnittstelle an. request_retries 5 Gibt an, wie oft im Belegungsfall versucht wird, eine Kommunikation mit der Luxtronik ueber die serielle Schnittstelle durchzufuehren.
OBJEKTMETHODEN
Bei den Objektmethoden wird zwischen aktiven und passiven Methoden unterschieden.
Aktive Methode: Baut bei Aufruf eine Kommunikationsverbindung zur Luxtronik auf und liest oder schreibt Daten ueber diese Verbindung.
Passive Methode: Baut bei Aufruf keine Kommunikationsverbindung zur Luxtronik auf. Gibt nur Objekteigenschaften zurueck, die ggf. vorher durch eine aktive Methode gesetzt wurden.
- $luxtronik->heizung;
- $luxtronik->heizung($action);
-
Bei Aufruf ohne Argument wird die Betriebsart der Heizung zurueckgegeben. Mit Argument kann die gewuenschte Betriebsart gesetzt werden.
Methodenart: aktiv
Moegliche Betriebsarten Argument ($action) ----------------------- ------------------ Automatik automatik Zweitwaermeerzeuger zwe Party party Ferien (wird derzeit noch nicht unterstuetzt) Aus aus
- $luxtronik->warmwasser;
- $luxtronik->warmwasser($action);
-
Bei Aufruf ohne Argument wird die Betriebsart der Warmwasserbereitung zurueckgegeben. Mit Argument kann die gewuenschte Betriebsart gesetzt werden.
Methodenart: aktiv
Moegliche Betriebsarten Argument ($action) ----------------------- ------------------ Automatik automatik Zweitwaermeerzeuger zwe Party party Ferien (wird derzeit noch nicht unterstuetzt) Aus aus
- $luxtronik->heizkurve;
- $luxtronik->heizkurve(\%hk);
-
Bei Aufruf ohne Argument wird eine Referenz auf einen Hash zurueckgegeben, der die aktuelle Heizkurve enthaelt.
Methodenart: aktiv
Hashkey: Bedeutung: -------- ---------- codeword Luxtronik Protokollcodewort elements Anzahl der aller Werte (ohne Codeword) abweichung Heizkurvenabweichug vom Standardwert -5 - +5 endpunkt Heizkurvenendpunkt parallelverschiebung Parallelverschiebung der Heizkurve absenkung Nachtabsenkung key6 unbekannter Wert key7 unbekannter Wert key8 unbekannter Wert key9 unbekannter Wert key10 unbekannter Wert
Alle zurueckgegebenen Temperaturwerte werden als zehntel Grad Celsius dargestellt. Ein Wert von 35 entspricht also 3,5 Grad Celsius.
Wird der Methode eine Referenz auf einen Hash uebergeben, welcher die Heizkurve enthaelt, dann diese Heizkurve gesetzt. Der Rueckgabewert entspricht in diesem Fall 1 (true).
Praxisbeispiel --------------
$hkref = $luxtronik->heizkurve; erzeuge Referenz auf Heizkurvenhash $hkref->{'abweichung'} = -15; Heizkurve um -1,5 Grad Celsius absenken $luxtronik->heizkurve($hkref); neue Heizkurve abspeichern
- $luxtronik->update_infos
-
Holt die aktuellen Informationsdaten der Luxtronik-Steuerung ab und speichert diese in den Objekteigenschaften. Diese Methode muss mindestens einmal aufgerufen werden, bevor eine der nachfolgend aufgefuehrten Abfragemethoden aufgerufen wird.
Methodenart: aktiv
- $luxtronik->info_time
-
Gibt Datum und Uhrzeit des letzten Aufrufs von $luxtronik->update_infos zurueck.
Methodenart: passiv
- $luxtronik->temperaturen
- $luxtronik->temperaturen('vorlauf')
- $luxtronik->temperaturen('ruecklauf')
- $luxtronik->temperaturen('ruecklauf_soll')
- $luxtronik->temperaturen('heissgas')
- $luxtronik->temperaturen('aussen')
- $luxtronik->temperaturen('brauchwasser_ist')
- $luxtronik->temperaturen('brauchwasser_soll')
- $luxtronik->temperaturen('waermequelle_ein')
- $luxtronik->temperaturen('kaeltekreis')
- $luxtronik->temperaturen('mischkreis1_vorlauf')
- $luxtronik->temperaturen('mischkreis1_vorlauf_soll')
- $luxtronik->temperaturen('raumstation')
-
Bei Aufruf ohne Argument wird eine Liste mit den u.g. Temperaturen in der aufgefuehrten Reihenfolge zurueckgegeben. Mit Argument wird der Wert der angefragten Temperatur als Skalar zurueckgegeben. Vor Aufruf diese Methode muss mindestens einmal $luxtronik->update_infos aufgerufen worden sein.
Methodenart: passiv
Temperaturen in Grad Celsius ---------------------------- Vorlauf Ruecklauf Ruecklauf Soll Heissgas Aussen Brauchwasser Ist Brauchwasser Soll Waermequelle Eingang Kaeltekreis Mischkreis 1 Vorlauf Mischkreis 1 Vorlauf Soll Raumstation
- $luxtronik->eingaenge
- $luxtronik->eingaenge('asd')
- $luxtronik->eingaenge('evu')
- $luxtronik->eingaenge('hd')
- $luxtronik->eingaenge('mot')
- $luxtronik->eingaenge('nd')
- $luxtronik->eingaenge('pex')
-
Bei Aufruf ohne Argument wird eine Liste mit den u.g. Eingaengen in der aufgefuehrten Reihenfolge zurueckgegeben. Mit Argument wird der Wert des angefragten Eingangs als Skalar zurueckgegeben. Vor Aufruf diese Methode muss mindestens einmal $luxtronik->update_infos aufgerufen worden sein.
Methodenart: passiv
Eingaenge --------- ASD EVU HD MOT ND PEX
- $luxtronik->ausgaenge
- $luxtronik->ausgaenge('abtauventil')
- $luxtronik->ausgaenge('bup')
- $luxtronik->ausgaenge('fup1')
- $luxtronik->ausgaenge('hup')
- $luxtronik->ausgaenge('mischer1_auf')
- $luxtronik->ausgaenge('mischer1_zu')
- $luxtronik->ausgaenge('ventilation')
- $luxtronik->ausgaenge('ventil_bosup')
- $luxtronik->ausgaenge('verdichter1')
- $luxtronik->ausgaenge('verdichter2')
- $luxtronik->ausgaenge('zup_zip')
- $luxtronik->ausgaenge('zwe1')
- $luxtronik->ausgaenge('zwe2_sst')
-
Bei Aufruf ohne Argument wird eine Liste mit den u.g. Ausgaengen in der aufgefuehrten Reihenfolge zurueckgegeben. Mit Argument wird der Wert des angefragten Ausgangs als Skalar zurueckgegeben. Vor Aufruf diese Methode muss mindestens einmal $luxtronik->update_infos aufgerufen worden sein.
Methodenart: passiv
Ausgaenge --------- Abtauventil Brauchwasserumwaelzpumpe Fussbodenheizungsumwaelzpumpe Heizungsumwaelzpumpe Ausgang Mischer 1 Auf Ausgang Mischer 1 Zu Ventilation Ventil BOSUP Verdichter 1 Verdichter 2 ZUP-ZIP ZWE1 ZWE2 SST
- $luxtronik->ablaufzeiten
- $luxtronik->ablaufzeiten('wp_seit')
- $luxtronik->ablaufzeiten('zwe1_sei')
- $luxtronik->ablaufzeiten('zwe2_seit')
- $luxtronik->ablaufzeiten('netzeinv')
- $luxtronik->ablaufzeiten('ssp_zeit_standzeit')
- $luxtronik->ablaufzeiten('ssp_zeit_einschverz')
- $luxtronik->ablaufzeiten('vd_stand')
- $luxtronik->ablaufzeiten('hrm_zeit')
- $luxtronik->ablaufzeiten('hrw_zeit')
- $luxtronik->ablaufzeiten('tdi_seit')
- $luxtronik->ablaufzeiten('sperre_bw')
-
Bei Aufruf ohne Argument wird eine Liste mit den u.g. Ablaufzeitn in der aufgefuehrten Reihenfolge zurueckgegeben. Mit Argument wird der Wert der angefragten Ablaufzeit als Skalar zurueckgegeben. Vor Aufruf diese Methode muss mindestens einmal $luxtronik->update_infos aufgerufen worden sein.
Methodenart: passiv
Ablaufzeiten ------------ WP seit ZWE 1 seit ZWE 2 seit Netzeinschaltverz Schaltspielsperre (SSP) Standzeit Schaltspielsperre (SSP) Einschverz VD Stand HRM Zeit HRW Zeit TDI seit Sperre BW
- $luxtronik->betriebsstunden
- $luxtronik->betriebsstunden('vd1')
- $luxtronik->betriebsstunden('vd1imp')
- $luxtronik->betriebsstunden('vd1dez')
- $luxtronik->betriebsstunden('vd2')
- $luxtronik->betriebsstunden('vd2imp')
- $luxtronik->betriebsstunden('vd2dez')
- $luxtronik->betriebsstunden('zwe1')
- $luxtronik->betriebsstunden('zwe2')
- $luxtronik->betriebsstunden('wp')
-
Bei Aufruf ohne Argument wird eine Liste mit den u.g. Betriebsstunden in der aufgefuehrten Reihenfolge zurueckgegeben. Mit Argument wird der Wert der angefragten Betriebsstunden als Skalar zurueckgegeben. Vor Aufruf diese Methode muss mindestens einmal $luxtronik->update_infos aufgerufen worden sein.
Methodenart: passiv
Betriebsstunden ---------------
VD1 VD1 Impulse VD1 deZ VD2 VD2 Impulse VD2 deZ ZWE1 ZWE2 WP
- $luxtronik->anlagenstatus
- $luxtronik->anlagenstatus('wp-typ')
- $luxtronik->anlagenstatus('sw-stand')
- $luxtronik->anlagenstatus('biv-stufe')
- $luxtronik->anlagenstatus('betriebszustand')
- $luxtronik->anlagenstatus('compact')
- $luxtronik->anlagenstatus('comfort')
- $luxtronik->anlagenstatus('einschaltzeitpunkt'
-
Bei Aufruf ohne Argument wird eine Liste mit den u.g. Anlagenstatus in der aufgefuehrten Reihenfolge zurueckgegeben. Mit Argument wird der Wert des angefragten Anlagenstatus als Skalar zurueckgegeben. Vor Aufruf diese Methode muss mindestens einmal $luxtronik->update_infos aufgerufen worden sein.
Methodenart: passiv
Anlagenstatus ------------- WP-Typ SW-Stand Biv-Stufe Betriebszustand Compact Comfort Einschaltzeitpunkt
- $luxtronik->fehlerspeicher
- $luxtronik->fehlerspeicher(0)
- $luxtronik->fehlerspeicher(1)
- $luxtronik->fehlerspeicher(2)
- $luxtronik->fehlerspeicher(3)
- $luxtronik->fehlerspeicher(4)
-
Bei Aufruf ohne Argument wird eine Liste mit den u.g. Fehlerspeichern in der aufgefuehrten Reihenfolge zurueckgegeben. Mit Argument wird der Wert des angefragten Fehlerspeichers als Skalar zurueckgegeben. Vor Aufruf diese Methode muss mindestens einmal $luxtronik->update_infos aufgerufen worden sein.
Methodenart: passiv
Fehlerspeicher -------------- 0 1 2 3 4
- $luxtronik->abschaltungen
- $luxtronik->abschaltungen(0)
- $luxtronik->abschaltungen(1)
- $luxtronik->abschaltungen(2)
- $luxtronik->abschaltungen(3)
- $luxtronik->abschaltungen(4)
-
Bei Aufruf ohne Argument wird eine Liste mit den u.g. Abschaltungen in der aufgefuehrten Reihenfolge zurueckgegeben. Mit Argument wird der Wert der angefragten Abschaltung als Skalar zurueckgegeben. Vor Aufruf diese Methode muss mindestens einmal $luxtronik->update_infos aufgerufen worden sein.
Methodenart: passiv
Abschaltung ----------- 0 1 2 3 4
- $luxtronik->informationen
- $luxtronik->informationen('csv')
-
Bei Aufruf ohne Argument wird eine Liste mit den u.g. Informationen in der aufgefuehrten Reihenfolge zurueckgegeben. Mit dem Argument 'csv' erfolgt die Ausgabe im CSV-Format (Trennung durch Semikolon). Vor Aufruf diese Methode muss mindestens einmal $luxtronik->update_infos aufgerufen worden sein.
Methodenart: passiv
Informationen ------------- Info Zeit (Zeitpunkt des letzten Aufrufs von $luxtronik->update_infos) Liste aller Temperaturen Liste aller Eingaenge Liste aller Ausgaenge Liste aller Ablaufzeiten Liste aller Betriebsstunden Liste aller Fehlerspeicher Liste aller Abschaltungen Liste aller Anlagenstatus
AUTHOR
Thomas Hoerndlein
COPYRIGHT
Copyright (c) 2012-2013, Thomas Hoerndlein. All rights reserved, some wrongs reversed.
- Details
- Zugriffe: 12600
ATTENTION: IPWE.pm is still a testing version. It works, but it might not be sufficiently tested.
To download IPWE.pm have a look at the bottom of this page.
Installation instructions:
1. copy IPWE.pm to some directory on your harddisk
2. use the command > use lib "/path/to/your/directory" < in your script to include this module.
IPWE.pm
NAME
IPWE - Query an IPWE 1 (IP-Wetterdatenempfaenger / IP weather data receiver)
VERSION
This document refers to version 0.41 of IPWE released 26.04.2010
SYNOPSIS
use IPWE;
my $url = "http://192.168.1.100";;
my $ipwe = IPWE->new(url => $url);
# print raw data for the whole IPWE (all sensors):
$ipwe->print;
# to get the sensor object for sensor 9:
my $s = $ipwe->sensor(9);
# print raw data for the current sensor object:
$s->print;
# let's get the humidity of the current sensor object:
my $humidity = $s->humidity();
# do something if it's raining:
if ($s->raining) {
# close_roof_window();
}
# Retrieve new information from the IPWE hardware device:
$ipwe->update;
# print temperature for all sensors:
foreach ($ipwe->sensor) {
print $_->temperature . "\n";
}
# for the lazy, instead of doing
my $s = $ipwe->sensor(9);
my $temperature = $s->temperature();
# you can also write:
my $temperature = $ipwe->sensor(9)->temperature();
DESCRIPTION
The IPWE 1 (IP-Wetterdatenempfaenger) is an electronic appliance from ELV (http://www.elv.de) which is able to receive weather information from up to nine local sensors.
This module provides an object oriented API to access the IPWE device and retrieve its sensor values.
While using this module you will have to deal with 10 objects - one of type "IPWE" for the IPWE device itself and nine of type "IPWE::Sensor" (one for each sensor).
CONSTRUCTOR METHODS
- $ipwe = IPWE->new(url => $url)
-
This method constructs a new IPWE object and returns it. During initialization the nine IPWE::Sensor objects will be created internally. There is no constructor method for IPWE:Sensor objects (of course there is a private method to construct them, otherwise we could not create IPWE::Sensor objects at all). A special method "$ipwe->sensor()" exists to return the sensor objects. See below for details.
IPWE OBJECT METHODS
- $ipwe->update
-
This method retrieves the current information from the IPWE hardware device and stores it into nine IPWE::Sensor objects (one object for each sensor). Return values: 1 if update was successful, 0 if unsuccessful.
- $s = $ipwe->
sensor($nr)
- @s = $ipwe->sensor
-
This method returns an IPWE::Sensor object. The first form returns the IPWE::Sensor object for the sensor identified by $nr. Possible values for $nr are digits from 1-9.
The second form without any arguments returns a list of all nine sensor objects.
- $ipwe->print
-
This prints out a nice table which shows all sensors and their values. Values shown are exactly what IPWE 1 reports via its web frond-end or telnet interface (adjust your terminal size, so that the output fits on your screen).
IPWE::Sensor OBJECT METHODS
These are the methods to be used in order to get the weather information from a particular sensor:
- $s->
temperature()
- $s->temperature("Fahrenheit")
- $s->temperature("Kelvin")
- $s->temperature("Rankine")
-
Returns the temperature if the sensor is able to report it. With no argument (default) the unit in °Celsius (°C). Possible other units are: "Fahrenheit", "Kelvin", "Rankine"
- $s->windspeed
- $s->windspeed("m/s)
- $s->windspeed("mph")
- $s->windspeed("kn")
-
Returns the wind speed if the sensor is able to report it. With no argument (default) the unit is km/h (kilometers per hour). Possible other units are: "m/s" (meters per second), "mph" (miles per hour), "kn" (knots)
- $s->beaufort_bezeichnung
-
Returns the Beaufort wind speed in text form (german), like "frische Briese", "orkanartiger Sturm", etc.
- $s->beaufort_description
-
Returns the Beaufort wind speed in text form (english), like "Fresh breeze", "Violent storm", etc.
- $s->rain
-
Returns the amount of rain if the sensor is able to report it. The unit is "mm/24h" which equals to "l/sqm/24h" (liter per square meter in 24 hours).
- $s->rain_beginning
-
Returns 1 (true) at rain beginning (the hash sign '#' preceeds the rain value in the web front-end of IPWE 1), otherwise the empty string "" will be returned.
- $s->rain_increased
-
Returns 1 (true) if the amount of rain has increased in comparison to the previously measured value, otherwise the empty string "" will be returned.
- $s->raining
-
Returns 1 (true) if either $s->rain_beginning or $s->rain_increased returns 1, otherwise the empty string "" will be returned.
- $s->new_values
-
Returns 1 (true) if the measured values for the specified sensor have changed after execution of $ipwe->update, otherwise 0 will be returned. This can be useful e.g. if you only want to know whether new sensor values are available or not in order to control your program flow.
- $s->print
-
This prints out a nice table which shows the information about the requested sensor. Values shown are exactly what IPWE 1 reports via its web frond-end or telnet interface (adjust your terminal size, so that the output fits on your screen).
DEPRECATED IPWE::Sensor OBJECT METHODS
Those are deprecated methods which still exist for backward compatibility. Do not use them any longer, they might disappear in futur releases:
- $s->raining_reported
-
This method is deprecated. Use $s->rain_beginning instead which does exactly the same.
- $s->raining_calculated
-
This method is deprecated. Use $s->rain_increased instead which does exactly the same.
REQUIRED MODULES
LWP::UserAgent; HTML::TableExtract;
AUTHOR
Thomas Hoerndlein
COPYRIGHT
Copyright (c) 2009, Thomas Hoerndlein. All rights reserved, some wrongs reversed. This module is free software. It may be used, redistributed and/or modified under the same terms as Perl itself.
- Details
- Zugriffe: 7242
Überblick
weatherinfo.pl ist ein simples CGI-Skript, welches aus den ipwewd-generierten Daten eine kleine Webseite baut. Beispiel: siehe Wetterinfo-Box auf der Startseite (Hauptmenü -> Home).
Voraussetzungen
- Halbwegs aktuelles Linux Betriebssystem, z.B. Debian 3.1 (Sarge) oder besser
- Perl-Interpreter
- ipwewd
Lizenz
weatherinfo.pl wurde unter der General Public License (GPL) veröffentlicht.
- Details
- Zugriffe: 43335
Überblick
Mit Hilfe des ipwewd können die Wetterdaten vom IP-Wetterdatenempfänger IPWE 1 automatisiert abgeholt werden. ipwewd konnektiert sich über das http-Protokoll mit dem IP-Wetterdatenempfänger und legt die bereitgestellten Wetterdaten in Dateien ab oder versendet sie über das TCP-Protokoll an weitere Verarbeitungstools.
Schnittstellen
ipwewd stellt zwei Dateischnittstellen zur Verfügung:
- Die Datei "ipwe.current" enthält den jeweils den zuletzt empfangenen Datensatz mit den jeweiligen Wetterdaten
- Die Datei "ipwe.history" enthält alle empfangenen Datensätze und baut somit eine Historie auf
Als weitere Schnittstelle kann ipwewd die Wetterdaten über eine TCP-Verbindung an einen sogenannten Weather Data Processor (WDProc) versenden. Ein WDProc ist eine Folgeverarbeitung, die aufgrund der empfangenen Wetterinformationen Aktionen durchführt.
Welche der drei Schnittstellen zum Einsatz kommen, lässt sich parametrisieren.
Das Datensatzformat ist für alle Schnittstellen identisch:
timestamp;type;address;description;temperature;humidity;wind-speed;rain;raining;
- timestamp: Vergangene Zeit in Sekunden seit 1.1.1970 00:00:00 Uhr
- type: Sensortyp, z.B. Kombisensor, etc.
- address: Adresse des Sensors
- description: Optionale Beschreibung des Sensors (in IPWE 1 einzurichten, falls gewünscht)
- temperature: Außentemparatur
- humidity: Luftfeuchtigkeit in %
- wind-speed: Windgeschwindigkeit
- rain: Regenmenge (letzte 24 h)
- raining: Regen-Sofortmeldung ("y" oder "n")
Beispieldatensätze:
1219542710;Kombi;;;12.0;88;4.4;1.2;n;
1219542860;Kombi;;;11.9;89;4.4;1.2;n;
1219543010;Kombi;;;11.9;89;4.7;1.2;n;
1219543160;Kombi;;;11.9;89;2.7;1.5;y;
1219543310;Kombi;;;11.9;89;4.4;1.5;n;
Voraussetzungen
- Halbwegs aktuelles Linux Betriebssystem, z.B. Debian 3.1 (Sarge) oder besser
- Perl-Interpreter in der Version 5.8.4
Weiterhin sind folgende Perl-Module erforderlich:
- LWP::UserAgent
- HTML::TreeBuilder
- HTML::FormatText
- Proc::Daemon
- IO::Socket
- Proc::PID::File;
Lizenz
ipwewd wurde unter der General Public License (GPL) veröffentlicht.
Changes:
Version 1.2 (23.08.2008) - Regen-Sofortmeldung + PID
Das Datensatzformat hat sich leicht geändert. Es wurde ein neues Feld "raining" (s.o.) angehängt. Es dient zur Sofortmeldung bei Regen.
Diese Version generiert ein Prozess-Id-File wie es für UNIX-Daemons üblich ist. Dies ermöglicht vereinfachte Initskripte zum automatischen Start des Deamons.
Version 1.1 (15.08.2008) - CPU-Load und Networkload reduziert
Die Vorgängerversion prüfte den IPWE sekündlich auf neue Daten ab. Da der Sensor jedoch nur alle 150 Sekunden neue Daten an den IPWE liefert, macht eine sekündliche Abfrage keinen Sinn. Diese Version schläft für ca. 148 Sekunden nachdem sich die Daten aktualisiert haben. Hierdurch werden CPU- und Netzwerklast auf ein Minimum reduziert.
Version 1.0 (04.07.2008) - Veröffentlichtes Ursprungsrelease
- Details
- Zugriffe: 34654
Achtung: ELV hat den IPWE 1 leider nicht mehr im Sortiment. Er ist zwischenzeitlich nicht mehr erhältlich (Stand 25.10.2014).
Der IP-Wetterdatenempfängers IPWE 1 besitzt einen integrierten Webserver über den die aktuellen Informationen bezüglich Außentemperatur, Windstärke, Luftfeuchtigkeit und Niederschlagsmenge mittels Browserzugriff abgefragt werden können. Weiterhin hält der IPWE 1 die letzten 5 Datensätze zum Abruf bereit, die von den jeweiligen Außensensoren empfangen wurden. Ebenfalls implementiert ist ein Telnet-Server, welcher dieselben Informationen über das Telnet-Protokoll zugänglich macht. Der IPWE 1 ist (leider nur) als Bausatz über das Elektronikversandhaus ELV erhältlich.
BILD 1: IP-Wetterdatenempfänger
Funktionsweise
Die Wetterdaten erhält der IPWE 1 über ein Funksignal im 868 MHz-Bereich von einem oder mehreren Außensensoren. Erwähnt werden soll hierbei der Kombisensor KS 300, der Außentemperatur, Windstärke, Luftfeuchtigkeit und Niederschlagsmengen erfasst und die gemessenen Werte ca. alle 150 Sekunden aussendet.
Die Reichweite beträgt laut Herstellerangaben im Freien ca. 100m. Als Empfangsmodul kommt ein Überlagerungsempfänger zum Einsatz. Wenn höhere Reichweiten erzielt werden sollen oder wenn eine Empfangsverbesserung innerhalb von Räumlichkeiten notwendig ist, kann der Überlagerungsempfänger möglicherweise durch ein Superhet-Empfangsmodul ausgetauscht werden. Ausprobiert habe ich das allerdings nicht. Hier wäre ich für Erfahrungen dankbar.
Die Außensensoren sind batteriebetrieben, so dass auf das Verlegen von Leitungen verzichtet werden kann. Der IPWE 1 wird über ein Steckernetzteil mit Strom versorgt.
Die IP-Addresse kann fest auf dem Gerät eingestellt oder über einen DHCP-Server bezogen werden. Da das Gerät gewissermaßen als Server agiert, sollte im DHCP-Betrieb der DHCP-Server immer dieselbe IP-Addresse für den IPWE 1 vergeben.
Wissenswertes vor dem Kauf
Über die Meinung des Herstellers "Ein Telnet-Server sorgt zusätzlich für einen einfachen Zugriff per Kommandozeile, so kann der IPWE 1 auch in eigene Softwareprojekte eingebunden werden" lässt sich streiten. Zwar funktioniert der interaktive Zugriff über "telnet" einwandfrei, die Schwierigkeiten treten jedoch auf, sobald über eigene Programme der Telnet-Server automatisiert abgefragt werden soll. Dieser verhält sich nämlich nicht wie ein üblicher Telnet-Dienst unter UNIX bzw. Linux, sondern scheint ziemlich exotisch implementiert worden zu sein. Weiterhin ist die Implementierung einer Programmierschnittstelle über Telnet nicht gerade als gelungen zu bezeichnen. Glücklicherweise braucht ihr euch mit diesem Manko nicht herumschlagen, wenn ihr unseren ipwewd-Dämon zum Abholen der Daten verwendet. Die Funktionsweise des ipwewd ist in einem eigenen Artikel beschrieben.
Wirklich unschön ist, dass es derzeit keine Funksensorsen für Windrichtung, Luftdruck und Helligkeit gibt, die ihre Daten an den IPWE 1 übertragen könnten. Demzufolge ist auch die eingebrannte Software nicht für die Auswertung solcher Sensoren ausgelegt.
Wer mit diesen Einschränkungen leben kann, ist dennoch mit dem IPWE 1 gut bedient, da sich die generierten Daten über ein Netzwerk an weitere Computersysteme übertragen und in beliebiger Art und Weise weiterverarbeiten lassen.
Wer sich den IPWE 1 kaufen möchte, braucht auch Funksensoren, die die Daten erfassen und an diesen übermitteln. Die günstigte und flexibelste Lösung scheint hier der Kombisensor KS 300 zu sein. Bitte hierbei beachten, dass dieser Kombisensor einzeln (als Bausatz) erhältlich ist, aber auch als Paket zusammen mit einer Wetterstation WS 300. Das Paket hat einerseits einen wesentlichen Preisvorteil gegenüber dem alleinigen Kauf des Kombisensors, außerdem ist er hierbei bereits fertig montiert.
Hinweise zum Bau des IPWE 1
Alle SMD Bauteile sind bereits vorbestückt, so dass sich der Aufbau auf das Bestücken der ca. 20 konventionellen Bauteile beschränkt. In erster Line handelt es sich hierbei um Elektrolytkondensatoren, Quarze, Buchsen, Taster und das Empfangsmodul. Die notwendigen Werkzeuge beschränken sich auf einen Mikroschneider oder einen kleinen Seitenschneider, einer Spitzange sowie Lötkolben und Lötzinn.
Bild 2: IPWE 1 im fertig bestückten Zustand
Da die Lötaugen verhältnismäßig klein sind, ist ein wenig Übung im Umgang mit dem Lötkolben erforderlich. Empfehlenswert sind dünne Lötspitzen und entsprechendes Lötzinn. Ein paar Grundlagen über elektronische Bauelemente schaden auch nicht - zumindest sollte man gepolte Bauteile von ungepolten unterscheiden können.
Das aus Plexiglas bestehende Gehäuse nimmt die Leiterplatte stabil ohne zusätzliche Verschraubungen auf.
Sonstiges
Die Bauanleitung mit weiteren technischen Informationen inklusive Schaltplan steht unter www.elv.de zum Download zur Verfügung. Ebenfalls dort zu finden sind die Beschreibungen zu den optionalen Komponenten.
Bild 3: IPWE 1 Rückseite (im Gehäuse)
Erforderliche Komponenten:
1 x IP-Wetterdatenempfänger IPWE 1 Komplettbausatz
1 x Steckernetzteil (6V - 9V)
Optionale Komponenten:
Funk-Kombi-Sensor KS 200/KS 300,
Funk-Innen-/Außensensor S 300 IA,
Funk-Temperatur-/Luftfeuchtesensor ASH 2200,
Pool-Sensor PS 50
Wetterstation WS 300 (für den Betrieb des IPWE 1 nicht erforderlich).
ipwewd und IPWE.pm
Zur automatischen Übertragung der Wetterdaten auf den PC ist auf unserer Homepage das Tool "ipwewd" (IPWE Daemon for Web Access)" erhältlich. Seit kurzem gibt es auch das Perl-Modul IPWE.pm. Dieses Modul bietet über eine objektorientierte API einfachen Zugriff auf die Informationen des IPWE 1. Nähere Infos sind in den zugehörigen Artikeln zu finden.
- Details
- Zugriffe: 43972
Überblick
Um Uhrzeit und Datum auf den Bus zu bringen, ist keine physikalische EIB-Funkuhr notwendig. eibtime.pl wandelt die Systemzeit eines Linux-PCs in ein EIB-kompatibles Format um und schickt diese über EIBD auf zugehörige Gruppenadressen für Datum und Uhrzeit. Dies ermöglicht so die Anzeige der aktuellen Zeit- und Datumsinformationen auf Ausgabegeräten wie Infodisplays, Raumcontrollern usw.
Wer seinen PC / Server zudem noch von einem öffentlichen Zeitserver synchronisieren lässt, bekommt somit eine hochgenaue Uhrzeit, quasi ohne Investitionskosten, auf den Bus. Als Zeitserver empfiehlt sich pool.ntp.org.
Voraussetzungen
- Linux Betriebssystem
- Perl-Interpreter, Version nahezu egal
- Martin Köglers EIBD von der TU Wien
Lizenz
eibtime.pl wurde unter der General Public License (GPL) veröffentlicht.
Seite 2 von 2