homebridge/homekit

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

Vorheriges Thema - Nächstes Thema

Thyraz

Super, vielen Dank für die schnelle Hilfe. :)
Fhem und MariaDB auf NUC6i5SYH in Proxmox Container (Ubuntu)
Zwave, Conbee II, Hue, Harmony, Solo4k, LaMetric, Echo, Sonos, Roborock S5, Nuki, Prusa Mini, Doorbird, ...

Thyraz

Und noch eine Frage:

Was ist die beste Möglichkeit einen Fenstersensor darzustellen?
HomeKit kennt ja Door, Garage usw. aber ein Fenstericon hab ich in Eve bei den bisher getesteten Characteristics noch nicht gesehen.

Hat Homekit wirklich keine Fenstersensoren vorgesehen?
Ist ja nicht unbedingt die ungewöhnlichste Sensortype für ein SmartHome System. ;)

Hab jetzt gerade ContactSensorState getestet, aber da kommen dann weitere komische Anzeigen in Eve neben dem eigentlichen Kontakt (Position in %, PositionStatus)
Fhem und MariaDB auf NUC6i5SYH in Proxmox Container (Ubuntu)
Zwave, Conbee II, Hue, Harmony, Solo4k, LaMetric, Echo, Sonos, Roborock S5, Nuki, Prusa Mini, Doorbird, ...

justme1968

es gibt tatsächlich keinen fenster sensor. und eigentlich auch keinen für eine tür. die tür ist ein tür öffner.

am besten wie weiter oben beschrieben als ContactSensor und zusätzlich eine CurrentDoorState characteristic definieren. in even kannst du dann den ContactSensorState ausblenden und siehst über den DoorState ein geöffnet oder geschlossen. das bild in eve ist zwar eine tür aber du kannst über siri trotzdem nach geöffneten oder geschlossenen entern fragen.

wenn du komische anzeigen bekommst liegt es ziemlich sicher daran das es wieder so ein multisenior oder das zufällig die readings da sind die normalerweise für etwas anderes verwendet werden. einfach mit clear löschen. das sollte auch global gehen:
attr <devcie> homebridgeMapping clear ContactSensorState=... CurrentDoorState=...

ContactSensorState ist mandatory. deshalb kannst du ihn nicht löschen.

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

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

Nexium

Hallo,

erstmal ein rießen Lob was hier manche Leute leisten.

Ich komm momentan nicht weiter, bin mir sicher es ist ein Leichtsinnsfehler aber ich komm momentan nicht drauf.

Ich hab ein KNX Dimmer und ihn so in der fhem.cfg eingetragen:

define Dimmer EIB 1/2/2
attr Dimmer IODev KNX
attr Dimmer genericDeviceType light
attr Dimmer homebridgeMapping Brightness=state
attr Dimmer model percent
attr Dimmer room EIB,Homekit
attr Dimmer webCmd value


über FHEM kann ich den Dimmer auch bedinen das klappt alles nur in EVE nicht
Mein Schiebregler passt sich zwar dem Wert an den ich in FHEM einstelle aber wenn ich den Schiebregler in EVE betätige passiert einfach nichts.
Dann ist noch komisch das ich einen Ein und Ausschalter habe und darunter dann den Schieberegler in FHEM hab ich aber nur den Schieberegler.
Betätige ich in EVE den Ein- Ausschalter passiert nichts bzw. er steht immer auf an und drück ich auf aus springt er sofort wieder auf an.

Bin dankebar für jede Hilfe

Gruß Dominik

justme1968

zeig mal ein jsonlist2 von device.

dein homebridgeMapping ist ziemlich sicher unvollständig:
- welches kommando wird zum dimmen verwendet
- in welchem reading steht der aktuelle dim wert?
- in welchem format?
- gibt es extra kommandos für on und off?

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

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

Nexium

Hallo Justme,

leider bin ich sehr unerfahren.
Ich versuche dir aber so gut es geht die Fragen zu beantworten.
Ich hab es jetzt mal anderst versucht und einen Dimmer2 angelegt und er sieht in der fhem.cfg folgend aus

define Dimmer2 EIB 1/2/2 1/0/1
attr Dimmer2 IODev KNX
attr Dimmer2 eventMap /on g2:AN/off g2:AUS/value:slider,0,1,100 g1
attr Dimmer2 genericDeviceType light
attr Dimmer2 group Licht
attr Dimmer2 homebridgeMapping Brightness=state
attr Dimmer2 model percent
attr Dimmer2 room Homekit
attr Dimmer2 webCmd AN::AUS::value


Nur leider verhält sich das ganze genau so.

Ich bin mir nicht sicher was das jsonlist2 angeht aber wenn ich in FHEM jsonlist2 [Dimmer2] eingebe erhalte ich folgende ausgabe

{
  "Arg":"[Dimmer2]",
  "Results": [
  ],
  "totalResultsReturned":0
}


Leider weis ich nicht ob das die Information ist die du wolltest.

Die Gruppenadresse 1/2/2 ist der Helligkeitswert. Wird in % angegeben von 0% bis 100%, wobei 0% gleichzeitig auch aus ist.
Zusätzlich kann ich aber über die Gruppenadresse 1/0/1 den Dimmer ein und aus schalten.
Der aktuelle Dimmwert steht im reading state.

Ich füge mal ein paar Bilder ein vielleicht hilft das weiter.

Vielen dank für deine Hilfe.


justme1968

du brauchst kein zweites device.

du musst das jsonlist2 Dimmer2ohne die eckigen klammern eingeben.

du musst im homebridgeMapping für jede characterristic (bei dir sind das On für ein/aus und Brightness für die helligkeit) angeben welches fhem reading wie auf den homekit wert abgebildet werden soll und wie der homekit wert auf fhem kommandos abgebildet werden sollen. mehr dazu findet du hier: https://github.com/justme-1968/homebridge-fhem.

ich vermute du brauchst etwas in der art:
attr <dimmer> homebridgeMapping On=state,valueOff=0,cmdOn=...,cmdOff=...  Brightness=state,cmd=value

bei cmdOn und cmdOff musst du reinschreiben was gesendet werden soll. entweder value.100 und value.0 oder etwas anderes passendes.

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

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

Nexium

Andre, vielen vielen dank. Es klappt noch nicht ganz aber ich kann jetzt zumindenst über EVE und Siri dimmen.
Nur leider ist der Ein Aus schalter noch ohne funktion, ich kann ihn jetzt zwar hin und her schalten aber die Lampe wird nicht ein oder aus geschaltet.


hier mal die jsonlist2

{
  "Arg":"Dimmer2",
  "Results": [
  {
    "Name":"Dimmer2",
    "PossibleSets":"AN:noArg AUS:noArg off on on-for-timer on-till raw string value:slider,0,1,100",
    "PossibleAttrs":"verbose:0,1,2,3,4,5 room group comment:textField-long alias eventMap userReadings:textField-long IODev do_not_notify:1,0 ignore:0,1 dummy:1,0 showtime:1,0 EIBreadingX:1,0 EIBreadingSender:1,0 EIBanswerReading:1,0 EIBreadingRegex EIBwritingRegex event-on-change-reading event-on-update-reading event-aggregator event-min-interval stateFormat model:timeperiod-h,time2sensor,rainsensor,dpt13,date,dpt7,tempsensor,timeperiod-ms,dpt3,percent,dpt5.004,speedsensor,power,dpt6.010,dpt13.010,dpt1,voltage-mV,dpt5.003,dpt14,airqualitysensor,time1sensor,dpt11,dpt5.Slider,dpt16,dpt10,current-mA,dpt12,dpt6,dpt9,length-mm,speedsensor-km/h,brightness,humiditysensor,dpt5,powerdensity,current-mA2,dpt6.001,percent255,angle,timeperiod-min,pressuresensor,time,lightsensor,dpt13.013,dpt10_no_seconds alarmDevice alarmSettings cmdIcon devStateIcon devStateStyle fm_type fp_Wohnen fp_Wohnzimmer genericDeviceType:switch,outlet,light,blind,speaker,thermostat,radio,frm_ad,SVG_FileLog_Wz.Pflanze2_1,svg,ignore,lock,window,contact homebridgeMapping:textField-long icon sortby webCmd widgetOverride userattr",
    "Internals": {
      "DEF": "1/2/2 1/0/1",
      "GROUP": "1202",
      "KNX_MSGCNT": "133",
      "KNX_RAWMSG": "B1103w120201",
      "KNX_TIME": "2016-03-28 13:00:45",
      "LASTGROUP": "1202",
      "LASTInputDev": "KNX",
      "MSGCNT": "133",
      "NAME": "Dimmer2",
      "NR": "242",
      "RAWSTATE": "on",
      "STATE": "0 %",
      "TYPE": "EIB"
    },
    "Readings": {      "state": { "Value":"0 %", "Time":"2016-03-28 13:00:45" }    },
    "Attributes": {
      "IODev": "KNX",
      "eventMap": "/on g2:AN/off g2:AUS/value:slider,0,1,100 g1",
      "genericDeviceType": "light",
      "group": "Licht",
      "homebridgeMapping": "On=state,valueOff=0,cmdOn=100,cmdOff=0  Brightness=state,cmd=value",
      "model": "percent",
      "room": "Homekit",
      "webCmd": "AN::AUS::value"
    }
  }  ],
  "totalResultsReturned":1
}



das Mapping hab ich mal so gemacht wie du gesagt hast das sollte doch eigentlich klappen oder?

attr Dimmer2 homebridgeMapping On=state,valueOff=0,cmdOn=100,cmdOff=0  Brightness=state,cmd=value

justme1968

wenn es on und off oder AN und AUS kommandos gibt kannst du die direkt verwenden. wenn nicht musst du vermutlich level 0 bzw level 100 senden und nicht 0 und 100 einzeln. im mappnig muss dann also level.0 und level.100 stehen.

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

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

micha105

Hallo Andre,

vielen Dank für die tolle Erweiterung.
Ich bastele zur Zeit an einer Garagenstuerung bestehend aus:

a) Threestatesensor  "GR.Tor"  ( HM ThreestateSensor)
b) Schaltaktor "GR.sw1" ( HM Schaltaktor)
c) Dummytaster "GR.Taster" ( für Webinterface)
d) Notifier "GR.TasterNotofier" der nach Betätigen des Dummytasters einen kurzen Impuls auf den Schaltaktor auslöst

Das alles funktioniert zufriedenstellend.  :)

Homebridge habe ich in der Version 0.3.1 installiert.
Ich habe ein virtuelles Device als dummy-Garage angelegt und über CurrentDoorState die Werte für closed und open zugewiesen.
Damit antwortet Siri brav auf die Fragen "Ist die Garage offen ?" oder "Ist die Garage zu ?"  :)

Das Schalten des Gragentores über Siri funktioniert prinzipiell auch.  ( "Siri, öffne die Garage", "SIri, schliesse die Garage")
Allerdings bekomme ich es nicht hin den Vorgang in Abhängigkeit vom CurrentDoorState zu schalten. Im Grunde löse ich zur Zeit nur den Dummytaster aus, egal ob die Garage offen oder zu ist.
Die Antwort von Siri passt dementsprechend nicht immer.

Ich habe verschiedene Einstellungen mit TargetDoorState und "CmdOn=... " bzw. "cmds=...." ausprobiert ohne zu einem zufriedenstellendem Ergebnis zu kommen.


Kannst Du mich bitte in die richtige Richtung lenken ?

Grüße,

Micha

virtuelles Garagentor für Siri/Eve

define GR.vTor dummy
attr GR.vTor genericDeviceType garage
attr GR.vTor homebridgeMapping CurrentDoorState=GR.Tor:state,values=closed:1;;open:0

attr GR.vTor room Homekit

Notifier f. Garage

define GR.vGR.TasterNotify notify GR.vTor { fhem("set GR.sw1 on-for-timer 1 ;; set GR.Taster off")}


justme1968

ich bin mir nicht sicher ob ich die frage richtig verstehe...

homekit kennt nur kommandos zum öffnen und schliessen. wenn das tor offen ist und du es noch mal öffnen lässt wird homekit stur noch mal das gleiche kommando senden.

eine mögliche lösung wäre die dummy + notify logik so umzubauen das der dummy wirklich auf/zu kennt und nur dann das on-for-timer sendet wenn der ziel zustand ungleich dem aktuellen zustand ist.

statt dumm + notify ist vielleicht ein readingsProxy einfacher.

damit hättest du dann auch zwei eindeutige kommandos für homekit/siri.

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

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

knueppler

Hallo,

ich versuche gerade meinen Rollläden beizubringen, dass man sie via EVE nur in 10er-Schritten auf- und zufahren kann.
Leider funktioniert mein Mappingversuch bis dato nicht, was mache ich falsch?
TargetPosition=pct,minValue=0,maxValue=100,minStep=10
Debug-Ausgabe sieht vielversprechend aus:
[FHEM] homebridgeMapping: TargetPosition=pct,minValue=0,maxValue=100,minStep=10
[FHEM] mappings for Rolladen_Wirtschaftsraum: { On: { reading: 'pct', valueOff: '0', cmdOn: 'on', cmdOff: 'off' },
  PositionState:
   { reading: 'motor',
     values: [ '/^up/:INCREASING', '/^down/:DECREASING', '/.*/:STOPPED' ] },
  CurrentPosition: { reading: 'pct' },
  TargetPosition:
   { reading: 'pct',
     cmd: 'pct',
     delay: true,
     minValue: '0',
     maxValue: '100',
     minStep: '10' } }
[FHEM] Rolladen_Wirtschaftsraum is blind
[FHEM] Rolladen_Wirtschaftsraum has PositionState [motor]
[FHEM] value2homekit_re: [ { re: '^up', to: 1 },
  { re: '^down', to: 0 },
  { re: '.*', to: 2 } ]
[FHEM] homekit2name: { '0': 'DECREASING', '1': 'INCREASING', '2': 'STOPPED' }
  2016-03-28 11:44:20 caching: Rolladen_Wirtschaftsraum-motor: stop
[FHEM] Rolladen_Wirtschaftsraum-motor values: value stop mapped to 2
[FHEM]     caching: PositionState: 2 (as number; means STOPPED; from 'stop')
  2016-03-28 11:44:20 caching: Rolladen_Wirtschaftsraum-pct: 80
[FHEM]     caching: CurrentPosition: 80 (as number; from '80')
[FHEM]     caching: TargetPosition: 80 (as number; from '80')

Was mache ich falsch?

@micha105
Ich habe einen analogen Setup. Das Problem ist, dass ja letztlich immer wieder derselbe Impuls unterschiedliche Aktionen am Garagenmotor auslöst. Von daher merke ich mir den aktuellen Status der Garage tatsächlich in meinem FHEM-Dummy, sprich Dein dummy-Garage. Dort setze ich dann in meinem cmdalias via setreading Dinge wie motor, state, doorState und werte sie entsprechend beim nächsten mal aus und entschiede, ob ich etwas mache.

Danke, Christian

micha105

Hallo Andre, hallo Christian,

danke für die Antworten !

Mit dem Readingsproxy habe ich es leider nicht hinbekommen.
Der State des Proxydevices wird ja vom Ursprungsdevice übernommen. Das ist praktisch, da man dann sieht ob das Tor auf oder zu ist.
Gleichzeit will homebridge jedoch den state überschreiben um eine Änderung mitzuteilen.

[FHEM] GR.vTor: executing set cmd for TargetDoorState with value 1
[FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=set%20GR.vTor%20closed&XHR=1


Kann man hier irgendwie angeben, dass ein anderes Reading/Attribut, evtl. auf einem anderen (Dummy)Device beschrieben werden soll ?
Ich habe es nicht hinbekommen.


Mit dem Dummy klappt es jetzt dafür :)
Ich vergleiche den Ist-Zustand des Sensors mit dem Sollzustand aus homebridge`s "TargetDoorState" , also dem state aus dem Dummydevice.

Zum Abschluss noch meine lauffähige Config betreffend Siri

define GR.vTor dummy
attr GR.vTor genericDeviceType garage
attr GR.vTor homebridgeMapping CurrentDoorState=GR.Tor:state,values=closed:1;;open:0\
TargetDoorState=state,cmds=0:open;;1:closed,values=closed:1;;open:0
attr GR.vTor room Homekit


define GR.vGR.TasterNotify notify GR.vTor { fhem("set GR.sw1 on-for-timer 1 ;; set GR.Taster off") if ( ReadingsVal("GR.vTor","state","undef") ne ReadingsVal("GR.Tor","state","undef") )}



Gruesse

Micha

Nexium

Hallo,

ich hab mir ein KNX Lichtsensor mit eingebunden.

Kann mir jemand sagen ob man diesen auch über Siri abfragen kann?

Gruß Dominik

Thyraz

#509
Ich hab ein komisches Verhalten mit HomeKit und meinen Hue Lampen nach einem Systemneustart.

Alle Hue-Lampen sind plötzlich wieder im Standardraum und auch alle anderen Änderungen die ich in Eve gemacht habe (Siri-Name der Devices, ausgeblendete Characteristics, ...) sind wieder weg.
Sieht aus als ob die Hue Lampen als komplett neue Geräte in Homebridge erkannt werden.

Hab dann noch ein wenig rumgespielt und das ganze weiter eingrenzen können:
Ich verwende das init.d Startscript aus dem Wiki in unveränderter Form.

Lasse ich das Skript beim Booten automatisch starten kommt es zu dem obigen Fehler.
Deaktiviere ich den Autostart hingegen und starte das Script dann händisch nach dem Booten (wieder über das init.d script, nicht direkt über die binary. Das Script, die Pfade und die Berechtigungen scheinen also ok zu sein), klappt alles wie es soll.

Kann es sein, dass Homebridge hier startet bevor FHEM das Hue-Modul geladen hat und das zu Problemen führt?
Fhem und MariaDB auf NUC6i5SYH in Proxmox Container (Ubuntu)
Zwave, Conbee II, Hue, Harmony, Solo4k, LaMetric, Echo, Sonos, Roborock S5, Nuki, Prusa Mini, Doorbird, ...