Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Entwicklung
  4. [Gelöst] [Problem] getObjectView liefert Fehler 404 Cannot find view "<viewname>"</viewname>

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.2k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.2k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

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

Geplant Angeheftet Gesperrt Verschoben Entwicklung
4 Beiträge 2 Kommentatoren 1.2k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • M Offline
    M Offline
    MiSchroe
    schrieb am zuletzt editiert von
    #1

    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 Antwort Letzte Antwort
    0
    • AlCalzoneA Offline
      AlCalzoneA Offline
      AlCalzone
      Developer
      schrieb am zuletzt editiert von
      #2

      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>

      Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

      1 Antwort Letzte Antwort
      0
      • M Offline
        M Offline
        MiSchroe
        schrieb am zuletzt editiert von
        #3

        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 Antwort Letzte Antwort
        0
        • AlCalzoneA Offline
          AlCalzoneA Offline
          AlCalzone
          Developer
          schrieb am zuletzt editiert von
          #4

          @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.

          Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

          1 Antwort Letzte Antwort
          0
          Antworten
          • In einem neuen Thema antworten
          Anmelden zum Antworten
          • Älteste zuerst
          • Neuste zuerst
          • Meiste Stimmen


          Support us

          ioBroker
          Community Adapters
          Donate

          826

          Online

          32.5k

          Benutzer

          81.7k

          Themen

          1.3m

          Beiträge
          Community
          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
          ioBroker Community 2014-2025
          logo
          • Anmelden

          • Du hast noch kein Konto? Registrieren

          • Anmelden oder registrieren, um zu suchen
          • Erster Beitrag
            Letzter Beitrag
          0
          • Home
          • Aktuell
          • Tags
          • Ungelesen 0
          • Kategorien
          • Unreplied
          • Beliebt
          • GitHub
          • Docu
          • Hilfe