FHEM Forum

FHEM => Automatisierung => Thema gestartet von: Peter aus Calw am 09 März 2016, 21:03:16

Titel: mit dummy wert in DOIF eine startzeit zwischen 22:00 und 06:00 bestimmen
Beitrag von: Peter aus Calw am 09 März 2016, 21:03:16
Hallo fhem freunde,
von Damian habe ich ein hervorragendes DOIF erhalten das meine Ladesteuerung für eine Blockspeicherheizung enthält,
jetzt möchte ich das optimieren :

Habe einen dummy eingerichtet der aus einem Ladesollwert und Restwaermewert einen Ladewert ermittelt.
Dieser Ladewert erreicht den Wert 1 bis 14.
Wert 14 = soll 22:00 und dann möglichst gleitend bis
Wert 1   = 05:00 entsprechen

im Moment sieht das so aus:

define di_Laderelais DOIF ([22:00] and [HK_Ladewertsteuerung:state]>13.6 or [22:20] and [HK_Ladewertsteuerung:state]>12.2 or [22:40] and [HK_Ladewertsteuerung:state]>10.8 or [23:00] and [HK_Ladewertsteuerung:state]>9.4 or [23:30] and [HK_Ladewertsteuerung:state]>8 or [00:05] and [HK_Ladewertsteuerung:state]>6.6 or [00:35] and [HK_Ladewertsteuerung:state]>5.2 or [01:30] and [HK_Ladewertsteuerung:state]>3.8 or [02:00] and [HK_Ladewertsteuerung:state]>2.4\
or [03:00] and [HK_Ladewertsteuerung:state]>1)\
(set TH_Laderelais active, set TH_Laderelais desired {([Wetter:fc2_low_c]+[Wetter:fc2_high_c])/2 *(-0.3476157)+36}) DOELSEIF ([06:00])    (set TH_Laderelais deactivated cmd1_gt)
attr di_Laderelais do always


Der Wunsch ist eben diese Ansammlung von and/or durch eine einmalige Uhrzeitangabe abhängig vom Ladewert, einzurichten.
wenn überhaupt möglich, würde mich sehr über Anregungen und Hilfe freuen.
Beste Grüße von Peter aus Calw
Titel: Antw:mit dummy wert in DOIF eine startzeit zwischen 22:00 und 06:00 bestimmen
Beitrag von: Ellert am 10 März 2016, 18:20:52
Statt fest [22:00] zu nutzen könntest Du die Zeit berechnen [([22:00] +7*3600 - 7*3600/13*([Ladewert] - 1))], siehe http://fhem.de/commandref_DE.html#DOIF_Zeitsteuerung_mit_Zeitberechnung
Titel: Antw:mit dummy wert in DOIF eine startzeit zwischen 22:00 und 06:00 bestimmen
Beitrag von: Peter aus Calw am 11 März 2016, 15:21:21
Hallo Ellert,
besten Dank für Deinen Tipp, bin heute erst dazu gekommen, Deinen Vorschlag umzusetzen.
meine di_Laderelais DOIF sieht jetzt so aus :

([([22:00] +7*3600 - 7*3600/13*([HK_Ladewertsteuerung:state] - 1))]) (set TH_Laderelais active, set TH_Laderelais desired {([Wetter:fc2_low_c]+[Wetter:fc2_high_c])/2 *(-0.3476157)+36}) DOELSEIF ([06:00])    (set TH_Laderelais deactivated cmd1_gt)

Allerdings bekomme ich nach dem Einfügen (in DEF) diesen Fehler:

di_laderelais DOIF: Wrong timespec 4.53572935: either HH:MM:SS or {perlcode}: ([22:00]+7*3600-7*3600/13*([HK_Ladewertsteuerung:state]-1))

die Ausgabe von HK_Ladewertsteuerung:

HK_Ladewertsteuerung:state  4.63572935  2016-03-11 15:11:45

Habe ich bei der Eingabe einen Fehler gemacht ?
Gruß Peter

Titel: Antw:mit dummy wert in DOIF eine startzeit zwischen 22:00 und 06:00 bestimmen
Beitrag von: Ellert am 11 März 2016, 15:32:04
Welche DOIF-Version ist geladen?
Titel: Antw:mit dummy wert in DOIF eine startzeit zwischen 22:00 und 06:00 bestimmen
Beitrag von: Peter aus Calw am 11 März 2016, 15:36:22
diese vor ca 2 Wochen aktualisiert :
$Id: 98_DOIF.pm 10899 2016-02-21 12:41:29Z damian-s $
#
# This file is part of fhem.
#
# Fhem is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
# Fhem is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with fhem.  If not, see <http://www.gnu.org/licenses/>.

Titel: Antw:mit dummy wert in DOIF eine startzeit zwischen 22:00 und 06:00 bestimmen
Beitrag von: Damian am 11 März 2016, 16:01:07
Hallo Peter,

das liegt an der Dezimalzahl. In der Readingangabe bei Zeitberechnung werden wohl z. Zt. nur Zeitangaben oder ganze Zahlen erlaubt.

Du kannst dir aber mit

([([22:00] +7*3600 - 7*3600/13*(Value("HK_Ladewertsteuerung") - 1))]) ...


behelfen.

Gruß

Damian

Titel: Antw:mit dummy wert in DOIF eine startzeit zwischen 22:00 und 06:00 bestimmen
Beitrag von: Peter aus Calw am 11 März 2016, 16:18:47
Hallo Damian,
habe mich nicht getraut Dich schon wieder in Anspruch zu nehmen, aber diese Formel funktioniert bestens.
Nun wird genau die gleitende Einschaltzeit erreicht die der Differenz zwischen Lade-Sollwert und Restladewert vom Kessel entspricht.
Kann nur wieder danke sagen und danke natürlich auch Ellert für seinen Beistand.
schöne Grüße von Peter