Hallo, wie bekomme ich es hin das nach einem Stromausfall das HM-OU-LED16 den letzten Staus der LED´s wie vor dem Stromausfall gesetzt wieder annimmt?
Gruß
cerberus
ist eigentlich standard, sprich du musst nichts tun für das Feature
Funktioniert aber nicht bei mir. Der Status in FHEM ist eigenartigerweise im WEBFrontend dann auch bei allen LED´s off. Kommen die Werte aus der fhem.save?
fhem sendet beim einschalten den letzten stand den fhem kennt. also das was aus save kommt.
um das halbwegs aktuell z halten bietet es sich an per at regelmäßig zu speichern.
zusätzlich ist es sinnvoll in den routinen die die leds schalten jeweils selber zu prüfen ob der neue zustand ungleich dem alten ist. dann muss mannein. du musst nicht. du sollst nicht. du darfst nich b in den notifys nicht event-on-change verwenden sondern kann den status immer aktualisiern und es wird trozdem nur gesendet wenn sich etwas ändert.
gruss
andre
Zitat von: cerberus am 21 Juli 2014, 12:14:21
nach einem Stromausfall das HM-OU-LED16 den letzten Staus der LED´s wie vor dem Stromausfall gesetzt wieder annimmt?
nur nochmal zum Verständnis
ist eigentlich standard, sprich du musst nichts tun für das Feature
Wenn du davon sprichst, dass dein FHEM Stromausfall und dein HM-OU-LED16 hat, wird das HM-OU-LED16 nicht mit den Daten aus fhem.save versorgt.
Dafür habe ich mir ein Notify angelegt:
define LED_Anzeige_powerOn notify LED_Anzeige:powerOn.* define UF_LED_Anzeige_powerOn at +00:00:10 {Update_Fenster_LED("Alle")}
Zur Sicherheit gibt es noch eine Verzögerung, damit das Display auch komplett gebootet hat. Eine Perl Funktion sendet dann die Updates für die LEDs.
Dein notify interessiert mich.
Leider verstehe ich noch nicht ganz, wie Du vorgehst.
Hast Du pro LED ein notify?
Was speziell ist bei Dir UF_LED_Anzeige_powerOn und Update_Fenster_LED("Alle")?
Hallo Gunther,
es gibt nur ein notify. Dieses wird getriggert, wenn das Display startet. Nun wird ein at definiert mit dem Namen "UF_LED_Anzeige_powerOn", um die Ausführung noch etwas zu verzögern. Das at kann auch Klaus oder Hugo heissen. Bei mir zeigt das Display den Zustand der 16 Fenster im Haus an (UF = Update Fenster). Nach 10 Sekunden wird die Perl Funktion "Update_Fenster_LED" aufgerufen. Normalerweise wird hier der Name eines Fensters übergeben. Die Funktion ermittelt die dazugehörige LED und sendet den Befehl, um die Farbe zu setzen. Wenn der Fenstername "Alle" heißt, werden alle LEDs neu gesendet.
Gruß Deudi
Hallo Deudi,
magst Du Deinen Code hier posten?
Am Wochenende...
So, hier mein Code aus der 99_myUtils.pm. Um es gleich vorweg zu nehmen: Das geht bestimmt auch eleganter. Der Code ist aus meinen FHEM-Anfangszeiten. Aber er funktioniert gut und daher habe ich keinen Anlass das zu ändern. Es sei denn, jemand macht mir daraus einen wurschteligen Perl Einzeiler ;D
Ich habe eine Liste der 16 Fenster und eine für die LEDs. Für Fenster_Arbeitszimmer ist LED01 zuständig, für Fenster_Flur_DG die LED02 usw. Die Fenstersensoren (RHS) haben ein eventMap, daher die deutschen Zustände. Denglisch ist toll ::)
my @Fenster_name = ("Fenster_Arbeitszimmer", "Fenster_Flur_DG", ... , "Fenster_Hobbykeller");
my @Led_name = ("LED01", "LED02", ... , "LED16");
sub Update_Fenster_LED($) {
my ($fenster) = @_;
my $i;
my $zustand;
my $led;
my $farbe;
# Reset
if ($fenster eq "Alle") {
fhem("set LED_Anzeige led off");
}
# Loop über alle Fenster
for ($i = 0; $i < 16; $i++) {
if ($fenster eq "Alle" || $fenster eq $Fenster_name[$i]) {
# Aktuellen Zustand lesen
$zustand = Value($Fenster_name[$i]);
# LED ermitteln
$led = $Led_name[$i];
# Farbe setzen
if ($zustand eq "geschlossen") {
$farbe = "green";
} elsif ($zustand eq "gekippt") {
$farbe = "orange";
} elsif ($zustand eq "offen") {
$farbe = "red";
} else {
$farbe = "off";
}
# LED senden
fhem("set $led led $farbe");
# Abbruch, falls nicht für alle Fenster
if ($fenster ne "Alle") {
last;
}
}
}
}
Hey Deudi, sorry für die späte Antwort, ich sollte mal eine Benachrichtigung konfigurieren.
Ich finde Deinen Code gut! Sieht aus wie meine Spaghetti Code Ergüsse, aber hey, es funktioniert und man erkennt auch nach Monaten sofort, was es tut!
Danke, dass Du ihn veröffentlicht hast!
Ich habe es zwischenzeitlich mit einzelnen Notifies für jeden TFK realisiert, die ich dann per Wildcard TFK.* antriggere.
Zitat von: derron am 13 April 2015, 23:54:42
Ich habe es zwischenzeitlich mit einzelnen Notifies für jeden TFK realisiert, ...
Hast du für jedes Fenster ein Notify? Das ist nicht optimal. Bedenke, dass jedes Event gegen jedes Notify geprüft werden muss. Cubietruck ist zwar nicht langsam, aber es kostet trotzdem. Ich hatte auch solche Konstrukte aus den Anfangszeiten und habe es dann nach und nach umgebaut.
Gruß Deudi
OK, du hast mich motiviert, ein zentrales Notify umzusetzen auf Basis deines Codes. Die Abarbeitung ist dadurch allerdings langsamer geworden. Ich habe das Gefühl, dass Notifies ziemlich performant parallel abgearbeitet werden. Aber die Umstellung hat sich trotzdem gelohnt, alleine der Code ist nun viel besser zu warten.
Um unnötige Sets zu durch die Luft zu funken, habe ich übrigens noch eine Statusabfrage vorher eingebaut in der Form
if (Value($LED[$i]) ne "green") {
fhem ("set $LED[$i] led green");
}
Hallo
habe das gleiche Problem.
bin aber nicht gerade EDV Programmierer Profi.
Wäre schön wenn wie ein komplettes Beispiel für das Wiki hätten.
http://www.fhemwiki.de/wiki/HM-OU-LED16_Funk-Statusanzeige_LED16
Möchte das Display per Bewegungsmelder einschalten, das natürlich mit den aktuellen Zuständen.
Dafür scheint der code ja geeigent.
muss man hier die Pünktchen durch die echten Namen ersetzen?
my @Fenster_name = ("Fenster_Arbeitszimmer", "Fenster_Flur_DG", ... , "Fenster_Hobbykeller");
my @Led_name = ("LED01", "LED02", ... , "LED16");
also zB 16 Fenster und 16 LEDs oder eben nur 8 ?!
Sorry verstehe den code och nicht ganz
So wäre das Disply dann wirklich brauchbar
habs mal probiert:
Die Namen der LEDs habe ich aus der automatisierten Analge des devices übernommen, gerade für Anfänger sicher dann einfacher zu vertehen.
99_myUtils.pm
my @Fenster_name = ("FK_Bad_EG", "FK_Buero", "FK_Essen", "FK_Garage", "FK_Keller", "FK_Kueche" , "TK_Essen", "TK_wohnen");
my @Led_name = ("HM_20F85B_Led_01", "HM_20F85B_Led_02", "HM_20F85B_Led_03", "HM_20F85B_Led_4", "HM_20F85B_Led_05", "HM_20F85B_Led_06" , "HM_20F85B_Led_07", "HM_20F85B_Led_08");
sub Update_Fenster_LED($) {
my ($fenster) = @_;
my $i;
my $zustand;
my $led;
my $farbe;
# Reset
if ($fenster eq "Alle") {
fhem("set LED_Anzeige led off");
}
# Loop über alle Fenster
for ($i = 0; $i < 16; $i++) {
if ($fenster eq "Alle" || $fenster eq $Fenster_name[$i]) {
# Aktuellen Zustand lesen
$zustand = Value($Fenster_name[$i]);
# LED ermitteln
$led = $Led_name[$i];
# Farbe setzen
if ($zustand eq "closed") {
$farbe = "green";
} elsif ($zustand eq "gekippt") {
$farbe = "orange";
} elsif ($zustand eq "open") {
$farbe = "red";
} else {
$farbe = "off";
}
# LED senden
fhem("set $led led $farbe");
# Abbruch, falls nicht für alle Fenster
if ($fenster ne "Alle") {
last;
}
}
}
}
in der fhem.cfg
define LED_Anzeige_powerOn notify LED_Anzeige:powerOn.* define UF_LED_Anzeige_powerOn at +00:00:10 {Update_Fenster_LED("Alle")}
Zitat von: Franz Tenbrock am 07 Januar 2016, 21:12:04
Wäre schön wenn wie ein komplettes Beispiel für das Wiki hätten.
http://www.fhemwiki.de/wiki/HM-OU-LED16_Funk-Statusanzeige_LED16
Möchte das Display per Bewegungsmelder einschalten, das natürlich mit den aktuellen Zuständen.
Dafür scheint der code ja geeigent.
Ich kann am Wochenende mal das Wiki ergänzen.
Bist du sicher, dass es Sinn macht das komplette Display stromlos zu machen und bei Bewegung einzuschalten? Wäre es nicht sinnvoller nur die Helligkeit zu reduzieren oder die LEDs vom Display abschalten zu lassen (letztes Beispiel im Wiki)?
Den Fall im Code, dass alle LED Zustände gesendet werden, habe habe ich für mich nur für ein Recovery bei Stromausfall geschrieben und nicht für den Regelbetrieb.
Zitat
muss man hier die Pünktchen durch die echten Namen ersetzen?
Ja, ich wollte nur nicht die ganze Liste posten.
Zitat
also zB 16 Fenster und 16 LEDs oder eben nur 8 ?!
Sorry verstehe den code och nicht ganz
Sorry, aber das merkt man ;)
Wenn du nur 8 Fenster hast, darf die Schleife nicht über 16 Fenster laufen. Ich hatte den Code schon extra mit Kommentaren (dem natürlichen Feind des Programmierers) versehen. Es steht alles da was passiert. Der Code erfüllt bei mir halt auch zwei Funktionen: Das normale Update einer LED und das Recovery nach Power-on. Werde das Beispiel für das Wiki schlanker gestalten.
Zitat
habs mal probiert:
Und was ist dabei heraus gekommen?
Zitat von: Deudi am 08 Januar 2016, 09:58:44
Wenn du nur 8 Fenster hast, darf die Schleife nicht über 16 Fenster laufen.
Ergänzung: Das geht auch ganz flexibel so:
# Loop über alle Fenster
for ($i = 0; $i <= $#Fenster_name; $i++) {
Damit läuft die Schleife nur über die Länge des Arrays. Ich war da etwas faul, da ich nicht annehme, dass sich die Anzahl der Fenster in meinem Haus mal ändert. ;)
Hallo,
bin halt nicht der Programmier Profi, da eher totaler Anfänger der auch nur alle paar Wochen mal was macht.
Wenn dann auch nur Teile des Codes da stehen wird es immer was schwierig.
Kryptische Namen machen es dann noch schwerer etwas zu verstehen.
aber damit bin ich ja nicht alleine im Forum.
Die Leds hab ich eh schon auf der geringsten Stufe, Gerät steht halt in einer dunklen Ecke
ob das ausschalten überhaupt Sinn macht ?,
hab den Stromverbrauch noch nicht berechnet.
Aber beim Stromausfall sollte das Gerät ja auch den tatsächlichen Zustand anzeigen und nicht den letzten Zustand den das Gerät selbst mitbekommen hat.
Letztendlich soll das Gerät vor dem Verlassen des Hauses einen schnellen Überblick geben und der Bewegungsmelder ist eh im Flur angebracht, kann dann ja gleich mehrere sinnvolle Dinge machen.
Wenn im Wiki erst die einfachen und dann die komplexen Beispiele stehen würden wäre das Verständis auch für Programmieranfänger leichter
Erst das einfache verstehen und umsetzen dann immer komplizierter
Schreib mir fast immer eine Dokument wie was funktioniert damit ich auch Wochen später den code noch verstehe
so hab die Zeile geändert und auch verstanden :-)
trotzdem noch nciht ganz richtig
es passiert aber schon mal was
linkes Bild so sieht es aus, unten die Anzeige für die aktuellen Stati der FK oben die Meldungen des Displays
mittleres Bild: wenn das Statusdisplay keinen -strom hat sehe ich in fhem diese Änderung
rechtes bild: wenn ich nun das Display unter Strom setze werden die 2 neuen Stati TK Essen TK Wohnen wieder gelöscht
ev hilft das ja weiter.
es wird zumindest von fhem erkannt das das Statusdisplay was tun soll, Led auf rot schalten...
bzw er läuft die util schon durch wenn das Dsplay aus ist, sollte aber erst laufen wenn das Display eingeschaltet wird ?!
das ist in der fhem.cfg
define LED_Anzeige_powerOn notify LED_Anzeige:powerOn.* define UF_LED_Anzeige_powerOn at +00:00:10 {Update_Fenster_LED("Alle")}
die Unteroutine wird doch eigentlich erst 10 sek nachdem das Display Strom bekommen hat ausgelöst
ich habs
also in der fhem.cfg war noch ein Fehler
einfach dumm übernommen >:(
bei mir hab ich es umbenannt in statusanzeige
also muss auch das notify LED_Anzeige umbenannt werden
define LED_Anzeige_powerOn notify statusanzeige:powerOn.* define UF_LED_Anzeige_powerOn at +00:00:10 {Update_Fenster_LED("Alle")}
ein so ein blöder Sensor will noch nicht (der4.) aber da der Rest nun klappt sollte ich die Leerstelle oder was auch immer da noch falsch ist selber finden.
so finde ich Gefallen an dem Teil
durch das Ganze testen gerade erst mal einen hmlan overload >:(
hab noch einen kleinen Fehler gefunden, so erst mal warten dann weiter testen
werde das nun mal beobachten und testen und dann den ganzen Code hier posten und dann sollten wir das wiki ergänzen damit auch andere Anfänger schnell zruechtkommen, als Bausatz mit 10 Euro Rabatt und ELV card ( hab ich von elv zu Weihnachtne bekommen ) kostet das ja nicht mehr so viel
so
nachdem es mit großer Hilfe geklappt habe, habe ich es mal versucht im wiki einzustellen.
Ich hoffe man findet und versteht es dort.
Was müsste da sonst noch rein, PM oder so an mich
Es gab wohl noch einen Fehler in der 99_myutils.pm
im Logfile haufenweise Fehlermeldungen und vor allem das hier:
Undefined subroutine &main::myUtils_Initialize called at fhem.pl line 2227.
nach dem ausmisten fehlte nun aber das hier am Anfang der utils:
sub
myUtils_Initialize($$)
{
my ($hash) = @_;
}
jetzt alles ok
den Rest lass ich mal hier stehen für andere Anfänger.
geholfen hat mir das hier
http://www.fhemwiki.de/wiki/99_myUtils_anlegen
Nachdem ich im Logfile nachgeschaut habe fand ich das hier:
Fehler war wohl in der 99_myutils.pm
Undefined subroutine &main::myUtils_Initialize called at fhem.pl line 2227.
also in der fhem.pl nachgeschaut
&{ "${fnname}_Initialize" }(\%hash);
da fehlt wohl irgendwo ein Funktions Name?!
der Fehler liegt wohl noch hier:
hier meine aktuelle myUtils
package main;
use strict;
use warnings;
use POSIX;
use Time::Local;
my @Fenster_name = ("FK_Bad_EG", "FK_Buero", "FK_Essen", "FK_Garage", "FK_Keller", "FK_Kueche" , "TK_Essen", "TK_wohnen");
my @Led_name = ("HM_20F85B_Led_01", "HM_20F85B_Led_02", "HM_20F85B_Led_03", "HM_20F85B_Led_4", "HM_20F85B_Led_05", "HM_20F85B_Led_06" , "HM_20F85B_Led_07", "HM_20F85B_Led_08");
sub Update_Fenster_LED($) {
my ($fenster) = @_;
my $i;
my $zustand;
my $led;
my $farbe;
# Reset
if ($fenster eq "Alle") {
fhem("set LED_Anzeige led off");
}
# Loop über alle Fenster
for ($i = 0; $i <= $#Fenster_name; $i++) {
if ($fenster eq "Alle" || $fenster eq $Fenster_name[$i]) {
# Aktuellen Zustand lesen
$zustand = Value($Fenster_name[$i]);
# LED ermitteln
$led = $Led_name[$i];
# Farbe setzen
if ($zustand eq "closed") {
$farbe = "green";
} elsif ($zustand eq "gekippt") {
$farbe = "orange";
} elsif ($zustand eq "open") {
$farbe = "red";
} else {
$farbe = "off";
}
# LED senden
fhem("set $led led $farbe");
# Abbruch, falls nicht für alle Fenster
if ($fenster ne "Alle") {
last;
}
}
}
}
und das hier Update_Fenster_LED:
define LED_Anzeige_powerOn notify statusanzeige:powerOn.* define UF_LED_Anzeige_powerOn at +00:00:10 {Update_Fenster_LED("Alle")}
da scheint noch ein Bock drin zu sein ?! :'(
attr LED_Anzeige_powerOn room Türkontakt
da ist noch was faul
das hat wohl hiermit zu tun
für mich leider zu hoch
http://forum.fhem.de/index.php/topic,44094.0.html
gerade eine update gemacht da LED 4 einfach nicht den Zustand übernehmen will
wenn das Ding läuft ging es
so nun bekomme ich eine Fehlermeldung wenn ich die utils speichern will
Global symbol "$fenster" requires explicit package name at ./FHEM/99_myUtils.pm line 17. Global symbol "$i" requires explicit package name at ./FHEM/99_myUtils.pm line 18. Global symbol "$zustand" requires explicit package name at ./FHEM/99_myUtils.pm line 19. Global symbol "$led" requires explicit package name at ./FHEM/99_myUtils.pm line 20. Global symbol "$farbe" requires explicit package name at ./FHEM/99_myUtils.pm line 21. Global symbol "$fenster" requires explicit package name at ./FHEM/99_myUtils.pm line 24. syntax error at ./FHEM/99_myUtils.pm line 24, near "if ($fenster eq "Alle" Global symbol "$led" requires explicit package name at ./FHEM/99_myUtils.pm line 28. Global symbol "$farbe" requires explicit package name at ./FHEM/99_myUtils.pm line 28. Global symbol "$uid" requires explicit package name at ./FHEM/99_myUtils.pm line 28. ./FHEM/99_myUtils.pm has too many errors.
meine Utils:
package main;
use strict;
use warnings;
use POSIX;
use Time::Local;
use HTML::Entities;
sub myUtils_Initialize($$)
{
my ($hash) = @_;
}
my @Fenster_name = ("FK_Bad_EG", "FK_Buero", "FK_Essen", "K_Garage", "K_Keller", "FK_Kueche", "TK_Essen", "TK_wohnen", "K_Keller");
my @Led_name = ("statusanzeige_Led_01", "statusanzeige_Led_02", "statusanzeige_Led_03", "statusanzeige_Led_4", "statusanzeige_Led_05", "statusanzeige_Led_06", "statusanzeige_Led_07", "statusanzeige_Led_08", "statusanzeige_Led_09);
sub Update_Fenster_LED($) {
my ($fenster) = @_;
my $i;
my $zustand;
my $led;
my $farbe;
# Reset
if ($fenster eq "Alle") {
fhem("set statusanzeige led off");
}
# Loop über alle Fenster
for ($i = 0; $i <= $#Fenster_name; $i++) {
if ($fenster eq "Alle" || $fenster eq $Fenster_name[$i]) {
# Aktuellen Zustand lesen
$zustand = Value($Fenster_name[$i]);
# LED ermitteln
$led = $Led_name[$i];
# Farbe setzen
if ($zustand eq "closed") {
$farbe = "green";
} elsif ($zustand eq "gekippt") {
$farbe = "orange";
} elsif ($zustand eq "open") {
$farbe = "red";
} else {
$farbe = "off";
}
# LED senden
fhem("set $led led $farbe");
# Abbruch, falls nicht für alle Fenster
if ($fenster ne "Alle") {
last;
}
}
}
}
sub myAbfallTermine_Initialize($$)
{
my ($hash) = @_;
}
# Mülltermine auswerten
sub MuelltermineA ($)
{
my ($Ereignis) = @_;
my @Ereignisarray = split(/.*:\s/,$Ereignis);
my $Ereignisteil1 = $Ereignisarray[1];
my @uids=split(/;/,$Ereignisteil1);
my $t = time;
my $dtBio = '';
my $dtYellow = '';
my $dtRest = '';
my $dtPapier = '';
my $dtAltholz = '';
my $dtSchadstoff = '';
my $dtGruen = '';
foreach my $uid (@uids) {
my $Kalendertext = fhem("get AbfallA summary $uid",1);
if ($Kalendertext =~ /Bioabfall/) {
my $dt = fhem("get AbfallA start $uid");
my @SplitDt = split(/ /,$dt);
my @SplitDate = split(/\./,$SplitDt[0]);
my $eventDate = timelocal(0,0,0,$SplitDate[0],$SplitDate[1]-1,$SplitDate[2]);
if ($dtBio eq '' || ($eventDate < $dtBio && $eventDate > $t))
{
$dtBio = $eventDate;
Log(3, $dtBio);
}
};
if ($Kalendertext =~ /Gelbe Tonne/) {
my $dt = fhem("get AbfallA start $uid");
my @SplitDt = split(/ /,$dt);
my @SplitDate = split(/\./,$SplitDt[0]);
my $eventDate = timelocal(0,0,0,$SplitDate[0],$SplitDate[1]-1,$SplitDate[2]);
if ($dtYellow eq '' || ($eventDate < $dtYellow && $eventDate > $t))
{
$dtYellow = $eventDate;
}
};
if ($Kalendertext =~ /Restmüll/) {
my $dt = fhem("get AbfallA start $uid");
my @SplitDt = split(/ /,$dt);
my @SplitDate = split(/\./,$SplitDt[0]);
my $eventDate = timelocal(0,0,0,$SplitDate[0],$SplitDate[1]-1,$SplitDate[2]);
if ($dtRest eq '' || ($eventDate < $dtRest && $eventDate > $t))
{
$dtRest = $eventDate;
}
};
if ($Kalendertext =~ /Altpapier /) {
my $dt = fhem("get AbfallA start $uid");
my @SplitDt = split(/ /,$dt);
my @SplitDate = split(/\./,$SplitDt[0]);
my $eventDate = timelocal(0,0,0,$SplitDate[0],$SplitDate[1]-1,$SplitDate[2]);
if ($dtPapier eq '' || ($eventDate < $dtPapier && $eventDate > $t))
{
$dtPapier = $eventDate;
}
};
if ($Kalendertext =~ /Bioabfall/) {
my $dt = fhem("get AbfallA start $uid");
my @SplitDt = split(/ /,$dt);
my @SplitDate = split(/\./,$SplitDt[0]);
my $eventDate = timelocal(0,0,0,$SplitDate[0],$SplitDate[1]-1,$SplitDate[2]);
if ($dtAltholz eq '' || ($eventDate < $dtAltholz && $eventDate > $t))
{
$dtAltholz = $eventDate;
}
};
if ($Kalendertext =~ /Glas/) {
my $dt = fhem("get AbfallA start $uid");
my @SplitDt = split(/ /,$dt);
my @SplitDate = split(/\./,$SplitDt[0]);
my $eventDate = timelocal(0,0,0,$SplitDate[0],$SplitDate[1]-1,$SplitDate[2]);
if ($dtSchadstoff eq '' || ($eventDate < $dtSchadstoff && $eventDate > $t))
{
$dtSchadstoff = $eventDate;
}
};
};
my $dayDiffB = floor(($dtBio - $t) / 60 / 60 / 24 + 1);
if ($dayDiffB >= 0) {
fhem("set BioabfallA $dayDiffB");
}
my $dayDiffG = floor(($dtYellow - $t) / 60 / 60 / 24 + 1);
if ($dayDiffG >= 0) {
fhem("set GelbeTonneA $dayDiffG");
}
my $dayDiffR = floor(($dtRest - $t) / 60 / 60 / 24 + 1);
if ($dayDiffR >= 0) {
fhem("set RestmuellA $dayDiffR");
}
my $dayDiffP = floor(($dtPapier - $t) / 60 / 60 / 24 + 1);
if ($dayDiffP >= 0) {
fhem("set AltpapierA $dayDiffP");
}
my $dayDiffH = floor(($dtAltholz - $t) / 60 / 60 / 24 + 1);
if ($dayDiffH >= 0) {
fhem("set MetallA $dayDiffH");
}
my $dayDiffS = floor(($dtSchadstoff - $t) / 60 / 60 / 24 + 1);
if ($dayDiffS >= 0) {
fhem("set GlasA $dayDiffS");
}
my $dayDiff = floor(($dtGruen - $t) / 60 / 60 / 24 + 1);
if ($dayDiff >= 0) {
fhem("set GruenA $dayDiff");
}
}
sub MuelltermineB ($)
{
my ($Ereignis) = @_;
my @Ereignisarray = split(/.*:\s/,$Ereignis);
my $Ereignisteil1 = $Ereignisarray[1];
my @uids=split(/;/,$Ereignisteil1);
my $t = time;
my $dtBio = '';
my $dtYellow = '';
my $dtRest = '';
my $dtPapier = '';
my $dtAltholz = '';
my $dtSchadstoff = '';
my $dtGruen = '';
foreach my $uid (@uids) {
my $Kalendertext = fhem("get AbfallB summary $uid",1);
if ($Kalendertext =~ /Bioabfall/) {
my $dt = fhem("get AbfallB start $uid");
my @SplitDt = split(/ /,$dt);
my @SplitDate = split(/\./,$SplitDt[0]);
my $eventDate = timelocal(0,0,0,$SplitDate[0],$SplitDate[1]-1,$SplitDate[2]);
if ($dtBio eq '' || ($eventDate < $dtBio && $eventDate > $t))
{
$dtBio = $eventDate;
Log(3, $dtBio);
}
};
if ($Kalendertext =~ /Gelbe Tonne/) {
my $dt = fhem("get AbfallB start $uid");
my @SplitDt = split(/ /,$dt);
my @SplitDate = split(/\./,$SplitDt[0]);
my $eventDate = timelocal(0,0,0,$SplitDate[0],$SplitDate[1]-1,$SplitDate[2]);
if ($dtYellow eq '' || ($eventDate < $dtYellow && $eventDate > $t))
{
$dtYellow = $eventDate;
}
};
if ($Kalendertext =~ /Restmüll/) {
my $dt = fhem("get AbfallB start $uid");
my @SplitDt = split(/ /,$dt);
my @SplitDate = split(/\./,$SplitDt[0]);
my $eventDate = timelocal(0,0,0,$SplitDate[0],$SplitDate[1]-1,$SplitDate[2]);
if ($dtRest eq '' || ($eventDate < $dtRest && $eventDate > $t))
{
$dtRest = $eventDate;
}
};
if ($Kalendertext =~ /Altpapier /) {
my $dt = fhem("get AbfallB start $uid");
my @SplitDt = split(/ /,$dt);
my @SplitDate = split(/\./,$SplitDt[0]);
my $eventDate = timelocal(0,0,0,$SplitDate[0],$SplitDate[1]-1,$SplitDate[2]);
if ($dtPapier eq '' || ($eventDate < $dtPapier && $eventDate > $t))
{
$dtPapier = $eventDate;
}
};
if ($Kalendertext =~ /Bioabfall/) {
my $dt = fhem("get AbfallB start $uid");
my @SplitDt = split(/ /,$dt);
my @SplitDate = split(/\./,$SplitDt[0]);
my $eventDate = timelocal(0,0,0,$SplitDate[0],$SplitDate[1]-1,$SplitDate[2]);
if ($dtAltholz eq '' || ($eventDate < $dtAltholz && $eventDate > $t))
{
$dtAltholz = $eventDate;
}
};
if ($Kalendertext =~ /Glas/) {
my $dt = fhem("get AbfallB start $uid");
my @SplitDt = split(/ /,$dt);
my @SplitDate = split(/\./,$SplitDt[0]);
my $eventDate = timelocal(0,0,0,$SplitDate[0],$SplitDate[1]-1,$SplitDate[2]);
if ($dtSchadstoff eq '' || ($eventDate < $dtSchadstoff && $eventDate > $t))
{
$dtSchadstoff = $eventDate;
}
};
};
my $dayDiffB = floor(($dtBio - $t) / 60 / 60 / 24 + 1);
if ($dayDiffB >= 0) {
fhem("set BioabfallB $dayDiffB");
}
my $dayDiffG = floor(($dtYellow - $t) / 60 / 60 / 24 + 1);
if ($dayDiffG >= 0) {
fhem("set GelbeTonneB $dayDiffG");
}
my $dayDiffR = floor(($dtRest - $t) / 60 / 60 / 24 + 1);
if ($dayDiffR >= 0) {
fhem("set RestmuellB $dayDiffR");
}
my $dayDiffP = floor(($dtPapier - $t) / 60 / 60 / 24 + 1);
if ($dayDiffP >= 0) {
fhem("set AltpapierB $dayDiffP");
}
my $dayDiffH = floor(($dtAltholz - $t) / 60 / 60 / 24 + 1);
if ($dayDiffH >= 0) {
fhem("set MetallB $dayDiffH");
}
my $dayDiffS = floor(($dtSchadstoff - $t) / 60 / 60 / 24 + 1);
if ($dayDiffS >= 0) {
fhem("set GlasB $dayDiffS");
}
}
ich bekomms doch nciht fehlerfrei hin
schade
Kann auf die Schnelle in "meinem" Code keinen Fehler sehen, allerdings:
Wofür ist myAbfallTermine_Initialize($$)
Lösch das mal.
Weiterhin fehlt am Ende der Datei:
1;
Probier nochmal...
myAbfallTermine_Initialize($$)
ist für die Mülltermine die weiter unten kommen
hab jetzt alles was mit Müll zu tun hatte rausgeschmissen
und auch den anderen code von dir noch einmal komplett neu übernommen
LED_Anzeige ist bei mir die statusanzeige, kommt an einer Stelle im code vor und habe ich da ausgetauscht
ist das ok ?
was merkwürdig ist das LED 4 nie aktualisiert wird, habe da schon alle Fensterkontakte ausprobiert :-(
wenn das Display an ist reagiert die LED absolut richtig udn genau so schnell wie die anderen
wenn ich aber das Dsiplay stromlos mache , wird die LED nie richtig angezeigt, steht immer auf off
der Rest funktioniert wie es soll
package main;
use strict;
use warnings;
use POSIX;
use Time::Local;
use HTML::Entities;
sub myUtils_Initialize($$)
{
my ($hash) = $_;
}
my @Fenster_name = ("FK_Bad_EG", "FK_Buero", "FK_Essen", "TK_Essen", "FK_Keller", "FK_Kueche" , "TK_Essen", "TK_wohnen");
my @Led_name = ("statusanzeige_Led_01", "statusanzeige_Led_02", "statusanzeige_Led_03", "statusanzeige_Led_4", "statusanzeige_Led_05", "statusanzeige_Led_06" , "statusanzeige_Led_07", "statusanzeige_Led_08");
sub Update_Fenster_LED($) {
my ($fenster) = @_;
my $i;
my $zustand;
my $led;
my $farbe;
# Reset
if ($fenster eq "Alle") {
fhem("set statusanzeige led off");
}
# Loop über alle Fenster
for ($i = 0; $i <= $#Fenster_name; $i++) {
if ($fenster eq "Alle" || $fenster eq $Fenster_name[$i]) {
# Aktuellen Zustand lesen
$zustand = Value($Fenster_name[$i]);
# LED ermitteln
$led = $Led_name[$i];
# Farbe setzen
if ($zustand eq "closed") {
$farbe = "green";
} elsif ($zustand eq "gekippt") {
$farbe = "orange";
} elsif ($zustand eq "open") {
$farbe = "red";
} else {
$farbe = "off";
}
# LED senden
fhem("set $led led $farbe");
# Abbruch, falls nicht für alle Fenster
if ($fenster ne "Alle") {
last;
}
}
}
}
1;
hier die Definition aus der fhem.cfg
sind die letzten beiden Zeilen da ok ?
######################################################################################
#### Statusanzeige ########
######################################################################################
define statusanzeige CUL_HM 20F85B
attr statusanzeige IODev hmusb
attr statusanzeige autoReadReg 4_reqStatus
attr statusanzeige expert 2_raw
attr statusanzeige firmware 1.1
attr statusanzeige model HM-OU-LED16
attr statusanzeige room Türkontakt
attr statusanzeige serialNr KEQ0123776
attr statusanzeige subType outputUnit
attr statusanzeige webCmd getConfig:clear msgEvents
define FileLog_statusanzeige FileLog ./log/statusanzeige-%Y.log statusanzeige
attr FileLog_statusanzeige logtype text
attr FileLog_statusanzeige room Türkontakt
define statusanzeige_Led_01 CUL_HM 20F85B01
attr statusanzeige_Led_01 model HM-OU-LED16
attr statusanzeige_Led_01 peerIDs 00000000,
attr statusanzeige_Led_01 room Türkontakt
#attr statusanzeige_Led_01 alias TK_ESSEN
define statusanzeige_Led_01_open notify FK_Bad_EG:open set statusanzeige_Led_01 led red
define statusanzeige_Led_01_closed notify FK_Bad_EG:closed set statusanzeige_Led_01 led green
define statusanzeige_Led_02 CUL_HM 20F85B02
attr statusanzeige_Led_02 model HM-OU-LED16
attr statusanzeige_Led_02 peerIDs 00000000,
attr statusanzeige_Led_02 room Türkontakt
#attr statusanzeige_Led_02 alias FK_ESSEN
define statusanzeige_Led_02_open notify FK_Buero:open set statusanzeige_Led_02 led red
define statusanzeige_Led_02_closed notify FK_Buero:closed set statusanzeige_Led_02 led green
define statusanzeige_Led_03 CUL_HM 20F85B03
attr statusanzeige_Led_03 model HM-OU-LED16
attr statusanzeige_Led_03 peerIDs 00000000,
attr statusanzeige_Led_03 room Türkontakt
#attr statusanzeige_Led_03 alias TK_WOHNZIMMER
define statusanzeige_Led_03_open notify FK_Essen:open set statusanzeige_Led_03 led red
define statusanzeige_Led_03_closed notify FK_Essen:closed set statusanzeige_Led_03 led green
define statusanzeige_Led_04 CUL_HM 20F85B04
attr statusanzeige_Led_04 model HM-OU-LED16
attr statusanzeige_Led_04 peerIDs 00000000,
attr statusanzeige_Led_04 room Türkontakt
#attr statusanzeige_Led_04 alias FK_KUECHE
define statusanzeige_Led_04_open notify TK_Essen:open set statusanzeige_Led_04 led red
define statusanzeige_Led_04_closed notify TK_Essen:closed set statusanzeige_Led_04 led green
#define statusanzeige_Led_04_open notify FK_Kueche:open set statusanzeige_Led_04 led red
#define statusanzeige_Led_04_closed notify FK_Kueche:closed set statusanzeige_Led_04 led green
define statusanzeige_Led_05 CUL_HM 20F85B05
attr statusanzeige_Led_05 model HM-OU-LED16
attr statusanzeige_Led_05 peerIDs 00000000,
attr statusanzeige_Led_05 room Türkontakt
#attr statusanzeige_Led_05 alias FK_BUERO
define statusanzeige_Led_05_open notify FK_Keller:open set statusanzeige_Led_05 led red
define statusanzeige_Led_05_closed notify FK_Keller:closed set statusanzeige_Led_05 led green
define statusanzeige_Led_06 CUL_HM 20F85B06
attr statusanzeige_Led_06 model HM-OU-LED16
attr statusanzeige_Led_06 peerIDs 00000000,
attr statusanzeige_Led_06 room Türkontakt
#attr statusanzeige_Led_06 alias FK_BAD
define statusanzeige_Led_06_open notify FK_Kueche:open set statusanzeige_Led_06 led red
define statusanzeige_Led_06_closed notify FK_Kueche:closed set statusanzeige_Led_06 led green
define statusanzeige_Led_07 CUL_HM 20F85B07
attr statusanzeige_Led_07 model HM-OU-LED16
attr statusanzeige_Led_07 peerIDs 00000000,
attr statusanzeige_Led_07 room Türkontakt
#attr statusanzeige_Led_07 alias K_GARAGE
define statusanzeige_Led_07_open notify TK_Essen:open set statusanzeige_Led_07 led red
define statusanzeige_Led_07_closed notify TK_Essen:closed set statusanzeige_Led_07 led green
define statusanzeige_Led_08 CUL_HM 20F85B08
attr statusanzeige_Led_08 model HM-OU-LED16
attr statusanzeige_Led_08 peerIDs 00000000,
attr statusanzeige_Led_08 room Türkontakt
#attr statusanzeige_Led_08 alias FK_KELLER
define statusanzeige_Led_08_open notify TK_wohnen:open set statusanzeige_Led_08 led red
define statusanzeige_Led_08_closed notify TK_wohnen:closed set statusanzeige_Led_08 led green
define statusanzeige_Led_09 CUL_HM 20F85B09
attr statusanzeige_Led_09 model HM-OU-LED16
attr statusanzeige_Led_09 peerIDs 00000000,
define statusanzeige_Led_10 CUL_HM 20F85B0A
attr statusanzeige_Led_10 model HM-OU-LED16
attr statusanzeige_Led_10 peerIDs 00000000,
define statusanzeige_Led_11 CUL_HM 20F85B0B
attr statusanzeige_Led_11 model HM-OU-LED16
attr statusanzeige_Led_11 peerIDs 00000000,
define statusanzeige_Led_12 CUL_HM 20F85B0C
attr statusanzeige_Led_12 model HM-OU-LED16
attr statusanzeige_Led_12 peerIDs 00000000,
define statusanzeige_Led_13 CUL_HM 20F85B0D
attr statusanzeige_Led_13 model HM-OU-LED16
attr statusanzeige_Led_13 peerIDs 00000000,
define statusanzeige_Led_14 CUL_HM 20F85B0E
attr statusanzeige_Led_14 model HM-OU-LED16
attr statusanzeige_Led_14 peerIDs 00000000,
define statusanzeige_Led_15 CUL_HM 20F85B0F
attr statusanzeige_Led_15 model HM-OU-LED16
attr statusanzeige_Led_15 peerIDs 00000000,
define statusanzeige_Led_16 CUL_HM 20F85B10
attr statusanzeige_Led_16 model HM-OU-LED16
attr statusanzeige_Led_16 peerIDs 00000000,
########################################################################
########## Statusanzeige abfragen
###http://forum.fhem.de/index.php/topic,25539.msg387495.html#msg387495
########################################################################
define LED_Anzeige_powerOn notify statusanzeige:powerOn.* define UF_LED_Anzeige_powerOn at +00:00:10 {Update_Fenster_LED("Alle")}
attr LED_Anzeige_powerOn room Türkontakt
und wenn ich nach shtudown restart ins logfile schaue kommt das hier bei dem code
2016.01.09 14:50:31 1: reload: Error:Modul 99_myutils deactivated:
2016.01.09 14:50:31 1: Including fhem.cfg
Subroutine Update_Fenster_LED redefined at ./FHEM/99_myUtils.pm line 12, <$fh> line 4.
In deinem Array Led_name fehlt bei Led 4 die führende 0 :o
Ausserdem kannst du deine ganzen Notify durch ein einziges ersetzten, dann macht auch meine Funktion mehr Sinn:
define statusanzeige_Led_update notify (T|F)K_.*:(open|closed) { Update_Fenster_LED("$NAME") }
Hallo
thanks
manchmal hat man einfach Tomaten auf den Augen 04 klar , als BVB Fan kann das passieren ;D
define statusanzeige_Led_update notify (T|F)K_.*:(open|closed) { Update_Fenster_LED("$NAME") }
das klappt allerdings noch nicht
er bekommt das powerOn.* noch nicht mit
das hier hab ich verstanden
(T|F)K_.*:(open|closed) { Update_Fenster_LED("$NAME") }
klasse abgekürzt 8)
das hier schaltet das dsiplay an ?!
define LED_Anzeige_powerOn notify statusanzeige:powerOn.*
und das hier ist eine Zeitverzögerung damit das Dsiplay nachkommt?!
at +00:00:10
ich hab erst mal den alten code, damit klappt es, aber nur wenn ich nach einen restart die datei myutils zum editieren starte und dann beende
im logfile zeigt er mir immer noch das das
2016.01.09 19:08:34 0: Server shutdown
2016.01.09 19:08:39 1: reload: Error:Modul 99_myutils deactivated:
es funktioniert ja erst mal. Ich werde es mal am Bestimmungsort montieren.
ev muss ich ja den Bewegungsmelder im Erfassungsbereich noch etwas einschränken damit es nicht zu häufig angeht.
schaun wir mal
:-)
klasse wie hier immer wieder geholfen wird.
werde den Fehler im Wiki mal ändern.
ev bekommen wir dasmit dem eleganteren Code ja auch noch hin
Zitat von: Franz Tenbrock am 09 Januar 2016, 19:13:52
das klappt allerdings noch nicht
er bekommt das powerOn.* noch nicht mit
Nee, dafür ist es auch nicht gedacht. Das notify für powerOn muss bleiben. Das andere ersetzt diejenigen für die ganzen Tür- und Fensterkontakte.
Zitat
das hier hab ich verstanden
(T|F)K_.*:(open|closed) { Update_Fenster_LED("$NAME") }
Gut.
Zitat
das hier schaltet das dsiplay an ?!
define LED_Anzeige_powerOn notify statusanzeige:powerOn.*
Ja.
Zitat
und das hier ist eine Zeitverzögerung damit das Dsiplay nachkommt?!
at +00:00:10
Ja.
Zitat
ich hab erst mal den alten code, damit klappt es, aber nur wenn ich nach einen restart die datei myutils zum editieren starte und dann beende
im logfile zeigt er mir immer noch das das
2016.01.09 19:08:34 0: Server shutdown
2016.01.09 19:08:39 1: reload: Error:Modul 99_myutils deactivated:
Das verstehe ich nicht. Was machst du im Detail? Was bedeutet "wenn ich nach einen restart die datei myutils zum editieren starte und dann beende" ?
Die Datei heißt 99_myUtils.pm und sowohl FHEM als auch Perl unterscheiden Groß- und Kleinschreibung. Das muss alles ganz genau stimmen - wie das vergessene "1;" am Ende, die im Wiki aber stand. Du musst immer ganz genau darauf achten wie du was schreibst...
Hallo
ja ich weiß
Programmsprachen sind nicht fehlertolerant
ein Zeichen zu früh zu spät oder wenn was fehlt und schon geht nichts mehr
aber ich werde ja schon besser, am Anfang hab ich nur Bahnhof verstanden.
als Mediziner hat man es einfacher, wenn auch jeder Mensch ein Individuum ist
Also wenn ich in der Kommadozeile von fhem
shutdown restart eingeben um fhem komplett neu zu starten
und dann in das logfile sehe
dann steht da das die 99_myutils deactiviert wird.
2016.01.09 20:32:30 0: Server shutdown
2016.01.09 20:32:35 1: reload: Error:Modul 99_myutils deactivated:
gerade noch einmal ausprobiert
funktioniert trotzdem alles :D
dann vergessen wir mal das was da im log steht...
was ich aber noch nicht ganz verstehe ist
define LED_Anzeige_powerOn notify statusanzeige:powerOn.* define UF_LED_Anzeige_powerOn at +00:00:10 {Update_Fenster_LED("Alle")}
hier stehen zwei define in einer Zeile
ist das identisch wenn ich daraus zwei Zeilen mache ?
define LED_Anzeige_powerOn notify statusanzeige:powerOn.*
define UF_LED_Anzeige_powerOn at +00:00:10 {Update_Fenster_LED("Alle")}
das war dein neuer code
define statusanzeige_Led_update notify (T|F)K_.*:(open|closed) { Update_Fenster_LED("$NAME") }
"Alle" wurde durch "$NAME" ersetzt
(T|F)K_.*:(open|closed) schaut ob alle Tür Fenster Kontakte open oder closed sind.
kann man sich damit die Schleife in der 99_myUtils.pm sparen??
sub Update_Fenster_LED
...
?
also nur noch Zuordnung der Namen zu den Leds der statusanzeige?
die ersten beiden Zeilen in der 99_myUtils
Zitat von: Franz Tenbrock am 09 Januar 2016, 20:47:11
hier stehen zwei define in einer Zeile
ist das identisch wenn ich daraus zwei Zeilen mache ?
Nein, ist es nicht. Wenn das Display eingeschaltet wird, wird das Notify ausgelöst. Darin wird ein at definiert, dass in 10 Sekunden einmalig etwas tut und dann gelöscht wird.
Zitat
"Alle" wurde durch "$NAME" ersetzt
(T|F)K_.*:(open|closed) schaut ob alle Tür Fenster Kontakte open oder closed sind.
Nein, du hast meine Funktion immer noch nicht verstanden und - sorry - schreibst dann einen wiki Eintrag?
Bei obigem Notify steht in $Name der Name des Tür-/Fensterkontaktes, der gerade betätigt wurde. Das Problem ist nun herauszufinden welche Led für dieses Fenster zuständig ist. Dafür gibt es die beiden Listen. Led1 gehört zum ersten Kontakt in der Fenster Liste, Led2 zum zweiten usw. Die Funktion wird mit dem Namen aufgerufen und sucht nun in der Schleife den gleichen Namen. Dann haben wir den Index und wissen welche Led es ist. Dann wird der Zustand des Kontakts ermittelt, die gewünschte Farbe dazu und gesendet. Ist der Kontakt gefunden, bricht die Schleife ab.
Die zweite Verwendung der gleichen Funktion ist für powerOn. Dann wird an die Funktion statt einem Namen der Text "Alle" übergeben und die Funktion updated alle Leds.
Jetzt verstanden? Bring das mal zum Laufen, dann kannst du noch Kosmetik machen, z.B. die Abfrage auf "gekippt" löschen, da du offensichtlich keine Drehgriffsensoren hast.
Gruß und gute N8
Jetzt habe ich glaube ich verstanden was du mit allen notifys überhaupt meinst ...
Brett vorm Kopf
gehe ich Recht in der Annahme das du das hier meinst...also 32 notifys
define statusanzeige_Led_05_open notify FK_Keller:open set statusanzeige_Led_05 led red
define statusanzeige_Led_05_closed notify FK_Keller:closed set statusanzeige_Led_05 led green
hier nur 1 notify
define statusanzeige_Led_update notify (T|F)K_.*:(open|closed) { Update_Fenster_LED("$NAME") }
der Rest bleibt gleich
define LED_Anzeige_powerOn notify statusanzeige:powerOn.* define UF_LED_Anzeige_powerOn at +00:00:10 {Update_Fenster_LED("Alle")}
attr LED_Anzeige_powerOn room Türkontakt
Sorry
Ja, jetzt ist der Groschen gefallen. :D
Bisher hattest du Kontakte für 9 LEDs definiert. Wenn du die restlichen 7 auch verwendest, musst du natürlich die beiden Listen erweitern und ggf. das Notify anpassen.
Grüße
gerade im Moment wo du das geschrieben hast ausprobiert und es klappt
die fhem.cfg angepasst
Danke
war halt zu sehr fokussiert auf die letzten beiden Zeilen :o
Hab mal versucht es so ins Wiki zu schreiben wie ich es als Anfänger verstanden habe. Ich hoffe das dann auch andere Anfänger dei Hürden nehmen.
jetzt werde ich mich noch mit den Zustandmeldungen der Rolladen etc kümmern
bin mit meinem Verständnis ja nun weiter ....
leider ist Code schreiben noch eine Nummer schwerer als Code nachzuvollziehen und das ist schon nicht trivial
eien Sprache lernt man ja auch nicht von heute auf morgen.
Hab jeden Tag mit Flüchtlingen zu tun die meist schon Monate hier sind und kaum ein deutsches Wort rausbekommen
Wie schrieb mal einer im Forum: "Keine Ahnung hatten wir alle mal..."
Ich bin auch von "fit in Perl" weit entfernt. Learning bei Doing.
Jetzt hast du es ja hinbekommen und hier im Forum wir einem auch fast immer geholfen. Ich schaue bei Gelegenheit mal über den Wiki Eintrag und mache ggf. kosmetische Änderungen.
Grüße Deudi
Lagebericht:
nachdem ich es nun hinbekommen habe, habe ich alles an unserer Haustür montiert.
Dazu habe ich so einen Bewegungsmelder ( ist schön klein )
http://www.ebay.de/itm/Bewegungsmelder-IR-Aufputz-Unterputz-140-360-LED-Decken-Einbau-Licht-Schalter-/111448291306?var=&hash=item19f2d5f7ea:m:mJb8ZHEgjti4QRLprll2h0g
neben der Haustür von innen so angebracht, das er nur dann reagiert, wenn wir an die Garderobe gehen. Dazu habe ich mit weißem Klebeband die Linse entsprechend abgeklebt. Ich möchte einfach nicht, das das Ding reagiert, wenn wir uns im Flur bewegen. Der Bewegungsmelder kommt mit der geringe Spannung des Led16 gut zurecht.
Die Aktualisierung des Displays dauert einige Sekunden, in dieser Zeit nehmen wir Jacke Schlüssel etc was man sonst so braucht und vor dem Verlassen des Hauses ein kurzer Blick aufs Display.
Habe mir gerade das hier bestellt
HomeMatic 8-Kanal-Sendemodul, Komplettbausatz für Smart Home / Hausautomation
Damit würde ich dann gerne das eine oder andere schnell schalten können bevor ich das Haus verlasse.
Da wir ein RFID Schloß an der Haustür haben werde ich auch mal sehen was man damit noch machen kann.
Der Winter ist ja noch lang
Danke noch einmal für die Hilfe, so ist das Ding echt brauchbar.