homebridge/homekit

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

Vorheriges Thema - Nächstes Thema

Thyraz

Bei mir kam das öfters vor, wenn Homebridge zu früh startete.
Weiß nicht ob dann bestimmte Devices in FHEM noch nicht voll initialisiert waren.

Konnte das Problem eingrenzen, dass es nur auftrat wenn ich neu bootete (Hatte Homebridge als init script laufen).
Hab ich fhem und Homebridge händisch gestoppt und danach erst fhem und kurz danach Homebridge gestartet, lief alles einwandfrei.

Ich hab daher mittlerweile das init script aus dem Autostart genommen und starte es dann über ein Notify auf global INITIALIZED zeitverzögert um 30 Sekunden.
Fhem und MariaDB auf NUC6i5SYH in Proxmox Container (Ubuntu)
Zwave, Conbee II, Hue, Harmony, Solo4k, LaMetric, Echo, Sonos, Roborock S5, Nuki, Prusa Mini, Doorbird, ...

DeeSPe

Ich würde generell von der Benutzung von init Scripts auf aktuellen Raspbian Systemen abraten und statt dessen direkt gleich auf system.d umzustellen.
Die sytem.d Scripts sind auch wesentlich einfachen.
Anleitungen dazu gibt es reichlich im www.

Gruß
Dan

P.S. Keine Ahnung wie lange init.d noch unterstützt wird.
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

justme1968

#1112
@Gueco315: wenn die pin nicht stimmt wird das falsche config file verwendet bzw. wird es nicht gefunden.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

aski71

@justme1968: Warum sollte nach dem Reboot die PIN nicht stimmen?

@DeeSPe: Ich verwende tatsächlich systemd, um homebridge zu starten.
Das nützt bloß auch nix, wenn es so ist, wie Thyraz schreibt.

justme1968

Zitat von: Gueco315 am 22 September 2016, 11:10:43

Folgendes fällt aber auf:

Bei der Meldung im Terminal erscheint als PIN:  031-45-154
In der config.jason habe ich aber:  111-22-333 eingetragen.

Dann wird offensichtlich eine andere config.jason angezogen.
Datei nach Anleitung als FHEM erstellt.

Kann das von einer alten -erfolglosen Installation aus der Vergangenheit stammen?
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

aski71

Bei mir stimmen PIN in config.json und angezeigte PIN im Terminal nach Startup von homebridge überein.

Ich habe die iCloud Daten von Home inzwischen mal gelöscht und auch die persist/ und accessories/ Folder.
Jetzt ist es allerdings so, dass das iPad die Homebridge überhaupt nicht mehr findet.  :o

aski71

Alles nochmal gelöscht, rebootet: Home findet die Homebridge wieder, aber nicht alle Devices.
Z.B. fehlen alle Harmony Szenen.
Dann Homebridge neu gestartet. Laut Logging findet er alle Harmony-Szenen wieder, aber Home zeigt nichts davon an.

Nochmal alles gelöscht, wieder gestartet.
Jetzt findet er die Harmony Szenen überhaupt nicht mehr. :-(

Debugmodus sagt folgendes:

[2016-09-22 14:00:59] [FHEM] mappings for harmony: {}
[2016-09-22 14:00:59] [FHEM] harmony is switch
[2016-09-22 14:00:59] [FHEM] harmony has
thermometer
[2016-09-22 14:00:59] [FHEM] mappings for netatmo_D70_ee_50_02_a0_7e: { CurrentTemperature: { reading: 'temperature', minValue: -30 },

...

[2016-09-22 14:01:00] [FHEM] Initializing platform accessory 'harmony'...
[2016-09-22 14:01:00] [FHEM] creating services for harmony
[2016-09-22 14:01:00] [FHEM]   information service for harmony
[2016-09-22 14:01:00] [FHEM]     manufacturer, model and serial number characteristics for harmony
[2016-09-22 14:01:00] [FHEM]   Switch service for harmony


Mich irritiert das "thermometer". Danach kommt ein netatmo Mapping.

aski71

#1117
Habe mal alle Devices, die ich gestern hinzu gefügt habe, nach und nach wieder aus dem Homekit Raum genommen.
Jedesmal homebridge gestoppt, accessories/, persist/ gelöscht, wieder gestartet.

Erst, nachdem ich meinen Thermostaten raus genommen habe, wurden die Harmony Szenen beim Start wieder erkannt und eingerichtet.
Dann wieder alles gelöscht, Thermostat wieder hinzu genommen.
Jetzt ist scheinbar alles wieder da.
So richtig verstehen tu ich das nicht.

Aber bei der Gelegenheit ist mir folgendes aufgefallen:

Sep 22 14:51:40 midget homebridge[1733]: [2016-09-22 14:51:40] [FHEM]     caching: CurrentHeatingCoolingState: 0 (as number; means OFF; from '0')
Sep 22 14:51:40 midget homebridge[1733]: 2016-09-22 14:51:40 caching: Thermostat-Thermostat_Heizk_rper_3.CONTROL_MODE: AUTO
Sep 22 14:51:40 midget homebridge[1733]: [2016-09-22 14:51:40] [FHEM] Thermostat-Thermostat_Heizk_rper_3.CONTROL_MODE not a number: AUTO


Mein HMCCU Mapping sieht so aus:


...
TargetHeatingCoolingState=Thermostat_Heizk_rper_3.CONTROL_MODE,cmds=OFF:datapoint+MANU_MODE+4.5;HEAT:datapoint+MANU_MODE+30.5;AUTO:datapoint+AUTO_MODE+1;COOL:datapoint+LOWERING_MODE+1


Jetzt verstehe ich nicht, warum er AUTO anmeckert?!
Das ist doch eine in HomeKitTypes.js definierte Konstante?!
Außerdem funktioniert es einwandfrei in der Bedienung. Nur bei der Initialisierung wird es angemeckert...

Schluss-Stand ist jetzt nach tausend Experimenten:
Nach einem Reboot sind die Harmony-Szenen weg. Wenn ich dann den homebridge Service wieder stoppe und starte, kommen sie wieder. :-/

RalfP

Zitatmanchmal braucht fhem zu lange um die device liste zu liefern und homebridge läuft scheinbar in einen timeout. ich habe noch keinen weg gefunden wie man das beheben kann.

du kannst aber einfach mehrere fhem plattformen mit unterschiedlichen filtern im homebridge config verwenden. d.h. mehrtet kürzere device listen statt einer langen.

pro bridge erlaubt homebridge  maximal 50 geräte.

Vielen Dank für diese Tipp, läuft!
Habe jetzt 22 Devices in 3 Gruppen aufgeteilt.

aski71

Zitat von: RalfP am 22 September 2016, 20:53:41
Vielen Dank für diese Tipp, läuft!
Habe jetzt 22 Devices in 3 Gruppen aufgeteilt.

Das interessiert mich: Was heißt das genau?
Was bedeutet "mehrere fhem plattformen mit unterschiedlichen filtern im homebridge config"?
Gibt's da irgendwo was nachzulesen?

RalfP

{
    "bridge": {
        "name": "Homebridge",
        "username": "CC:22:3D:E3:CE:30",
        "port": 51826,
        "pin": "031-45-154"
    },

    "platforms": [
        {
            "platform": "FHEM",
            "name": "FHEM",
            "server": "127.0.0.1",
            "port": "8083",
            "auth": {"user": "FhemUser", "pass": "XXX"},
            "filter": "room=Homekit"
        },
{
    "platform": "FHEM",
    "name": "FHEM",
    "server": "127.0.0.1",
    "port": "8083",
    "auth": {"user": "FhemUser", "pass": "XXX"},
    "filter": "room=HomekitSensors"
},
        {
            "platform": "FHEM",
            "name": "FHEM",
            "server": "127.0.0.1",
            "port": "8083",
            "auth": {"user": "FhemUser", "pass": "XXX"},
            "filter": "room=HomekitMedia"
        }


     ],

    "accessories": []
}


...als Beispiel. Natürlich aber auch die entsprechenden Räume (room) im Fhem (Homekit, HomekitSensors, HomekitMedia) noch zusätzlich anlegen und die Devices zuordnen.

aski71

Zitat von: RalfP am 23 September 2016, 09:09:35
{
    "bridge": {
        "name": "Homebridge",
        "username": "CC:22:3D:E3:CE:30",
        "port": 51826,
        "pin": "031-45-154"
    },

    "platforms": [
        {
            "platform": "FHEM",
            "name": "FHEM",
            "server": "127.0.0.1",
            "port": "8083",
            "auth": {"user": "FhemUser", "pass": "XXX"},
            "filter": "room=Homekit"
        },
{
    "platform": "FHEM",
    "name": "FHEM",
    "server": "127.0.0.1",
    "port": "8083",
    "auth": {"user": "FhemUser", "pass": "XXX"},
    "filter": "room=HomekitSensors"
},
        {
            "platform": "FHEM",
            "name": "FHEM",
            "server": "127.0.0.1",
            "port": "8083",
            "auth": {"user": "FhemUser", "pass": "XXX"},
            "filter": "room=HomekitMedia"
        }


     ],

    "accessories": []
}


...als Beispiel. Natürlich aber auch die entsprechenden Räume (room) im Fhem (Homekit, HomekitSensors, HomekitMedia) noch zusätzlich anlegen und die Devices zuordnen.

Danke!
Wenn ich das so mache, muss ich in Home aber wieder alles neu anlegen, oder? ;-)

RalfP

Ja, musste ich aber sowieso tun.

Thyraz

Sehr schöner Tip. :)

Hab mit meinen ganzen Devices nämlich mittlerweile auch des öfteren Timeouts beim Aktualisieren.
Dann werde ich das auch mal testen.
Fhem und MariaDB auf NUC6i5SYH in Proxmox Container (Ubuntu)
Zwave, Conbee II, Hue, Harmony, Solo4k, LaMetric, Echo, Sonos, Roborock S5, Nuki, Prusa Mini, Doorbird, ...

Steeeve

#1124
Zitat von: justme1968 am 12 September 2016, 19:41:01
@Steeeve: zeig mal genau was du gemacht hast und auch ein jsonlist2 vom device.
gruss
  andre

Sorry die späte Antwort, war auf Urlaub!
{
  "Arg":"wz_Rollo",
  "Results": [
  {
    "Name":"wz_Rollo",
    "PossibleSets":"Runter:noArg Hoch:noArg go-my:noArg off:noArg off-for-timer:textField on:noArg on-for-timer:textField pos:0,10,20,30,40,50,60,70,80,90,100 prog:noArg stop:noArg z_custom:textField",
    "PossibleAttrs":"verbose:0,1,2,3,4,5 room group comment:textField-long alias eventMap userReadings:textField-long  drive-down-time-to-100 drive-down-time-to-close drive-up-time-to-100 drive-up-time-to-open  additionalPosReading   IODev symbol-length enc-key rolling-code repetition switch_rfmode:1,0 do_not_notify:1,0 ignore:0,1 dummy:1,0 model:somfyblinds,somfyshutter loglevel:0,1,2,3,4,5,6 event-on-change-reading event-on-update-reading event-aggregator event-min-interval stateFormat:textField-long timestamp-on-change-reading cmdIcon devStateIcon devStateStyle fm_fav fm_groups fm_name fm_order fm_type fm_view fp_whg_plan genericDeviceType:ignore,switch,outlet,light,blind,speaker,thermostat,ignore,lock,window,contact homebridgeMapping:textField-long icon lightSceneParamsToSave lightSceneRestoreOnlyIfChanged:1,0 room_map sortby structexclude webCmd widgetOverride yaf_1 lightSceneParamsToSave lightSceneRestoreOnlyIfChanged:1,0 userattr",
    "Internals": {
      "ADDRESS": "A1B200",
      "DEF": "A1B200",
      "NAME": "wz_Rollo",
      "NR": "292",
      "STATE": "open",
      "TYPE": "SOMFY",
      "exact": "0",
      "move": "none",
      "position": "0"
    },
    "Readings": {
      "enc_key": { "Value":"AE", "Time":"2016-09-09 17:39:48" },
      "exact": { "Value":"0", "Time":"2016-09-22 19:41:16" },
      "position": { "Value":"0", "Time":"2016-09-22 19:41:16" },
      "rolling_code": { "Value":"036E", "Time":"2016-09-09 17:39:48" },
      "state": { "Value":"open", "Time":"2016-09-22 19:41:16" }
    },
    "Attributes": {
      "IODev": "CUL",
      "alias": "AlleRollos",
      "devStateIcon": ".*:fts_shutter",
      "drive-down-time-to-100": "16",
      "drive-down-time-to-close": "20",
      "drive-up-time-to-100": "4",
      "drive-up-time-to-open": "20",
      "eventMap": "/on:Runter/off:Hoch/",
      "genericDeviceType": "blind",
      "homebridgeMapping": "clear\nCurrentPosition=position,minValue=0,maxValue=200 TargetPosition=position,minValue=0,maxValue=100,minStep=10,cmd=,",
      "icon": "fts_shutter",
      "room": "Homekit,Wohnzimmer",
      "userattr": "lightSceneParamsToSave lightSceneRestoreOnlyIfChanged:1,0",
      "webCmd": "Runter:Hoch:stop"
    }
  }  ],
  "totalResultsReturned":1
}


inverse hab ich wieder rausgenommen, weil dann gar nicht funktioniert - so würde es funktionieren, außer dass mir das rollo als geschlossen angezeigt wird.


Nützt dir das was?
Danke im Voraus!