Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Anzeige des Öffnungszustands des Ventils #10

Open
benno666 opened this issue Apr 23, 2018 · 1 comment
Open

Anzeige des Öffnungszustands des Ventils #10

benno666 opened this issue Apr 23, 2018 · 1 comment
Labels
enhancement New feature or request

Comments

@benno666
Copy link

Hey Seyd,

schon mal vielen Dank für deine Mühen mit dem Plugin! Das Ganze läuft ziemlich einwandfrei bei mir, bloß ist mir aufgefallen, dass der CurrentHeatingCoolingState nicht ganz korrekt ausgelesen wird.

Wenn ich mich richtig erinnere, dann kann man in HomeKit zwar den TargetHeatingCoolingState zwischen 0, 1, 2 und 3 wählen (OFF, HEAT, COOL, AUTO), der CurrentHeatingCoolingState kennt jedoch nur 0, 1 und 2, also kein AUTO. Daher erscheint das Icon in der Home-App schwarz und zeigt nicht den tatsächlichen Zustand an.

Ich habe die Thermostat.js ein wenig angepasst und sie wie folgt geändert:

1.) Da ein Thermostat von Tado nicht kühlen kann, habe ich die validValues der Characteristic.TargetHeatingCoolingState auf 0, 1 und 3 beschränkt. Das wird in der Home-App auch übernommen und es erscheint nur noch Aus, Heizen und Automatisch.

2.) Das Thermostat kann den tatsächlichen Ventilzustand anzeigen, so dass der CurrentHeatingCoolingState korrekt (wie beispielsweise bei Verwendung über die Tado-Bridge) dargestellt wird. Folgende Fälle werden dann im Symbol der Home-App unterschieden:

grau: Heizung aus
orange: Heizung an (aktiv), Ventil offen -> Ist-Temperatur unter Zieltemperatur (HEAT)
grün: Heizung an (inaktiv), Ventil geschlossen -> Zieltemperatur erreicht (OFF)

3.) Hiervon unabhängig wird der targetstate ausgelesen, der (analog zu 1.) nur noch die Zustände OFF, HEAT und AUTO kennt.

So sieht meine self.getContent.... dann unter anderem aus:

            if (result.sensorDataPoints != undefined) {

                self.humidity = result.sensorDataPoints.humidity.percentage;

                // Getting current state

                if (result.activityDataPoints.heatingPower.percentage == 0) {
                  self.currentstate = 0; // OFF
                } else {
                  self.currentstate = 1; // HEAT
                }

                // Getting target state and target temperature

                if (result.setting.power == "OFF") {
                  self.targetstate = 0; // OFF

                  if (self.tempUnit == "CELSIUS") {
                      self.currenttemp = result.sensorDataPoints.insideTemperature.celsius;
                      self.targettemp = result.sensorDataPoints.insideTemperature.celsius;
                  } else {
                      self.currenttemp = result.sensorDataPoints.insideTemperature.fahrenheit;
                      self.targettemp = result.sensorDataPoints.insideTemperature.fahrenheit;
                  }

                } else {
                  if (result.overlayType == null) {
                    self.targetstate = 3; // AUTO
                  } else {
                    self.targetstate = 1; // MANUAL / HEAT
                  }

                  if (self.tempUnit == "CELSIUS") {
                      self.currenttemp = result.sensorDataPoints.insideTemperature.celsius;
                      self.targettemp = result.setting.temperature.celsius;
                  } else {
                      self.currenttemp = result.sensorDataPoints.insideTemperature.fahrenheit;
                      self.targettemp = result.setting.temperature.fahrenheit;
                  }
                }

Was hältst du davon?

Beste Grüße,
Benno

@seydx
Copy link
Owner

seydx commented Apr 24, 2018

Hallo Benno,

Danke dir für die Mühe, ich werde es mir mal anschauen wenn ich etwas mehr Zeit habe und werde es dann in der neuen Version evtl mit aufnehmen, für die neue Version habe ich vor das Plugin umzuschreiben auf 'dynamic platform'

Lg

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants