Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Mihaeru

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    M
    • Profile
    • Following 0
    • Followers 0
    • Topics 1
    • Posts 31
    • Best 2
    • Groups 1

    Mihaeru

    @Mihaeru

    2
    Reputation
    40
    Profile views
    31
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    Mihaeru Follow
    Starter

    Best posts made by Mihaeru

    • RE: Erwartete Tageshelligkeit (Dauer) berechnen

      Äm .. ich habe echt keine Ahnung von Blockly und gehe mal davon aus, dass es so einfach nicht sein wird aber trotzdem frage ich mal, ob das hier nicht bei jeder Änderung die Variable einmalig wieder auf false setzt:
      fa13f3a8-5d1c-49a3-9c27-ff6d6001a048-image.png

      Die Thematik interessiert mich ebenfalls für eine Anwesenheitssimulation. Insbesondere abhängig von der Bewölkung passen die Astro-Zeiten oft nicht.

      posted in Skripten / Logik
      M
      Mihaeru
    • RE: Fully Kiosk Browser

      @Meister-x Deinstallier mal die Android System Webview. Wurde hier im Thread auch schon mehrfach empfohlen. Da es sich um eine System-App handelt, werden nur die Updates deinstalliert und danach lief zumindest bei mir alles einwandfrei. Außerdem habe ich die WebView noch für Updates deaktiviert, damit ich sie mir nicht versehentlich wieder aktualisiere.
      Bewegunsgerkennung mache ich übrigens über einen externen Bewegungsmelder (Homematic-IP) und dann per Script über die REST API direkt an den Fully (Ohne Adapter). Läuft super - auch im dunklen 🙂

      posted in Visualisierung
      M
      Mihaeru

    Latest posts made by Mihaeru

    • Hue Adapter schaltet Leuchten aus
      Systemdata
      Hardwaresystem: Tinker
      Arbeitsspeicher: 2GB
      Festplattenart: eMMC
      Betriebssystem: ARMBIAN 5.72
      Node-Version: v12.18.4
      Nodejs-Version: v12.18.4
      NPM-Version: v6.14.6

      Hallo zusammen,
      ich habe seit langer Zeit das Problem, dass der Hue Adapter sporadisch Lampen abschaltet. Zu diesem Thema gab es schon einmal einen Thread aber ohne Lösung. Aktuell nutze ich den Adapter ioBroker.hue in der Version 3.5.25.
      Ich habe die Debug Protokollierung eingeschaltet und dort den folgenden Abschnitt gefunden:

      2021-11-17 19:11:22.302  - debug: hue.0 (30962) polling group Philips_hue.All (0)
      2021-11-17 19:11:32.406  - debug: hue.0 (30962) Poll all states
      2021-11-17 19:11:32.462  - debug: hue.0 (30962) Polled config: {"lights": eine Menge Zeugs...}
      2021-11-17 19:11:32.466  - debug: hue.0 (30962) polling group Philips_hue.All (0)
      2021-11-17 19:11:32.573  - debug: hue.0 (30962) stateChange hue.0.Philips_hue.Schreibtisch.on {"val":false,"ack":false,"ts":1637172692570,"q":0,"from":"system.adapter.web.0","user":"system.user.admin","lc":1637172692524}
      2021-11-17 19:11:32.599  - debug: hue.0 (30962) final lightState for Philips hue.Schreibtisch:{"bri":0,"on":false,"level":0}
      2021-11-17 19:11:32.674  - debug: hue.0 (30962) polling light Philips_hue.Schreibtisch (3)
      2021-11-17 19:11:32.714  - debug: hue.0 (30962) updated lighstate(3) after change
      2021-11-17 19:11:42.615  - debug: hue.0 (30962) Poll all states
      

      Hier kommt ein stateChange rein, ohne dass ich aktiv etwas geändert habe.
      Das Problem hatte ich sowohl mit einer Hue Bridge V1 als auch mit der V2, auf welche ich vor einiger Zeit aktualisiert habe.
      Sobald ich den Adapter stoppe, tritt der Effekt nicht mehr auf.

      Irgendeine Idee, woran es liegen könnte und wie man das lösen kann?|Systemdata| Bitte Ausfüllen|

      posted in Error/Bug
      M
      Mihaeru
    • RE: Adapter für VELUX KLF-200 Interface

      @Rolf_A Hallo Rolf,
      was meinst du mit 'Setzen' der 'Soll' Werte? Das Senden der Soll-Werte in die KLF-200?
      Bei mir werden die Werte direkt über die Vis gesetzt.
      Über mein angepasstes Skript werden die soll-Werte jedenfalls nicht gesetzt. Lediglich die ist-Werte.

      Die Fehlermeldungen sagen mir jetzt leider auch nicht viel. Ich komme auch nicht aus der JavaScript-Welt aber es klingt so, als ob das Replace, welches in der on-subscription verwendet wird, das Problem ist. Eventuell wird baseObjectPath bei dir nicht als string erkannt? Du hast ja vermutlich einige eigene Anpasssungen. Kann es sein, dass da etwas schief gelaufen ist?

      Ich verwende allerdings auch noch den js-controller 2.2.9.

      Viele Grüße
      Michael

      posted in Tester
      M
      Mihaeru
    • RE: Adapter für VELUX KLF-200 Interface

      Hallo zusammen,

      vielen Dank an loehrj1 und gemuesepudding für die Bereitstellung des Skriptes! Hat mir wirklich sehr geholfen.

      Bei dem letzten Stand wurden die aktuellen Zustände nicht richtig abgefragt, da anscheinend die Verwendung der IDs und Bezeichnungen etwas durcheinander geraten ist. Ich habe es nochmal für meine Bedürfnisse angepasst. Die Gruppen habe ich bei mir aktuell nicht benötigt und daher hier erst mal rausgelassen. Mit dieser Version funktioniert zumindest bei mir die Statusabfrage (ist-Wert).
      Ich habe außerdem noch eine Stopp-Funktion verwendet, die alle laufenden Aktivitäten anhält.

      'use strict' ; 
      // Netzwerk
      const Ip       = '192.168.178.43'
      const Passwort = '******' // WLAN Passwort
      const baseObjectPath = 'javascript.1.Velux.'
       
      var Rollos = [];
       
      class Rollo {
          constructor(name, nodeId, isVal, targetVal, group) {
              this.name = name;
              this.nodeId = nodeId;
              this.isVal = isVal;
              this.targetVal = targetVal;
          }
      }
       
      Rollos.push(new Rollo('Eingang'         , 0, 100, 100));
      Rollos.push(new Rollo('EsszimmerLinks' , 1, 100, 100));
      Rollos.push(new Rollo('EsszimmerRechts'  , 2, 100, 100));
       
       
      // // Gruppen. All, SZ, .. are then names of states. Add new properties for more groups
      // const groups = {
      //     All   : Object.values(Rollos), // all IDs of shutters
      //     TODO...
      // }
       
       
      for(let shutter of Rollos) {
          createState(baseObjectPath + 'shutter.' + shutter.name + '.soll', 0, { name: 'shutter ' + shutter.name + '.soll', type: 'number', min: 0, max: 100, unit: '%'})
          createState(baseObjectPath + 'shutter.' + shutter.name + '.ist' , 0, { name: 'shutter ' + shutter.name + '.ist', type: 'number', min: 0, max: 100, unit: '%'})
      }
       
      // for(let key of Object.keys(groups)) {
      //     createState(baseObjectPath + 'groups.' + key, 0, { name: 'group ' + key, type: 'number', min: 0, max: 100, unit: '%'})
      // }
       
      const Up    = 0      // Rollo oben
      const Down  = 0xc800 // Rollo unten
      const Stop  = 0xD200 // Stopkommando
       
      // Variable
      var velux  = require('velux-klf200-api')
      var Connected = false
      let Commands = {}
      let shutterNodeIdsAll = Rollos.map(a => a.nodeId);
      const MaxNodeIdx = shutterNodeIdsAll.length;  // 5 Rollos..
       
      var SessionId = 0
       
      function SetCurrentPos(nodeId, val)
      {    
          var rollo = Rollos.filter(r => {return r.nodeId == nodeId})[0]
          if(rollo)
          {
              rollo.isVal = val;
              setState(baseObjectPath + 'shutter.' + rollo.name + '.ist', rollo.isVal, true)
          }
      }
      // Zustand der Rollos holen  
      function GetState(shuttterIds, sessionId)
      {
          if (Connected) {
              shuttterIds = shuttterIds || shutterNodeIdsAll
              log('checking shutters ' + JSON.stringify(shuttterIds), 'debug')
              velux.sendCommand({ 
                  api: velux.API.GW_STATUS_REQUEST_REQ,
                  sessionID: sessionId || 0,
                  indexArrayCount: shuttterIds.length,
                  indexArray : shuttterIds,
                  statusType : 3 // Main Info
              })  
          }
      }
          
      // Callback fuer Positionsrueckmeldung
      velux.on('GW_STATUS_REQUEST_NTF', Status);
      function Status(data) {
          var Target     = Math.round(100 - data.targetPosition.value)
          var Current    = Math.round(100 - data.currentPosition.value) // aktuelle Position
          var Time       = data.remainingTime // Restlaufzeit
          var Index      = data.index         // Node index
          var StatusType = data.statusType    // Status Typ "Main Info" = 3 erwartet
       
          if ( (StatusType === 3) && 
              (Index >= 0) && 
              (Index < MaxNodeIdx))
          {
              SetCurrentPos(data.index, Current)
          }
      }
       
      // Callback Ende Job
      velux.on('GW_SESSION_FINISHED_NTF', JobFinished);
      function JobFinished(data) {
          log("EndCmd (" + data.sessionID+')', 'debug')
          let sessionKey = 'session_' + data.sessionID
          if (typeof Commands[sessionKey] !== 'undefined') {
              // get state after job finished
              GetState(Commands[sessionKey].shuttterIds, data.sessionID)
              delete Commands[sessionKey]
          }
      }
       
      // Verbindung aufbauen
      function ConnectKlf() { 
          if (! Connected) {
              Connected = true;
              velux.connect( Ip, {} ).then(()=>{
                  velux.login( Passwort ).then(()=>{
                      log("Klf connected!", 'info')
                      Connected = true
                      GetState();
                  })
              })
              .catch((err)=>{
                  log('connect error ' + JSON.stringify(err), 'error')
                  Connected = false
                  velux.end()
              })
          }
      } 
       
      function MoveShutter( shutterIds, Val) {
          if ( Connected )
          {
              return velux.sendCommand({ api: velux.API.GW_COMMAND_SEND_REQ,
                  sessionID : ++SessionId,
                  commandOriginator: 1,
                  priorityLevel:     2,
                  parameterActive:   1,
                  functionalParameterMP:  {rawValue : Val}, 
                  indexArrayCount: shutterIds.length,
                  indexArray : shutterIds,
                  priorityLevelLock: false,
              }).then((data)=>{
                  log("StartCmd (" + data.sessionID+')', 'debug')
                  Commands['session_' + data.sessionID] = {
                      shuttterIds : shutterIds
                  }
              })
              .catch((err)=>{
                  log(err, 'error')
              })
          }
      } 
       
      // Restart einmal pro Tag um 22 Uhr 
      schedule('5 20 * * *', function () {
          velux.sendCommand({ api: velux.API.GW_REBOOT_REQ})
          Connected = false
      });
       
      // zyklisches Senden Idle Telegramm und Rolladenstatus holen 
      schedule('*/1 * * * *', function () {
          velux.sendCommand({ api: velux.API.GW_GET_STATE_REQ})
          .then((data) => {
              //Connected = true
              GetState()       // Rolladenpostionen holen
          })
          .catch((err) => {
              Connected = false
              log('Connection lost...' +JSON.stringify(err), 'error')       
              ConnectKlf() 
          })
      }); 
       
      // Verbinden zu klf200
      ConnectKlf()
       
      // Verbindung abbauen und aufraeumen bei Stop
      onStop(() => {
          Connected = false
       
          log("Disconnect", 'info')
          velux.off('GW_STATUS_REQUEST_NTF',   Status)
          velux.off('GW_SESSION_FINISHED_NTF', JobFinished)
          velux.end()
      });
       
       
      on({id: new RegExp(baseObjectPath.replace('.', '\.') + 'shutter\..*\.soll'), change:'any', ack: false}, function (obj) {
          let State = Down - Down / 100 * obj.state.val
          let shutterName = obj.id.split('.').slice(-2)[0]
          let shutterId =   Rollos.filter(r => {return r.name == shutterName})[0].nodeId
          log('Moving shutter ' + shutterName + '(' + shutterId + ')' + ' to ' + obj.state.val + '%', 'info')
          MoveShutter([shutterId], State)
      }); 
      
       on('javascript.1.Velux.Stop', function (obj) {
           MoveShutter(shutterNodeIdsAll, Stop);
      });
      
      posted in Tester
      M
      Mihaeru
    • RE: Fully Kiosk Browser

      @Meister-x Deinstallier mal die Android System Webview. Wurde hier im Thread auch schon mehrfach empfohlen. Da es sich um eine System-App handelt, werden nur die Updates deinstalliert und danach lief zumindest bei mir alles einwandfrei. Außerdem habe ich die WebView noch für Updates deaktiviert, damit ich sie mir nicht versehentlich wieder aktualisiere.
      Bewegunsgerkennung mache ich übrigens über einen externen Bewegungsmelder (Homematic-IP) und dann per Script über die REST API direkt an den Fully (Ohne Adapter). Läuft super - auch im dunklen 🙂

      posted in Visualisierung
      M
      Mihaeru
    • RE: HUE Adapter - Licht dimmt automatisch hoch wenn mit Schalter bedient wird

      @arteck sagte in HUE Adapter - Licht dimmt automatisch hoch wenn mit Schalter bedient wird:

      die Diskussion hatten wir schon mal..

      du magst es so .. der andere kommt um die Ecke und sagt .. wen ich AN sage dann will ich IMMER 100% Licht...

      so wie AUS = 0 und nicht 1%

      willst du immer die letzte Helligkeit behalten musst du dir selber was schreiben

      Das Problem hier ist doch, dass der Trigger für das Einschalten von einem externen Gerät kommt, auf das ich keinen Einfluss habe. Das setzt halt 'on' auf true und der Adapter macht daraus volle Helligkeit. Wenn ich Vis benutze, kann ich ja beliebig triggern, was ich haben möchte. Ich kann einfach den Level oder die Brightness entsprechen setzen. Von daher verstehe ich nicht, warum das hier von Vorlieben abhängt. Aktuell verändert der Adapter das Standardverhalten des Hue-Systems und das auch noch verzögert.
      Sinnvoll ist es nur dann, wenn ich per Vis oder Skript den On-state setze, während die Brightness auf '0' steht. Keine Ahnung, wie es bei Steuerung mit Alexa funktioniert aber ich vermute mal, dass man auch da direkten Einfluss auf die Helligkeit nehmen kann, wenn man es denn möchte.

      posted in ioBroker Allgemein
      M
      Mihaeru
    • RE: HUE Adapter - Licht dimmt automatisch hoch wenn mit Schalter bedient wird

      Das liegt am Adapter selbst. Wenn du dir die main.js des Adapters ansiehst, dann findest du dort folgende Zeilen:

                  // if .on changed instead change .bri to 254 or 0
                  let bri = 0;
                  if (dp === 'on') {
                      bri = state.val ? 254 : 0;
                      adapter.setState([id, 'bri'].join('.'), {val: bri, ack: false});
                      return;
      }
      

      Wenn du also mit der FB einschaltest, wird der state change 'on' erkannt und die Helligkeit (bri) auf 254 gesetzt.
      Ich wollte eigentlich mal schauen, ob ich da eine Lösung zu finde, ohne dass es eine Endlosschleife gibt 🙂
      Habe noch nie einen Adapter entwickelt und weiß aktuell nicht, ob und wie man Statusänderungen seitens des Adapters von denen Unterscheiden kann, die von 'außen' kommen. Vielleicht reicht es ja schon, wenn man einfach einen adapter.setState auf on macht und die Helligkeit danach anpasst, falls diese '0' ist. Oder vielleicht kann auch an der Stelle schon die gesetzte Helligkeit abgefragt und dann berücksichtigt werden.

      Bislang war es mir allerdings nicht so wichtig, dass ich die Zeit dafür gefunden hätte, mich da einzuarbeiten.

      posted in ioBroker Allgemein
      M
      Mihaeru
    • RE: Erwartete Tageshelligkeit (Dauer) berechnen

      Äm .. ich habe echt keine Ahnung von Blockly und gehe mal davon aus, dass es so einfach nicht sein wird aber trotzdem frage ich mal, ob das hier nicht bei jeder Änderung die Variable einmalig wieder auf false setzt:
      fa13f3a8-5d1c-49a3-9c27-ff6d6001a048-image.png

      Die Thematik interessiert mich ebenfalls für eine Anwesenheitssimulation. Insbesondere abhängig von der Bewölkung passen die Astro-Zeiten oft nicht.

      posted in Skripten / Logik
      M
      Mihaeru
    • RE: Hilfe - Hue Adapter schaltet Licht selbständig (unregelmäßig) ab!

      Edit: Das Problem, dass beim Ausschalten einer Leuchte mit der Fernbedienung auch die andere abgeschaltet wird, hat mit dem Hue-System direkt zu tun. Obwohl in der App steht, dass der Taste zum Ausschalten nur die Lampen abschaltet, die mit der Fernbedienung auch eingeschaltet wurden und obwohl beim Einschalten per Szene nur eine der Leuchten geschaltet wird, schaltet die Fernbedienung auch mit gestopptem Hue-Adapter beide Leuchten ab. Ebenso beim Einschalten.
      Bleibt also nur das Problem, dass ohne eine Veränderung per Hue App oder FB eine Lampe irgendwann abgeschaltet wird. Werde mal sehen, ob da über das Logging mit Debug Modus ein paar brauchbare Informationen kommen.

      posted in ioBroker Allgemein
      M
      Mihaeru
    • RE: Hilfe - Hue Adapter schaltet Licht selbständig (unregelmäßig) ab!

      Ich habe bei mir jetzt auch mal den Debug Modus eingeschaltet und auch das logging für diverse Datenpunkte.
      Wenn die Leuchte abgeschaltet wird, habe ich ebenfalls den system.adapter.web.0 Eintrag wie Mauflo:

      hue.0	2019-02-28 18:28:00.364	debug	redis pmessage io.hue.0.* io.hue.0.Philips_hue.Deckenlicht.bri {"val":0,"ack":false,"ts":1551374880360,"q":0,"from":"system.adapter.hue.0","lc":1551374880078}
      hue.0	2019-02-28 18:28:00.361	debug	stateChange hue.0.Philips_hue.Deckenlicht.on {"val":false,"ack":false,"ts":1551374880357,"q":0,"from":"system.adapter.web.0","lc":1551374880071}
      hue.0	2019-02-28 18:28:00.360	debug	redis pmessage io.hue.0.* io.hue.0.Philips_hue.Deckenlicht.on {"val":false,"ack":false,"ts":1551374880357,"q":0,"from":"system.adapter.web.0","lc":1551374880071}
      

      Ich habe die Leuchte per Hue-App eingeschaltet. Kurz vor dem Eintrag habe ich außerdem per Hue Fernbedienung eine dem gleichen Raum zugeordnete Leuchte eingeschaltet. Ich denke allerdings, dass es nichts miteinander zu tun hat. Um Sicherzugehen, habe ich aber das Logging für die Datenpunkte der Leuchten und des Raumes aktiviert.
      Was das abschalten angeht, betrifft dies hauptsächlich die Leuchte Deckenlicht.
      Irgendwelche Ideen?
      Abgesehen davon habe ich noch das Problem, dass beim ersten Polling nach dem Einschalten die Helligkeit auf 154 gesetzt wird. Ich habe schon überlegt, die entsprechenden Zeilen im Code rauszunehmen. Habe aber auch einen entsprechenden Eintrag in GitHub kommentiert.

      posted in ioBroker Allgemein
      M
      Mihaeru
    • RE: Hilfe - Hue Adapter schaltet Licht selbständig (unregelmäßig) ab!

      Hi. Ich setze seit kurzem auch den Hue Adapter ein und habe seitdem genau das gleiche Problem.
      Eine Hue-Leuchte schalte ich oft über einen Hue-Dimmer ein und plötzlich ändert sich die Helligkeit oder die Lampe schaltet sich ab. Das passiert immer relativ kurz nach dem Einschalten und beruhigt sich dann irgendwann. Ich habe leider noch keine Zeit gehabt nachzuforschen, woran es liegen könnte
      Hast du mittlerweile eine Lösung?

      posted in ioBroker Allgemein
      M
      Mihaeru
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo