Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - Zeitschaltuhr Plugin?

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • swiss
    antwortet
    Also die version mit DPT ist im SVN online. mtags kann ich auch noch ergänzen. Sollte dann aber so sein, dass man mtag auch leer lassen kann wen ein Schaltpunkt jede Woche ausgeführt werden soll.

    Das einstellen der Wochentage in Textform finde ich persönlich aber einfacher, da es auch durch absolute Laien logisch ist, weil wtag beginnt mit 0 für sonntag und zählt dann bis 6 hoch. Das ist nicht unbedingt für jeden sofort klar.

    Einen Kommentar schreiben:


  • greentux
    antwortet
    Naja, das ist kürzer, als diese lange Wochentagszeile
    Ausserdem könnte man gleich noch mtags ergänzen, und damit ggf Monate festlegen.
    Ziel könnte ja sein, die Gelbe Tonne Tage zu melden

    Einen Kommentar schreiben:


  • swiss
    antwortet
    ?? wtag?

    Das müsstest du mir mal genauer erklären. Das erschliesst sich mir nicht automatisch. Du kannst ja einfach dinstag und donnerstag auf 0 setzen

    Weiterhin müsste man auf "Wert" und "DPT" erweitern, um auch Dimmwerte schicken zu können...
    Kein Problem. Das rüste ich noch schnell nach

    Einen Kommentar schreiben:


  • greentux
    antwortet
    Ja die Wochentage würde ich analog linknx bevorzugen, also wtag="1356" wenn es mo, mi, fr und sa sein soll.
    Weiterhin müsste man auf "Wert" und "DPT" erweitern, um auch Dimmwerte schicken zu können...

    Einen Kommentar schreiben:


  • swiss
    antwortet
    Also ich habe das Script mal getestet. Es funktioniert. Wäre also eine Möglichkeit um eine Schaltuhr als WG Plugin nachzubilden. Ich werde das Plugin mal im SVN einstellen. Wenn jamand Verbesserungsvorschläge hat. Immer gerne her damit.

    Einen Kommentar schreiben:


  • greentux
    antwortet
    Das SSD des WG ist dafür ausgelegt.
    cron wäre natürlich die klassische Variante, aber damit dann die 3. Komponenten in der Logik

    Einen Kommentar schreiben:


  • emax
    antwortet
    Ich kenne die die Details zum WG und den Plugins noch nicht. Aber spontan fällt mir cron ein ...?

    Wenn der zu den Schaltzeitpunkten jeweils ein Tag in eine Datei schreibt, kann das von Perl leicht ausgelesen und dann gelöscht werden, und verloren ginge so auch nichts.

    Die Frage könnte sein, ob häufiges I/O auf den internen Speicher problematisch ist. Das Ding speichert doch sicher auf eine SSD, und die mögen dauernde Schreiboperationen ja nun nicht so sehr ...

    Anfängeridee halt, aber was meinen die Auguren?

    Einen Kommentar schreiben:


  • swiss
    antwortet
    Ich hab da mal kurz was zusammengestrikt. Ist aber noch ungetestet. Pro Schaltpunkt wird unter Einstellungen einfach die Zeile die mit push beginnt kopiert und angepasst. Damit kann man quasi unendlich viele Schaltpunkte einrichten.

    Code:
    # Plugin zum Zeit abhängigem schaten von GA's (Schaltuhr)
    # Version 0.1 03.07.2011
    # Copyright: swiss (https://knx-user-forum.de/members/swiss.html)
    # License: GPL (v2)
    # Aufbau möglichst so, dass man unterhalb der Einstellungen nichts verändern muss!
    
    
    ####################
    ###Einstellungen:###
    ####################
    my @Schaltzeiten;
    
    push @Schaltzeiten, { name => "bewässerung_ein", montag => 1, dienstag => 1, mittwoch => 1, donnerstag => 1, freitag => 1, samstag => 0, sonntag => 0, Stunden => 07, Minuten => 00, Befehl => 1, ga => '1/1/30' };
    
    push @Schaltzeiten, { name => "bewässerung_aus", montag => 1, dienstag => 1, mittwoch => 1, donnerstag => 1, freitag => 1, samstag => 0, sonntag => 0, Stunden => 07, Minuten => 30, Befehl => 0, ga => '1/1/30' };
    
    ######################
    ##ENDE Einstellungen##
    ######################
    
    use POSIX;
    
    # Eigenen Aufruf-Zyklus auf 20sek. setzen
    $plugin_info{$plugname.'_cycle'} = 20;
    
    #Hier wird ein Array angelegt, um die Wochentagsnummer von localtime zu übersetzen
    my @Wochentag = ('sonntag', 'montag', 'dienstag', 'mittwoch', 'donnerstag', 'freitag', 'samstag');
    
    my $sec;
    my $min;
    my $hour;
    my $mday;
    my $mon;
    my $year;
    my $wday;
    my $yday;
    my $isdst;
    
    
    foreach my $element (@Schaltzeiten) {
    
    ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
        $year += 1900;
    
        if ($element->{$Wochentag[$wday]} == 1 && $element->{Stunden} == $hour && $element->{Minuten} == $min) {
            knx_write($element->{ga},$element->{Befehl},1);
        }
    next;
    }

    Einen Kommentar schreiben:


  • Bodo
    antwortet
    Zitat von vlamers Beitrag anzeigen
    Ich realisiere meine zeitschaltungen derzeit mit linknx. Das funktioniert sehr gut und ohne Probleme
    Hoi

    Ich auch. Ist für mich auch nach 3 Monaten noch lesbar im Code (XML) und irgendwie logisch aufgebaut.

    Einen Kommentar schreiben:


  • vlamers
    antwortet
    Hi
    Ich realisiere meine zeitschaltungen derzeit mit linknx. Das funktioniert sehr gut und ohne Probleme

    Gruß

    Einen Kommentar schreiben:


  • greentux
    antwortet
    Ja ich habs schon gesehen. Derzeit brauch ich halt ein paar Uhren. Und ich habe keinen HS, wie so einige andere Wiregatebesitzer hier
    Also die Frage: linknx oder WG zu nehmen.
    Mal sehen, eins nach dem anderen.

    Einen Kommentar schreiben:


  • StefanW
    antwortet
    Zitat von greentux Beitrag anzeigen
    hat schonmal jemand eine komfortable Zeitschaltuhr auf dem Wiregate geschrieben? In den svn Plugins habe ich derlei nicht gefunden.
    Im Betaforum zu pywiregate (Logikengine) wurde das ausgiebig diskuttiert mit sehr sehr vielen Details und Spezialitäten. Nicht dass es Fertig wäre, aber es wurden sich sehr viele Gedanken gemacht dazu.

    Stefan

    Einen Kommentar schreiben:


  • swiss
    antwortet
    Ich könnte mir das so vorstellen...

    Code:
    push @Schaltzeiten, { name => "bewässerung_ein", montag => 1, dienstag => 1, mittwoch => 1, donnerstag => 1, freitag => 1, samstag => 0, sonntag => 0, stunden => 07, Minuten => 00, Befehl => 1, ga => '1/1/30' };
    
    push @Schaltzeiten, { name => "bewässerung_aus", montag => 1, dienstag => 1, mittwoch => 1, donnerstag => 1, freitag => 1, samstag => 0, sonntag => 0, stunden => 07, Minuten => 30, Befehl => 0, ga => '1/1/30' };
    Das würde dann z.B. die Bewässerung vom Montag bis am Freitag von 07:00 bis 07:30 einschalten.

    Einen Kommentar schreiben:


  • swiss
    antwortet
    Sollte kein Problem sein. Vieleicht könnte man das Ganze mal gedanklich durchspielen. Welche Anforderungen sind den gegeben?

    z.B.

    Mo - Fr 07:00 EIN und 18:00 AUS
    SA 09:00 EIN und 20:00 AUS

    oder

    01.12.2011 18:00 EIN 30.12.2011 12:00 AUS

    PS: Wie würdest du das eintragen der Schaltzeiten lösen? Und wiviele Schaltzeiten/Tage braucht es? Man müste eine schlaues Bedienkozept ausarbeiten. Der Rest ist relativ einfach.

    Einen Kommentar schreiben:


  • greentux
    antwortet
    Sekunden brauchts nicht.
    Aber es sollte auf jeden Fall auch schalten, wenn die Zeit schon vorbei ist. Also Zustand merken usw.
    Dazu wäre dann sinnvoll, wenn das Ding einfach mehrere Zeitpunkte schalten kann.

    Einen Kommentar schreiben:

Lädt...
X