Datum für Urlaub eingeben (ERLEDIGT)

Begonnen von stefanm, 04 April 2014, 21:20:46

Vorheriges Thema - Nächstes Thema

stefanm

Hallo Forum,

ich hab diverse FS20 Schalter/ Funksteckdosen usw. seit längere Zeit im Einsatz mit fhem und Fritzbox. Updates sind nstalliet.

Jetzt bin ich bei auf Homematic umzusteigen und will in einem Raum die Heizung stuern. Die Geräte sind auch schon gepairt
Ich kann die Temperatur setzen.
Ich hab nur noch ein Problem mit dem Plot der temp, was aber nicht so wichtig ist.

Was ich versuche ist die Heizung  per Time und  Date zu Steuern. Google Calender möchte ich dazu aber nicht nutzen.

Also z.B wenn ich den Urlaubsmodus wähle möchte Datum und Zeit eingeben, wann dieser beendet wird.

Ich muss das wohl über einen dummy und setList machen aber bei Datum:textField bekomme ich immer nur "Datum:textField" im Frontend Angezeigt. in den Device Settings bekomme ich ein DropDown Menü mit den Inhal "textField" was auch nicht überschrieben werden kann.

Ich hab mir auch schon den Wolf gesucht aber dabei wohl nach den Falschen Begriffen gesucht.

Kann mir bitte jemand einen Tip geben woh ich ansetzen kann ?


define Urlaub dummy
attr Urlaub room Praxis
attr Urlaub setList state:time
attr Urlaub webCmd state


Funtioniert. Ich bekomme einen Slider für die Zeit aber


define Urlaub dummy
attr Urlaub room Praxis
attr Urlaub setList state:date
attr Urlaub webCmd state


Zeigt mir nur :
Urlaub   state state

Habt Ihr einen Tip ?

Gruss Stefan
HM-Lan       HM-CC-TC Raumthermostat HM-CC-RT-DN & HM-CC-VD Heizkörperventil Dimmer HM-LC-DIM1T-FM 3 Stück
und divrse FS20 Komponenten  FHZ1000  mit div Schalter und Wandtaster  Max Heizung, Fenster Alarmanlage

bergadler

#1
Hallo,

kennst Du schon die Holiday-Datei?

Wenn's da eingetragen ist, geht der Rest der Steuerung mit einer einfachen "if ($we)" Abfrage.

Und bevor noch weitere Wölfe dazu kommen -> z.B. Einsteigerhandbuch Seite 41.

Gruß
aktuelles FHEM auf Raspberry B+, FHEM von fhem.de V.5.7, CUL868 V1.57, (6x FHT80B+ FHTTK, div. IT,div. FS20,Harmony Hub)

stefanm

#2
Danke für den Hinweis

aber ich hab schon im Handbuch, Wiki, Commandref, Forum und Google bemüht und finde leider nichts, was mir weiterhilft. ich stehe echt auf der Leitung.[i


Ich möchte auch keine Vordefinierten Werte verenden, da ich das sehr unflexibel finde. Ich möchte das Datum, entweder als Text, noch lieber aber aus einem Kalender auswählen können.
Wie z.B. http://www.perltk.de/tk_widgets/wtk_minicalendar.html kann ich so einen Perl Code üder userreading aufrufen ? Auf einer fritzbox?

Wie machen die anderen das mit dem Urlaubsmode ? geht das nur über Google Calender ?

Ich häng mal noch meine fhem.cfg an

hatte ich vergessen.

Stefan
HM-Lan       HM-CC-TC Raumthermostat HM-CC-RT-DN & HM-CC-VD Heizkörperventil Dimmer HM-LC-DIM1T-FM 3 Stück
und divrse FS20 Komponenten  FHZ1000  mit div Schalter und Wandtaster  Max Heizung, Fenster Alarmanlage

det.

Hallo Stefan,
Schau doch mal was für unendliche Möglichkeiten FHEM noch so bietet. Ich steuere meine Heizungsventile z.b. über geofency. Das bedeutet automatisch, wenn ich in Urlaub bin, bin ich nicht anwesend - und auch nicht auf dem Weg von Arbeit nach daheim. Die Heizung steht auf manuell 16 grad .... Sonst würde vorausschauend schon mal schön eingeheizt - immer wenn ich Nachmittags meine Arbeitsstelle verlasse oder z.b. am Wochenende daheim bin.
LG
det.

stefanm

#4
Noch ein sehr schöner Tip, für andere Anwednungen.

Der Punkt ist meine Frau (WAF) nutzt den Raum nicht regelmäßig. Sie will über die Web Oberfläche eingeben ab wann Sie den Raum Nutzt bzw ab wann wieder Geheizt werden soll. Zum Glück sind im Augenblick die Temperaturen so, das es noch nicht so Wichtig ist.

Und die Urlaubssteuerung kann ich auch nicht über geofency machen. Dann Friert der Rest der Familie wenn ich alleine weg bin.

Bis lang haben wir im Haus noch eine alte Honnywell Steuerung, echt klasse da kann ich eingeben Urlaub bis und gut ist. Jemand Krank, auf Anwesend gestellt. Leider über ein KNX Funkprotokoll und ohne Rückkanal.

Ich hab das jetzt doch über das Calender Modul gelöst, Ich hatte nicht gesehen das das auch mit dem Iphone geht. Hat dann sogar den Vorteil, das dort Ihre Termine Einträgt und die Heizung sich danach steuert.


define Kalender Calendar ical url http://LinkzuMeinemKalender

get Kalender full modeAlarm

define Heizung_Kalender notify MyCalendar:modeStarted.* set Praxis_Thermostat_Climate desired-temp 22



jeztzt muss ich nur noch die Termine im Vorraus auswerten, damit die Heizung rechzeitig hoch gestellt wird.

Aber die Kalender auswahl währe für Urlaub schon klasse



Gruss Stefan
HM-Lan       HM-CC-TC Raumthermostat HM-CC-RT-DN & HM-CC-VD Heizkörperventil Dimmer HM-LC-DIM1T-FM 3 Stück
und divrse FS20 Komponenten  FHZ1000  mit div Schalter und Wandtaster  Max Heizung, Fenster Alarmanlage

stefanm

So,
das mit iCal Funktioniert, soweit auch sehr gut. Ich wöchte jetzt aber anhand der übermittelten Daten "modeUpcoming" eine Anfangszeit berechnen.
Dazu habe ich ein Beispiel von Nico hier aus dem Forum genommen und als Perl Dummy bekomme ich die syntax nicht hin und finde wieder mal den Fehler nicht. Hier mein Code:



define Heizung_Praxis_Notify notify Heizung_Praxis_Notify {\
my $Alles = fhem("get Kalender full modeUpcoming");;\
my @@Woerter = split(/ /,$Alles);;\
my $uid= $Woerter[0];;\
my $Termin= fhem("get MyCalendar text $uid");;\
my @@Daten = split(/ /,$Termin);;\
my $Datum = $Daten[0];;\
my $Tag = substr($Datum,0,2);;\
my $Monat = substr($Datum,3,2);;\
my $Zeit = $Daten[1];;\
my $Stunde = substr($Zeit,0,2);;\
my $Minute = substr($Zeit,3,2);;\
my $AlarmStunde;;\
my $AlarmMinute;;\
my $EndStunde;;\
my $EndMinute;;\
my $AlarmStunde=$Stunde-1;;\
my $AlarmMinute=$Minute-30;;\

if ($Minute<30){\
      $AlarmStunde=$Stunde-2;;\
      $AlarmMinute=$Minute+30;;}\

my $EndStunde=$Stunde+4;;\
my $EndMinute=$Minute;;\

#wenn die Endzeit nach Mitternacht liegt Tag +1
if ($EndStunde > 4 ){\
      $aufstehtag = $mday};;\

if ($EndStunde < 4 ){\
      $aufstehtag = $mday+1};;\

my $s=0;;\
my $timestring = sprintf("%%02d:%%02d:%%02d",$AlarmStunde,$AlarmMinute,$s);;\
my $endstring = sprintf("%%02d:%%02d:%%02d",$EndStunde,$EndMinute,$s);;\


define Heizung_Kalender notify MyCalendar:modeStarted.* fhem("define  Zeit_Heizung_Praxis at nextCal set $endstring partyMode $endstring $myday");



Bei den Zeile :


if ($EndStunde > 4 ){\
      $aufstehtag = $mday};;\

if ($EndStunde < 4 ){\
      $aufstehtag = $mday+1};;\


Bekomme ich folgende Fehlermeldung:
Unknown command my, try help. IF: no left bracket: { $AlarmStunde=$Stunde-2; $AlarmMinute=$Minute+30;} Unknown command my, try help. IF: no left bracket: { $aufstehtag = $mday}; IF: no left bracket: { $aufstehtag = $mday+1}; Unknown command my, try help

Wis
HM-Lan       HM-CC-TC Raumthermostat HM-CC-RT-DN & HM-CC-VD Heizkörperventil Dimmer HM-LC-DIM1T-FM 3 Stück
und divrse FS20 Komponenten  FHZ1000  mit div Schalter und Wandtaster  Max Heizung, Fenster Alarmanlage

der-Lolo

wenn du IF gross schreibst wird das IF modul angesprochen - das ergibt fehlermeldungen wenn die klemmern nicht stimmen... siehe automatiesierung IF modul! Oder comandref.
IF ([device:reading] eq "bedingung") (befehl)

stefanm

Hallo,

das mit IF wusste ich auch noch nicht. meine Fehler waren Leerzeilen und Kommentare die nicht mit ;;\ abgeschlossen waren.

Sind halt Eigenheiten von Perl/fhem die man erstmal lernen muss :)

Danke für die Hilfe

Stefan
HM-Lan       HM-CC-TC Raumthermostat HM-CC-RT-DN & HM-CC-VD Heizkörperventil Dimmer HM-LC-DIM1T-FM 3 Stück
und divrse FS20 Komponenten  FHZ1000  mit div Schalter und Wandtaster  Max Heizung, Fenster Alarmanlage