Homebridge iOS App

  • Habe jetzt stundenlang versucht json anzupassen

    bekomme es nicht hin

    verstehe nicht was falsch ist

    gibt es ein programm der sie richtig stellt?

    Um ganz ehrlich zu sein: niemand versteht hier, was falsch ist, solange du hier nicht deine Konfiguration postest.


    Und leider gibt es auch keine Programme, die das richtig machen, was man selber falsch macht. Ich würde dann nämlich sofort einen schlechten Roman schreiben, diesem Programm übergeben und das macht dann einen Bestseller draus.


    Also möchtest du vielleicht deine Konfiguration zeigen?


    Stefan

  • Ich möchte ja nicht ewig fragen ob mir jemand die json config richtig stellt

    habe gedacht das ich es alleine hinbekomme,das wird wohl aber nichts

  • {

    "bridge": {

    "name": "Homebridge",

    "username": "CC:22:3D:E3:CE:30",

    "port": 51826,

    "pin": "031-45-154"

    },

    "platforms": [{

    "platform": "NukiBridge",

    "name": "Nuki",

    "api_token": "xxxxxx",

    "bridge_url": "192.168.xxxx:8080",

    "webhook_port": "51827",

    "lock_state_mode": "1",

    "webhook_server_ip_or_name": "192.168.178.60",

    "locks": [{

    "id": "xxxxxxx",

    "usesDoorLatch": "true",

    "name": "Hausstür",

    "priority": "1"

    }]

    }],

    "accessories": [{

    "accessory": "DelaySwitch",

    "name": "DelaySwitch",

    "disableSensor": false,

    "delay": 5000

    }]{ "platform" : "ring-video-doorbell"

    , "name" : "Doorbell"

    , "username" : "[email protected]"

    , "password" : "secret"

    , "options" : { "retries": 5, "ttl": 5, "verboseP" : false }

    , "ringing" : { "event": "single", "motion": false }

    }"platforms": [

    {

    "platform": "HarmonyHub",

    "name": "Harmony Hub"

    }

    ]

  • Das ist alles ein wenig durcheinander. Plugin-Konfigurationen sollte nicht irgendwo eingefügt werden, sondern an bestimmte Stellen.


    Die ganze Geschichte fängt an mit einer {, so wie bei dir. Dann kommen die drei Abschnitte:


    "bridge": { }

    "platforms": [ ]

    "accessories": [ ]


    Bridge: zwischen die geschweiften Klammern kommt die Bridge-Konfiguration so wie bei dir:

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

    Zwischen die geschweiften Klammern. Du könntest das auch in eine Zeile schreiben. Da ist immer ein Key-Pair wie "name": "Homebridge" und jedes Key-Pair wird durch Kommas getrennt. Hinter der abschließenden geschweiften Klammer kommt ein Komma, weil die Konfiguration noch weitergeht. Wäre sie hier schon zu Ende, käme da kein Komma hin.


    Platforms: zwischen die eckigen Klammern kommen die Platform-Plugins, und zwar eins nach dem anderen.

    Sieh's dir an. Die eckigen Klammern stehen am Anfang und am Ende von "platforms":. Dazwischen stehen jeweils in geschweiften Klammern die Plattformen. Oben ist jetzt eine Plattform eingebaut: NukiBridge. Bauen wir die nächste Plattform dazu. Sie kommt hinter die NukiBridge-Plattform, aber vor die abschließende eckige Klammer.

    Wie du siehst, kommt der Key "platforms": nur einmal vor, der Key "platform": aber zweimal, weil ja zwei Plattformen konfiguriert sind. Und die letzte Platform noch:

    Genauso wie bei "platforms": wird dann auch "accessories": behandelt. Testen kann man die gesamte Konfiguration bei jsonlint. Ganz ans Ende kommt dann }.


    Stefan.

    Einmal editiert, zuletzt von sschuste () aus folgendem Grund: Beautifying

  • Sehr gut erklärt sschuste !


    Könntest du evtl noch ein wenig die Fehler bei JSONLint erläutern anhand eines beispiels? Ich muss zugeben das ich es oft nicht deuten kann. Und dann einfach auf gut Glück irgendwie die Kommas setze.

  • Ahhhhh Danke sschuste

    Da kann ich was mit anfangen,habe immer versucht irgend welche zusammenhänge zu erkennen vergeblich

    ins blaue klammern und komma`s das wird nichts



    Hat hier jemand Ring kommt dort meine email und das passwort,wo ich mich bei ring angemeldet habe?

  • {

    "bridge":{

    "name":"Homebridge",

    "username":"CC:22:3D:E3:CE:30",

    "port":51826,

    "pin":"031-45-154"

    },

    "platforms":[

    {

    "platform":"NukiBridge",

    "name":"Nuki",

    "api_token":"xxxxx",

    "bridge_url":"192.168.178.xx:8080",

    "webhook_port":"51827",

    "lock_state_mode":"1",

    "webhook_server_ip_or_name":"192.168.178.60",

    "locks":[

    {

    "id":"xxxxxx",

    "usesDoorLatch":"true",

    "name":"Hausstür",

    "priority":"1"

    }

    ]

    }

    ],

    "accessories":[

    {

    "accessory":"DelaySwitch",

    "name":"DelaySwitch",

    "disableSensor":false,

    "delay":5000

    }

    },

    Code
     "platforms": [   	{   		"platform": "HarmonyHub",   		"name": "Harmony Hub"   	}   ]

    Einmal editiert, zuletzt von Frank 13 ()

  • Ich hab's mal bei jsonlint reingeworfen. Sieh genau hin:




    Nach "accessories": kommt die öffnende eckige Klammer [. Gut. Danach kommt in geschweiften Klammern die Accessory-Definition. Auch gut.


    Wenn diese Accessory-Definition die einzige ist, dann kommt hinter die schließende geschweifte Klammer (also nach "delay": 5000, in rot markiert) wieder eine eckige schließende Klammer ].


    Wenn sie nicht die einzige ist, dann kommt stattdessen an diese Stelle ein die schließende Klammer, dann ein Komma und danach die nächste Accessory-Definition. Bei dir kommt aber noch eine schließende Klammer. Eine muss weg. Dann könnte es schon klappen. Wird es aber nicht.


    Nochmal: "accessories":-Definitionen beginnen mit einer eckigen Klammer und hören mit einer auf. Das passiert bei dir aber nicht. Es kommt irgendeine Plattform anstatt eines Accessories. Das Harmony Hub-Zeugs hat an dieser Stelle nicht verloren! Es muss weiter nach oben zu den anderen platforms. Und in Zeile 29 muss dann eine ] hin. Und ganz ans Ende, wenn nichts weiter mehr kommt, muss die Konfiguration mit } abgeschlossen werden - weil sie beginnt ja ganz oben mit {.


    Stefan

    Einmal editiert, zuletzt von sschuste ()

  • Könntest du evtl noch ein wenig die Fehler bei JSONLint erläutern anhand eines beispiels? Ich muss zugeben das ich es oft nicht deuten kann. Und dann einfach auf gut Glück irgendwie die Kommas setze.

    Das ist oft auch nicht einfach zu deuten. Es macht die Sache oftmals einfacher, wenn man seinen JSON-Code sehr ordentlich verfasst und mit Einrückungen arbeitet. Also etwa so:

    Das gibt dem ganze eine Struktur und man versteht schneller, was wohin gehört. Ich hab da jetzt einen Fehler eingebaut, und der erzeugt bei jsonlint die folgende Ausgabe:




    Die Fehlermeldung unten zeigt, das jsonlint das alles irgendwie als eine Zeile liest, und wenn es richtig ist, formatiert ausgibt. Durch den Fehler im Code weiß jsonlint nichts damit anzufangen und sagt: hier ist ein Fehler bei "priority": "1" } { "id": "yyyyyyy". Dazu malt jsonlint einen Pfeil dazu (----------------------^), der genau auf die kaputte die Stelle zeigen soll. Das ist leider nicht ganz korrekt programmiert und der Pfeil zeigt ins Leere.


    Dann steht dort, was von jsonlint statt des Fehlers erwartet worden ist. Da sollte entweder die Datei zu Ende sein (EOF = end of file, ist aber Quatsch) oder da sollte entweder ein } oder ein Komma oder ein ] stehen, aber gekommen ist ein {. Lässt sich wirklich kaum lesen :/


    Klar, ich hab das Komma weggelassen. Das kann man eigentlich ganz gut im Code sehen, dass die beiden Lock-Definitionen durch ein Komma getrennt sein sollten. Und man sieht das ganz gut, weil ich ihn formatiert habe, damit ich ihn besser lesen kann.


    Mehr kann ich dazu leider auch nicht sagen. Ordnung ist das halbe Leben, behaupte ich mal, auch wenn ein Blick in meine Küche zeigt, dass ich es offenbar damit auch nicht so genau nehme ^^


    Stefan

  • Habe hinter platforms einen fehler und verstehe es nicht



    Ist mir gerade alles zu hoch,die config von nuki passt doch oder nicht

    kann ich nicht einfach die config von harmony anhängen und komma`s und klamern richtig stellen?

  • Ist mir gerade alles zu hoch,die config von nuki passt doch oder nicht

    kann ich nicht einfach die config von harmony anhängen und komma`s und klamern richtig stellen?

    Klar, aber schreib's halt richtig :)

  • Es gibt nur eine Konfiguration, und die heißt Homebridge-Konfig. Die fängt oben an und hört unten auf, und dazwischen muss sie halt richtig sein. Nuki ist ja nur ein Teil davon.

  • Dann weis ich nicht weiter,muß dann wohl erst ein paar lehrgänge besuchen eh ich meinen Raspi weiter nutzen kann

    Denke jetzt auf der husche mal ebend so etwas lernen,das wird nichts

    Sind ja auch nicht alle Einstein