homebridge/homekit

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

Vorheriges Thema - Nächstes Thema

justme1968

es gibt in fhem kein defs kommando. hombridge versucht perl code anzuführen (um die homebridge-fhem version im siri device zu setzen). das musst du erlauben.

unabhängig davon: ich verstehe nicht was du mit dem ganze aufwand erreichen willst.

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

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

kennymc.c

#4156
Da das Fhem Passwort im Klartext in der Homebridge Config steht, möchte ich einen eigenen Zugang dafür einrichten, der nur das nötigste kann. Falls mal jemand ungewolltes Zugriff auf den Homebridge Server bekommen sollte, muss er ja nicht gleich auch die Haupt-Zugangsdaten für Fhem präsentiert bekommen. Mehr als das was über HomeKit möglich ist, sollte dann nicht möglich sein.
Aber ich vermute, dass das durch die Perl Befehle nicht wirklich zu begrenzen ist. Hilft wohl nur alle Devices aus dem Homebridge Raum in allowedDevices zu packen. Dann kann zumindest nichts anderes damit gestreut werden oder die Zugangsdaten geändert werden.

Noch komfortabler wäre es natürlich, wenn das Plugin das Zugangsdaten bei der Eingabe über die UI verschlüsselt wie es auch in Fhem selbst passiert.

justme1968

ich glaube du machst dir an der falschen stelle gedanken. das risiko das sich jemand unberechtigt am fhem server zu schaffen macht und/oder das es dort ein loch gibt ist sehr viel größer als beim homebridge server. wenn jemand so weit auf dein system vorgedrungen ist das er ein lokal gespeichertes password ausspähen könnte hilft dir auch ein verschlüsseltes password nicht mehr. wenn jemand die lese rechte von homebridge (oder fhem) erlangt hat er vollen zugriff auf alles. das ist leider ein prinzipieller nachteil eines offenen und interpretierenden systems. egal ob node oder perl. da hilf auch kein verschlüsselt ablegen mehr. dann ist alles zu spät. es sei denn du hast alles so konfiguriert das der schlüssel nur beim system start manuell eingegeben wird. aber das ist nicht proktikabel.

das gilt auch für jeden anderen rechner in deinem netz. ich vermute auch das das risiko über ein bekanntest oder unbekanntes allgemeines loch ins system zu kommen deutlich größer ist als das jemand sich gezielt fhem vornimmt. jedenfalls so lange man nicht dinge wie port forwaring direkt aus dem internet konfiguriert. dafür ist die verbreitung dann doch zu klein.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

hellijo

#4158
Hallo Zusammen,

ich habe zwei Lüfter in der Homebridge als genericDevice ,,fan" eingebunden.
Soweit funktioniert alles.
Es gibt allerdings einen Punkt in der Darstellung des Lüfter, welche mich stört:
In Lüfterstufe 0 wird der Lüfter als ,,AUS" angezeigt - passt.
In Lüfterstufe 1 wird der Lüfter als ,,EIN" angezeigt - passt.

Stelle ich Lüfterstufe 2 oder 3 ein, wird der Lüfter als ,,AUS" angezeigt. Aber wieso?


gelöst:


defmod FanSelectorDay dummy
attr FanSelectorDay devStateIcon 0:vent_ventilation_level_0 1:vent_ventilation_level_1 2:vent_ventilation_level_2 3:vent_ventilation_level_3
attr FanSelectorDay genericDeviceType fan
attr FanSelectorDay group THZ
attr FanSelectorDay homebridgeMapping On=fanSwitch,part=1,valueOn=1,valueOff=0,cmdOff=0,cmdOn=2\
RotationSpeed=state,part=1,minValue=0,maxValue=3,minStep=1,cmd=
attr FanSelectorDay room Heizung,Homekit
attr FanSelectorDay setList 0 1 2 3
attr FanSelectorDay siriName FanDay
attr FanSelectorDay stateFormat state
attr FanSelectorDay userReadings fanSwitch {(ReadingsNum("FanSelectorDay","state",0) == 0) ? 0:1}
attr FanSelectorDay webCmd 0:1:2:3


Habe ich hier etwas falsch gemacht?
Gruß Jörg

Cybers

Zitat von: Cybers am 01 Juni 2022, 14:13:57
Hallo,

ich habe ein kleines Problem mit dem Homebridgemapping meines Thermostats. In der "Home-App" bekomme ich bei dem Device nur einen "runden Button" zum ein- oder auschalten. Das ist soweit nicht falsch, auch wenn ich eher von einem Auswahlfeld mit Aus und Heizen ausgegangen bin. Wenn ich jetzt den Button aktiviere, wird aber "auto" an mein Fhem-Device gesendet und nicht "on". Was habe ich hier falsch gemacht?
attr Pool_Solltemperatur homebridgeMapping TargetTemperature=state::state,minValue=24,maxValue=32,minStep=0.5,nocache=1 CurrentTemperature=Wassertemperatur_Skimmer:temperature,nocache=1\
TargetHeatingCoolingState=Poolheizung:state,values=OFF:0;;HEAT:1;;COOL:2;;AUTO:3,cmds=OFF:off;;HEAT:on;;AUTO:auto,valid=OFF;;COOL,valid=OFF;;AUTO StatusActive=present,valueOn=on,valueOff=off;;AUTO history:size=1024


Gruß, Sascha

Hat keiner eine Idee?
FHEM 6.2 auf Raspberry PI 4 / Smartvisu
Eltako Serie 14: FAM14, FGW14-USB, FSB14, FSR14-4x, FSR14-2x, FDG14, FTS14-EM in Kombination mit Jung F50 24V Tastern
1-Wire Temperatursensoren
aus alter Zeit:
Gott sei Dank nur noch 3 Homematic Jalousie- & Schaltaktoren! Wer sich mit Funk auskennt, legt Kabel

Thyraz

Erstmal hast du gleich zweimal die validen (sichtbaren) Modi definiert.
Scheinbar gewinnt hier die letzte Zuweisung: valid=OFF;;AUTO

Und wenn du off und auto angibst, dann bekommst du eben off und auto. ;)

Zum runden on/off Knopf ohne Beschriftung:
Wenn nur 2 Modi beim Thermostat vorhanden sind, schenkt sich die Home App die Beschriftung und zeigt einfach einen an/aus Knopf ohne Text an.
Die Auswahlliste mit Beschriftung gibts erst ab mindestens 3 definierten Zuständen.
Fhem und MariaDB auf NUC6i5SYH in Proxmox Container (Ubuntu)
Zwave, Conbee II, Hue, Harmony, Solo4k, LaMetric, Echo, Sonos, Roborock S5, Nuki, Prusa Mini, Doorbird, ...

zagdul

Ich habe ein mehr oder minder kosmetisches Problem mit Homebridge und meinen Rollos. Diese werden in Homekit immer als "wird geöffnet" oder "wird geschlossen" angezeigt, es sei denn, sie sind geschlossen. das funktioniert. Ich habe schon eine menge rumprobiert, aber irgendwie komme ich nicht drauf. Vielleicht hat ja jemand eine Idee.... Danke!

Hier die config:

define Rollo_VR Siro 24359281
attr Rollo_VR IODev mysignalduino
attr Rollo_VR SignalLongStopRepeats 15
attr Rollo_VR SignalRepeats 8
attr Rollo_VR devStateIcon {return '.*:fts_shutter_1w_'.(int($state/10)*10)}
attr Rollo_VR down_auto_stop 0
attr Rollo_VR down_limit_mode_1 100
attr Rollo_VR event-min-interval .*:300
attr Rollo_VR event-on-change-reading .*
attr Rollo_VR genericDeviceType blind
attr Rollo_VR homebridgeMapping CurrentPosition=userposition,minValue=0,maxValue=100,minStep=10 TargetPosition=userposition,invert=1,minValue=0,maxValue=100,minStep=10,cmd=position
attr Rollo_VR invers_position 0
attr Rollo_VR operation_mode 0
attr Rollo_VR prog_fav_sequence prog,2,stop,2,stop
attr Rollo_VR room HomeKit,Siro
attr Rollo_VR siriName Rollo vorne rechts
attr Rollo_VR time_down_to_favorite 15
attr Rollo_VR time_to_close 30
attr Rollo_VR time_to_open 30
attr Rollo_VR webCmd stop:on:off:fav:position
define FileLog_Rollo_VR FileLog ./log/Rollo_VR-%Y.log Rollo_VR

Thyraz

Das Reading "userposition" ändert sich wenn du verfahren bist?
Denn dadurch erkennt er ja wahrscheinlich, dass er angekommen ist.

Und dann wäre noch die Frage ob minStep bei CurrentPosition Sinn macht?
Nicht dass er dadurch kleinere Änderungen nicht mitbekommt.

Das dürfte im Gegensatz zu TargetPosition ja nur Rückmeldung sein, und nichts was man einstellen kann.

Und userposition heißt wirklich userposition und nicht userPosition.


Nur so ein paar Ideen auf den ersten Blick ...
Fhem und MariaDB auf NUC6i5SYH in Proxmox Container (Ubuntu)
Zwave, Conbee II, Hue, Harmony, Solo4k, LaMetric, Echo, Sonos, Roborock S5, Nuki, Prusa Mini, Doorbird, ...

zagdul

Danke schon mal für die Tipps... immerhin liege ich nicht ganz daneben...
Ich glaube nicht, dass sich der Wert ändert. Aber aus irgend einem Grund wird, wenn die Rollos auf irgendeiner position eingestellt sind, immer "wird geöffnet" oder "wird geschlossen" angezeigt.

mir ist gerade eben aufgefallen, dass in homebridge auch ein Fehler angezeigt wird:

[22/07/2022, 11:40:43] [homebridge-fhem] Rollo_VL-userposition not a number:
[22/07/2022, 11:40:43] [homebridge-fhem] This plugin generated a warning from the characteristic 'Target Position': characteristic value expected valid finite number and received "undefined" (undefined). See https://homebridge.io/w/JtMGR for more info.

Thyraz

Gibt es denn in deinem Device denn überhaupt ein Reading "userposition" oder hast du das Homebridgemapping irgendwoherkopiert, von einem User der ein ganz anderes Gerät verwendet?

Dein Homebridgemapping sagt aus, dass er den aktuellen Wert aus dem Reading userposition übernehmen soll.
Da muss dann auch die aktuelle Rollladenposition zu finden sein, sonst klappt das natürlich nicht.

Es ist normal, dass Homekit nach einem ansteuern des Gerätes ein "wird ..." anzeigt.
Das verschwindet wenn es vom Gerät eine plausible "Habe Position xyz erreicht" Rückmeldung bekommt, so dass die Fahrt als beendet angesehen wird.
Fhem und MariaDB auf NUC6i5SYH in Proxmox Container (Ubuntu)
Zwave, Conbee II, Hue, Harmony, Solo4k, LaMetric, Echo, Sonos, Roborock S5, Nuki, Prusa Mini, Doorbird, ...

zagdul

zugegeben, ich hab das irgendwoher kopiert - die Unterschiede sind mir (noch) nicht so geläufig... - ich hatte keine Ahnung, dass das evtl. am Gerät selbst liegt.

Das Rollo ist ein "Siro"-Device, keine Ahnung ob das den wert zurück liefern kann... Erstaunlich ist aber, dass wenn man das rollo auf "0" stellt, steht auch "geschlossen" da....

ich bin noch ein Anfänger... sorry für die vermeindlich blöden fragen.


Thyraz

Du gehst dazu in die Device-Ansicht von dem Rolle in Fhem und schaust im Bereich "Readings" ob es eines gibt mit diesem Namen.
Wenn nicht, musst du rausfinden in welchem Reading sonst der Wert mit der aktuellen Position landet.

Ansonsten mal "list <deviceName> in der FHEM Eingabezeile eingeben.
Dieses Listing dann hier posten, dann sehen wir evtl. wie es bei dir gelöst werden müsste.
Fhem und MariaDB auf NUC6i5SYH in Proxmox Container (Ubuntu)
Zwave, Conbee II, Hue, Harmony, Solo4k, LaMetric, Echo, Sonos, Roborock S5, Nuki, Prusa Mini, Doorbird, ...

zagdul

#4167
Zitat von: Thyraz am 22 Juli 2022, 14:50:14
Du gehst dazu in die Device-Ansicht von dem Rolle in Fhem und schaust im Bereich "Readings" ob es eines gibt mit diesem Namen.
Wenn nicht, musst du rausfinden in welchem Reading sonst der Wert mit der aktuellen Position landet.

Ansonsten mal "list <deviceName> in der FHEM Eingabezeile eingeben.
Dieses Listing dann hier posten, dann sehen wir evtl. wie es bei dir gelöst werden müsste.

dort scheint es nur einen punkt "position" zu geben, userposition taucht da nicht auf. Das sind die readings:

action
last_reset_os
operating_seconds
parsestate
position
prog_mode
state


ok, bedeutet also, ich muss in der defintion bei CurrentPosition nicht "userposition" sondern "position" eintragen... wenn ich das richtig verstanden habe ;)
Das habe ich gerade mal probiert, das hat auch nicht den 100%igen Erfolg. Es ist genauso, wie vorher. Ich kann die Rollos steuern über Homekit, aber es wird der falsche Status angezeigt.

Ich habe mir jetzt mal diese Readings angesehen. Dort wird "position" und "state" auf den gewünschten Wert gesetzt. Lustigerweise taucht bei einem der anderen Rollos auch userposition auf, das ist aber immer 0.  :o wie kann das denn sein? Die config ist quasi identisch. Userposition komt in der fhem.cfg gar nicht mehr vor...
bei Action steht dann sowas wie "down to position 90" oder "no action".

wenn der Wert von "position" nicht 100 ist, steht in Homekit immer "wird geöffnet" oder "wird geschlossen"... sobald da 100 steht, zeigt homekit "geschlossen" an...

jetzt ist es sogar so, dass homekit das Rollo zwar als "geschlossen" anzeigt - aber wenn ich die App verlasse und wieder rein gehe, steht da "wird geöffnet"....
???

irgendwas hab ich jetzt vermurkst, wie es scheint....






juergen012

#4168
Hallo,
ich habe bei meinen Siro Rollos folgendes homebridgemapping:
homebridgeMapping TargetPosition=position,cmd=position,cmds=100:on,invert=1,minValue=0,maxValue=100,minStep=1,delay=1000\
CurrentPosition=state,cmd=position,invert=1,minValue=0,maxValue=100,minStep=1\
PositionState=state,values=runningUp:INCREASING;;runningDown:DECREASING,default=STOPPED


edit: Sorry..habe bei mit gestestet..o.a. Code klappt nicht.

Hiermit klappt es mit Alexa und in der Homekit App. Eve zickt..
TargetPosition=position,cmd=position,cmds=100:on,invert=1,minValue=0,maxValue=100,minStep=1 CurrentPosition=position,cmd=position,invert=1,minValue=0,maxValue=100,minStep=1

Habe ich hier aus dem Forum..
Gruß
Jürgen K.
Fhem unter Proxmox

zagdul

Zitat von: juergen012 am 23 Juli 2022, 12:24:12
Hallo,
ich habe bei meinen Siro Rollos folgendes homebridgemapping:
homebridgeMapping TargetPosition=position,cmd=position,cmds=100:on,invert=1,minValue=0,maxValue=100,minStep=1,delay=1000\
CurrentPosition=state,cmd=position,invert=1,minValue=0,maxValue=100,minStep=1\
PositionState=state,values=runningUp:INCREASING;;runningDown:DECREASING,default=STOPPED


edit: Sorry..habe bei mit gestestet..o.a. Code klappt nicht.

Hiermit klappt es mit Alexa und in der Homekit App. Eve zickt..
TargetPosition=position,cmd=position,cmds=100:on,invert=1,minValue=0,maxValue=100,minStep=1 CurrentPosition=position,cmd=position,invert=1,minValue=0,maxValue=100,minStep=1

Habe ich hier aus dem Forum..
Gruß
Jürgen K.

Hallo Jürgen, Danke für die Hilfe - das war hilfreich. Was allerdings wenig hilfreich war, war homebridge nicht neu zu starten, wenn ich da irgendwelche Änderungen gemacht habe.  ::)

Mit ein wenig rumprobieren, habe ich jetzt eine Konfig, die wohl zu funktionieren scheint, obwohl ich nicht so 100% kapiere, wieso: es ist eine Mischung aus den beiden Konfigurationen, die oben stehen. Erstaunlicherweise scheint es auch zu funktionieren, wenn man PositionState=action setzt! (ich hielt das für ne gute Idee... aber Homebridge scheint den Wert gar nicht zu lesen...).

für alle, die die Zeile noch mal in ihrer vollen Pracht für evtl. ein anderes Siro-Rollo benötigen:

attr Rollo_VR homebridgeMapping TargetPosition=position,cmd=position,cmds=100:on,invert=1,minValue=0,maxValue=100,minStep=1 CurrentPosition=position,cmd=position,invert=1,minValue=0,maxValue=100,minStep=1 PositionState=action,values=up:INCREASING,down:DECREASING,default=STOPPED


Danke für eure Hilfe, ich denke, das Problem ist damit erst mal gelöst - der status wird jetzt richtig angezeigt!

Stephan