Beiträge von sschuste

    Nein. Nein. Nein. Niemals. Nicht mal für Geld. Vergiss es. Wenn ein Plugin wirklich diese Rechte bräuchte, von der die Fehlermeldung faselt, dann würde ich mich aufraffen und den Entwickler zu verdreschen.


    Die Fehlermeldung lautet:

    permission denied, mkdir /.node-persist


    Was passiert da also? Das Plugin will ein Verzeichnis anlegen und zwar im allerhöchsten Verzeichnis des Raspi. Das oberste Verzeichnis heißt / und das Verzeichnis, das angelegt werden soll, heißt .node-persist. Es kommt wirklich nur sehr selten vor, das man ein Verzeichnis in der obersten Hierarchie-Ebene anlegen will, und wenn man das will, dann ist man root und man weiß, warum man das will. Aber auf keinen Fall ist man irgendein popliges Plugin.


    Kein Plugin wird auf unsere Rechner irgendwo irgendwas anlegen, sondern genau da, wo es das darf und wir das wollen. Wir schütten auch kein Frostschutzmittel in unsere Tanks, nur weil wir das können. Wir schicken auch keine Omas in die falsche Richtung, wenn sie nach dem Weg fragen, nur weil wir das können. Wir erlauben keinem Plugin, ins oberste Verzeichnis zu schreiben, nur weil wir das können.


    Die Installationsanleitung für config.json schreibt:

    Dort steht, dass das cache_directory .node-persist/storage dort angelegt werden soll, wo das Plugin gestartet wird (und zwar in ./, wo immer das sein mag, ich weiß es nicht!). Ich würde es in den homebridge-Ordner /var/homebridge legen. Meine Konfiguration an dieser Stelle wäre also:


    Code
                    "cache_directory": "/var/homebridge/node-persist/storage",


    Dort hat homebridge die Erlaubnis zu schreiben. Ich würde es auch dorthin legen, damit ich weiß, wo es ist.


    Disclaimer: ich habe das Plugin homebridge-http-webhooks weder im Einsatz noch je betrieben.


    Stefan

    leider alles nicht mehr möglich, keine Ahnung was ich da verbockt habe:cursing:

    Dann geht's nur noch per Tastatur mit dem root-Login. Falls du das Passwort weißt.


    Verbockt hast du den Eintrag in /etc/sudoers.d/homebridge. Da ist ein Fehler drin. Ein anderer Fehler ist, dass die Anleitung hier im Forum genau an der Stelle schwächelt. Ich werde das verbessern.


    Bitte verwende an der Stelle, wo die Datei /etc/sudoers.d/homebridge erstellt wird, nicht den Befehl

    sudo nano /etc/sudoers.d/homebridge, sondern sudo visudo /etc/sudoers.d/homebridge. Der Befehl visudo checkt, ob du einen Fehler gemacht hast und lässt dich die Datei nicht speichern, falls dem so ist. Damit soll genau dein Dilemma vermieden werden.


    Also: nicht nur deine Schuld.


    Stefan

    ich danke dir, könnte aber gerade echt kotzen, habe mich scheinbar ausgesperrt - noch nicht einmal sudo su funzt


    Code
    pi@raspberrypi:~ $ sudo su reboot
    >>> /etc/sudoers.d/homebridge: Syntax-Fehler near line 1 <<<
    sudo: Syntax-Fehler in /etc/sudoers.d/homebridge bei der Zeile 1
    sudo: Keine gültige sudoers-Quelle gefunden, Programmende
    sudo: Regelwerks-Plugin konnte nicht initialisiert werden

    Geht denn noch ein sudo nano /etc/sudoers.d/homebride?

    Oder ein sudo visudo /etc/sudoers.d/homebride?

    Oder ein sudo rm /etc/sudoers.d/homebride?


    Gruß

    Ich bin jetzt am überlegen die ganze Geschichte von vorn, neu aufzusetzen werde. Meine alte Config habe ich mir schon gesichert.... nun meine Frage an die Profis, wenn ich das mache muss ich die Bridge mit dem neuen Image aber alter Config neu in HomeKit integrieren ? oder glaubt HomeKit das es die alte Bridge ist ?! .... ich habe bei der Bridge zig Automation hinterlegt, welche ich ungern neu erstellen möchte.

    HomeKit wird die Bridge einfach wieder erkennen. Es wird erst blöd, wenn du die Homebridge aus HomeKit entfernst. Also lass die da drin. Gut ist es immer, wenn der Raspi auch die gleiche IP-Adresse erhält.


    Alles was du sichern musst, ist das Verzeichnis /var/homebridge.


    Stefan

    Theoretisch geht das schon, indem man auf die API von Homebridge zugreift. Immerhin gibt es ja in der config.json einen Port für Homebridge in der Bridge-Section) und homebridge-alexa und homebridge-config-ui-x machen es ja auch. Allerdings muss die Homebridge dazu im insecure mode gestartet werden.


    Ein curl -X PUT http://127.0.0.1:51826/accessories --header "Content-Type:Application/json" --header "authorization: 031-45-154" ergibt schon mal eine Menge Output.


    Das kann man hübscher ausgeben, wenn man es durch das json.tool von Python jagt:

    curl -X PUT http://127.0.0.1:51826/accessories --header "Content-Type:Application/json" --header "authorization: 031-45-154" | python -m json.tool


    und direkt in den Editor damit:

    curl -X PUT http://127.0.0.1:51826/accessories --header "Content-Type:Application/json" --header "authorization: 031-45-154" | python -m json.tool | nano -


    Jetzt muss man nur noch die richtige aid und iid für die Lampe herausbekommen und schon kann losgehen:

    curl -X PUT http://127.0.0.1:51826/characteristics --header "Content-Type:Application/json" --header "authorization: 031-45-154" --data "{ \"characteristics\": [{ \"aid\": 2, \"iid\": 9, \"value\": 0}] }" schaltet irgendwas aus :D


    Eine andere Möglichkeit sehe ich nicht. Es gibt keine cmd-Tools für Homebridge - leider. Und nein, ich habe mir diese Bastelei erspart.


    Stefan

    Na also, geht doch :D


    Entweder kommt ein connection refused und dann ist der Port nicht offen oder es kommt was anderes, und dann ist der Port offen. Ein HTTP 500 ist eine klare Antwort. Das ist der richtige Port. Falsch ist das, was damit angestellt wird.


    Ein Browser holt standardmäßig eine Seite via HTTP-GET. Das Pythonscript aber macht einen HTTP-POST, um gleichzeitig ein paar Daten an die API des Fernsehers mitzusenden. Das kannst du mit dem Browser nicht nachstellen. Daher rührt wahrscheinlich der HTTP 500.


    Ich würde jetzt versuchen, philips.py zu verändern, indem ich es in einen Editor öffne und dort die Zahl 1926 durch die Portnummer, die dir den 500er gegeben hat, ersetze. Aber ich schätze, letztendlich wirst du denjenigen fragen müssen, der das philips.py programmiert hat.


    Gruß

    Ich hab null Ahnung von dem Zeugs, dass du da brauchst, ich kann bushjäger nicht mal richtig schreiben, aber vielleicht mal als Anstoß:


    Die API kann wahrscheinlich auf den Mac, aber das würde ich ich nicht machen. Besser auf den Raspi.


    Die Installationsanleitung sagt:


    1. install node.js: https://nodejs.org/
    2. clone the repository: git clone [email protected]:sstadlberger/home.git
    3. cd into the project root and install the node modules: npm install
    4. configure the config.js, data.json and structure.json files (see the files themselves and below for more information)
    5. run it with: node home.js (possible options: --logLevel=debug --useWeather --useDB --useHomematic)
    • Punkt 1 ist bereits geschehen, als du Homebridge installiert hast. Also überspringen.
    • Punkt 2 funktioniert bei mir so nicht, aber mit git clone https://github.com/sstadlberger/home.git. Damit wird im aktuellen Verzeichnis ein Unterverzeichnis namens home angelegt. Dadrin befindet sich irgendein Zeugs.
    • Punkt 3 bedeutet nichts anderes als cd home und dann npm install. Das erzeugt in dem Unterverzeichnis home die notwendige Software. Ich finds nicht toll an dieser Stelle, und ich hätte es installiert mit sudo npm -g install, aber da ich das alles nicht richtig testen kann, bleibt's beim ersten Kommando.
    • Punkt 4 heißt, dass du mit dem Editor nano Dateien bearbeiten sollst. Diese Dateien befinden sich im Unterverzeichnis config. Allerdings haben sie die falschen Namen. Du sollst sie erst umbenennen. Du sollst folgendes tun:
      cp config/config.default.js config/config.js
      cp config/data.default.js config/data.js 
      cp config/structure.default.js structure.js

      und dann bearbeiten:
      nano config/config.js
      nano config/data.js
      nano config/structure.js


    • Und wenn alles ok ist, dann sollst du die API starten mit:
      node home.js


    Was soll ich sagen? Davon habe ich so gut wie nix getestet. Aber das ist gemeint. Beim nächsten Start des Raspi läuft die API erstmal nicht und muss wieder per Hand gestartet werden. Wenn du soweit bist, dass es klappt, zeige ich dir, wie man das automatisieren kann.


    Stefan

    Ich habe mal einen Blick in den Source Code des Plugins geworfen, und das versucht auf Port 1925 zu connecten. Das Python-Script philips.py versucht's auf Port 1926. Ohne zu wissen, wie die ganze Geschichte funktioniert, kommt mir dass ein wenig merkwürdig vor.


    Gibt es ein Ergebnis in deinem Browser, wenn du die obige Adresse abänderst in http://192.168.0.165:1925/6/pair/request? Weiterhin wird im Plugin die API-Version 5 verwendet, die Adresse enthält aber den String /6/.


    Stefan

    Da ich beabsichtige diverse Homematic und Bitronprodukte per Plugins einzubeziehen, stellt sich mir die Frage, ob die Homebridge eine Zigbee -Erweiterung benötigt und welche ihr eventuell empfehlen könnt?

    Damit kenne ich mich nicht aus.


    Was den Raspi angeht: ich hab ein Komplettpaket gekauft, weil ich keine Lust auf lange Herumsucherei und anschließende Basteleien hatte.


    Stefan

    Möchte gerne Rückmeldung geben, um Anregungen zu geben, die Anleitung vielleicht zu optimieren

    Hi, danke für die Kritik. Vielleicht möchtest du da noch weiter gehen und die Fehlermeldungen hier posten, damit ich sie mir anschauen kann.


    Du schreibst:

    Zitat

    Was mich mich als Laie verunsichert, sind Fehlermeldungen, die halt kommen, weil die Files aus dem Internet aktueller sind als in der Installationsanleitung - und hoffe das trotzdem alles OK ist , passt und läuft. Nachdem immer die Eingabeaufforderung ohne Fehlermeldung kam, dann aber die weiteren Eingaben 2x nicht funktionierten, hab ich den Pi vom Netzteil abgesteckt, neugestartet, dann gings wieder weiter :)

    Die Fehlermeldungen meine ich. Den Pi vom Netzteil abstecken und neu starten ist natürlich eine Hammermethode, die sicherlich überhaupt nichts bewirkt. Das geht vielleicht mit Windows 95 so, aber eher nicht mit einer Linux-Maschine.


    Zitat

    Was nicht läuft - weder mit dem Mac, noch unter der Powershell in Windows ist Folgendes:


    pi@raspberrypi:~ $ homebridge ALL=(ALL) SETENV:NOPASSWD: ALL

    -bash: syntax error near unexpected token `('

    Das liegt daran, dass das auf keinem Rechner der Welt funktioniert. Oder halt genauso gut wie die Eingabe von "Eintracht Frankfurt führt zu Recht 1:0". Was du da als Kommando in die Shell (also an die Stelle, die Kommandos akzeptiert, in Microsoft-Deutsch: Eingabeaufforderung) geschrieben hast, ist kein Kommando. Du hast dem Rechner einen Befehl gegeben, den er nicht kennt.


    Dieser Part gehört in eine Datei, die man öffnet, es dort hineinschreibt und wieder speichert. Irgendein Programm wird später diese Datei öffnen und den Inhalt einlesen und damit was anfangen. In diesem Fall heißt die Datei homebridge und sie liegt im Ordner sudoers.d, der wiederum im Ordner etc liegt, und der liegt im obersten Verzeichnis deiner Festplatte/SD-Card/USB-Stick. Damit man da nicht so ellenlange Sätze wie den vorherigen schreiben muss, um den Speicherplatz zu beschreiben, nennt man die Datei /etc/sudoers.d/homebridge. Sie kann bearbeitet werden mit dem Programm nano und der Befehl, um sie zu bearbeiten heißt dementsprechend


    nano /etc/sudoers.d/homebridge


    Und da du die Datei nicht bearbeiten darfst, weil du nicht die erforderlichen Rechte dazu hast, brauchst du noch das Programm sudo, und das ruft dann das Programm nano auf, das die Datei /etc/sudoers.d/homebridge einliest: sudo nano /etc/sudoers.d/homebridge


    Und wenn das Editorprogramm nano geöffnet ist, dann schreibt am man diese Stelle homebridge ALL=(ALL) SETENV:NOPASSWD: ALL und speichert den Sermon ab. Wie in der Anleitung beschrieben solltest du das nur tun, wenn es wirklich notwendig ist.

    Zitat

    Was ich gut finden würde, wäre am Schluss der Inst.Anleitung bezüglich des Software-Aufsetzens noch ne kleine Zusammenfassung, wie man den Pi ab jetzt anspricht unter ssh - welcher username & passwort. Ich hab erstmals probieren müssen, weil ich ja keine Detailkenntnisse bis jetzt habe ... raspberrypi.... homebridge...root... raspberry.fritz.box... bis ich durch rumprobieren und nochmal alles nachlesen verstanden habe, dass der Benutzer Pi ist der richtige ist...


    Oh. Ich dachte, das sei klar, nachdem du die ganze Zeit mit nur dem User pi und dem Passwort, das du selber vergeben hast, deinen Raspi angesprochen hast. Ich werde es etwas deutlicher machen.


    Es kommt mir ein bisschen so vor, als hättest du den Text eher flüchtig gelesen und dich vor allem auf die Kommandos beschränkt.


    Stefan

    kurze frage leider kann ich per vpn ja kein Broadcast senden um aktionen auf den pi per vpn zu akivieren. ich komme aber über meinen pc auf den rasperry direkt von aussen aus. kann ich auf den rasperry direkt die home scenen ausführen ohne über das iphone home zu gehen? Apple tv hab ich net mehr weil es da reine glücksache war ob es remote geht oder net


    danke

    Wahrscheinlich bin ich ein Glückspilz, denn mein AppleTV4 hat in den letzten 30 Monaten nicht ein einziges Mal geschwächelt. Soll heißen, die Quote, dass es remote funktioniert, liegt bei mir bei 100%.


    Was für Aktionen willst du denn per Broadcast aktivieren? Wozu Broadcast? Wenn du über VPN auf deinen PC kommst, wieso dann nicht auf deinen Raspi?


    Wenn du keine Zentrale verwendest wie einen AppleTV, ein iPad oder HomePod, dann werden die Szenen auf deinem iPhone gespeichert. Ist ja sonst nix anderes da. Ich kann mir vorstellen, dass sie auch zusätzlich in der Cloud gespeichert werden, aber das kann dir ja egal sein, denn zu Hause ist ja nichts da, das damit was anfangen kann. Auf deinem Raspi sind gar keine Szenen gespeichert.


    Was du willst, ist also eine Software, die die Apple-Steuerzentralen ersetzt, die iCloud connected und dann so agiert wie beispielsweise ein AppleTV. So etwas ist mir nicht bekannt.


    Stefan