THZ Tecalor (LWZ Stiebel Eltron) Wärmepumpe -Optimierung und Erfahrungsaustausch

Begonnen von willybauss, 07 Februar 2015, 11:30:16

Vorheriges Thema - Nächstes Thema

willybauss

Das dürfte daran liegen, dass Du 99_myUtils.pm nicht aus meiner Beispielkonfiguration übernommen hast. Du kannst auch die "normale" Debianmail-Version aus 99_Utils.pm verwenden. Dann
- musst Du das letzte Semikolon weglassen
- kannst Du keine Anhänge in die Email packen, z.B. bei Fehlermeldungen eine Textdatei mit den Fehlernummern.
FHEM auf Raspberry Pi B und 2B; THZ (THZ-303SOL), CUL_HM, TCM-EnOcean, SamsungTV, JSONMETER, SYSMON, OBIS, STATISTICS

börni

Hallo Willy,

was soll das heißen, weil ich Deine Beispielconfig nicht genommen habe?!
Bei mir in der 99_Utils.pm steht noch einiges mehr drin - das wollte ich nicht einfach so rausschmeißen :(
Hier meine komplette 99_Utils.pm


##############################################
# $Id: 99_Utils.pm 15713 2017-12-28 11:01:02Z rudolfkoenig $
package main;

use strict;
use warnings;
use POSIX;

sub
Utils_Initialize($$)
{
  my ($hash) = @_;
}

######## DebianMail  Mail auf dem RPi versenden ############
sub
DebianMail
{
my $rcpt = shift;
my $subject = shift;
my $text = shift;
my $attach = shift;
my $ret = "";
my $sender = "fabian@intern";
my $konto = "fabian@intern";
my $passwrd = "XXXXXXXXX";
my $provider = "172.23.56.254:587";
Log 1, "sendEmail Empfänger: $rcpt";
Log 1, "sendEmail Subject: $subject";
Log 1, "sendEmail Text: $text";
Log 1, "sendEmail Anhang: $attach";
################ FOR DEBUGGING PURPOSES ONLY ########################
################ Log 1, "sendEmail Sender: $sender";
################ Log 1, "sendEmail Konto: $konto";
################ Log 1, "sendEmail Passwort: $passwrd";
################ Log 1, "sendEmail Provider: $provider";
$ret .= qx(sendEmail -f '$sender' -t '$rcpt' -u '$subject' -m '$text' -a '$attach' -s '$provider' -xu '$konto' -xp '$passwrd' -o tls=auto);
$ret =~ s,[\r\n]*,,g;    # remove CR from return-string
Log 1, "sendEmail returned: $ret";
}
1;

sub
time_str2num($)
{
  my ($str) = @_;
  my @a;
  if($str) {
    @a = split("[T: -]", $str);
    return mktime($a[5],$a[4],$a[3],$a[2],$a[1]-1,$a[0]-1900,0,0,-1);
  } else {
    my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
    return mktime($sec, $min, $hour, $mday, $mon, $year, 0, 0, -1);
  }
}

sub
min($@)
{
  my ($min, @vars) = @_;
  for (@vars) {
    $min = $_ if $_ lt $min;
  }
  return $min;
}

sub
max($@)
{
  my ($max, @vars) = @_;
  for (@vars) {
    $max = $_ if $_ gt $max;
  }
  return $max;
}

sub
minNum($@)
{
  my ($min, @vars) = @_;
  for (@vars) {
    $min = $_ if $_ < $min;
  }
  return $min;
}

sub
maxNum($@)
{
  my ($max, @vars) = @_;
  for (@vars) {
    $max = $_ if $_ > $max;
  }
  return $max;
}


sub
abstime2rel($)
{
  my ($h,$m,$s) = split(":", shift);
  $m = 0 if(!$m);
  $s = 0 if(!$s);
  my $t1 = 3600*$h+60*$m+$s;

  my @now = localtime;
  my $t2 = 3600*$now[2]+60*$now[1]+$now[0];
  my $diff = $t1-$t2;
  $diff += 86400 if($diff <= 0);

  return sprintf("%02d:%02d:%02d", $diff/3600, ($diff/60)%60, $diff%60);
}

sub
defInfo($;$)
{
  my ($search,$internal) = @_;
  $internal = 'DEF' unless defined($internal);
  my @ret;
  my @etDev = devspec2array($search);
  foreach my $d (@etDev) {
    next unless $d;
    next if($d eq $search && !$defs{$d});
    push @ret, $defs{$d}{$internal};
  }
  return @ret;
}

my ($SVG_lt, $SVG_ltstr);
sub
SVG_time_to_sec($)
{
  my ($str) = @_;
  if(!$str) {
    return 0;
  }
  my ($y,$m,$d,$h,$mi,$s) = split("[-_:]", $str);
  $s = 0 if(!$s);
  $mi= 0 if(!$mi);
  $h = 0 if(!$h);
  $d = 1 if(!$d);
  $m = 1 if(!$m);

  if(!$SVG_ltstr || $SVG_ltstr ne "$y-$m-$d-$h") { # 2.5x faster
    $SVG_lt = mktime(0,0,$h,$d,$m-1,$y-1900,0,0,-1);
    $SVG_ltstr = "$y-$m-$d-$h";
  }
  return $s+$mi*60+$SVG_lt;
}

######## trim #####################################################
# What  : cuts blankspaces from the beginning and end of a string
# Call  : { trim(" Hello ") }
# Source: http://www.somacon.com/p114.php ,
#         http://www.fhemwiki.de/wiki/TRIM-Funktion-Anfangs/EndLeerzeichen_aus_Strings_entfernen
sub trim($)
{
   my $string = shift;
   $string =~ s/^\s+//;
   $string =~ s/\s+$//;
   return $string;
}

######## ltrim ####################################################
# What  : cuts blankspaces from the beginning of a string
# Call  : { ltrim(" Hello") }
# Source: http://www.somacon.com/p114.php ,
#         http://www.fhemwiki.de/wiki/TRIM-Funktion-Anfangs/EndLeerzeichen_aus_Strings_entfernensub ltrim($)
sub ltrim($)
{
   my $string = shift;
   $string =~ s/^\s+//;
   return $string;
}

######## rtrim ####################################################
# What  : cuts blankspaces from the end of a string
# Call  : { rtrim("Hello ") }
# Source: http://www.somacon.com/p114.php ,
#         http://www.fhemwiki.de/wiki/TRIM-Funktion-Anfangs/EndLeerzeichen_aus_Strings_entfernensub ltrim($)
sub rtrim($)
{
   my $string = shift;
   $string =~ s/\s+$//;
   return $string;
}

######## UntoggleDirect ###########################################
# What  : For devices paired directly, converts state 'toggle' into 'on' or 'off'
# Call  : { UntoggleDirect("myDevice") }
#         define untoggle_myDevice notify myDevice { UntoggleDirect("myDevice") }
# Source: http://www.fhemwiki.de/wiki/FS20_Toggle_Events_auf_On/Off_umsetzen
sub UntoggleDirect($)
{
my ($obj) = shift;
Log 4, "UntoggleDirect($obj)";
if (Value($obj) eq "toggle"){
   if (OldValue($obj) eq "off") {
     {fhem ("setstate ".$obj." on")}
   }
   else {
     {fhem ("setstate ".$obj." off")}
   }
}
else {
   {fhem "setstate ".$obj." ".Value($obj)}
}
}


######## UntoggleIndirect #########################################
# What  : For devices paired indirectly, switches the target device 'on' or 'off' also when a 'toggle' was sent from the source device
# Call  : { UntoggleIndirect("mySensorDevice","myActorDevice","50%") }
#         define untoggle_mySensorDevice_myActorDevice notify mySensorDevice { UntoggleIndirect("mySensorDevice","myActorDevice","50%%") }
# Source: http://www.fhemwiki.de/wiki/FS20_Toggle_Events_auf_On/Off_umsetzen
sub UntoggleIndirect($$$)
{
  my ($sender, $actor, $dimvalue) = @_;
  Log 4, "UntoggleIndirect($sender, $actor, $dimvalue)";
  if (Value($sender) eq "toggle")
  {
    if (Value($actor) eq "off") {fhem ("set ".$actor." on")}
    else {fhem ("set ".$actor." off")}
  }
  ## workaround for dimming currently not working with indirect pairing
  ## (http://culfw.de/commandref.html: "TODO/Known BUGS - FS20 dim commands should not repeat.")
  elsif (Value($sender) eq "dimup") {fhem ("set ".$actor." dim100%")}
  elsif (Value($sender) eq "dimdown") {fhem ("set ".$actor." ".$dimvalue)}
  elsif (Value($sender) eq "dimupdown")
  {
    if (Value($actor) eq $dimvalue) {fhem ("set ".$actor." dim100%")}
       ## Heuristic above doesn't work if lamp was dimmed, then switched off, then switched on, because state is "on", but the lamp is actually dimmed.
    else {fhem ("set ".$actor." ".$dimvalue)}
    sleep 1;
  }
  ## end of workaround
  else {fhem ("set ".$actor." ".Value($sender))}

  return;
}

sub
IsInt($)
{
  defined $_[0] && $_[0] =~ /^[+-]?\d+$/;
}

# Small NC replacement: fhemNc("ip:port", "text", waitForReturn);
sub
fhemNc($$$)
{
  my ($addr, $txt, $waitForReturn) = @_;
  my $client = IO::Socket::INET->new(PeerAddr => $addr);
  return "Can't connect to $addr\n" if(!$client);
  syswrite($client, $txt);
  return "" if(!$waitForReturn);
  my ($ret, $buf) = ("", "");
  shutdown($client, 1);
  alarm(5);
  while(sysread($client, $buf, 256) > 0) {
    $ret .= $buf;
  }
  alarm(0);
  close($client);
  return $ret;
}

sub
round($$)
{
  my($v,$n) = @_;
  return sprintf("%.${n}f",$v);
}

1;

=pod
=item helper
=item summary    FHEM utility functions
=item summary_DE FHEM Hilfsfunktionen
=begin html

<a name="Utils"></a>
<h3>Utils</h3>
<ul>
  This is a collection of functions that can be used module-independant
  in all your own development<br/>
  </br>
  <b>Defined functions</b><br/><br/>
  <ul>
    <li><b>abstime2rel("HH:MM:SS")</b><br>tells you the difference as HH:MM:SS
      between now and the argument</li><br/>

    <li><b>ltrim("string")</b><br>returns string without leading
      spaces</li><br/>

    <li><b>max(str1, str2, ...)</b><br>returns the highest value from a given
      list (sorted alphanumeric)</li><br/>

    <li><b>maxNum(num1, num2, ...)</b><br>returns the highest value from a
      given list (sorted numeric)</li><br/>

    <li><b>min(str1, str2, ...)</b><br>returns the lowest value from a given
      list (sorted alphanumeric)</li><br/>

    <li><b>minNum(num1, num2, ...)</b><br>returns the lowest value from a given
      list (sorted numeric)</li><br/>

    <li><b>rtrim("string")</b><br>returns string without trailing
      spaces</li><br/>

    <li><b>time_str2num("YYYY-MM-DD HH:MM:SS")</b><br>convert a time string to
      number of seconds since 1970</li><br/>

    <li><b>trim("string")</b><br>returns string without leading and without
      trailing spaces</li><br/>

    <li><b>UntoggleDirect("deviceName")</b><br>For devices paired directly,
       converts state 'toggle' into 'on' or 'off'</li><br/>

    <li><b>UntoggleIndirect()</b><br>For devices paired indirectly, switches
      the target device 'on' or 'off', also when a 'toggle' was sent from the
      source device</li><br/>

    <li><b>defInfo("devspec", "internal")</b><br>return an array with the
      internal values of all devices found with devspec, e.g.
      defInfo("TYPE=SVG", "GPLOTFILE").</li><br/>

    <li><b>SVG_time_to_sec("YYYY-MM-DD_HH:MM:SS")</b><br>converts the argument
      to the number of seconds since 1970. Optimized for repeated use of similar
      timestamps.</li></br>

    <li><b>fhemNc("host:port", "textToSend", waitForReturn)</b><br>
      sends textToSend to host:port, and if waitForReturn is set, then read
      the answer (wait up to 5 seconds) and return it. Intended as small
      nc replacement.
      </li></br>

    <li><b>round(value, digits)</b><br>
      round &lt;value&gt; to given digits behind comma
      </li></br>

    <li><b>getUniqueId()</b><br>
      return the FHEM uniqueID used by the fheminfo command. Uses the
      getKeyValue / setKeyValue functions.
      </li></br>

    <li><b>setKeyValue(keyName, value)</b><br>
      store the value in the file $modpath/FHEM/FhemUtils/uniqueID (the name is
      used for backward compatibility), or in the database, if using configDB.
      value may not contain newlines, and only one value per key is stored.
      The file/database entry will be written immediately, no explicit save is
      required.  If the value is undef, the entry will be deleted.
      Returns an error-string or undef.
      </li></br>

    <li><b>getKeyValue(keyName)</b><br>
      return ($error, $value), stored previously by setKeyValue.
      $error is set if there was an error.  Both are undef, if there is no
      value yet for this key.
      </li></br>

  </ul>
</ul>
=end html
=cut


Sonst habe ich eigentlich Deine Beispielkonfig komplett reinkopiert ....
Mit blindlinks übernehmen von Beispielkonfigs und Dateien rein kopieren und ersetzen bin ich mittlerweile vorsichtig geworden :(

Vielen Dank & viele Grüße
Fabian

Loxberry auf RPi3 mit FHEM / LWZ303i V.2.06 / Loxone / eisfair Server (LMS/NAS/cloud/et.) / Fronius WR mit 9,3 kwp

willybauss

Zitat von: willybauss am 11 Februar 2018, 16:54:26
Das dürfte daran liegen, dass Du 99_myUtils.pm nicht aus meiner Beispielkonfiguration übernommen hast. Du kannst auch die "normale" Debianmail-Version aus 99_Utils.pm verwenden. Dann
- musst Du das letzte Semikolon weglassen
- kannst Du keine Anhänge in die Email packen, z.B. bei Fehlermeldungen eine Textdatei mit den Fehlernummern.
FHEM auf Raspberry Pi B und 2B; THZ (THZ-303SOL), CUL_HM, TCM-EnOcean, SamsungTV, JSONMETER, SYSMON, OBIS, STATISTICS

willybauss

Vergleiche man den Inhalt von 99_Utils.pm mit meiner 99_myUtils.pm
FHEM auf Raspberry Pi B und 2B; THZ (THZ-303SOL), CUL_HM, TCM-EnOcean, SamsungTV, JSONMETER, SYSMON, OBIS, STATISTICS

börni

Das habe ich ja gemacht - sie Inhalt der 99_Utils.pm - weiter vorn.
Nun habe ich alle Änderungen in der 99_Utils.pm wieder rückgängig gemacht - und Deine Datei 99_myUtils.pm in das Verzeichnis kopiert.
Die sieht nun wie folgt aus:


# /opt/fhem/FHEM/99_myUtils.pm

package main;
use strict;
use warnings;
use POSIX;
sub
myUtils_Initialize($$)
{
my ($hash) = @_;
}

######## DebianMail  Mail auf dem RPi versenden ############
sub
DebianMail
{
my $rcpt = shift;
my $subject = shift;
my $text = shift;
my $attach = shift;
my $ret = "";
my $sender = "fabian\@eis";
my $konto = "fabian\@eis";
my $passwrd = "PASSWORD";
my $provider = "172.23.56.254:587";
Log 1, "sendEmail Empfänger: $rcpt";
Log 1, "sendEmail Subject: $subject";
Log 1, "sendEmail Text: $text";
Log 1, "sendEmail Anhang: $attach";
################ FOR DEBUGGING PURPOSES ONLY ########################
################ Log 1, "sendEmail Sender: $sender";
################ Log 1, "sendEmail Konto: $konto";
################ Log 1, "sendEmail Passwort: $passwrd";
################ Log 1, "sendEmail Provider: $provider";
$ret .= qx(sendEmail -f '$sender' -t '$rcpt' -u '$subject' -m '$text' -a '$attach' -s '$provider' -xu '$konto' -xp '$passwrd' -o tls=auto);
$ret =~ s,[\r\n]*,,g;    # remove CR from return-string
Log 1, "sendEmail returned: $ret";
}
1;


Keine Fehlermeldung im Log.

Aber der Meldung beim Aufruf der Subroutine bleibt:


Undefined subroutine &main::DebianMail called at (eval 67) line 1.


Vielen Dank & viele Grüße
Fabian
Loxberry auf RPi3 mit FHEM / LWZ303i V.2.06 / Loxone / eisfair Server (LMS/NAS/cloud/et.) / Fronius WR mit 9,3 kwp

willybauss

hast Du ein reload 99_myUtils.pm gemacht nachdem Du die Änderung rein geschrieben hast?
FHEM auf Raspberry Pi B und 2B; THZ (THZ-303SOL), CUL_HM, TCM-EnOcean, SamsungTV, JSONMETER, SYSMON, OBIS, STATISTICS

willybauss

Schau auch mal ins Logfile, ob beim Laden der myUtils eine Fehlermeldung kommt.
FHEM auf Raspberry Pi B und 2B; THZ (THZ-303SOL), CUL_HM, TCM-EnOcean, SamsungTV, JSONMETER, SYSMON, OBIS, STATISTICS

börni

Zitat von: willybauss am 11 Februar 2018, 20:14:49
hast Du ein reload 99_myUtils.pm gemacht nachdem Du die Änderung rein geschrieben hast?

nein, hatte aber FHEM neugestartet....

Nach den Änderungen mit den Plots wird mein Logfile nun mit solchen Einträgen geflutet :(


2018.02.11 20:37:11 1: PERL WARNING: Argument "n.a." isn't numeric in division (/) at (eval 20660) line 1, <GEN100> line 2334.
2018.02.11 20:37:11 3: eval: $fld[38]/1.5


ich habe viele "n.a." in meinem Log-File Mythz:


2018-02-06_00:09:15 Mythz sHC1: outsideTemp: 0.6 x08: 51.3 returnTemp: 34.5 integralHeat: 4 flowTemp: 38.7 heatSetTemp: 33.1 heatTemp: 35.7 seasonMode: winter integralSwitch: 100 hcOpMode: normal roomSetTemp: 22.5 x60: 0 x64: 0 insideTempRC: 0 x72: 52.4 x76: 2227.2 onHysteresisNo: 1 offHysteresisNo: 0 hcBoosterStage: 1
2018-02-06_00:09:43 Mythz sGlobal: outsideTemp: 0.5 flowTemp: 38.8 returnTemp: 34.2 hotGasTemp: 82.7 dhwTemp: 46.6 flowTempHC2: 0 evaporatorTemp: -8.9 condenserTemp: 40.2 mixerOpen: 0 mixerClosed: 0 heatPipeValve: 0 diverterValve: 0 dhwPump: 0 heatingCircuitPump: 1 solarPump: 0 compressor: 1 boosterStage3: 0 boosterStage2: n.a. boosterStage1: 0 highPressureSensor: 1 lowPressureSensor: 1 evaporatorIceMonitor: 1 signalAnode: 0 evuRelease: n.a. ovenFireplace: 0 STB: n.a. outputVentilatorPower: 39 inputVentilatorPower: 39 mainVentilatorPower: 69.8039215686275 outputVentilatorSpeed: 33 inputVentilatorSpeed: 27 mainVentilatorSpeed: 19 outsideTempFiltered: 0.9 relHumidity: n.a. dewPoint: n.a. P_Nd: n.a. P_Hd: n.a. actualPower_Qc: n.a. actualPower_Pel: n.a collectorTemp: 0 insideTemp: 0


habe den Plot4 dann den mit den Lüftern erstmal wieder entfernt - evtl. gibt das meine LWZ303i mit SW 2.06 nicht her ... keine Ahnung....

Vielen Dank & viele Grüße
Fabian
Loxberry auf RPi3 mit FHEM / LWZ303i V.2.06 / Loxone / eisfair Server (LMS/NAS/cloud/et.) / Fronius WR mit 9,3 kwp

börni

Zitat von: willybauss am 11 Februar 2018, 15:30:41
@börni:
Zu den Plots:
Wäre es möglich, die Plots so zu machen wie in meinen Beispielen? Da sieht man einfach mehr. Z.B. fehlen bei Dir HC1Soll-HC1Ist, Integralwert, Kompressor, Booster und Heizkreispumpe. Ohne die kann man kaum was sagen.

Man sieht aber an den Plots bereits jetzt, dass die Anlage viel zu oft und dann immer nur kurz einschaltet. Das ist äußerst unbefriedigend. Für Abhilfetipps verweise ich ebenfalls auf meine ausführlichen Erklärungen im 1. Beitrag.

ja dann los :) - hier noch mal mit den neuen Plots:

Vielen Dank & viele Grüße
Fabian

Loxberry auf RPi3 mit FHEM / LWZ303i V.2.06 / Loxone / eisfair Server (LMS/NAS/cloud/et.) / Fronius WR mit 9,3 kwp

willybauss

Zitat von: börni am 11 Februar 2018, 20:39:00
Nach den Änderungen mit den Plots wird mein Logfile nun mit solchen Einträgen geflutet :(
Du suchst jetzt selbst in deiner Konfiguration nach der Fehlerstelle, die ja mit

eval: $fld[38]/1.5

beschrieben war.

Den Kommentar zu den Plots kann ich mir sparen. Das, was ich um 15:30 geschrieben hatte, passt exakt.
FHEM auf Raspberry Pi B und 2B; THZ (THZ-303SOL), CUL_HM, TCM-EnOcean, SamsungTV, JSONMETER, SYSMON, OBIS, STATISTICS

peter456

Hallo Börni,

auf deiner Aufzeichnung vom 08.02.2018 steigt der Vorlauf im Heizbetrieb auf über 40°C.
Da bei meiner LWZ303i der Vorlauf fast nie über 33-35°C steigen kann (das Gerät schafft nicht mehr),
gehe ich davon aus, dass bei dir der Vorlauf nicht direkt über die Fußbodenheizung fließt, sondern in einen Pufferspeicher.
Ist das richtig?

börni

Hallo Peter,

leider nein, wie ich ein paar Beiträge weiter vorne geschrieben habe war bei mir leider das Ablaufröhrchen vom Kondensat verstopft :(
Dadurch lief die WP nicht F23. Als der Fehler behoben wurde, war der Wärmebedarf offensichtlich soo hoch, dass die WP entschieden hat den Booster in Stufe 3 zu zünden :(

Sieht man auch in den Plots :) - was für mich schon mal ein Erfolg ist :)

Vielen Dank & viele Grüße
Fabian
Loxberry auf RPi3 mit FHEM / LWZ303i V.2.06 / Loxone / eisfair Server (LMS/NAS/cloud/et.) / Fronius WR mit 9,3 kwp

peter456

Alles klar. Bei mir können solche Temperaturen auch nur mit Heizstab erreicht werden.

börni

Hallo Willy,

Zitat von: börni am 11 Februar 2018, 18:18:55

Aber der Meldung beim Aufruf der Subroutine bleibt:


Undefined subroutine &main::DebianMail called at (eval 67) line 1.



was kann ich tun damit der Aufruf zum Testen funktioniert?


{ DebianMail('fabian@intern','Test','Test-Text');; }


Vielen Dank & viele Grüße
Fabian
Loxberry auf RPi3 mit FHEM / LWZ303i V.2.06 / Loxone / eisfair Server (LMS/NAS/cloud/et.) / Fronius WR mit 9,3 kwp

börni

Hallo Willy,

Zitat von: willybauss am 11 Februar 2018, 21:04:22
Du suchst jetzt selbst in deiner Konfiguration nach der Fehlerstelle, die ja mit

eval: $fld[38]/1.5

beschrieben war.

Den Kommentar zu den Plots kann ich mir sparen. Das, was ich um 15:30 geschrieben hatte, passt exakt.

wie gesagt, der o.g. Fehler habe ich schon eliminiert - zu Plot 4 kann ich wohl keine Daten liefern da dort nur n.a. steht.

In deinem Wiki auf der ersten Seite steht:
Zitatdie Spreizung wird über die Pumpenleistung eingestellt. Ich habe so ungefähr 6 - 7K eingestellt

Bei mir springt die WP offensichtlich viel zu oft in zu kurzen Abständen ein, macht es da Sinn, die Durchlaufzeit zu verringern, damit mehr Wärme an den Raum abgegeben werden kann?

Ich meine es ist ja sowieso eine Gratwanderung - wie Du ja auch schreibst, alles hängt mit allem irgendwo zusammen - die WP wird bei höheren FB Temperaturen ineffizient. Läuft das Wasser nun zu schnell durch die FB hat es nicht genug Zeit die Wärme abzugeben. Läuft das Wasser zu langsam wird das Wasser ggf. viel zu heiß und somit auch ineffizient.
Wir wollen ja nicht das ganze Haus heizen - somit ergeben sich für die WP einige Herausforderungen.

Im OG ist ein Heizreisverteiler mit 5 Verteilern und 5 Stellmotoren:
2x Kinderzimmer - beide auf ca. 20° eingestellt
1x Büro - ungeheizt (machen die Rechner SMILE) - nein war nur nen Scherz - ich brauch es nicht so warm :)
1x Badezimmer - warm bestimmt 23° durchgehend
1x Schlafzimmer - ungeheizt

dazu gibt es noch einen Anbau welcher über einen separaten Verteiler verfügt (drei Heizkreise 1x UG Wohnzimmer und OG die beiden Kinderzimmer - alles Anbau aber mit einander verbunden).
Diese drei Heizkreise sind "intelligent" und werden über Loxone gesteuert - dort kann ich Temperaturen (in den Zimmern sind Fühler in den Tastern) und Zeiten einstellen.
Ich vermute bald, dass das bei einer WP aber gar nicht so viel Sinn macht :(

Im UG gibt es ebenfalls einen 5fach Verteiler
1x Gäste-WC - meiste Zeit unbeheizt
2x Heizkreise fürs große Wohnzimmer (plus einen dritten s.o. für den Anbau) - die zwei sind geringer eingestellt als der dritte vom Anbau weil man sich da mehr aufhält - ob sinnvoll oder nicht muss man mal drüber nachdenken ...
1x Küche - ähnlich eingestellt wie das Wohnzimmer
1x Flur - unbeheizt

Das Haus ist Massivbauweise - 10J. alt.

Ich möchte ja immer noch mit der ganzen Geschichte hier meinen Eigenverbrauch optimieren und die Anlage möglichst nur über Tag laufen lassen.
Dazu habe ich zwei Möglichkeiten - entweder ich kann an diese Art Rundsteuerempfänger dran gehen mit einer Programmierung in Loxone, oder ich kann Parameter mit FHEM auf die Anlage so verändern dass das gewünschte Ziel erreicht wird. Eine dritte Möglichkeit gibt es noch - welche ich momentan nicht so sehr in Erwägung ziehe - und das wäre auf ein elektronisches Last Relais (EMR) vom Fronius WR zu gehen.
Diese "Intelligenz" von dem EMR könnte man aber auch in Loxone nachbilden ....

Vielen Dank & viele Grüße
Fabian
Loxberry auf RPi3 mit FHEM / LWZ303i V.2.06 / Loxone / eisfair Server (LMS/NAS/cloud/et.) / Fronius WR mit 9,3 kwp