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
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
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
Welche DOIF-Version ist geladen?
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/>.
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
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