Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Entwicklung
    4. [Gelöst] [Problem] getObjectView liefert Fehler 404 Cannot find view "<viewname>"</viewname>

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Gelöst] [Problem] getObjectView liefert Fehler 404 Cannot find view "<viewname>"</viewname>

    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      MiSchroe last edited by

      Folgendes Problem:

      Ich habe in der io-package.json eine View zur Vereinfachung einer Suchanfrage angelegt.

          "objects": [
              {
                  "_id": "_design/klf200",
                  "language": "javascript",
                  "views": {
                      "listSingleProductScenes": {
                          "map": "function(doc) {\n  if (doc._id.match(/^klf200\\.[0-9]+\\.scenes\\.[0-9]+$/) && doc.native && doc.native.products.length == 1)\n  {\n  emit([doc.native.products[0].name, doc.native.products[0].status], {id: doc.native.id, name:doc.native.name});\n  }\n  }"
                      }
                  }
              }
          ]
      
      

      Wenn ich die View später abfragen möchte, bekomme ich einen Fehler 404: Cannot find view "klf200". Was ich komisch finde, ist der Verweis auf 'klf200', weil die View eigentlich 'listSingleProductScenes' heißt.

      Mein Abfrage sieht so aus:

      adapter.objects.getObjectView(
                      'klf200', 'listSingleProductScenes',
                      {startkey: [productName, level], endkey: [productName, 101]},
                      function (err, doc) {
                      	... <- Hier bekomme ich den Fehler im err-Object.
                      }
                  );
      
      

      Anbei noch die komplette io-package.json.

      ! {
      ! "common": {
      ! "name": "klf200",
      ! "version": "0.5.0",
      ! "news": {
      ! "0.5.0": {
      ! "en": "beta version",
      ! "de": "Betaversion",
      ! "ru": "Бета версия",
      ! "pt": "Versão beta",
      ! "fr": "Version bêta",
      ! "nl": "Beta versie"
      ! },
      ! "0.0.1": {
      ! "en": "initial adapter",
      ! "de": "Initiale Version",
      ! "ru": "Первоначальный адаптер",
      ! "pt": "Versão inicial",
      ! "fr": "Version initiale",
      ! "nl": "Eerste release"
      ! }
      ! },
      ! "title": "KLF-200 Adapter",
      ! "desc": {
      ! "en": "Runs scenes on a KLF-200 Interface",
      ! "de": "Startet Szenen auf einem KLF-200 Interface"
      ! },
      ! "platform": "Javascript/Node.js",
      ! "mode": "daemon",
      ! "icon": "klf200.png",
      ! "enabled": true,
      ! "license": "MIT",
      ! "extIcon": "https://raw.githubusercontent.com/ioBro … klf200.png",
      ! "keywords": ["KLF-200", "vis", "GUI", "graphical"],
      ! "readme": "https://github.com/ioBroker/ioBroker.kl … /README.md",
      ! "loglevel": "info",
      ! "type": "hardware",
      ! "restartAdapters": ["vis"]
      ! },
      ! "native": {
      ! "host": "http://velux-klf-",
      ! "password": "velux123",
      ! "pollInterval": 60
      ! },
      ! "objects": [
      ! {
      ! "_id": "_design/klf200",
      ! "language": "javascript",
      ! "views": {
      ! "listSingleProductScenes": {
      ! "map": "function(doc) {\n if (doc._id.match(/^klf200\.[0-9]+\.scenes\.[0-9]+$/) && doc.native && doc.native.products.length == 1)\n {\n emit([doc.native.products[0].name, doc.native.products[0].status], {id: doc.native.id, name:doc.native.name});\n }\n }"
      ! }
      ! }
      ! }
      ! ]
      ! }

      Was mache ich falsch?

      Viele Grüße

      Michael

      1 Reply Last reply Reply Quote 0
      • AlCalzone
        AlCalzone Developer last edited by

        https://github.com/ioBroker/ioBroker.js … r.js#L2389

        Dein Fehler tritt wohl auf, wenn das Object "_design/<name>" nicht existiert. Hast du das in io-package.json hinzugefügt, nachdem du den Adapter erstmalig installiert hattest? Dann könnte das ein bekannter Bug sein und du musst den Adapter (nicht nur die Instanz) neu installieren.</name>

        1 Reply Last reply Reply Quote 0
        • M
          MiSchroe last edited by

          Perfekt. Das war es.

          Leider liefert meine View noch nicht die gewünschten Ergebnisse. Kann man das irgendwie debuggen? Und muss ich die Installation bei jeder Änderung immer wieder durchführen oder kann ich die View zumindest übergangsweise auch im Code erzuegen?

          Michael

          1 Reply Last reply Reply Quote 0
          • AlCalzone
            AlCalzone Developer last edited by

            @MiSchroe:

            Leider liefert meine View noch nicht die gewünschten Ergebnisse. Kann man das irgendwie debuggen? `
            Keine Ahnung, habe noch nie mit Views gearbeitet. Eventuell per console.log und manuellem Ausführen des Adapters über die Konsole:

            /opt/iobroker/node_modules/adapter_dir$ node main.js --force --logs
            

            @MiSchroe:

            Und muss ich die Installation bei jeder Änderung immer wieder durchführen oder kann ich die View zumindest übergangsweise auch im Code erzuegen? `
            Per

            var obj = { /* Objekt mit allen Views aus io-package.json */ };
            adapter.setForeignObject('_design/klf200', obj);
            
            

            dürfte das gehen.

            1 Reply Last reply Reply Quote 0
            • First post
              Last post

            Support us

            ioBroker
            Community Adapters
            Donate

            770
            Online

            31.7k
            Users

            79.8k
            Topics

            1.3m
            Posts

            2
            4
            1099
            Loading More Posts
            • Oldest to Newest
            • Newest to Oldest
            • Most Votes
            Reply
            • Reply as topic
            Log in to reply
            Community
            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
            The ioBroker Community 2014-2023
            logo