Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Günter Königsberger

    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 0
    • Topics 1
    • Posts 7
    • Best 1
    • Groups 1

    Günter Königsberger

    @Günter Königsberger

    Starter

    0
    Reputation
    18
    Profile views
    7
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    Günter Königsberger Follow
    Starter

    Best posts made by Günter Königsberger

    • RE: Script: Alexa Listen pflegen und Anzeigen

      @liv-in-sky
      Hi Super Projekt das hat mich auf die Idee gebracht habe es einwenig anders gemacht als du.
      vielleicht kann ja wer teile aus meinem Script brauchen.
      Alexa_listen.gif

      var forceCreation   = false; //Solange diese Varialble auf "true" steht, werden die Datenpunkte zwangsweise erstellt, also auch wenn sie schon existieren.
      var pfad = 'Eigene_Datenpunkte.Aexa_List_Neu.'; //Ordner für daten punkte
      var datenpunkte = {
      
      
      
         'ToDo_List':        {"init": "", "common": {type: 'string',  name: 'ToDo List',     role: "text"}},
         'Shopping_List':        {"init": "", "common": {type: 'string',  name: 'Einkaufsliste',     role: "text"}},
      
       
         };
      
      
      
      // -----------------------------------------------------------------------------------------------------------------------------------------
      
      // Erzeuge Datenpunkte
      
      // -----------------------------------------------------------------------------------------------------------------------------------------
      
      function createDp() 
      
      {
      
      	var name;
      
      	var init;
      
      	var common;
      
       
      
      	for (var dp in datenpunkte) 
      
      	{
      
      		name = pfad + dp;
              
      		init = datenpunkte[dp].init;
      
      		common = datenpunkte[dp].common;
      
      		createState(name, init , forceCreation, common);
      
      	}
      
      }
      
       
      
      // -----------------------------------------------
      
      
      // Initialisierung
      
      // -----------------------------------------------
      
      createDp();
      
      // -----------------------------------------------
      
      
      // Eigene functionen
      
      // -----------------------------------------------
      
      function convertJSON2HTML(json,db) {
          const tmpList = {
          row : 
          `<div class="mdui-listitem" style="width:100%; display:flex;">
            <div class="mdui-title mdui-center" style="flex:0 0 10%;">
              <i style="font-size:1.5em;">{counter}</i>
            </div>
              <div style="flex:0 0 15%; display:flex; flex-wrap:wrap; justify-content:center; align-items:center; ">
              <div class="mdui-button mdui-color1 mdui-center" style="height: 45px; width: 45px;">
                <button onclick="vis.setValue('alexa2.0.Lists.{db}.items.{id}.completed', {completed});"><i class="material-icons" style="font-size:3em;">{icon}</i></button> 
              </div>
            </div>   
            <div style="flex:1 1 auto; display:flex; flex-wrap:wrap;">
              <div class="mdui-label" style=" flex:1 1 15em; display:flex; flex-wrap:wrap; align-content:flex-start; padding-right:0.5em;">
                <div class="mdui-value" style="font-size:1.5em; flex:1 0 15em;">{start}{value}{stop}</div>
                <div class="mdui-center-v" style="font-size:0.8em; flex:1 0 15em; ">Erstellt: <span class="mdui-value">{createdDateTime}</span> </div>
                <div class="mdui-center-v" style="font-size:0.8em; flex:1 0 15em; ">Geändert: <span class="mdui-value">{updatedDateTime}</span> </div>
              </div> 
            </div> 
            <div style="flex:0 0 15%; display:flex; flex-wrap:wrap; justify-content:center; align-items:center; ">
              <div class="mdui-button-outlined mdui-red mdui-red-ol mdui-center" style="height: 45px; width: 45px;">
                <button onclick="vis.setValue('alexa2.0.Lists.{db}.items.{id}.#delete', true);"><i class="material-icons" style="font-size:2em;">delete_forever</i></button> 
              </div>
            </div> 
          </div>`}
              let htmlList ="";
              let entry, tr ; 
              json = json.replace('[','');
              json = json.replace(']','');
              json = json.replace(/},{/g,'};{');
              if (json.length == 0){setState('javascript.0.'+pfad+Object.keys(datenpunkte)[db], "");return;};
              json = json.split(";");
              for (var i = 0; i < json.length; i++) { 
                              try {entry = JSON.parse(json[i]);
                   } catch (e) {
                 console.error('Cannot parse: ' + json);
                 return
                   }
                  
                  switch (entry.shoppingListItem) {
                      case false  : entry.db = 'TO_DO';  break;
                      default     : entry.db = 'SHOPPING_LIST';  break;
                  }
                  switch (entry.completed) {
                      case false  : entry.icon = 'check_box_outline_blank';entry.start = '';entry.stop = ''; entry.completed = true;  break;
                      default     : entry.icon = 'check_box';entry.start = '<s>';entry.stop = '</s>'; entry.completed = false;  break;
                      
                  }
                  entry.counter = i ;
                  entry.createdDateTime = formatDate(entry.createdDateTime, "TT.MM.YYYY SS:mm:ss");
                  entry.updatedDateTime = formatDate(entry.updatedDateTime, "TT.MM.YYYY SS:mm:ss"); 
                  tr = tmpList.row;    
                  for (let [key, value] of Object.entries(entry)) tr = tr.replace(new RegExp('{'+key+'}','g'),value);
                  htmlList+=tr;
              }
             
          
      	setState('javascript.0.'+pfad+Object.keys(datenpunkte)[db], htmlList);
      		
          }
      // -----------------------------------------------
      
      
      // Überwachende Datenpunkte
      
      // -----------------------------------------------
      
      
      on({id: 'alexa2.0.Lists.TO_DO.json'/*List as json*/, change: 'ne'}, function (obj) {
          convertJSON2HTML(obj.state.val,0);    
      }); 
      
      on({id: 'alexa2.0.Lists.SHOPPING_LIST.json'/*List as json*/, change: 'ne'}, function (obj) {
          convertJSON2HTML(obj.state.val,1);    
      });
      
      posted in JavaScript
      Günter Königsberger
      Günter Königsberger

    Latest posts made by Günter Königsberger

    • RE: Somfy RTS ohne Cloud: Gateway

      @segway
      Ich benutze das Connectivity Kit mit den Tahoma Adapter und IO Rolladen. (Mann muss die Zeit zwischen fehlgeschlagen Anmeldeversuchen höher stellen ansonsten sperrt Somfy deine IP Adresse)

      Screenshot_2023-04-01-10-10-42-734_com.android.chrome-edit.jpg

      Funktioniert bei mir in iobroker aber nur über die Cloud habe mir deswegen die tahoma Box bestellt hätte demnächst wenn alles funktioniert das Connectivity Kit abzugeben wenn es jemand braucht.

      Screenshot_2023-04-01-10-08-50-908_com.android.chrome-edit.jpg

      posted in Hardware
      Günter Königsberger
      Günter Königsberger
    • MQTT Broker/Client 2.4.0 kommunikation mit openHASP

      If the payload is a json object containing a val property, iobroker uses the val property only as value of that object...

      This seems to be an issue of the iobroker.mqtt server: This piece of code handles the incoming messages. They parse the payload using a Fast solution, resulting in false positives. It is even mentioned in that code what the right solution is...

      Changing iobroker.mqtt\lib\server.js line 541 to ignore events fixes the issue:

                  // Fast solution
                  if (_message.val !== undefined && _message.event === undefined) {
      
      Systemdata Bitte Ausfüllen
      Hardwaresystem: Raspberry 4
      Arbeitsspeicher: 4GB
      Festplattenart: SD-Karte
      Betriebssystem: linux
      Node-Version: 10.x.x
      Nodejs-Version: 12.20.1
      NPM-Version: 6.14.10
      Installationsart: Skript
      Image genutzt: Ja
      Ort/Name der Imagedatei: Link
      posted in Error/Bug
      Günter Königsberger
      Günter Königsberger
    • RE: Staubsaugersteuerung - sequentielles script möglich?

      @paul53
      habe es gerade gesehen hast recht ist besser

      posted in Skripten / Logik
      Günter Königsberger
      Günter Königsberger
    • RE: Staubsaugersteuerung - sequentielles script möglich?

      @paul53 said in Staubsaugersteuerung - sequentielles script möglich?:

      @FrankDCE sagte:

      "ausleeren" direkt NACH Ende des saugens am Freitag ausführt?
      er hat die Stati cleaning (5) ...

      Vorschlag:

      on({id: 'mihome-vacuum.0.info.state'/*Vacuum state*/, change: 'ne', oldVal: 5}, function (dp) {
         if(new Date().getDay() == 5) setState('mihome-vacuum.0.control.goTo'/*Go to point*/,"24000,25000");
      });
      

      ja aber würde er da nicht den reinigungsvorgang abbrechen und zum punkt fahren?
      im schritt 6 ist er erst wenn er fertig ist.

      posted in Skripten / Logik
      Günter Königsberger
      Günter Königsberger
    • RE: Script: Alexa Listen pflegen und Anzeigen

      @liv-in-sky
      Hi Super Projekt das hat mich auf die Idee gebracht habe es einwenig anders gemacht als du.
      vielleicht kann ja wer teile aus meinem Script brauchen.
      Alexa_listen.gif

      var forceCreation   = false; //Solange diese Varialble auf "true" steht, werden die Datenpunkte zwangsweise erstellt, also auch wenn sie schon existieren.
      var pfad = 'Eigene_Datenpunkte.Aexa_List_Neu.'; //Ordner für daten punkte
      var datenpunkte = {
      
      
      
         'ToDo_List':        {"init": "", "common": {type: 'string',  name: 'ToDo List',     role: "text"}},
         'Shopping_List':        {"init": "", "common": {type: 'string',  name: 'Einkaufsliste',     role: "text"}},
      
       
         };
      
      
      
      // -----------------------------------------------------------------------------------------------------------------------------------------
      
      // Erzeuge Datenpunkte
      
      // -----------------------------------------------------------------------------------------------------------------------------------------
      
      function createDp() 
      
      {
      
      	var name;
      
      	var init;
      
      	var common;
      
       
      
      	for (var dp in datenpunkte) 
      
      	{
      
      		name = pfad + dp;
              
      		init = datenpunkte[dp].init;
      
      		common = datenpunkte[dp].common;
      
      		createState(name, init , forceCreation, common);
      
      	}
      
      }
      
       
      
      // -----------------------------------------------
      
      
      // Initialisierung
      
      // -----------------------------------------------
      
      createDp();
      
      // -----------------------------------------------
      
      
      // Eigene functionen
      
      // -----------------------------------------------
      
      function convertJSON2HTML(json,db) {
          const tmpList = {
          row : 
          `<div class="mdui-listitem" style="width:100%; display:flex;">
            <div class="mdui-title mdui-center" style="flex:0 0 10%;">
              <i style="font-size:1.5em;">{counter}</i>
            </div>
              <div style="flex:0 0 15%; display:flex; flex-wrap:wrap; justify-content:center; align-items:center; ">
              <div class="mdui-button mdui-color1 mdui-center" style="height: 45px; width: 45px;">
                <button onclick="vis.setValue('alexa2.0.Lists.{db}.items.{id}.completed', {completed});"><i class="material-icons" style="font-size:3em;">{icon}</i></button> 
              </div>
            </div>   
            <div style="flex:1 1 auto; display:flex; flex-wrap:wrap;">
              <div class="mdui-label" style=" flex:1 1 15em; display:flex; flex-wrap:wrap; align-content:flex-start; padding-right:0.5em;">
                <div class="mdui-value" style="font-size:1.5em; flex:1 0 15em;">{start}{value}{stop}</div>
                <div class="mdui-center-v" style="font-size:0.8em; flex:1 0 15em; ">Erstellt: <span class="mdui-value">{createdDateTime}</span> </div>
                <div class="mdui-center-v" style="font-size:0.8em; flex:1 0 15em; ">Geändert: <span class="mdui-value">{updatedDateTime}</span> </div>
              </div> 
            </div> 
            <div style="flex:0 0 15%; display:flex; flex-wrap:wrap; justify-content:center; align-items:center; ">
              <div class="mdui-button-outlined mdui-red mdui-red-ol mdui-center" style="height: 45px; width: 45px;">
                <button onclick="vis.setValue('alexa2.0.Lists.{db}.items.{id}.#delete', true);"><i class="material-icons" style="font-size:2em;">delete_forever</i></button> 
              </div>
            </div> 
          </div>`}
              let htmlList ="";
              let entry, tr ; 
              json = json.replace('[','');
              json = json.replace(']','');
              json = json.replace(/},{/g,'};{');
              if (json.length == 0){setState('javascript.0.'+pfad+Object.keys(datenpunkte)[db], "");return;};
              json = json.split(";");
              for (var i = 0; i < json.length; i++) { 
                              try {entry = JSON.parse(json[i]);
                   } catch (e) {
                 console.error('Cannot parse: ' + json);
                 return
                   }
                  
                  switch (entry.shoppingListItem) {
                      case false  : entry.db = 'TO_DO';  break;
                      default     : entry.db = 'SHOPPING_LIST';  break;
                  }
                  switch (entry.completed) {
                      case false  : entry.icon = 'check_box_outline_blank';entry.start = '';entry.stop = ''; entry.completed = true;  break;
                      default     : entry.icon = 'check_box';entry.start = '<s>';entry.stop = '</s>'; entry.completed = false;  break;
                      
                  }
                  entry.counter = i ;
                  entry.createdDateTime = formatDate(entry.createdDateTime, "TT.MM.YYYY SS:mm:ss");
                  entry.updatedDateTime = formatDate(entry.updatedDateTime, "TT.MM.YYYY SS:mm:ss"); 
                  tr = tmpList.row;    
                  for (let [key, value] of Object.entries(entry)) tr = tr.replace(new RegExp('{'+key+'}','g'),value);
                  htmlList+=tr;
              }
             
          
      	setState('javascript.0.'+pfad+Object.keys(datenpunkte)[db], htmlList);
      		
          }
      // -----------------------------------------------
      
      
      // Überwachende Datenpunkte
      
      // -----------------------------------------------
      
      
      on({id: 'alexa2.0.Lists.TO_DO.json'/*List as json*/, change: 'ne'}, function (obj) {
          convertJSON2HTML(obj.state.val,0);    
      }); 
      
      on({id: 'alexa2.0.Lists.SHOPPING_LIST.json'/*List as json*/, change: 'ne'}, function (obj) {
          convertJSON2HTML(obj.state.val,1);    
      });
      
      posted in JavaScript
      Günter Königsberger
      Günter Königsberger
    • RE: Staubsaugersteuerung - sequentielles script möglich?

      Hallo ich habe es jetzt nicht getestet aber müsste so funktionieren
      1.)jeden Freitag um 12:30 wird die überwachung des robbi states gestartet
      2.)gewartet bis der status 6(going do Dock) ist.
      3.)Robbi wird zu punkt geschickt danach wird mit "unsubscribe" die überwachung wider gelöscht.

      
      schedule({hour: 12, minute: 30, dayOfWeek:5}, function () {
          on({id: 'mihome-vacuum.0.info.state'/*Vacuum state*/, change: 'ne'}, function (obj) {
              log(obj.state.val);
              if (obj.state.val ==6){
                  setState('mihome-vacuum.0.control.goTo'/*Go to point*/,"24000,25000");
                  unsubscribe('mihome-vacuum.0.info.state'/*Vacuum state*/);
              };
              
      });
      });
      
      posted in Skripten / Logik
      Günter Königsberger
      Günter Königsberger
    • RE: Sonoff langsam wenn iobroker down

      Man kann in der Console zb.: "MqttRetry 600" eingeben dann wird nur alle 10min versucht eine verbindung aufzubauen und nicht alle 10 sekunden.

      MqttRetry 10..32000 = set MQTT connection retry timer in seconds (default = 10)

      posted in Hardware
      Günter Königsberger
      Günter Königsberger
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo