kdietrich / homebridge-devolo

WARNING: this repo is not maintained anymore. Homebridge plugin for Devolo Home Control
16 stars 4 forks source link

Frage zu Heizungs-Thermostat #30

Closed gaudes closed 6 years ago

gaudes commented 6 years ago

Hallo,

ich habe eine Frage zur Einbindung des Heizungsthermostats von Devolo.

Das Gerät wird korrekt angezeigt. Seltsamerweise scheint die Home-App der Meinung zu sein, dass es aktuell 5 Grad hat und auf 5 Grad geheizt werden soll (der Thermostat ist momentan auf 5 Grad eingestellt).

Ich vermute es kommt daher:

[2018-1-31 22:48:24] [Devolo] HBDevoloThermostatValveDevice (hdm:ZWave:DAC9BDF7/12) > getTargetTemperature [2018-1-31 22:48:24] [Devolo] HBDevoloThermostatValveDevice (hdm:ZWave:DAC9BDF7/12) > getCurrentTemperature

Das Plugin ruft anscheinend zwei Werte vom Thermostat ab. In der Devolo-GUI sehe ich aber keine "Aktuelle Temperatur", sondern kann immer nur die "Zieltemperatur" einstellen. Vermutlich liefern beide Abfragen auch die fünf Grad.

Könnte das verbessert bzw. korrigiert werden ? Es irritiert wenn im Status in der App steht "Kinderzimmer 5°. Wird geheizt".

Außerdem hat meine Heizung in der Home-App in den Details folgende Funktionen: Aus, Heizen, Kühlen und Automatisch. Können diese deaktiviert werden ? Bestenfalls macht Aus und Heizen Sinn. Bei Aus würde die Heizung 4° eingestellt bekommen, bei "Heizen" ist es halt fraglich.

Zweite Frage wäre nebenbei: Manche Geräte (z.B. Bewegungsmelder) liefern ja drei Werte. Wäre es möglich über die Konfig nur relevante Werte auszuliefern ? Z.B. bei deviceBlacklist nicht nur Gerätename angeben, sondern Gerätename:CurrentTemperature um die aktuelle Temperatur eines Bewegungsmelders nicht darzustellen ?

Fragen über Fragen :-)

Ansonsten ist es ein cooles Plugin um endlich auch Devolo HomeKit fähig zu bekommen. Sowas würde ich mir jetzt auch noch für Alexa wünschen :-)

Danke und viele Grüße Ralf

kdietrich commented 6 years ago

Hallo Ralf,

ich glaube mich zu erinnern, dass die Devolo HK-Thermostate keine IST-Temperatur ausgeben können, sondern diese nur intern nutzen, um die eingestellte Temperatur zu erreichen. Das ist natürlich doof, da Apple bei einem HK-Thermostat sowohl eine SOLL- als auch eine IST-Temperatur erwartet. Daher habe ich das so umgesetzt. Ich werde mich hier aber noch mal mit Devolo kurzschließen, ob es möglich wäre die momentane Temperatur auszugeben.

Wegen der Stati "Kühlen" und "Automatisch" werde ich schauen. Theoretisch sollte es möglich sein einzelne Komponenten zu filtern (z.B. Temperatur BWM) - hier ist nur fraglich, ob es den Aufwand wert ist. Ich werde das mal prüfen. Momentan liegen solche "unbenutzten" Kacheln bei mir in einem extra Raum.

gaudes commented 6 years ago

Hi Kevin,

nach Update und Debug-Parameter hier das Logfile:

...

kdietrich commented 6 years ago

Hallo @gaudes,

könntest du auf die neueste DEV-Version aktualisieren npm install -g kdietrich/homebridge-devolo --unsafe-perm und noch mal die Debug-Ausgabe senden? Ich habe die Ausgabe ein wenig erweitert und würde dann noch mal drüber schauen. Danke!

gaudes commented 6 years ago

Hi,

hier das neue Log:

[2018-2-28 21:45:23] Loaded plugin: homebridge-devolo
[2018-2-28 21:45:23] Registering platform 'homebridge-devolo.Devolo'
[2018-2-28 21:45:23] ---
[2018-2-28 21:45:23] Loaded plugin: homebridge-samsungtv-control
[2018-2-28 21:45:23] Registering accessory 'homebridge-samsungtv.SamsungTV'
[2018-2-28 21:45:23] ---
[2018-2-28 21:45:23] Loaded config.json with 0 accessories and 1 platforms.
[2018-2-28 21:45:23] ---
[2018-2-28 21:45:23] Loading 1 platforms...
[2018-2-28 21:45:23] [Devolo] Initializing Devolo platform...
[2018-2-28 21:45:23] [Devolo] HBDevoloPlatform > Initializing (Version: 201702221607)
[2018-2-28 21:45:23] [Devolo] HBDevoloPlatform > Configuration:
{ platform: 'Devolo',
  name: 'Devolo',
  host: '192.168.100.107',
  email: 'xxx',
  password: 'xxx',
  uuid: 'xxx',
  gateway: 'xxx',
  passkey: 'xxx',
  deviceBlacklist: [ 'Anwesenheit', 'Bewegungsmelder Flur', 'Haustür' ],
  ruleWhitelist: [ 'Alarmanlage' ],
  deviceDebugging: 'true',
  heartrate: 3 }
[2018-2-28 21:45:23] [Devolo] HBDevoloPlatform > Searching for Devolo Central Unit.
Trying to connect to socket.
Websocket open
[2018-2-28 21:45:23] [Devolo] HBDevoloPlatform > Devolo API Version: 201707161504

...

###### DEVICES START ######

    {
        "UID": "hdm:ZWave:DAC9BDF7/12",
        "properties": {
            "pendingOperations": null,
            "batteryLow": false,
            "zoneId": "hz_3",
            "isSecurelyIncluded": false,
            "zone": "Kinderzimmer",
            "prodTypeID": "0x0005",
            "statisticsUID": "st.hdm:ZWave:DAC9BDF7/12",
            "secureInclusionCode": 0,
            "prodID": "0x0175",
            "status": 2,
            "settingUIDs": [
                "gds.hdm:ZWave:DAC9BDF7/12"
            ],
            "manID": "0x0002",
            "batteryLevel": 41,
            "icon": "icon_1",
            "operationStatus": null,
            "description": null,
            "wrongDevicePaired": false,
            "isOwn": true,
            "deviceModelUID": "devolo.model.Thermostat:Valve",
            "itemName": "Heizung Ben",
            "elementUIDs": [
                "devolo.MultiLevelSwitch:hdm:ZWave:DAC9BDF7/12"
            ]
        },
        "attributes": {},
        "objectClass": [
            "com.devolo.fi.widget.DeviceWidget",
            "com.devolo.fi.widget.BaseWidget",
            "com.devolo.fi.widget.Widget",
            "com.devolo.fi.async.base.AsyncFunctionalItem",
            "com.prosyst.mbs.services.fim.FunctionalItem"
        ],
        "tags": []
    }
]
###### DEVICES END ######
###### SENSORS START ######

    {
        "UID": "devolo.MultiLevelSwitch:hdm:ZWave:DAC9BDF7/12",
        "properties": {
            "targetValue": 4.5,
            "value": 4.5,
            "min": 4,
            "pendingOperations": null,
            "max": 28,
            "guiEnabled": true,
            "operationStatus": null,
            "type": 1,
            "widgetUID": "hdm:ZWave:DAC9BDF7/12",
            "switchType": "temperature",
            "itemId": null
        },
        "attributes": {},
        "objectClass": [
            "com.devolo.fi.control.TemperatureActuatorFI",
            "com.devolo.fi.control.BaseMultiLevelSwitchFI",
            "com.devolo.fi.widget.WidgetElement",
            "com.devolo.fi.async.base.AsyncFunctionalItem",
            "com.prosyst.mbs.services.fim.FunctionalItem"
        ],
        "tags": []
    }
]
###### SENSORS END ######
###### SETTINGS START ######

    {
        "UID": "gds.hdm:ZWave:DAC9BDF7/12",
        "properties": {
            "settings": {
                "zoneID": "hz_3",
                "eventsEnabled": true,
                "icon": "icon_1",
                "name": "Heizung Ben"
            },
            "itemId": null
        },
        "attributes": {},
        "objectClass": [
            "com.devolo.fi.setting.GeneralDeviceSettings",
            "com.devolo.fi.setting.DeviceSetting",
            "com.prosyst.mbs.services.fim.FunctionalItem"
        ],
        "tags": []
    }
]
###### SETTINGS END ######
nicoh88 commented 6 years ago

Hi @gaudes,

ich möchte kurz auf deine Fragen eingehen:

Zweite Frage wäre nebenbei: Manche Geräte (z.B. Bewegungsmelder) liefern ja drei Werte. Wäre es möglich über die Konfig nur relevante Werte auszuliefern ? Z.B. bei deviceBlacklist nicht nur Gerätename angeben, sondern Gerätename:CurrentTemperature um die aktuelle Temperatur eines Bewegungsmelders nicht darzustellen?

Seit der Version v0.1.10 vom 2018-08-03 kann man in der config.json eine lightBlacklist und tempBlacklist pflegen, somit werden die Licht- bzw. Temperatursensoren von den jeweiligen Geräten ausgeblendet. Mehr Infos hier...

Update mit npm -g --unsafe-perm update homebridge-devolo


Seltsamerweise scheint die Home-App der Meinung zu sein, dass es aktuell 5 Grad hat und auf 5 Grad geheizt werden soll (der Thermostat ist momentan auf 5 Grad eingestellt).

Was wäre dein Vorschlag? Wie hättest du es gerne? Dann schaue ich mal, inwieweit sich HomeKit verbiegen lässt.


Gruß Nico

gaudes commented 6 years ago

Hi @nicoh88 ,

danke für die Info, den Parameter habe ich noch nicht gesehen.

Den Thermostat habe ich ehrlich gesagt mittlerweile anders gelöst. Ich verwende homebridge-devolo mittlerweile mit ioBroker und ioBroker.ham (Homebridge Accessory Manager), quasi Homebridge als Client für ioBroker. Hierdurch habe ich die ganzen Geräte in ioBroker und kann dann mit machen was ich gerne hätte :-)

Im ioBroker habe ich mir dann mittels Yahka (Yet another HomeKit adapter) einen eigenen, virtuellen Thermostat gebaut. Dieser hat als Soll-Temperatur die Temperatur des Thermostats und als Ist-Temperatur die Temperatur eines Bewegungsmelders (der war übrig). Hierdurch wird es mit dann auf dem iOS-Geräten über die Yahka-Bridge korrekt angezeigt.

Das mit dem Ist-Wert von einem weiteren Sensor ist halt jetzt eine persönliche Bastelei. Eine generelle, direkte Lösung habe ich auch nicht. Außer (falls möglich) den Ist-Wert quasi weg zu lassen, so dass nur der Soll-Wert übertragen wird. Ob das aber dann für Homekit valide ist ? Alternativ ähnlich wie ich es gebaut habe: In der Konfig für die Ist-Temperatur des Thermostats die Option, auf einen korrekten Temperaturwert eines anderen Sensors zu verweisen.

Ich habe auch nochmal wegen den Funktionen Aus, Heizen, Kühlen und Automatisch geschaut. Das ist wohl von Apple so vorgegeben für Geräte der Klasse Thermostat, gibt also auch keine Möglichkeit.

Da es für den Thermostat eigentlich keine allgemeingültige Lösung gibt kann der Issue wegen mir auch geschlossen werden.

Danke für deine Rückmeldung und viele Grüße

Ralf

nicoh88 commented 6 years ago

@gaudes

Danke für deine ausführliche Antwort.

Eine Lösung habe ich aktuell auch nicht. Schade, dass uns Devolo im HomeControl nicht die aktuell im Raum befindliche Temperatur anzeigt, sondern nur die Wunschtemperatur. 😢

Ja, dann mache ich hier zu. 👍