Navigation

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

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Profile
    • Following 0
    • Followers 7
    • Topics 112
    • Posts 1695
    • Best 110
    • Groups 3

    Peoples

    @Peoples

    158
    Reputation
    524
    Profile views
    1695
    Posts
    7
    Followers
    0
    Following
    Joined Last Online

    Peoples Follow
    Developer Pro Most Active

    Best posts made by Peoples

    • [Vorlage] Automatischer View-Wechsel u. Slideshow

      Hi Leute,
      ich möchte euch mal wieder eines meiner Scripte zur Verfügung stellen.

      Da hier immer wieder die Frage aufkommt wie man in seinem Vis-Projekt die Seiten automatisch durchlaufen lassen bzw. nach eingestellter Zeit zurück auf die "Home-View" schalten lassen kann habe ich für mich mal etwas gebastelt das der Eine oder Andere vielleicht auch verwenden kann.

      Folgende Funktionen gibt es:

      • Automatischer Wechsel auf HomeView nach eingestellter Zeit
        (Anzeigezeit für jede View separat einstellbar)
      • "Slideshow", ausgewählte Views laufen der Reihe nach durch
        (Anzeigezeit fest oder für jede View separat einstellbar)
      • View Wechsel durch Auslöse-Trigger, bspw. Bewegungsmelder -> KameraView
      • Screensaver Seitenwechsel

      Erläuterungen habe ich ins Script eingepflegt, wenn dennoch Fragen sind einfach hier schreiben.

      //
      // Seitenwechsel-Script
      // Autor: Peoples
      //
      //
      // Funktionen:  1. Bei Viewwechsel wird geprüft ob eine andere View als Home gewählt ist
      //                 wenn das der Fall ist wird ein Timer gesetzt nach dessen Ablauf wieder zurück
      //                 auf Home gewechselt wird.
      //              2. Wenn die Alarmanlage eingeschalten ist wird die PinEingabeView angezeigt.
      //              3. Bei SystemView läuft kein Timer
      //
      //
      // v2.0.0 - 30.09.2018  Neue Version - Grundaufbau geändert
      // v2.0.1 - 09.03.2019  Slideshow aller gewünschen Views integriert
      // v2.0.2 - 23.03.2019  Zusatzfunktion zum steuern der Sonderdatenpunkte eingebaut
      // v2.0.3 - 28.03.2019  Zahlenwerte durch parseInt konvertiert
      // v2.0.4 - 21.05.2019  Fehlerkorrekturen
      // v2.0.5 - 14.09.2019  AutoViewWechsel als Screensaver möglich
      // *******************************************************************************************************
      
      // -----------------------------------------------------------------------------
      // allgemeine Variablen
      // -----------------------------------------------------------------------------
      var logging = false;                                        // Logging on/off
      var instanz = 'javascript.0';   instanz = instanz + '.';    // 
                                                                  //
      var pfad0 =   'System.Iobroker';      pfad0 = pfad0 + '.';  // Pfad innerhalb der Instanz 
      var timerTout;
      var timerAutoSV;
      var DefaultView = 'Home';                                   // Standard-View
      
      // Aus Datenpunkt vis.0.control.data entnehmen 
      // der Teil vor dem Slash ist der Projektname:
      // "Wandtablet/Home"
      var project = "Wandtablet";     project = project + '/';    // Name des Vis-Projekts
      
      var DisplayTime = '25';                                     // Darstellungszeit der Views bei Autowechsel
      var startView = 1;                                          // Startview bei Autowechsel
      var screenSv_time = 20;                                     // Zeit nach der der ScreenSaver Seitenwechsel angeht in Minuten
      
      //Alle vorhandenen Views
      var VisViews = [
          
              /* View Name */                  /* Anzeigezeit */   /* In Slideshow anzeigen? */
      
          {'view':'Alarmanlage_code',             'SWSec':180,            'ShowIAV':'no'},
          {'view':'Backup_Konfiguration',         'SWSec':180,            'ShowIAV':'no'},
          {'view':'Batterie',                     'SWSec':180,            'ShowIAV':'yes'},
          {'view':'Fenster',                      'SWSec':180,            'ShowIAV':'yes'},
          {'view':'Fritzbox',                     'SWSec':120,            'ShowIAV':'yes'},
          {'view':'Garten',                       'SWSec':60,             'ShowIAV':'yes'},
          {'view':'Heizung_Diagramme',            'SWSec':40,             'ShowIAV':'no'},
          {'view':'Heizung_EG',                   'SWSec':180,            'ShowIAV':'yes'},
          {'view':'Heizung_UG',                   'SWSec':180,            'ShowIAV':'yes'},
          {'view':'Heizung_Vitoladens300C',       'SWSec':90,             'ShowIAV':'yes'},
          {'view':'Home',                         'SWSec':0,              'ShowIAV':'yes'},
          {'view':'Kameras',                      'SWSec':90,             'ShowIAV':'yes'},
          {'view':'Kamera_Garage',                'SWSec':60,             'ShowIAV':'no'},
          {'view':'Kamera_Garten_Hinten',         'SWSec':60,             'ShowIAV':'no'},
          {'view':'Kamera_Bilder_Haustuere',      'SWSec':180,            'ShowIAV':'no'},
          {'view':'Kamera_Bilder_Klingel',        'SWSec':180,            'ShowIAV':'no'},
          {'view':'Konfiguration',                'SWSec':0,              'ShowIAV':'no'},
          {'view':'Licht_EG',                     'SWSec':180,            'ShowIAV':'yes'},
          {'view':'Licht_KG_Aussen',              'SWSec':180,            'ShowIAV':'yes'},
          {'view':'Netzwerk',                     'SWSec':180,            'ShowIAV':'yes'},
          {'view':'Raumklima',                    'SWSec':120,            'ShowIAV':'no'},
          {'view':'Saugroboter',                  'SWSec':120,            'ShowIAV':'yes'},
          {'view':'Sonos',                        'SWSec':180,            'ShowIAV':'no'},
          {'view':'Statistik',                    'SWSec':0,              'ShowIAV':'yes'},
          {'view':'Strom',                        'SWSec':180,            'ShowIAV':'yes'},
          {'view':'System',                       'SWSec':0,              'ShowIAV':'no'},
          {'view':'Wetter',                       'SWSec':60,            'ShowIAV':'yes'},
          {'view':'Wetter_Diagramme',             'SWSec':60,            'ShowIAV':'no'}
      ];
      // -----------------------------------------------------------------------------
      // Objekte
      // -----------------------------------------------------------------------------
      // Objekt für Alle Automatischen Abläufe
      createState(pfad0 + 'Timer_View_Switch',  {def: '0',type: 'number',name: 'Timer für Wechsel auf DefaultView'});
      createState(pfad0 + 'Auto_Switch_View',  {def: 'false',type: 'boolean',name: 'Alle Views durchlaufen lassen'});
      createState(pfad0 + 'ScreenSaverAcitve',  {def: 'false',type: 'boolean',name: 'Bildschirmschoner'});
      
      
      if(logging)log("Total "+Object.keys(VisViews).length+" entries");
      
      // $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
      // $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
      // $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
      // $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
      
      // #############################################################################
      // #                                                                           #
      // #  Funktion zum automatischen Viewwechsel nach Timerablauf                  #
      // #                                                                           #
      // #############################################################################
      
      function switchToHomeView() {
              timerTout = setTimeout(function () {
                  var timer = parseInt(getState(pfad0 + 'Timer_View_Switch').val, 10);
                  if (timer > 1) {
                      setState(pfad0 + 'Timer_View_Switch',timer - 1);
                      switchToHomeView();
                  }
                  else{
                      setState(pfad0 + 'Timer_View_Switch', 0);
                      setState('vis.0.control.instance', 'FFFFFFFF'); //getState("vis.0.control.instance").val/*Control vis*/);
                      setState('vis.0.control.data', project + DefaultView);
                      setState('vis.0.control.command', 'changeView');
                  }
              }, 1000);
      }
      
      // #############################################################################
      // #                                                                           #
      // #  Funktion zum automatisch umlaufenden Viewwechsel                         #
      // #                                                                           #
      // #############################################################################
      
      function autoSwitchView(dspTime,i) {
              if(i === '') i = 0;
              if(logging) log(i);
              if(i < Object.keys(VisViews).length){
                  if(VisViews[i].ShowIAV == 'yes'){
                      timerAutoSV = setTimeout(function () {
                          var timer = parseInt(getState(pfad0 + 'Timer_View_Switch').val, 10);
                          if (timer > 1) {
                              setState(pfad0 + 'Timer_View_Switch', timer - 1);
                              autoSwitchView(dspTime, i);
                          }
                          else{
                                  setState(pfad0 + 'Timer_View_Switch', 0);
                                  if(getState(pfad0 + 'Auto_Switch_View').val === true) switchView(project+VisViews[i].view);
                                  startAutoSwitchView(dspTime,(i+1));
                          }
                      }, 1000);
                  }
                  else{
                      startAutoSwitchView(dspTime,(i+1));
                  }
              }
              else{
                 startAutoSwitchView(dspTime,startView); 
              }
      }
      
      // #############################################################################
      // #                                                                           #
      // #  Funktion zum Starten und Stoppen des automatischen Viewwechsel           #
      // #                                                                           #
      // #############################################################################
      function startAutoSwitchView(dspTime,i){
          if(getState(pfad0 + 'Auto_Switch_View').val === true){
              if(dspTime !== ''){
                  setState(pfad0 + 'Timer_View_Switch',parseInt(dspTime, 10));
              }
              else{
                  setState(pfad0 + 'Timer_View_Switch',15);
              }
              autoSwitchView(dspTime,i);
          } 
          else{
              if(timerTout) clearTimeout(timerTout);
              switchView(project + DefaultView);
              setStateDelayed(pfad0 + 'Timer_View_Switch',0,2000);
          }
      }
      //
      // Beobachten des View Datenpunktes
      on({id:"javascript.0.System.Iobroker.Auto_Switch_View", change: "ne"}, function (dp) {
      //    if(dp.state.val === true){
              startAutoSwitchView(DisplayTime,startView);
      //    }
      });
      
      // #############################################################################
      // #                                                                           #
      // #  Funktion zum Scriptbasierten Viewwechsel                                 #
      // #                                                                           #
      // #############################################################################
      
      function switchView(view){
          setState('vis.0.control.instance', 'FFFFFFFF');
          setState('vis.0.control.data', view);
          setState('vis.0.control.command', 'changeView');
      }
      
      // #############################################################################
      // #                                                                           #
      // #  Funktion zum Prüfen der Wunsch View und zum auslesen der Darstellzeit    #
      // #                                                                           #
      // #############################################################################
      
      function checkView(wishView){
          if(logging) log('View to check:'+wishView);
          if(getState(pfad0 + 'Auto_Switch_View').val === false ){
              for(var i = 0; i < Object.keys(VisViews).length; i++) {  
                  if(project+VisViews[i].view == wishView) {
                      if(logging) log('View found in:' + i);
                      if(timerTout) clearTimeout(timerTout);
                      setState(pfad0 + 'Timer_View_Switch', 0);
                      if(VisViews[i].SWSec !== 0){
                          setState(pfad0 + 'Timer_View_Switch', VisViews[i].SWSec);
                          switchToHomeView();
                      }
                  }
              }
          }
      }
      // #############################################################################
      // #                                                                           #
      // #  Zusatzfunktion um ZusatzDatenpunke zu steuern                            #
      // #                                                                           #
      // #############################################################################
      function additionalActions(dp){
          if(dp == "Wandtablet/System"){
              setState(pfad0 + "Letzte_System_Meldungen_prio", '');
          }
          if(dp == "Wandtablet/Kamera_Bilder_Haustuere"){
              setState(pfad0 + "Tuerklingel_in_Abwesenheit", false);
          }
      }
      // #############################################################################
      // #                                                                           #
      // #  ScreenSaver Funktion zum Durchschalten der Views als Bildschirmschoner   #
      // #                                                                           #
      // #############################################################################
      function screenSaver(){
          svTimer = setTimeout(function() {
              if(getState(pfad0 + 'ScreenSaverAcitve').val === true){
                  if((new Date().getTime() - getState('vis.0.control.data').lc)/60000 > screenSv_time){
                      setState(pfad0 + 'Auto_Switch_View', true);
                  }
                  else{
                      setState(pfad0 + 'Auto_Switch_View', false);
                  }  
                  screenSaver();  
              }
          }, 60000);
          
      }
      
      // Beobachten des Datenpunktes Screensaver um die Autoview einzuschalten
      on({id:'javascript.0.System.Iobroker.ScreenSaverAcitve'/*Bildschirmschoner*/, change: "ne"}, function (dp) {
          if(dp.state.val === true){
              screenSaver();
              if(logging) log('Screensaver On');
          }
          else{
              if(svTimer) clearTimeout(svTimer);
              setState(pfad0 + 'Auto_Switch_View', false);
              switchView(project + DefaultView);
          } 
      });
      
      
      // Beobachten des View Datenpunktes für Auswertung
      on({id:"vis.0.control.data", change: "ne"}, function (dp) {
          checkView(dp.state.val);
              // Zusatzfunktion um den Datenpunkt zurück zu setzten
          additionalActions(dp.state.val);
      });
      
      
      
      //Bei aktiver Alarmanlage auf Pin-View umschalten
      on({id: "javascript.0.Alarmanlage.Status.Status"/*Status für Scharfmeldung*/, change: 'any'}, function (dp) {
          if(dp.state.val == 2 || dp.state.val == '2'){
              switchView('Alarmanlage_code');
          }
          else{
              switchView(DefaultView);
          }
      });
      
      //Bei Bewegung auf Kamerabild umschalten
      on({id:"hm-rpc.0.XXXXXXXXXX.1.MOTION"/*Bewegungsmelder.Aussen.Haustuere.XXXXXXXXX:1.MOTION*/, change: 'any'}, function (dp) {
          if(dp.state.val === true ){
               if(getState("javascript.0.Alarmanlage.Status.Status").val != 2 || getState("javascript.0.Alarmanlage.Status.Status").val != '2'){
                 switchView('Kamera_Garage');
               }
               else{
                  switchView('Alarmanlage_code');
               }
          }
      });
      
      
      

      Edit - 28.03.2019 parsInt wegen warning im Log eingepflegt
      Edit - 14.09.2019 Screensaver Funktion eingebaut (Wunsch von Web4wash)

      Gruß
      Steffen

      posted in JavaScript
      Peoples
      Peoples
    • RE: iobroker ist mega- die Visualisierung ein Supergau

      Ich finde IoBroker genial mit allen Features und allen Problemchen.

      Ich habe auch weit mehr als 200 Stunden in meine Visualisierung gesteckt, bei mir wars so ich hatte im Homematic Forum mal einen Entwurf gesehen der mir gefallen hat, hab mir das dann "nachgebaut" und an meine Gegebenheiten und Wünsche angepasst. Was dann aber auch einschließt dass man die ganzen Buttons alle extra gestalten muss und das dautert eben.
      Hier ein paar Auszüge vom Ergebnis:
      Home.JPG
      Batterie.JPG
      Heizung EG.JPG
      Heizungsanlage.JPG
      System.JPG

      Ich kann nur sagen dass es sich lohnt den die Möglichkeiten sind nahezu unbegrenzt!

      posted in Visualisierung
      Peoples
      Peoples
    • RE: Türgong, Türklingelton mit Alexa abspielen

      @jonny-007
      Klar:

      • Du gehst auf Routinen
      • Oben rechts auf Plus
      • Routinenname (Türklingel)
      • Wenn Folgendes passiert
      • Stimme
      • Alexa, Türklingel -> Weiter
      • Aktion hinzufügen
      • Geräteeinstellungen - Lautstärke (ich mach das lauter für den Klingelton)
      • Aktion hinzufügen
      • Töne - Glocken und Summer - Türklingel 2
      • Aktion hinzufügen
      • Geräteeinstellungen - Lautstärke (ich mach das nach dem Klingelton wieder leiser)
      • Gerät auswählen auf welchem das dann passieren soll

      Dann kommt oben die Meldung dass es funktioniert hat und du 5 Minuten warten musst.

      Anschließend findest du unter alexa2.0 / Echo-Devices / Dem Device deiner Wahl / Routines die entspechende Routine, und wenn du die hinten auf true setzt bspw. via Script passiert genau das was du in der App eingestellt hast

      posted in Blockly
      Peoples
      Peoples
    • RE: Fertiges Image mit proxmox?

      Um mich hier auch mal ein zu mischen, gerade im Bereich SmartHome sollte doch eine USV nicht weniger wichtig sein wie die Zentrale selbst. Ich würde sogar soweit gehen zu sagen dass eine USV mittlerweile doch schon zur Grundausstattung gehört bzw. gehören sollte. Gerade wenn man noch bspw. eine Nas oder Ähnliches in Betrieb hat.

      posted in Anregungen - Wünsche - Verbesserungsvorschläge
      Peoples
      Peoples
    • RE: SMA Wechselrichter

      @lobomau
      Nein das ist tatsächlich aus dem IoB.

      Im Zip ist alles was du dafür brauchst. Ausgehend von meiner Hardware Zusammenstellung. Ich habe den SunnyHomemanager und einen SMA - Wechselrichter, verwende den sma-em und Modbus-Adapter.

      Im Zip findest du:

      • Die Bilder
      • Das Javascript zum berechnen der Werte
      • einen View-Export
      • die Css-klassen

      Wichtig du darfst die Objekte in der View nicht verschieben, sondern musst die ganze View dort wo du sie anzeigen willst als Teilbereich via Iframe einbinden. Die Bilderpfade musst du noch anpassen und ggf. das Script.

      Schau mal ob du klar kommst wenn nicht einfach Bescheid geben.

      pv_iob.zip

      posted in ioBroker Allgemein
      Peoples
      Peoples
    • RE: Stromerzeuger - Notstromaggregat am Hausnetz

      Ich möchte mich hier als "Gelernter" auch mal kurz und knapp zu Wort melden.
      Laien haben nichts an der Hausverteilung "rum zu basteln". Das sind dann die jenigen die später klagen weil Sicherheitseinrichtungen nicht mehr funktionieren und Geräte oder gar Personen zu Schaden kommen.

      Gerade wenn ich hier was von Netztrennung und Phasenbrücken lese sind das keine Pillepalle Arbeiten.

      Ich will nur sagen die Wahrscheinlichkeit dass man sich als Unwissender bei solchen Basteleien verletzt ist viel wahrscheinlicher als dass der Strom so lange ausfällt dass es ein Aggregat in der Hausverteilung braucht 🙂

      Passt auf euch auf!

      posted in Off Topic
      Peoples
      Peoples
    • [Vorlage] Automatisches Licht

      Hi Leute,

      hier ein weiterer Script-Schnippsel.
      Der Raumlichter bei Bewegungserkennung für eine gewünschte Zeit einschaltet.
      Wenn während der "Einschaltzeit" wieder Bewegung erkannt wird, beginnt die Einschaltzeit von vorne.

      Lichter die über einen Schalter vor Bewegungserkennung eingeschaltet wurden, werden nicht erfasst und somit auch nicht automatisch ausgeschalten.

      Um das Script zu nutzen müssen die Bewegungsmelder sowie die Lichter die Ihr verwenden möchtet jeweils einer enum.function zugewiesen sein. Alternativ könnt ihr auch jeden Datenpunkt der ausgewertet werden soll einzeln beobachten.

      Wie immer wenn Fragen sind einfach schreiben

      // *******************************************************************************************************
      //
      // Automatiklicht-Script
      // Autor: Peoples
      //
      //
      // Funktionen:  1. Das Licht wird bei Bewegungserkennung eingeschalten
      //                 Zuweisung Bewegungsmelder -> Licht -> Helligkeitssensor in Konfig möglich
      //              2. Einschaltzeit jedes Lichts konfigurierbar
      //
      // V1.0.0       Initiale Version
      // *******************************************************************************************************
      
      // -----------------------------------------------------------------------------
      // allgemeine Variablen
      // -----------------------------------------------------------------------------
      var timer = [];                         //Array für die verschiedenen Timer
      var automaticLightsArray = [];          //Array zum auswerten ob das Licht automatisch oder manuel eingeschalten wurde
      var logging = true;                     //Logging Ein/Aus
      
      var lightingLimit = 60;                 //Beleuchtungswert in Lux ab wann das Licht eingeschalten wird
      
      var autolightList = [                   // Automatic-Licht Geräteliste
          
                  /*Auslösender Bewegungsmelder*/                         /*Verwendeter Licht Sensor*/                                /*Zu schaltendes Licht*/                /*An Zeit*/
          /*Treppenhaus DG*/
          {'mdetID':'zigbee.0.XXXXXXXXX.occupancy',       'luxdetID':'hm-rpc.1.XXXXXXXXX.1.CURRENT_ILLUMINATION',             'lightID':'hm-rpc.0.XXXXXXXXX.1.STATE',         'time':5},
          /*Treppenhaus EG*/
          {'mdetID':'zigbee.0.XXXXXXXXX.occupancy',       'luxdetID':'hm-rpc.1.XXXXXXXXX.1.CURRENT_ILLUMINATION',             'lightID':'hm-rpc.0.XXXXXXXXX.1.STATE',         'time':5},
          /*Treppenhaus KG*/
          {'mdetID':'hm-rpc.0.XXXXXXXXX.3.MOTION',        'luxdetID':'hm-rpc.0.XXXXXXXXX.3.BRIGHTNESS',                       'lightID':'hm-rpc.0.XXXXXXXXX.1.STATE',         'time':5},
          /*Keller Gang*/
          {'mdetID':'zigbee.0.XXXXXXXXX.occupancy',       'luxdetID':'hm-rpc.0.XXXXXXXXX.3.BRIGHTNESS',                       'lightID':'hm-rpc.0.XXXXXXXXX.1.STATE',         'time':5}
      ];
      
      // #############################################################################
      // #                                                                           #
      // #  Funktion zum automatischen Einschalten des Lichts                        #
      // #                                                                           #
      // #############################################################################
      function autoLight(gID){
          for(var i = 0; i < Object.keys(autolightList).length; i++) {  
              if(autolightList[i].mdetID == gID) {
                 if(logging) log('Geräteindex wurde an Stelle:' + i + ' gefunden');
                 
                 var searchIndex = automaticLightsArray.indexOf(autolightList[i].lightID);
                 
                 if(searchIndex == '-1' && getState(autolightList[i].lightID).val === false && getState(autolightList[i].luxdetID).val < lightingLimit) {
                      automaticLightsArray.push(autolightList[i].lightID);
                      setState(autolightList[i].lightID, true);
                 }
                 checkAutoOff(i);
              }
          }
      }
      
      
      // #############################################################################
      // #                                                                           #
      // #  Funktion zum Prüfen und automatischen Auschalten des Lichts              #
      // #                                                                           #
      // #############################################################################
      function checkAutoOff(i){
          var sI = automaticLightsArray.indexOf(autolightList[i].lightID);
          if(sI != '-1'){
             if(logging) log('Geräteindex '+sI+' wurde in Auto Off Liste gefunen');
             var value=i;
             if(timer[i]) clearTimeout(timer[i]);
             timer[i] = setTimeout(function () {
                      log(autolightList[value].lightID);
                        setState(autolightList[value].lightID, false);
                        automaticLightsArray.splice(sI, 1);
             }, (autolightList[value].time * 60000));
         }
      }
      
      // #############################################################################
      // #                                                                           #
      // #  Funktion zur Licht-Array bereinigung                                     #
      // #                                                                           #
      // #############################################################################
      function checkArray(gID){
          for(var i = 0; i < Object.keys(autolightList).length; i++) {  
              if(autolightList[i].lightID == gID) {
                 if(logging) log('Geräteindex '+gID+' wurde in Auto Off Array gefunen und gelöscht');
                 var si = automaticLightsArray.indexOf(autolightList[i].lightID);
                 if(si != '-1' && getState(autolightList[i].lightID).val === false) {
                      automaticLightsArray.splice(si, 1);
                 }
              }
          }
      }
      
      
      // Beobachten der enum.functions "Bewegungsmelder"
      $('state(functions=Bewegungsmelder)').on(function(dp) {
          if(dp.state.val === true) {
              autoLight(dp.id);
              if(logging)log('Auslösender Sensor: ' + dp.id + ': ' + dp.state.val);
          }
      });
      
      
      // Beobachten der enum.functions "Beleuchtung"
      $('state(functions=Beleuchtung)').on(function(dp) {
          if(dp.state.val === false) {
              checkArray(dp.id);
          }
      });
      

      Gruß
      Steffen

      posted in JavaScript
      Peoples
      Peoples
    • RE: FritzFon klingeln lassen, TR-64 Adapter??

      Hi,

      da ich mich heute ebenfalls mit diesem Thema beschäftigt habe und es nach gefühlten 100 Stunden auch hinbekommen habe, möchte ich euch schildern wie ich das mit dem "Telefon klingeln Lassen" gemacht habe.

      Ich nutze zwar kein Blocky sondern Script aber glaube auch nicht dass da der Fehler liegt.

      Ich besitze eine Fritzbox 7490 mit FW.06.83 und bei mir hat es erst funktioniert als ich unter Telefonie -> Anrufe -> die Wählhilfe eingerichtet habe.

      Festgestellt habe ich hier auch dass man nicht das Gerät eintragen darf welches man später klingeln lassen möchte, denn wenn die Geräte identisch sind hat es (zumindest bei mir) nicht funktioniert.

      Ich nutze zudem die Möglichkeit mir das Videobild meiner Ip-Kamera an der Türe anzeigen zu lassen.

      Dazu habe ich unter Telefoniegeräte ein neues Gerät des Typs "Türsprechanlage a/b" angelegt, als Anschluss die von mir nicht belegte "Fon2" Buchse gewählt und bei der Wählhilfe die Türsprechanlage ausgewählt. Abschließend in den Einstellungen der Türsprechanlage noch die IP-Kamera-Adresse eingetragen, fertig.

      Wenn jetzt einer klingelt, steht auf dem Display Türsprechanlage und das Bild der Kamera wird angezeigt.

      So setze ich den Status in "ring":

      ...
      setState("tr-064.0.states.ring"/*ring*/, '**612 ,25');
      ...
      

      So klingelt die Interne Nummer **612 für 25 Sekunden

      Hoffe es bringt den Einen oder Anderen weiter

      Gruß

      Steffen

      posted in ioBroker Allgemein
      Peoples
      Peoples
    • RE: Alternative motioneye

      Ich bin schon vor einem halben Jahr nach ewiger Nutzung von MotioneyeOs weg weil mich der Zeitversatz der Bilder meiner Reolink Kameras genervt hat. Ich habe zig Einstellungen probiert manche machten es besser manche machten es schlechter.
      Letztendlich bin ich jetzt auf Zoneminder umgestiegen und bin absolut zufrieden. Aktuell laufen 8 Kameras problemfrei. Manche nehmen auf manche nur als Monitor. Die Integration in VIS war auch kein Problem.

      posted in Off Topic
      Peoples
      Peoples
    • RE: Adapter: iobroker.backitup (stable Release)

      @MesserMike
      Ich habe das Ursprungsscript und die ersten Versionen mit entwickelt. Die Erklärung warum das Komplette "eingestampft" wurde ist ganz einfach.

      Viel zu viele Leute haben es aus Unwissenheit / Faulheit / Missverständnis falsch eingesetzt. Was zu immer wieder den gleichen Problemen führte.

      • Nicht mehr funktionierende Systeme
      • Gleiche Fehler trotz Neuinstallation
      • Stundenlanges Fehlersuchen / Debug-Logs lesen obwohl es keinen Fehler gab und das nur auf Grund des falschen Verwendes nicht funktioniert hat.

      Wahrscheinlich war damals auch die Namenswahl Komplett und Minimal ein wenig unglücklich und ein Orderbackup bzw. Systembackup hätten viel Verwirrung vermieden.

      Mir persönlich ging das ständige wiederholen der gleichen Lösungen und der "Undank" den einige an den Tag legten so auf den Geist dass ich mich aus dem Projekt zurück gezogen habe denn so ein Adapter ist ja nicht "mal schnell" geschrieben.

      Simatec hat da Gott sei Dank ein dickeres Fell und macht fleißig weiter.

      Ich nutze das Komplette seit ewigen Zeiten nicht mehr und habe aktuell 3 Systeme laufen, die alle über ein "Minimal" erstellt wurden.

      posted in ioBroker Allgemein
      Peoples
      Peoples

    Latest posts made by Peoples

    • RE: IOB Mobile App für Android und iOS

      @da_woody
      Er war ja bisher recht verlässlich, kamen immer wieder neue Features und Bugs wurden behoben.
      Zur Not kündige ich das Abo halt, wäre schade weil die App echt klasse ist, aber dann ist es so.

      posted in Praktische Anwendungen (Showcase)
      Peoples
      Peoples
    • RE: IOB Mobile App für Android und iOS

      @pthaler
      Bei mir das gleiche wie bei den Vor-Schreibern, App bleibt schwarz, nach deinstallieren / installieren kein Login (Pro-Abo jedoch aktiv) mehr möglich.

      posted in Praktische Anwendungen (Showcase)
      Peoples
      Peoples
    • RE: [gelöst] /dev/sda1: clean / Synology / Debian12

      Es scheint als hätte ich das Problem gefunden.

      Anscheinend lag es an der Virtuellen Grafikkarte die Synology als default für Linux vorgibt.
      Debian ab Version 12.9 scheint da Probleme zu haben. Da auch eine neue Installation von Debian 12.10 den Fehler ausspuckte habe ich von "vmvga" auf "vga" umgestellt und dann läuft das neu installierte Linux ohne clean.

      Gleiches bei meiner Bestands-Installation

      Danke euch trotzdem für eure Mühen

      posted in Off Topic
      Peoples
      Peoples
    • RE: [gelöst] /dev/sda1: clean / Synology / Debian12

      @thomas-braun sagte in Frage an Linux Profis /dev/sda1::

      @peoples

      Was ist denn genau dein Problem? Läuft der Check nicht durch? Mit welchen Meldungen?
      Grundsätzlich würde ich so einem angezählten Filesystem auch nicht mehr über den Weg trauen. Hardwaretauschen, Backup einspielen.

      Das "Problem" ist nur dass der Check nicht wirklich weiter läuft.
      Sonst funktioniert alles bestens.

      Ich hatte hatte vor ca. 8 Wochen einen Festplattendefekt, da die aber im Raid laufen war das nicht weiter schlimm. Habe dann die defekte ausgetauscht und anscheinend ist seit dem der Fehler vorhanden.

      Äußern tut sich das so nirgends. Zumindest ist es mir noch nicht aufgefallen.

      posted in Off Topic
      Peoples
      Peoples
    • RE: [gelöst] /dev/sda1: clean / Synology / Debian12

      @thomas-braun
      UUID=4fb3f17c-1096-438e-b7d8-5c4b26b0b8fb / ext4 errors=remount-ro 0 0
      die letzte Null

      Das mit dem eigenmächtig übergehen würde erklären warum der Check dennoch läuft.
      Ich werde jetzt mal eine Woche warten um zu sehen ob sich da was getan hat. Im dümmsten Fall muss ich IOB halt neu aufsetzen

      posted in Off Topic
      Peoples
      Peoples
    • RE: [gelöst] /dev/sda1: clean / Synology / Debian12

      @thomas-braun
      Das habe ich gesehen, aber wenn ich dort den Check durch setzen der 0 eintragen, hat das beim Neustart keinen Effekt

      posted in Off Topic
      Peoples
      Peoples
    • RE: [gelöst] /dev/sda1: clean / Synology / Debian12

      @thomas-braun @OliverIO

      ich habe jetzt noch ein wenig recherchiert (wie gesagt habe wenig Ahnung).
      Wie ich es verstanden habe steht unter etc/fstab ob fsck beim jeweiligen Laufwerk durchgeführt wird oder nicht und man könnte dort die Prüfung auch für das jeweilige Laufwerk deaktivieren. Das betroffene Laufwerk ist dort aber gar nicht gelistet.

      
      # /etc/fstab: static file system information.
      #
      # Use 'blkid' to print the universally unique identifier for a
      # device; this may be used with UUID= as a more robust way to name devices
      # that works even if disks are added and removed. See fstab(5).
      #
      # systemd generates mount units based on this file, see systemd.mount(5).
      # Please run 'systemctl daemon-reload' after making changes here.
      #
      # <file system> <mount point>   <type>  <options>       <dump>  <pass>
      # / was on /dev/sda1 during installation
      UUID=4fb3f17c-1096-438e-b7d8-5c4b26b0b8fb /               ext4    errors=remount-ro 0       0
      # swap was on /dev/sda5 during installation
      UUID=4136a5c3-5031-4273-8787-a0b090e7abe0 none            swap    sw              0       0
      /dev/sr0        /media/cdrom0   udf,iso9660 user,noauto     0       0
      /dev/sr1        /media/cdrom1   udf,iso9660 user,noauto     0       0
      
      

      wenn ich lsblk -f ausführe kommt

      sda
      ├─sda1 ext4   1.0         4fb3f17c-1096-438e-b7d8-5c4b26b0b8fb  118,5G    14% /
      ├─sda2
      └─sda5 swap   1           4136a5c3-5031-4273-8787-a0b090e7abe0                [SWAP]
      sr0
      sr1
      
      

      Da ich nur aus Zufall über den VMM meine Synology auf die Virtuelle Maschine zugegriffen habe, kann ich auch nicht sagen wie lange die Meldung schon da ist und ob die vor dem damaligen Festplattendefekt bzw. den letzten Updates da war.

      Ist dann hier im Mount was falsch, weil wie gesagt die fsck - Prüfmeldung verändert sich nicht.

      posted in Off Topic
      Peoples
      Peoples
    • RE: [gelöst] /dev/sda1: clean / Synology / Debian12

      @oliverio
      Ich danke dir!

      posted in Off Topic
      Peoples
      Peoples
    • [gelöst] /dev/sda1: clean / Synology / Debian12

      HI,

      ich habe heute meinen IOB zerschossen, deswegen musst ich einen Snapshot meiner Virtuellen Maschine (Synology) zurückspielen. Iob läuft wieder bestens, Zugriff über Putty bekomme ich auch wie gewohnt, aber wenn ich mich über die Oberfläche des Virtual-Machine-Managers verbinde steht da folgende Meldung:
      /dev/sda1: clean, 258035/9773056 files, 6099519/39071232 blocks.

      Ich verstehe das so, dass da irgendwas "gereinigt" wird, vermutlich auf Grund der Wiederherstellung..

      Die Frage die ich habe ist nun, soll ich einfach warten bis das irgendwann durchgelaufen ist, denn ein sauberer reboot hat nichts gebracht oder kann ich das irgendwie abbrechen bzw. unterbinden sofern das überhaupt Sinn macht?

      Über Hilfe wäre ich Dankbar

      posted in Off Topic
      Peoples
      Peoples
    • Spotify premium Adapter läuft nicht mehr

      Hallo zusammen,

      ich versuche schon seit einiger Zeit meinen Spotify Adapter in Verbindung mit meinen Sonos wieder zum Leben zu erwecken jedoch ohne Erfolg. Ich verbinde mich mit meinem Hauptkonto, dann geht der Adapter sofort auf wieder auf "authorized - False" mach ich es mit einem meiner "Kinder / Unterkonten" ging es bis gestern, und seit dem meldet er sich auch ab.

      Als Fehler wird mir ein:

      spotify-premium.0
      2025-03-21 17:30:08.894	warn	400
      
      spotify-premium.0
      2025-03-21 17:30:08.893	error	error on request data again. 400
      

      ausgegeben. Die eingegebenen Daten sind richtig, die App im Spotify Dashboard auch. Die Auth.URL ist richtig eingetragen...
      Die Frage die ich mir stelle ist, ob der Adapter überhaupt richtig läuft oder da vielleicht generell ein Problem vorliegt. Benutzt wird die 1.5.2 und mein System ist aktuell.

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