Navigation

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

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    • Profile
    • Following 0
    • Followers 0
    • Topics 75
    • Posts 471
    • Best 3
    • Groups 2

    fischi87

    @fischi87

    4
    Reputation
    81
    Profile views
    471
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    fischi87 Follow
    Pro Starter

    Best posts made by fischi87

    • [Vorlage] Script zum Schalten von allen Geräten

      Hallo Gemeinde, durch die Vorlage von @Mic seinem Script zur Schaltung von Lichter per BW: https://www.forum.iobroker.net/topic/22034/vorlage-bewegungsmelder-xiaomi-aqara-geräte-lichter-steuern. Hab ich mir gedacht das müsste auch mit sämtlichen anderen Geräten laufen. Hab mir das script mal angeschaut und versucht das zu erweitern. Da ich Java-script lernen möchte und ich sowas schon lange umsetzen wollte war die Vorlage dafür perfekt, danke dafür!!!

      Ich habe es jetzt so, versuch zu erweitern das jedes Gerät als trigger verwendet werden kann. Eine Astro Funktion mit eingebaut, die Vorlage dafür kommt auch aus diesem Forum nur leider finde ich diesen Beitrag bzw die Quelle nicht mehr. Jedenfalls danke an die Ersteller dieses Skriptes

      Mit der Erweiterung sind Dimmer mit einbezogen dass das Licht abhängig von der Tageszeit einen bestimmten Helligkeit-wert bekommt.

      Ich bin kein Java-script typ jediglich totaler Anfänger also werden einigen Pros sicherlich Fehler auffallen aber bei mir läuft es bis jetzt ganz gut und ich hab Schon einige Geräte integriert.

      Über Feedback, Anregungen und Verbesserungsvorschläge bin ich sehr offen denn nur so kann man weiter lernen.

      Danke an alle Ersteller und deren Quelle bzw Codes.

      /*******************************************************************************
      * Inspiriert von Vorlage: https://forum.iobroker.net/topic/22034/vorlage-bewegungsmelder-xiaomi-aqara-geräte-lichter-steuern
      * Autor: ioBroker-Forum-Name: Mic / Github-Name: Mic-M
      * Source: https://github.com/Mic-M/iobroker.xiaomi-aquara-motion-control
      /*******************************************************************************
      
      /*******************************************************************************
       * Konfiguration
       ******************************************************************************/
       
      // Hier die einzelnen Geräte konfigurieren und beliebig Zeilen hinzufügen.
      //
      // [1] + [2] Zeiten: nur in den angegebenen Zeiten wird geschaltet. Falls immer geschaltet
      //                   werden soll, dann jeweils '0:00' und '23:59' eintragen.
      //
      // [3] Timmer wielange eingeschalten bleiben soll.
      //
      // [4] Lux: Ab wieviel Lux soll nicht mehr eingeshaltet werden? 9999, wird unabhängig von der Lux messung immer eingeschaltet.
      //
      // [5] Datenpunkt Trigger: Datenpunkt mit welchen Gerät getriggert werden soll.
      //
      // [6] Datenpunkt schaltendes Gerät: Datenpunkt welher Gerät geschaltet werden soll.
      //
      // [7] Dimmer State: Falls dimmer vorhanden hier ID eintragen wenn nicht ' ' ausrufezeichen leer lassen!!!
      //
      // [8] Tageszeit: Schalten der Geräte nach Tagezeit !!! Nur in verbindung mit Astro script:
      //                https://forum.iobroker.net/topic/2423/astro-tageszeit-abfragen-und-in-datenpunkt-eintragen
      //                Es funktioniert nur eine Zeit, compareTime oder Tageszeit!
      //
      // [9] Datenpunkt Lux: Datenpunkt für Lux messung.
      
      
      const DEVICE = [];
      //             [0] Name              [1] Zeit  [2] Zeit   [3] Nach wie vielen Minuten ohne   [4]Lux   [5] Datenpunkt Trigger                                          [6] Datenpunkt schaltendes Gerät etc.        [7] Dimmer State              [8] Tageszeit  [9] Datenpunkt Lux
      //                 (beliebig)            von         bis      änderung wieder aus? Falls 0,               
      //                                                            dann wird nicht ausgeschaltet.     
      DEVICE[0] = [   'Flur Mitte',         '00:00',  '23:59',    1,                                 50,     'mihome.0.devices.sensor_motion_aq2_158d000276d447.state',      'sonoff.0.Flur Mitte.POWER',                'sonoff.0.Flur Mitte.Dimmer',   false,        'mihome.0.devices.sensor_motion_aq2_158d000276d447.lux'];
      DEVICE[1] = [   'Haustürlicht',       '00:00',  '00:00',    20,                                9999,   'mihome.0.devices.magnet_158d00026a2b28.state',                 'sonoff.0.Haustürlicht.POWER',              ' ',                            true];
      DEVICE[2] = [   'Gartenlicht',        '00:00',  '00:00',    0,                                 9999,   'mihome.0.devices.magnet_158d0001c2e8d6.state',                 'sonoff.0.Garten-Spot.POWER',               ' ',                            true];
      DEVICE[3] = [   'Flur Unten',         '00:00',  '23:59',    1,                                 50,     'mihome.0.devices.sensor_motion_aq2_158d000276d3d1.state',      'sonoff.0.Flur unten hinten.POWER',         ' ',                            false,        'mihome.0.devices.sensor_motion_aq2_158d000276d3d1.lux'];
      DEVICE[4] = [   'Haustürlicht_Klingel','00:00', '00:00',    30,                                9999,   'hm-rpc.0.MEQ0485030.1.STATE',                                  'sonoff.0.Haustürlicht.POWER',              ' ',                            true];
      const BRIGHTNESS = [];
      //               [0] Nacht  [1] Morgendämmerung [2] Sonnenaufgang  [3] Morgen   [4] Vormittag  [5] Mittag [6] Nachmittag [7] Abend  [8] Sonnenuntergang [9] Abenddämmerung
      //Sind % Angaben
      BRIGHTNESS[0] = [   1,            20,                  50,               70,         100,         100,           100,        80,        80,                    60];
      //
      const DAYTIME = [];
      //              [0] Nacht  [1] Morgendämmerung [2] Sonnenaufgang  [3] Morgen   [4] Vormittag  [5] Mittag [6] Nachmittag    [7] Abend  [8] Sonnenuntergang [9] Abenddämmerung
      //
      DAYTIME[0] =    [true,      true,               true,              false,       false,         false,     false,            false,      true,               true];
      //
      // Logeinträge: Infos zeigen (wenn eingeschaltet oder ausgeschaltet wurde)
      const INFO = true;
      
      // Logeinträge: Zusätzliche Einträge anzeigen zur Fehlerbehebung. Auf "false" setzen, wenn alles funktioniert.
      const DEBUG = false;
      
      /*******************************************************************************
       * Ab hier nichts mehr ändern / Stop editing here!
       ******************************************************************************/
      
      main();
      function main() {
          for (let i = 0; i < DEVICE.length; i++) {
              let timer = null;
              on({id: DEVICE[i][5], change: 'any'}, function(obj) { 
                  // Falls Timer läuft: auf null setzen.
                  if (timer) {
                      clearTimeout(timer);
                      timer = null;
                  }
                  if(obj.state.val) {
                      if (DEBUG) log('[DEBUG] ' + DEVICE[i][0] + ': State hat sich geändert auf true');
                      //Prüfung auf Zeitangabe
                      if(DEVICE[i][1] > '00:00' || DEVICE[i][2] > '00:00' && DEVICE[i][8] === true) {if (DEBUG) log('[DEBUG] ' + 'Keine richtige CompareTime bzw Tageszeit anweisung!');}
                      //
                       else { 
                          //CompareTime
                          if(compareTime(DEVICE[i][1],DEVICE[i][2], 'between')) {
                              if (DEBUG) log('[DEBUG] ' + DEVICE[i][0] + ': Weiter mit CompareTime!');
                              //Prüfung auf LUX einstellung
                              let LuxIsGiven = true; // Default auf true, wird false gesetzt, falls nicht gegeben.
                              if(DEVICE[i][4] < 9999 ) {
                                  if (DEBUG) log('[DEBUG] ' + DEVICE[i][0] + ': Prüfung auf Lux ist aktiviert.')
                                  // Prüfung gemessene Lux kleiner Schwellwert, bis zu dem geschalten werden soll
                                  let luxActual = getState(DEVICE[i][9]).val;
                                  if (luxActual >= DEVICE[i][4]) {
                                      if (DEBUG) log('[DEBUG] ' + DEVICE[i][0] + ': Gemessene Lux = ' + luxActual + ', >= Schwelle von ' + DEVICE[i][4] + ', daher wird nicht geschaltet.')
                                      LuxIsGiven = false;
                                  } else {
                                      if (DEBUG) log('[DEBUG] ' + DEVICE[i][0] + ': Gemessene Lux = ' + luxActual + ', < Schwelle von ' + DEVICE[i][4] + ', daher eingeschaltet.')
                                  }
                              }
                              //Dimmer werde setzen
      
                              if(DEVICE[i][7] != ' ') {
                                  let tageszeitActual = getState('javascript.0.Astro.Tageszeit.current'/*Tageszeit*/).val;
                                  var dimmer;
                                  if(tageszeitActual === "Nacht") dimmer = BRIGHTNESS[i][0];
                                  if(tageszeitActual === "Morgendämmerung") dimmer = BRIGHTNESS[i][1];
                                  if(tageszeitActual === "Sonnenaufgang") dimmer = BRIGHTNESS [i][2];
                                  if(tageszeitActual === "Morgen") dimmer = BRIGHTNESS [i][3];
                                  if(tageszeitActual === "Vormittag") dimmer = BRIGHTNESS [i][4];
                                  if(tageszeitActual === "Mittag") dimmer = BRIGHTNESS [i][5];
                                  if(tageszeitActual === "Nachmittag") dimmer = BRIGHTNESS [i][6];
                                  if(tageszeitActual === "Abend") dimmer = BRIGHTNESS [i][7];
                                  if(tageszeitActual === "Sonnenuntergang") dimmer = BRIGHTNESS [i][8];
                                  if(tageszeitActual === "Abenddämmerung") dimmer = BRIGHTNESS [i][9];
                                  if (DEBUG) log('[DEBUG]' + DEVICE[i][0] + ': Tageszeit = ' + tageszeitActual + ' entspricht ' + 'Dimmerwert: ' + dimmer );
                              }
                              // Wir schalten, wenn Gerät derzeit aus ist und Lux passt
                              let deviceStatus = getState(DEVICE[i][6]).val;
                              if ( (deviceStatus === false) && (LuxIsGiven === true) ){
                                  setState(DEVICE[i][6], true); // Licht/Gerät wird geschaltet.
                                  if(DEVICE[i][7] != ' ') {setState(DEVICE[i][7], dimmer)
                                  if(INFO) log(DEVICE[i][0] + ' wurde eingeshaltet mit Helligkeit: ' + dimmer)}
                                  else if(INFO) log(DEVICE[i][0] + ' wurde eingeschaltet ohne Dimmer!')
                              }
                          } else {
      
                              if(DEVICE[i][8], true) {
                                  if (DEBUG) log('[DEBUG] ' + DEVICE[i][0] + ': Weiter mit Tageszeitangabe!');
                                  let tageszeitActual = getState('javascript.0.Astro.Tageszeit.current'/*Tageszeit*/).val;
                                  var daytime = false;
                                  if(tageszeitActual === "Nacht" && DAYTIME[0][0] === true) daytime = true;
                                  if(tageszeitActual === "Morgendämmerung" && DAYTIME[0][1] === true) daytime = true;
                                  if(tageszeitActual === "Sonnenaufgang" && DAYTIME[0][2] === true) daytime = true;
                                  if(tageszeitActual === "Morgen" && DAYTIME[0][3] === true) daytime = true;
                                  if(tageszeitActual === "Vormittag" && DAYTIME[0][4] === true) daytime = true;
                                  if(tageszeitActual === "Mittag" && DAYTIME[i][5] === true) daytime = true;
                                  if(tageszeitActual === "Nachmittag" && DAYTIME[0][6] === true) daytime = true;
                                  if(tageszeitActual === "Abend" && DAYTIME[0][7] === true) daytime = true;
                                  if(tageszeitActual === "Sonnenuntergang" && DAYTIME[0][8] === true) daytime = true;
                                  if(tageszeitActual === "Abenddämmerung" && DAYTIME[0][9] === true) daytime = true;
                              } 
                              let deviceStatus = getState(DEVICE[i][6]).val;
                              if ( (deviceStatus === false) && (daytime === true)) {
                                  setState(DEVICE[i][6], true); // Licht/Gerät wird geschaltet.
                                  if(INFO) log(DEVICE[i][0] + ' wurde eingeschaltet per Tageszeit.');
                              } else if(INFO) log(DEVICE[i][0] + ' keine gesetzte Tageszeit im Moment.');
                          }
                        } 
                      }    
                      else {
                          if (DEBUG) log('[DEBUG] ' + DEVICE[i][0] + ': State geändert auf false');
                          // Ausschalten. Aber nur falls gewünscht (falls 0, dann soll nicht per diesem Script ausgeschaltet werden).
                          if (DEVICE[i][3] > 0 ) {
                              // wenn erstmals keine Bewegung wird Timer gestartet
                              timer = setTimeout(function() {
                                  timer = null;
                                  setState(DEVICE[i][6], false); // Licht/Gerät aus nach Ablauf Timer
                                  if(INFO) log(DEVICE[i][0] + ': kein Trigger mehr, daher ausgeschaltet.');
                              }, DEVICE[i][3] * 1000); // Timer setzen auf X Minuten
                          }
                      }
              });
          }
      }
      

      Grüße Axel

      posted in Skripten / Logik
      fischi87
      fischi87
    • RE: VIS Sammlung von Views - gibt's das schon wo?

      Oh ja, hab vieles durch Langeweile und probieren erfahren 🙂

      posted in Visualisierung
      fischi87
      fischi87
    • RE: Licht über Astro Helligkeit

      @rehmosch

      servus, sorry aber ich kenn mich mit blocky absolut nicht aus. ich habe hier mal ein skript gepostet mit astro funktion etc. vielleicht kannst du damit ja was anstellen.

      https://forum.iobroker.net/topic/27946/vorlage-script-zum-schalten-von-allen-geräten

      posted in Skripten / Logik
      fischi87
      fischi87

    Latest posts made by fischi87

    • RE: Error im Blink Adpater

      @thomas-braun

      ach verdammt, gibt es eine alternative?

      grüße

      posted in Error/Bug
      fischi87
      fischi87
    • Error im Blink Adpater

      Hallo gemeinde, ich versuche gerade mein blink geräte in Iobroker zu integrieren. Die doku dazu ist etwas bescheiden. Ich bekomme ständig diese fehlermeldung:

      host.iobroker
      	2024-08-16 10:48:24.718	error	instance system.adapter.blink4home.0 terminated with code 1 (JS_CONTROLLER_STOPPED)
      host.iobroker
      	2024-08-16 10:48:24.718	error	Caught by controller[0]: Node.js v20.16.0
      host.iobroker
      	2024-08-16 10:48:24.718	error	Caught by controller[0]: at node:internal/main/run_main_module:28:49
      host.iobroker
      	2024-08-16 10:48:24.718	error	Caught by controller[0]: at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:174:12)
      host.iobroker
      	2024-08-16 10:48:24.718	error	Caught by controller[0]: at Module._load (node:internal/modules/cjs/loader:1024:12)
      host.iobroker
      	2024-08-16 10:48:24.718	error	Caught by controller[0]: at Module.load (node:internal/modules/cjs/loader:1208:32)
      host.iobroker
      	2024-08-16 10:48:24.718	error	Caught by controller[0]: at Module._extensions..js (node:internal/modules/cjs/loader:1416:10)
      host.iobroker
      	2024-08-16 10:48:24.718	error	Caught by controller[0]: at Module._compile (node:internal/modules/cjs/loader:1358:14)
      host.iobroker
      	2024-08-16 10:48:24.718	error	Caught by controller[0]: at Object.<anonymous> (/opt/iobroker/node_modules/iobroker.blink4home/main.js:235:2)
      host.iobroker
      	2024-08-16 10:48:24.718	error	Caught by controller[0]: at new Blink4home (/opt/iobroker/node_modules/iobroker.blink4home/main.js:24:12)
      host.iobroker
      	2024-08-16 10:48:24.718	error	Caught by controller[0]: TypeError: Cannot read properties of undefined (reading 'debug')
      host.iobroker
      	2024-08-16 10:48:24.718	error	Caught by controller[0]: ^
      host.iobroker
      	2024-08-16 10:48:24.717	error	Caught by controller[0]: this.log.debug('begin setup adapter');
      host.iobroker
      	2024-08-16 10:48:24.717	error	Caught by controller[0]: /opt/iobroker/node_modules/iobroker.blink4home/main.js:24
      

      hat jemand erfahrung mit diesem adpater? hat jemand schon erfolgreich seine Blink Kameras integriert?

      node: 20.16.0
      npm: 10.8.1

      danke euch!!!

      posted in Error/Bug
      fischi87
      fischi87
    • RE: SmartControl async error

      @mcm1957

      Leider hat die Änderung meinen Fehler nicht behoben. Noch weiteren Ideen?

      Grüße

      posted in Error/Bug
      fischi87
      fischi87
    • RE: SmartControl async error

      @mcm1957

      okay danke daran hab ich noch gar nicht gedacht, probier es direkt aus den string als number.

      posted in Error/Bug
      fischi87
      fischi87
    • RE: SmartControl async error

      @arteck

      okay ich versuche es erneut.

      ich habe eine erstellten Datenpunkt (PVLeistung) der mir einen sting liefert. diesen habe ich, unter smartcontrol zusätzliche Bedienung angeben und mit dem dp-wert ">2000" versehen. in meiner zone, habe ich einen Auslöser, eine gewisse Uhrzeit, die auch ausgelöst wird und nach einen timer von 3600sek. beendet wird. jetzt hab ich zusätzlich in der gleichen zone, unter "nie aushalten wenn.." die zusätzliche Bedingungen (PV>2000)" hinterlegt und wenn der timer abgelaufen ist, bekomme ich immer diesen besagten fehler.

      verständlicher?

      sorry hab es nicht so mit erläutern von Problemen.

      posted in Error/Bug
      fischi87
      fischi87
    • SmartControl async error

      Hallo gemeinde, hab finde einfach den fehler nicht was das für ein error sein soll, kann mir da jemand helfen?

      ich habe eine zusätzliche Bedienung "PV>2000" eingetragen mit dem wert 2000 aber ich bekomme wenn die zone getigert wird im log immer diesen fehler:

      asyncAreScheduleConditionsMet(): condition details for 'PV>2000' could not be found
      

      jemand eine Idee?

      danke

      posted in Error/Bug
      fischi87
      fischi87
    • RE: Neuer Adapter für Roborock-Staubsauger

      @jahnbes sagte in Neuer Adapter für Roborock-Staubsauger:

      Wiki Roborock Datenpunkte

      super Sache danke.

      posted in ioBroker Allgemein
      fischi87
      fischi87
    • RE: Neuer Adapter für Roborock-Staubsauger

      @da_woody sagte in Neuer Adapter für Roborock-Staubsauger:

      https://github.com/copystring/ioBroker.roborock/tree/dev

      Hallo, kann mir jemand sagen wo ich die Datenpunkte für den Staubbehälter und für die Wassertanks finde?

      danke. Habe dev version 0.5.4

      grüße

      posted in ioBroker Allgemein
      fischi87
      fischi87
    • RE: [GELÖST] Skript gibt [objekt Objekt] aus

      @paul53

      Bildschirmfoto 2024-02-26 um 21.52.28.png

      posted in JavaScript
      fischi87
      fischi87
    • RE: [GELÖST] Skript gibt [objekt Objekt] aus

      @paul53 sagte in Skript gibt [objekt Objekt] aus:

      id = id.substring(0, id.lastIndexOf('.')); // parent-ID

      weil du es halt kannst, super läuft jetzt bekomme zwar wieder rote Linien:

      Property 'lastIndexOf' does not exist on type 'string'
      

      aber funktioniert.

      vielen dank

      posted in JavaScript
      fischi87
      fischi87
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo