Heizungsteuerung- Wochenprogramm per Schalter einstellen/wechseln

Begonnen von Daniel_D, 29 Januar 2015, 14:04:40

Vorheriges Thema - Nächstes Thema

Daniel_D

Hallo erstmal,
ich bin Neuling im im Bereich FHEM und Linux und habe mir schon so einige Sachen durchgelesen. Aber so richtig weiter komme ich mit meinem vorhaben nicht,

Würde gerne das Heizungs-Wochenprogram per Switch ändern.
Ich habe Frühschicht, Spätschicht, Urlaub anwesend und Urlaub abwesend.
Es soll auf allen Heizkörpern gleich angewendet werden, also nicht für einen das Wochenprogramm und für jenen ein anderes Wochenprogramm.

Hardware : HM-CC-RT-DN

Habe mir schon "Quickstart: Temperaturprofile in Homematic HM-CC-RT-DN Funk-Heizkörperthermostat" durchgelesen. Ist aber wohl nicht das richtige für mich mit dem was ich vorhabe.

Vielleich kann man mir  anhand von Beispielen weiterhelfen .

Gruß Daniel
FHEM auf Raspberry PI
5x HM-CC-RT-DN
1x HM-CFG-LAN
8x HM-Sec-SCo
1x myJeeLink

strauch

Das geht per Temperaturlisten ( http://www.fhemwiki.de/wiki/HomeMatic_Type_Thermostat#Temperaturlisten ), die du per notify auf die Heizkörper überträgst. Da geht auch eine Liste auf alle Heizkörper. Interessanter ist doch woher weiß FHEM wann du was für einen Schicht hast. Das ginge z.B. über einen Kalender.

FHEM 5.6 VMware mit Debian. 1 CUL für FS20 und HMLAN für Homematic, HM-CC-RT-DN, HM-LC_Sw1PBU-FM, HM-LC-Bl1PBU-FM,  HM-SEC-SC, HM-SEC-SC-2, HM-LC-Sw1-Pl2, HM-Sec-RHS, ASH2200, FHT80B, S20KSE, Sonos, XBMC, FB_Callmonitor, SMLUSB, Arduino Firmata, uvm.

Daniel_D

Hi,
Danke für deine Antwort.

Das hab ich mir auch schon durch gelesen, aber so ganz schlau werde ich daraus nicht.

Ich wollte in FHEM auf Spätschicht/Urlaub usw. Manuel umschalten, aber weiß auch nicht wie ich das umsetzen kann.
FHEM auf Raspberry PI
5x HM-CC-RT-DN
1x HM-CFG-LAN
8x HM-Sec-SCo
1x myJeeLink

strauch

#3
Hast du ein HMinfo Device? Wenn nein erstmal anlegen:
define HM HMinfo

Dort dann als config dir FHEM anlegen
attr HM configDir ./FHEM

Dann die vorhanden Temperaturen auslesen und speichern, damit wird auch die Temperaturlisten Datei erstellt:
set HM tempList save tempList.cfg

Wenn alle deine Thermostate das gleiche Programm bekommen, dann brauchst du in der Datei 4 Listen z.B:


entities:Frühschicht
tempListSat>08:00 14.0 15:00 18.0 21:30 19.0 24:00 14.0
tempListSun>08:00 14.0 15:00 18.0 21:30 19.0 24:00 17.0
tempListMon>07:00 14.0 16:00 18.0 21:00 19.0 24:00 14.0
tempListTue>07:00 14.0 13:00 16.0 16:00 18.0 21:00 19.0 24:00 15.0
tempListWed>07:00 14.0 16:00 18.0 21:00 19.0 24:00 14.0
tempListThu>07:00 14.0 16:00 18.0 21:00 19.0 24:00 14.0
tempListFri>07:00 14.0 13:00 16.0 16:00 18.0 21:00 19.0 24:00 14.0
entities:Spätschicht
tempListSat>08:00 14.0 15:00 18.0 21:30 19.0 24:00 17.0
tempListSun>08:00 14.0 15:00 18.0 21:30 19.0 24:00 14.0
tempListMon>07:00 14.0 16:00 18.0 21:00 19.0 24:00 14.0
tempListTue>07:00 14.0 13:00 16.0 16:00 18.0 21:00 19.0 24:00 15.0
tempListWed>07:00 14.0 16:00 18.0 21:00 19.0 24:00 14.0
tempListThu>07:00 14.0 16:00 18.0 21:00 19.0 24:00 14.0
tempListFri>07:00 14.0 13:00 16.0 16:00 18.0 21:00 19.0 24:00 14.0
entities:UrlaubUnterwegs
tempListSat>08:00 14.0 15:00 18.0 21:30 19.0 24:00 14.0
tempListSun>08:00 14.0 15:00 18.0 21:30 19.0 24:00 17.0
tempListMon>07:00 14.0 16:00 18.0 21:00 19.0 24:00 14.0
tempListTue>07:00 14.0 13:00 16.0 16:00 18.0 21:00 19.0 24:00 15.0
tempListWed>07:00 14.0 16:00 18.0 21:00 19.0 24:00 14.0
tempListThu>07:00 14.0 16:00 18.0 21:00 19.0 24:00 14.0
tempListFri>07:00 14.0 13:00 16.0 16:00 18.0 21:00 19.0 24:00 14.0
entities:UrlaubZuhause
tempListSat>08:00 14.0 15:00 18.0 21:30 19.0 24:00 17.0
tempListSun>08:00 14.0 15:00 18.0 21:30 19.0 24:00 14.0
tempListMon>07:00 14.0 16:00 18.0 21:00 19.0 24:00 14.0
tempListTue>07:00 14.0 13:00 16.0 16:00 18.0 21:00 19.0 24:00 15.0
tempListWed>07:00 14.0 16:00 18.0 21:00 19.0 24:00 14.0
tempListThu>07:00 14.0 16:00 18.0 21:00 19.0 24:00 14.0
tempListFri>07:00 14.0 13:00 16.0 16:00 18.0 21:00 19.0 24:00 14.0


Anschließend kannst du die einfach per notify zu deinenThermostate zuweisen, wenn die alle gleich aufgebaut sind z.B. mit:
set ..Heizung_Clima tempListTmpl restore FHEM/tempList.cfg:Frühschicht

.._Heizung_Clima wählt dann alle Thermostate aus die nach dem Schema (. ist ein Platzhalter für ein Zeichen)
wz_Heizung
bz_Heizung
sz_Heizung
etc. geschrieben sind. Es ginge auch .*_Clima dann gehts an alle Kanäle/Devices die auf _Clima enden.

Die Notifys könnten auf eine Fernbedienung reagieren oder auf einen Kalendereintrag oder was auch immer.
FHEM 5.6 VMware mit Debian. 1 CUL für FS20 und HMLAN für Homematic, HM-CC-RT-DN, HM-LC_Sw1PBU-FM, HM-LC-Bl1PBU-FM,  HM-SEC-SC, HM-SEC-SC-2, HM-LC-Sw1-Pl2, HM-Sec-RHS, ASH2200, FHT80B, S20KSE, Sonos, XBMC, FB_Callmonitor, SMLUSB, Arduino Firmata, uvm.

Daniel_D

Danke das hilft mir schon weiter :)

HMInfo hatte ich schon angelegt

Das hab ich mir mal überlegt:
define Spaetschicht dummy
attr Spaetschicht group Schalter Heizung
attr Spaetschicht room Heizung
attr Spaetschicht setList on off
define on_Spaetschicht notify Spaetschicht:on set .*_Clima tempListTmpl restore FHEM/tempList.cfg:Spätschicht
define off_Spaetschicht notify Spaetschicht:off set .*_Clima tempListTmpl restore FHEM/tempList.cfg:Frühschicht

scheint zu funktionieren.
Wie kann man denn die Schalter so machen das immer nur ein On vorhanden ist. Z.B wenn Frühschicht aktiviert ist und ich auf Spätschicht drücke automatisch Frühschicht off geht usw.


Gruß
Daniel

FHEM auf Raspberry PI
5x HM-CC-RT-DN
1x HM-CFG-LAN
8x HM-Sec-SCo
1x myJeeLink

suppenesser

Da du dann ja spatschicht on hast kannst du dies doch mittels notify für Frühschicht off nutzen
Raspberry PI B+ | HM-LAN-CFG | HM-LC-Sw1PBU-FM | HM-TC-WM-W-EU | DECT 200 | DHT22 | 1 Wire Temp.Sensoren

Daniel_D

FHEM auf Raspberry PI
5x HM-CC-RT-DN
1x HM-CFG-LAN
8x HM-Sec-SCo
1x myJeeLink

ridestar

Hey,

ich bin noch neu hier. Bisher bin ich immer mit dem Wiki und der Suche im Forum gut zurecht gekommen.
Diesen Thread hole ich nochmal hoch, da er genau das widerspiegelt was ich gerne erreichen würde, aber leider klappt es nicht wie gedacht.

Insgesamt habe ich 5 Heizungsthermostate und möchte diese entsprechend mit Temperaturprofilen versehen in Abhängigkeit von "Arbeit" bzw. "Frei".
Die Änderung zu diesem Thread soll sein, dass ich jeden einzelnen Wochentag mit einem Button versehen möchte -> On soll "Arbeit" bzw. off für "Frei" stehen.

Ich scheitere im Moment dadran, dass ich anscheinend an die Thermostate nicht nur für einen Wochentag ein Temperaturprofil übergeben kann.

Meine Idee war es in der tempList.cfg für jeden Wochentag zwei Entilties zu programmieren nach der Art:

entities:Montag_Frei
set AZ.Heizung_Clima R_2_tempListMon>09:00 18.0 19:30 19.5 24:00 18.0
set WZ.Heizung_Clima R_2_tempListMon>08:00 18.0 15:00 21.5 24:00 19.0
set SZ.Heizung_Clima R_2_tempListMon>10:00 21.0 20:00 19.0 24:00 21.
set BAD.Heizung_Clima R_2_tempListMon>08:00 18.0 10:00 20.0 23:00 19.5 24:00 19.0
set K.Heizung_Clima R_2_tempListMon>08:00 18.0 20:00 20.0 24:00 19.0


Dies funktioniert nicht, weil die Thermostate für jeden Wochentag eine Eintrag bekommen müssen.
Hat jemand eine Idee, wie ich dies umgehen kann? Oder ist mein Vorhaben überhaupt nicht umsetzbar?

MaverickVG

Hi!

also das geht! Habe auch 5 Heizkörper und jeden Tag andere Schichten (meine Partnerin arbeitet im Krankenhaus) und daraus resultierende Zeiten für jeden Heizkörper (im Bad soll die Temperatur anders sein als im Wohnzimmer etc).

Habe mir 7 Dummy's angelegt für die Wohentage, z.B.
define HeizungsProfil_Dienstag dummy
attr HeizungsProfil_Dienstag webCmd Früh:Tag:Spät:Nacht:Frei

Dann entsprechende Notify's erzeugt:
define HeizungsProfil_Dienstag_Frueh notify HeizungsProfil_Dienstag:Früh { setTemp("Dienstag","Früh") }
Die Funktion "setTemp("Tag","Schicht") habe ich selbst in die Datei 99_myUtils.pm geschrieben (zur not aus dem Template neu erzeugen), hier mal ein kleiner Auszug:

sub setTemp($$) {
  my ($tag, $schicht) = @_;
  my $bad = "";
  my $kueche = "";
  my $tempList = "";
 
  if($schicht eq "Früh"){
$bad = "04:30 17.0 05:30 20.0 06:45 17.0 07:45 20.0 14:00 17.0 22:00 20.0 24:00 17.0";
$kueche = "14:00 16.0 20:00 20.0 24:00 16.0";
}
  if($schicht eq "Spät"){
$bad = "06:45 17.0 11:30 20.0 16:30 17.0 22:00 20.0 24:00 17.0";
$kueche = "08:00 16.0 11:30 20.0 17:30 16.0 21:00 20.0 24:00 16.0";
  }
 
  if($tag eq "Montag"){
  $tempList = "tempListMon";
  }
  if($tag eq "Dienstag"){
  $tempList = "tempListTue";
  }
    fhem( "set Heizung_Bad_Clima $tempList $bad" );
  fhem( "set Heizung_Kueche_Clima $tempList $kueche" );
}


Ist sicherlich noch viel optimierungsbedarf (habe mit FHEM erst vor ein paar Tagen angefangen aber bin ganz happy), aber vielleicht hilft es dir ja!

Über Verbesserungsvorschläge würde ich mich sehr freuen - auch wenn ich gerade stolz bin wie ein Schnitzel dass es klappt :)

Viele Grüße

ridestar


Comarrid

Zitat von: Daniel_D am 29 Januar 2015, 17:43:05Danke das hilft mir schon weiter :)

HMInfo hatte ich schon angelegt

Das hab ich mir mal überlegt:
define Spaetschicht dummy
attr Spaetschicht group Schalter Heizung
attr Spaetschicht room Heizung
attr Spaetschicht setList on off
define on_Spaetschicht notify Spaetschicht:on set .*_Clima tempListTmpl restore FHEM/tempList.cfg:Spätschicht
define off_Spaetschicht notify Spaetschicht:off set .*_Clima tempListTmpl restore FHEM/tempList.cfg:Frühschicht

scheint zu funktionieren.
Wie kann man denn die Schalter so machen das immer nur ein On vorhanden ist. Z.B wenn Frühschicht aktiviert ist und ich auf Spätschicht drücke automatisch Frühschicht off geht usw. Wenn es nicht klappt, habe ich vor, die Meister von wasserhahn tropft zu kontaktieren, sie sollen helfen.


Gruß
Daniel


Hallo Daniel!

Ja, ich kann Ihnen dabei helfen. Hier einige Beispiele, wie Sie das wöchentliche Heizprogramm per Schalter ändern können:

Beispiel 1: Mit einem Schalter zwischen zwei Programmen wechseln

In diesem Beispiel können Sie mit einem Schalter zwischen zwei Heizprogrammen wechseln: Frühschicht und Spätschicht. Dazu müssen Sie in FHEM zwei Heizprogramme erstellen und diesen eindeutige Namen geben. Anschließend können Sie eine Regel erstellen, die das aktuelle Heizprogramm abhängig vom Zustand des Schalters ändert.

Hier ist eine Beispielregel dafür:

Regel ,,Wechsel zwischen Heizprogrammen"
Wann
    Punkt ,,Heizprogramm" geändert
Dann
    if (state("Wechsler") == "0") {
        set("Heizprogramm", "Frühschicht")
    } anders {
        set("Heizprogramm", "Spätschicht")
    }
Ende
Diese Regel überprüft den Status des Optionsfelds bei jeder Änderung. Befindet sich der Schalter in der Stellung ,,0", wird das aktuelle Heizprogramm auf ,,Frühschicht" umgestellt. Befindet sich der Schalter in der Stellung ,,1", wird das aktuelle Heizprogramm auf ,,Spätschicht" umgestellt.
Ein Fan erneuerbarer Energien. Erst kürzlich habe ich mich an die Profis von biber-pv.de gewandt, um in meinem Haus Solarmodule zu installieren. Das war die beste Entscheidung, die ich im letzten Jahr rund ums Haus getroffen habe.