homebridge/homekit

Begonnen von justme1968, 01 Februar 2016, 16:16:37

Vorheriges Thema - Nächstes Thema

Markus M.

Neben TargetPosition und CurrentPosition (die jeweils sinnvolle Werte haben sollten) gibt es auch noch PositionState. Such einfach mal nach Beispielen dazu.
FHEM dev + HomeBridge + Lenovo Flex15 + HM-CFG-USB + RFXtrx433 + Fritz!Box 7590/7580/546E

HM Aktor/Sensor/Winmatic/Keymatic/Thermostat, HUE, Netatmo Weather/Security/Heating, Xiaomi AirPurifier/Vacuum, Withings Aura/BPM/Cardio/Go/Pulse/Thermo, VSX828, Harmony, Siro ERB15LE
https://paypal.me/mm0

MobiusOne

Zitat von: Markus M. am 06 März 2018, 18:14:01
Neben TargetPosition und CurrentPosition (die jeweils sinnvolle Werte haben sollten) gibt es auch noch PositionState. Such einfach mal nach Beispielen dazu.

Ich hatte tatsächlich einen falsche Eintrag eingetragen. Es funktioniert nun

volschin

Zitat von: hoppel118 am 04 März 2018, 16:30:29
Hi,

bei mir läuft v7 unter Stretch. Aber den folgenden Informationen nach, ist die Version egal:

https://forum.fhem.de/index.php/topic,48558.msg763162.html?PHPSESSID=jkq71qqsr6fcom4c43lei9r3s1#msg763162

Lies dir die Posts davor und danach durch. Da geht es genau um das Thema.

Gruß Hoppel
Homebridge funktioniert dann zwar, aber 8.x ist die aktuelle LTS-Version, deren Einsatz sich empfiehlt.
Intel NUC+Ubuntu 22.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 7590, Echo Dots+Show8, Logi Circle 2, HomeBridge
TIG Stack (Telegraf, InfluxDB, Grafana)

MobiusOne

#2868
Die Implementierung meiner FHEM HomeKit Konfiguration sieht langsam sehr gut aus. Leider habe ich noch ein Ungereimtheiten bzw. Sachen wo ich keine Informationen im Forum wirklich finden konnte. Auch längeres ausprobieren konnte mir nicht alle Fragen beantworten.

ZitatDies funktioniert generell auch, nur bleibt das Gerät in HomeKit ziemlich lange auf aktualisieren stehen, bzw. es erkennt scheinbar nicht, dass die Rolllade bereits die gewünschte Position erreicht hat. Stimmt etwas nicht an meiner Konfiguration, liegt es an FHEM oder geht es nicht anders?

Wenn ich im Homebridgemapping als Schritte (minStep) den Wert 1 eingebe, funktioniert alles ohne Probleme. Wenn ich aber als minStep=5 eingebe, und ich die Rolllade in HomeKit auf 85 stelle, passiert es regelmäßig, das die Rolllade nur bis Position 84 oder 86 fährt. HomeKit sieht dann, dass die Rolllade die gewünschte Position nicht erreicht hat und bleibt dann auf aktualisieren stehen. Sollte ich hier mit einer Rundung arbeiten? Geht dies im Homebridgemapping?

Neben Tahoma habe ich in HomeKit auch meine LWZ-Heizungsanlage eingebunden. Aktuell kann ich die Heizungs- und Warmwassertemperatur als Thermostat auslesen und einstellen. Nun verfügt die Heizung über mehrere Einstellungsmöglichkeiten. Zum Beispiel kann der Heizungsmodus eingestellt werden. Dies habe ich aktuell als separaten dummy Schalter realisiert. Diesen Schalter würde ich aber gerne als HomeKit Service im Heizungsthermostat integrieren. Die Elgato Eve App unterstützt mehrere Services bei einen Gerät und sollte dies dann auch unterstützen. Nun habe ich bereits versucht das Homebridgemapping zu erweitern. Leider wird in der Eve kein Schalter unterhalb des Thermostat erkannt. Ich stelle mir das ungefähr wie folgt vor: https://github.com/grover/homebridge-automation-switches/blob/master/docs/AlarmClock.png Ein Gerät mit mehreren Services (Schalter und Slider)

Meine Homebridgemapping sieht wie folgt aus:
attr Heizungsthermostat homebridgeMapping TargetTemperature=target::target,minValue=16,maxValue=28,minStep=0.1 CurrentTemperature=state On=modus,values=OFF:0;ON:1,cmdOff=OFF,cmdOn=ON,nocache=true
attr Heizungsthermostat webCmd on:off


Im Heizungsthermostat habe ich eingestellt, dass der Slider mit 0.1 schritten einstellbar sein soll. In FHEM funktioniert dies auch. In der Eve App werden aber nur Schritte von 0.5 genommen. Ich kann mir vorstellen, dass die Eve App und HomeKit keine kleineren Schritte unterstützen, oder Irre ich mich da?

Loki

Gibt es aktuell ein Problem mit Homebridge?
ich habe heute ein Fhem-Update gemacht und nach einem Homebridge-Neustart bekomme ich nun folgenden Fehler auf der Konsole:
Mär 09 22:01:17 fhem homebridge[22907]: Prototype mismatch: sub main::OldReadingsAge ($$$;$) vs ($$$) at /opt/fhem/fhem.pl line 4192.
Mär 09 22:01:17 fhem homebridge[22907]: Prototype mismatch: sub main::ReadingsAge ($$$;$) vs ($$$) at /opt/fhem/fhem.pl line 4238.

MobiusOne

Ich bin jetzt mit meinem Versuch von mehreren Services schonmal weiter gekommen. Einen Slider konnte ich hinzufügen. Leider wird der Schalter aber nicht angezeigt. Ob meine homebridgemapping fehlerhaft ist?

defmod Heizungsthermostat dummy
attr Heizungsthermostat genericDeviceType thermostat
attr Heizungsthermostat homebridgeMapping TargetTemperature=target::target,minValue=16,maxValue=28,minStep=0.5 CurrentTemperature=state\
SliderValue=steigung::steigung,minValue=16,maxValue=40,minStep=1\
On=schalter,valueOn=on,valueOff=/off/,cmdOn=on,cmdOff=off
attr Heizungsthermostat readingList target
attr Heizungsthermostat room HomeKit
attr Heizungsthermostat setList target:slider,16,0.5,28,1 steigung:slider,16,1,40 schalter:on schalter:off
attr Heizungsthermostat userReadings steigung { ReadingsVal("Heizung_Steigung","state", 0)*100;;}
attr Heizungsthermostat webCmd on:off

setstate Heizungsthermostat 21.5
setstate Heizungsthermostat 2018-03-10 00:18:41 schalter on
setstate Heizungsthermostat 2018-03-10 00:26:26 state 21.5
setstate Heizungsthermostat 2018-03-10 00:26:26 steigung 35
setstate Heizungsthermostat 2018-03-09 19:27:36 target 21.5


Wenn ich den Slider (HomeKit) oder den Schalter (FHEM) bewege/einstelle, wird immer der state Reading aktualisiert. Im Fall vom Slider, steht dann im state der Wert "steigung 25". Wie kann ich angeben, dass ich lieber einen anderen Reading verwenden will? Interessanter weise liest der Slider am Anfang den Wert vom Reading steigung aus, setzt dort aber nicht den neuen Wert hin.

exit2308

Möchte gerne die letzte Zeit der Aktivierung beim Bewegungsmelder darstellen, ggf später auch beim Kontaktsensor.. EVE bietet eine eigene Characteristic dafür an. Jedoch wird mir dabei nichts dargestellt. Vielleicht kann Andre mehr dazu sagen. Die Zeit ist konvertiert in epoch.
E863F11A-079E-48FF-8F27-9C2605A29F52=test,name=LastActivation,format=UINT32,unit=SECONDS

exit2308

Zitat von: exit2308 am 17 November 2017, 19:47:15
Lassen sich bei Custom Characteristics irgendwie die Units im mapping mit angeben oder ändern?
(PERCENTAGE,CELSIUS,LUX,ARC_DEGREE .. usw.)
bzw. werden nur die Hauseigenen von Apple unterstützt?

CCC04890-565B-4376-B39A-3113341D9E0F=Wetter:rain_day,name=RainDay,format=FLOAT,unit=mm

Funktioniert so weit, mir fehlt da nur die Masseinheit noch..

Hab es nun hinbekommen über Umwege.

@justme1968
Wäre schön wenn es im fhem-homebridge modul implementiert werden würde. Sind einige EVE Characteristics die mittlerweile herausgefunden wurden.

Neeein

Hallo,

ich habe folgendes Problem (Fehlermeldung) und bekomme es nicht gelöst: Ich habe bereits alle nodejs Versionen von V.4 ab versucht, immer der gleiche Fehler.

Zum System:
Linux fhem 4.9.80-v7+ #1098 SMP Fri Mar 9 19:11:42 GMT 2018 armv7l GNU/Linux (Raspi/Stretch)
Derzeit: npm -v 5.6.0 / node -v v9.8.0

Der Fehler nachdem ich ungefähr alle Tutorials durchgeklickt habe:
pi@fhem ~ $ homebridge
module.js:545
throw err;
^

Error: Cannot find module ,../build/Release/dns_sd_bindings'
at Function.Module._resolveFilename (module.js:543:15)
at Function.Module._load (module.js:470:25)
at Module.require (module.js:593:17)
at require (internal/module.js:11:18)
at Object. (/usr/lib/node_modules/homebridge/node_modules/mdns/lib/dns_sd.js:32:22)
at Module._compile (module.js:649:30)
at Object.Module._extensions..js (module.js:660:10)
at Module.load (module.js:561:32)
at tryModuleLoad (module.js:501:12)
at Function.Module._load (module.js:493:3)



Ich bin mit meinem sehr kleinen Linuxlatein am Ende und brauche eure Hilfe. Ich hoffe ich habe alle Infos dargelegt, um die Glaskugel in der Schublade zu lassen. Ich habe auch über die Sufu nichts passendes gefunden.

exit2308

@Neeein
Ins Verzeichnis /usr/lib/node_modules/homebridge wechseln und Modul nach installieren
sudo npm install --unsafe-perm mdns
sudo npm rebuild --unsafe-perm

Neeein

Danke für die Lösung!

Typ1er

#2876
kann mit diesem Fehler einer was anfangen? Homebridge startet, bis zum Code, und schmiert dann ab.

Or enter this code with your HomeKit app on your iOS device to pair with Homebridge:
Mär 24 10:54:45 raspberrypi homebridge[2722]:                       
Mär 24 10:54:45 raspberrypi homebridge[2722]:     ┌────────────┐
Mär 24 10:54:45 raspberrypi homebridge[2722]:     │ 031-45-154 │
Mär 24 10:54:45 raspberrypi homebridge[2722]:     └────────────┘
Mär 24 10:54:45 raspberrypi homebridge[2722]:                       
Mär 24 10:54:45 raspberrypi homebridge[2722]: events.js:165
Mär 24 10:54:45 raspberrypi homebridge[2722]:       throw er; // Unhandled 'error' event
Mär 24 10:54:45 raspberrypi homebridge[2722]:       ^
Mär 24 10:54:45 raspberrypi homebridge[2722]: Error: listen EADDRINUSE :::51842
Mär 24 10:54:45 raspberrypi homebridge[2722]:     at Server.setupListenHandle [as _listen2] (net.js:1342:14)
Mär 24 10:54:45 raspberrypi homebridge[2722]:     at listenInCluster (net.js:1383:12)
Mär 24 10:54:45 raspberrypi homebridge[2722]:     at Server.listen (net.js:1471:7)
Mär 24 10:54:45 raspberrypi homebridge[2722]:     at EventedHTTPServer.listen (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/util/eventedhttp.js:60:19)
Mär 24 10:54:45 raspberrypi homebridge[2722]:     at HAPServer.listen (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/HAPServer.js:158:20)
Mär 24 10:54:45 raspberrypi homebridge[2722]:     at Bridge.Accessory.publish (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/Accessory.js:607:16)
Mär 24 10:54:45 raspberrypi homebridge[2722]:     at Server._publish (/usr/local/lib/node_modules/homebridge/lib/server.js:126:16)
Mär 24 10:54:45 raspberrypi homebridge[2722]:     at Server.<anonymous> (/usr/local/lib/node_modules/homebridge/lib/server.js:382:14)
Mär 24 10:54:45 raspberrypi homebridge[2722]:     at /usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/util/once.js:16:19
Mär 24 10:54:45 raspberrypi homebridge[2722]:     at FHEMPlatform.<anonymous> (/usr/local/lib/node_modules/homebridge-fhem/index.js:1101:22)
Mär 24 10:54:45 raspberrypi homebridge[2722]:     at Request.self.callback (/usr/local/lib/node_modules/homebridge-fhem/node_modules/request/request.js:186:22)
Mär 24 10:54:45 raspberrypi homebridge[2722]:     at Request.emit (events.js:180:13)
Mär 24 10:54:45 raspberrypi homebridge[2722]:     at Request.<anonymous> (/usr/local/lib/node_modules/homebridge-fhem/node_modules/request/request.js:1163:10)
Mär 24 10:54:45 raspberrypi homebridge[2722]:     at Request.emit (events.js:180:13)
Mär 24 10:54:45 raspberrypi homebridge[2722]:     at Gunzip.<anonymous> (/usr/local/lib/node_modules/homebridge-fhem/node_modules/request/request.js:1085:12)
Mär 24 10:54:45 raspberrypi homebridge[2722]:     at Object.onceWrapper (events.js:272:13)
Mär 24 10:54:45 raspberrypi homebridge[2722]:     at Gunzip.emit (events.js:185:15)
Mär 24 10:54:45 raspberrypi homebridge[2722]:     at endReadableNT (_stream_readable.js:1101:12)
Mär 24 10:54:45 raspberrypi homebridge[2722]:     at process._tickCallback (internal/process/next_tick.js:114:19)
Mär 24 10:54:45 raspberrypi homebridge[2722]: Emitted 'error' event at:
Mär 24 10:54:45 raspberrypi homebridge[2722]:     at emitErrorNT (net.js:1362:8)
Mär 24 10:54:45 raspberrypi homebridge[2722]:     at process._tickCallback (internal/process/next_tick.js:114:19)
Mär 24 10:54:45 raspberrypi systemd[1]: homebridge-fhem.service: Main process exited, code=exited, status=1/FAILURE
Mär 24 10:54:45 raspberrypi systemd[1]: homebridge-fhem.service: Unit entered failed state.
Mär 24 10:54:45 raspberrypi systemd[1]: homebridge-fhem.service: Failed with result 'exit-code'.

Fehler gefunden, Port doppelt vergeben
Error: listen EADDRINUSE :::51842

Feinfinger

Hallo zusammen,

Ich habe mittlerweile alle Rolladen in FHEM bzw. HomeKit integriert und sie funktionieren zuverlässig.

Nun würde ich diese gerne prozentual über Siri/HomeKit anfahren, allerdings gelingt mir das Mapping nicht.

In FHEM kann ich die Position mit set <Rolladen> pos <Wert in %>

Mein jetziges Mapping sieht so aus.

Code: [Auswählen]
clear CurrentPosition=position,minValue=0,maxValue=100,minStep=100 TargetPosition=CurrentPosition,cmds=/.*/:off;0:on

Damit sind ganz zu und ganz auf möglich und der Status wird auch korrekt übernommen.

Wie muss ich das denn jetzt anpassen, um in 10er Schritten die Position mit HomeKit anfahren zu können?

Gruß Dirk
Proxmox VM - MAPLE-CUL - SIGNALDINO

Feinfinger

Nochmal Hallo in die Runde,

vielleicht kann mir ja jetzt jemand helfen.

Ich habe es nun soweit, da sich sowohl den Status in Homekit sehe und auch anfahren kann. Auf und Zu klappt ebenfalls.

Allerdings mit einem kleinen Fehler, an dem ich mir jetzt den Kopf zerbreche.

Über die Homekit App ist das Signal was das Rollo gesendet wird wohl 0 für Auf, 100 für Ab und pos.

Damit fährt mein Rollo aber nur bis zur Position 100, welche im Dooya Modul "Rollo auf Spalt" ist. Ganz zu ist im Modul Position 200.

Fahre ich das Ganze über FHEM direkt an, wird auch Positon 200 erreicht.


Kann man das umstellen oder um Mappen?

Bin für jede Hilfe dankbar, weil alle meine Versuche mit eventmap oder userreadings damit enden, das nichts mehr geht.

Anbei jsonlist und def vom Device.

{
  "Arg":"R_Test",
  "Results": [
  {
    "Name":"R_Test",
    "PossibleSets":"Zu:noArg Auf:noArg Stop:noArg down:noArg off:noArg on:noArg pos:slider,0,10,100 prog:noArg stop:noArg",
    "PossibleAttrs":"alias comment:textField-long eventMap:textField-long group room suppressReading userReadings:textField-long verbose:0,1,2,3,4,5  IODev SignalRepeats:5,10,15,20 channel:0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 drive-down-time-to-100 drive-down-time-to-close drive-up-time-to-100 drive-up-time-to-open additionalPosReading event-on-change-reading event-on-update-reading event-aggregator event-min-interval stateFormat:textField-long timestamp-on-change-reading oldreadings ignore:0,1 dummy:1,0 loglevel:0,1,2,3,4,5,6 alarmDevice:Actor,Sensor alarmSettings cmdIcon devStateIcon devStateStyle genericDeviceType:security,ignore,switch,outlet,light,blind,thermometer,thermostat,contact,garage,window,lock homebridgeMapping:textField-long icon siriName sortby webCmd webCmdLabel:textField-long widgetOverride userattr",
    "Internals": {
      "CHANNEL": "0",
      "DEF": "0110110000001011111110000011_0",
      "ID": "0110110000001011111110000011",
      "NAME": "R_Test",
      "NR": "125",
      "STATE": "closed",
      "TYPE": "Dooya",
      "exact": "200",
      "move": "stop",
      "position": "200"
    },
    "Readings": {
      "exact": { "Value":"200", "Time":"2018-03-29 07:46:55" },
      "position": { "Value":"200", "Time":"2018-03-29 07:46:55" },
      "state": { "Value":"closed", "Time":"2018-03-29 07:46:55" }
    },
    "Attributes": {
      "IODev": "sduino",
      "SignalRepeats": "10",
      "drive-down-time-to-100": "12",
      "drive-down-time-to-close": "18",
      "drive-up-time-to-100": "6",
      "drive-up-time-to-open": "19",
      "event-on-change-reading": ".*",
      "eventMap": "on:Zu off:Auf stop:Stop",
      "genericDeviceType": "blind",
      "group": "Test",
      "homebridgeMapping": "clear CurrentPosition=position,invert=1 TargetPosition=CurrentPosition,cmd=pos",
      "room": "Homekit",
      "webCmd": "Zu:Auf:Stop:pos"
    }
  }  ],
  "totalResultsReturned":1
}


defmod R_Test Dooya 0110110000001011111110000011_0
attr R_Test IODev sduino
attr R_Test SignalRepeats 10
attr R_Test drive-down-time-to-100 12
attr R_Test drive-down-time-to-close 18
attr R_Test drive-up-time-to-100 6
attr R_Test drive-up-time-to-open 19
attr R_Test event-on-change-reading .*
attr R_Test eventMap on:Zu off:Auf stop:Stop
attr R_Test genericDeviceType blind
attr R_Test group Test
attr R_Test homebridgeMapping clear CurrentPosition=position,invert=1 TargetPosition=CurrentPosition,cmd=pos
attr R_Test room Homekit
attr R_Test webCmd Zu:Auf:Stop:pos
Proxmox VM - MAPLE-CUL - SIGNALDINO

Typ1er

Wie sieht den Das Mapping beim Luftdruck aus?

Mein Reading heißt zwar "pressure" nur würde den Wert gerne korrigiert übergeben. In welcher Einheit der Wert dargestellt wird lässt sich sicher nicht beeinflussen.