Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Error/Bug
  4. Homepilot Adapter zeigt keine State-Datenpunkte bei Schalt-Aktoren

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    802

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    18
    1
    6.3k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.6k

Homepilot Adapter zeigt keine State-Datenpunkte bei Schalt-Aktoren

Scheduled Pinned Locked Moved Error/Bug
33 Posts 3 Posters 4.8k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • P Offline
    P Offline
    pix
    wrote on last edited by
    #22

    Geht es denn mit Häkchen? Ich kann im Adapter-Skript ein toString() einbauen. Das fängt den Fehler ab.

    ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

    1 Reply Last reply
    0
    • M Offline
      M Offline
      Micky79
      wrote on last edited by
      #23

      @Pix

      Noch etwas ist mir gerade aufgefallen.

      setState("homepilot.0.devices.Rohrmotor-Steuerung.10036.level"/level Wohnzimmertür/, 0); gibt einen Fehler:

      homepilot.0 2017-01-25 18:56:29.609 warn Wrong type of data input. Please try again

      setState("homepilot.0.devices.Rohrmotor-Steuerung.10036.level"/level Wohnzimmertür/, 1); geht. Auch 100 oder alle Zahlen dazwischen.

      0 für 0% nimmt er nicht.

      Viele Grüße Micky

      1 Reply Last reply
      0
      • M Offline
        M Offline
        Micky79
        wrote on last edited by
        #24

        @Pix

        Ja, mit Häkchen z.B. "10", geht es.

        1 Reply Last reply
        0
        • P Offline
          P Offline
          pix
          wrote on last edited by
          #25

          @Micky79:

          @Pix

          Noch etwas ist mir gerade aufgefallen.

          setState("homepilot.0.devices.Rohrmotor-Steuerung.10036.level"/level Wohnzimmertür/, 0); gibt einen Fehler:

          homepilot.0 2017-01-25 18:56:29.609 warn Wrong type of data input. Please try again

          setState("homepilot.0.devices.Rohrmotor-Steuerung.10036.level"/level Wohnzimmertür/, 1); geht. Auch 100 oder alle Zahlen dazwischen.

          0 für 0% nimmt er nicht.

          Viele Grüße Micky `
          Dieser Fehler sollte mit der neuen Version 0.2.3 gefixt sein. Der RegExp-Abgleich hatte bisher die 0 nicht einbezogen :roll: .

          Die Beschreibbarkeit des Level(_inverted)-Datenpunktes ist im Adapter eingentlich auf "false" gestellt.

          ! ````
          adapter.setObjectNotExists(path + '.level_inverted', {
          type: 'state',
          common: {
          name: 'level inverted ' + devicename,
          desc: 'level inverted (like Homematic) of device ' + deviceid,
          type: 'number',
          role: 'level.blind',
          min: 0,
          max: 100,
          unit: '%',
          read: true,
          write: false
          },
          native: {}
          });

          Umso mehr wundert mich, dass die Beschreibung aus Javascript oder VIS funktioniert. Es wundert mich aber nicht, dass sie aus dem Cloud-Adapter nicht funktioniert.
          
          Pix

          ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

          1 Reply Last reply
          0
          • M Offline
            M Offline
            Micky79
            wrote on last edited by
            #26

            @Pix

            Werde ich morgen mal installieren.

            Aber wieso hast denn den Level schreibgeschützt? Bei Rollläden ist dieser Datenpunkt doch auch für die Steuerung vorgesehen oder nicht?

            Kannst du das nicht einfach freigeben. Es scheint ja zu funktionieren. Zumindest per Script.

            Vg Micky

            1 Reply Last reply
            0
            • P Offline
              P Offline
              pix
              wrote on last edited by
              #27

              @pix:

              Kannst du das nicht einfach freigeben. Es scheint ja zu funktionieren. Zumindest per Script. `
              Ok, habe ich mal eben geändert. Muss die Instanz wieder löschen. Immer noch Version 0.2.3

              Pix

              ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

              1 Reply Last reply
              0
              • M Offline
                M Offline
                Micky79
                wrote on last edited by
                #28

                @Pix

                Habe 0.2.3 installiert.

                Level geht jetzt. :D Kann man unter Objekte Werte im Level Datenpunkt eintragen und mit Alexa funktioniert es auch.

                Mann kann zwar nicht sagen "fahre Rolllade im Büro nach unten", aber "fahre Rolllade auf 0%" geht. Ich denke aber mal das ist eher ein Problem vom CloudAdapter.

                Ich glaube ich habe auch eine Idee, wann diese Fehlermeldungen hier kommen:

                host.iobroker 2017-01-26 05:54:55.231 error instance system.adapter.homepilot.0 terminated with code 0 (OK)

                homepilot.0 2017-01-26 05:54:55.184 info Homepilot adapter stopped

                homepilot.0 2017-01-26 05:54:55.183 info terminating homepilot adapter

                homepilot.0 2017-01-26 05:54:55.179 error at emitNone (events.js:72:20)

                homepilot.0 2017-01-26 05:54:55.179 error at IncomingMessage.g (events.js:260:16)

                homepilot.0 2017-01-26 05:54:55.179 error at IncomingMessage. (/opt/iobroker/node_modules/iobroker.homepilot/node_modules/request/request.js:1001:12)

                homepilot.0 2017-01-26 05:54:55.179 error at Request.emit (events.js:169:7)

                homepilot.0 2017-01-26 05:54:55.179 error at emitOne (events.js:77:13)

                homepilot.0 2017-01-26 05:54:55.179 error at Request. (/opt/iobroker/node_modules/iobroker.homepilot/node_modules/request/request.js:1081:10)

                homepilot.0 2017-01-26 05:54:55.179 error at Request.emit (events.js:172:7)

                homepilot.0 2017-01-26 05:54:55.179 error at emitTwo (events.js:87:13)

                homepilot.0 2017-01-26 05:54:55.179 error at Request.self.callback (/opt/iobroker/node_modules/iobroker.homepilot/node_modules/request/request.js:186:22)

                homepilot.0 2017-01-26 05:54:55.179 error at Request._callback (/opt/iobroker/node_modules/iobroker.homepilot/main.js:448:51)

                homepilot.0 2017-01-26 05:54:55.179 error TypeError: Cannot read property 'length' of undefined

                homepilot.0 2017-01-26 05:54:55.161 error uncaught exception: Cannot read property 'length' of undefined

                Ich glaube das passiert immer dann, wenn der Homepilot beschäftigt ist (z.B. gerade eine Szene ausführt) und der Adapter versucht, die Daten vom HP abzuholen.

                Habe mal das Abfrage Intervall auf 60 Sekunden gestellt und ein paar Szenen ausgeführt. Alles OK.

                Intervall auf standardmäßige 12 Sekunden gestellt, schon gab es nach Ausführung einer Szene einen crash.

                Ich habe aber auch ein relativ großes Homepilot System, mit ca. 90 ansteuerbaren Geräten. Könnte sein, dass es da etwa länger dauert wenn die JSON Abfrage vom Homepilot zurückkommt.

                Aber wenn dies wirklich der Fall sein sollte, dann sollte Dein Adapter diesen Fehler irgendwie kapseln, z.B. die Anfrage 3 Sekunden später noch mal durchführen und wenn es dann nimmer noch nicht kappt dann noch mal 3 Sekunden später.

                Ich weis aber nicht ob das wirklich das Problem ist. Kann auch alles Zufall gewesen sein. Ist nur ne Vermutung. Ich bin mir nicht sicher was die Fehlermeldungen bedeuten.

                Aber auf jeden Fall nochmal vielen Dank für Deine schnelle Arbeit! Echt TOP.

                Mal abgesehen von dem obigen Problem scheint ja jetzt alles einwandfrei zu laufen. :)

                Viele Grüße Micky

                1 Reply Last reply
                0
                • P Offline
                  P Offline
                  pix
                  wrote on last edited by
                  #29

                  Hallo Mickey,

                  danke fürs Testen. Schön, dass der Adapter jetzt läuft.

                  In deiner Fehlermeldung ist dieses length gemeint (Zeile 448)

                  `for (var i = 0; i < result.devices.length; i++) {
                                      //adapter.log.debug('Device ' + result.devices[i].productName + ' found. Name: ' + result.devices[i].name);
                                      createStates(result, i); // create Objects if not Exist
                                      writeStates(result, i); // write Objects 
                                  }`innerhalb der Funtion readHomepilot
                  `~~[code]~~function readHomepilot() {
                      var unreach = true;
                      request(link, function(error, response, body) {
                          if (!error && response.statusCode == 200) {
                              var result;
                              try {
                                  result = JSON.parse(body);
                                  var data = JSON.stringify(result, null, 2);
                                  unreach = false;
                                  //adapter.log.debug('Homepilot data: ' + data);
                                  adapter.setState('devices.json', {
                                      val: data,
                                      ack: true
                                  });
                              } catch (e) {
                                  adapter.log.warn('Parse Error: ' + e);
                                  unreach = true;
                              }
                              if (result) {
                                  // save val here, go through ALL devices
                                  for (var i = 0; i < result.devices.length; i++) { // +++++ HIER PASSIERT DER FEHLER BEI MICKEY (length) +++++++
                                      //adapter.log.debug('Device ' + result.devices[i].productName + ' found. Name: ' + result.devices[i].name);
                                      createStates(result, i); // create Objects if not Exist
                                      writeStates(result, i); // write Objects 
                                  }
                                  adapter.setState('station.ip', {
                                      val: ip,
                                      ack: true
                                  });
                              }
                          } else {
                              adapter.log.warn('Cannot connect to Homepilot: ' + error);
                              unreach = true;
                          }
                          // Write connection status
                          adapter.setState('station.UNREACH', {
                              val: unreach,
                              ack: true
                          });
                      }); // End request 
                      adapter.log.debug('finished reading Homepilot Data');
                  }` Dort müsste ich irgendwo eine Verzögerung einbauen oder im Callback das Abfragen der Devices einbauen. Da habe ich noch keine Idee.
                  
                  Wenn du soviele Geräte hast, sind da sicher noch andere Typen/Seriennummern dabei. Kannst du mir mal deinen Objektbaum zukommen lassen? ![261_bildschirmfoto_2017-01-26_um_17.41.56.jpg](/assets/uploads/files/261_bildschirmfoto_2017-01-26_um_17.41.56.jpg) 
                  
                  Gruß
                  
                  Pix[/i][/i][/code][/i][/i]
                  

                  ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

                  1 Reply Last reply
                  0
                  • M Offline
                    M Offline
                    Micky79
                    wrote on last edited by
                    #30

                    @Pix

                    Nein, weitere Seriennummern habe ich leider nicht, sonst hätte ich sie Dir selbstverständlich schon mitgeteilt.

                    Ich habe nur folgende Geräte:

                    Rohrmotor-Aktor

                    Rohrmotor-Steuerung

                    Schaltaktor1-Kanal

                    Schaltaktor2-Kanal

                    Die meisten sind Schaltaktor2-Kanal weil ich jedes Licht per Aktor steuern kann.

                    Zu dem Crash Problem.

                    Würde es nicht etwas bringen, wenn Du die result Variable vor dem request definierst. Am besten direkt mit var result = null;

                    Dann müsste die if Abfrage nach result den Block eigentlich nicht ausführen. Ich gehe mal davon aus dass wenn der Homepilot nicht antwortet der Fehler durch

                    if (!error && response.statusCode == 200)

                    erkannt wird und der try Block nicht ausgeführt wird. In diesem Block wird aber die result definiert. Wenn der Block nicht ausgeführt wird ist result nicht definiert oder?

                    Oder evtl auch so:

                    if ((result) && (!unreach)) {

                    // save val here, go through ALL devices

                    …

                    }

                    Ist nur so eine Idee von mir. Beschäftige mich erst seit kurzem mit iobroker. Vielleicht habe ich Deinen Code auch falsch verstanden... Also nicht böse sein wenn ich Mist geschrieben habe.

                    Versuche nur das Problem mit zu lösen.

                    Viele Grüße Micky

                    1 Reply Last reply
                    0
                    • M Offline
                      M Offline
                      Micky79
                      wrote on last edited by
                      #31

                      @Pix

                      Upps, vergiss meine obigen Ausführungen.

                      Hab mir Deinen code jetzt mal in Ruhe angeschaut.

                      Sehr merkwürdig.

                      Die request Anfrage scheint ohne Fehler zu laufen.

                      Auch der code im try Block scheint keine Exception auszulösen.

                      Und Deine Abfrage ob result existiert läuft auch durch. Und dann beim Zugriff auf length knallt es. Sehr komisch. Offensichtlich scheint der Homepilot manchmal irgendwelche anderen Daten zurück zu geben. Wobei dann eigentlich ein parse Error auftreten müsste.

                      Naja, was auch immer da passiert. Meinst Du nicht es würde Sinn machen, den Bereich if (result) auch noch mal in einen try Block zu fassen um die Exception abzufangen. Damit würde der Adapter zumindest nicht crashen. Lass ihn doch einfach dann die Daten nicht aktualisieren und einfach weiter machen ohne Aktualisierung. Beim nächsten Abruf bekommt er dann hoffentlich die Daten. Oder alternativ nach der Exception 4 Sekunden warten und es dann noch mal versuchen.

                      Was meinst Du???

                      Viele Grüße Micky

                      1 Reply Last reply
                      0
                      • M Offline
                        M Offline
                        Micky79
                        wrote on last edited by
                        #32

                        @Pix

                        Hi Pix,

                        ich habe gestern auf die neueste Firmware des Homepiloten upgedatet. Seit dem tritt der Fehler nicht mehr auf. :D Der Adapter läuft einwandfrei.

                        Beim stöbern habe ich rausgefunden, dass man auf die Sensoren des Homepiloten auch zugreifen kann. Weis nicht ob Du das schon wusstest:

                        http://192.168.178.5/deviceajax.do?meters=1 -> liefert alle Sensoren.

                        Bei mir sieht das so aus:

                        { "response" : "get_meters", "status" : "ok", "meters":[{"name":"Sensor Umweltsensor","description":"Ihre Gerätebschreibung","iconSet":{"sprite":{"numTiles":2},"k":"iconset25"},"iconSetInverted":0,"did":1010017,"position":100,"statusesMap":{"Position":100,"Manuellbetrieb":1},"automations":[30,20,40,60,50,100],"sync":-2147483539,"properties":{"rain":3,"smartphone":3,"motion":3,"dusk":3,"smoke":3,"favored":3,"trigger":3,"manual":3,"sun":3,"generic":3,"closingContact":3,"temperature":3,"temperator":3,"warning":3,"dawn":3,"time":3,"dust":3,"wind":3},"deviceGroup":3,"statusValid":true}] }

                        Greift man dann mit

                        http://192.168.178.5/deviceajax.do?meter=1010017

                        auf den Umweltsensor zu kommt sowas:

                        { "response" : "get_meter_data", "status" : "ok", "data":[{"Lichtwert":"6000 lx"},{"Windgeschw.":"2 m/s"},{"Temperatur":"10.1 °C"},{"Regen":"Nicht erkannt"},{"Sonnenhöhe":"20°"},{"Sonnenrichtung":"Süden (200°)"},{"Aktualisiert":"02.02.17 - 14:16"}] }

                        Ich mir mal ein Script gebastelt um den Umweltsensor auszulesen. Der ist nämlich sehr gut. Hier das Script:

                        var result;

                        var link = "";

                        var UmweltSensorDID = "";

                        request = require('request');

                        createState('Umweltsensor.Lichtwert');

                        createState('Umweltsensor.Windgeschwindigkeit');

                        createState('Umweltsensor.Temperatur');

                        createState('Umweltsensor.Regen');

                        createState('Umweltsensor.Sonnenhöhe');

                        createState('Umweltsensor.Sonnenrichtung');

                        createState('Umweltsensor.Letzte Aktualisierung');

                        link = "http://192.168.178.5/deviceajax.do?meters=1";

                        request(link, function(error,response, body)

                        {

                        result = JSON.parse(body);

                        // Get Umweltsensor ID

                        for (i =0; i < result.meters.length; i++)

                        {

                        if (result.meters__.name.includes("Umweltsensor") === true) UmweltSensorDID = result.meters__.did;

                        }

                        });

                        link = "http://192.168.178.5/deviceajax.do?meter=%22+%221010017"

                        request(link, function(error,response, body)

                        {

                        result = JSON.parse(body);

                        // Get Umweltsensor Data

                        setState('Umweltsensor.Lichtwert', result.data[0].Lichtwert);

                        setState('Umweltsensor.Windgeschwindigkeit', result.data[1].Windgeschw);

                        setState('Umweltsensor.Temperatur', result.data[2].Temperatur);

                        setState('Umweltsensor.Regen', result.data[3].Regen);

                        setState('Umweltsensor.Sonnenhöhe', result.data[4].Sonnenhoehe);

                        setState('Umweltsensor.Sonnenrichtung', result.data[5].Sonnenrichtung);

                        setState('Umweltsensor.Letzte Aktualisierung', result.data[6].Aktualisiert);

                        });

                        Leider habe ich ein Problem die DID des Umweltsensors welche ich ermittelt habe, in dieser Zeile an die nächste JSON Abfrage anzuhängen:

                        link = "http://192.168.178.5/deviceajax.do?meter=%22+%221010017"

                        Normalerweis würde ich die Zeile so schreiben:

                        link = "http://192.168.178.5/deviceajax.do?mete … tSensorDID

                        Dann crasht aber das ganze Javascript Modul.

                        Ein weiteres Problem sind die Sonderzeichen in der JSON Antwort vom Homepiloten. z.B. Sonnenhöhe. Damit kann ich nicht auf result.data[4].Sonnenhöhe zugreifen. Da meckert der Interpreter.

                        Die Windgeschwindigkeit kürzt Rademacher so ab "Windgeschw." , also mit Punkt. Da bekomme ich auch keinen Zugriff drauf. Windgeschwindigkeit und Sonnenhöhe sind bei mir null.

                        Da gibt es bestimmt irgendeine Möglichkeit, auf diese Datenpunkte auch zu zugreifen.

                        Aber eigentlich wollte ich Dir vorschlagen den Umweltsensor in den Homepilot Adapter aufzunehmen. Das ist nämlich echt cool. Man hat dann direkt mehr Möglichkeiten.

                        Dann ist er auch dort, wo er hingehört. Bei meinem Script landet er ja im Javascript Adapter.

                        Viele Grüße Micky____

                        1 Reply Last reply
                        0
                        • T Offline
                          T Offline
                          TomF
                          wrote on last edited by
                          #33

                          @pix:

                          @ Tom: Das dauert etwas. Seit deinem Posting müsste der Objektbaum jetzt da sein.

                          Frage: Kannst du mir sagen, welche Seriennummer der "Connect-Aktor" hat und was er macht (Seriennummer in der JSON)? Ist das dieser https://www.rademacher.de/hausautomation-homepilotr/markisen/duofern-connect-aktor/ mit der Typ-Nummer 9477?

                          @ Mickey: Wann kommen diese Warnungen?
                          ` > Und solche Warnungen kommen auch:

                          javascript.0 2017-01-25 05:39:27.616 warn Wrong type of homepilot.0.devices.Schaltaktor2-Kanal.10070.cid: "number". Please fix, while deprecated and will not work in next versions.

                          javascript.0 2017-01-25 05:39:27.612 warn Wrong type of homepilot.0.devices.Rohrmotor-Steuerung.10036.cid: "number". Please fix, while deprecated and will not work in next versions. ` und welche Werte versuchst du gerade in den Datenpunkt cid zu schreiben?

                          Denn der Wert,d er reingeschrieben werden muss sollte ein STRING sein, kein NUMBER. Also noch "Häkchen" drum.

                          Gruß

                          Pix `

                          Hallo Pix, sorry für die späte Rückmeldung war jetzt ein paar Wochen beruflich unterwegs, ja es handelt sich um den Aktor, und ja der Baum ist jetzt da, bin aber noch nict viel weiter, da das alles ziemlich neu für mich ist :)

                          Gruß

                          Tom

                          1 Reply Last reply
                          0

                          Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                          Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                          With your input, this post could be even better 💗

                          Register Login
                          Reply
                          • Reply as topic
                          Log in to reply
                          • Oldest to Newest
                          • Newest to Oldest
                          • Most Votes


                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          305

                          Online

                          32.8k

                          Users

                          82.7k

                          Topics

                          1.3m

                          Posts
                          Community
                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                          ioBroker Community 2014-2025
                          logo
                          • Login

                          • Don't have an account? Register

                          • Login or register to search.
                          • First post
                            Last post
                          0
                          • Home
                          • Recent
                          • Tags
                          • Unread 0
                          • Categories
                          • Unreplied
                          • Popular
                          • GitHub
                          • Docu
                          • Hilfe