Zeitschaltuhr inkl. Datum (Weihnachten)

Begonnen von Fabiango, 09 Oktober 2013, 23:44:59

Vorheriges Thema - Nächstes Thema

Fabiango

Hallo FHEM Freunde,

Ich habe seit einiger Zeit das FS20 System im Einsatz mit Steckdosen und Dimmern.
Nun habe ich über meine Fritzbox diesen CUL angeschlossen.
Die einzelnen Aktoren sind bereits angelernt und Beschriftet.

Nun zu meiner Frage, da ich nicht weiter weiss und mir auch der Anfang fehlt.

Zu Weihnachten würde ich gerne 5 Steckdosen als Zeitschaltuhr benutzen für Beleuchtungen.
z.B. das vom 01.12.2013 bis 02.01.2014 jeweils von 18.00 Uhr bis 01.00 Uhr die Steckdosen eingeschaltet sind.

Hier ein paar Daten von meinem System.
NAME FS20_19cba1   NR 73   alias Tannenbaum   model fs20st   room Weihnachten
NAME FS20_19cba0   NR 71   alias Lichtkette Außen   model fs20st   room Weihnachten
NAME FS20_19cba3   NR 77   alias Küche Glas   model fs20st   room Weihnachten

Wie gehe hier genau vor???? Das heisst wie erstelle ich eine solche Datei usw.
Lösungen wären Super. Bin ein absoluter Neuling auf diesem Gebiet!!!

Besten Dank,
Fabian

betateilchen

Zitat von: DJCrazy schrieb am Mi, 09 Oktober 2013 23:44NAME FS20_19cba1   NR 73   alias Tannenbaum

als erstes würde ich die Aktoren mal sinnvoll umbenennen

rename FS20_19cba1 Tannenbaum
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

MisterEltako

Hallo!

Vielleicht in der Art:


define Weih notify *17:00:00 {\
if (($month == 12) || (($month == 1) && ( $wday < 3))) {\
fhem("define Weih_an at +01:00 set Lampe1 on;;;;set Lampe2 on;;;;set Lampe3 on");;\
fhem("define Weih_aus at +08:00 set Lampe1 off;;;;set Lampe2 off;;;;set Lampe3 off");;\
}


Die Namen der Lampenaktoren musst du noch anpassen.

MfG, MisterEltako
HMLAN-Konfigurations-Adapter, HM-Funkjalousieaktor/HM-Dimmaktor/HM-Schaltaktor f. Markenschalter, Jalousie-/Schaltaktor von Eltako, FT4 v. Eltako, TCM310

Fabiango

Danke für die ersten Antworten.
Die  einzelnen Geräte Habe ich ja bereits  unbenannt. Dafür steht ja das alias.

Mit der zweiten Antwort von MisterEltako kann man sicher was anfangen.
Nur muss ich das alles in die obere Zeile eingeben oder wie geht das.

Hier fehlt mir eben der Lösungsansatz.
Bitte um eine genaue  Beschreibung.

jhohn

Hast Du http://fhem.de/Heimautomatisierung-mit-fhem.pdf schon gelesen?
Wenn nicht, mach das doch mal und frage dann hier wieder nach Sachen die Du nicht verstanden hast.
FHEM auf Synology Diskstation DS413j (DSM4.3), HM LAN Adapter
Steuerung für Nachtspeicheröfen:
Ladung:   HM-WDS10-TH-O, HM-LC-Sw4-DR, Weather-Modul
Gebläse: HM-CC-TC, HM-LC-SW1-FM, HM-Sec-RHS
FHEM auf FritzBox 7390 für Telefon Funktionen

MisterEltako

Die oben geschriebenen Codezeilen müssten bei meinem Vorschlag in die Datei fhem.cfg geschrieben werden.
Diese erreichst du in der li. Menuleiste über "Edit Files". Meinst du dies?

ganz kurz:
Die Zeilen bewirken, dass um 17 Uhr geprüft wird, ob Weihnachtszeit ist. Wenn "ja", dann wird eine Anschaltzeit für 1 Stunde später(also 18 Uhr)und eine Ausschaltzeit in 8 Stunden später(also 1 Uhr) angelegt.

So verständlich?

PS: Man kann das Ergebnis auch über andere "Codewege" erzielen, dass ist ja das schöne an FHEM. Ich würde eben das o.g. vorschlagen.

MfG, MisterEltako
HMLAN-Konfigurations-Adapter, HM-Funkjalousieaktor/HM-Dimmaktor/HM-Schaltaktor f. Markenschalter, Jalousie-/Schaltaktor von Eltako, FT4 v. Eltako, TCM310

betateilchen

Zitat von: MisterEltako schrieb am Do, 10 Oktober 2013 09:25Man kann das Ergebnis auch über andere "Codewege" erzielen, dass ist ja das schöne an FHEM. Ich würde eben das o.g. vorschlagen.

Ich würde solche Saisongeschichten völlig simpel über die Anbindung an einen Google Kalender lösen, dann brauche ich im Coding keinerlei Prüfungen (ist grade Weihnachtszeit?) machen. Über diesen Weg steuere ich z.B. in der Heizperiode auch die Heizkörper und deren Heizzeiten vollautomatisch und flexibel.

Und ein Alias hat mit Umbenennen nicht viel zu tun.

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

MisterEltako

Jeder wie er es mag!  ;o))

PS: Hilfreicher als die Verweise auf Dokumente wäre sicher den Unterschied(rename / alias) kurz zu erläutern.

So in der Art:

alias - Pseudoname der in FhemWeb angezeigt wird (Aktorname z.B. FS20_19cba1 bleibt kryptisch)
rename - Aktor wird komplett umbenannt und erhält den neuen gewählten Namen und wird auch mit diesem angesprochen

MfG, MisterEltako
HMLAN-Konfigurations-Adapter, HM-Funkjalousieaktor/HM-Dimmaktor/HM-Schaltaktor f. Markenschalter, Jalousie-/Schaltaktor von Eltako, FT4 v. Eltako, TCM310

Fabiango

Hallo zusammen,

Mit der Anleitung von http://fhem.de/Heimautomatisierung-mit-fhem.pdf bin ich schon etwas weiter gekommen.
Die Grundlagen habe ich so weit verstanden und habe auch schon eine Notify erfolgreich anlegen können.

Nun stehen mir noch 2 Fragen offen im Raum.
1. Bei einer Notify für den TVAbend habe ich das Problem das ich die Lampe nicht dimmbar angeht.
   Funktioniert das dim50% bei einer Aufzählung?? Den mit dem Befehl on statt dim50% geht es.
   DEF    TVAbend:on set wzTVAnlage on;set wzStehlampe on;set flKugelLampe off  -   Funktioniert
   DEF    TVAbend:on set wzTVAnlage on;set wzStehlampe dim50%;set flKugelLampe off  -   Geht NICHT.

2. Google Kalender habe ich in FHEM eingefügt um damit die Zeitschaltuhr zu realisieren.
   Gibt es hierfür eine Anleitung??
   Muss ich den Kalender öffentlich freigeben bei Google?
   Wie aktiviere ich perl module IO::Socket::SSL. Bei Eingabe n -i IO::Socket::SSL passiert nichts
   Wie sehe ich das der Kalender richtig aktiv ist in FHEM?

Danke........

betateilchen

Zitat von: DJCrazy schrieb am Fr, 11 Oktober 2013 12:20Muss ich den Kalender öffentlich freigeben bei Google?

Nein, Du brauchst nur die private ICAL-Url, die in Deinem Kalender angezeigt wird.

Zitat von: DJCrazy schrieb am Fr, 11 Oktober 2013 12:20Wie aktiviere ich perl module IO::Socket::SSL. Bei Eingabe n -i IO::Socket::SSL passiert nichts

Auf welcher Fritzbox arbeitest Du?

Zitat von: DJCrazy schrieb am Fr, 11 Oktober 2013 12:20Wie sehe ich das der Kalender richtig aktiv ist in FHEM?

Wenn in fhem bei der Kalenderdefinition ein "Active" steht und die Readings gefüllt sind:


(siehe Anhang / see attachement)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Fabiango

Ich arbeite mit der FritzBox 7390.
Der Kalender ist bei FHEM auf Aktive.
Somit stimmt das ganze bis dahin schon einmal.

Wie kann ich jetzt über Google Kalender 5 Steckdosen von 01.12.13 bis 03.01.14 jeweils von 18 bis 01 Uhr steuern?

betateilchen

Schau mal bitte in die commandref zum Kalendermodul, dort ist beschrieben, wie man grundsätzlich Aktoren über den Kalender schalten kann.

Bei mir gibt es zwei notify, jeweils eines zum Ein- und eines zum Ausschalten.

Einschalten: Kalender_Schalter:modeStarted.* { calSchalterStart("$EVENT") };
Ausschalten: Kalender_Schalter:modeEnded.* { calSchalterEnde("$EVENT") };

Die beiden zugehörigen Funktionen liegen bei mir in der 99_myUtils.pm


sub
calSchalterStart ($)
{
my ($Ereignis) = @_;
        my @Ereignisarray = split(/.*:\s/,$Ereignis);
        my $Ereignisteil1 = $Ereignisarray[1];
my @uids=split(/;/,$Ereignisteil1);
        foreach my $uid (@uids) {
my $actor = fhem("get Kalender_Schalter summary $uid");
fhem("set $actor on");
};
}

sub
calSchalterEnde ($) {
    my ($Ereignis) = @_;
        my @Ereignisarray = split(/.*:\s/,$Ereignis);
        my $Ereignisteil1 = $Ereignisarray[1];
my @uids=split(/;/,$Ereignisteil1);
        foreach my $uid (@uids) {
my $actor = fhem("get Kalender_Schalter summary $uid");
fhem("set $actor off");
};
}



Diese beiden Funktionen stellen sicher, dass auch mehrere Kalendereinträge zur gleichen Zeit geschaltet werden können.

Im Google-Kalender legst Du dann einfach einen ganz normalen Kalendereintrag an. In den Betreff schreibst Du den fhem-Namen des Aktors, dann legst Du die Start- und die Endezeit fest und ggf. einen Wiederholungszyklus.

Beispieleintrag aus meinem Kalender:


(siehe Anhang / see attachement)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Fabiango

Ist meine 99_myUtils.pm richtig?

package main;
use strict;
use warnings;
use POSIX;
sub
myUtils_Initialize($$)
{
 my ($hash) = @_;
}
1;

sub
calSchalterStart ($)
{
my ($Ereignis) = @_;
        my @Ereignisarray = split(/.*:\s/,$Ereignis);
        my $Ereignisteil1 = $Ereignisarray[1];
my @uids=split(/;/,$Ereignisteil1);
        foreach my $uid (@uids) {
my $actor = fhem("get Kalender_Schalter summary $uid");
fhem("set $actor on");
};
}

sub
calSchalterEnde ($) {
    my ($Ereignis) = @_;
        my @Ereignisarray = split(/.*:\s/,$Ereignis);
        my $Ereignisteil1 = $Ereignisarray[1];
my @uids=split(/;/,$Ereignisteil1);
        foreach my $uid (@uids) {
my $actor = fhem("get Kalender_Schalter summary $uid");
fhem("set $actor off");
};
}



Das heisst mit den beiden Notify und der Funktion in 99_myUtils.pm werden automatisch alle Einträge geschalten?
Jedoch welche Aktoren??

Hier noch die beiden Notify. So auch richtig?



(siehe Anhang / see attachement)


(siehe Anhang / see attachement)


betateilchen

Zitat von: DJCrazy schrieb am Fr, 11 Oktober 2013 15:54Ist meine 99_myUtils.pm richtig?

Nein. 1; muss die letzte Zeile sein.

Zitat von: DJCrazy schrieb am Fr, 11 Oktober 2013 15:54Das heisst mit den beiden Notify und der Funktion in 99_myUtils.pm werden automatisch alle Einträge geschalten?
Jedoch welche Aktoren??

Du solltest die Antworten auch komplett lesen, die man Dir schreibt.

Zitat von: betateilchenIm Google-Kalender legst Du dann einfach einen ganz normalen Kalendereintrag an. In den Betreff schreibst Du den fhem-Namen des Aktors, dann legst Du die Start- und die Endezeit fest und ggf. einen Wiederholungszyklus.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Fabiango

Hallo Betalteilchen,

Die 99_myUtils.pm habe ich abgeändert und sollte stimmen. Refresh auch bereits erledigt.
In meinen Kalender habe einen Termin gesetzt mit dem Namen weihAllesAus

FHEM erkennt diesen Kalender Eintrag auch jedoch wird dieser Aktor mit dem Namen weihAllesAus nicht geschalten.
Im Logfile ist nichts zu sehen.

Warum das??
Sind meine Notify richtig?? Stimmen hier alle Namen?