Apple Homekit: die Hoffnung stirbt zuletzt

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

Vorheriges Thema - Nächstes Thema

justme1968

das ist dynamisch. alle devices hinter der bridge erscheinen oder verschwinden automatisch je nach erreichbarkeit. fhem sind im prinzip immer erreichbar. wenn disable gesetzt wird könnte man sie automatisch aus homekit verschwinden lassen und wenn es gelöscht wird wieder erschrinen lassen.

du darfst die probleme die es scheinbar in manchen installationen mit dem verschwinden gibt nicht damit vermischen.

das eine ist beabsichtigt das andere nicht.

gruß
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

volschin

Die Frage ist, welchen Impact das Verschwinden hat. Wenn dadurch jedesmal die Raumzuordnung, der Siri-Name und spezielle Sortierungen weg sind, sehe ich das kritisch. Ich habe da lieber ein nicht erreichbar.


Sent from my iPhone using Tapatalk
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

noxi

Hallo,
ich habe das Problem, dass ich keine Geräte vom eve app finden kann.
Wenn ich HAP-NodeJS Verzeichnis node BridgedCore.js ausführe wird jedoch das Gerät "Node Bridge" gefunden. Kann mich mit der App jedoch nicht verbinden.
Ich will einfach mal meine in FHEM eingebundenen Funksteckdosen sehen und eventuell auch den Harmony Hub.

Kann mir bitte jemand sagen was mein Fehler ist?

meine Terminal Ausgabe:

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>
Loading 1 platforms...
[FHEM] Initializing FHEM platform...
starting longpoll: http://127.0.0.1:8083/fhem.pl?XHR=1&inform=type=status;filter=.*;since=null;fmt=JSON&timestamp=1438661962171
[FHEM] Fetching FHEM switchable devices...
[FHEM] fetching: http://127.0.0.1:8083/fhem?cmd=jsonlist2&XHR=1
Loading 0 accessories...
Server listening on: http://<ip>:8080
[FHEM] got: 22 results
[FHEM] ignoring FHEMWEB:10.0.0.25:54175
[FHEM] ignoring FHEMWEB:127.0.0.1:48076
[FHEM] ignoring FHEMWEB:127.0.0.1:48077
[FHEM] ignoring HarmonyHub
[FHEM] ignoring Logfile
[FHEM] ignoring RCSwitchA
[FHEM] ignoring RCSwitchB
[FHEM] ignoring RCSwitchC
[FHEM] ignoring WEB
[FHEM] ignoring WEBphone
[FHEM] ignoring WEBtablet
[FHEM] ignoring act_on_RCSwitch_A
[FHEM] ignoring act_on_RCSwitch_B
[FHEM] ignoring act_on_RCSwitch_C
[FHEM] ignoring autocreate
[FHEM] ignoring eventTypes
[FHEM] ignoring global
[FHEM] ignoring harmonyActivityFernsehen
[FHEM] ignoring harmonyActivityOff
[FHEM] ignoring harmonyActivityPlaystation4
[FHEM] ignoring initialUsbCheck
[FHEM] ignoring telnetPort


config.json-file
{
    "platforms": [
        {
            "platform": "FHEM",           
            "name": "FHEM",               
            "server": "127.0.0.1",         
            "port": "8083"
        }
    ],

    "accessories": []
}


homebridge Verzeichnis:

pi@raspberrypi ~/homebridge $ tree -d -L 2
.
├── accessories
├── node_modules
│   ├── ad2usb
│   ├── carwingsjs
│   ├── elkington
│   ├── HAP-NodeJS
│   ├── harmonyhubjs-client
│   ├── harmonyhubjs-discover
│   ├── mdns
│   ├── node-hue-api
│   ├── node-milight-promise
│   ├── node-persist
│   ├── request
│   ├── sonos
│   ├── telldus-live
│   ├── teslams
│   ├── unofficial-nest-api
│   ├── wemo
│   ├── wink-js
│   ├── xml2js
│   ├── xmldoc
│   └── yamaha-nodejs
├── persist
└── platforms

24 directories


HAP-NodeJS Verzeichnis:

pi@raspberrypi ~/homebridge/node_modules/HAP-NodeJS $ tree -d -L 2
.
├── accessories
├── node_modules
│   ├── curve25519
│   ├── ed25519
│   ├── mdns
│   ├── node-persist
│   └── srp
└── persist

8 directories


Danke für die Hilfe.

LG Christoph

justme1968

wie du siehst werden deine devices explizit ignoriert.

damit du schalten kannst muss das device ein on und ein off kommando verstehen und das auch bei set ? zurück geben.

du solltest auch genericDeviceType auf switch stellen.

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

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

noxi

danke andre.

ich hab die Schalter folgend gelöst:
# Funksteckdose A - Funkschalter A

define RCSwitchA dummy
attr RCSwitchA alias Funkschalter A
attr RCSwitchA room Wohnzimmer
attr RCSwitchA webCmd on:off

define act_on_RCSwitch_A notify RCSwitchA {\
if ("%" ne "off") {\
  {system('sudo /home/pi/myscripts/RCSwitchA_on&');;}\
}\
  else {\
  {system('sudo /home/pi/myscripts/RCSwitchA_off&');;}\
}\
}


Wo und was muss ich auf genericDeviceType umstellen?

LG Christoph

justme1968

du musst dem dummy noch sagen welche kommandos er kann. d.h. dir fehlt:attr RCSwitchA setList on off

genericDeviceType musst du mit der passenden liste bei global zu den userattr hinzufügen. mit der setList oben sollte das aber nicht nötig sein.

gruss
  andre

ps: schau dir mal readingsProxy an. damit würdest du ohne notify auskommen.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

helbgd

Scheinbar gibt es in der aktuellen HomeKit version von apple ja folgende accessory services:




       
  • Garage Door Opener
Door State – open/closed
Lock State – unsecured/secured
Obstruction Detected – yes/no

       
  • Light Bulb
Power State — on/off
Hue — 0–360
Saturation — 0–100
Brightness — 0–100

       
  • Switch
On — yes/no

       
  • Power Outlet
In Use — yes/no
On — yes/no

       
  • Door Lock
Lock State — unsecured/secured

       
  • Thermostat
Temperature
Relative Humidity – %
Temperature Units – °C/F
Heating Threshold Temperature
Cooling Threshold Temperature







Könntest du den Garage Door State Opener einbauen?


im prinzip gebe ich nur ein auf welches auf ein on-for-timer 2 an einen HM schaltaktor weiter welcher dann meine Garagentorfernbedienung für 2 sek drückt damit das Tor aufgeht.


ich denke man kann das ja dann auf den doorstate open oder so mappen.


Es wär hald verdammt cool Siri im Auto während dem Anfahren auf die Garage sagen zu können - Hey Siri mach die Garage auf ...


Soweit ich weis gehen die Siri Homekit Kommandos nur wenn das IOS gerät unlocked ist wobei ich vermute das der Garage Door Opener eine Ausnahme ist da im gelockten zustand bei der Aufforderung Hey Siri mach die Garage auf als Antwort kommt: Tut mir leid, Name, ich habe diesmal keineGaragentore gefunden.


Grüße und danke schon mal


helbgd




noxi

@andre
danke, jetzt bin ich schon ein Stückchen weiter. ;)
mir erscheint jetzt mein RCSwitch in der eve und in der Insteon+ App.
Jedoch scheint irgendetwas nach der PIN eingaben abzubrechen.
Das Gerät befindet sich danach unter ~/homebridge/persist/ zweimal.
In der App ist das Gerät nicht zu sehen und kann auch nicht nochmals gekoppelt werden bis ich die Einträge aus dem persist Ordner gelöscht und am iPhone die HomeKit Daten zurückgesetzt habe.

das sagt mir das Terminal:
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>
Loading 1 platforms...
[FHEM] Initializing FHEM platform...
starting longpoll: http://127.0.0.1:8083/fhem.pl?XHR=1&inform=type=status;filter=.*;since=null;fmt=JSON&timestamp=1438675113233
[FHEM] Fetching FHEM switchable devices...
[FHEM] fetching: http://127.0.0.1:8083/fhem?cmd=jsonlist2&XHR=1
Loading 0 accessories...
Server listening on: http://<ip>:8080
[FHEM] got: 27 results
[FHEM] ignoring FHEMWEB:10.0.0.25:56473
[FHEM] ignoring FHEMWEB:10.0.0.25:56474
[FHEM] ignoring FHEMWEB:10.0.0.25:56475
[FHEM] ignoring FHEMWEB:10.0.0.25:56476
[FHEM] ignoring FHEMWEB:10.0.0.25:56477
[FHEM] ignoring FHEMWEB:10.0.0.25:56478
[FHEM] ignoring FHEMWEB:127.0.0.1:46455
[FHEM] ignoring FHEMWEB:127.0.0.1:46456
[FHEM] ignoring HarmonyHub
[FHEM] ignoring Logfile
[FHEM] ignoring RCSwitchA
[FHEM] ignoring RCSwitchB
[FHEM] RCSwitchC is switchable
[FHEM] RCSwitchC has OnOff [[object Object]]
[FHEM] ignoring WEB
[FHEM] ignoring WEBphone
[FHEM] ignoring WEBtablet
[FHEM] ignoring act_on_RCSwitch_A
[FHEM] ignoring act_on_RCSwitch_B
[FHEM] ignoring act_on_RCSwitch_C
[FHEM] ignoring autocreate
[FHEM] ignoring eventTypes
[FHEM] ignoring global
[FHEM] ignoring harmonyActivityFernsehen
[FHEM] ignoring harmonyActivityOff
[FHEM] ignoring harmonyActivityPlaystation4
[FHEM] ignoring initialUsbCheck
[FHEM] ignoring telnetPort
[FHEM] Initializing device with name RCSwitchC...
[FHEM] Loaded services for RCSwitchC
checking Change the power state function
Characteristics.js: registering Change the power state function
TCP server accepting connection on port: 51826
HAP Server is listening
New Session 61842
Server Connection Established 32778
Start Pair M1
Start Pair M3
Start Pair M5
Client Disconnected
New Session 61843
Server Disconnected
Server Connection Established 32779
Start Verify M1
Verify M1 Finished
Start Verify M3
M3: Verify Success
An Error Occured on client side connection, { [Error: This socket has been ended by the other party] code: 'EPIPE' }
Server Disconnected
Client Disconnected
New Session 61844
Server Connection Established 32780
Start Verify M1
Verify M1 Finished
Start Verify M3
M3: Verify Success


Was mach ich noch falsch?
Kannst du mir mal Teile von deinem fhem.cfg hochladen, damit ich sehen kann wie du deine Geräte alle einbindest?

PS.:danke, readingsProxy muss ich mir anschauen sobald das hier mal geht;)

volschin

Zitat von: helbgd am 04 August 2015, 12:44:15
Soweit ich weis gehen die Siri Homekit Kommandos nur wenn das IOS gerät unlocked ist wobei ich vermute das der Garage Door Opener eine Ausnahme ist da im gelockten zustand bei der Aufforderung Hey Siri mach die Garage auf als Antwort kommt: Tut mir leid, Name, ich habe diesmal keineGaragentore gefunden.
Also bei mir schaltet es das Licht auch im gelockten Zustand.
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

justme1968

#444
@helbgd: ja. baue ich ein. kein problem.

@noxi: wenn es zwei files in persist gibt hat das pairen eigentlich funktioniert. eventuell stimmt die convertierung von state in den aktuellen zustand noch nicht.

bitte zeig mal was der debug browser in cached sagt und ein list auf das device in ein- und ausgeschalteten zustand.

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

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

helbgd

#445
@helbgd: ja. baue ich ein. kein problem.
aber auf homekit seite hat die garagen tür eine Position zwischen 0 und 100. ich weiss nicht ob sich das vernünftig auf dein on-for-timer mappen lässt. auch die rückmeldung über den aktuellen zustand und die blockierung wäre getürkt.

vermutlich ist deine garage besser als switch abgebildet.
Welches Kommando müsste ich dann für "Siri mach die Garage auf" mappen? set Garagentor 100 oder wie ?
Mir würde reichen wenn als state gecheckt wird ob das Kommando dann in meinem Fall auf dem Aktor angekommen ist,
sozusagen das man weiß ob das Kommando and FHEM gesendet wurde, in meinem Fall wäre das der State on welcher hald den 100% entspricht, für die 2 sec oder so.


Sagmal mach es eigtl keinen Sinn die fhem.js und die types.js mit fhem mit ausliefern zu lassen?
ich würd dann einfach per symlink das in die homebridge Folder hinlinken, dann hätten wir hier immer automatisch die aktuelle Version nach nem fhem update mit dabei.
Oder noch besser, einfach alles in nen lxc Container packen welcher die installation von homebridge  Node und openhap Installation etc. beinhaltet, da das schon irgendwie tricky sein kann alles richtig zu installieren.



Apropos, hier mal mein systemd test service file,

Bitte beachten, läuft im moment noch als root und macht sicher sinn als dependency Fhem vorher starten zu lassen, aber ist im Moment noch alles nur zum "testen" und spielen.
Man beachte mit Systemd sparrt man sich diese "daemonize" tools.

[root@fhem system]# cat homebridge.service
[Service]
ExecStart=/usr/bin/node /root/homebridge/app.js run start
Restart=always
SyslogIdentifier=homekit
User=root
Group=root
WorkingDirectory=/root/homebridge

[Install]
WantedBy=multi-user.target
[root@fhem system]#





Im endefekt bin ich einfach nur auf "Siri mach die Garage auf" scharf. und nicht auf Siri schalte die Garage ein...



Hmm wenn man im IOS locked State auch Door Lock's steuern kann finde ich das schon iwie blöd,

man denke nur daran wenn einem das Handy geklaut wird dann könnte ja jeder ohne IOS unlock Code / Fingerabdruck deine Haustüre aufmachen.

Bei Lampen finde ich das nicht so kritisch nur bei Door Lock im speziellen schon.


Gerade getestet selbst über den Apple TV wenn ich sozusagen nicht lokal im WLAN bin lässt sich im gelockten Zustand die Beleuchtung schalten.

Wie gesagt ich bin in nem Mietshaus und schalte da über nen gepimpten funksender per FHEM das Tiefgaragentor auf,
wenn das im IOS gelockten zustand per Siri Kommando Garage auf ohne Unlock Code aufgeht was solls.

Nur bei der eigentlichen Wohnungstüre bin ich schon mehr sensibel. da wäre in der Tat ein Unlock Code angebracht, die Frage ob man das per Siri steuern muss ist natürlich berechtigt.

Wobei "Siri ich habe meinen Schlüssel in der Wohnung liegen lassen, sperr mal auf", wäre schon ein cooles Kommando ;-)

Grüße

Helbgd

justme1968

ich hatte eben an der falschen stelle geschaut. türen (dazu zählt auch die garage) haben scheinbar doch keinen prozentualen zustand sondern offen, geschlossen, öffnend, schliessend, unbestimmt. es würde also doch passen.

da es die garage zusätzlich zur normalen tür gibt kann es schon sein das hier noch mal ein sicherheitsfeature dahinter steckt. wobei es ja noch mal einen unterschied zwischen türen und türschlössern gibt. d.h. das eine ist der öffner das andere das auf und zu schliessen.

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

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

noxi

@andre

im fhem.cfg file hab ich jetzt nur das setList hinzugegeben und bei attr global genericDeviceType hinzugefügt.
Müsste so passen oder?

cached:
cached: {}

persist:
RCSwitchC: 5B:16:77:3C:4D:2E

subscriptions:
subscriptions: { 'RCSwitchC-state':
{ characteristic:
{ instanceID: 9,
accessoryID: 1,
type: '00000025-0000-1000-8000-0026BB765291',
value: 0,
perms: [ 'pw', 'pr', 'ev' ],
format: 'bool',
supportEvents: true,
supportBonjour: false,
manfDescription: 'Change the power state',
designedMaxLength: 1,
designedMinValue: undefined,
designedMaxValue: undefined,
designedMinStep: undefined,
unit: undefined,
eventEnabled: true,
bonjourEnabled: false,
subscribedPeers: {},
onUpdate: [Function],
onRegister: [Function],
locals: undefined,
onRead: [Function],
accessoryController:
{ accessoryID: 1,
instanceID: 10,
objects: [Object],
services: [Object],
tcpServer: [Object] } },
accessory:
{ hasOnOff: { reading: 'state', cmdOn: 'on', cmdOff: 'off' },
name: 'RCSwitchC',
alias: 'Couch Licht',
device: 'RCSwitchC',
type: 'dummy',
model: undefined,
PossibleSets: 'on off',
hasPct: undefined,
hasDim: undefined,
pctMax: undefined,
hasHue: undefined,
hueMax: undefined,
hasSat: undefined,
satMax: undefined,
hasRGB: undefined,
hasTemperature: undefined,
hasHumidity: undefined,
hasMotor: undefined,
isLight: undefined,
isBlind: undefined,
isThermostat: undefined,
isContactSensor: undefined,
isOccupancySensor: undefined,
isWindow: undefined,
log: [Function],
connection: { base_url: 'http://127.0.0.1:8083', request: [Object] } } } }


list RCSwitchC on:
Internals:
   NAME       RCSwitchC
   NR         40
   STATE      on
   TYPE       dummy
   Readings:
     2015-08-04 10:54:55   state           on
Attributes:
   alias      Couch Licht
   room       Wohnzimmer
   setList    on off
   webCmd     on:off


list RCSwitchC off:
Internals:
   NAME       RCSwitchC
   NR         40
   STATE      off
   TYPE       dummy
   Readings:
     2015-08-04 10:54:34   state           off
Attributes:
   alias      Couch Licht
   room       Wohnzimmer
   setList    on off
   webCmd     on:off


Danke.
LG Christoph

dev0

Zitat von: justme1968 am 04 August 2015, 13:40:43
ich hatte eben an der falschen stelle geschaut. türen (dazu zählt auch die garage) haben scheinbar doch keinen prozentualen zustand sondern offen, geschlossen, öffnend, schliessend, unbestimmt.
Verrätst du wo du das nachschaust?

/Uli

justme1968

@noxi:in cached sollte etwas stehen. der rest schaut eigentlich ok aus. ich versuch es nachher mal nachzustellen stellen.

@dev0: z.b. in den xcode include files zu hap und im homekit simulator.

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

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