Z-Wave Thermostat Eurotronic Spirit

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

Vorheriges Thema - Nächstes Thema

Puccini

Hmm.

Ich habe für mein ZWAVE-Modul ("ZWAVE1") und für das Spirit das Attribut "verbose" auf 5 gesetzt.

Das kommt jetzt im Log bei dem Aufruf:
2019.04.25 21:51:49.663 4 : ZWDongle_Read ZWAVE1: rcvd 0004000303260300bf00 (request APPLICATION_COMMAND_HANDLER), sending ACK
2019.04.25 21:51:49.664 5 : SW: 06
2019.04.25 21:51:49.666 5 : ZWAVE1: dispatch 0004000303260300bf00
2019.04.25 21:51:49.666 4 : CMD:APPLICATION_COMMAND_HANDLER ID:03 ARG:03260300bf00 CB:00
2019-04-25 21:51:49.674 readingsGroup Heizungswerte Heizung_Kind1.reportedState: off
2019-04-25 21:51:49.703 ZWave Heizung_Kind1 off
2019-04-25 21:51:49.703 ZWave Heizung_Kind1 reportedState: off


Viel schlauer macht mich das leider nicht :/

Was ist dieses SW 06?

krikan

ZitatSpirit das Attribut "verbose" auf 5
ZWDongle hätte genügt.

Ob zeitlich vor dem geposteten Logauszug noch eine ZWave-Nachricht steht, wäre interessant.

Falls nicht, ist dies eine spontane SWITCH_MULTILEVEL-Nachricht. Die lässt sich unter anderem durch
     2018-12-22 09:11:11   configValveOpeningPercentageReport 5
beeinflußen. Warum das dauernd gesendet wird, obwohl keine Änderung vorliegt, erschließt sich mir aber gerade leider auch nicht. Testweise könntest Du mal auf 0 setzen. Schaue das am Wochenende bei mir auch noch mal nach, wie mein Spirit reagiert.

ZitatWas ist dieses SW 06?
Nur ein vorgeschriebene Bestätigung an den Controller nach ZWDongle_Read.

Gruß, Christian

krikan

Wochenende vorgezogen und getestet:

Spirit ist bei mir im Modus "heating" bei derzeit voller Ventilöffnung und  configValveOpeningPercentageReport steht auf 10 -> alle 2 Minuten wird "reportedState: dim 99" geliefert, obwohl keine Änderung erkennbar.

Nach Setzen von configValveOpeningPercentageReport auf 0 kommen entsprechend Doku keine reportedState-Meldungen mehr.

Ob Hochsetzen von configValveOpeningPercentageReport (erwartungsgemäß) zu weniger spontanen Nachrichten führt, habe ich nicht probiert.

Puccini

Danke fürs testen und rausfinden.
Hmm. Dann werd ich das wieder auf 0 stellen.

Bei mir wird bei 5 auch alle 2 Min der Status gemeldet...
Ob das so muss / soll ist fraglich. Könnte man höchstens beim Hersteller noch anfragen.

derthom

Moin zusammen,

ichhabe mir auch die Spirits zugelegt, ich benötige nicht viele schaltzeiten, also dachte ich weekdaytimer


define HZ_WZ2_MO_FR WeekdayTimer HZ_WZ2 Mo-Fr|04:30|tmHeating Mo-Fr|06:00|tmEnergySaveHeating  Mo-Fr|15:30|tmHeating Mo-Fr|19:30|tmEnergySaveHeating

in den internals sieht das auch korrekt aus, funktioniert aber leider nicht zuverlässig , hat jemand eine Idee ?

Puccini

@derthom
Hast du auch das CommandTemplate angepasst?
Ist ein Attribut und sollte wie folgt aussehen für das Spirit:

commandTemplate
set $NAME $EVENT

derthom

#141
HI Puccini,

danke für die schnelle Antwort, werds testen

jezt funktionierts - besten dank :-)

HD97

Hi in diesem Thread wurde wohl lange nichts mehr geschrieben, aber ich habe die Raumtemperatur nach folgender Routine in meine Thermostate eingespeist.
Zitat von: mdescher am 06 November 2017, 09:17:05
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.

Das funktioniert auch nach Beobachtung der Ventilstellwerte. Mein ZwaveModul hingegen erzeugt dabei jedes Mal ein neues Reading mit wie z.B. folgenden Werten:
Reading                         Wert
raw_13070631050122000f 011301
raw_130706310501220118253a 011301


ersteres bei manuellem Absetzen des RAW-Befehles und letzteres über die Funktion mit den beiden angefügten Parametern.

Was mache ich hier falsch bzw. wie kann man das abstellen?
Ich denke mit der Zeit würden das etwas viele werden.

Welche Daten braucht ihr noch?
Und schon einmal Vielen Dank für eure Hilfe!

rudolfkoenig

ZitatWas mache ich hier falsch bzw. wie kann man das abstellen?
Die gezeigte Loesung ist ein Hack, da es eine Temperatur mit der Klasse MULTILEVEL_SENSOR sendet, und dass ein Controller (FHEM) sowas sendet ist mW nicht vorgesehen.
"get ZWDongle raw xxx" erzeugt mit Absicht ein Reading mit dem Namen "raw_xxx", damit man das Ergebnis der Abfrage weiss.
Ein workaround waere ab und zu (per at?) "deletereading IODev raw_.*" auszufuehren.

Den Hack koennen wir mAn mit dem folgenden Patch mit weniger Nebeneffekten realisieren:===================================================================
--- 10_ZWave.pm    (revision 20599)
+++ 10_ZWave.pm    (working copy)
@@ -654,11 +654,19 @@
                            "010f-0203-1000" => "Fibaro_FGS223",
                            "0108-0004-000a" => "Philio_PSE02", # DLink DCH-Z510
                            "013c-0004-000a" => "Philio_PSE02", # Zipato Siren
+                           "0148-0003-0001" => "EUROtronic_Spirit",
+                           "0148-0003-0002" => "EUROtronic_Spirit",
+                           "0148-0003-0003" => "EUROtronic_Spirit",
                            "0115-0100-0102" => "ZME_KFOB" );

# Patching certain devices.
our %zwave_deviceSpecial;
+sub ZWave_MultilevelSensorTemp($) { return ("",sprintf("0122%04x",$_[0]*10)) }
+
%zwave_deviceSpecial = (
+   EUROtronic_Spirit => {
+     SENSOR_MULTILEVEL => {
+      set => { externalTemp  =>'ZWave_MultilevelSensorTemp(%s)' } } },
    devolo_Siren => {
      ALARM => {
       set => { alarmSmokeOn    =>"050000000001010000",
Damit wird nur beim Spirit ein externalTemp Befehl zur Verfuegung gestellt.
Achtung: ich habe kein Spirit, konnte den Patch also nicht testen.


HD97

Hallo danke für die schnelle Antwort! Ok macht das macht Sinn und das löschen der Readings habe ich ebenfalls schon so implementiert.
Ich dachte nur eventuell hätte ich da was falsch gemacht.

Wenn du mir das mit dem Patch kurz erläutern kannst, könnte ich das testen. Ich denke, das wäre sicher für mehr Leute interessant,  auch wenn das mit dem regelmäßigen Löschen der Readings natürlich auch funktioniert.

HD97

Hallo zusammen,

ich habe das überfällige Update meines FHEM gemacht und nun sind einige setBefehle, die ich gerne verwenden würde, verschwunden und auch nicht mehr in den Classes aufgeführt. Darunter z.B. configMeasuredTemperatureOffset, configMeasuredTemperatureReport. Muss ich diese Einstellungen jetzt über configByte oder so machen?

Danke auch für die Hilfe hierbei.


krikan

Hallo!
Zitat
Muss ich diese Einstellungen jetzt über configByte oder so machen?
Nein.
Führe bitte einmal folgenden Befehl aus:
get <device> model

Details:
https://forum.fhem.de/index.php/topic,102912.0.html

Gruß, Christian

HD97

Zitat von: krikan am 08 Dezember 2019, 07:59:07
Hallo!Nein.
Führe bitte einmal folgenden Befehl aus:
get <device> model

Details:
https://forum.fhem.de/index.php/topic,102912.0.html

Gruß, Christian

Lieben Dank! Das war des Problems Lösung.

Roderich

Hallo,
ich habe 20 Spirits in meinem Haus angebunden. Da ich das Haus stufenweise umgerüstet habe, habe ich unterschiedliche Firmwarestände in den Ventilen.
Einige Ventile arbeiten nicht richtig (Lib 3 Prot 4.61 App 0.15 HW 49 FWCounter 1 FW 0.9).

Gibt es die Möglichkeit eines Firmwareupdates?

Die anderen Ventile haben die FW Lib 3 Prot 4.61 App 0.16 HW 49 FWCounter 1 FW 0.10 und Lib 3 Prot 4.61 App 0.16 HW 49 FWCounter 1 FW 0.2

Wardancer

Hi,

Also mir wäre noch kein verfügbares Firmwareupdate untergekommen. Finde es aber spannend, das du tatsächlich Termostate mit einer FW 0.2 hast. Was funktioniert deiner Meinung nach, denn nicht richtig, bei den Thermostaten mit App 0.15?