homebridge/homekit

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

Vorheriges Thema - Nächstes Thema

Joker2002

Zitat von: Garbsen am 21 Oktober 2016, 14:28:47
Es ist vollbracht!

Heute könnte ich das FHEM Update für das Somfy Modul installieren. Durch ein neues Attribute positioninverse=1 wird jetzt die Zuordnung bei Bedarf so geändert, dass sie mit Homemativ übereinstimmt

Es gibt eine neue Version des Somfy-Moduls in github, diese enthält eine erste Version einer umgedrehten Positionslogik, wie in diesem Thread andiskutiert:

https://forum.fhem.de/index.php/topic,24158.msg501349.html#msg501349

Es gibt dazu ein spezielles Attribut aufnehmen (positionInverse mit dem Wert 1 wird die neue Logik eingeschaltet). Dann würde zwar intern weiter mit den Werten 0 bis 100/200 gerechnet, aber die externen Readings würden umgerechnet sodass dann:

Jetziger Wert 0 --> Neu: 100
Jetzt 100 --> Neu: 10
Jetzt 200 --> Neu: 0

Also ist dann 10 der Rolladen unten und 0 wäre geschlossen. Damit wäre das auch in derselben Richtung wie bei Homematic?

Die Umrechnung wird nur gemacht, wenn das Attribut gesetzt ist, so dass sich für existierende Nutzer nichts ändern muss.


Und siehe da, jetzt funktioniert alles, alle Devices werden von Home erkannt und regelmäßig aktualisiert, auch if der Watch läuft alles einwandfrei.

Selbstverständlich muss man bei den Somfy Rolläden jetzt im HomebridgeMapping MaxValue auf 100 setzen.

Es ist einfach super, wie das hier in der Community umgesetzt wird, denke n alle Beteiligten!


Hallo Garbsen,

ich habe mit Spannung diesen Threat verfolgt und auch meine Somfy mit dem positionInverse Wert auf 1 versehen.

Jetzt schreibst Du, man soll noch im HomebridgeMapping den MaxValue auf 100 also in Formel ausgedrückt maxValue=100 ?

Wenn ich nur das in dem attr eingebe passiert bei mir gar nichts und die Rollläden lassen sich nicht öffnen.

Könntest Du vielleicht einmal Dein HomebridgeMapping posten so dass ich diesen übernehmen kann ?

Garbsen

Zitat von: Joker2002 am 21 Oktober 2016, 21:20:01

Hallo Garbsen,

ich habe mit Spannung diesen Threat verfolgt und auch meine Somfy mit dem positionInverse Wert auf 1 versehen.

Jetzt schreibst Du, man soll noch im HomebridgeMapping den MaxValue auf 100 also in Formel ausgedrückt maxValue=100 ?

Wenn ich nur das in dem attr eingebe passiert bei mir gar nichts und die Rollläden lassen sich nicht öffnen.

Könntest Du vielleicht einmal Dein HomebridgeMapping posten so dass ich diesen übernehmen kann ?

Ich habe folgendes HomebridgeMapping gesetzt

CurrentPosition=position,minValue=0,maxValue=100 TargetPosition=position,minStep=10,cmd=

Wünsche viel Erfolg
FHEM und Homebridge auf Intel NUC, CUL 868 v 1.66, CUL466 V 1.66, SOMFY RTS Rolläden, HM-LC-Bl1PBU-FM, HM-LC-BL1-FM, HM-SEC-SC-2, HM-SEC-RHS, HM-WDS10-TH-O, HM-SEC-WDS-2, HM-Sen-LI-O, HM-CC-RT-DN, HM-LC-Sw1-Pl-DN-R1, HM-SCI-3-FM, HM-Sec-Sir-WM, HM-PB-2-WM55-2, HM-RC-8, HM-LC-SW1-PL2, Alpha2

DeeSPe

Hab jetzt auch endlich erfolgreich meinen 4-stufigen Alarmanlagen dummy auf SecuritySystemCurrentState und SecuritySystemTargetState gemappt.
Nun funktioniert das endlich genau so wie es soll.

Und weil's so schön war habe ich mir auch meine ROOMMATE/GUEST Devices zusätzlich auf SecuritySystemCurrentState und SecuritySystemTargetState gemappt. Ich finde das passt bei denen besser als beim RESIDENTS Device welches ja eh immer den gemeinsamen Status annimmt. Das RESIDENTS Device nutze ich nur zur Automation in FHEM und deshalb interessiert mich der Status davon nicht in HomeKit.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Jamo

Hi Dan,
würdest Du den code deines  4-stufigen Alarmanlagen dummy mal posten? Ich kriegs echt nicht hin.

Bei den ROOMMATE/GUEST Devices geht das dann äquivalent, oder?

Danke und Gruss!
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

Joker2002

Hm bzgl. der Somfy Steuerung habe ich noch immer Probleme  :-[

Hier mal ein List eines meiner Rollläden :

Internals:
   ADDRESS    000004
   CUL_0_MSGCNT 27
   CUL_0_RAWMSG YsA62502B6040000
   CUL_0_TIME 2016-10-22 11:53:15
   DEF        000004
   IODev      CUL_0
   LASTInputDev CUL_0
   MSGCNT     27
   NAME       rollo_kue
   NR         122
   STATE      open
   TYPE       SOMFY
   move       off
   Code:
     1          000004
   Readings:
     2016-10-22 11:53:14   enc_key         A7
     2016-10-22 11:53:14   exact           100
     2016-10-22 11:53:15   parsestate      off
     2016-10-22 11:53:14   position        100
     2016-10-22 11:53:14   rolling_code    02B7
     2016-10-22 11:53:14   state           open
Attributes:
   IODev      CUL_0
   alias      Fenster Küche
   drive-down-time-to-100 14
   drive-down-time-to-close 14
   drive-up-time-to-100 2
   drive-up-time-to-open 18
   genericDeviceType blind
   homebridgeMapping CurrentPosition=position,minValue=0,maxValue=100 TargetPosition=position,minStep=10,cmd=
   icon       fts_shutter_100
   positionInverse 1
   room       Homekit,Somfy


Das Problem ist, dass bei der Steuerung über die Home App der Rollladen sich zwar öffnen lässt, aber nach ungefähr 30 Sekunden dann wieder komplett schließt und in der Position verbleibt. Das selbe Problem habe ich übrigens auch, wenn ich den Rolladen auf 70% öffnen will, auch hier fährt er wieder nach ca. 30 Sekunden komplett runter.

Habt Ihr da vielleicht noch einen Hinweis für mich, an was das Phänomen liegen könnte ?

DeeSPe

#1430
Zitat von: inoma am 22 Oktober 2016, 10:44:06
Hi Dan,
würdest Du den code deines  4-stufigen Alarmanlagen dummy mal posten? Ich kriegs echt nicht hin.

Bei den ROOMMATE/GUEST Devices geht das dann äquivalent, oder?

Danke und Gruss!

Hat bei mir auch Wenig gedauert bis es richtig lief.
Hier mal die komplette Definition aus meiner fhem.cfg:
define AA dummy
attr AA alias Alarmanlage
attr AA cmdIcon on:general_an@green off:general_aus@red
attr AA devStateIcon arm.*:secur_locked@green:disarm disarm:secur_open@red
attr AA event-on-change-reading state,triggered
attr AA genericDeviceType security
attr AA group Alarmanlage
attr AA homebridgeMapping SecuritySystemCurrentState=state,values=armhome:0;;armaway:1;;armnight:2;;disarm:3;;triggered:1:4\
SecuritySystemTargetState=state,cmds=0:armhome;;1:armaway;;2:armnight;;3:disarm,values=armhome:0;;armaway:1;;armnight:2;;disarm:3;;triggered:1:4,delay=1
attr AA icon secur_alarm
attr AA readingList state
attr AA room HomeKit
attr AA setList state:armaway,armhome,armnight,disarm
attr AA webCmd state


Das Reading "triggered" lasse ich setzen wenn ein Sonsor/Kontakt auslöst, allerdings habe ich immer noch keine Ahnung wie/wo das triggered dann in HomeKit angezeigt wird.

Das Mapping für ROOMMATE/GUEST ist dann ziemlich analog und lässt sich mit folgendem Befehl in der FHEM Eingabezeile auf alle entsprechenden Devices anwenden:
attr TYPE=ROOMMATE|GUEST homebridgeMapping SecuritySystemCurrentState=state,values=/home|awoken/:0;;absent:1;;/asleep|gotosleep/:2;;/gone|none/:3 SecuritySystemTargetState=state,cmds=0:state+home;;1:state+absent;;2:state+gotosleep;;3:state+absent,values=/home|awoken/:0;;absent:1;;/asleep|gotosleep/:2;;/gone|none/:3,delay=1

Das delay könnte man auch weglassen, ich finde es mit aber besser.

Gruß
Dan

EDIT: Nach dem letzten Schema von homebridge-fhem ist auch folgendes (kürzeres) Mapping möglich.

Alarmanlage:
SecuritySystemCurrentState=state,values=armhome:0;armaway:1;armnight:2;disarm:3;triggered:1:4
SecuritySystemTargetState=SecuritySystemCurrentState,cmds=0:armhome;1:armaway;2:armnight;3:disarm,delay=1


ROOMMATE/GUEST:
attr TYPE=GUEST homebridgeMapping SecuritySystemCurrentState=state,values=/home|awoken/:0;;absent:1;;/asleep|gotosleep/:2;;/gone|none/:3 SecuritySystemTargetState=SecuritySystemCurrentState,cmds=0:state+home;;1:state+absent;;2:state+gotosleep;;3:state+absent,delay=1
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

budy

#1431
Moin André,

Zitat von: justme1968 am 20 Oktober 2016, 21:28:56besser ist es das on kommando so zu mappen das es mit einem FILTTER=state=off versehen wird. weiter oben im thread müsste es ein beispiel geben.

Du meinst wahrscheinlich im cmdOn... aber irgendwie mache ich das falsch:

[2016-10-22 16:07:28] [FHEM] homebridgeMapping: cmdOn=FILTER=pct=0+on
[2016-10-22 16:07:28] [FHEM]   wrong syntax: FILTER=pct=0+on


Ich nehme mal an, es stört sich am Filter-Ausdruck selber, oder?

Okay... die characteristics vergessen also so probiert:

On=cmdOn=FILTER=pct=0+on

Ergebnis:

[2016-10-22 17:29:21] [FHEM] homebridgeMapping: On=cmdOn=FILTER=pct=0+on
[2016-10-22 17:29:21] [FHEM]   wrong syntax: cmdOn=FILTER=pct=0+on


...geht auch nicht.

Gruß,
Stephan
Debian stretch, FHEM 5.9.
HM-CC-RT-DN, HM-ES-PMSw1-Pl, HM-LC-Dim1TPBU-FM, HMUARTLGW, HMLAN, HM-SEC-KEY, HM-SEC-RHS, HM-SEC-SC-2, HM-SEC-SCo, HM-SEC-SD-2, HM-OU-CFM-TW, div. HUEs, Wifilight, Ring Video Pro

DeeSPe

#1432
Zitat von: DeeSPe am 22 Oktober 2016, 14:42:14
Das Mapping für ROOMMATE/GUEST ist dann ziemlich analog und lässt sich mit folgendem Befehl in der FHEM Eingabezeile auf alle entsprechenden Devices anwenden:
attr TYPE=ROOMMATE|GUEST homebridgeMapping SecuritySystemCurrentState=state,values=/home|awoken/:0;;absent:1;;/asleep|gotosleep/:2;;/gone|none/:3 SecuritySystemTargetState=state,cmds=0:state+home;;1:state+absent;;2:state+gotosleep;;3:state+absent,values=/home|awoken/:0;;absent:1;;/asleep|gotosleep/:2;;/gone|none/:3,delay=1

Das delay könnte man auch weglassen, ich finde es mit aber besser.

Gruß
Dan

EDIT: Nach dem letzten Schema von homebridge-fhem ist auch folgendes (kürzeres) Mapping möglich.

Alarmanlage:
SecuritySystemCurrentState=state,values=armhome:0;armaway:1;armnight:2;disarm:3;triggered:1:4
SecuritySystemTargetState=SecuritySystemCurrentState,cmds=0:armhome;1:armaway;2:armnight;3:disarm,delay=1


ROOMMATE/GUEST:
attr TYPE=GUEST homebridgeMapping SecuritySystemCurrentState=state,values=/home|awoken/:0;;absent:1;;/asleep|gotosleep/:2;;/gone|none/:3 SecuritySystemTargetState=SecuritySystemCurrentState,cmds=0:state+home;;1:state+absent;;2:state+gotosleep;;3:state+absent,delay=1

Ich habe im zitierten Beitrag das Mapping nochmal angepasst in eine kürzere, aber gleich funktionale Variante.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Garbsen

#1433
Moin André

Gibt es eine Möglichkeit, Thermometer, die ich in Home anzeigen lasse, dazu zu bringen auch Nachkommastellen anzuzeigen? Derzeit wird alles auf voll Grad Celcius gerundet. (also 23 statt 22.6)
Ich dachte es geht mit. minStep=0.1 im HomebridgeMapping, das hilft aber nichts.

Ich nutze einen Dummy der die Werte aus einem umfangreichen Reading bekommt (ich weiß, die meisten sind keine Freunde davon readings in dummys zu kopieren, aber meine Heizungsanlage hat eine Unzahl von readings, die ich mit eine httpmod auslese und ich denke, das es übersichtlicher ist, die Werte, die ich in Hime haben möchte einzeln in Dummies zu schaufeln und dann diese in Home einzubinden.)

Hier das List des Dummies

Internals:
   NAME       TempWZ
   NR         596
   STATE      22.6
   TYPE       dummy
   Readings:
     2016-10-23 10:25:26   temperature     22.6
Attributes:
   alias      Aktuelle Temperatur im Wohnzimmer
   genericDeviceType thermometer
   homebridgeMapping CurrentTemperature=temperature,minStep=0.1
   readingList temperature
   room       Dummies,Homekit,Wohnzimmer
   setList    temperature
   stateFormat temperature
   userReadings TEMP
   widgetOverride homebridgeMapping:textField-long


Danke für Ideen
FHEM und Homebridge auf Intel NUC, CUL 868 v 1.66, CUL466 V 1.66, SOMFY RTS Rolläden, HM-LC-Bl1PBU-FM, HM-LC-BL1-FM, HM-SEC-SC-2, HM-SEC-RHS, HM-WDS10-TH-O, HM-SEC-WDS-2, HM-Sen-LI-O, HM-CC-RT-DN, HM-LC-Sw1-Pl-DN-R1, HM-SCI-3-FM, HM-Sec-Sir-WM, HM-PB-2-WM55-2, HM-RC-8, HM-LC-SW1-PL2, Alpha2

Jamo

#1434
Hi Dan,
danke, super das mit dem AA=Alarm dummy funktioniert perfekt.

Bei den Roommates bekomme ich in Homekit allerdings nicht die 4 Werte "Home" "Away" "Night" "OFF" angezeigt, die sehe ich nur in der Eve App. :-(

Auch erschliesst es sich mir dann nicht, welcher von den states (home|awoken|absent|gone|gotosleep|asleep) ein 'disarm' triggern soll. Oder Andersrum, wenn ich in Eve den rr_Ingolf auf 'disarm' schalte, ändert sich in FHEM der status auf 'absent' -> dass kann aber doch nciht sein.
Eigentlich muss es doch so sein, wenn ich zuhause (home) bin, ist disarm/OFF, für gotosleep|asleep ist armnight/NIGHT für absent|gone ist armaway/Away.
Da mir sonst nichts besseres einfiel, habe ich jetzt deswegen das 'awoken' auf 'armhome' gemapped:


attr   rr_Ingolf homebridgeMapping SecuritySystemCurrentState=state,values=/awoken/:0;;/gone|absent|none/:1;;/asleep|gotosleep/:2;;/home/:3 SecuritySystemTargetState=SecuritySystemCurrentState,cmds=0:state+awoken;;1:state+absent;;2:state+gotosleep;;3:state+home,delay=1


Anbindung an die Alarmanlage habe ich dann so gelöst, oder geht das irgendwie automatisch aus dem rr_Ingolf raus:

define HomeStatus_n notify rr_Ingolf:(home|awoken|absent|gone|gotosleep|asleep) {\
  if ($EVENT eq "home")         {fhem("set Alarmanlage disarm")}\
  elsif ($EVENT eq "awoken")    {fhem("set Alarmanlage armhome")}\
  elsif ($EVENT eq "absent")    {fhem("set Alarmanlage armaway")}\
  elsif ($EVENT eq "gone")      {fhem("set Alarmanlage armaway")}\
  elsif ($EVENT eq "gotosleep") {fhem("set Alarmanlage armnight")}\
  elsif ($EVENT eq "asleep")    {fhem("set Alarmanlage armnight")}\
}


Gruss
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

justme1968

@Garbsen: homebridge/homekit verwendet für thermometer eine auflösung von 0.1 grad. die werden z.b. mit eve auch angezeigt. d.h. wenn die nachkomma stellen fehlen liegt das an home und von homekit seite lässt sich da nichts machen.

die readings auf dummys zu verteilen erzeugt unnötig zusätzliche devices und events. das fördert die performance nicht. zumal es pro reading zwei zusätzliche devices sind. der dummy und das notify. es gibt auch nur ganz wenige fälle bei denen das herauskopieren wirklich nötig ist. zum anzeigen nimmst du besser eine readingsGroup. da hast du zum einen viel mehr möglichkeiten was die anzeige angeht und der overhead entsteht nur wenn das device auch wirklich gerade angezeigt wird. ansonsten schau dir readingsProxy an. das spart zumindest das notify.

gruss
  andre

ps: userReadings ist bei dem dummy unnötig. homebridgeMapping auch.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

Garbsen

#1436
Zitat von: justme1968 am 23 Oktober 2016, 11:08:26
@Garbsen: homebridge/homekit verwendet für thermometer eine auflösung von 0.1 grad. die werden z.b. mit eve auch angezeigt. d.h. wenn die nachkomma stellen fehlen liegt das an home und von homekit seite lässt sich da nichts machen.

die readings auf dummys zu verteilen erzeugt unnötig zusätzliche devices und events. das fördert die performance nicht. zumal es pro reading zwei zusätzliche devices sind. der dummy und das notify. es gibt auch nur ganz wenige fälle bei denen das herauskopieren wirklich nötig ist. zum anzeigen nimmst du besser eine readingsGroup. da hast du zum einen viel mehr möglichkeiten was die anzeige angeht und der overhead entsteht nur wenn das device auch wirklich gerade angezeigt wird. ansonsten schau dir readingsProxy an. das spart zumindest das notify.

gruss
  andre

ps: userReadings ist bei dem dummy unnötig. homebridgeMapping auch.

Kann ich denn eine readingsGroup in Home anzeigen lassen? Per Homebridge?

ReadingsProxy war jedenfalls guter Tipp, allerdings müsste ich dort ein HomebridgeMapping CurrentTemperature=state setzen, das klappt aber gut und vermeidet wie Du richtig sagst ein notify und ein dummy
Schön, dass man hier als Anfänger immer wieder gute Tipps bekommt und mit dem Learning by Doing weiter kommt.
FHEM und Homebridge auf Intel NUC, CUL 868 v 1.66, CUL466 V 1.66, SOMFY RTS Rolläden, HM-LC-Bl1PBU-FM, HM-LC-BL1-FM, HM-SEC-SC-2, HM-SEC-RHS, HM-WDS10-TH-O, HM-SEC-WDS-2, HM-Sen-LI-O, HM-CC-RT-DN, HM-LC-Sw1-Pl-DN-R1, HM-SCI-3-FM, HM-Sec-Sir-WM, HM-PB-2-WM55-2, HM-RC-8, HM-LC-SW1-PL2, Alpha2

DeeSPe

Zitat von: inoma am 23 Oktober 2016, 10:43:53

define HomeStatus_n notify rr_Ingolf:(home|awoken|absent|gone|gotosleep|asleep) {\
  if ($EVENT eq "home")         {fhem("set Alarmanlage disarm")}\
  elsif ($EVENT eq "awoken")    {fhem("set Alarmanlage armhome")}\
  elsif ($EVENT eq "absent")    {fhem("set Alarmanlage armaway")}\
  elsif ($EVENT eq "gone")      {fhem("set Alarmanlage armaway")}\
  elsif ($EVENT eq "gotosleep") {fhem("set Alarmanlage armnight")}\
  elsif ($EVENT eq "asleep")    {fhem("set Alarmanlage armnight")}\
}


Gruss

Das notify ist doch schon super, allerdings würde ich das auf rgr_Residents setzen.

Bei den ROOMMATE/GUEST Devices habe ich Folgendes gemappt:
home,awoken = STAY_ARM = 0 (ANWESEND)
absent = AWAY_ARM = 1 (ABWESEND)
asleep,gotosleep = NIGHT_ARM = 2 (NACHT)
gone,none = DISARMED = 3 (AUS)


Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

DeeSPe

Zitat von: inoma am 23 Oktober 2016, 10:43:53
Bei den Roommates bekomme ich in Homekit allerdings nicht die 4 Werte "Home" "Away" "Night" "OFF" angezeigt, die sehe ich nur in der Eve App. :-(

Ahh, jetzt habe ich gesehen was Du meinst, die Formulierung war wohl etwas ungünstig.
In der Home App werden die Schalter nicht angezeigt (in Eve aber schon), nur der Anwesenheitsstatus (OccupancySensor). Hmm, schade eigentlich.
Habe leider auch noch keine Möglichkeit gefunden das zu ändern. Auch mit genericDeviceType security ändert das nichts.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

knueppler

Hallo zusammen,

auch mal wieder zwei Fragen:
1) Automation
Geht es irgendwie, dass auch Gäste Ereignisse auslösen können, i.e. die Familienmitglieder sind als Gäste eingeladen und ich würde gerne Lokationsbasiert durch deren Devices den Roommate entsprechend setzen, geht das irgendwie?
2) Homebridge stürzt ab und an mit folgendem Fehler ab:
Verify Fail
Layer Decrypt fail!

Kennt das jemand, gibt es da Abhilfe?

Danke, Christian