Neues Modul - Heating_Control, WeekdayTimer

Begonnen von Dietmar63, 04 Januar 2013, 19:42:26

Vorheriges Thema - Nächstes Thema

tpm88

Zitat von: Dietmar63 am 23 Mai 2014, 20:00:44
probiert es mal aus!

Hallo Dietmar,
prima - mach ich gerne. Allerdings erst ab Montag - ich geb dann Feedback. Das wird den Enable/Disable Button auf jeden Fall deutlich vereinfachen.

Gruss
Tobias
Test FHEM Server on RPi, CUL_HM
Prod FHEM Server on Odroid HC1, HM-USB, JeeLink
Devices: diverse HM, IT1500, 1wire, LaCrosse, MQTT

tpm88

Zitat von: Dietmar63 am 23 Mai 2014, 20:00:44
sowohl Heating_Control als auch WeekdayTimer um ein
Set wd disable
Set wd enable

ergänzt, und setzt das Attribut disable auf 0 bzw. 1
Die Änderung des Attibuts disable wird dann im Reading disabled als notify-Trigger zur Verfügung gestellt.

probiert es mal aus!

Hallo Dietmar,

hmm - das funktioniert bei mir noch nicht. Nach dem Update habe ich im Frontend die Kommandos
set wd enable/disable  ???
und
set wd refresh

Auf der Kommandozeile hat ein
set wd disable
keinerlei Auswirkung, d.h. ich sehe weder das Attribut disable gesetzt noch ein Reading "disabled".

Mache ich was falsch?

Gruss
Tobias

Test FHEM Server on RPi, CUL_HM
Prod FHEM Server on Odroid HC1, HM-USB, JeeLink
Devices: diverse HM, IT1500, 1wire, LaCrosse, MQTT

Dietmar63

Kannst du prüfen welche Version des Moduls du hast - erste Zeile im Sourcecode
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

tpm88

version sagt:
# $Id: 98_WeekdayTimer.pm 5946 2014-05-23 17:41:49Z dietmar63 $

So stehts auch im File. Nach dem Update natürlich ein Restart von FHEM gemacht.

Gruss
Tobias
Test FHEM Server on RPi, CUL_HM
Prod FHEM Server on Odroid HC1, HM-USB, JeeLink
Devices: diverse HM, IT1500, 1wire, LaCrosse, MQTT

Dietmar63

ich muss wohl noch ein wenig nachbessern, habe aber noch Probleme und komme erst am Sonntag dazu mich wieder darum zu kümmern.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

tpm88

#410
Hallo Dietmar,

es hat ein wenig gedauert, bis ich die Anpassungen (set <wd> enable/disable und das neue Reading disabled) testen konnte, weil ich meinen FHEM Server umgezogen habe.

Besten Dank für die Änderungen, die per se einwandfrei funktionieren. Dennoch habe ich noch einen kleinen Modifikationswunsch, da es mir nicht gelungen ist, das Reading "disabled" in einer readingsGroup mit den Attributen commands und valueIcon vernünftig auszuwerten. Die numerischen Werte 0 und 1 für "disabled" machen hier Schwierigkeiten.

Funktioniert nicht: Edit: Funktioniert doch!
commands { 'disabled.0' => 'set $DEVICE disable', 'disabled.1' => 'set $DEVICE enable' }
valueIcon { 'disabled.0' => 'Restart', 'disabled.1' => 'Shutdown' }


Liefert das Reading "disabled" jedoch stattdessen z.B. die Strings yes und no, funktionieren die readingsGroup Attribute einwandfrei:
commands { 'disabled.no' => 'set $DEVICE disable', 'disabled.yes' => 'set $DEVICE enable' }
valueIcon { 'disabled.no' => 'Restart', 'disabled.yes' => 'Shutdown' }


Hierzu habe ich folgende kleine Änderung im WeekdayTimer Modul vorgenommen:


[s]# /var/tmp/busybox diff -u 98_WeekdayTimer.pm 98_WeekdayTimer.pm.orig
--- 98_WeekdayTimer.pm
+++ 98_WeekdayTimer.pm.orig
@@ -97,8 +97,7 @@

   if( $attrName eq "disable" ) {
      my $hash = $defs{$name};
-     my $value = ( $attrVal eq '1') ? "yes" : "no";
-     readingsSingleUpdate ($hash,  "disabled",  $value, 1);
+     readingsSingleUpdate ($hash,  "disabled",  $attrVal, 1);
   }
   return undef;
}
[/s]


Könntest Du die Modifikation bitte so in WeekdayTimer (und ggf. Heating_Control etc) übernehmen? Edit: Nicht nötig.

Danke & Gruss
Tobias
Test FHEM Server on RPi, CUL_HM
Prod FHEM Server on Odroid HC1, HM-USB, JeeLink
Devices: diverse HM, IT1500, 1wire, LaCrosse, MQTT

Dietmar63

Ja, könnte ich. Aber ist das nicht eher ein Problem von Readings group und der dortigen Implementierung? Id wenn schon ein allgemeines Modul existiert, muss es auch mit allem was es so gibt, fertig werden.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

tpm88

Hallo Dietmar,

ich werde gerne bei Andre nachfragen, ob readingsGroup da wirklich eine Einschränkung hat. Dann wäre es natürlich sinnvoller, es dort zu fixen. Vielleicht mache ja auch ich etwas falsch.

Ich dachte nur, da Du die Änderung mit dem disabled reading auf meinen Wunsch eingearbeitet hast, wäre es so einfacher.

Gruss
Tobias
Test FHEM Server on RPi, CUL_HM
Prod FHEM Server on Odroid HC1, HM-USB, JeeLink
Devices: diverse HM, IT1500, 1wire, LaCrosse, MQTT

Dietmar63

Mal schauen was bei der Recherche heraus kommt.
Wenn es nicht anders möglich ist, kann ich natürlich ändern.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

tpm88

Jetzt steh ich dumm da.

Andre konnte das Problem nicht nachvollziehen - siehe http://forum.fhem.de/index.php/topic,14425.msg175735.html#msg175735

Heute vormittag habe gefühlt stundenlang an der readingsGroup rumgeschraubt - und es nicht zum Laufen gebracht. Erst als ich o.g. Änderungen beim WD Modul eingeführt habe.

Jetzt habe ich noch einmal von scratch mit zwei dummy Timern eine Test readingsGroup definiert. Und es funktioniert auf Anhieb auch mit "disabled" = [0|1] !!

Mittlerweile habe ich auch meine eigentliche readingsGroup mit den zwei Bewässerungs-Timern wieder rückgebaut - und es klappt auch....

Ich kann es mir nur so erklären, dass ich irgendwo einen kleinen Typo (z.B. disable statt disabled o.ä.) drin hatte.

Alles gut. Danke & Gruss
Tobias
Test FHEM Server on RPi, CUL_HM
Prod FHEM Server on Odroid HC1, HM-USB, JeeLink
Devices: diverse HM, IT1500, 1wire, LaCrosse, MQTT

Dietmar63

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

Basti

Gibt es eine Möglichkeit die (Perl basierten) Schaltzeiten beim WeekdayTimer per Kommando zu aktualisieren? Ich habs mit:
WeekdayTimer_SetAllParms ()
probiert, aber da ändert sich nichts an den Schaltzeiten.

Der Hintergrund dazu ist, dass ich 2 WeekdayTimer im Betrieb habe, welche Lichter in 2 Räumen schalten. Dabei habe ich die Ausschaltzeit des 1. and die Anschaltzeit des 2. WDT gekoppelt. Das habe ich realisiert, indem ich mit:

my $datetime = ReadingsVal($weektimer,"nextUpdate","20.12.2014 $fallback");

die nächste Schaltzeit des 2. WDT auslese. Ist nicht sehr robust, aber ich habe keine andere Möglichkeit gefunden und es funktioniert erstmal. Bin aber offen für bessere Vorschläge dies zu lösen.

Ein Problem besteht mit dieser Methode allerdings. Wenn ich z.B. die FHEM Konfig neu einlese, hat der 2. WDT noch keine echte Anschaltzeiten und das NextUpdate ist innerhalb von einer Minute oder so, was sich der 1. WDT dann als Auschaltzeit annimmt.
Das ist problematisch, wenn der 1. WDT noch gar nicht an ist, da er kann es sein, dass die Lampe des 1.WDT bis zum nächsten Tag durchläuft.

Daher möchte ich sobald der 1.WDT anschaltet, die Schaltzeiten auffrischen, damit der 1. WDT eine richtige Ausschaltzeit für den Tag gesetzt bekommt.

Die automatische Aktualisierung um Mitternacht reicht nicht aus, da dass in den meisten Fällen schon zu spät ist.

Vielen Dank für eure Hilfe.

Gruß,
Sebastian

Otto

Hallo,

ist es sinnvoll, um ggf mehr Möglichkeiten zu haben, die neue Funktion set wd enable/disable zu nutzen.

Habe zur Zeit viele Profile die ich mit einer Funktion auf inactive setze, so was wie
define HCW Heating_Control WZ_Heizung Sa-So,Mi|08:00|21 (ReadingsVal("WeAreThere", "state", "no") eq "yes")
Gruss Otto

.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.

docker - homematic

tfinke


chriss

Hallo,

ich benutze den WeekDayTimer derzeit, um den State von RESIDENTS/HOMEMATE zeitabhängig zu setzten, da ich bisher keine automatische Presents-Funktionalität habe (soll später kommen). Was ich noch nicht hinbekommen habe, ist den Parameter $we bzw. !$we als Wochentag zu verwenden, um nicht nur die Wochenenden, sondern auch die Feier- und Urlaubstage berücksichtigen zu können. IMO einer der Hauptvorteile einer Fhem/WeekDayTimer-basierten Steuerung gegenüber den eingebauten Homematik Zeitprofilen.  Könnte jemand mal ein Beispiel zeigen, bei dem es funktioniert? Oder ist das vielleicht noch nicht implementiert?