Apple Homekit: die Hoffnung stirbt zuletzt

Begonnen von eldrik, 23 Januar 2015, 13:57:07

Vorheriges Thema - Nächstes Thema

volschin

Cool, Siri schaltet jetzt auch Remote über Apple TV.  8)
Intel NUC+Ubuntu 24.04+Docker+FHEM6
HomeMatic: HM-MOD-RPI-PCB+HM-USB-CFG2+hmland+diverse, HUE: Hue-Bridge, RaspBee+deCONZ+diverse
Amzn Dash-Buttons, Siro Rollos
4xRPi, 4xCO20, OWL+USB, HarmonyHub, FRITZ!Box 7690, Echo Dots+Show8, HomeBridge

Paul

#331
@flurin

Danke das du so viel Geduld hast. Aber ich verzweifle.

Also alles nochmal wie du geschrieben hast installiert. Die beiden Dateien an die richtige Stelle kopiert
Config.json angelegt.

Dann npm run start
Und wieder der Fehler

pi@raspberrypi ~/homebridge $ npm run start

> homebridge@0.0.0 start /home/pi/homebridge
> node app.js

Starting HomeBridge server...
undefined:8
        },
         ^
SyntaxError: Unexpected token ,
    at Object.parse (native)
    at Object.<anonymous> (/home/pi/homebridge/app.js:21:19)
    at Module._compile (module.js:460:26)
    at Object.Module._extensions..js (module.js:478:10)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Function.Module.runMain (module.js:501:10)
    at startup (node.js:129:16)
    at node.js:814:3

npm ERR! Linux 3.18.11+
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "run" "start"
npm ERR! node v0.12.6
npm ERR! npm  v2.11.2
npm ERR! code ELIFECYCLE
npm ERR! homebridge@0.0.0 start: `node app.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the homebridge@0.0.0 start script 'node app.js'.
npm ERR! This is most likely a problem with the homebridge package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node app.js
npm ERR! You can get their info via:
npm ERR!     npm owner ls homebridge
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /home/pi/homebridge/npm-debug.log


edit:
So, einen Fehler selbst erkannt ein Komma zuviel in der config.json

aber ist das jetzt eine Fehlermeldung oder nur ein Hinweis , weil avahi hatte ich doch bereits geladen? EVE findet jedenfalls nichts

pi@raspberrypi ~/homebridge $ npm run start

> homebridge@0.0.0 start /home/pi/homebridge
> node app.js

Starting HomeBridge server...
*** WARNING *** The program 'node' uses the Apple Bonjour compatibility layer of Avahi.
*** WARNING *** Please fix your application to use the native API of Avahi!
*** WARNING *** For more information see <http://0pointer.de/avahi-compat?s=libdns_sd&e=node>
*** WARNING *** The program 'node' called 'DNSServiceRegister()' which is not supported (or only supported partially) in the Apple Bonjour compatibility layer of Avahi.
*** WARNING *** Please fix your application to use the native API of Avahi!
*** WARNING *** For more information see <http://0pointer.de/avahi-compat?s=libdns_sd&e=node&f=DNSServiceRegister>
Cubietruck, HM-USB, CUL, FS20, FHT, HUE, Keymatic

flurin

Poste deine config.json

Welche Dateien hast du kopiert? Die nueste FHEM.js Version ist eigentlich in homebridge integriert.

Paul

config.json


        {
            "platform" : "FHEM",
            "name" : "FHEM",
            "server" : "192.168.178.124",
            "port" : "8083"
}     


die FHEM.js und types.js
Cubietruck, HM-USB, CUL, FS20, FHT, HUE, Keymatic

Marie

 Eine kurze Frage zwischendurch:

Wir erschließt sich nicht ganz, wie ich den Homekit Server neu starte.  Kann ich Ihnen über Nohup Start, aber wie  stoppe ich ihn? Beziehungsweise wie restarte ich Ihn um ihn zu einer neuen Suche zu animieren ?

LG und. Danke

Marie
Banana Pi & FHEM2FHEM Raspberry,RS485 Modbus Stromzähler UMG96, diverse Schaltsteckdosen 433 MHz, 868 MHz, MYSENSORS Temperatursensoren , Smartvisu, Homekit & Siri, Geofency, Zwave Rauchmelder & Steckdosen & Garagensteuerung, TabletUi mit BananaPi M2Ultra im Wohnmobil, Homebridge usw.usw.

flurin

#335
Zitat von: Paul am 01 August 2015, 14:38:38
config.json


        {
            "platform" : "FHEM",
            "name" : "FHEM",
            "server" : "192.168.178.124",
            "port" : "8083"
}     


die FHEM.js und types.js

Die WARNINGS kann man ignorieren, das ist Okey

Du hättest FHEM.js nicht überschreiben müssen. Überprüfe, ob du die neuste Version hast.

Bei mir sieht config.json so aus:


{                                         
    "platforms": [                         
        {                                 
            "platform": "FHEM",           
            "name": "FHEM",               
            "server": "192.168.178.124",         
            "port": "8083",               
            "filter": "genericDeviceType=..*"
        }                 
    ],                                     
                                           
    "accessories": []                     
}


Hast du bei deinen devices in Fhem genericDeviceType definiert?

Paul

DANKE DANKE DANKE
jetzt klappt es mit Hilfe deiner config.json
Cubietruck, HM-USB, CUL, FS20, FHT, HUE, Keymatic

Mathelf

Hallo,

Super Projekt! Ich hatte auch Startschwierigkeiten mit der Installatin der homebridge. Bei mir hat es dann auf Anhieb gemäß dieser Anleitung geklappt:

http://www.domoticz.com/wiki/Homekit_Siri

Viele Grüße

Matthias

rapster

Servus zusammen,

Nochmal ein dickes DANKE Andre für deine Mühe die du in das tolle Projekt steckst :-)

Siri tut generell bei mir ja schonmal ganz gut mit fhem zusammenarbeiten,

allerdings habe ich es noch nicht geschafft über eine Sprachbefehl meine HM-Blind-Aktoren zu steuern.

GenericDeviceType ist auf blind gestellt und über eve lassen sie sich auch steuern, nur welchen Sprachbefehl muss ich dazu verwenden?

Bei z.B. "Stelle Wohnzimmer Fenster hinten auf 50%" sagt mir siri immer sie hätte keine Geräte gefunden :-/

P.S. verwende IOS9 public beta 2

Grüße!

justme1968

siehe oben. ein offizieller support call bei apple dazu wurde beantwortet das ich statt dessen einen bug Report auf machen soll und der call wurde zurück erstattet.

zumindest auf deutsch scheinen rolläden noch nicht per siri zu gehen.

das gilt auch für den homekit simulator.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

rapster

Wald vor lauter Bäumen nicht gesehen :-) Gestern erst deinen Post bzgl. des Apple Tickets gelesen, und heute schon wieder vergessen ;D

Schade, wird aber bestimmt (hoffe ich doch) noch kommen.
Habe Siri eben mal auf Englisch umgestellt, damit hat es zumindest nach einem kurzen Test auch nicht funktioniert.

Danke & Gruß

rapster

#341
Vll. kanns ja jemand gebrauchen, da ich irgendwo weiter vorne über Probleme mit dem Starten über cron gelesen habe (das Homebridge zu früh gestartet wird).

Ich starte bei mir den Homebridge Server mit forever über folgendes notify (fhem läuft bei mir als root, sonst muss evtl. noch mit sudo gearbeitet werden):
define ntfy_homebridge notify global:(INITIALIZED|SHUTDOWN) {
if ($EVENT eq "INITIALIZED") {
if(`forever list` =~ /No forever processes running/) {
return `/usr/bin/forever start --spinSleepTime 1000 --minUptime 1000 --no-colors --workingDir /opt/fhem/homebridge -l /opt/fhem/homebridge/log.log -a /opt/fhem/homebridge/app.js`;
}
}
elsif ($EVENT eq "SHUTDOWN") {
if(`forever list` !~ /No forever processes running/) {
return `/usr/bin/forever stopall --no-colors`;
}
}
}


Dadurch sollte immer gewährleistet sein das Fhem beim start der homebridge läuft, und die homebridge ebenfalls bei einem fhem-shutdown beendet wird.

Ebenfalls kann ich so relativ einfach über die Fhem Befehlzeile und einem { `forever restartall --no-colors` } den Homebridge-Server neustarten, oder mir über { `forever list --no-colors` } den Status ausgeben lassen.

_______________________________
EDIT:
Hier nochmal eine zweite Version welche auch als Makro-Notify verwendet werden kann:
define ntfy_homebridge notify global:(INITIALIZED|SHUTDOWN)|ntfy_homebridge:(restart|start|stop) {
    my %dispatch = (
        start => sub { `/usr/bin/forever start --spinSleepTime 1000 --minUptime 1000 --no-colors --workingDir /opt/fhem/homebridge -l /opt/fhem/homebridge/log.log -a /opt/fhem/homebridge/app.js` },
        stop => sub { `/usr/bin/forever stopall --no-colors` },
        restart => sub { `/usr/bin/forever restartall --no-colors` }
    );
    my $return = '';
   
    if ($EVENT =~ /INITIALIZED|^start/i) {
        if(`forever list` =~ /No forever processes running/) {
            $return = $dispatch{start}->();
        } else {
              $return = "start requestet but a forever process is already running.";
        }
    }
    elsif ($EVENT =~ /SHUTDOWN|stop/i) {
        if(`forever list` !~ /No forever processes running/) {
            $return = $dispatch{stop}->();
        } else {
              $return = "stop requestet but no forever processes are running.";
        }
    }
    elsif ($EVENT =~ /restart/i) {
        if(`forever list` !~ /No forever processes running/) {
            $return = $dispatch{restart}->();
        } else {
              $return = "restart requestet but no forever processes are running. Will do 'start' instead.\n";
            $return .= $dispatch{start}->();
        }
    }
   
    $return =~ s/\R$//;
    return $return;
}

Hierdurch kann man den Homebridge Server zusätzlich durch folgende FHEM-Befehle...

Neustarten:   trigger ntfy_Homebridge restart
Stoppen:       trigger ntfy_Homebridge stop
Starten:         trigger ntfy_Homebridge start

rapster

Ich wollte den genericDeviceType bei meinen BlindActors mal auf "switch" ändern, damit siri diese evtl. zumindest auf "on" und "off" stellen kann bis Apple den Bug gefixt hat.

In Eve tauchen die Geräten weiterhin mit %wert auf, lassen sich aber nicht mehr steuern,
im HB-Log steht ebenfalls weiterhin '...  has motor', sollte da jetzt nicht stehen "is switch" ?

Oder ist der deviceType noch nicht implementiert, bzw. greift vorrangig die automatische Erkennung?

Oder muss ich für diese Geräte lediglich das Homekit Pairing erneut durchführen?

justme1968

motor ist unabhängig vom device type und zusätzlich vorhanden.

wenn sich zur laufzeit eine characteristic ändert oder hinzugefügt bzw. entfernt wird dann wird das zur laufzeit erkannt. wenn sich die service klasse ändert musst aber das pairing gemacht werden.

du kannst statt switch sogar light probieren wenn es ein hm aktor ist der pct kann. du musst dann nur aufpassen wenn du alle lampen auf ein mal ansprichst. lampen an ist dann rollladen hoch.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

rapster

#344
Danke Andre, das hat beim 1. BlindAktor super funktioniert mit dem neu pairen und siri konnte es im Anschluss auch sauber schalten.

Beim 2. BlindAktor hab ich jetzt wieder ein Problem welches ich am Anfang schon oft hatte...

1. ich lösche das Device aus Eve,
2. das 2. file zur ID aus dem persist Ordner wird automatisch gelöscht, im ersten file steht allerdings weiterhin "paired:true"
3. ich löschen auch noch das 1. ID File aus dem Persist-Ordner und starte die homebridge einmal neu damit es wieder da ist.
4. Versuche das Geräte wieder zu Homekit hinzuzufügen und klappt nicht, Eve kehrt nach der Code-Eingabe wieder zurück zur Geräte-Suche, MyTouchHome bringt Fehlermeldung "not found".

Ich habe das Problem immer durch zurücksetzen der Homekit-DB auf dem iPhone sowie zurücksetzen des Schlüsselbunds behoben.
Nur muss es wirklich dieser Hardcoreweg sein, oder gibt es hierfür auch eine bessere Lösung?

Warum tritt das Problem überhaupt auf, mache ich was falsch? Hätte ich evtl. das 1. ID-File garnicht löschen dürfen?

Edit:
Grad nochmal bei einem anderen Device Probiert, ohne löschen des ID-Files wird das Device nicht zum neu Pairen angeboten.
Also daran kanns schonmal nicht liegen :-/
... Bei dem Device hat das neu Pairen jetzt auch funktioniert...