[gelöst-Danke]Wie soll ich das am saubersten lösen

Begonnen von Helmi55, 01 Mai 2017, 17:43:25

Vorheriges Thema - Nächstes Thema

Helmi55

Hallo sorry für die späte Rückmeldung war unterwegs.

So wie in meinem Anfangsthread beschrieben – möchte ich folgendes erreichen
Hat v ergangenes Jahr funktioniert – nur wollte ich es verfeinern.
Sprich = ich hatte das Problem, dass ausserhalb meiner ,,normalen" Pumpenzeit
sich die Solar (je nach Sonnenstärke) dazugeschaltet hat und es einen Konflikt um 11 Uhr gab.
Da habe ich nicht mitgedacht – Problem wurde durch Per mit 10:54 gelöst!!
Dann kam von euch der Vorschlag alles in ein DOIF zu packen...  Gut

@Per ja ich bin auf 8:30-10:54 umgestiegen – weil 8:30 – 19 Uhr meine Hauptzeit ist.
Wobei die Filterpumpe fix von 11-19 Uhr läuft.
Hier nochmals was ich erreichen möchte

PoolPumpe (Filterpumpe) soll fix von 11-19 Uhr laufen
Während dieser Zeit soll sich die Solarpumpe dazuschalten wenn die Differenz zwischen
PoolSensor und Solarsensor größer Hysterese (ja noch immer falscher Name) ist
und wenn die Temperatur wieder unter diese Differenz fällt – plus wait von 300 –
Die Solarpumpe wieder ausschalten. Poolpumpe soll bei 19 uhr weiterlaufen.
Jetzt kann es aber vorkommen, dass Ende Mai bis ca. Ende August schon die Sonne ab 8:30
auf das Garagendach knallt und daher die Solar und dann natürlich auch die
PoolPumpe sich zwischen 8:30 und 10:54 – mit wait 300 – einschalten müssen

Das waren mein TimerDoif und meine Solar1 und 2.

Wie gesagt stehe ich da aber auf Kriegsfuß das in EIN DOIF zu gießen

Danke für eure Unterstützung

Gruß
Helmut
System1 fhem 6.1 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.1 auf RPi 4B mit 4GB (Bullseye) mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/

Per

Zitat von: Helmi55 am 12 Mai 2017, 18:49:23Hallo sorry für die späte Rückmeldung
Häh?

Schau dir mal folgende Variante an:
define Ti_PoolPumpe DOIF (([11:00-19:00] or [SolarDiff]>[Hysterese:state]) and [PoolMaster] eq "on")
(set PoolPumpe on)
DOELSE
(set PoolPumpe off)
attr Ti_PoolPumpe do always

define di_Solar1 DOIF ([PoolPumpe] eq "on" and ([SolarDiff]>[Hysterese:state]))
(set SolarPumpe on)
DOELSE
(set SolarPumpe off)

attr di_Solar1 wait 0:240

"Nachteil": du hast nur eine einstellbare Verzögerung statt zwei. Aber ob das relevante Auswirkungen hat, bezweifle ich.
Und ja, es sind zwei statt einem DOIF, aber zumindest nicht mehr drei. Und sie sind überhaupt nicht komplex, also gut zum Verstehen-Lernen.
Um das in ein DOIF zu "pressen", müsstes du viel mehr Fallunterscheidungen reinbringen oder mit Zusatzvariablen arbeiten. Oder noch mehr trixen, was es für dich auch nicht einfacher macht.
Wenn du einen zweiten "Hysterese" ;) Wert einführst, kannst du sogar einen Überhitzungsschutz einbauen:
([PoolMaster] eq "on" or [SolarDiff]>[Hitzeschutztemperatur]

Helmi55

Hallo Per - guten Morgen
also habe das gestern-wie von dir geschrieben - umgesetzt.
Lief den ganzen Tag ohne Probleme. Aber nach 19 Uhr lief der PoolPumpen Schalter amok

2017.05.13 19:01:04 3: CUL_HM set PoolPumpe off
2017.05.13 19:01:43 3: CUL_HM set PoolPumpe off
2017.05.13 19:02:04 3: CUL_HM set PoolPumpe off
2017.05.13 19:02:44 3: CUL_HM set PoolPumpe off
2017.05.13 19:03:04 3: CUL_HM set PoolPumpe off
2017.05.13 19:03:44 3: CUL_HM set PoolPumpe off
2017.05.13 19:04:05 3: CUL_HM set PoolPumpe off
2017.05.13 19:04:45 3: CUL_HM set PoolPumpe off
2017.05.13 19:05:05 3: CUL_HM set PoolPumpe off
2017.05.13 19:05:45 3: CUL_HM set PoolPumpe off
2017.05.13 19:06:06 3: CUL_HM set PoolPumpe off
2017.05.13 19:06:45 3: CUL_HM set PoolPumpe off
2017.05.13 19:07:06 3: CUL_HM set PoolPumpe off
2017.05.13 19:07:46 3: CUL_HM set PoolPumpe off
2017.05.13 19:08:06 3: CUL_HM set PoolPumpe off
2017.05.13 19:08:46 3: CUL_HM set PoolPumpe off
2017.05.13 19:09:07 3: CUL_HM set PoolPumpe off
2017.05.13 19:09:47 3: CUL_HM set PoolPumpe off
2017.05.13 19:10:07 3: CUL_HM set PoolPumpe off
2017.05.13 19:10:47 3: CUL_HM set PoolPumpe off
2017.05.13 19:11:07 3: CUL_HM set PoolPumpe off
2017.05.13 19:11:49 3: CUL_HM set PoolPumpe off
2017.05.13 19:12:07 3: CUL_HM set PoolPumpe off


Als ich es um 22 Uhr bemerkte habe ich alles deaktiviert

Hängt das mit dem do always zusammen?

Zur Zeit laufen wieder meine alten 3

Gruß
Helmut
System1 fhem 6.1 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.1 auf RPi 4B mit 4GB (Bullseye) mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/

Per

Zitat von: Helmi55 am 14 Mai 2017, 10:53:30Hängt das mit dem do always zusammen?
Wahrscheinlich. do always brauchst du eigentlich auch nicht.
Schau mal in dein EventLog, ob zur gleichen Zeit SolarDiff gemeldet hat.

Helmi55

Guten Morgen
ja, ohne do always lief die Anlage perfekt durch.
Ich glaube ich muss meine Denkansätze ändern wenn ich mir deine DOIFs ansehe.
Jetzt noch eine Frage: im Solar1 DOIF ist kein [PoolMaster] vorhanden? Weil doe PoolPumpe nur "on" sein kann wenn der [PoolMaster] on ist?
Außer sie wird händisch geschaltet?
Danke und schönen Tag noch
Gruß
Helmut
System1 fhem 6.1 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.1 auf RPi 4B mit 4GB (Bullseye) mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/

Per

Zitat von: Per am 04 Mai 2017, 17:15:07Da aber PoolPumpe = ([11:00-19:00] and [PoolMaster] eq "on"), kannst du im zweiten DOIF direkt nach ([PoolPumpe] eq "on" and ([SolarDiff]>[Hysterese:state])) fragen.

Wenn du die Poolpumpe manuell übersteuern willst, ohne dass die Solarpumpe anläuft, musst du das entweder abfangen (z.B. mit setstate) oder mit der kompletten Abfrage doppelt. Oder div. anderen Möglichkeiten...