Autor Thema: Neues Modul - Heating_Control, WeekdayTimer  (Gelesen 206394 mal)

Offline Dietmar63

  • Hero Member
  • *****
  • Beiträge: 2329
Aw: Neues Modul - Heating_Control
« Antwort #30 am: 15 Januar 2013, 19:13:38 »
 Ich habe mir mal erlaubt das Modul zu verändern.
 Folgende Änderungen:

 Liste der Schaltzeiten mit Leerzeichen getrennt
 Die Temperatur ist von der Uhrzeit mit Pipe (|) getrennt. Dieses erhöht IMHO mit dem vorherigen Punkt die Lesbarkeit immens

So ähnich hatte ich es auch vor - es funktionierte nur nicht. Die Ursache habe ich zunächst nicht gesucht. Es war mir wichtig das Modul zu Laufen zu bringen. Ich meine mich erinnern zu können, dass das Problem darin bestand, dass ich in der Funktion Heating_Control_Define in der Variablen $def immer nur die erste Schlatzeit bekommen habe. Somit war ich zunächst gezwungen dafür zu sorgen, dass der Parameter switchingtimes als ein Parameter erkannt wurde. Wie Du es gemacht hast, habe ich nicht herausgefunden. Ich hoffe es funktioniert.


 Als STATE Initialzustand wird die aktuelle Temperatur des Thermostates ausgelesen
 Es werden nun auch MAX Thermostate unterstützt
 neues Reading: nextValue, zeigt die nächste zu wechselnde Temperatur an
 an den aktuellen Entwicklungsstand von fhem.pl angepasst, insbesondere ReadingsBulkUpdate
 Codeoptimierung: einige interne Variablen in den {helper} Bereich verlagert
 kleinere Codeoptimierungen

Ich bin mit den Änderungen natürlich einverstanden, kann sie aber im Moment nicht testen. Ich werde das vermutlich morgen machen. Wie oben schon beschrieben, es ist mein erstes Modul, somit kenne ich nocht nicht alle Feinheiten, um korrekte Module zu schreiben.

 Bitte um Tests und Rückmeldungen

 Wenn der Author nicht dagegen hat würde ich auch die Doku schreiben (gibt es da ggf schon etwas??) und nach ausführlichen Tests und Rückmeldungen bei Buggy-free ins FHEM-svn schieben. ggf kann ich auch dem author anbieten ihm bei support unter die arme zu greifen

Wenn Du willst kannst du gern eine Doku schreiben. Es gibt nichts als das Modul und diesen Thread. Ich habe noch keine Sourceforge-id, somit kann ich eh noch nicht einchecken. Im Übrigen: Du warst ja richtig fleißig!
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Offline Damian

  • Developer
  • Hero Member
  • ****
  • Beiträge: 5591
Aw: Neues Modul - Heating_Control
« Antwort #31 am: 15 Januar 2013, 19:25:18 »
Wenn wir schon bei Änderungen sind:

Wie wäre es mit einem Wochenprogramm, also Schaltzeiten abhängig von den Wochentagen, wie es jedes Wandthermostat unterstützt.

Ich denke, dass es ein sehr wichtiges Feature ist, um die Sache praxistauglich zu sein.

Gruß

Damian
Programmierte FHEM-Module: DOIF mit uiTable, DOIF-Perl, THRESHOLD, FHEM-Befehl: IF

Offline Dietmar63

  • Hero Member
  • *****
  • Beiträge: 2329
Aw: Neues Modul - Heating_Control
« Antwort #32 am: 15 Januar 2013, 19:39:17 »
kann man mit dem vorhandenem Modul ja machen:

Einträge in fhem.cfg:


define HC-So  Heating_Control heizung.01     15:00:25_15:30:21_17:30:22.5       { fhem ("set @ desired %")  if($wday == 0) }
define HC-Mo  Heating_Control heizung.01     15:00:25_15:30:21_17:30:22.5       { fhem ("set @ desired %")  if($wday == 1) }
define HC-Di  Heating_Control heizung.01     15:00:25_15:30:21_17:30:22.5       { fhem ("set @ desired %")  if($wday == 2) }
define HC-Mi  Heating_Control heizung.01     15:00:25_15:30:21_17:30:22.5       { fhem ("set @ desired %")  if($wday == 4) }
...


wobei ich nicht glaube, dass man jeden Tag andere Zeiten schalten möchte. Aber wer will kann, und es ist trotzdem übersichtlich!

wer es nicht so detailiert möchte macht es so:


define HC-Sa-So  Heating_Control heizung.01     15:00:25_15:30:21_17:30:22.5       { fhem ("set @ desired %")  if($we) }
define HC-Mo-Sa  Heating_Control heizung.01     15:00:25_15:30:21_17:30:22.5       { fhem ("set @ desired %")  if(!we) }
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Offline Damian

  • Developer
  • Hero Member
  • ****
  • Beiträge: 5591
Aw: Neues Modul - Heating_Control
« Antwort #33 am: 15 Januar 2013, 19:58:40 »
Zitat von: orti-otto schrieb am Di, 15 Januar 2013 19:39
kann man mit dem vorhandenem Modul ja machen:


In der Tat:)

Gruß

Damian
Programmierte FHEM-Module: DOIF mit uiTable, DOIF-Perl, THRESHOLD, FHEM-Befehl: IF

Offline Tobias

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3564
Aw: Neues Modul - Heating_Control
« Antwort #34 am: 16 Januar 2013, 08:15:24 »
Ich bin ab prüfen, ggf umsetzen, wie man das machen kann. Ich finde es schon userFriendly wenn man pro Thermostat nur eine(!) Definition angeben kann.
define HCW1  Heating_Control heizung.01     15:00|25 12345|15:30|21 24|17:30|22.5
Bedeutung der Schaltzeiten: <Nr der Tage>|<Uhrzeit>|<Temperatur>

Die Schaltzeit 15Uhr gilt jeden Tag da keine Tage angegeben wurden.
Die Schaltzeit 15:30 gilt nur werktags, Mo-Fr
Die Schaltzeit 17:30 gilt nur Die und Do

Mo = 1, ..... So = 7

Die Angabe Condition|Command bleibt wie gehabt
FHEM auf ASRock J3455-ITX im 19" Rack mit Homematic, MAX, PCA301, Panstamp-Sensoren, RPi mit 2x 1wire, RPi mit Text2Speech.
Maintainer der Module: DbLog, Text2Speech, TrashCal, MediaList
Meine Projekte auf https://github.com/tobiasfaust

Offline Damian

  • Developer
  • Hero Member
  • ****
  • Beiträge: 5591
Aw: Neues Modul - Heating_Control
« Antwort #35 am: 16 Januar 2013, 12:36:37 »
Zitat von: Tobias schrieb am Mi, 16 Januar 2013 08:15
Ich bin ab prüfen, ggf umsetzen, wie man das machen kann. Ich finde es schon userFriendly wenn man pro Thermostat nur eine(!) Definition angeben kann.
define HCW1  Heating_Control heizung.01     15:00|25 12345|15:30|21 24|17:30|22.5
Bedeutung der Schaltzeiten: <Nr der Tage>|<Uhrzeit>|<Temperatur>

Die Schaltzeit 15Uhr gilt jeden Tag da keine Tage angegeben wurden.
Die Schaltzeit 15:30 gilt nur werktags, Mo-Fr
Die Schaltzeit 17:30 gilt nur Die und Do

Mo = 1, ..... So = 7

Die Angabe Condition|Command bleibt wie gehabt


Könntest du bitte diese Version zum Testen bereitstellen.

Gruß

Damian


Programmierte FHEM-Module: DOIF mit uiTable, DOIF-Perl, THRESHOLD, FHEM-Befehl: IF

Offline Damian

  • Developer
  • Hero Member
  • ****
  • Beiträge: 5591
Aw: Neues Modul - Heating_Control
« Antwort #36 am: 16 Januar 2013, 12:44:58 »
Hallo miteinander,

falls es jemanden interessiert, ich habe das PID-Modul für Fußbodenheizung modifiziert.

Ich kann jetzt mit dem Modul 1-Wire Temperatursensoren auslesen und beliebige ON/OFF-Aktoren schalten, die dann wiederum konventionelle 230V Stellantriebe schalten. Lässt sich nun wunderbar mit dem Heating_Control-Modul kombinieren.

Gruß

Damian
Programmierte FHEM-Module: DOIF mit uiTable, DOIF-Perl, THRESHOLD, FHEM-Befehl: IF

Offline Dietmar63

  • Hero Member
  • *****
  • Beiträge: 2329
Aw: Neues Modul - Heating_Control
« Antwort #37 am: 16 Januar 2013, 20:20:48 »

define HCW1  Heating_Control heizung.01     15:00|25 12345|15:30|21 24|17:30|22.5


ich finde nicht dass die Erweiterungen mit den Wochentagen wirklich übersichtlicher ist.

besser wäre:

define HCW1  Heating_Control heizung.01     15:00|25 Mo-Fr|15:30|21 Mo,Di,Sa|24|17:30|22.5


Bei komplizierten Verteilungen der Heizzeiten, ist das aus meiner Sicht nicht gut zu pflegen .
die gesamten Heizzeiten in einer Zeile unterzubringen halte ich für nicht möglich.

ich müßte folgende Zeilen zusammen erfassen.


define HeizungKueche_wt       Heating_Control HeizungKueche 05:35:25_06:30:22_07:00:18___12:00:25_12:30:22_14:00:19_15:30:20_17:45:22_18:30:18  (!$we &&      !isVerreist())
define HeizungKueche_we       Heating_Control HeizungKueche 06:45:25_07:30:22_09:00:19___12:00:22__________14:00:20___________________18:30:20  ( $we &&      !isVerreist())
#
define HeizungWohnen_wt       Heating_Control HeizungWohnen 15:00:25_15:30:21_17:30:22.5_20:00:22_22:00:18                                      (!$we &&      !isVerreist())
define HeizungWohnen_we       Heating_Control HeizungWohnen 12:00:25_12:30:22_14:00:21____________22:00:18                                      ( $we &&      !isVerreist())
 


Bei mir gibt es zurZeit nur die Unterscheidung zwischen Werktags und Wochenende.
ich habe mal Percode gesucht wie man mehre Tage in Perl abfragen kann:


if( $wday ~~ [ 1, 2, 3 ] )   ; Mo, Di, Mi


Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Offline Dietmar63

  • Hero Member
  • *****
  • Beiträge: 2329
Aw: Neues Modul - Heating_Control
« Antwort #38 am: 16 Januar 2013, 20:47:22 »
wenn ich deine Version des Moduls lade bekomme ich einen Fehler:


2013.01.16 20:43:59 3: BefehlHC return value: Global symbol "$readingFnAttributes" requires explicit package name at ./FHEM/98_Heating_Control.pm line 42.

2013.01.16 20:43:59 3: reload 98_Heating_Control : Global symbol "$readingFnAttributes" requires explicit package name at ./FHEM/98_Heating_Control.pm line 42.

 Global symbol "$readingFnAttributes" requires explicit package name at ./FHEM/98_Heating_Control.pm line 42.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Offline Dietmar63

  • Hero Member
  • *****
  • Beiträge: 2329
Aw: Neues Modul - Heating_Control
« Antwort #39 am: 16 Januar 2013, 22:21:03 »
jetzt funzt es auch bei mir - ich habe nicht die neueste Version von fhem ...
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Offline Stefan 69

  • Full Member
  • ***
  • Beiträge: 195
Aw: Neues Modul - Heating_Control
« Antwort #40 am: 17 Januar 2013, 16:17:32 »
Hallo,

ist sicher ne blöde Frage, aber wie komme ich an das modifizierte PID-Modul von Damian?

Danke, Gruß Stefan
Fhem auf RPi 2, FB7390 FRITZ!OS06.23, CUL , HMLAN, FlyPad6 für Floorplan, Heizung HM-TC-IT-WM-W-EU, HM-CC-RT-DN, Eingriff BuderusRegel. HM-LC-SW4-PCB, Rollläden HM-LC-Bl1PBU-FM, Fenster/Tür HM-SEC-SC/HM-SEC-RHS, DS212j FS20-UE1, HM-Sec-SD

Offline Damian

  • Developer
  • Hero Member
  • ****
  • Beiträge: 5591
Aw: Neues Modul - Heating_Control
« Antwort #41 am: 17 Januar 2013, 17:26:03 »
Zitat von: Stefan 69 schrieb am Do, 17 Januar 2013 16:17
Hallo,

ist sicher ne blöde Frage, aber wie komme ich an das modifizierte PID-Modul von Damian?

Danke, Gruß Stefan


Es ist keine blöde Frage, denn die Anpassungen habe ich bisher nur auf meinem Rechner gemacht und nicht veröffentlicht. Die Lösung ist nicht allgemein gültig, da ich das PID-Modul für mich so umgebaut habe, dass es nicht mehr zum alten PID kompatibel ist.

Da es nur ein einfaches Thermostat nachbildet ohne PID-Regelung, hat es mit dem ursprünglichen PID-Modul nicht mehr viel zu tun.

Wenn natürlich Interesse besteht würde ich mein Modul entsprechend anders benennen und hier zum Download bereitstellen, da ich bisher, wie die anderen Autoren hier, kein offizieller Entwickler von FHEM-Modulen bin.

Gruß

Damian

Programmierte FHEM-Module: DOIF mit uiTable, DOIF-Perl, THRESHOLD, FHEM-Befehl: IF

Offline Stefan 69

  • Full Member
  • ***
  • Beiträge: 195
Aw: Neues Modul - Heating_Control
« Antwort #42 am: 17 Januar 2013, 20:42:40 »
DANKE!

Lasse mir das mal durch den Kopf gehen.

Gruß Stefan
Fhem auf RPi 2, FB7390 FRITZ!OS06.23, CUL , HMLAN, FlyPad6 für Floorplan, Heizung HM-TC-IT-WM-W-EU, HM-CC-RT-DN, Eingriff BuderusRegel. HM-LC-SW4-PCB, Rollläden HM-LC-Bl1PBU-FM, Fenster/Tür HM-SEC-SC/HM-SEC-RHS, DS212j FS20-UE1, HM-Sec-SD

teggi

  • Gast
Aw: Neues Modul - Heating_Control
« Antwort #43 am: 18 Januar 2013, 09:51:58 »
Hi Damian,

Zitat
falls es jemanden interessiert, ich habe das PID-Modul für fußbodenheizung modifiziert.


ja, das interessiert mich in der Tat brennend.

Kannst Du dein angepasstes Modul mal hier posten?

Teggi

Offline Damian

  • Developer
  • Hero Member
  • ****
  • Beiträge: 5591
Aw: Neues Modul - Heating_Control
« Antwort #44 am: 18 Januar 2013, 23:53:51 »
Zitat von: teggi schrieb am Fr, 18 Januar 2013 09:51
Hi Damian,

Zitat
falls es jemanden interessiert, ich habe das PID-Modul für fußbodenheizung modifiziert.


ja, das interessiert mich in der Tat brennend.

Kannst Du dein angepasstes Modul mal hier posten?

Teggi


siehe hier:

Link

Programmierte FHEM-Module: DOIF mit uiTable, DOIF-Perl, THRESHOLD, FHEM-Befehl: IF