Hallo Zusammen,
ich habe ein Projekt und stehe vor der Großen frage wie ich das umsetzen kann.
Ich habe eine Hybrid Heizanlage mit einer Wärmepumpe Vitocal und einer Ölheizung Wolf TOB18
Die Vitocal hat vitoconnect und ist bereits in Fhem integriert
Die Wolf Anlage hat ein ISM8I und auch bereits in Fhem integriert.
Folgende Herausforderung:
Die Vitocal steuert den Vorlauf und schaltet die Wolf dazu wenn die Vorlauftemperatur nicht mehr erreichbar ist bzw. die Wärmepumpe das nicht mehr packt.
Jetzt möchte ich die Vorlauftemperatur an die Wolf Anlage vermitteln da diese nur mit einem Festwert über einen Pufferspeicher arbeitet, aber dadurch das Takten anfängt weil sie eben auch Warmwasser macht und immer mit einer hohen Vorlauftemperatur dazugeschaltet wird. Es funktioniert, aber halt nicht so optimal und das kann man doch sicher verbessern.
Ziel:
Mittels Z-Wave Quibino den 0-10V Wert an die Wolf Anlage geben da der Wert nicht via ISM8I genommen wird.
Er will immer die 0-10V haben. 0-2V = aus / 2V-10V Vorgabe Kesseltemperatur.
Nun ist eben die Frage wie gehe ich das am besten an. Notify, Dummy oder DOIF?
Und wie rechne ich am besten den Wert aus?
{Ergänzt} Gemeint ist das Attribut.
Vielen Dank schon mal.
Gruß Mr
Hi,
ich habe es jetzt sehr oft gelesen und nicht verstanden.
Du willst sowas?:
Symbolcode
define weitergabe notify Z-Wave.Quibino:.* set Wolf.Anlage {($EVENT*Korrekturfaktor)}
???
Gruß Otto
Hi,
ja sowas in der Art.
Also die Vitocal bringt mir eine Vorlauftemperatur. z.B. 38 Grad.
Die Wolf reagiert auf die 0-10V entsprechende der vorgegeben min Max Wert (Min=30 C° / Max=68C°)
Bedeutet ich habe einen Sollwertvorgabe von 30 Grad umgerechnet muss ich also 8 C° an den Quibino geben.
Würde also bedeuten:
68-30=38 (Das muss man dann manuell festlegen)
10/38*8=2,105 V
>Hier liegt aber das Problem. Die Wolf reagiert jetzt erst ab 2V. Also würde man wenn man einen Wert setzt einen Offset brauchen.
Will ich jetzt aber 68 C° vorgeben wäre es theoretisch 10V mit einem Offset aber dann 12V.
Lassen wir das fettgedruckte jetzt aber erstmal weg. Wie rechne ich das > 10/38*8=2,105 V
Zitat von: mrpointblue am 29 März 2021, 15:48:05
10/38*8=2,105 V
{10/38*8}
;D ;D ;D
Wahrscheinlich ist es am Elegantesten Du packst Deine Formel in ein UserReadings (im Z-Wave Quibino)und rechnest dort aus was Du übergeben musst.
Dann machst Du das notify einfacher
define weitergabe notify Z-Wave.Quibino:uebergabewert:.* set Wolf.Anlage $EVTPART1
Ist die Formel linear? Das wäre dein Faktor, Du hast quasi 8 Volt Hub zum regeln und musst immer 2 auf addieren
{(68-30)/8}
Ich habe noch nicht ganz verstanden wer was liefert - was gebraucht wird habe ich verstanden > Wolf 2-10 Volt entspricht 30-68°
Gruß Otto
Hi Otto,
also Vitocal200 schickt Vorlauf
heating.circuits.1.temperature.value 36.1
Wolf=MyWolf empfängt dann via Quibino, der ist Quasi in der Anschaffung wenn ich weis das es geht.
Was ich noch nicht verstanden habe ist was der unterschied zwischen $EVTPART und $EVENT ist.
Wie würde ein RegexPart aussehen und wie schicke ich den Wert dann an den Quibino
Schau mal im Wiki, da hab ich mal versucht das quasi bildlich darzustellen:
https://wiki.fhem.de/wiki/Notify#Syntax
Versteht man das?
Nochmal zur Funktion:
Vitocal200 liefert 36.1 daraus soll (was?) / 3.28 ? an den quibino gesendet werden? Meine ungekürzte Formel (((36.1-30)/((68-30)/8))+2)
RegExp fürs notify kann ich Dir sagen wenn Du ein list von dem vitocall machst oder Du nimmst einfach den Eventmonitor und baust Dir die Grundlage damit (steht in meinem Link oben)
Hi,
schonmal danke.
Ich teste mal ein bisschen rum versuch das mal mit anderen Werten zu bauen. Wenn das klappt bestelle ich den Quibino.
Ich hoffe nur ich bekomme die Formel im Notify hin.
Ich weis es ist etwas kompliziert beschrieben.
Die Wolf wird immer mit dem umgerechnet Wert angesteuert so das ich den Quibino Quasi den Sollwert dann über die 10V gebe. So habe ich immer die vorgegebene Vorlauftemperatur.
Ich hoffe das war jetzt verständlich?
Ich würde die Formel nicht im notify machen! Ich würde ein UserReadings mit der Formel in der Vitocal machen!
Im notify machst Du nur noch ein set
Ist denn meine Formel so richtig gedacht? Oder hast Du die fertig? Aber sicher hab ich es nicht verstanden...
(Vorlauf - 30) / ((68 -30) / (10 - 2)) + 2
Hi,
dann versuch ich das mal mit einem Reading.
Ja die Formel müsste so passen, ich werde es testen.
so in der Art: :D
attr vitocal userReadings quibino:heating.circuits.1.temperature.value.* {(ReadingsNum($NAME,'heating.circuits.1.temperature.value',0) - 30) / ((68 -30) / (10 - 2)) + 2}
Hi,
danke für die Hilfe, aktuell sieht es gut aus.
Nur scheint der Wert mit zu vielen Kommastellen nicht sauber angenommen zu werden. Wie begrenze ich die Ausgabe auf 2, 3 oder 4 Stellen?
Gruß Mr
Hi,
in der Art:
{return sprintf "%.2f",12.345678}
Wie das genau in dem set magic aussehen muss, musst Du mal probieren.
Gruß Otto
Hi,
ich habe nun diese Formel
Vorgabe_Brenner {sprintf("%.2f",(ReadingsNum("vitocal200","heating.circuits.1.temperature.value",0)-40)/((68-28)/8+2)}
als User Reading definiert und hat auch bisher funktioniert. Heut habe ich dann nur eine Zahl verändert und erhalten diese Fehlermeldung
Error evaluating MyWolf userReading Vorgabe_Brenner: syntax error at (eval 2303574) line 1, at EOF
Ich stolpere nicht über den Fehler. Kann mir jemand auf die Sprünge helfen?
Ich komm nicht drauf.
kannst Du zeigen wie es aussieht wenn es diesen Fehler wirft? ::)
Hi, ich habs gefunden, richtig ist es so.
Vorgabe_Brenner {sprintf("%.2f",(ReadingsNum("vitocal200","heating.circuits.1.temperature.value",0)-28)/(68-28)/(10-2)+2)}
Da war eine Klammer am falschen Platz, hab ich versehentlich wohl hinzugefügt.
Danke für die Mühe