Starttemperatur für die Heizung über Außentemperatur setzten

Begonnen von dobiwan, 29 November 2017, 10:43:32

Vorheriges Thema - Nächstes Thema

dobiwan

Hallo zusammen,

ich betreibe ein BHKW von Senertec. Ich habe mir die Wärmeführung jetzt über fhem selber realisiert, damit das BHKW nur über Stromführung gestartet wird, wenn die Temperatur im Puffer unter einen bestimmten Wert fällt.
Das funktioniert soweit alles, aber ich suche eine Möglichkeit die Mindesttemperatur des Pufferspeichers über die Außentemperatur dynamisch anzupassen. Im Winter habe ich halt mehr Entnahme aus dem Puffer als im Sommer.
Ich habe es schon über ein notify mit eine If elsif versucht. leider wird das Ereignis nicht so ausgelöst wie gedacht. Es gibt ja den PID als Regler. Kann man irgendwie eine Temperaturkurve simulieren, die dann entsprechend die T-Soll nach der Außentemperatur verändert.
Mir schwebt vor, ab 13 ° C mit 40 ° C T-Soll anzufangen und dann bei 0 ° C auf 55 ° C T-Soll zu kommen.

Vielleicht hat ja jemand eine Idee

MadMax-FHEM

Hi,

Ideen haben sich er viele ;)

Aber es fehlen ein paar Infos.

Wie hast du dein BHKW eingebunden?

Poste doch mal ein list des "Devices":

list DeviceName

in die WebCmd von fhem und dann das Ergebnis hier in code-Tags ('#' Zeichen im Menü) posten.

Und das gleiche von dem Tempfühler für außen.

Wie hast du das aktuell nicht funktionierende notify erzeugt?
Was geht dabei nicht?

Wird es nicht ausgelöst?
Oder macht es beim Auslösen nicht was es soll...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

dobiwan

Hallo Joachim,

hier die Definition. Ist eine Webseite die ich auswerte.
Die Temperatur Dachs:Temp.sbAussen soll das Notify auslösen und dann mache ich eine Auswertung wie die Außentemperatur ist.
Je nach wert unter 13 ° C möchte ich die Einschalttemperatur schrittweise erhöhen.

Internals:
   BUSY       0
   DEF        http://glt:PW@192.168.178.100:8080/getKey?k=Hka_Bd.ulBetriebssekunden&k=Hka_Bd.ulAnzahlStarts&k=Hka_Mw1.Temp.sKapsel&k=Hka_Mw1.Temp.sbAussen&k=Hka_Mw1.Temp.sbFuehler1&k=Hka_Mw1.Temp.sbFuehler2&k=Hka_Mw1.Temp.sbGen&k=Hka_Mw1.Temp.sbMotor&k=Hka_Mw1.Temp.sbRegler&k=Hka_Mw1.Temp.sbRuecklauf&k=Hka_Mw1.Temp.sbVorlauf&k=Hka_Mw1.Aktor.fUPKuehlung&k=Hka_Mw1.usDrehzahl&k=Hka_Mw1.Temp.sAbgasHKA&k=Hka_Mw1.Temp.sAbgasMotor&_rnd=9619 60
   Interval   60
   LASTSEND   1512117904.68117
   MainURL    http://glt:PW@192.168.178.100:8080/getKey?k=Hka_Bd.ulBetriebssekunden&k=Hka_Bd.ulAnzahlStarts&k=Hka_Mw1.Temp.sKapsel&k=Hka_Mw1.Temp.sbAussen&k=Hka_Mw1.Temp.sbFuehler1&k=Hka_Mw1.Temp.sbFuehler2&k=Hka_Mw1.Temp.sbGen&k=Hka_Mw1.Temp.sbMotor&k=Hka_Mw1.Temp.sbRegler&k=Hka_Mw1.Temp.sbRuecklauf&k=Hka_Mw1.Temp.sbVorlauf&k=Hka_Mw1.Aktor.fUPKuehlung&k=Hka_Mw1.usDrehzahl&k=Hka_Mw1.Temp.sAbgasHKA&k=Hka_Mw1.Temp.sAbgasMotor&_rnd=9619
   ModuleVersion 3.4.0 - 9.9.2017
   NAME       Dachs
   NR         139
   STATE      Status: Aus
   TRIGGERTIME 1512117964.67976
   TRIGGERTIME_FMT 2017-12-01 09:46:04
   TYPE       HTTPMOD
   addr       http://192.168.178.100:8080
   auth       glt:PW
   buf
   code       200
   conn
   data
   displayurl http://glt:PW@192.168.178.100:8080/getKey?k=Hka_Bd.ulBetriebssekunden&k=Hka_Bd.ulAnzahlStarts&k=Hka_Mw1.Temp.sKapsel&k=Hka_Mw1.Temp.sbAussen&k=Hka_Mw1.Temp.sbFuehler1&k=Hka_Mw1.Temp.sbFuehler2&k=Hka_Mw1.Temp.sbGen&k=Hka_Mw1.Temp.sbMotor&k=Hka_Mw1.Temp.sbRegler&k=Hka_Mw1.Temp.sbRuecklauf&k=Hka_Mw1.Temp.sbVorlauf&k=Hka_Mw1.Aktor.fUPKuehlung&k=Hka_Mw1.usDrehzahl&k=Hka_Mw1.Temp.sAbgasHKA&k=Hka_Mw1.Temp.sAbgasMotor&_rnd=9619
   header
   host       192.168.178.100
   httpheader HTTP/1.0 200 OK

Content-Length: 411

Cache-Control: max-age=4, must-revalidate

Content-Type: text/plain

Date: Fri, 01 Dec 2017 08:45:04 GMT
   httpversion 1.0
   hu_blocking 0
   hu_filecount 80
   hu_port    8080
   hu_portSfx :8080
   ignoreredirects 0
   loglevel   4
   path       /getKey?k=Hka_Bd.ulBetriebssekunden&k=Hka_Bd.ulAnzahlStarts&k=Hka_Mw1.Temp.sKapsel&k=Hka_Mw1.Temp.sbAussen&k=Hka_Mw1.Temp.sbFuehler1&k=Hka_Mw1.Temp.sbFuehler2&k=Hka_Mw1.Temp.sbGen&k=Hka_Mw1.Temp.sbMotor&k=Hka_Mw1.Temp.sbRegler&k=Hka_Mw1.Temp.sbRuecklauf&k=Hka_Mw1.Temp.sbVorlauf&k=Hka_Mw1.Aktor.fUPKuehlung&k=Hka_Mw1.usDrehzahl&k=Hka_Mw1.Temp.sAbgasHKA&k=Hka_Mw1.Temp.sAbgasMotor&_rnd=9619
   protocol   http
   redirects  0
   timeout    2
   url        http://glt:PW@192.168.178.100:8080/getKey?k=Hka_Bd.ulBetriebssekunden&k=Hka_Bd.ulAnzahlStarts&k=Hka_Mw1.Temp.sKapsel&k=Hka_Mw1.Temp.sbAussen&k=Hka_Mw1.Temp.sbFuehler1&k=Hka_Mw1.Temp.sbFuehler2&k=Hka_Mw1.Temp.sbGen&k=Hka_Mw1.Temp.sbMotor&k=Hka_Mw1.Temp.sbRegler&k=Hka_Mw1.Temp.sbRuecklauf&k=Hka_Mw1.Temp.sbVorlauf&k=Hka_Mw1.Aktor.fUPKuehlung&k=Hka_Mw1.usDrehzahl&k=Hka_Mw1.Temp.sAbgasHKA&k=Hka_Mw1.Temp.sAbgasMotor&_rnd=9619
   value      0
   QUEUE:
   READINGS:
     2017-12-01 09:45:04   Aktor.fUPKuehlung false
     2017-12-01 09:45:04   Betriebsstunden 25500.896
     2017-12-01 09:45:04   Starts          14155
     2017-12-01 09:45:04   Temp.sAbgasHKA  69.200
     2017-12-01 09:45:04   Temp.sAbgasMotor 77.200
     2017-12-01 09:45:04   Temp.sKapsel    66.400
     2017-12-01 09:45:04   Temp.sbAussen   2
     2017-12-01 09:45:04   Temp.sbFuehler1 75
     2017-12-01 09:45:04   Temp.sbFuehler2 47
     2017-12-01 09:45:04   Temp.sbGen      72
     2017-12-01 09:45:04   Temp.sbMotor    76
     2017-12-01 09:45:04   Temp.sbRegler   29
     2017-12-01 09:45:04   Temp.sbRuecklauf 38
     2017-12-01 09:45:04   Temp.sbVorlauf  78
     2017-12-01 09:45:04   usDrehzahl      0
   REQUEST:
     data
     header
     ignoreredirects 0
     retryCount 0
     type       update
     url        http://glt:PW@192.168.178.100:8080/getKey?k=Hka_Bd.ulBetriebssekunden&k=Hka_Bd.ulAnzahlStarts&k=Hka_Mw1.Temp.sKapsel&k=Hka_Mw1.Temp.sbAussen&k=Hka_Mw1.Temp.sbFuehler1&k=Hka_Mw1.Temp.sbFuehler2&k=Hka_Mw1.Temp.sbGen&k=Hka_Mw1.Temp.sbMotor&k=Hka_Mw1.Temp.sbRegler&k=Hka_Mw1.Temp.sbRuecklauf&k=Hka_Mw1.Temp.sbVorlauf&k=Hka_Mw1.Aktor.fUPKuehlung&k=Hka_Mw1.usDrehzahl&k=Hka_Mw1.Temp.sAbgasHKA&k=Hka_Mw1.Temp.sAbgasMotor&_rnd=9619
     value      0
   defptr:
     readingBase:
       Aktor.fUPKuehlung reading
       Betriebsstunden reading
       Starts     reading
       Temp.sAbgasHKA reading
       Temp.sAbgasMotor reading
       Temp.sKapsel reading
       Temp.sbAussen reading
       Temp.sbFuehler1 reading
       Temp.sbFuehler2 reading
       Temp.sbGen reading
       Temp.sbMotor reading
       Temp.sbRegler reading
       Temp.sbRuecklauf reading
       Temp.sbVorlauf reading
       usDrehzahl reading
     readingNum:
       Aktor.fUPKuehlung 10
       Betriebsstunden 12
       Starts     13
       Temp.sAbgasHKA 14
       Temp.sAbgasMotor 15
       Temp.sKapsel 1
       Temp.sbAussen 2
       Temp.sbFuehler1 3
       Temp.sbFuehler2 4
       Temp.sbGen 5
       Temp.sbMotor 6
       Temp.sbRegler 7
       Temp.sbRuecklauf 8
       Temp.sbVorlauf 9
       usDrehzahl 11
     readingOutdated:
     requestReadings:
       update:
         Aktor.fUPKuehlung reading 10
         Betriebsstunden reading 12
         Starts     reading 13
         Temp.sAbgasHKA reading 14
         Temp.sAbgasMotor reading 15
         Temp.sKapsel reading 1
         Temp.sbAussen reading 2
         Temp.sbFuehler1 reading 3
         Temp.sbFuehler2 reading 4
         Temp.sbGen reading 5
         Temp.sbMotor reading 6
         Temp.sbRegler reading 7
         Temp.sbRuecklauf reading 8
         Temp.sbVorlauf reading 9
         usDrehzahl reading 11
   sslargs:
Attributes:
   fp_Keller  75,1315,1,Dachs,
   group      Heizung
   reading10Name Aktor.fUPKuehlung
   reading10Regex Hka_Mw1.Aktor.fUPKuehlung=([\w\.]+)
   reading11Name usDrehzahl
   reading11Regex Hka_Mw1.usDrehzahl=([\d\.]+)
   reading12Name Betriebsstunden
   reading12Regex Hka_Bd.ulBetriebssekunden=([\d\.]+)
   reading13Name Starts
   reading13Regex Hka_Bd.ulAnzahlStarts=([\d\.]+)
   reading14Name Temp.sAbgasHKA
   reading14Regex Hka_Mw1.Temp.sAbgasHKA=([\d\.]+)
   reading15Name Temp.sAbgasMotor
   reading15Regex Hka_Mw1.Temp.sAbgasMotor=([\d\.]+)
   reading1Name Temp.sKapsel
   reading1Regex Hka_Mw1.Temp.sKapsel=([\d\.]+)
   reading2Name Temp.sbAussen
   reading2Regex Hka_Mw1.Temp.sbAussen=(-?[\d\.]+)
   reading3Name Temp.sbFuehler1
   reading3Regex Hka_Mw1.Temp.sbFuehler1=([\d\.]+)
   reading4Name Temp.sbFuehler2
   reading4Regex Hka_Mw1.Temp.sbFuehler2=([\d\.]+)
   reading5Name Temp.sbGen
   reading5Regex Hka_Mw1.Temp.sbGen=([\d\.]+)
   reading6Name Temp.sbMotor
   reading6Regex Hka_Mw1.Temp.sbMotor=([\d\.]+)
   reading7Name Temp.sbRegler
   reading7Regex Hka_Mw1.Temp.sbRegler=([\d\.]+)
   reading8Name Temp.sbRuecklauf
   reading8Regex Hka_Mw1.Temp.sbRuecklauf=([\d\.]+)
   reading9Name Temp.sbVorlauf
   reading9Regex Hka_Mw1.Temp.sbVorlauf=([\d\.]+)
   room       Heizkeller
   stateFormat { sprintf("Status: %s", getBooleanStateOpenClose(ReadingsVal($name,"Aktor.fUPKuehlung",0)))}
   userattr   reading10Name reading10Regex reading11Name reading11Regex reading12Name reading12Regex reading13Name reading13Regex reading14Name reading14Regex reading15Name reading15Regex reading1Name reading1Regex reading2Name reading2Regex reading3Name reading3Regex reading4Name reading4Regex reading5Name reading5Regex reading6Name reading6Regex reading7Name reading7Regex reading8Name reading8Regex reading9Name reading9Regex


Frage:Wie hast du das aktuell nicht funktionierende notify erzeugt?
Antwort: Ich habe es auf die Änderung von Dachs:Temp.sbAussen definiert.

Frage:Was geht dabei nicht?
Antwort:Es wird anscheinend bei einer Änderung nicht ausgelöst.

MadMax-FHEM

#3
Dann hättest du ja auch ein list des aktuell nicht funktionierenden Notifys posten können... ;)
...dann hätte man evtl. sehen können warum es nicht auslöst.

Aber es geht auch anders:

Wenn du den EventMonitor öffnest und dann bei Filter z.B. Dachs.* einträgst und wartest bis der gewünschte Event (also beispielsweise Reading Temp.sbAussen) kommt einfach die Zeile markieren und auf Define/Modify und dann das Notify anlegen lassen...

Eine Anmerkung: der '.' (also Punkt) hat eine besondere Bedeutung in RegEx (und das ist was beim Notify passen muss, damit es triggert) und sollte in Namen vermieden werden...

Um zu testen, ob das Notify auch ausgelöst wird, mache ich immer erst mal eine Logausgabe, also beispielsweise: define myNotify notiy Dachs:Temp.sbAussen.* {Log3(undef,3,"Testnachricht");}

Wenn das Notify dann triggert kannst du dann dort direkt mittels perl "Berechnungen" anstellen: define myNotify notiy Dachs:Temp.sbAussen.* { PERLCODE }
oder eine Sub in myUtils aufrufen: define myNotify notiy Dachs:Temp.sbAussen.* { SUBAUFRUF()}

https://wiki.fhem.de/wiki/99_myUtils_anlegen

per fhem "FHEMAUFRUF" kannst du dann von Perl heraus auch wieder fhem Kommandos absetzen:

define myNotify notiy Dachs:Temp.sbAussen.* { PERLCODE; fhem "set DisUndDas Wert"}


Das alles nur Beispiele, ungetestet und nur für's Verständnis schon alleine deswegen weil ich nicht weiß wie der Event genau aussieht...
...und was du dann setzen willst...

Wenn du nicht weiter kommst kann auch ein geposteter Auszug aus dem EventMonitor helfen...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)