Apple HomeKit: Anbindung an IPS auf Basis der HomeBridge von nfarina

Bin auch ein wenig weiter um experimentieren. Die Homebridge lässt sich starten. Alle Homematic Geräte habe ich über das Homematic Plugin für die homebridge eingebunden da ich auch eine CCU besitze.
RPi2 - Homebridge : Siri for the rest of us • HomeMatic-Forum / FHZ-Forum

Sämtliche Homematic Geräte lassen sich sauber über das Homematic Addon für die Homebridge schalten. Die Homebride an sich funktioniert wohl daher so weit. Das IP-Symcom Plugin der Homebridge wird auch richtig initialisiert und es werden auch alle Geräte die ich in IP-Symcon als HomekitAccessory angelegt habe in den entsprechenden Homekit Apps angezeigt.

Zum testen habe ich jetzt mal zwei Switches angelegt die auf Boolean Variablen verweisen. Entsprechend der Beschreibung in #537 habe ich auch noch SymconAccessory.js editiert. JSON RPC funktioniert, da ich dies auch anderweitig nutzte. Die Boolean Variablen haben auch ein Aktionskript und diese lassen sich über das Webfront schalten.

Mit Homekit lassen sich jedoch die Geräte in IP-Symcon bzw. die Variablen einfach nicht schalten.
Was mache ich denn noch falsch bzw. was könnte denn noch ein Fehler sein?

Genau das beschreibt mein Problem aus 3 posts davor. Ich habe mal etwas gesnifft. Und ich verstehe nicht,
wieso generell nur ein Getvalue aufgerufen wird.

Das ist der Netzwerkverkehr zwischen Homebridge-Symcon und IPS wenn ich auf dem Homekit auf den Schalter tappe:

interface: en0 (192.168.178.0/255.255.255.0)
match: jsonrpc
#####################
T 192.168.178.108:50668 -> 192.168.178.200:80 [AP]
  POST /api/ HTTP/1.1..host: 192.168.178.200:80..content-type: application/json..content-length: 95..Authorization: B
  asic xxxxxxx=..Connection: close....{"jsonrpc":"2.0","method":"HKSSwitch_GetValue","params"
  :[26704,"On","Boolean",false,-1],"id":0}                                                                           
##
T 192.168.178.200:80 -> 192.168.178.108:50668 [AP]
  HTTP/1.1 200 OK..Content-Type:application/json; charset=utf-8..Content-Length:37....{"jsonrpc":"2.0","id":0,"result
  ":"1"}                                                                                                             
###########################
T 192.168.178.108:50669 -> 192.168.178.200:80 [AP]
  POST /api/ HTTP/1.1..host: 192.168.178.200:80..content-type: application/json..content-length: 95..Authorization: B
  asic xxxx..Connection: close....{"jsonrpc":"2.0","method":"HKSSwitch_GetValue","params"
  :[26704,"On","Boolean",false,-1],"id":0}                                                                           
#
T 192.168.178.200:80 -> 192.168.178.108:50669 [AP]
  HTTP/1.1 200 OK..Content-Type:application/json; charset=utf-8..Content-Length:37....{"jsonrpc":"2.0","id":0,"result
  ":"1"}                                                                                                             
################################^Cexit
90 received, 0 dropped

Wenn Du erst mal die Homematic Geräte zu laufen bekommen willst probiere mal
RPi2 - Homebridge : Siri for the rest of us • HomeMatic-Forum / FHZ-Forum
das funktioniert bei mir einwandfrei. Wäre nur schön ich könnte die restlichen Geräte in IP-Symcon auch noch zum Laufen bekommen.

Hi, vielen dank.

Ich besitze aber keine ccu, sondern benutze ausschließlich ip-symcon und das lan gateway.

Grüße!

Update:

Ich habe weiter herumgetestet, und das Problem hier scheint die „Home“ App zu sein, die ich nutze.

Als alternative habe ich eve installiert. Dann wird auch beim tappen auf den Schalter

a) der aktuelle Wert zurück zu eve gegeben.
b) im gegensatz zum tappen in der Home app auch der SetValue befehl über json-rpc abgesetzt
c) auch geschaltet

Interessant…

Also bei mir steht im Log der Homebridge sowohl HKSSwitch_GetValue also auch HKSSwitch_SetValue. Das komische ist nur wenn ich die Funktionen in IP-Symcon teste dann funktioniert auch nur


$val = 	HKSSwitch_GetValue(38525, "On", "Boolean", false, -1);
	var_dump($val);

HKSSwitch_SetValue (38525, "On", "Boolean", 1);

funktioniert nicht. Vielleicht liegt es daher eher an der Funktion. Wenn die schon in IP-Symcon nicht geht kann Sie über JSON RPC ja auch nicht funktionieren. Funktioniert HKSSwitch_SetValue bei Euch?

Das ist das Kuriose, per IP Syncom hatte ich es auch schon getestet, und es klappte nicht.

Jetzt wo ich anstatt der Home-App die App „eve“ benutze, wird aber der call wie gesagt abgesetzt, und er schaltet auch die Geräte.

Siehe:

Tap in eve:

[2016-09-19 17:33:22] [Symcon] 40806: Calling JSON-RPC method HKSOutlet_SetValue with params [38865,"On","Boolean",0]
[2016-09-19 17:33:22] [Symcon] 40806: Called JSON-RPC method 'HKSOutlet_SetValue' with response: ""
[2016-09-19 17:33:22] [Symcon] 40806: callback...

Tap in Home resultiert in dem selben aber mit GET und es passiert: nichts.

Zudem bekomme ich in der Home App oft „das Gerät Antwortet nicht“ während es per eve weiterhin problemlos funktioniert.

Gab es da eine Protokoll änderung oder so, mit der homebridge noch nicht umgehen kann ?

Bei mir macht es keinen Unterschied ob ich Home oder Eve benutzte. Ich denke aber das Problem ist bei mir das Aktionskript das wird wohl getriggert aber es ändert nichts an der Variable.

Weis jemand was ich da anpassen muss damit das funktioniert. Aufgerufen wird anscheinend das Skript direkt vom Modul mit IPS_RunScriptEx.

Mein Aktionskript sieht so aus:


if ($IPS_SENDER == "WebFront" or $IPS_SENDER == "RunScript") 
{ 
    SetValue($IPS_VARIABLE, $IPS_VALUE);
	if ($IPS_VALUE == 1) { IPS_Runscript(28909 /*[Geräte\Homekit\Hilfsvariablen Homekit	est1]*/); }
	if ($IPS_VALUE == 0) { IPS_Runscript(46768 /*[Geräte\Homekit\Hilfsvariablen Homekit	est2]*/); }
} 

So Problem gelöst es war in der Tat das Aktionskript jetzt geht es. IPS_RunScriptEx übergibt array(„VARIABLE“ => $variableId, „VALUE“ => $ipsValue).

Also muss das Aktionskript so aussehen:


if ($IPS_SENDER == "WebFront") 
{ 
    SetValue($IPS_VARIABLE, $IPS_VALUE);
	if ($IPS_VALUE == 1) { IPS_Runscript(28909 /*[Geräte\Homekit\Hilfsvariablen Homekit	est1]*/); }
	if ($IPS_VALUE == 0) { IPS_Runscript(46768 /*[Geräte\Homekit\Hilfsvariablen Homekit	est2]*/); }
}
if ($IPS_SENDER == "RunScript") 
{ 
       SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);
	if ($IPS_VALUE == 1) { IPS_Runscript(28909 /*[Geräte\Homekit\Hilfsvariablen Homekit	est1]*/); }
	if ($IPS_VALUE == 0) { IPS_Runscript(46768 /*[Geräte\Homekit\Hilfsvariablen Homekit	est2]*/); }
}

dann funktioniert es jetzt auch bei mir sowohl mit Home als auch Eve, dann kann ich jetzt weiterbasteln ;).

Wichtig ist bei RunScript SetValue($_IPS[‚VARIABLE‘], $_IPS[‚VALUE‘]);

zu meiner iOS 10 Problematik, habe ich gestern Abend folgendes versucht:

  • alle iOS 10 Geräte, die mit meiner iCloud ID angemeldet sind, ausgeschaltet (bis auf mein iPhone). Also iPad/ATV4.
  • Auf dem Raspi den homebridge service beendet und den Inhalt der Verzeichnisse /var/homebridge/persist und /var/homebridge/accessory gelöscht.
  • Auf dem iPhone in der Home-App die alte Verknüpfung gelöscht

Dann:

  • homebridge Service auf dem Raspi wieder gestartet
  • Meine homebridge in der Home-App auf dem iPhone wieder hinzugefügt, aber die Geräte zeigen: Keine Antwort.
    => Wieder kein Erfolg. Ich muss mir mal beim nächsten Test das Log anschauen.

Weitere Überlegungen:

  • Gibt es ggf. Probleme mit IPV6? Auf dem Raspi habe ich es erstmal deaktiviert.
  • Gibt es ggf. Probleme mit meiner Fritzbox als Router/DHCP Server?

Das Leben könnte so schön sein :banghead:

Ich habe auch weiter geforscht.

Es liegt bei mir auch an iOS 10. auf anderen Versionen macht keine app probleme.
Selbst eve funktioniert bei mir unter iOS 10 nicht.

Fritzbox ist bei mir auch der dhcp / router. Daran sollte es aber nicht liegen.

@schroejahr - reduzier mal deine Homekit Geräte unter IPS!

Ich habe jetzt nur noch meine 2 Garagen drin und es läuft. Bei mir scheint es an meiner Keymatic anbindung gelegen zu haben.

Bevor ich den Fehler bei der Keymatic Anbindung suche, werde ich erstmal 1 Woche schauen, ob es auch stabil läuft.

Hi, schon probiert.

Sensoren funktionieren.

Sobald ein Schalter dabe ist treten nur noch probleme auf.

Ich habe auch bemerkt, sobald ich in der Homeapp unter iOS 10 änderungen in der raumkonfiguration etc. durchführe tritt dieses Problem sofort auf. Zudem crasht mir dann teilweise auch die Homebridge weg, bzw. crasht nicht, aber funktioniert dann auch auf den anderen geräten bis zum neustart der Homebridge nicht. Da ist doch was im Busch :banghead:

Unter ios 9.x habe ich jetzt 6 Schalter, 6 Sensoren, und es läuft ohne Probleme.

Unter ios10 : keine Antwort. bzw, nach dem clearen des „persistent“ ordner der homebridge und neuverbinden läuft es, aber nur die Sensoren , aber keine schalter (ios10). Bis ich ein paar mal rumtappe, oder in der configuration der räume unter ios10 änderungen durchführe. Dann verabschiedet sich die homebridge wieder von meinen ios10 geräten, die ios9.x laufen weiter.

Edit: auch im Debug Modus, sieht es so aus, als ob die IOS10 apps einfach keinen Kontakt aufnehmen.
selbst mit „sudo DEBUG=* homebridge -D“ gibt es keinerlei auskünfte über interaktionen mit iOS 10 geräten, obwohl neu gepairt (da gab es natürlich debug). und obwohl 9.x weiterhin funktioniert.

Edit2:

Bilder angehängt. Gleichzeitig einmal ios9, einmal ios10 home.
(eve klappt genau so wenig auf ios10 wie die homekit app).

Dazu der log im debug:

  Accessory [Homebridge] Got Characteristic "On" value: 1 +49ms
  EventedHTTPServer [::ffff:192.168.178.89] HTTP Response is finished +0ms
  EventedHTTPServer [::ffff:192.168.178.89] HTTP request: /characteristics?id=4.18 +19ms
  HAPServer [CC:22:3D:E3:CE:30] HAP Request: GET /characteristics?id=4.18 +0ms
  Accessory [Homebridge] Getting value for Characteristic "On" +1ms
[2016-09-20 20:32:07] [Symcon] 54090: Calling JSON-RPC method HKSLightBulb_GetValue with params [56624,"On","Boolean",false,-1]
[2016-09-20 20:32:07] [Symcon] 54090: Called JSON-RPC method 'HKSLightBulb_GetValue' with response: ""
[2016-09-20 20:32:07] [Symcon] 54090: callback...
  Accessory [Homebridge] Got Characteristic "On" value:  +38ms
  EventedHTTPServer [::ffff:192.168.178.89] HTTP Response is finished +0ms
  EventedHTTPServer [::ffff:192.168.178.89] HTTP request: /characteristics?id=4.9 +28ms
  HAPServer [CC:22:3D:E3:CE:30] HAP Request: GET /characteristics?id=4.9 +0ms
  Accessory [Homebridge] Getting value for Characteristic "On" +0ms
[2016-09-20 20:32:07] [Symcon] 54090: Calling JSON-RPC method HKSFan_GetValue with params [36654,"On","Boolean",false,-1]
[2016-09-20 20:32:07] [Symcon] 54090: Called JSON-RPC method 'HKSFan_GetValue' with response: ""
[2016-09-20 20:32:07] [Symcon] 54090: callback...
  Accessory [Homebridge] Got Characteristic "On" value:  +52ms
  EventedHTTPServer [::ffff:192.168.178.89] HTTP Response is finished +0ms
  EventedHTTPServer [::ffff:192.168.178.89] HTTP request: /characteristics?id=4.15 +14ms
  HAPServer [CC:22:3D:E3:CE:30] HAP Request: GET /characteristics?id=4.15 +0ms
  Accessory [Homebridge] Getting value for Characteristic "On" +0ms
[2016-09-20 20:32:07] [Symcon] 54090: Calling JSON-RPC method HKSLightBulb_GetValue with params [36476,"On","Boolean",false,-1]
[2016-09-20 20:32:07] [Symcon] 54090: Called JSON-RPC method 'HKSLightBulb_GetValue' with response: ""
[2016-09-20 20:32:07] [Symcon] 54090: callback...
  Accessory [Homebridge] Got Characteristic "On" value:  +38ms
  EventedHTTPServer [::ffff:192.168.178.89] HTTP Response is finished +0ms
  EventedHTTPServer [::ffff:192.168.178.89] HTTP request: /characteristics +13ms
  HAPServer [CC:22:3D:E3:CE:30] HAP Request: PUT /characteristics +0ms
  Accessory [Homebridge] Processing characteristic set: [{"aid":2,"iid":12,"ev":true}] +1ms
  Accessory [Homebridge] Registering Characteristic "On" for events +0ms
  EventedHTTPServer [::ffff:192.168.178.89] HTTP Response is finished +0ms
  EventedHTTPServer [::ffff:192.168.178.89] HTTP request: /characteristics +17ms
  HAPServer [CC:22:3D:E3:CE:30] HAP Request: PUT /characteristics +0ms
  Accessory [Homebridge] Processing characteristic set: [{"aid":2,"iid":9,"ev":true}] +0ms
  Accessory [Homebridge] Registering Characteristic "Current Relative Humidity" for events +1ms
  EventedHTTPServer [::ffff:192.168.178.89] HTTP Response is finished +0ms
  EventedHTTPServer [::ffff:192.168.178.89] HTTP request: /characteristics +6ms
  HAPServer [CC:22:3D:E3:CE:30] HAP Request: PUT /characteristics +0ms
  Accessory [Homebridge] Processing characteristic set: [{"aid":2,"iid":15,"ev":true}] +0ms
  Accessory [Homebridge] Registering Characteristic "Current Temperature" for events +1ms
  EventedHTTPServer [::ffff:192.168.178.89] HTTP Response is finished +0ms
  EventedHTTPServer [::ffff:192.168.178.89] HTTP request: /characteristics?id=2.12 +32ms
  HAPServer [CC:22:3D:E3:CE:30] HAP Request: GET /characteristics?id=2.12 +0ms
  Accessory [Homebridge] Getting value for Characteristic "On" +0ms
[2016-09-20 20:32:07] [Symcon] 13630: Calling JSON-RPC method HKSSwitch_GetValue with params [26704,"On","Boolean",false,-1]
[2016-09-20 20:32:07] [Symcon] 13630: Called JSON-RPC method 'HKSSwitch_GetValue' with response: "1"
[2016-09-20 20:32:07] [Symcon] 13630: callback...
  Accessory [Homebridge] Got Characteristic "On" value: 1 +38ms
  EventedHTTPServer [::ffff:192.168.178.89] HTTP Response is finished +1ms
  EventedHTTPServer [::ffff:192.168.178.89] HTTP request: /characteristics +30s
  HAPServer [CC:22:3D:E3:CE:30] HAP Request: PUT /characteristics +0ms
  Accessory [Homebridge] Processing characteristic set: [{"aid":4,"iid":9,"ev":false},{"aid":4,"iid":12,"ev":false},{"aid":4,"iid":15,"ev":false},{"aid":4,"iid":18,"ev":false},{"aid":4,"iid":21,"ev":false}] +0ms
  Accessory [Homebridge] Unregistering Characteristic "On" for events +0ms
  Accessory [Homebridge] Unregistering Characteristic "Current Relative Humidity" for events +0ms
  Accessory [Homebridge] Unregistering Characteristic "On" for events +0ms
  Accessory [Homebridge] Unregistering Characteristic "On" for events +0ms
  Accessory [Homebridge] Unregistering Characteristic "Current Temperature" for events +0ms
  EventedHTTPServer [::ffff:192.168.178.89] HTTP Response is finished +0ms
  EventedHTTPServer [::ffff:192.168.178.89] HTTP request: /characteristics +151ms
  HAPServer [CC:22:3D:E3:CE:30] HAP Request: PUT /characteristics +0ms
  Accessory [Homebridge] Processing characteristic set: [{"aid":3,"iid":9,"ev":false},{"aid":3,"iid":12,"ev":false},{"aid":3,"iid":15,"ev":false},{"aid":3,"iid":18,"ev":false},{"aid":3,"iid":21,"ev":false},{"aid":3,"iid":25,"ev":false}] +0ms
  Accessory [Homebridge] Unregistering Characteristic "Current Relative Humidity" for events +1ms
  Accessory [Homebridge] Unregistering Characteristic "On" for events +0ms
  Accessory [Homebridge] Unregistering Characteristic "On" for events +0ms
  Accessory [Homebridge] Unregistering Characteristic "On" for events +0ms
  Accessory [Homebridge] Unregistering Characteristic "On" for events +0ms
  Accessory [Homebridge] Unregistering Characteristic "Current Temperature" for events +0ms
  EventedHTTPServer [::ffff:192.168.178.89] HTTP Response is finished +67ms
  EventedHTTPServer [::ffff:192.168.178.89] HTTP request: /characteristics +136ms
  HAPServer [CC:22:3D:E3:CE:30] HAP Request: PUT /characteristics +0ms
  Accessory [Homebridge] Processing characteristic set: [{"aid":2,"iid":9,"ev":false},{"aid":2,"iid":12,"ev":false},{"aid":2,"iid":15,"ev":false}] +0ms
  Accessory [Homebridge] Unregistering Characteristic "Current Relative Humidity" for events +0ms
  Accessory [Homebridge] Unregistering Characteristic "On" for events +0ms
  Accessory [Homebridge] Unregistering Characteristic "Current Temperature" for events +1ms
  EventedHTTPServer [::ffff:192.168.178.89] HTTP Response is finished +0ms
  EventedHTTPServer [::ffff:192.168.178.89] Sending HTTP event 'keepalive' with data: {"characteristics":[]} +2m
  EventedHTTPServer [::ffff:192.168.178.74] Sending HTTP event 'keepalive' with data: {"characteristics":[]} +0ms

Ja da scheint einiges im argen zu sein. Was mich aber wundert, die Probleme treten nur mit dem Symcon-Plugin auf. Zum Beispiel mit dem Homematic Plugin läuft alles einwandfrei. Egal mit oder ohne ATV4 als Steuerung. Ich habe nie mit iOS 9 getestet, daher weis ich nicht wie es früher war. Was mir auch noch aufgefallen ist, dass das iPhone obwohl es zuhause im WLAN ist es glaubt einen Remotezugriff zu benötigen. Das habe ich mit dem iPad nicht gehabt.

Was mir auch noch aufgefallen ist, dass ich Räume nicht ändern kann. Ändere ich den Raum für ein Gerät, werden alle anderen Geräte auf verschoben. Das betrifft ebenfalls nur das Symcon Plugin.

Das Mit den Räumen kannst du umgehen.

Jedes Homekit Accessory welches du in ips eingerichtet hast, unter denen du die schalteer etc. hinzufügst ist ein „Raum“.
Bzw ein Gerät. Und du kannst ein Gerät nicht in mehreren Räumen gleichzeitig haben.

Hallo Leute,

ich möchte gerne mein Garagentor über Siri steuern.
Hierfür wird ein Skript benötigt das für eine kurze Zeit einen potentilalfreien Kontakt (Homematic) schließt und wieder öffnet. Nun weiß ich leider nicht wie ich diese Skript in das Formular für den „GarageDoorOpener“ einbinde.

Hat jemand eine Idee?

Grruß

Axel

hallo

kann mir einer helfen bei der Installation auf windos

ich habe die Homebridge soweit am laufen
[2016-09-23 11:39:40] Loaded plugin: homebridge-symcon
[2016-09-23 11:39:40] Registering platform ‚homebridge-symcon.Symcon‘
[2016-09-23 11:39:40] —
Scan this code with your HomeKit App on your iOS device to pair with Homebridge:

[2016-09-23 11:39:40] Homebridge is running on port 51826.

ips und homebridge laufen beide auf dem selben windows System

auch wenn ich auf die externe symbox verweise selbes Bild

jedoch erkennt mein Iphone kein gerät

dann noch eine Verständnissfrage
was beinhaltet der ip symcon plugin
ist das ein link zu ips und holt sich da auch die entsprechenden variablen
oder müssen die auch in der config der homebridge nachgeführt werden

gruss Roman

Schalte das Homematik Gerät ganz normal, und häng an das Gerät ein Ereignis, das beim Wert „true“ ausgelöst wird.
Da schmeisst du dann den PHP Code rein um das Gerät nach ner sekunde wieder auszuschalten:

irgendwie so (ungetestet):


<?

//gibt 1 sek impuls an garagentor

sleep(1);
HM_WriteValueBoolean(ID_DES_GERÄTS, "STATE", false);

?>


So würd ich es jedenfalls machen - aber GarageDoorOpener habe ich mir explizit noch nicht angesehen.

Danke für den Hinweis das erklärt einiges :smiley: Wird der Name des Accessory auch als Raumname übernommen? Sonst erkenne ich das ganze ja nicht in HomeKit.

Testen werde ich es erst wieder wenn die Plugin mal gefixt wurde.

Hallo schriebst, vielen Dank für die Idee werde ich mal austesten. Gruß Axel

Gesendet von iPhone mit Tapatalk