homebridge/homekit

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

Vorheriges Thema - Nächstes Thema

EinEinfach

ZitatWürde mich sehr über Hilfe freuen!
attr WohnzimmerWetter homebridgeMapping StatusLowBattery=battery,values=1:BATTERY_LEVEL_NORMAL;/.*/:BATTERY_LEVEL_LOW
fhem auf Intel NUC6CAYH mit Proxmox im LXC (Debian 10), KNX mit knxd über MDT SCN-IP000.02, Buderus GB192-15i über KM100, Solaredge WR SE9K über Modbus-TCP

raspberry

Zitat von: EinEinfach am 19 Dezember 2017, 08:23:49
attr WohnzimmerWetter homebridgeMapping StatusLowBattery=battery,values=1:BATTERY_LEVEL_NORMAL;/.*/:BATTERY_LEVEL_LOW

Vielen Dank für die Rückmeldung!

attr WohnzimmerWetter homebridgeMapping StatusLowBattery=battery,values=1:BATTERY_LEVEL_NORMAL;/.*/:BATTERY_LEVEL_LOW

Damit läuft homebridge fehlerfrei, jedoch kommt wegen des fehlenden Semikolons nur der erste Teil des Mappings an.

"homebridgeMapping": "StatusLowBattery=battery,values=1:BATTERY_LEVEL_NORMAL"

Semikolons müssen escaped werden:
https://fhem.de/commandref_DE.html#command

attr WohnzimmerWetter homebridgeMapping StatusLowBattery=battery,values=1:BATTERY_LEVEL_NORMAL;;0:BATTERY_LEVEL_LOW

Damit läuft homebridge auch fehlerfrei, jedoch wird auch "battery: 1" als "BATTERY_LEVEL_LOW erkannt.

EinEinfach

Woher weißt du, dass nur der erste Teil des Mappings ankommt?
fhem auf Intel NUC6CAYH mit Proxmox im LXC (Debian 10), KNX mit knxd über MDT SCN-IP000.02, Buderus GB192-15i über KM100, Solaredge WR SE9K über Modbus-TCP

raspberry

Zitat von: EinEinfach am 19 Dezember 2017, 09:49:10
Woher weißt du, dass nur der erste Teil des Mappings ankommt?

Steht im entsprechenden Attribut in der FHEM Weboberfläche, in der JSONlist (http://10.10.10.10/fhem?cmd=jsonlist2) und in der homebridge-log-Datei.

EinEinfach

ZitatSteht im entsprechenden Attribut in der FHEM Weboberfläche
Gibst du den Attribut über die Commandozeile von fhem ein? Wenn ja, versuche es direkt im Device zu machen.

ZitatDamit läuft homebridge auch fehlerfrei, jedoch wird auch "battery: 1" als "BATTERY_LEVEL_LOW erkannt.
Starte bitte die Homebridge im Debug-Modus
homebridge --debug
und schaue welcher Wert für den StatusLowBattery gecatcht wird
fhem auf Intel NUC6CAYH mit Proxmox im LXC (Debian 10), KNX mit knxd über MDT SCN-IP000.02, Buderus GB192-15i über KM100, Solaredge WR SE9K über Modbus-TCP

raspberry

Zitat von: EinEinfach am 19 Dezember 2017, 10:38:18
Gibst du den Attribut über die Commandozeile von fhem ein? Wenn ja, versuche es direkt im Device zu machen.
Ne ist in der Config definiert. Aber taucht ja trotzdem in der Weboberfläche auf.

Zitat von: EinEinfach am 19 Dezember 2017, 10:38:18
und schaue welcher Wert für den StatusLowBattery gecatcht wird

caching: StatusLowBattery: 1 (as number; means BATTERY_LEVEL_LOW; from '1')

mit

attr WohnzimmerWetter homebridgeMapping StatusLowBattery=battery,values=1:BATTERY_LEVEL_NORMAL;;0:BATTERY_LEVEL_LOW

EinEinfach

ZitatNe ist in der Config definiert. Aber taucht ja trotzdem in der Weboberfläche auf.
Editierst die Config von Hand? Oder wie hast du den Attribut definiert?
fhem auf Intel NUC6CAYH mit Proxmox im LXC (Debian 10), KNX mit knxd über MDT SCN-IP000.02, Buderus GB192-15i über KM100, Solaredge WR SE9K über Modbus-TCP

raspberry

Zitat von: EinEinfach am 19 Dezember 2017, 11:22:34
Editierst die Config von Hand? Oder wie hast du den Attribut definiert?

Ja genau, manuell. Aber da das mapping ja genau so wie eingegeben auch im Homebridge Log anzeigt wird, scheint das Problem nicht da zu liegen.

EinEinfach

ZitatJa genau, manuell.
Sorry... dann kann ich dir nicht helfen. Der Fehler kann ja von überall kommen.

Gruß
fhem auf Intel NUC6CAYH mit Proxmox im LXC (Debian 10), KNX mit knxd über MDT SCN-IP000.02, Buderus GB192-15i über KM100, Solaredge WR SE9K über Modbus-TCP

raspberry

Zitat von: EinEinfach am 19 Dezember 2017, 11:33:23
Sorry... dann kann ich dir nicht helfen. Der Fehler kann ja von überall kommen.

Trotzdem vielen Dank für deine Mühe!

Hat sonst noch jemand das Problem bzw. hat einen Sensor, bei dem der Batterie Wert 0 bzw. 1 ist und verwendet den LowBatteryStatus?

LinkshänderCode

Hallo zusammen,

ich hoffe ich bin hier richtig mit meinem Anliegen...
Es geht um das Hombridgemapping meiner Wohnungslüftung - ich habe mir einen Dummy-Schalter angelegt und in in Hombridge eingebunden. Der Schalter kann 4 states haben. In FHEM sieht die Umsetzung bisher so aus:

genericDeviceType: Fan
homebridgeMapping: RotationSpeed=state,minValue=1,maxValue=4,minStep=1,unit=,cmd=,
room: EnOcean,Homebridge
setList: 1 2 3 4


Soweit funktioniert die Ansteuerung auch -nur würde ich gerne den eingestellten Zustand des Lüfters besser in HomeKit beschrieben haben, als 1,2,3,4 sondern Off, Auto, Zuluft, Abluft, Max (die EnOcean-Verbindung ist unidirektional, d.h. ich bekomme vom Lüfter nix zurückgemeldet...)

Hat jemand von euch eine Idee? Nach viel Rumprobiererei bekomme ich es nicht besser hin, als einen Schieberegler mit 1-4...
Habt vielen Dank schonmal.

Viele Grüße

ducdarky

#2681
Hallo zusammen,

ich nutze FHEM noch nicht lange, Homebridge an sich schon etwas länger.
Ich habe meine Saugroboter in FHEM eingebunden (als Switch) und kann ihn auch über Siri ansprechen. Allerdings bekomme ich den Ladezustand (ChargingState) und den Akkustand (BatteryLevel) in der Home-App nicht angezeigt. In FHEM schon. Homebridge zeigt an, dass die entsprechende Characteristic zwar übernommen wurde, aber nicht für einen Switch relevant ist.
Wenn ich es richtig verstanden habe, kann man beim Homekit mehrere Services zu einem Device festlegen. Für die Batterie gibt es einen Batteryservice. Bei früheren Experimenten mit ioBroker und dem dortigen Homekit-Modul hatte das auch funktioniert und die Daten wurden in der Home-App angezeigt.
Wir kann ich bei FHEM zu meinem Device ausser dem Service Switch einen zweiten Service BatteryService festlegen, damit die Daten dann in der Home-App angezeigt werden? Ich habe bisher leider keine Möglichkeit dazu gefunden.


   homebridgeMapping clear On=status,cmdOn=start,cmdOff=off,nocache=1 BatteryLevel=batPct ChargingState=Charging


Viele Grüße
Steffen

justme1968

homebridge-fhem erlaubt es mehrere charactertics für einen service zu konfigurieren.

schau mal ob du die characteristics in eve siehst. die home app zeigt fast immer nur die haupt characterstic an.

für ChargingState brauchst du auch noch das values mapping der reading werte auf die homekit werte NOT_CHARGING und CHARGING.

wenn du tatsächlich mehrere services brauchst damit es in der home angezeigt wird musst du z.b. per readingsProxy die betreffenden readings zu einem eigenen fhem device machen und dann dort ein passendes homebridgeMapping für genau diese eine characteristic anlegen.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

ducdarky

In Eve wird der Ladezustand über ein Batteriesymbol angezeigt. Den ChargingState habe ich auf NOT_CHARGING und CHARGING abgebildet. Aber in der HomeApp zeigt er nichts an. Nach meinem Verständnis verhält sich die HomeApp nach Spezifikation, da der anwenderkontrollierte Service Switch ja nur "On" und und "Name" als Characteristic hat. Dazu kann ein Device bei Homekit noch geräteabhängige Services wie z.B. BatteryService oder AccessoryInformation haben. Die eigentliche Homebridge verhält sich zumindest so, legt aber mit dem Hinweis, dass sie nicht relevant sind, die zusätzlichen Characteristica an. Eve scheint hier toleranter zu sein, als die HomeApp.
Wenn ich in FHEM ein Device mit genericDeviceType "BatteryService" mit den Readings des Saugroboter-Devices anlege, dann kann ich in der HomeApp den Ladezustand sehen. Aber da es kein anwenderkontrollierte Service ist, sagt die HomeApp, dass das Gerät nicht bedient werden kann.
Wäre es nicht besser, wenn homebridge fhem bei Vorhandensein der Characteristica "BatteryLevel", "ChargingState" oder "StatusLowBattery" automatisch zu dem Device einen zusätzlichen Service "BatteryService" anlegt? Und vielleicht bei "Seriennummer", "Typ" usw. den Service "Accessory Information"? Dann sollte es sich konform zur Spezifikation verhalten. Oder habe ich einen Denkfehler?

justme1968

die home app zeigt viele dinge nicht an. z.b. nur die temperatur, auch wenn luftfeuchte da ist. custom characteritics werden nicht angezeigt, viele optionale characteristics werden nicht angezeigt, auch wenn sie in einem service vorgesehen sind.

eve zeigt (fast) alles an was ein homekit device liefert.

aktuell kann man über das homebridge mapping anlegen:
1 gerät mit 1 service und n characteristics
1 gerät mit n identischen services und je einer characteristic

was nicht geht ist 1 gerät mit n unterschiedlichen services weil ich noch keine idee habe wie man das im mapping angeben kann. irgendetwas automatisch zu machen geht nur für die meist genutzten geräte und selbst da gibt es nicht eine einzige eindeutige möglichkeit. es muss also auf jeden fall eine möglichkeit geben das von hand zu überschreiben oder sogar komplett selber zu konfigurieren.

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

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