Beiträge von sschuste


    Nur mal so nebenbei: ich verwende keine Sonoff-Geräte. Ich mach mit meinem MQTT-Server andere Dinge. MQTT.fx kannte ich auch nicht, bevor du es erwähnt hast. Ich mach hat alles so:


    mosquitto_pub -h 192.168.1.22 -m "off" -t cmnd/sonoff/power

    Was genau ist der Unterschied zwischen der Node.js Version und der npm Version?

    Das ist ungefähr der gleiche Unterschied wie der zwischen Microsoft Word und iTunes.


    Die vorrangig verwendete Programmiersprache in der Homebridge ist Javascript. Javascript wurde 1995 eingeführt, um Webseiten etwas dynamischer zu gestalten. Beispielsweise war es vorher nicht möglich, Eingaben in einer Webseite direkt auszuwerten. Also erfand irgendeiner Javascript, um genau das zu ermöglichen.


    Javascript lief also im Webbrowser - und nur dort. Am Anfang ziemlich lahmarschig, was aber egal war, denn so viel wurde da auch nicht programmiert. Trotzdem wurde die "Engine", die Javascript verstand und im Webbrowser ausführte, immer weiter verbessert, bis dann eines Tages Google mit der superschnellen "V8"-Engine in Chrome herauskam.


    Nochmal: Javascript lief nur im Browser und war auch dafür gemacht, nur im Browser zu laufen. Und: Javascript braucht einen Unterbau, die sogenannte Engine, die ein Javascript-Programm ausführen kann. Sie ist zwingend notwendig.


    Irgendwann kam einer auf die Idee, das man Javascript auch ohne Browser und ohne Webseite gebrauchen könnte. Bildlich gesehen baute er also die V8-Engine aus dem Chrome-Browser aus, verfrachtete sie auf ein Linux-Betriebssystem und nannte die Engine um in node.js.


    Jetzt wurde es möglich, mit Javascript viele Programme und vor allen Dingen Serversoftware zu schreiben. Und weil ja Javascript immer eine Engine braucht, um überhaupt zu laufen, ist die Installation von node eine zwingende Voraussetzung, wenn man in Javascript geschriebene Software verwenden will. Ich kenne kein Homebridge-Plugin, dass nicht in Javascript geschrieben ist und eigentlich sollte das auch gar nicht möglich sein.


    So ein Unterbau wird auch Framework genannt. Node ist also das Framework für Homebridge und die Plugins, aber auch für andere Software, die nichts mit Homebridge oder überhaupt Smarthome zu tun hat.


    Deshalb muss man überhaupt node installieren, und weil die sehr häufig Updates machen, muss man es auch pflegen. Die Pflege von node lässt sich supereinfach mit n bewerkstelligen. Dieses Programm macht nichts anderes, als node-Versionen zu verwalten.


    Um Javascript-Programme zu installieren, benötigt man das Programm npm. Dieses Programm kann nichts anderes als als genau das. Wenn die Homebridge nicht läuft, ist ein Update von npm also so hilfreich wie ein stattdessen ausgeführtes Update von iTunes - man kann es sich sparen. Npm wird bei der Installation von node gleich mitinstalliert, es ist also ein Teil von dem ganzen node-Geraffel.


    Die letzten wichtigen Versionen von node waren die Versionen 8, 10 und die aktuelle 12. Ab Oktober wird Version 14 Einzug halten. Die alte Version 8 ist wirklich veraltet und so manches Plugin kann diese Version nicht mehr gebrauchen. Du verwendest zur Zeit die Version 12.16.3. Deine Version von homebridge-hue läuft damit ohne jegliche Probleme, aber der Programmierer weist im Log darauf hin, dass er sie für Version 12.18.2 geschrieben hat. Ich glaube nicht, dass das irgendeinen Unterschied macht.


    Und nun kommen noch die Hoobsies. Die bauen eine fertige Homebridge, weichen dabei aber vom Standard ab. Sie haben eine veränderte config.json. Sie machen irgendetwas mit den Plugins. Da für mich nicht klar ist, was bei HOOBS nun alles anders ist, weiß ich nicht, ob ein Update von node Probleme verursachen kann oder nicht. Ich kann auch keinen Support für HOOBS leisten. Einmal, weil ich keinen Plan davon habe und zweitens, weil ich dem HOOBS-Support nicht reinreden will.


    Echten Support kann ich nur geben für die Installation nach der Smartapfel-Anleitung. Da weiß ich ziemlich präzise, von was ich rede. Klar, die Grundlagen sind für alle Homebridge-Installationen gleich, aber die Abweichungen machen es sehr schwierig, Tipps zu geben, die nicht gleich die bestehende Installation zum Teufel jagen.


    Dein Fehler [Hue] Philips hue: heartbeat error: 192.168.0.136:443: cannot connect: EHOSTUNREACH

    sagt nichts anderes als dass ein Computer mit der IP-Adresse 192.168.0.136:443 nicht erreicht werden kann. Wahrscheinlich liegt es an der Angabe des Ports (:443) und wahrscheinlich muss die IP-Adresse da ohne Port hingeschrieben werden.


    Also da steht EHOSTUNREACH: Error host unreachable. Da steht nicht, dass der Host eine blöde Antwort gibt oder dass er eine Verbindung ablehnt. EHOSTUNREACH heißt nichts anderes als dass es so einen Host gar nicht gibt. Die Gründe dafür sind:

    • Die IP-Adresse ist gibt es nicht
    • Die IP-Adresse ist falsch geschrieben (meine Empfehlung)
    • Die Hue-Bridge hat den Löffel abgegeben und ist abgeschmiert
    • Das WLAN hat den Löffel abgegeben und ist abgeschmiert
    • Das LAN hat den Löffel abgegeben und ist abgeschmiert
    • Du verwendest auf dem Raspi sowohl WLAN und LAN gleichzeitig. Kann HomeKit nicht leiden.
    • Die Hue-Bridge befindet sich aufgrund eines kurzzeitig aufgetretenen Wurmlochs außerhalb der Milchstraße
    • Die Hue-Bridge ist genau da, wo sie sein soll, aber du und dein Raspi befinden sich aufgrund eines kurzzeitig aufgetretenen Wurmlochs außerhalb der Milchstraße

    Viel Erfolg.

    Vielleicht verbirgt sich ja etwas hinter der Meldung zur plugin_map

    Das gehört zu Hoobs und das gibt es in Homebridge-Installationen nicht. Bei Hoobs kann ich nicht helfen.

    Macht es vielleicht Sinn anstelle des https Ports 443 den http Port 80 zu verwenden bzw. explizit dem Host hinzuzufügen "192.168.0.136:80"?

    Das geht nicht, wenn ich mich recht erinnere. Aber es gibt den Parameter forceHttp , der das wohl bewirkt. Ich verwende ihn bei mir.

    Code
            {
                "platform": "Hue",
                "host": "192.168.1.23",
                "lights": true,
                "forceHttp": true,
                "users": {
                    "001783AABB219014": "woDIc1YQLP1mfUGui674fKCpN78-52rUK0mbugWs"
                }
            },


    Mache mal ein Node Update auf die Version 12.18.2LTS

    Vorsicht: Hoobs. Da würde ich nichts derartiges machen. Ich weiß nicht, was das für Auswirkungen auf den Rest hat.

    Error: Connection refused

    Ganz klare Sache und völlig unzweifelhaft: der MQTT-Server läuft nicht auf der Maschine, auf der der Befehl mosquitto_pub gestartet wurde.

    sudo systemctl enable mosquitto.service

    Dieser Befehl sorgt dafür, dass der mosquitto beim Booten des Raspi automatisch gestartet wird.

    bekommm ich zwar keine Fehlermeldung mehr, jedoch kann ich auch nichts in mqttfx beobachten.

    Es kommt in putty aber gleich eine neue Kommandozeile.

    Da soll auch eine neue Zeile kommen. Das Programm hat getan, was es sollte und sich dann beendet. Zumindest das funktioniert schon mal ^^.


    Ansonsten: eigentlich muss man nix Besonderes können - der mosquitto ist ganz pflegeleicht. ich hab damals das hier gelesen und nachgemacht: http://www.steves-internet-gui…osquitto_pub-sub-clients/

    Wäre cool wenn jemand da schon Erfahrung gesammelt hat und mich an dem Wissen teilhaben lässt.

    Meine Erfahrung lautet: wenn man sich langweilt, dann sollte man sich ein Hobby suchen. Installiere auf deinen Computern, was du willst, aber keine Betas von Betriebssystemen. Ich mach das nicht mehr, seit ich mir 1997 eine blutige Nase geholt habe , als ich unbedingt die Beta von MacOS 8.0 installieren musste.


    Man muss das End-of-Life-Datum von Beziehungen nicht unbedingt vorziehen ;)

    Gib auf dem Raspi ein:


    mosquitto_pub -m "ON" -t wohnzimmer/licht/deckenlampe


    und sie dabei zu, was in deinem mqtt.fx passiert. Falls du mosquitto_pub nicht auf deinem Raspi installiert hast, was sich in einem einfachen -bash: mosquitto_pub: command not found widerspiegelt, musst du es auf dem Raspi noch installieren mit


    apt-get install mosquitto-clients


    Wenn man mit MQTT was machen will, muss man sich ein bisschen in das Konzept davon einlesen. Kurz gesagt: ein Client schickt einen Wert unter einem Topic an den MQTT-Broker (hier: mosquitto) und andere Clients, die dieses Topic abonniert (subscribed) haben, reagieren dann darauf. Oben ist der Wert ON und das Topic wohnzimmer/licht/deckenlampe.


    Beispiel (so wie ich MQTT verstanden habe):

    • Dein MQTT-Client homebridge-mqttthing sendet das Topic wohnzimmer/licht/deckenlampe und übergibt damit den Wert ON.
    • Der MQTT-Broker mosquitto empfängt das und sendet es an alle Lampen, die dieses Topic subscribed haben. In diesem Beispiel ist es nur eine einzige, und zwar die Deckenlampe. Die bekommt nun den Wert ON vom MQTT-Broker zugesendet.

    Andere Geräte in deinem Wohnzimmer haben sich mit anderen Topics beim MQTT-Server registriert. Die Stehlampe hört auf wohnzimmer/licht/stehlampe, die indirekte Beleuchtung unterm Sofa hört auf wohnzimmer/licht/sofa. Die Stereoanlage ist wohnzimmer/sound/yamaha.


    Ich benutze jetzt hier in diesem Geschreibsel nicht das Plugin, sondern den Kommandozeilenbefehl mosquitto_pub. Letztendlich macht das das gleiche. Ist natürlich nicht HomeKit-kompatibel, aber prima zum Spielen und Lernen geeignet.

    • Ein mosquitto_pub -m "OFF" -t wohnzimmer/licht/deckenlampe schaltet die Deckenlampe aus.
    • Ein mosquitto_pub -m "OFF" -t wohnzimmer/licht/stehlampe schaltet die Stehlampe aus.
    • Ein mosquitto_pub -m "OFF" -t wohnzimmer/licht/# schaltet alle Lampen aus.
    • Ein mosquitto_pub -m "OFF" -t wohnzimmer/# schaltet alle Geräte im Wohnzimmer aus.
    • Ein mosquitto_pub -m "OFF" -t milchstraße/# schaltet nicht alle Sterne aus.

    Lies auch mal das hier:

    https://de.wikipedia.org/wiki/MQTT


    Die Konfigurationsdatei /etc/mosquitto/mosqitto.conf lässt du komplett in Ruhe und machst damit gar nichts.

    Die OrginalFB ist leider (mE) ein Griff ins Klo. Bin da grundsätzlich aufgeschlossen, aber die Originale Remote ist, auch nach Jahren, nicht mein Ding.

    Ich halte sie grundsätzlich verkehrt herum. Immer auf dem Kopf. Und wenn ich denke "pass auf, du hältst sie bestimmt schon wieder verkehrt herum" und ich sie dann prophylaktisch umdrehe, dann halte sie erst recht verkehrt herum. Das bedeutet, dass ich dann jedesmal anstatt die Lautstärke zu verändern, den Film anhalte oder Siri aufrufe. Das ist ein wirklich mieses Design.


    Dieser Homebutton hätte nach unten gehört. Das kennen wir ja schon vom iPhone und außerdem weiß man dann auch, wo überhaupt oben und unten ist. Wozu dieser Play/Pause-Knopf da ist, weiß der Himmel.


    In diesen Augenblicken höre dann immer ich Steve Jobs' Stimme: "du hältst es falsch".

    edit: das hat aber (auch) damit zu tun, das zB Texteingaben mit so einem Remote-Konzept zwansgsläufig ein Krampf sind.

    Ich benutze inzwischen Siri. Das funktioniert hinreichend gut und geht schneller als eine Texteingabe. Natürlich finde ich die Siri-Taste im Dunkeln nicht und weil ich das Ding schon wieder verkehrt herum halte, ändert sich erstmal die Lautstärke - und nicht nur die Lautstärke meiner Sonos, sondern auch meine eigene.


    Ein einziger Krampf.

    Was mich etwas stutzig machte, dass der Nun das Hue Plugin zwar sich verbindet, aber der Nutzer und Passwort nicht gespeichert wird. Er lädt auch keine angelernten Geräte von der Phoscon app.

    Muss man da vielleicht irgendeinen Befehl zum Abrufen der Geräte machen?

    Ich kann nur helfen bei homebrige-hue zusammen mit der Hue-Bridge, aber bei Deconz bin ich raus - das verwende ich nicht.

    Ein erfolgreicher Start sollte im Log so aussehen:


    Jul 18 09:10:44 bluepi systemd[1]: Started Node.js HomeKit Server.

    Jul 18 09:10:46 bluepi homebridge[12948]: [7/18/2020, 09:10:46] Loaded config.json with 0 accessories and 1 platforms.

    Jul 18 09:10:46 bluepi homebridge[12948]: [7/18/2020, 09:10:46] ---

    Jul 18 09:10:47 bluepi homebridge[12948]: [7/18/2020, 09:10:47] Loaded plugin: [email protected]

    Jul 18 09:10:47 bluepi homebridge[12948]: [7/18/2020, 09:10:47] Registering platform 'homebridge-config-ui-x.config'

    Jul 18 09:10:47 bluepi homebridge[12948]: [7/18/2020, 09:10:47] ---

    Jul 18 09:10:47 bluepi homebridge[12948]: [7/18/2020, 09:10:47] Loading 1 platforms...

    Jul 18 09:10:47 bluepi homebridge[12948]: [7/18/2020, 09:10:47] [Config] Initializing config platform...

    Jul 18 09:10:47 bluepi homebridge[12948]: [7/18/2020, 09:10:47] [Config] Spawning homebridge-config-ui-x with PID 12977

    Jul 18 09:10:47 bluepi homebridge[12948]: Setup Payload:

    Jul 18 09:10:47 bluepi homebridge[12948]: X-HM://0023ISYW87ABC

    Jul 18 09:10:47 bluepi homebridge[12948]: Enter this code with your HomeKit app on your iOS device to pair with Homebridge:

    Jul 18 09:10:47 bluepi homebridge[12948]:

    Jul 18 09:10:47 bluepi homebridge[12948]: ┌────────────┐

    Jul 18 09:10:47 bluepi homebridge[12948]: │ 031-45-154 │

    Jul 18 09:10:47 bluepi homebridge[12948]: └────────────┘

    Jul 18 09:10:47 bluepi homebridge[12948]:

    Jul 18 09:10:47 bluepi homebridge[12948]: [7/18/2020, 09:10:47] Homebridge is running on port 51826.

    Jul 18 09:10:54 bluepi homebridge[12948]: [7/18/2020, 09:10:54] [Config] Homebridge Config UI X v4.23.2 is listening on :: port 8088


    Der blaue Teile des Logs zeigt, wie das Plugin geladen wird. Der grüne zeigt, wie die Homebridge das Plugin bei sich einbaut und der rote sind die ersten Logmeldungen des Plugins selbst.


    Wie sieht dein Log aus?

    /usr/local/bin/homebridge: No such file or directory

    Du musst wohl etwas ändern in /etc/systemd/system/homebridge.service. Der Pfad zur Homebridge stimmt nicht und das verhindert den Start.


    Die Zeile

    ExecStart=/usr/local/bin/homebridge $HOMEBRIDGE_OPTS

    muss angepasst werden.


    Den richtigen Pfad findest du mit dem Befehl

    which homebridge

    Nein, ich speichere die Sensorendaten in eine Datenbank und lass dann die Werte visualisieren. Das sieht dann bei mir so aus:

    Wie du siehst, sind viele Lücken zu erkennen. Ich verwende nicht das homebridge-Plugin, sondern einen eher komplexeren Aufbau, aber das Resultat ist dasselbe wie bei dir. Die Messungen sind nicht vollständig. Ich hab mich damit abgefunden.


    Es kam gelegentlich vor, dass der Bluetooth-Service komplett ausfiel und ich es erst nach einer Weile bemerkt habe:

    Nun ist es ja nicht so, dass meine Pflanzen sofort den Abgang machen, wenn der Bluetooth-Stack auf dem Raspi abraucht - es ist also nicht schlimm, nur außerordentlich lästig. Daher habe ich mir einen Cronjob gebaut, der alle zwei Stunden einen Reset des Bluetooth-Zeugs macht, ganz unabhängig davon, ob das gerade nötig ist oder nicht. Das ist zwar Fehlerbehandlung mit dem Dampfhammer, aber es scheint zu funktionieren.


    Das kannst du auch machen:

    sudo nano /etc/crontab


    Ganz unten hängst du an:

    * */2 * * * root /bin/hciconfig hci0 reset


    Abspeichern, fertig.