Schnup89 / ioBroker.eq3-thermostat

Adapter zur Anbindung von eq3-Thermostaten via Bluetooth
MIT License
9 stars 3 forks source link
eq3 eq3-bluetooth-thermostat iobroker-adapter iot thermostat

Logo

ioBroker.eq3-thermostat

NPM version Downloads Number of Installations (latest) Dependency Status Known Vulnerabilities

NPM

Tests:: Travis-CI

Adapter zur Anbindung von eq3-Thermostaten via Bluetooth

Mit diesem Adapter ist es möglich Informationen aus den Thermostaten auszulesen und die Soll-Temperatur zu setzen. Voraussetzung ist das Programm Expect und eine Bluetooth-Adapter inkl. Bluetooth-LowEnergy Funktion (BTLE).

Ich empfehle außerhalb der Heizzeit die Instanz zu deaktivieren um die Batterien der Thermostate nicht unnötig zu belasten.

Installation

Features

! WICHTIG !

Ist die Option "Manuellen Modus erzwingen" werden die Thermostate in den Modus "Manuell" versetzt, sodass die Automatik am Thermostat nicht mehr genutzt werden kann. Ist die Option in den Adapter-Einstellungen deaktiviert wird der Modus nicht geändert.

Am Thermostat kann weiterhin die gewünschtt Temperatur manuell eingestellt werden, bei der Aktualisierung wird der Wert in den IOBroker "states" übernommen. Minimal einstellbare Temperatur 5°C (aus), Maximal einstellbare Temperatur 30°C

States

Die folgenden Werte werden ausgelesen und ggf. gesetzt unter dem Objekt-Pfad: eq3-thermostat.-instanznummer-.-mac-adresse-

State-Name Read/Write Beschreibung
boost Read & Write Wenn "true" dann Boost=ON, "false" dann Boost=OFF, Status wird beim zyklischen einlesen aktualisiert, Boost ist 5 Minuten aktiv
last_cmd_failed Read Wenn letzter Schreibvorgang (setzen der Temp) fehlgeschlagen ist = true
low_battery_alarm Read Bei true ist der Batterie Alarm ausgelöst
name Read Name der im Admin-Panel dem Gerät vergeben wurde
no_connection Read Wenn zyklischen Auslesen beim letzten mal fehlgeschlagen ist
temperature Read & Write Temperatur in °C wird bei Auslesezyklus ausgelesen, kann auch gesetzt werden
valve Read Ventilstellung in %
modeauto Read & Write Wenn "true" dann Modus=Auto, "false" dann Modus=Manual, Status wird beim zyklischen einlesen aktualisiert
locked Read & Write Wenn "true" dann Thermostat=Locked, "false" dann Thermostat=Unlocked, Status wird beim zyklischen einlesen aktualisiert
seton Write Wenn "true" setzt den Thermostat auf 30°C, "false" setzt den Thermostat auf 4.5°C

Vorbereitung und Überprüfung der Umgebung

Für diesen Adapter wird das Expect-Script von Heckie75 genutzt. Die Pfade sind im Adapter vorgegeben, können aber angepasst werden. Ist Expect schon installiert, sollte der Adapter direkt nutzbar sein. Für den Bluetooth-Scan über die Adapterseite (BT Scan) muss vorher per SSH folgende Berechtigung gesetzt werden:

sudo setcap cap_net_raw+ep /usr/bin/hcitool

Evtl muss der Pfad des hcitool angepasst werden, dieser wird euch angezeigt mit dem Befehl:

which hcitool

Wenn der Scan trotzdem nicht funktioniert, hat folgende Service-Anpassung bei mir geholfen:
https://raspberrypi.stackexchange.com/questions/40839/sap-error-on-bluetooth-service-status

Troubleshooting Verbindungsprobleme/Stabilität

(Optional) Bei Verbindungsproblemen kann mit folgenden Kommando sspmode deaktiviert werden:

hciconfig hci0 sspmode disable

Bei einer Installation konnten die Verbindung zu den Thermostaten nur bei einerm von zehn Verbindungsversuchen hergestellt werden.
Zum Test habe ich die Thermostate mit dem System "gepaired", seitdem funktioniert die Verbindung stabil.
Die Pairing-Vorgehensweise ist hier beschrieben: https://github.com/Schnup89/ioBroker.eq3-thermostat/issues/31#issuecomment-953297110

Adapterkonfiguration + Erster Start

Im Adapter kann nun das Script getestet werden. Hier wird der volle Pfad (incl. expect kommando) zu der ed3.exp erwartet. Bei mir ist dies expect /opt/iobroker/node_modules/iobroker.eq3-thermostat/eq3.exp Wenn ihr einen anderen Pfad möchtet, besorgt euch die Datei bei Heckie75 und passt den Pfad entsprechend an. Der Button "PFAD TESTEN" muss Grün werden, sonst tut der Adapter nichts.

Den Aktualisierungsintervall würde ich auf 3-5 Minuten einstellen. Je länger der Intervall desto länger halten die Batterien des eq3-Thermostats.

Trage in der Liste unten mit dem "+" die MAC-Adresse und den Raum jedes Gerätes ein.

Sobald die Adapterkonfiguration gespeichert wird, sollten nach einer kurzen Wartezeit die Devices unter den Objekten angelegt werden.

eq3-thermostat.0.MAC-Adresse

(Optional) Expect-Script prüfen

  1. Verbinde dich per SSH oder Lokal auf die Konsole (bash) deines IOBroker Systems

  2. Prüfe ob expect installiert ist

    $ sudo apt install expect
  3. Prüfe ob Geräte gefunden werden (CC-RT-BLE)

    $ sudo hcitool lescan
    LE Scan ...
    38:01:95:84:A8:B1 (unknown)
    00:1A:22:0A:91:CF (unknown)
    00:1A:22:0A:91:CF CC-RT-BLE

    Bitte beachtet dass der Scan evtl. im Hintergrund ewig läuft. Sollte die Kommunikation gar nicht mehr funktionieren, bitte Bluetooth wie folgt neu starten:

    $ sudo /etc/init.d/bluetooth restart

(Optional) Bluetooth MAC-Adresse auslesen

$ sudo hcitool lescan
LE Scan ...
38:01:95:84:A8:B1 (unknown)
00:1A:22:0A:91:CF (unknown)
00:1A:22:0A:91:CF CC-RT-BLE

Siehe Hinweis oben bzgl. Bluetooth Scan.

Der Bluetooth-Name ist bei jeden Gerät geleich, sodass hier am besten ein Gerät nach dem anderen eingelesen werden sollte.

  1. Batterie in eq3-Thermostat einsetzen (evtl. muss der Thermostat auch an ein Ventil angeschlossen sein <- Bitte kurze Rückmeldung per Issue)

  2. BTLE Scan starten und warten (Bis zu 20 Sekunden)

    sudo hcitool lescan
  3. eq3-Thermostate erscheinen mit dem Namen "CC-RT-BLE", bitte die MAC-Adresse und den gewünschten Raum notieren.

Für jedes Gerät Schritt 1. bis 3. wiederholen.

(Optional) Habpanel-Steuerung

Ich habe für Habpanel (ioBroker-Adapter für Visualisierung) ein für mich gutes Design entwickelt um vom Smartphone aus die Thermostate einstellen zu können.
Dafür muss natürlich Habpanel installiert sein, und Ihr müsste folgende Einstellungen tätigen:

Ruft euer HABPanel auf und erstellt zwei Objekte, ein "template" und einen "knob" wie im Bild zusehen.

In das Template-Objekt folgenden Inhalt kopieren:

<style>
.progress-bar {
    background-color: #0db9f0;
 }
.progress {
    height: 10px;
 }
</style>

<uib-progressbar style="background-color: #89a" animate="false"
max="100" value="itemValue('eq3-thermostat.0.MAC-Adresse.valve')">
</uib-progressbar>

! "MAC-Adresse" im Pfad auf die MAC-Adresse des Thermostats anpassen !

Und die Einstellungen für das "Knob"-Element:

General

Item: eq3-thermostat.0.MAC-Adresse.temperature

Min: 5

Max: 29

Step: 0,5

Unit: °C

x Show Value

x Show Name

Bar & Track

Angles: Start 20, End 340

x Display previous value when dragging

Misc.

Font Size: 24

Changelog

2.0.7

2.0.6

2.0.5

2.0.4

2.0.3

2.0.2

2.0.1

0.0.2

0.0.1

License

MIT License

Copyright (c) 2021 Schnup89 Tobias_Tsafi@gmx.de

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.