Heizungsthermostate per Apple Home steuern

Heizungsthermostate per Apple Home steuern

Vor ein paar Tagen hat mir mein Vermieter ein verspätetes Weihnachtsgeschenk zukommen lassen. Die Nebenkostenabrechnung von 2018. Obwohl ich 2018 gerade erst frisch in meine neue Wohnung eingezogen war und damit gerade einmal zwei Monate dort gewohnt habe durfte ich nun 200€ Heizkosten nachzahlen. Da hat man direkt erst einmal was zu schlucken. Ganz schön deftig dachte ich mir. 

Also wurde es Zeit für eine Anpassung. Automatische Heizungsthermostate sollten her.
Den vernetzten Teilen vertraue ich sicherheitstechnisch nicht wirklich weit über den Weg, zumal man sich meistens noch eine zusätzliche Bridge anschaffen muss, die zusätzlich am Strom hängt.

Zum Glück habe ich ja bereits eine HomeBridge auf meinem Raspberry Pi Zero installiert und steuere so schon seit längerem erfolgreich meine diversen Steckdosen, welche ebenfalls über keine Internetverbindung verfügen. Blöde Steckdosen also einfach mal smart gemacht.

Angeschafft habe ich mir also Eqiva Bluetooth® Smart Heizkörperthermostat, 141771E. Diese Geräte sind mit etwa 20€ pro Stück sehr erschwindlich, nicht so wirklich "smart" und besitzen eine Bluetooth Verbindung, über die man die Thermostate verstellen kann.

HomeBridge und Bluetooth Thermostate - Eine Odesee

Nach kurzem Suchen habe ich ein perfekt erscheinendes Plugin für HomeBridge namens "homebridge-eq3ble" gefunden. Leider habe ich es auch nach 5 Stunden der intensiven Fehlersuche nicht geschafft das Teil ansatzweise ans Laufen zu bekommen. Für das Plugin müssen die weiteren Plugins noble und bluetooth-hci-socket installiert werden, welche allerdings nicht mit NodeJS 10, sondern nur mit NodeJS 8, kompatibel sind. Leider wollte auch die HomeBridge beim Wechsel auf NodeJS 8 nicht mehr arbeiten.
Alternativ kann man jedoch auf @abandonware/bluetooth-hci-socket und @abandonware/noble zurückgreifen. Diese werden jedoch nicht von homebridge-eq3ble unterstützt. Ein Mapping der neuen Plugins auf den Namen der alten Plugins hat HomeBridge zwar starten lassen, aber eine Bluetooth Verbindung haben sie deshalb aber immer noch nicht aufbauen können.
Kurzum:
Eine andere Lösung musste her! Diese hier war eine Katastophe!

Die Lösung

Der nun endlich funktionierende Weg heißt homebridge-web-thermostat in Verbindung mit einem anderen unabhängigen Script mit dem bedrohlichen Namen eQ-3-radiator-thermostat.

Die Funktionsweise dieser beiden Codeschnippsel ist eigentlich recht einfach, wenn auch nicht sonderlich trivial umzusetzen. Ich möchte an dieser Stelle gerne erklären, was wir nun tun. homebridge-web-thermostat dient dazu Apple Home ein Thermostat anzuzeigen und dieses aus der App heraus steuerbar zu machen. Selber besitzt es keine eigenen Daten und kann das Thermostat auch selber nicht steuern. Für diese beiden Eigenschaften ist das Script eQ-3-radiator-thermostat da. Damit das Plugin die Thermostate mittels des Scriptes eQ-3-radiator-thermostat "fernsteuern" kann müssen wir eine Verbindung herstellen. Einen zweiten kleinen Webserver, der die Befehle des Plugins entgegen nimmt und an das Script weiterleitet.

Das klingt im ersten Moment, als würde man mit Kanonen auf Spatzen schießen. Tun wir auch, allerdings hat dieses Vorgehen zwei große Vorteile:

  • Sollte die Bluetooth Verbindung nicht von der HomeBridge zu allen Thermostaten reichen, so können wir einfach einen zweiten Pi aufsetzen und jeden Winkel des Hauses abdecken.
  • Es funktioniert, im Gegensatz zu anderen Plugins :P

Hier einmal eine kleine Darstellung, zur Verdeutlichung:

Als Erstes müssen wir das Plugin homebridge-web-thermostat und einige später benötigte Zusatzprogramme installieren. Dazu verbinden wir uns über SSH mit der HomeBride auf unserem Raspberry Pi. Hier tippen wir dann ein:

sudo apt-get update && sudo apt-get upgrade
sudo apt install expect
sudo apt-get install bluetooth bluez libbluetooth-dev libudev-devsudo apt-get bluez-tools bluetoothctl
sudo npm cache clean -f
sudo npm install -g n
sudo n 11.15.0
sudo npm install --unsafe-perm -g homebridge-web-thermostat

Anschließend sollte das Plugin in der Weboberfläche (sofern installiert) erscheinen:

Nun haben wir alle nötigen Programme und Plugins installiert, um der HomeBridge ein Thermostat hinzufügen zu können und uns über Bluetooth mit dem Theromstat zu verbinden. Was jetzt natürlich noch fehlt ist das Konfigurieren von HomeBridge, die eigentliche Verbindung zu den Thermostaten und das Steuern eben dieser.

Server aufsetzen

Als nächstes müssen wir uns einen Apache Server installieren, konfigurieren und diesen anleiten die Befehle an das Script eQ-3-radiator-thermostat weiterzuleiten.

Hierzu tippen wir wieder per SSH auf dem Pi ein:


sudo apt-get install apache2 php libapache2-mod-php
cd /var/www/html
sudo git clone https://github.com/artpetro/eQ-3-radiator-thermostat
sudo a2enmod rewrite
sudo nano /etc/apache2/sites-available/000-default.conf
sudo systemctl restart apache2


Nach dem vorletzten Befehl fügen wir dem Inhalt der Datei folgendes ein (bitte kurz vor dem ".../VirtualHost..." einfügen) und speichern die Eingabe mit Strg+x und y+Enter:


<Directory /var/www/html>
	Options Indexes FollowSymLinks MultiViews
	AllowOverride All
	Require all granted
</Directory>

Wenn alles geklappt hat, dann sieht die Datei nach dem Editieren in etwa so aus (der Befehl "cat" dient zur Anzeige von Dateiinhalten):

Apache2 Konfiguration


Nun installieren wir noch das Script zum empfangen der Steuerbefehle:

cd /var/www/html
sudo wget https://staticfloat.de/content/thermostat.zip 
sudo unzip thermostat.zip
cd ./thermostat
sudo chmod 0777 status.json


Und zum Schluss richten wir noch zwei Cronjobs ein. Ein Cronjob überprüft alle 30min den Status der Thermostate. Ein zweiter Cronjob sendet innerhalb der App gemachte Änderungen in Intervallen von 5min an die Thermostate.
Dazu führen wir den Befehl "sudo crontab -e" aus und füge ans Ende der Datei folgende Zeilen ein:

*/5 * * * * curl -s http://127.0.0.1/thermostat/cronjob.php > /dev/null
*/30 * * * * curl -s http://127.0.0.1/thermostat/statusCronjob.php > /dev/null


Funktionsweise und Probleme des installierten Scriptes:

Ich habe nach dem ersten Aufsetzen der hier angesprochenen Lösung zwei Fehler bemerkt. Erstens wollten sich die Thermostate nicht per Siri steuern lassen. Zusätzlich wollten manchmal einige Thermostate ihre Temperatur nicht ändern, wenn ich 3 Thermostate gleichzeitig über eine Automation steuere. Woran liegt das?
Die Erklärung ist eigentlich recht einfach. Die Thermostate brauchen über Bluetooth zu lange!

Per Siri Befehl wurde ein Befehl an Homebridge weitergeleitet. Dieser hat den Befehl an den Apache Server weitergeleitet und dieser dann per Bluetooth und dem Script eQ-3-radiator-thermostat an die Thermostate -Uff ist das viel-.
Siri hat dann binnen weniger Millisekunden eine Rückmeldung verlangt, aber der Vorgang dauert halt einfach ein paar Sekunden länger. Es kam zu einem Fehler und einer unschönen Ansage von Siri.
Bei der Hausautomation sieht das Ganze recht ähnlich aus, allerdings überlagern sich möglicherweise einige Befehle. Es kann dabei passieren, dass der erste Befehl noch nicht fertig abgeschlossen ist und schon der zweite Befehl gesendet wird.

Wir umgehen die Problematik, indem unser Apache Server einfach so tut, als hätte er den Befehl erfolgreich ausgeführt! Tatsächlich werden die zu sendenden Änderungen jedoch erst einmal nur in einer status.json-Datei untergespeichert.
Über die installierten Cronjobs wird das eigentliche Steuern der Thermostate dann in Intervallen von 5min nachgeholt.
Um die Batterie der Thermostate zu schonen und zusätzlich die Meldung "Keine Antwort" zu umgehen wird zusätzlich ein zweiter Cronjob installiert, der in Intervallen von 30min den Status der Thermostate ausliest und für jede Nachfrage zwischenspeichert.

Selbstverständlich können die Stellen "*/5" und "*/30" auch beliebig verändert werden.
Beispielweise in "*" für jede Minute, "*/15" für jede Viertelstunde oder "0" für jede Stunde.


Mit Thermostaten verbinden

Für das Verbinden der Thermostate ist wieder die Eingabe via SSH nötig und schnelle Finger.
Aktiviert als Erstes bitte Bluetooth an euren Thermostaten (Menu 3 Sekunden drücken, drehen bis "ble" erscheint, Drehrad klicken, "On", klicken).

Anschließend suchen wir eine neue MAC Adresse in unserer Umgebung. Notiert euch diese bitte.


sudo hcitool lescan

Die Adresse sollte mit "CC-RT-BLE" enden. Ähnlich dieser Ausgbe hier:

Nun geben wir folgendes in der Konsole ein:


sudo bluetoothctl
agent on
scan on
scan off
trust MAC_ADDRESSE
-- 4 sekunden den Drehknopf drücken, bis dort steht "PAIr"
pair MAC_ADDRRESSE
connect MAC_ADDRESSE
exit


DIESEN VORGANG MÜSSEN WIR MIT ALLEN THERMOSTATEN DURCHFÜHREN!

Thermostate steuern

Nun fehlt nur noch die Konfiguration in der HomeBridge.
Fügt in die []-Klammern, vor denen "acessoirs" steht folgendes ein (für jedes Thermostat einmal):

{
        "accessory": "Thermostat",
        "name": "Thermostat Wohnzimmer",
        "apiroute": "http://localhost/thermostat/MAC-ADRESSE",
        "maxTemp": 29,
        "minTemp": 5,
        "listener": false,
        "timeout": 20000,
        "model": "eQ3 Bluetooth",
        "serial": "Homebridge",
        "manufacturer": "eQ3",
        "firmware": "1.1"
    }

Bitte ersetzt immer das "MAC-ADRESSE" durch die Adresse des Therostats. Sollten hier mehrere Thermostate eingefügt werden, so muss hinter jeder der }-Klammern ein ",". Ausgenommen davon ist die letzte }-Klammer.


Update - 14.04.2020:

Aufgrund eines Fehlers konnte es passieren, dass das gleichzeitige Schalten aller Thermostate einige Thermostate aus der status.json-Datei entfernt hat.
Dieser Fehler trat auf, wenn der Befehl "Hey Siri, setze die Temperatur im ganzen Haus auf 20 Grad" benannt wurde. Der HomePod oder das iPhone hat an dieser Stelle das Ändern der Temperatur zu schnell veranlasst. Das erste Thermostat wurde noch nicht korrekt in die status.json-Datei geschrieben, während schon der zweite Befehl nun eine scheinbar leere Datei vorfand und nun nur noch ein Thermostat gespeichert hat.
Dieser Fehler wurde durch eine Schreib- und parallele Lesesperre behoben, welche das Lesen und geleichzeitige Schreiben durch eine Warteschlange verhindert. (Stichwort: FILE_LOCK)

Für ein Upgrade müssen folgende Schritte befolgt werden:

cd /var/www/html
sudo rm thermostat.zip
sudo rm -r ./thermostat
sudo wget https://staticfloat.de/content/thermostat.zip
sudo unzip thermostat.zip
cd ./thermostat
sudo chmod 0777 status.json 

Update - 01.09.2020:

Vielen Dank an Jan der mich mit seinem Kommentar darauf hingewiesen hat, dass eines der verwendeten HomeBridge Plugins in seiner neuesten Version andere Aufrufparameter verwendet. Das kommt davon, wenn man die Thermostate im Sommer nicht verwendet und auch keine Updates einspielt.

Statt der URL /thermostat/xxxxx/targetTemperature/24 wird nun die URL /thermostat/xxxxx/targetTemperature?value=24.0 benutzt.

Dies führte dazu, dass das eigens entwickelte Skript nicht mehr gegriffen hat und die Thermostate nicht mehr gesteuert worden. Inzwischen habe ich ein Update veröffentlicht. Der Weg ist wie gehabt im vorherigen Absatz beschrieben.

Wir können das neueste Update also ebenfalls über folgende Befehle einspielen.

cd /var/www/html
sudo rm thermostat.zip
sudo rm -r ./thermostat
sudo wget https://staticfloat.de/content/thermostat.zip
sudo unzip thermostat.zip
cd ./thermostat
sudo chmod 0777 status.json 

Marvin

Ich bin ein Mensch, der sich neben der Programmierung noch für tausend andere Dinge interessiert, die mal mehr und mal weniger verrückt sind. Vor allem aber bin ich Feuer und Flamme mit der Programmierung von eigenen kleinen Apps und Programmen, die mein Leben bereichern.

Hat dir dieser Artikel gefallen?

Kommentar hinzufügen

*Pflichtfeld

  1. Martin

    Hallo Marvin,
    danke für den Artikel - ich kämpfe mich da grad durch. Eine Frage zur Node-Version: werden auch aktueller Versionen laufen?

    Grüße
    Martin

  2. Marvin

    Hallo Martin,

    Es freut mich sehr, dass ich dir hiermit helfen kann.

    Homebridge selber kann mit NodeJS 12 laufen (https://github.com/homebridge/homebridge/wiki/Install-Homebridge-on-Raspbian#step-1-install-nodejs). Für das Plugin kann ich bisher nur dafür sprechen, dass Node.js v10.18.0 und auch v11.15.0 einwandfrei funktionieren.

    Ich werde die Tage noch einmal ein Update des Apache PHP Skriptes zur Verfügung stellen und ein Anleitung zum Update zur Verfügung stellen. Nach längeren Tests ist mir aufgefallen, dass das Schalten von allen Thermostaten gleichzeitig zum Löschen der Thermostate aus meinem Skript (nicht Homebridge) führen kann. Anschließend ist ein einzelnes Schalten der Thermostate nötig, um sie wieder hinzuzufügen.
    Der Fehler ist ach schon gefunden, nur noch nicht ausreichend getestet.

    Gruß,
    Marvin

  3. Marvin

    Hallo Martin,

    ich habe die neue Version meines Skriptes nun hochgeladen.
    Falls dein Server bereits laufen sollte muss für ein Update folgendes durchgeführt werden:
    cd /var/www/html
    sudo rm thermostat.zip
    sudo rm -r ./thermostat
    sudo wget https://staticfloat.de/content/thermostat.zip
    sudo unzip thermostat.zip
    cd ./thermostat
    sudo chmod 0777 status.json

    Gruß
    Marvin

  4. Leon

    Moin Marvin,
    danke für deine tolle Alternative. So etwas habe ich schon lange gesucht. Leider bekomme ich es nicht zum Laufen...

    1. Ich verstehe bei den Cronjobs die IP nicht. Was bedeutet 127.0.0.1 ?
    2. In den Code, der in die Config.json muss, scheinen noch Zeichenfehler zu sein...

    Wäre klasse, wenn du mir helfen könntest. Ich bin leider auch absoluter Anfänger, aber um jede Hilfe dankbar! Würde mich freuen, wenn ich die Teile in Homebridge zum Laufen bekomme. Dein Ansatz scheint mir der Beste zu sein! Hoffe, es wird bei mir klappen! Danke.
    Leon.

  5. Marvin

    Hallo Leon,

    bei Fragen kannst du immer gerne in den Kommentaren auf mich zu kommen und bei größeren Codeschnippseln auch gerne bei E-Mail.

    Zu deinen Fragen:
    1. Die IP "127.0.0.1" steht stellvertretend für "localhost" und damit die IP des eigenen Rechners. Jeder Rechner (egal ob Win, Linux, Mac, Android, ...), welcher diese IP aufruft wird immer bei sich selber landen.
    2. Du hast selbstverständlich vollkommen Recht und ich habe die entsprechende Stelle im Artikel korrigiert. Vielen Dank für den Hinweis.

    Gruß
    Marvin

  6. Leon

    Danke Dir. Jetzt er halte ich folgenden Fehler

    4/18/2020, 12:56:23 PM] [Thermostat Arbeitszimmer] Listen server: http://192.168.178.45:2000
    [4/18/2020, 12:56:23 PM] SyntaxError: Unexpected token < in JSON at position 0
    at JSON.parse ()
    at Thermostat. (/usr/local/lib/node_modules/homebridge-web-thermostat/index.js:103:25)
    at Request._callback (/usr/local/lib/node_modules/homebridge-web-thermostat/index.js:88:7)
    at Request.self.callback (/usr/local/lib/node_modules/homebridge-web-thermostat/node_modules/request/request.js:185:22)
    at Request.emit (events.js:193:13)
    at Request. (/usr/local/lib/node_modules/homebridge-web-thermostat/node_modules/request/request.js:1154:10)
    at Request.emit (events.js:193:13)
    at IncomingMessage. (/usr/local/lib/node_modules/homebridge-web-thermostat/node_modules/request/request.js:1076:12)
    at Object.onceWrapper (events.js:281:20)
    at IncomingMessage.emit (events.js:198:15)

    ---- das war meine Conti JSON

    {
    "accessory": "Thermostat",
    "name": "Thermostat Arbeitszimmer",
    "apiroute": "http://192.168.178.45:8091/thermostat/00:1A:22:14:AC:44",
    "maxTemp": 29,
    "minTemp": 5,
    "listener": true,
    "timeout": 20000,
    "model": "eQ3 Bluetooth",
    "serial": "Homebridge",
    "manufacturer": "eQ3",
    "firmware": "1.1"
    }

  7. Marvin

    Könntest du mir vielleicht den Rest der Config senden?
    Es scheint so, als wenn der Fehler an einer anderen Stelle liegt.

    Gruß

  8. Leon

    Moin, Danke für deine Antwort! Du kannst mir gerne per Mail antworten, dann können wir da weiter sehen. Zuerst: Danke für deine Unterstützung.

    Also: Wenn ich in der Config Datei die config von dir übernehme und bei der iproute "http://" eingebe, bekomme ich folgende Fehlermeldung in meinem log angezeigt:

    [4/20/2020, 5:16:59 PM] [Thermostat Wohnzimmer] Initializing Thermostat accessory...
    [4/20/2020, 5:16:59 PM] [DysonPureCoolPlatform] Device credentials not stored, asking Dyson API. If you want to prevent communication with the Dyson API, copy the credentials for each device from the coming log entries to the config.json.
    [4/20/2020, 5:16:59 PM] [DysonPureCoolPlatform] Signing in.
    [4/20/2020, 5:16:59 PM] [PhilipsHueSyncBoxPlatform] Cached accessories loaded.
    [4/20/2020, 5:16:59 PM] [Thermostat Wohnzimmer] Listen server: http://192.168.178.45:2000
    [4/20/2020, 5:17:00 PM] SyntaxError: Unexpected token < in JSON at position 0
    at JSON.parse ()
    at Thermostat. (/usr/local/lib/node_modules/homebridge-web-thermostat/index.js:103:25)
    at Request._callback (/usr/local/lib/node_modules/homebridge-web-thermostat/index.js:88:7)
    at Request.self.callback (/usr/local/lib/node_modules/homebridge-web-thermostat/node_modules/request/request.js:185:22)
    at Request.emit (events.js:193:13)
    at Request. (/usr/local/lib/node_modules/homebridge-web-thermostat/node_modules/request/request.js:1154:10)
    at Request.emit (events.js:193:13)
    at IncomingMessage. (/usr/local/lib/node_modules/homebridge-web-thermostat/node_modules/request/request.js:1076:12)
    at Object.onceWrapper (events.js:281:20)
    at IncomingMessage.emit (events.js:198:15)


    und die Homebridge startet neu...

    Wenn ich nun aber lediglich die IP eingebe - also wie folgt:

    {
    "accessory": "Thermostat",
    "name": "Thermostat Wohnzimmer",
    "apiroute": "192.168.178.45:8091/thermostat/00:1A:22:14:A4:B6",
    "maxTemp": 29,
    "minTemp": 5,
    "listener": true,
    "timeout": 20000,
    "model": "eQ3 Bluetooth",
    "serial": "Homebridge",
    "manufacturer": "eQ3",
    "firmware": "1.1"
    }

    funktioniert es zwar (also die Homebridge bootet ganz normal). Innerhalb der Home-App steht aber ständig "Gerät nicht erreichbar"

    Hast Du noch einen Tipp?

    Danke!

    Viele Grüße
    Leon

  9. Marvin

    Hallo Leon,

    mir scheint es so, als wenn Homebridge schon funktioniert.
    Allerdings würde ich per Ferndiagnose darauf tippen, dass der Apache Server aktuell noch einen falschen Rückgabewert hat.
    Deinen Logs nach zu urteilen kann Homebridge den Status der Thermostate nicht herausfinden, da Homebridge ein JSON erwartet, jedoch einen XML-Tag bekommt (das "<") in der Fehlermeldungszeile "[4/20/2020, 5:17:00 PM] SyntaxError: Unexpected token < in JSON at position 0".

    Für eine bessere Ferndiagnose würde ich dich darum bitten einmal in der Config das "listener: true" auf "listener: false" zu setzen und dann per Browser diese drei URL's aufzurufen und in die Antwort des Browsers in die Kommentare zu schreiben:
    http://192.168.178.45:8091/thermostat/00:1A:22:14:A4:B6/status
    http://192.168.178.45:8091/thermostat/00:1A:22:14:A4:B6/targetTemperature/18
    http://192.168.178.45:8091/thermostat/00:1A:22:14:A4:B6/status

    Gruß
    Marvin

  10. Maik

    Hallo Marvin,
    Danke für das Skript. Ich habe es zum Laufen gebracht... Zumindest wird mir ein verbundener Thermostat in der Home App angezeigt. Was ich noch nicht verstehe ist, dass eine geänderte Temperatur kurz danach wieder auf 15 Grad springt. Auf der Anzeige passiert nichts.

    Habe einen frischen RaspberryPi Zero aufgesetzt.

    Danke schon einmal für den Tip.

    Maik

  11. Marvin

    Hallo Maik,
    bitte prüfe doch einmal in der Handy App oder dem Thermostat selber, ob diese auf den Modus "Auto" gesetzt sind. Sollte dies der Fall sein könnten gesetzte Temperaturen vom Thermostat wieder überschrieben werden.

    Gruß
    Marvin

  12. jan

    Hallo Marvin

    Zunächstmal vielen Dank für deinen Artikel.
    Insgesamt eine super Lösung!

    Ich hatte aber so meine Probleme.
    Meinen Pi hab ich mit dem image von Homebridge aufgesetzt.
    Dann zumindest beißen sich nginx und apache zunächst, da muß man den apache über nen anderen Port laufenlassen
    Und expect ist erstmal nicht installiert.. Vielleicht solltest Du noch ein

    sudo apt install expect

    mit aufnehmen ;-) Hab lange gesucht, bis ich gemerkt habe, das das bluetooth-script nicht ausgeführt wird …

    Auch ich hatte das Problem von Maik
    Das liegt aber nicht an der Automatisch-Einstellung, sondern daran, das die Temperatur-Einstellung via Home(bridge) gar nicht übernommen wird, weil:
    Zumindest bei mir das Plugin die api-url gar nicht als …/targetTemperature/18 aufruft, sondern als …/targetTemperature?value=18
    Daher gibts dann nen offset-Error in der index.php
    Ich hab’s mit

    if(strpos($requestType,"targetTemperature") !== false){
    $targetTemperature = $_GET["value"];
    ….

    angepasst.
    Hoffe, das hilft dem einen oder anderen weiter.
    Ansonsten super Projekt! Danke.

  13. Marvin

    Hallo Jan,

    vielen lieben Dank für deinen ausführlichen Kommentar und die Tipps zur Behebung deines Problems. Ich werde das Ganze einmal durchtesten und den Artikel ggf. um deine Erläuterungen erweitern.

    Gruß
    Marvin

  14. Reiner

    saaysxdfd

    Hallo,

    mal eine frage wo hast du den If Satz eingefügt oder kannst du mir sagen wie das mit dem Update - 01.09.2020: im Artikel machen soll.
    Ich blick es nicht hab den Thermostat verbunden, kann es aber nicht schalten und es springt auch immer wieder zurück.

    Danke im Voraus

  15. Marvin

    Hallo Rainer,

    die Stelle mit der if-Abfrage musst du nicht manuell verändern. Es reicht das Update einzuspielen. Der Vorgang ist der selbe, wie auch schon im Update vom 14.04.2020.
    Ich habe hier bewusst darauf verzichtet ein andere Vorgehen für die Updates zu nutzen. Es lohnt ja nicht nicht mehr funktionierende Versionen als Download anzubieten. Die Beschreibung aus dem Update vom 14.04.2020 sollte also die neueste Version des Updates vom 01.09.2020 herunterladen.

    Gruß
    Marvin

  16. Tom

    Ist der Raspberry Zero über WLAN mit dem Netzwerk verbunden, oder benötigt man einen Ethernet-Baustein?

  17. Marvin

    Hallo Tom,

    So lange du einen Raspberry Pi Zero W hast geht das Ganze selbstverständlich auch über WLAN. So ist mein Pi Zero ebenfalls im Netzwerk eingebunden.

    Gruß
    Marvin

  18. Tom

    Hab mich jetzt mal an der Installation versucht, aber scheitere daran, den Apache-server starten zu können. Ich verwende ein vorkompiliertes homebridge raspbian (v1.0.13) von github und bekomme die Fehlermeldung "Job for apache2.service failed because the control process exited with error code", im systemctl status stehen die Fehler AH00558 und AH00072.
    Was mache ich falsch? Ich habe alle Befehle so eingegeben wie in der Anleitung beschrieben.

  19. Reiner

    Hallo,

    danke erst mal die Anleitung. Leider habe ich aber ein Problem meine Homebridge schreibt
    [23.10.2020, 18:28:32] [Thermostat Esszimmer] Error getting status: connect ECONNREFUSED 127.0.0.1:80
    Kannst du mir da eventuell helfen, was haben ich falsch gemacht.

  20. Marvin

    Hallo Rainer,

    ich denke auch das hängt mit dem fehlenden Update zusammen. Das Plugin innerhalb der Homebridge wurde geupdated und hat seine URL Struktur geändert. Leider greift aus diesem Grund unser Coding nicht mehr und deshalb wirft unser Server einen Fehler zurück, welcher in den Logs von Homebridge auftaucht.

    Gruß
    Marvin

  21. Jasper

    Hallo Marvin,
    Ich bin blutiger Anfänger mit der Homebridge und scheitere aktuell an dem Schritt:
    Nach dem vorletzten Befehl fügen wir dem Inhalt der Datei folgendes ein (bitte kurz vor dem ".../VirtualHost..." einfügen) und speichern die Eingabe mit Strg+x und y+Enter:

    Ich stelle mir hierbei die Frage welche stelle du meinst. Da ich anscheinend beim probieren immer die Falsche Zeile Nutzte lässt sich natürlich dementsprechend der Server nicht Neustarten und auch alles weiteren Schritte nicht ausführen.

    Ich hoffe du kannst mir weiterhelfen und schon einmal vielen dank im voraus!

    LG Jasper

  22. Marvin

    Hallo Jasper,

    ich bin leider erst am Wochenende dazu gekommen ein Screenshot zu machen.
    Ich habe den Artikel mal um ein Beispielbild erweitert. Bitte beachte, dass der Befehl "cat" dazu dient den Inhalt einer Datei anzuzeigen. Mit dem Befehl "nano" kann man Dateien editieren.

    Gruß
    Marvin

  23. Jasper

    Hallo Marvin,
    mittlerweile funktioniert alles wunderbar, bis auf wenn ich Automationen mit mehreren Thermostaten erstelle. (eigentlich genau das oben beschriebene Problem)
    Hierbei springen meistens alle auf die "Nacht Temperatur", jedoch manchmal kommen 1-2 nicht mit. Die Cronjobs sollte ich eigentlich richtig installiert haben (hatte die auch nochmal mit einem # davor probiert, jedoch dann geht gar nichts mehr.). Gibts es sonst noch Fehlerquellen?
    Liebe Grüße
    Jasper