Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
Ankündigung
Einklappen
Keine Ankündigung bisher.
Schaltuhr - Plugin erweitert um Sonnenauf- und Untergang
Hmm.. Ich habe den Code nochmal durchgesehen aber die Klammern müssten so stimmen. Ausser ich hätte was überseehn Kannst du das Testhalber mal paralell zu deiner Config laufen lassen und nachsehen ob der Perl-Interpreter auf die Nase fällt?
ich komme jetzt erst zum ausprobieren. Leider funktioniert's nicht:
Code:
Global symbol "$element" requires explicit package name at (eval 8799) line 112. Global symbol "$element" requires explicit package name at (eval 8799) line 112. Global symbol "$element" requires explicit package name at (eval 8799) line 112. Global symbol "$element" requires explicit package name at (eval 8799) line 112.
Zeile 112 ist:
Code:
if ($element->{$Wochentag[$wday]} == 1 && $element->{Stunden} == $hour && $element->{Minuten} == $min && $element->{KW} ne '') {
Fehlt da nicht diese if-Zeile? Da wird doch "element" eingelesen, oder?
Code:
foreach my $element (@Schaltzeiten) {
if (knx_read($element->{ga},0,$element->{DPT}) ne $element->{Wert})
IMHO könnte man auch die Prüfung auf leere Stunden und Minuten weglassen, wenn Stunden und Minuten ==0 dann wird halt die Aufgangs- bzw. Untergangszeit genommen
Code:
foreach my $element (@Schaltzeiten) {
[COLOR=Red]# if ($element->{Astro} ne '') {
# if ($element->{Stunden} ne '' or $element->{Minuten} ne ''){
# if ($element->{Astro} eq 'a') {
# $element->{Stunden}+=$sunrise[0];
# $element->{Minuten}+=$sunrise[1];
# } elsif ($element->{Astro} eq 'u') {
# $element->{Stunden}+=$sunset[0];
# $element->{Minuten}+=$sunset[1];
# }
# }else{
[/COLOR] if ($element->{Astro} eq 'a') {
$element->{Stunden}=$sunrise[0];
$element->{Minuten}=$sunrise[1];
} elsif ($element->{Astro} eq 'u') {
$element->{Stunden}=$sunset[0];
$element->{Minuten}=$sunset[1];
}
} [COLOR=Red]
# }
# }[/COLOR]
Wegen der Prüfung auf leere Stunden und Minuten...
Es ging dabei darum, die Astrozeit um Stunden und Minuten zu verzögern. Ich weiss aber nicht was geschieht, wenn man versucht eine leere Variable zu Addieren. Desshalb wird dieser Teil nur ausgeführt, wenn die Variable nicht leer ist.
Wegen der Klammer die zuviel ist... Sorry. Die habe ich nicht gesehen In meiner Arbeitsversion ist die aber auch nicht drin!? Desshalb habeich beim testen auch keine Fehlermeldung bekommen.
Wie ist denn nun der korrekte Code mit den korrekten Klammern?. Wenn ich die letzte hier verfügbare Version kopiere bekomme ich eine Reihe von Fehlmeldungen beginnend ab Zeile 93 wie bereits von henfri beschriben.
Welche Funktion hat bei dir DPT = 5? Bei "Treppenlicht Aus" würde ich eher DPT 1 erwarten? Ich sehe mir das nochmal genauer an denn bis jetzt habe ich nur DPT 1.001 verwendet.
Nee, ist RGB LED, Dimmbar.
Die erste Zeile stammt mit Ausnahme der Uhrzeit von einem Versuch mit dem Gruppenmonitor und das Licht hat erwartungskonform reagiert.
Die zweite Zeile stammt vom Plugin und das Licht reagiert nicht.
Bitte poste doch mal die original configzeile mit der du getestet hast und dazu die originalen eibd Einträge. Ich vermute den Fehler in der Configzeile aber mit fiktiven configzeilen ist das fast nicht erruierbar. Ich würde gerne deine Config auf meinem WG testen um den Fehler zu ergründen
Wenn man mal eine Party feiert, so kann es ja vorkommen, dass man einige Befehle aus der Schaltuhr einfach mal für diesen Tag "nullen" möchte (z.B. soll ja nicht unbedingt das Licht im Garten pünktlich um Mitternacht wieder ausgehen und die Leute im Dunkeln sitzen).
Gibt es vielleicht eine Möglichkeit über eine bestimmte GA einen Befehl in der Schaltuhr auf "inaktiv" zu setzen, bis über einen nochmaligen Befehl dieses wieder aufgehoben wird?
Ich hoffe ich habe mich einigermaßen verständlich ausgedrückt
Das Problem ist einbischen, dass man so nicht unbedingt eine Übersicht darüber hat, ob die Schaltpunkte nun gesperrt oder freigegeben sind. Also müsste man warscheinlich noch eine Rückmeldung einbauen.
Die nächste Frage wäre, ob man das als zentrales Sperrobjekt löst und für jeden Schaltpunkt entscheidet ob durch das zentrale Sperrobjekt die Ausführung gesperrt wird oder ob man für jeden Schaltpunkt eine separates Sperrobjekt braucht.
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Kommentar