Ikea Tradfri ist günstig und eine Insellösung und braucht keine Internetverbindung. Warum nicht auch Tradfri mit meinem Tommatic Projekt steuern?
Leider gibt es auch hier keine offizielle API. Aber Glenn de Haan's GitHub "IKEA Tradfri COAP Docs" hilft weiter.
Diese Dokumentation ist dir Grundlage meiner Umsetzung in Perl-Klassen.
Zum gegenwärtigen Zeitpunkt werden Lampen, Gruppen und Steckdosen unterstützt. Bei den Lampen und Gruppen wird neben dem Status auch die Helligkeit, Farbtemperatur und Farbe über die fixen Werte von Tradfri aber auch über den xyY- und HSV-Farbraum - in Abhängigkeit der verwendeten Geräte - unterstützt.
Im Gegensatz zu meinen Perl-Modulen für Tradfri und Hue kommt dieses Perl-Modul nicht ohne Hilfe eines Coap-Client mit DTLS aus. In Debian gibt es ein Paket mit einem Coap-Client, dieser unterstützt zurzeit aber kein DTLS. Daher muss der Coap-Client aus anderer Quelle bezogen werden.
Die Installation des Coap-Client ist nachfolgend beschrieben.
git clone --depth 1 --recursive -b dtls https://github.com/home-assistant/libcoap.git
cd libcoap
./autogen.sh
./configure --disable-documentation --disable-shared --without-debug CFLAGS="-D COAP_DEBUG_FD=stderr"
make
make install
Die Versionen der Perl-Modulen der Klassen kann wie folgt ausgegeben werden:
#!/usr/bin/perl
use TSS::Ikea::Tradfri;
print "Version Tratfri.pm: ".$TSS::Ikea::Tradfri::VERSION."\n";
print "Version Light.pm : ".$TSS::Ikea::Tradfri::Light::VERSION."\n";
print "Version Plug.pm : ".$TSS::Ikea::Tradfri::Plug::VERSION."\n";
print "Version Group.pm : ".$TSS::Ikea::Tradfri::Group::VERSION."\n";
print "Version Remote.pm : ".$TSS::Ikea::Tradfri::Remote::VERSION."\n";
print "Version Common.pm : ".$TSS::Ikea::Tradfri::Common::VERSION."\n";
Um mit einem Tradfri Gateway kommunizieren zu können muss ein Benutzer vorhanden und dessen Preshared Key bekannt sein.
Ist noch kein Benutzer angelegt oder der Preshared Key nicht bekannt, so kann mit dem folgenden Snippet ein Benutzer angelegt werden.
Wird ein Preshared Key nicht benutzt, so wird er nach 6 Wochen ungültig.
Als <IP-Adresse> wird die IP-Adresse des Tradfri Gateways, als <Benutzername> ein beliebiger Name und als <Gatewaycode> der Gatewaycode, der auf dem Gateway aufgedruckt ist, angegeben.
#!/usr/bin/perl
use TSS::Philips::Hue;
my $gobjGateway = TSS::Philips::Hue->new( host => <IP-Adresse>,
username => <Benutzername>,
gatewaycode => <Gatewaycode>,
presharedkey => "" );
print "Presared Key: ".$gobjGateway->{"presharedkey"}."\n";
Als Ergebnis wird der Preshared Key des Benutzers ausgegeben. Dieser Preshared Key wird dann bei jeder Kommunikation mit dem Gateway angegeben.
Um mit einem Tradfri Gateway zu kommunizieren muss eine Instanz der Klasse TSS::Ikea::Tradfri erzeugt werden.
Als <IP-Adresse> wird die IP-Adresse des Ikea Tradfri Gateway, als <Benutzername> der ausgewählte Name und als <Preshared Key> der zugehörige Preshared Key eingetragen.
#!/usr/bin/perl
use TSS::Ikea::Tradfri;
my $gobjGateway = TSS::Ikea::Tradfri->new( host => <IP-Adresse>
username => <Benutzername>,
presharedkey => <Preshared Key> );
Zur Unterscheidung zu welcher Klasse ein Gerät gehört wird der Tradfri Gateway internen ID ein Präfix vorangestellt:
<Präfix><Tradfri Gateway internen ID>
Die folgenden Präfixe sind vorhanden:
itfl = Lampen (l=light)
itfp = Steckdosen (p=Plug)
itfg = Gruppen (g=group)
itfr = Fernbedienungen (r=remote)
Die TSS::Ikea::Tradfri Klasse bündelt alle Methoden um Lampen, Gruppen und Steckdosen über den Tradfri Gateway zu steuern.
Die Klasse TSS::Ikea::Tradfri besitzt die folgenden Attribute:
#!/usr/bin/perl
use TSS::Ikea::Tradfri;
my $gobjGateway = TSS::Ikea::Tradfri->new( host => <IP-Adresse>
username => <Benutzername>,
presharedkey => <Preshared Key> );
print "Fehlermeldung :'".$gobjGateway->{"error"}."'\n";
print "IP-Adresse :'".$gobjGateway->{"host"}."'\n";
print "Benutzername :'".$gobjGateway->{"username"}."'\n";
print "Gateway-Code :'".$gobjGateway->{"gatewaycode"}."'\n";
print "Gateway-Key :'".$gobjGateway->{"presharedkey"}."'\n";
print "Geräteliste :'".$gobjGateway->{"devices"}."'\n";
$gobjGateway->{"error"}> enthält eine Fehlermeldung nach dem ein Fehler aufgetreten ist.
$gobjGateway->{"host"}> enthält die IP-Adresse des Tradfri Gateways.
$gobjGateway->{"username"} enthält den Benutzername des Tradfri Gateway Benutzer.
$gobjGateway->{"gatewaycode"} wird nur beim Anlegen eines neuen Benutzers im Tradfri Gateway angegeben. Für die Kommunikation mit einem vorhandenen Preshared Key muss der Gatewaycode nicht agegeben werden.
$gobjGateway->{"presharedkey"} enthält den Preshared Key zur Kommunikation mit dem Tradfri Gateway.
$gobjGateway->{"devices"} enthält ein Hash mit allen Tradfri-IDs (Key) und Typ (Value). Gruppen werden hier nicht abgelegt. Die Tradfri-Id's werden ohne Präfix (it[x]) abgelegt.
Mit der Methode $gobjGateway->listObjects() werden alle Lampen, Gruppen und Steckdosen aus dem Tradfri Gateway ausgelesen.
Die Methode $gobjGateway->listObjects() gibt einen Pointer auf ein Array mit Objekten aller Geräte zurück. Werden diese Objekte im scalaren Kontext verwendet, so werden alle Statusattribute der einzelnen Objekte als String ausgegeben.
#!/usr/bin/perl
use TSS::Ikea::Tradfri;
my $gobjGateway = TSS::Ikea::Tradfri->new( host => <IP-Adresse>
username => <Benutzername>,
presharedkey => <Preshared Key> );
my $gprtarrDevices=$gobjGateway->listObjects();
if (! defined($gprtarrDevices)) { print "Fehler:'".$gobjGateway->{"error"}."'\n"; exit(1); }
foreach my $tobjDevice ( @{$gprtarrDevices} ) { print $tobjDevice."\n"; }
Beispielausgabe der Geräte-Objekte im scalaren Kontext:
<datapoint deviceid='itfl12345' name='Wohnzimmer' devicetype='bulb:color,tunable_white,dimmable' online='1' status='1' brightness='66' temperature='2' color='5' xyY='9830,3932,133' hsv='65535,65279,75' />
<datapoint deviceid='itfl12346' name='Schlafzimmer' devicetype='bulb:color,tunable_white,dimmable' online='1' status='1' brightness='66' temperature='2' color='5' xyY='9830,3932,133' hsv='65535,65279,75' />
...
Die Methode $gobjGateway->getDeviceInfo("<Geräte-ID>") liest das durch die Geräte-ID angegebene Gerät aus dem Tradfri Gateway aus.
Auch hier wird ein Objekt, welches das Gerät repräsentiert, zurück gegeben.
#!/usr/bin/perl
use TSS::Ikea::Tradfri;
my $gobjGateway = TSS::Ikea::Tradfri->new( host => <IP-Adresse>
username => <Benutzername>,
presharedkey => <Preshared Key> );
my $gobjObject=$gobjGateway->getDeviceInfo("<Geräte-ID>");
if (! defined($gobjObject)) { print "Fehler:'".$gobjGateway->{"error"}."'\n"; exit(1); }
print "$gobjObject\n";
Beispielausgabe des Geräte-Objektes im scalaren Kontext:
<datapoint deviceid='itfl12345' name='Wohnzimmer' devicetype='bulb:color,tunable_white,dimmable' online='1' status='1' brightness='66' temperature='2' color='5' xyY='9830,3932,133' hsv='65535,65279,75' />
Die Methode $gobjGateway->setPowerAll("<0=aus / 1=ein>") schaltet alle Lampen und Steckdosen ein bzw. aus.
#!/usr/bin/perl
use TSS::Ikea::Tradfri;
my $gobjGateway = TSS::Ikea::Tradfri->new( host => <IP-Adresse>
username => <Benutzername>,
presharedkey => <Preshared Key> );
my $gstrResult=$gobjGateway->setPowerAll("<0=aus / 1=ein>");
if (! defined($gstrResult)) { print "Fehler:'".$gobjGateway->{"error"}."'\n"; exit(1); }
print "$gstrResult\n";
Beispielausgabe:
<datapoint deviceid='' status='0' />
Die Methode $gobjGateway->setPowerAllLights("<0=aus / 1=ein>") schaltet nur alle Lampen ein bzw. aus.
#!/usr/bin/perl
use TSS::Ikea::Tradfri;
my $gobjGateway = TSS::Ikea::Tradfri->new( host => <IP-Adresse>
username => <Benutzername>,
presharedkey => <Preshared Key> );
my $gstrResult=$gobjGateway->setPowerAllLights("<0=aus / 1=ein>");
if (! defined($gstrResult)) { print "Fehler:'".$gobjGateway->{"error"}."'\n"; exit(1); }
print "$gstrResult\n";
Beispielausgabe:
<datapoint deviceid='' status='0' />
Die Methode $gobjGateway->setPowerAllPlugs("<0=aus / 1=ein>") schaltet nur alle Steckdosen ein bzw. aus.
#!/usr/bin/perl
use TSS::Ikea::Tradfri;
my $gobjGateway = TSS::Ikea::Tradfri->new( host => <IP-Adresse>
username => <Benutzername>,
presharedkey => <Preshared Key> );
my $gstrResult=$gobjGateway->setPowerAllPlugs("<0=aus / 1=ein>");
if (! defined($gstrResult)) { print "Fehler:'".$gobjGateway->{"error"}."'\n"; exit(1); }
print "$gstrResult\n";
Beispielausgabe:
<datapoint deviceid='' status='0' />
Die Methode $gobjGateway->setPowerAllGroups("<0=aus / 1=ein>") schaltet nur alle Gruppen ein bzw. aus.
#!/usr/bin/perl
use TSS::Ikea::Tradfri;
my $gobjGateway = TSS::Ikea::Tradfri->new( host => <IP-Adresse>
username => <Benutzername>,
presharedkey => <Preshared Key> );
my $gstrResult=$gobjGateway->setPowerAllGroups("<0=aus / 1=ein>");
if (! defined($gstrResult)) { print "Fehler:'".$gobjGateway->{"error"}."'\n"; exit(1); }
print "$gstrResult\n";
Beispielausgabe:
<datapoint deviceid='' status='0' />
Die Methode $gobjGateway->setPower("<Geräte-ID>","<0=aus / 1=ein>") schaltet die durch die Geräte-ID angegebene Lampe, Steckdose oder Gruppe ein bzw. aus.
Hier wird wieder ein Objekt, welches das Gerät repräsentiert, zurück gegeben.
#!/usr/bin/perl
use TSS::Ikea::Tradfri;
my $gobjGateway = TSS::Ikea::Tradfri->new( host => <IP-Adresse>
username => <Benutzername>,
presharedkey => <Preshared Key> );
my $gobjObject=$gobjGateway->setPower("<Geräte-ID>","<0=aus / 1=ein>");
if (! defined($gobjObject)) { print "Fehler:'".$gobjGateway->{"error"}."'\n"; exit(1); }
print "$gobjObject\n";
Beispielausgabe des Geräte-Objektes im scalaren Kontext:
<datapoint deviceid='itfl12345' name='Wohnzimmer' devicetype='bulb:color,tunable_white,dimmable' online='1' status='1' brightness='66' temperature='2' color='5' xyY='9830,3932,133' hsv='65535,65279,75' />
Die Methode $gobjGateway->setBrightness("<Geräte-ID>","<0-254>") ändert die Helligkeit der durch die Geräte-ID angegebene Lampe oder Gruppe.
Hier wird wieder ein Objekt, welches das Gerät repräsentiert, zurück gegeben.
#!/usr/bin/perl
use TSS::Ikea::Tradfri;
my $gobjGateway = TSS::Ikea::Tradfri->new( host => <IP-Adresse>
username => <Benutzername>,
presharedkey => <Preshared Key> );
my $gobjObject=$gobjGateway->setBrightness("<Geräte-ID>","<0-254>");
if (! defined($gobjObject)) { print "Fehler:'".$gobjGateway->{"error"}."'\n"; exit(1); }
print "$gobjObject\n";
Beispielausgabe des Geräte-Objektes im scalaren Kontext:
<datapoint deviceid='itfl12345' name='Wohnzimmer' devicetype='bulb:color,tunable_white,dimmable' online='1' status='1' brightness='66' temperature='2' color='5' xyY='9830,3932,133' hsv='65535,65279,75' />
Die Methode $gobjGateway->setTemperature("<Geräte-ID>","<1-3>") ändert die Farbtemperatur der durch die Geräte-ID angegebene Lampe oder Gruppe.
Diese Methode ist nur bei Lampen oder Gruppen wirksam, welche die Einstellung der Farbtemperatur unterstützen.
Hier wird wieder ein Objekt, welches das Gerät repräsentiert, zurück gegeben.
#!/usr/bin/perl
use TSS::Ikea::Tradfri;
my $gobjGateway = TSS::Ikea::Tradfri->new( host => <IP-Adresse>
username => <Benutzername>,
presharedkey => <Preshared Key> );
my $gobjObject=$gobjGateway->setTemperature("<Geräte-ID>","<1-3>");
if (! defined($gobjObject)) { print "Fehler:'".$gobjGateway->{"error"}."'\n"; exit(1); }
print "$gobjObject\n";
Beispielausgabe des Geräte-Objektes im scalaren Kontext:
<datapoint deviceid='itfl12345' name='Wohnzimmer' devicetype='bulb:color,tunable_white,dimmable' online='1' status='1' brightness='66' temperature='2' color='5' xyY='9830,3932,133' hsv='65535,65279,75' />
Die Methode $gobjGateway->setCT("<Geräte-ID>","<153-500>") ändert die Farbtemperatur der durch die Geräte-ID angegebene Lampe oder Gruppe.
Diese Methode ist nur bei Lampen oder Gruppen wirksam, welche die Einstellung der Farbe unterstützen.
Mit dieser Methode wird die Änderung der Farbtemperatur über den ct-Wert emuliert, da Tradfri nur 3 fixe Farbtemperaturen kennt.
Hierzu wird eine Übersetzung von ct-Werten in den xyY-Farbraum vorgenommen.
Hier wird wieder ein Objekt, welches das Gerät repräsentiert, zurück gegeben.
#!/usr/bin/perl
use TSS::Ikea::Tradfri;
my $gobjGateway = TSS::Ikea::Tradfri->new( host => <IP-Adresse>
username => <Benutzername>,
presharedkey => <Preshared Key> );
my $gobjObject=$gobjGateway->setCT("<Geräte-ID>","<153-500>");
if (! defined($gobjObject)) { print "Fehler:'".$gobjGateway->{"error"}."'\n"; exit(1); }
print "$gobjObject\n";
Beispielausgabe des Geräte-Objektes im scalaren Kontext:
<datapoint deviceid='itfl12345' name='Wohnzimmer' devicetype='bulb:color,tunable_white,dimmable' online='1' status='1' brightness='66' temperature='2' color='5' xyY='9830,3932,133' hsv='65535,65279,75' />
Die Methode $gobjGateway->setColor("<Geräte-ID>","<1-20>") ändert die Farbe der durch die Geräte-ID angegebene Lampe oder Gruppe.
Diese Methode ist nur bei Lampen oder Gruppen wirksam, welche die Einstellung der Farbe unterstützen.
Hier wird wieder ein Objekt, welches das Gerät repräsentiert, zurück gegeben.
#!/usr/bin/perl
use TSS::Ikea::Tradfri;
my $gobjGateway = TSS::Ikea::Tradfri->new( host => <IP-Adresse>
username => <Benutzername>,
presharedkey => <Preshared Key> );
my $gobjObject=$gobjGateway->setColor("<Geräte-ID>","<1-20>");
if (! defined($gobjObject)) { print "Fehler:'".$gobjGateway->{"error"}."'\n"; exit(1); }
print "$gobjObject\n";
Beispielausgabe des Geräte-Objektes im scalaren Kontext:
<datapoint deviceid='itfl12345' name='Wohnzimmer' devicetype='bulb:color,tunable_white,dimmable' online='1' status='1' brightness='66' temperature='2' color='5' xyY='9830,3932,133' hsv='65535,65279,75' />
Die Methode $gobjGateway->setXYY("<Geräte-ID>","<0-65535,0-65535,0-254>") ändert die Farbe der durch die Geräte-ID angegebene Lampe oder Gruppe.
Diese Methode ist nur bei Lampen oder Gruppen wirksam, welche die Einstellung der Farbe unterstützen.
Hier wird wieder ein Objekt, welches das Gerät repräsentiert, zurück gegeben.
#!/usr/bin/perl
use TSS::Ikea::Tradfri;
my $gobjGateway = TSS::Ikea::Tradfri->new( host => <IP-Adresse>
username => <Benutzername>,
presharedkey => <Preshared Key> );
my $gobjObject=$gobjGateway->setXYY("<Geräte-ID>","<0-65535,0-65535,0-254>");
if (! defined($gobjObject)) { print "Fehler:'".$gobjGateway->{"error"}."'\n"; exit(1); }
print "$gobjObject\n";
Beispielausgabe des Geräte-Objektes im scalaren Kontext:
<datapoint deviceid='itfl12345' name='Wohnzimmer' devicetype='bulb:color,tunable_white,dimmable' online='1' status='1' brightness='66' temperature='2' color='5' xyY='9830,3932,133' hsv='65535,65279,75' />
Die Methode $gobjGateway->setHsv("<Geräte-ID>","<0-65535,0-65279,0-254>") ändert die Farbe der durch die Geräte-ID angegebene Lampe oder Gruppe.
Diese Methode ist nur bei Lampen oder Gruppen wirksam, welche die Einstellung der Farbe unterstützen.
Hier wird wieder ein Objekt, welches das Gerät repräsentiert, zurück gegeben.
#!/usr/bin/perl
use TSS::Ikea::Tradfri;
my $gobjGateway = TSS::Ikea::Tradfri->new( host => <IP-Adresse>
username => <Benutzername>,
presharedkey => <Preshared Key> );
my $gobjObject=$gobjGateway->setHsv("<Geräte-ID>","<0-65535,0-65279,0-254>");
if (! defined($gobjObject)) { print "Fehler:'".$gobjGateway->{"error"}."'\n"; exit(1); }
print "$gobjObject\n";
Beispielausgabe des Geräte-Objektes im scalaren Kontext:
<datapoint deviceid='itfl12345' name='Wohnzimmer' devicetype='bulb:color,tunable_white,dimmable' online='1' status='1' brightness='66' temperature='2' color='5' xyY='9830,3932,133' hsv='65535,65279,75' />
Die TSS::Ikea::Tradfri::Light Klasse bündelt alle Attribute und Methoden um Lampen über den Tradfri Gateway zu steuern.
Die Klasse TSS::Ikea::Tradfri::Light besitzt die folgenden Attribute:
#!/usr/bin/perl
use TSS::Ikea::Tradfri;
my $gobjGateway = TSS::Ikea::Tradfri->new( host => <IP-Adresse>
username => <Benutzername>,
presharedkey => <Preshared Key> );
my $gobjObject=$gobjGateway->getDeviceInfo("<Geräte-ID>");
if (! defined($gobjObject)) { print "Fehler:'".$gobjGateway->{"error"}."'\n"; exit(1); }
print "Fehlertext : ".$gobjObject->{"error"}."\n";
print "Gateway : ".$gobjObject->{"gateway"}."\n"; # Übergeordnetes Objekt TSS::Ikea::Tradfri
print "Name : ".$gobjDevice->{"name"}."\n";
print "Geräte-ID : ".$gobjDevice->{"deviceid"}."\n";
print "Gerätetyp : ".$gobjDevice->{"devicetype"}."\n";
print "Anmeldedatum : ".$gobjDevice->{"created"}."\n";
print "Onlinestatus : ".$gobjDevice->{"online"}."\n";
print "Letzter kontakt : ".$gobjDevice->{"lastseen"}."\n";
print "Update Status : ".$gobjDevice->{"updatestate"}."\n";
print "Zugriffstyp : ".$gobjDevice->{"accessorytype"}."\n";
print "Hersteller : ".$gobjDevice->{"manufactor"}."\n";
print "Seriennummer : ".$gobjDevice->{"serialno"}."\n";
print "Firmwareversion : ".$gobjDevice->{"version"}."\n";
print "Stromquelle : ".$gobjDevice->{"powersource"}."\n";
print "Batteriestand : ".$gobjDevice->{"batterylevel"}."\n" if (defined($gobjDevice->{"batterylevel"}));
print "Power-Status : ".$gobjDevice->{"status"}."\n";
print "Helligkeit : ".$gobjDevice->{"brightness"}."\n";
print "Farbton : ".$gobjDevice->{"hue"}."\n";
print "Sättigung : ".$gobjDevice->{"saturation"}."\n";
print "Farbe X : ".$gobjDevice->{"colorx"}."\n";
print "Farbe Y : ".$gobjDevice->{"colory"}."\n";
print "Farbe in HEX : ".$gobjDevice->{"colorhex"}."\n";
print "Subdevice-ID : ".$gobjDevice->{"subdeviceid"}."\n";
Einige der Attribute sind optional und nur vorhanden, wenn die Lampe diese unterstützen.
Neben den Attributen besitzt die Klasse TSS::Ikea::Tradfri::Light auch Funktionen um einen Status abzufragen:
#!/usr/bin/perl
use TSS::Ikea::Tradfri;
my $gobjGateway = TSS::Ikea::Tradfri->new( host => <IP-Adresse>
username => <Benutzername>,
presharedkey => <Preshared Key> );
my $gobjObject=$gobjGateway->getDeviceInfo("<Geräte-ID>");
if (! defined($gobjObject)) { print "Fehler:'".$gobjGateway->{"error"}."'\n"; exit(1); }
print "Name : ".$gobjDevice->name()."\n";
print "Deviceid : ".$gobjDevice->deviceid()."\n";
print "Devicetype : ".$gobjDevice->devicetype()."\n";
print "Version : ".$gobjDevice->version()."\n";
print "Online : ".$gobjDevice->online()."\n";
print "Status : ".$gobjDevice->status()."\n";
print "Brightness : ".$gobjDevice->brightness()."\n";
print "Temperature : ".$gobjDevice->temperature()."\n";
print "Color : ".$gobjDevice->color()."\n";
print "Temperaturect : ".$gobjDevice->ct()."\n";
print "Color xyY : ".$gobjDevice->xyy()."\n";
print "Color HSV : ".$gobjDevice->hsv()."\n";
print "Batterylevel : ".$gobjDevice->batterylevel()."\n";
print "Devicestate : ".$gobjDevice->devicestate()."\n";
Durch die Methode $gobjObject->devicestate() werden alle Informationen der Lampe neu eingelesen.
#!/usr/bin/perl
use TSS::Ikea::Tradfri;
my $gobjGateway = TSS::Ikea::Tradfri->new( host => <IP-Adresse>
username => <Benutzername>,
presharedkey => <Preshared Key> );
my $gobjObject=$gobjGateway->getDeviceInfo("<Geräte-ID>");
if (! defined($gobjObject)) { print "Fehler:'".$gobjGateway->{"error"}."'\n"; exit(1); }
my $gintResult=$gobjObject->readDeviceInfo();
if (! defined($gintResult)) { print "Fehler:\"".$gobjGateway->{"error"}."\"\n"; exit(1); }
Die Methode $gobjObject->setPower("<0=aus / 1=ein>") schaltet die Lampe ein bzw. aus.
#!/usr/bin/perl
use TSS::Ikea::Tradfri;
my $gobjGateway = TSS::Ikea::Tradfri->new( host => <IP-Adresse>
username => <Benutzername>,
presharedkey => <Preshared Key> );
my $gobjObject=$gobjGateway->getDeviceInfo("<Geräte-ID>");
if (! defined($gobjObject)) { print "Fehler:'".$gobjGateway->{"error"}."'\n"; exit(1); }
my $gstrResult=$gobjObject->setPower("<0=aus / 1=ein>");
if (! defined($gstrResult)) { print "Fehler:\"".$gobjGateway->{"error"}."\"\n"; exit(1); }
print "$gstrResult\n";
Beispielausgabe:
<datapoint deviceid='itfl12345' status='0' />
Die Methode $gobjObject->setBrightness("<0-254>") ändert die Helligkeit der Lampe.
#!/usr/bin/perl
use TSS::Ikea::Tradfri;
my $gobjGateway = TSS::Ikea::Tradfri->new( host => <IP-Adresse>
username => <Benutzername>,
presharedkey => <Preshared Key> );
my $gobjObject=$gobjGateway->getDeviceInfo("<Geräte-ID>");
if (! defined($gobjObject)) { print "Fehler:'".$gobjGateway->{"error"}."'\n"; exit(1); }
my $gstrResult=$gobjObject->setBrightness("<0-254>");
if (! defined($gstrResult)) { print "Fehler:\"".$gobjGateway->{"error"}."\"\n"; exit(1); }
print "$gstrResult\n";
Beispielausgabe:
<datapoint deviceid='itfl12345' brightness='80' />
Die Methode $gobjObject->setTemperature("<1-3>") ändert die Farbtemperatur der Lampe.
Diese Methode ist nur bei Lampen welche die Einstellung der Farbtemperatur unterstützen.
#!/usr/bin/perl
use TSS::Ikea::Tradfri;
my $gobjGateway = TSS::Ikea::Tradfri->new( host => <IP-Adresse>
username => <Benutzername>,
presharedkey => <Preshared Key> );
my $gobjObject=$gobjGateway->getDeviceInfo("<Geräte-ID>");
if (! defined($gobjObject)) { print "Fehler:'".$gobjGateway->{"error"}."'\n"; exit(1); }
my $gstrResult=$gobjObject->setTemperature("<1-3>");
if (! defined($gstrResult)) { print "Fehler:\"".$gobjGateway->{"error"}."\"\n"; exit(1); }
print "$gstrResult\n";
Beispielausgabe:
<datapoint deviceid='itfl12345' temperature='3' />
Die Methode $gobjObject->setCT("<153-500>") ändert die Farbtemperatur der Lampe.
Diese Methode ist nur bei Lampen welche die Einstellung der Farbe unterstützen.
Mit dieser Methode wird die Änderung der Farbtemperatur über den ct-Wert emuliert, da Tradfri nur 3 fixe Farbtemperaturen kennt.
Hierzu wird eine Übersetzung von ct-Werten in den xyY-Farbraum vorgenommen.
#!/usr/bin/perl
use TSS::Ikea::Tradfri;
my $gobjGateway = TSS::Ikea::Tradfri->new( host => <IP-Adresse>
username => <Benutzername>,
presharedkey => <Preshared Key> );
my $gobjObject=$gobjGateway->getDeviceInfo("<Geräte-ID>");
if (! defined($gobjObject)) { print "Fehler:'".$gobjGateway->{"error"}."'\n"; exit(1); }
my $gstrResult=$gobjObject->setCT("<153-500>");
if (! defined($gstrResult)) { print "Fehler:\"".$gobjGateway->{"error"}."\"\n"; exit(1); }
print "$gstrResult\n";
Beispielausgabe:
<datapoint deviceid='itfl12345' ct='153' />
Die Methode $gobjObject->setColor("<1-20>") ändert die Farbe der Lampe.
Diese Methode ist nur bei Lampen wirksam, welche die Einstellung der Farbe unterstützen.
#!/usr/bin/perl
use TSS::Ikea::Tradfri;
my $gobjGateway = TSS::Ikea::Tradfri->new( host => <IP-Adresse>
username => <Benutzername>,
presharedkey => <Preshared Key> );
my $gobjObject=$gobjGateway->getDeviceInfo("<Geräte-ID>");
if (! defined($gobjObject)) { print "Fehler:'".$gobjGateway->{"error"}."'\n"; exit(1); }
my $gstrResult=$gobjObject->setColor("<1-20>");
if (! defined($gstrResult)) { print "Fehler:\"".$gobjGateway->{"error"}."\"\n"; exit(1); }
print "$gstrResult\n";
Beispielausgabe:
<datapoint deviceid='itfl12345' color='5' />
Die Methode $gobjObject->setXYY("<0-65535,0-65535,0-254>") ändert die Farbe der Lampe.
Diese Methode ist nur bei Lampen wirksam, welche die Einstellung der Farbe unterstützen.
#!/usr/bin/perl
use TSS::Ikea::Tradfri;
my $gobjGateway = TSS::Ikea::Tradfri->new( host => <IP-Adresse>
username => <Benutzername>,
presharedkey => <Preshared Key> );
my $gobjObject=$gobjGateway->getDeviceInfo("<Geräte-ID>");
if (! defined($gobjObject)) { print "Fehler:'".$gobjGateway->{"error"}."'\n"; exit(1); }
my $gstrResult=$gobjObject->setXYY("<0-65535,0-65535,0-254>");
if (! defined($gstrResult)) { print "Fehler:\"".$gobjGateway->{"error"}."\"\n"; exit(1); }
print "$gstrResult\n";
Beispielausgabe:
<datapoint deviceid='itfl12345' xyY='9830,3932,133' />
Die Methode $gobjObject->setHsv("<0-65535,0-65279,0-254>") ändert die Farbe der Lampe.
Diese Methode ist nur bei Lampen wirksam, welche die Einstellung der Farbe unterstützen.
#!/usr/bin/perl
use TSS::Ikea::Tradfri;
my $gobjGateway = TSS::Ikea::Tradfri->new( host => <IP-Adresse>
username => <Benutzername>,
presharedkey => <Preshared Key> );
my $gobjObject=$gobjGateway->getDeviceInfo("<Geräte-ID>");
if (! defined($gobjObject)) { print "Fehler:'".$gobjGateway->{"error"}."'\n"; exit(1); }
my $gstrResult=$gobjObject->setHsv("<0-65535,0-65279,0-254>");
if (! defined($gstrResult)) { print "Fehler:\"".$gobjGateway->{"error"}."\"\n"; exit(1); }
print "$gstrResult\n";
Beispielausgabe:
<datapoint deviceid='itfl12345' hsv='43690,65279,75' />
Die TSS::Ikea::Tradfri::Plug Klasse bündelt alle Attribute und Methoden um Steckdosen über den Tradfri Gateway zu steuern.
Die Klasse TSS::Ikea::Tradfri::Plug besitzt die folgenden Attribute:
#!/usr/bin/perl
use TSS::Ikea::Tradfri;
my $gobjGateway = TSS::Ikea::Tradfri->new( host => <IP-Adresse>
username => <Benutzername>,
presharedkey => <Preshared Key> );
my $gobjObject=$gobjGateway->getDeviceInfo("<Geräte-ID>");
if (! defined($gobjObject)) { print "Fehler:'".$gobjGateway->{"error"}."'\n"; exit(1); }
print "Fehlertext : ".$gobjObject->{"error"}."\n";
print "Gateway : ".$gobjObject->{"gateway"}."\n"; # Übergeordnetes Objekt TSS::Ikea::Tradfri
print "Name : ".$gobjDevice->{"name"}."\n";
print "Gerätetyp : ".$gobjDevice->{"devicetype"}."\n";
print "Anmeldedatum : ".$gobjDevice->{"created"}."\n";
print "Geräte-ID : ".$gobjDevice->{"deviceid"}."\n";
print "Onlinestatus : ".$gobjDevice->{"online"}."\n";
print "Letzter kontakt : ".$gobjDevice->{"lastseen"}."\n";
print "Update Status : ".$gobjDevice->{"updatestate"}."\n";
print "Zugriffstyp : ".$gobjDevice->{"accessorytype"}."\n";
print "Hersteller : ".$gobjDevice->{"manufactor"}."\n";
print "Seriennummer : ".$gobjDevice->{"serialno"}."\n";
print "Firmwareversion : ".$gobjDevice->{"version"}."\n";
print "Stromquelle : ".$gobjDevice->{"powersource"}."\n";
print "Batteriestand : ".$gobjDevice->{"batterylevel"}."\n" if (defined($gobjDevice->{"batterylevel"}));
print "Power-Status : ".$gobjDevice->{"status"}."\n";
print "Subdevice-ID : ".$gobjDevice->{"subdeviceid"}."\n";
Einige der Attribute sind optional und nur vorhanden, wenn die Steckdose diese unterstützen.
Neben den Attributen besitzt die Klasse TSS::Ikea::Tradfri::Plug auch Funktionen um einen Status abzufragen:
#!/usr/bin/perl
use TSS::Ikea::Tradfri;
my $gobjGateway = TSS::Ikea::Tradfri->new( host => <IP-Adresse>
username => <Benutzername>,
presharedkey => <Preshared Key> );
my $gobjObject=$gobjGateway->getDeviceInfo("<Geräte-ID>");
if (! defined($gobjObject)) { print "Fehler:'".$gobjGateway->{"error"}."'\n"; exit(1); }
print "Name : ".$gobjDevice->name()."\n";
print "Deviceid : ".$gobjDevice->deviceid()."\n";
print "Devicetype : ".$gobjDevice->devicetype()."\n";
print "Version : ".$gobjDevice->version()."\n";
print "Online : ".$gobjDevice->online()."\n";
print "Status : ".$gobjDevice->status()."\n";
print "Devicestate : ".$gobjDevice->devicestate()."\n";
Durch die Methode $gobjObject->devicestate() werden alle Informationen der Steckdose neu eingelesen.
#!/usr/bin/perl
use TSS::Ikea::Tradfri;
my $gobjGateway = TSS::Ikea::Tradfri->new( host => <IP-Adresse>
username => <Benutzername>,
presharedkey => <Preshared Key> );
my $gobjObject=$gobjGateway->getDeviceInfo("<Geräte-ID>");
if (! defined($gobjObject)) { print "Fehler:'".$gobjGateway->{"error"}."'\n"; exit(1); }
my $gintResult=$gobjObject->readDeviceInfo();
if (! defined($gintResult)) { print "Fehler:\"".$gobjGateway->{"error"}."\"\n"; exit(1); }
Die Methode $gobjObject->setPower("<0=aus / 1=ein>") schaltet die Steckdose ein bzw. aus.
#!/usr/bin/perl
use TSS::Ikea::Tradfri;
my $gobjGateway = TSS::Ikea::Tradfri->new( host => <IP-Adresse>
username => <Benutzername>,
presharedkey => <Preshared Key> );
my $gobjObject=$gobjGateway->getDeviceInfo("<Geräte-ID>");
if (! defined($gobjObject)) { print "Fehler:'".$gobjGateway->{"error"}."'\n"; exit(1); }
my $gstrResult=$gobjObject->setPower("<0=aus / 1=ein>");
if (! defined($gstrResult)) { print "Fehler:\"".$gobjGateway->{"error"}."\"\n"; exit(1); }
print "$gstrResult\n";
Beispielausgabe:
<datapoint deviceid='itfp12345' status='0' />
Die TSS::Ikea::Tradfri::Group Klasse bündelt alle Attribute und Methoden um Gruppen über den Tradfri Gateway zu steuern.
Die Klasse TSS::Ikea::Tradfri::Group besitzt die folgenden Attribute:
#!/usr/bin/perl
use TSS::Ikea::Tradfri;
my $gobjGateway = TSS::Ikea::Tradfri->new( host => <IP-Adresse>
username => <Benutzername>,
presharedkey => <Preshared Key> );
my $gobjObject=$gobjGateway->getDeviceInfo("<Geräte-ID>");
if (! defined($gobjObject)) { print "Fehler:'".$gobjGateway->{"error"}."'\n"; exit(1); }
print "Fehlertext : ".$gobjObject->{"error"}."\n";
print "Gateway : ".$gobjObject->{"gateway"}."\n"; # Übergeordnetes Objekt TSS::Ikea::Tradfri
print "Name : ".$gobjDevice->{"name"}."\n";
print "Gerätetyp : ".$gobjDevice->{"devicetype"}."\n";
print "Anmeldedatum : ".$gobjDevice->{"created"}."\n";
print "Geräte-ID : ".$gobjDevice->{"deviceid"}."\n";
print "Power-Status : ".$gobjDevice->{"status"}."\n";
print "Aktiven Szene : ".$gobjDevice->{"scene"}."\n";
print "Geräte-IDs : ".join(", ",@{$gobjDevice->{"devices"}})."\n";
print "Farbtemperatur : ".$gobjDevice->{"temperature"}."\n" if (defined($gobjDevice->{"temperature"}));
print "Farbtemperatur ct : ".$gobjDevice->{"ct"}."\n" if (defined($gobjDevice->{"ct"}));
print "Farbe : ".$gobjDevice->{"color"}."\n" if (defined($gobjDevice->{"color"}));
print "Farbe HSV-Wert : ".$gobjDevice->{"hsv"}."\n" if (defined($gobjDevice->{"hsv"}));
print "Farbe xyY-Wert : ".$gobjDevice->{"xyy"}."\n" if (defined($gobjDevice->{"xyy"}));
Einige der Attribute sind optional und nur vorhanden, wenn die Gruppe diese unterstützen.
Neben den Attributen besitzt die Klasse TSS::Ikea::Tradfri::Group auch Funktionen um einen Status abzufragen:
#!/usr/bin/perl
use TSS::Ikea::Tradfri;
my $gobjGateway = TSS::Ikea::Tradfri->new( host => <IP-Adresse>
username => <Benutzername>,
presharedkey => <Preshared Key> );
my $gobjObject=$gobjGateway->getDeviceInfo("<Geräte-ID>");
if (! defined($gobjObject)) { print "Fehler:'".$gobjGateway->{"error"}."'\n"; exit(1); }
print "Name : ".$gobjDevice->name()."\n";
print "Deviceid : ".$gobjDevice->deviceid()."\n";
print "Devicetype : ".$gobjDevice->devicetype()."\n";
print "Status : ".$gobjDevice->status()."\n";
print "Brightness : ".$gobjDevice->brightness()."\n";
print "Scene : ".$gobjDevice->scene()."\n";
print "Devices : ".$gobjDevice->devices()."\n";
print "Devicestate : ".$gobjDevice->devicestate()."\n";
print "Farbtemperatur : ".$gobjDevice->temperature()."\n";
print "Farbtemperatur ct : ".$gobjDevice->ct()."\n";
print "Farbe : ".$gobjDevice->color()."\n";
print "Farbe xyY-Wert : ".$gobjDevice->xyy()."\n";
print "Farbe HSV-Wert : ".$gobjDevice->hsv()."\n";
Durch die Methode $gobjObject->devicestate() werden alle Informationen der Gruppe neu eingelesen.
#!/usr/bin/perl
use TSS::Ikea::Tradfri;
my $gobjGateway = TSS::Ikea::Tradfri->new( host => <IP-Adresse>
username => <Benutzername>,
presharedkey => <Preshared Key> );
my $gobjObject=$gobjGateway->getDeviceInfo("<Geräte-ID>");
if (! defined($gobjObject)) { print "Fehler:'".$gobjGateway->{"error"}."'\n"; exit(1); }
my $gintResult=$gobjObject->readDeviceInfo();
if (! defined($gintResult)) { print "Fehler:\"".$gobjGateway->{"error"}."\"\n"; exit(1); }
Die Methode $gobjObject->setPower("<0=aus / 1=ein>") schaltet die Gruppe ein bzw. aus.
#!/usr/bin/perl
use TSS::Ikea::Tradfri;
my $gobjGateway = TSS::Ikea::Tradfri->new( host => <IP-Adresse>
username => <Benutzername>,
presharedkey => <Preshared Key> );
my $gobjObject=$gobjGateway->getDeviceInfo("<Geräte-ID>");
if (! defined($gobjObject)) { print "Fehler:'".$gobjGateway->{"error"}."'\n"; exit(1); }
my $gstrResult=$gobjObject->setPower("<0=aus / 1=ein>");
if (! defined($gstrResult)) { print "Fehler:\"".$gobjGateway->{"error"}."\"\n"; exit(1); }
print "$gstrResult\n";
Beispielausgabe:
<datapoint deviceid='itfg12345' status='0' />
Die Methode $gobjObject->setBrightness("<0-255>") ändert die Helligkeit der Gruppe.
#!/usr/bin/perl
use TSS::Ikea::Tradfri;
my $gobjGateway = TSS::Ikea::Tradfri->new( host => <IP-Adresse>
username => <Benutzername>,
presharedkey => <Preshared Key> );
my $gobjObject=$gobjGateway->getDeviceInfo("<Geräte-ID>");
if (! defined($gobjObject)) { print "Fehler:'".$gobjGateway->{"error"}."'\n"; exit(1); }
my $gstrResult=$gobjObject->setBrightness("<0-254>");
if (! defined($gstrResult)) { print "Fehler:\"".$gobjGateway->{"error"}."\"\n"; exit(1); }
print "$gstrResult\n";
Beispielausgabe:
<datapoint deviceid='itfg12345' brightness='80' />
Die Methode $gobjObject->setTemperature("<1-3>") ändert die Farbtemperatur der Gruppe.
Diese Methode ist nur bei Gruppen welche die Einstellung der Farbtemperatur unterstützen.
#!/usr/bin/perl
use TSS::Ikea::Tradfri;
my $gobjGateway = TSS::Ikea::Tradfri->new( host => <IP-Adresse>
username => <Benutzername>,
presharedkey => <Preshared Key> );
my $gobjObject=$gobjGateway->getDeviceInfo("<Geräte-ID>");
if (! defined($gobjObject)) { print "Fehler:'".$gobjGateway->{"error"}."'\n"; exit(1); }
my $gstrResult=$gobjObject->setTemperature("<1-3>");
if (! defined($gstrResult)) { print "Fehler:\"".$gobjGateway->{"error"}."\"\n"; exit(1); }
print "$gstrResult\n";
Beispielausgabe:
<datapoint deviceid='itfl12345' temperature='3' />
Die Methode $gobjObject->setCT("<153-500>") ändert die Farbtemperatur der Gruppe.
Diese Methode ist nur bei Gruppen welche die Einstellung der Farbe unterstützen.
Mit dieser Methode wird die Änderung der Farbtemperatur über den ct-Wert emuliert, da Tradfri nur 3 fixe Farbtemperaturen kennt.
Hierzu wird eine Übersetzung von ct-Werten in den xyY-Farbraum vorgenommen.
#!/usr/bin/perl
use TSS::Ikea::Tradfri;
my $gobjGateway = TSS::Ikea::Tradfri->new( host => <IP-Adresse>
username => <Benutzername>,
presharedkey => <Preshared Key> );
my $gobjObject=$gobjGateway->getDeviceInfo("<Geräte-ID>");
if (! defined($gobjObject)) { print "Fehler:'".$gobjGateway->{"error"}."'\n"; exit(1); }
my $gstrResult=$gobjObject->setCT("<153-500>");
if (! defined($gstrResult)) { print "Fehler:\"".$gobjGateway->{"error"}."\"\n"; exit(1); }
print "$gstrResult\n";
Beispielausgabe:
<datapoint deviceid='itfl12345' ct='153' />
Die Methode $gobjObject->setColor("<1-20>") ändert die Farbe der Gruppe.
Diese Methode ist nur bei Gruppen wirksam, welche die Einstellung der Farbe unterstützen.
#!/usr/bin/perl
use TSS::Ikea::Tradfri;
my $gobjGateway = TSS::Ikea::Tradfri->new( host => <IP-Adresse>
username => <Benutzername>,
presharedkey => <Preshared Key> );
my $gobjObject=$gobjGateway->getDeviceInfo("<Geräte-ID>");
if (! defined($gobjObject)) { print "Fehler:'".$gobjGateway->{"error"}."'\n"; exit(1); }
my $gstrResult=$gobjObject->setColor("<1-20>");
if (! defined($gstrResult)) { print "Fehler:\"".$gobjGateway->{"error"}."\"\n"; exit(1); }
print "$gstrResult\n";
Beispielausgabe:
<datapoint deviceid='itfl12345' color='5' />
Die Methode $gobjObject->setXYY("<0-65535,0-65535,0-254>") ändert die Farbe der Gruppe.
Diese Methode ist nur bei Gruppen wirksam, welche die Einstellung der Farbe unterstützen.
#!/usr/bin/perl
use TSS::Ikea::Tradfri;
my $gobjGateway = TSS::Ikea::Tradfri->new( host => <IP-Adresse>
username => <Benutzername>,
presharedkey => <Preshared Key> );
my $gobjObject=$gobjGateway->getDeviceInfo("<Geräte-ID>");
if (! defined($gobjObject)) { print "Fehler:'".$gobjGateway->{"error"}."'\n"; exit(1); }
my $gstrResult=$gobjObject->setXYY("<0-65535,0-65535,0-254>");
if (! defined($gstrResult)) { print "Fehler:\"".$gobjGateway->{"error"}."\"\n"; exit(1); }
print "$gstrResult\n";
Beispielausgabe:
<datapoint deviceid='itfl12345' xyY='9830,3932,133' />
Die Methode $gobjObject->setHsv("<0-65535,0-65279,0-254>") ändert die Farbe der Gruppe.
Diese Methode ist nur bei Gruppen wirksam, welche die Einstellung der Farbe unterstützen.
#!/usr/bin/perl
use TSS::Ikea::Tradfri;
my $gobjGateway = TSS::Ikea::Tradfri->new( host => <IP-Adresse>
username => <Benutzername>,
presharedkey => <Preshared Key> );
my $gobjObject=$gobjGateway->getDeviceInfo("<Geräte-ID>");
if (! defined($gobjObject)) { print "Fehler:'".$gobjGateway->{"error"}."'\n"; exit(1); }
my $gstrResult=$gobjObject->setHsv("<0-65535,0-65279,0-254>");
if (! defined($gstrResult)) { print "Fehler:\"".$gobjGateway->{"error"}."\"\n"; exit(1); }
print "$gstrResult\n";
Beispielausgabe:
<datapoint deviceid='itfl12345' hsv='43690,65279,75' />
Die TSS::Ikea::Tradfri::Remote Klasse bündelt alle Attribute und Methoden um Fernbedienungen über den Tradfri Gateway zu monitoren.
Die Klasse TSS::Ikea::Tradfri::Remote besitzt die folgenden Attribute:
#!/usr/bin/perl
use TSS::Ikea::Tradfri;
my $gobjGateway = TSS::Ikea::Tradfri->new( host => <IP-Adresse>
username => <Benutzername>,
presharedkey => <Preshared Key> );
my $gobjObject=$gobjGateway->getDeviceInfo("<Geräte-ID>");
if (! defined($gobjObject)) { print "Fehler:'".$gobjGateway->{"error"}."'\n"; exit(1); }
print "Fehlertext : ".$gobjObject->{"error"}."\n";
print "Gateway : ".$gobjObject->{"gateway"}."\n"; # Übergeordnetes Objekt TSS::Ikea::Tradfri
print "Name : ".$gobjDevice->{"name"}."\n";
print "Gerätetyp : ".$gobjDevice->{"devicetype"}."\n";
print "Anmeldedatum : ".$gobjDevice->{"created"}."\n";
print "Geräte-ID : ".$gobjDevice->{"deviceid"}."\n";
print "Onlinestatus : ".$lobjSelf->{"online"}."\n";
print "Letzter kontakt : ".$lobjSelf->{"lastseen"}."\n";
print "Update Status : ". $lobjSelf->{"updatestate"}."\n";
print "Zugriffstyp : ".$lobjSelf->{"accessorytype"}."\n";
print "Hersteller : ".$lobjSelf->{"manufactor"}."\n";
print "Seriennummer : ".$lobjSelf->{"serialno"}."\n";
print "Firmwareversion : ".$lobjSelf->{"version"}."\n";
print "Stromquelle : ". $lobjSelf->{"powersource"}."\n";
print " Batteriestand : ".$lobjSelf->{"batterylevel"}."\n" if(defined($lobjSelf->{"batterylevel"}));
Einige der Attribute sind optional und nur vorhanden, wenn die Fernbedienung diese unterstützen.
Neben den Attributen besitzt die Klasse TSS::Ikea::Tradfri::Remote auch Funktionen um einen Status abzufragen:
#!/usr/bin/perl
use TSS::Ikea::Tradfri;
my $gobjGateway = TSS::Ikea::Tradfri->new( host => <IP-Adresse>
username => <Benutzername>,
presharedkey => <Preshared Key> );
my $gobjObject=$gobjGateway->getDeviceInfo("<Geräte-ID>");
if (! defined($gobjObject)) { print "Fehler:'".$gobjGateway->{"error"}."'\n"; exit(1); }
print "Name : ".$gobjDevice->name()."\n";
print "Deviceid : ".$gobjDevice->deviceid()."\n";
print "Devicetype : ".$gobjDevice->devicetype()."\n";
print "Version ausgeben : ".$gobjDevice->version()."\n";
print "Erreichbarkeit : ".$gobjDevice->online()."\n";
print "Batteriestand : ".$gobjDevice->batterylevel()."\n";
print "Devicestate : ".$gobjDevice->devicestate()."\n";
Durch die Methode $gobjObject->devicestate() werden alle Informationen der Fernbedingung neu eingelesen.
#!/usr/bin/perl
use TSS::Ikea::Tradfri;
my $gobjGateway = TSS::Ikea::Tradfri->new( host => <IP-Adresse>
username => <Benutzername>,
presharedkey => <Preshared Key> );
my $gobjObject=$gobjGateway->getDeviceInfo("<Geräte-ID>");
if (! defined($gobjObject)) { print "Fehler:'".$gobjGateway->{"error"}."'\n"; exit(1); }
my $gintResult=$gobjObject->readDeviceInfo();
if (! defined($gintResult)) { print "Fehler:\"".$gobjGateway->{"error"}."\"\n"; exit(1); }
Copyright (C) 2019 Thomas Schütz-Schneider
Dieses Programm ist freie Software. Sie können es unter den Bedingungen der GNU General Public License, wie von der Free Software Foundation veröffentlicht, weitergeben und/oder modifizieren, entweder gemäß Version 3 der Lizenz oder (nach Ihrer Option) jeder späteren Version.
Die Veröffentlichung dieses Programms erfolgt in der Hoffnung, dass es Ihnen von Nutzen sein wird, aber OHNE IRGENDEINE GARANTIE, sogar ohne die implizite Garantie der MARKTREIFE oder der VERWENDBARKEIT FÜR EINEN BESTIMMTEN ZWECK. Details finden Sie in der GNU General Public License.
Sie sollten ein Exemplar der GNU General Public License zusammen mit diesem Programm erhalten haben. Falls nicht, siehe <https://www.gnu.org/licenses/>.