Apple Homekit: die Hoffnung stirbt zuletzt

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

Vorheriges Thema - Nächstes Thema

budy

Heute kam ein Update für die EVE App raus und was soll ich sagen, als ich nach Hause kam, da funktionierte meine zweite "Ghost" Homebridge "immer" noch - oder wieder.

Ich habe eben mal die Homekit-Settings unter Datenschutz zurückgesetzt und dann sehe ich mal, ob sich da etwas geändert hat.
Debian stretch, FHEM 5.9.
HM-CC-RT-DN, HM-ES-PMSw1-Pl, HM-LC-Dim1TPBU-FM, HMUARTLGW, HMLAN, HM-SEC-KEY, HM-SEC-RHS, HM-SEC-SC-2, HM-SEC-SCo, HM-SEC-SD-2, HM-OU-CFM-TW, div. HUEs, Wifilight, Ring Video Pro

thomaso

Warum wird von der homebridge ein Dummy Device ignoriert :)?

Wollte ein Dummy device mit einem State anlegen, hinterlegt mit einem Notify, welches dann ein Skript am Raspberry aufruft.

Jedoch schreibt er mir beim starten von homebridge, dass der Dummy ignoriert wird.

Hat das eine Begründung bzw. wie könnte ich das sonst lesen?
Raspberry Pi 3
CUL USB Stick
FHEM mit HM_SEC_SC2, HM-Sen-MDIR-WM55, HM-CC-RT-DN, HM-TC-IT-WM-W-EU, HM-SEC-SIR-WM
MiLight WLAN Modul + paar RGBW LED Lampen

budy

Hast du genericDevice = switch und setList = on off im Dummy gesetzt?
Debian stretch, FHEM 5.9.
HM-CC-RT-DN, HM-ES-PMSw1-Pl, HM-LC-Dim1TPBU-FM, HMUARTLGW, HMLAN, HM-SEC-KEY, HM-SEC-RHS, HM-SEC-SC-2, HM-SEC-SCo, HM-SEC-SD-2, HM-OU-CFM-TW, div. HUEs, Wifilight, Ring Video Pro

thomaso

#1623
Danke für den Tipp!
An dem ist es gelegen :)

Jedoch funktioniert anscheinend das Notify noch nicht so recht...hätte es so gemacht, wie ich es auch für einen anderen Aufruf verwende, jedoch schreibt er weder einen Eintrag in das Log noch wird die Funktion aufgerufen.

# Heizung Dummy
define Heizung dummy
attr Heizung genericDeviceType switch
attr Heizung room Homekit
attr Heizung setList on off
attr Heizung webCmd on:off

define n_HeizungActiveNotify notify Heizung:state:.* IF ([Heizung:state] eq "on") ({ system("sudo /home/pi/Scripts/sudowebscript.sh activateHeatingWeb") })
attr n_HeizungActiveNotify room System


Wo liegt hier der Fehler?

EDIT:
hab es jetzt so gelöst und das Heizung aktivieren/deaktivieren funktioniert nun auch über Siri :D

define n_HeizungActiveNotify notify Heizung:on { system("sudo /home/pi/Scripts/sudowebscript.sh activateHeatingWeb") }
attr n_HeizungActiveNotify room System

Raspberry Pi 3
CUL USB Stick
FHEM mit HM_SEC_SC2, HM-Sen-MDIR-WM55, HM-CC-RT-DN, HM-TC-IT-WM-W-EU, HM-SEC-SIR-WM
MiLight WLAN Modul + paar RGBW LED Lampen

Freddy

Hallo ich komme nicht weiter hat einer für mich ein Tip! :-\

pi@raspberrypi ~/homebridge $ npm install -g homebridge
npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules
/usr/local/lib
└─┬ homebridge@0.2.11
  ├─┬ chalk@1.1.1
  │ ├── ansi-styles@2.1.0
  │ ├── escape-string-regexp@1.0.3
  │ ├─┬ has-ansi@2.0.0
  │ │ └── ansi-regex@2.0.0
  │ ├── strip-ansi@3.0.0
  │ └── supports-color@2.0.0
  ├─┬ commander@2.8.1
  │ └── graceful-readlink@1.0.1
  ├─┬ hap-nodejs@0.0.3
  │ ├─┬ curve25519@1.1.0  (git://github.com/KhaosT/node-curve25519.git#922eae612bb379fa84e8deb29f80c53d57c8be7b)
  │ │ ├── bindings@1.2.1
  │ │ └── nan@2.1.0
  │ ├─┬ debug@2.2.0
  │ │ └── ms@0.7.1
  │ ├── ed25519@0.0.3  (git://github.com/KhaosT/ed25519.git#6356bc9e6e4643d56020293c14920ac12bcaa1ac)
  │ ├─┬ mdns@2.2.10
  │ │ └── nan@2.0.9
  │ ├─┬ node-persist@0.0.3
  │ │ ├── mkdirp@0.3.5
  │ │ └── q@1.1.2
  │ └─┬ srp@0.2.0  (git://github.com/KhaosT/node-srp.git#7feff53254897a0b1b9f0667ad17a8beb78acbb9)
  │   └── bignum@0.11.0
  └── semver@5.0.3

npm ERR! Linux 4.1.13+
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "-g" "homebridge"
npm ERR! node v5.0.0
npm ERR! npm  v3.3.6
npm ERR! path /usr/local/lib/node_modules
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall access

npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
npm ERR!     at Error (native)
npm ERR!  { [Error: EACCES: permission denied, access '/usr/local/lib/node_modules']
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'access',
npm ERR!   path: '/usr/local/lib/node_modules' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.

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

thomaso

Raspberry Pi 3
CUL USB Stick
FHEM mit HM_SEC_SC2, HM-Sen-MDIR-WM55, HM-CC-RT-DN, HM-TC-IT-WM-W-EU, HM-SEC-SIR-WM
MiLight WLAN Modul + paar RGBW LED Lampen

dennis87

Nachdem es gestern Abend immer noch lief, war ich mutig und habe eine HUE hinzugefügt, heute Morgen war dann wieder alles nicht aktualisiert :(

dennis_n

Also ich mache die HUE Lampen über die neue HueBridge.
Funktioniert bestens.

Die ist aktuell im Apple Online Store im Angebot für 40 EUR.

Probleme machen bei mir nur die Rolläden.

Gruss
Dennis

budy

Na ja... beim einen sollen es die HUEs sein, beim anderen die Rolläden... ich denke eher, dass es doch etwas generelles mit der homebridge ist. Ich hatte meine gestern Abend noch mal eingerichtet und heute morgen war's dann wieder tot. Vielleicht versuche ich es wirklich mal nur mit ein, zwei Dummies...
Debian stretch, FHEM 5.9.
HM-CC-RT-DN, HM-ES-PMSw1-Pl, HM-LC-Dim1TPBU-FM, HMUARTLGW, HMLAN, HM-SEC-KEY, HM-SEC-RHS, HM-SEC-SC-2, HM-SEC-SCo, HM-SEC-SD-2, HM-OU-CFM-TW, div. HUEs, Wifilight, Ring Video Pro

thomaso

funktioniert das mit dem Dienst anlegen, damit es automatisch startet bei jedem?

Habt ihr das so wie auf http://www.meintechblog.de/2015/10/mit-siri-und-fhem-das-gesamte-smart-home-per-stimme-steuern/ beschrieben steht gemacht?
Raspberry Pi 3
CUL USB Stick
FHEM mit HM_SEC_SC2, HM-Sen-MDIR-WM55, HM-CC-RT-DN, HM-TC-IT-WM-W-EU, HM-SEC-SIR-WM
MiLight WLAN Modul + paar RGBW LED Lampen

dennis87

Zitat von: thomaso am 17 November 2015, 11:00:41
funktioniert das mit dem Dienst anlegen, damit es automatisch startet bei jedem?

Habt ihr das so wie auf http://www.meintechblog.de/2015/10/mit-siri-und-fhem-das-gesamte-smart-home-per-stimme-steuern/ beschrieben steht gemacht?

Also bei mir sieht es so aus:

#!/bin/sh
### BEGIN INIT INFO
# Provides: homebridge
# Required-Start:    $network $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start daemon at boot time
# Description:       Enable service provided by daemon.
### END INIT INFO

dir="/home/cubie"
cmd="homebridge"
user="cubie"

name=`basename $0`
pid_file="/var/run/$name.pid"
stdout_log="/var/log/$name.log"
stderr_log="/var/log/$name.err"

get_pid() {
    cat "$pid_file"
}

is_running() {
    [ -f "$pid_file" ] && ps `get_pid` > /dev/null 2>&1
}

case "$1" in
    start)
    if is_running; then
        echo "Already started"
    else
        echo "Starting $name"
        cd "$dir"
        if [ -z "$user" ]; then
            sudo $cmd >> "$stdout_log" 2>> "$stderr_log" &
        else
            sudo -u "$user" $cmd >> "$stdout_log" 2>> "$stderr_log" &
        fi
        echo $! > "$pid_file"
        if ! is_running; then
            echo "Unable to start, see $stdout_log and $stderr_log"
            exit 1
        fi
    fi
    ;;
    stop)
    if is_running; then
        echo -n "Stopping $name.."
        kill `get_pid`
        for i in {1..10}
        do
            if ! is_running; then
                break
            fi

            echo -n "."
            sleep 1
        done
        echo

        if is_running; then
            echo "Not stopped; may still be shutting down or shutdown may have failed"
            exit 1
        else
            echo "Stopped"
            if [ -f "$pid_file" ]; then
                rm "$pid_file"
            fi
        fi
    else
        echo "Not running"
    fi
    ;;
    restart)
    $0 stop
    if is_running; then
        echo "Unable to stop, will not attempt to start"
        exit 1
    fi
    $0 start
    ;;
    status)
    if is_running; then
        echo "Running"
    else
        echo "Stopped"
        exit 1
    fi
    ;;
    *)
    echo "Usage: $0 {start|stop|restart|status}"
    exit 1
    ;;
esac

exit 0


Dann musst du natürlich noch dir, cmd und user anpassen, wenn es bei dir nicht passt.

Danach kannst du dann die folgenden schritte von meintechblog nehmen.

onkel-tobi

Hi,

habe mir homebridge gestern installiert, lief auch soweit, bis ich versucht habe in eve ein paar Namen abzuändern.
Habe schon da eine Fehlermeldung beim Umbenennen erhalten und als ich den service neu gestartet habe bekomme ich nun folgende Fehlermeldung:


[FHEM]     position state characteristic for eg_wz_rollo
/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/Accessory.js:164
      throw new Error("Cannot add a bridged Accessory with the same UUID as another bridged Accessory: " + existing.UUID);
      ^

Hat wer von euch da eine Idee?

Gruß,
Tobi

thomaso

Zitat von: dennis87 am 17 November 2015, 14:36:02
Also bei mir sieht es so aus:

#!/bin/sh
### BEGIN INIT INFO
# Provides: homebridge
# Required-Start:    $network $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start daemon at boot time
# Description:       Enable service provided by daemon.
### END INIT INFO

dir="/home/cubie"
cmd="homebridge"
user="cubie"

name=`basename $0`
pid_file="/var/run/$name.pid"
stdout_log="/var/log/$name.log"
stderr_log="/var/log/$name.err"

get_pid() {
    cat "$pid_file"
}

is_running() {
    [ -f "$pid_file" ] && ps `get_pid` > /dev/null 2>&1
}

case "$1" in
    start)
    if is_running; then
        echo "Already started"
    else
        echo "Starting $name"
        cd "$dir"
        if [ -z "$user" ]; then
            sudo $cmd >> "$stdout_log" 2>> "$stderr_log" &
        else
            sudo -u "$user" $cmd >> "$stdout_log" 2>> "$stderr_log" &
        fi
        echo $! > "$pid_file"
        if ! is_running; then
            echo "Unable to start, see $stdout_log and $stderr_log"
            exit 1
        fi
    fi
    ;;
    stop)
    if is_running; then
        echo -n "Stopping $name.."
        kill `get_pid`
        for i in {1..10}
        do
            if ! is_running; then
                break
            fi

            echo -n "."
            sleep 1
        done
        echo

        if is_running; then
            echo "Not stopped; may still be shutting down or shutdown may have failed"
            exit 1
        else
            echo "Stopped"
            if [ -f "$pid_file" ]; then
                rm "$pid_file"
            fi
        fi
    else
        echo "Not running"
    fi
    ;;
    restart)
    $0 stop
    if is_running; then
        echo "Unable to stop, will not attempt to start"
        exit 1
    fi
    $0 start
    ;;
    status)
    if is_running; then
        echo "Running"
    else
        echo "Stopped"
        exit 1
    fi
    ;;
    *)
    echo "Usage: $0 {start|stop|restart|status}"
    exit 1
    ;;
esac

exit 0


Dann musst du natürlich noch dir, cmd und user anpassen, wenn es bei dir nicht passt.

Danach kannst du dann die folgenden schritte von meintechblog nehmen.

Super das funktioniert jetzt alles super :)! Danke für die Config!

Bei mir funktioniert das verbinden auch nicht mehr, sobald ich ein Dummy Device, welches als Thermostat angelegt ist, dem Homekit Room hinzufüge. Ansonsten lauft es bisher sehr gut und stabil.
Raspberry Pi 3
CUL USB Stick
FHEM mit HM_SEC_SC2, HM-Sen-MDIR-WM55, HM-CC-RT-DN, HM-TC-IT-WM-W-EU, HM-SEC-SIR-WM
MiLight WLAN Modul + paar RGBW LED Lampen

OliS.

Ich habe nach wie vor das Problem, dass sich homebridge beendet, sobald das Terminal-Fenster geschlossen wird. Egal, ob ich das Ganze per Startscript oder dem Befehl /home/pi/homebridge/bin/homebridge &starte. Mein Startscript sieht so aus:
#!/bin/sh
### BEGIN INIT INFO
# Provides: homebridge
# Required-Start:    $network $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start daemon at boot time
# Description:       Enable service provided by daemon.
### END INIT INFO

dir="/home/pi/homebridge/bin"
cmd="./homebridge &"
user="root"

name=`basename $0`
pid_file="/var/run/$name.pid"
stdout_log="/var/log/$name.log"
stderr_log="/var/log/$name.err"

get_pid() {
    cat "$pid_file"
}

is_running() {
    [ -f "$pid_file" ] && ps `get_pid` > /dev/null 2>&1
}

case "$1" in
    start)
    if is_running; then
        echo "Already started"
    else
        echo "Starting $name"
        cd "$dir"
        if [ -z "$user" ]; then
            sudo $cmd >> "$stdout_log" 2>> "$stderr_log" &
        else
            sudo -u "$user" $cmd >> "$stdout_log" 2>> "$stderr_log" &
        fi
        echo $! > "$pid_file"
        if ! is_running; then
            echo "Unable to start, see $stdout_log and $stderr_log"
            exit 1
        fi
    fi
    ;;
    stop)
    if is_running; then
        echo -n "Stopping $name.."
        kill `get_pid`
        for i in {1..10}
        do
            if ! is_running; then
                break
            fi

            echo -n "."
            sleep 1
        done
        echo

        if is_running; then
            echo "Not stopped; may still be shutting down or shutdown may have failed"
            exit 1
        else
            echo "Stopped"
            if [ -f "$pid_file" ]; then
                rm "$pid_file"
            fi
        fi
    else
        echo "Not running"
    fi
    ;;
    restart)
    $0 stop
    if is_running; then
        echo "Unable to stop, will not attempt to start"
        exit 1
    fi
    $0 start
    ;;
    status)
    if is_running; then
        echo "Running"
    else
        echo "Stopped"
exit 1
    fi
    ;;
    *)
    echo "Usage: $0 {start|stop|restart|status}"
    exit 1
    ;;
esac

exit 0

Ich habe homebridge mit sudo installiert. Meine config.json liegt im Verzeichnis /root/.homebridge.

Oli
PVE auf MiniPC (N100) mit FHEM, Zigbee2MQTT, Homebridge, DeConz

l2r

hi,

hast du des so http://forum.fhem.de/index.php/topic,32652.msg356847.html#msg356847 gemacht?

was gibt dir sudo /etc/init.d/homebridge status aus?
falls da nicht running bei raus kommt, dann scheint dein Startskript nicht zu funktionieren...
Wissen ist Macht.
Ich weiß nix.
Macht nix.