Z-Wave Thermostat Eurotronic Spirit

Begonnen von mthome, 06 Oktober 2017, 07:24:59

Vorheriges Thema - Nächstes Thema

mdescher

Zitat von: krikan am 19 Oktober 2017, 20:49:16
Den raw-Code solltest Du zur Sicherheit noch um Transmit-Flag TF und eventuell Callback-Id CB ergaenzen, auch wenn es haeufig ohne funktionieren wird:

Alles klar, danke. War nicht sicher ob das nötig ist und da es auch ohne funktioniert hatte... ;-)

mdescher

Zitat von: mdescher am 18 Oktober 2017, 09:07:45
Und noch eine andere Frage an alle die das Teil haben. Mit "get {device} smStatus" bekomme ich die Temoeratur in "temperature" und mit "get {device} swmStatus" die Ventilstellung in "reportedState". Habe ich das richtig verstanden? Theoretisch sollte der Spirit beides (wenn config byte 5 bzw. 6 richtig gesetzt sind) auch automatiasch reporten. Sollten diese automatischen Reports dann auch in den beiden Readings landen? Ich habe zumindest den Eindruck, dass das nicht funktioniert. Hat da jemand die gleiche oder andere Erfahrungen gemacht?

Falls noch jemand den Eindruck hat, dass der automatische Report der Temperatur nicht funktioniert: der Default ist bei Änderungen von 0,5°C zu reporten. Obwohl sich die Temperatur nachweislich (explizite Abfrage) um mehr als 0,5°C geändert hatte, sah ich keinen Report. Ich hatte dann mal mit den Einstellungen gespielt und bei der Vorgabe bei 0,1°C zu reporten bekam ich dann auch Meldungen vom Thermostat. Da mir 0,1°C als Report-Differenz aber unnötig gering erschien hatte ich danach wieder auf einen höheren Wert gestellt und es funktionierte wieder nicht. Ich habe jetzt an anderer Stelle gelesen, dass sich diese Abweichung nicht auf die Differenz zwischen letztem Report und aktueller Messung, sondern auf die Differenz zwischen zwei aufeinanderfolgenden Messungen bezieht. Ich weiß zwar nicht wie oft der Spirit intern Messungen vornimmt, aber das wäre zumindest eine gute Erklärung dafür, dass es in der Praxis quasi nur für sehr kleine Werte überhaupt funktioniert.

Gruß
Michael

mthome

Hallo,

ich habe noch eine Frage: Nach dem letzten Update wurde in openzwave_manufacturer_specific.xml folgender Eintrag für das Spirit vorgenommen:

<Product type="0003" id="0001" name="EUR_SPIRIT Wall Radiator Thermostat Valve Control" forumNr="77598"/>

Was bedeutet denn das forumNr="77598"? Damit wird doch dann der Eintrag in der openzwave_deviceconfig.xml.gz nicht mehr gefunden. Oder verstehe ich wieder was nicht?

Meine openzwave_deviceconfig.xml.gz wurde leider auch wieder überschrieben. Kann ich das verhindern?

Danke,
Michael

mdescher

#33
Die "offizielle" openzwave_deviceconfig.xml.gz aus FHEM enthält bei mir derzeit auch nur "eurotronic/eur_cometz.xml" und "eurotronic/eur_stellaz.xml", d.h. in sofern ist der Eintrag in der openzwave_manufacturer_specific.xml "korrekt". Ich habe die Konfigurationen bei mir per generischem "set configByte x y" gesetzt (macht man ja im besten Fall genau einmal).

Gruß
Michael

rudolfkoenig

ZitatMeine openzwave_deviceconfig.xml.gz wurde leider auch wieder überschrieben. Kann ich das verhindern?
Siehe "attr global exclude_from_update".

syslog

Hi,

was spricht dagegen, den Patch einzupflegen, den ich in diesem Thread gepostet habe?

lg,

rudolfkoenig

Dass wir die Daten von openzwave bisher ohne Aenderungen uebernehmen ->  dein Patch muesste bei openzwave eingereicht werden.

Alternativ muessten wir anfangen FHEM-spezifische Modifikationen zu pflegen, und diese mit denen von openzwave zusammenfuehren, und dabei jeweils die Konflikte loesen.

mahowi

Gibt es dafür nicht auch noch die fhem_zwave_deviceconfig.xml.gz, um unabhängig von openzwave Konfigurationen zu pflegen?
CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee

rudolfkoenig

Danke fuer den Hinweis, das habe ich schon verdraengt.
Dann muss krikan dazu was sagen :)

krikan

Zitat von: mthome am 23 Oktober 2017, 10:26:09
Was bedeutet denn das forumNr="77598"?
Kommentar für mich, woher Infos stammen. Funktional irrelevant.

Zitatwas spricht dagegen, den Patch einzupflegen, den ich in diesem Thread gepostet habe?
Meine Zeit iVm mit dem Kommentar zum Patch, der auf Nacharbeit für mich hindeutet:
Zitatich hänge mal einen Patch an für openzwave_deviceconfig.xml.gz (sollte alle Optionen abdecken, bis auf den Temp-Offset, da versteh ich das Format nicht).

Wenn gewünscht, kann ich das auch so einchecken, will dann aber hinterher keine Beschwerden lesen.  :)


mdescher

Zitat von: krikan am 23 Oktober 2017, 12:46:10
Wenn gewünscht, kann ich das auch so einchecken, will dann aber hinterher keine Beschwerden lesen.  :)

Vielleicht könnte man die Sache mit dem tempOffset noch klären. Aus meiner Sicht ist das laut Spirit-Doku relativ eindeutig:

0xCE-0x32 Offsets the measured temperature by -5,0°C – (+)5,0°C
0x80 External temperature sensor will be used for regulation.
default: 0x00 0,0°C Offset


Also -50 bis +50 (entspricht 0xCE bis 0x32) als -5.0 bis 5.0 Grad
Und 0x80 = Temperatur wird von extern via Multilevel Sensor Report "Temperature" gemeldet und gar keine intern gemessene Temperatur verwendet.

krikan

Habe jetzt die XML selbst ergänzt und eingecheckt. Morgen ab 8 Uhr per update oder ab sofort aus dem svn.
Zur Aktivierung ist der Abruf "get < device> model" ein Mal erforderlich.
Test ist mir mangels Gerät nicht möglich.

tabasco123

Zitat von: mdescher am 23 Oktober 2017, 12:56:40
Vielleicht könnte man die Sache mit dem tempOffset noch klären. Aus meiner Sicht ist das laut Spirit-Doku relativ eindeutig:
...
Also -50 bis +50 (entspricht 0xCE bis 0x32) als -5.0 bis 5.0 Grad
Und 0x80 = Temperatur wird von extern via Multilevel Sensor Report "Temperature" gemeldet und gar keine intern gemessene Temperatur verwendet.

Der letzte Punkt würde mich interessieren: Wir haben in unserer 50-Parteien-Wohnanlage eine relativ hohe Vorlauf-Temperatur, d.h. der interne Messfühler misst immer mind. 26 Grad, sodass sich hiermit keine wirklich tolle Steuerung umsetzen lässt. Wie nutze ich diesen "Multilevel Sensor Report "? Und falls jemand noch ein (am besten batteriebetriebenes) Z-Wave Plus Raumthermostat (evtl. sogar mit direkter Einstell-Option am Raumthermostat) kennt, das dazu passt, wäre ich für Tipps dankbar.
(Enocean wäre auch OK, der im Raum vorhandene "Fibaro Door/Window Sensor 2" meldet seine Temperatur nur sehr sporadisch, und entfällt daher wohl...)

Vielen Dank - Julian

mdescher

Zitat von: tabasco123 am 05 November 2017, 21:48:35
Der letzte Punkt würde mich interessieren: Wir haben in unserer 50-Parteien-Wohnanlage eine relativ hohe Vorlauf-Temperatur, d.h. der interne Messfühler misst immer mind. 26 Grad, sodass sich hiermit keine wirklich tolle Steuerung umsetzen lässt. Wie nutze ich diesen "Multilevel Sensor Report "? Und falls

Wie man es programmatisch aus FHEM heraus setzen kann hatte ich weiter oben in diesem Thread mal beschrieben. Keine Garantie, dass es das tut was es soll, aber bisher verhält sich mein Spirit bei Temperaturänderungen plausibel. So richtig sehen was der Spirit bekommt und was er daraus macht kann man leider nicht, d.h. man findet nicht heraus was er denn nun intern verwendet (sprich ob der gesetzte Wert angekommen ist und auch verwendet wird).

Bei einem Z-Wave Temperaturfühler würde ich erwarten, dass eine direkte Assoziation vom Thermometer zum Spirit automatisch das richtige tut.

Da ich LaCrosse Temperatursensoren nutze habe mir in der 99_myUtils.pm eine Funktion gebaut um die Temperatur am Spirit zu setzen:

sub sendRoomTemperatureToSpirit($$) {
my ($device, $temperature) = @_;
if ($device ne "") {
my $ioDev = AttrVal($device, "IODev", "");
my $nodeIdHex = InternalVal($device, "nodeIdHex", "");
if ($ioDev ne "" && $nodeIdHex ne "") {
my $cmdTemp = substr("0000" . sprintf("%x", $temperature * 10), -4);
my $cmdCallbackId = substr("00" . sprintf("%x", int(rand(256))), -2);
my $fhemCommand = "get " . $ioDev . " raw 13" . $nodeIdHex . "0631050122" . $cmdTemp . "25" . $cmdCallbackId;
Log 3, "Heating Control - Room temperature for " . $device . " is " . $temperature . "°C.";
fhem($fhemCommand);
} else {
Log 3, "Heating Control - No ioDev or nodeIdHex found for " . $device . ".";
}
} else {
Log 3, "Heating Control - No device specified.";
}
}


Beispielaufruf für Spirit-Thermostat "EG.wz.THERM" mit einer Temperatur von 21.5 Grad Celsius wäre:

sendRoomTemperatureToSpirit("EG.wz.THERM", "21.5")

Das ganze wird dann über einen Notify bei Temperaturänderungen von mindestens 0.2 Grad gegenüber dem letzten Wert gesteuert.

ChrisFambu

#44
Hallo zusammen,

ich bin neu hier und noch blutiger Anfänger. Insofern vielen Dank vorab, dass ich hier im Forum schon sehr viel lernen konnte.

Ich habe folgendes Problem bzw. Frage:

ich hatte mir ein erstes Eurotronic Spirit gekauft und konnte es mit Hilfe dieses Forums auch einbinden und konfigurieren.
Die  Model-ID ist 0148-0003-0001

Jetzt habe ich ein weiteres Thermostat gekauft und leider funktioniert get model nicht. Ich schätze es liegt daran, dass die Model-ID des neuen Thermostates folgende ist:0148-0003-0003.

Jetzt habe ich zwei Anfänger-Fragen und ich hoffe, Ihr helft mir weiter:

- Wie kann dieses "neue Modell" in die XML eingebunden werden? Ich habe vsl. verstanden, dass das in die "openzwave_manufacturer_specific.xml" eingebunden werden muss, oder? Leider habe ich keine Ahnung, wie das geht.

-was genau unterscheidet die beiden Modelle? Ist das eine höhere Firmware? Besteht die Möglichkeit, das alte Model ebenfalls auf die 0003 zu heben?

Vielen Dank im Voraus für die Hilfe bzw. eine Erklärung und viele Grüße,
Chris