Navigation

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

    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 2
    • Followers 0
    • Topics 116
    • Posts 773
    • Best 17
    • Groups 2

    jmeister79

    @jmeister79

    Starter

    17
    Reputation
    113
    Profile views
    773
    Posts
    0
    Followers
    2
    Following
    Joined Last Online

    jmeister79 Follow
    Pro Starter

    Best posts made by jmeister79

    • RE: [gelöst] Metro Layout

      @dos1973
      Anbei einige Bilder der Oberfläche. Ist work in Progress, ich bin noch nicht ganz zufrieden, will es einerseits simpel halten andererseits viel wissen. Es sit auf ein 7" Fire Tablet optimiert und dient dazu meine Familie n bisschen abzuholen, der Junior findet es auch echt spannend zu sehen wie der Verbrauch runter geht wenn er Lichter aus macht.

      Wenn Du auf einer anderen Seite als "Power" bist dann zählt er 30s runter und kehrt zurück, der Countdown wird bei jedem Wechsel neu gestartet.
      Die Diagramme sind bewusst simpel gehalten damit man einen Trend erkennen kann, für Details habe ich eine andere Visu. Auf dem Tablet ist die Schriftart übrigens auch Robot, er zeigt sie nur in meinem Browser so doof an da mir die passende Schriftart an.

      Bin für Tips und Vorschläge offen

      Nils

      metro5.png metro4.png metro3.png metro2.png metro1.png

      posted in Visualisierung
      jmeister79
      jmeister79
    • RE: Adapter für Buderus KM200 (und eventuell auch anderen KMxxx)

      @fisch

      ich hatte zum debuggen minütlich. Du willst es ja einmal am Tag machen also würde ich 5 0 * * * (00:05)

      Hier, nutze ich auch jedesmal aufs neue;-)
      https://crontab.guru/

      Hab gern geholfen, die anderen haben hier ja auch ejde Menge Geduld mit mir. 😉

      posted in ioBroker Allgemein
      jmeister79
      jmeister79
    • RE: Shelly Adapter 5.2.0 für Plus- und Pro-Geräte erweitert

      @glasfaser said in Shelly Adapter 5.2.0 für Plus- und Pro-Geräte erweitert:

      iob upgrade iobroker.shelly@6.4.3

      bester Mann!!, ist in meine Knowledgebase gewandert.

      posted in Tester
      jmeister79
      jmeister79
    • [Script] Kamera Alarm ohne Synology oder motion nutzen.

      Hi,
      ich wollte auch mal was beisteuern hier anstatt immer nur zu fragen
      vielleicht hat ja jemand von Euch Interesse/Verwendung an und für meiner Lösung oder lässt sich inspirieren

      Und zwar wollte ich meine Reolink Kamera zur Bewegungserkennung und Kontrolle auf dem ioBroker für den Raspberry Pi benutzen ohne externe Lösungen wie Synology Surveillance Station oder motion zu verwenden.
      Auch wollte ich die Aufnahmen AUSSERHALB der Kamera speichern, damit ein Bösswicht sie nicht einfach klaut.

      1. Vorraussetzungen
      • Die Kamera muss Zugang zum Netzwerk haben
      • Die Kamera braucht eine eigene Bewegungserkennung
      • Die Kamera sendet die Bilder per FTP
      • FTP Server im Netz. (Ich habe aus meinem pi gleich einen Server gemacht dann hab ich alles an Bord(proFTP), alternativ den FTP via fStab auf dem System Mounten, natürlich kann man sich auch woanders einloggen aber dann braucht ihr andere Befehle fürs Dateisystem. Wichtig ist allerdings, dass ioBroker Lese und Schreibzugriff auf die Ordner hat.
      1. Prinzip
      • Kamera Erkennt Bewegung und erzeugt ein MP4 Film sowie ein jpg Bild
      • Kamera schickt das auf einen FTP Server
      • ioBroker überwacht das Verzeichnis mit Chokidar und erkennt neue Dateien.
      • Tagesverzeichnis wird dann durchgezählt und sollten es mehr Dateien geworden sein gibt es einen Alarm in der vis und das aktuellste Bild per Telegram.
      • letztes jpg wird ausgelesen und in den VIS Ordner gespeichert, damit es angezeigt wird.
      • Ein Sweeper Script löscht alte Verzeichnisse nach Datum

      Dazu brauche ich ein Script.

      [update] Script zum löschen stark optimiert, so dass jetzt nach dateiinfo gelöscht wird und nicht mehr nach namen, somit kompatibel mit allen kameras

      var fs = require('fs');             //Dateisystemoperationen
      const path = require('path')        //Pfadobjekte
      var chokidar = require('chokidar');     //Watcher für Dateisystemveränderungen
      
      //DPs erzeugen
      createState("javascript.0.Alerts.latestSnapshot", "leer", {type: 'string',name: 'latesSnapshot'});
      createState("javascript.0.Alerts.CameraFilesCount_Last", "leer", {type: 'number',name: 'Anzahl Alarme'});
      createState("javascript.0.Alerts.CamMotionDetected", "leer", {type: 'boolean',name: 'Bewegung Kamera'});
      createState("javascript.0.Parameter.enableTelegramCamAlert", "false", {type: 'boolean',name: 'Alarm Bewegung'});
      createState("javascript.0.Parameter.CamStorageDuration", 10, {type: 'number',name: 'Speicherdauer Kameradaten'});
      createState("javascript.0.Helper.CamDeleteOldFiles", false, {type: 'boolean',name: 'Alte Kameradaten löschen'});
      
      
      //String aus Datum berechnen um in die verzeichnisse zu kommen
      function stringofdate(date){
          var d = date.getDate();
          var m = date.getMonth() + 1;
          var y = date.getFullYear();
          var datestring = y + '/' + (m <= 9 ? '0' + m : m) + '/' + (d <= 9 ? '0' + d : d);
          return datestring;
      }
      
      // Verzeichnisstruktur ist zb
      // /watchpath/Kameraname/YYYY/MM/dd/blbala.jpg
      
      var watchpath = '/home/reolink/Kameras';   //Kameraordner darf nicht = home Ordner sein
      var dirlist = fs.readdirSync(watchpath);   //Liste der Kameras holen
      
      
      var watcher = chokidar.watch(watchpath+'/**/*.jpg', {ignored: /^\./, persistent: true,awaitWriteFinish: true, ignoreInitial:true});
      //Was passiert wenn er was findet
      watcher.on('add', function(pathfound) {
          var dirlist = fs.readdirSync(watchpath);   //Liste der Kameras updaten   
          setState("javascript.0.Alerts.CamMotionDetected", true);
          //log("Neue Datei erkannt")    
          for (let i of dirlist) { 
              //DPs updaten
              createState("javascript.0.Alerts.latestSnapshot"+i, "leer", {type: 'string',name: 'latestnapshot'});
              createState("javascript.0.Alerts.CamMotionDetected"+i, "leer", {type: 'boolean',name: 'Bewegung Kamera'});
              var re = new RegExp(i, 'g');        
              // allgmeines Alarmbit setzen und neuen Zählerstand in DP speichern
              setState("javascript.0.Alerts.CamMotionDetected", true);
              if (pathfound.match(re)){  //wenn es sich um dieses element handelt
                  //log('javascript.0.Alerts.latestSnapshot'+i+' = '+pathfound);
                  setState("javascript.0.Alerts.latestSnapshot"+i, pathfound); //den gefunden Pfad in einen Datenpunkt fürs VIS kopieren
                  setState("javascript.0.Alerts.CamMotionDetected"+i, true);  //individuelles alarmbit setzen
                  var logtext = 'Bewegung Kamera '+i+' erkannt';
                  setState("javascript.0.Logbuch.array_LogMsg", ['move',logtext]);
                  //wenn gewollt per telegram verschicken
                  if(getState("javascript.0.Parameter.enableTelegramCamAlert").val===true){  
                      sendTo("telegram.0",  {
                          text: fs.readFileSync(pathfound),
                          type: 'photo',
                          caption: logtext
                      }); 
                  }  
                  try { 
                      //fünf sekunden warten,damit die datei Zeit hat fertig gespeichert zu werden    
                      //log('Schreibe '+pathfound +' auf /vis.0/latest_'+i+'.jpg');  ACHTUNG! dateien ohne Leerzeichen verwenden
                      setTimeout(function(){},5000);exec( 'iobroker file write '+pathfound+' /vis.0/latest_'+i+'.jpg');  
                  }catch(err) {
                      console.error("Cam Monitor: Fehler beim Kopieren der Kameradaten "+i);
                  }   
              }
          }
      })
      
      //Wichtig beim Beenden des Skriptes den watcher killen, sonst läuft der ewig weiter und es entstehen mit jedem neustart des skripts neue Instanzen
      onStop(() => {
          watcher.close()
              .then(log('Watcher gestoppt', 'info'))
      })
      
      
      //Bewegung erkennen und wert zurücksetzen
      on({id: 'javascript.0.Alerts.CamMotionDetected', val: true}, async function (obj) {
          setTimeout(function () {
              setState("javascript.0.Alerts.CamMotionDetected", false);
          for (let i of dirlist) { 
              setState("javascript.0.Alerts.CamMotionDetected"+i, false);  //individuelles alarmbit setzen
          }
          }, 60000);
      });
      
      //Deklaration der Löschfunktion alter Daten
      function ThroughDirectory(Directory,deletedate) {
          var files;
          fs.readdirSync(Directory).forEach(File => {
              const Absolute = path.join(Directory, File);
              //Fallunterscheidung Verzeichnis oder Datei
              if (fs.statSync(Absolute).isDirectory()){      
                  ThroughDirectory(Absolute, deletedate);  //recursiver Aufruf der Funktion, da es ein Verzeichnis ist   
                  //checken ob das verzeichnis nun evtl leer ist
                  if(fs.readdirSync(Absolute).length === 0){//Leeres Verzeichnis gefunden
                      log("Leeres Verzeichnis "+Absolute+" wird gelöscht");  
                      setState("javascript.0.Logbuch.array_LogMsg", ['info', 'Verz. '+Absolute+' wird gelöscht']);
                      fs.rmdirSync(Absolute);
                  }
                  return
              }else{
                  const info = fs.statSync(Absolute);  //Dateiinfo holen
                  files = files + "/n"+info.birthtime        
                  if(info.birthtime < deletedate){    // ist die datei älter als der Parameter?
                      fs.unlink(Absolute, (err => {
                      if (err) console.log(err);
                      }));
                  }
              }
          })
      }
      
      on({id: 'javascript.0.Parameter.CamStorageDuration', change: "ne"}, async function (obj) {
              setState("javascript.0.Helper.CamDeleteOldFiles", true);  
          //javascript.0.Helper.CamDeleteOldFiles
      });
      
      //Löschen der alten Daten
      schedule("0 0 * * *", function () {//everyday at 00:00
              setState("javascript.0.Helper.CamDeleteOldFiles", true);  
      });
      on({id: 'javascript.0.Helper.CamDeleteOldFiles', val: true}, async function (obj) {
              setState("javascript.0.Helper.CamDeleteOldFiles", false);  
      //schedule("* * * * *", function () {//everyday at 00:00
          var storageduration = getState("javascript.0.Parameter.CamStorageDuration").val;    
          //Datum holen
          var deletedate = new Date()
          deletedate.setDate(deletedate.getDate() - storageduration);//altes datum erzeugen
          log("Deleting older than "+deletedate)
          //setState("javascript.0.Logbuch.array_LogMsg", ['info', 'Deleting older than '+deletedate]);
          ThroughDirectory(watchpath,deletedate); 
          
      
      });
      

      Ich habe so gut es geht versucht zu kommentieren wo nötig.
      Bin für Verbesserungen offen.

      Known Bugs / ToDo:

      • Filme per Telegram?
      • Code ist z.Zt. gewachsen und ist jetzt auf einem für mich funktionierenden Stand.

      LG
      Nils

      posted in JavaScript
      jmeister79
      jmeister79
    • RE: Reload Button auf der VIS

      @werner53844 und mir jetzt gerade 😉

      posted in Visualisierung
      jmeister79
      jmeister79
    • RE: Adapter für Buderus KM200 (und eventuell auch anderen KMxxx)

      @mrMuppet siehe meine posts aus November. Zb am 217. Da hast du einen Ansatz die "arrays" auszulesen. Der rest ist iobroker Standard

      posted in ioBroker Allgemein
      jmeister79
      jmeister79
    • Skalierbares Skript zur Steuerung einer Fussbodenheizung

      Moin,
      ich bin gerade dabei mein Erdgeschuss um eine Fussbodenheizung zu erweitern. Ich habe darauf verzichtet, mir in jeden Raum einen Thermostat zu installieren und habe stattdessen meine vorhandenen Raumtemperatursensoren und einen Satz Shelly 1 Dazu verwendet, die Heizung zu steuern.
      Ich habe hier eine Umwälzpumpe die den Heizkreisverteiler mit mit Rücklaufwasser abgekühltem Vorlaufwasser versorgt.
      Diese Pumpe ist mit einer Oderverknüpfung an die Normally Closed Stellmotoren angeschlossen: Ist mindestens ein Stellantrieb auf, läuft die Pumpe, sollte keiner auf sein schaltet sie ab.

      Ich habe diese Geschichte zunächst für die Küche auf Basis eines Scripts, das ich von @Matt77CHE bekommen habe, zum Laufen gebracht.

      Ich habe dieses Script stark vereinfacht und Hysterese basiert aufgebaut.

      Zusammengefasst funktioniert es so:
      Alle 10 min wird die Raumtemperatur mit der Solltemperatur erfasst und wenn die Istwerte über Sollwert+Hysterese sind wird abgeschaltet. Fallen sie unter Istwert-Hysterese wird eingeschaltet.
      Das ganze habe ich gestern mal in eine For Schleife gepackt, so dass es übe Anpassung des Array am anfang auf Eure Situation angepasst werden kann.
      Ihr müsstet lediglich den Array entsprechend vergrößern/verkleinern und eure Sensoren und Aktoren sowie NO/NC eintragen.
      Alles andere wird angelegt. Alle nötigen Parameter liegen dann im Javascript Objektordner

      //Steuerparameter 
      createState("javascript.0.Heizung.VirtualSwitchFB", 0.0, {name: "Virtueller SChalter Fussbodenheizung", type: 'boolean'});
      createState("javascript.0.Heizung.FBPumpActive", 0.0, {name: "FB Pumpe aktiv", type: 'boolean'});
      createState("javascript.0.Heizung.refreshFloorHeatingCircuits", 0.0, {name: "Update FB", type: 'boolean'});
      createState("javascript.0.Heizung.FBWidget", 'leer', {type: 'string',name: 'FB Widget'});
      
      //Unterordner definieren
      const paramPath = "javascript.0.Heizung.Parameter.";//Pfad für Parameterordner
      const setpointPath = paramPath+"Zieltemperaturen."; //Pfad Vorgabetemperturen
      const hysteresisPath = paramPath+"Hysteresen.";  //Pfad Hysteresen
      const manualTempModePath = paramPath+"ManualTempMode.";  //Pfad manuelle Temperaturauswahl
      
      //Hauptarray anlegen [Nummer, Raum, Temperatursensor, Schaltaktor, Logik (NO: Stromlos offen, NC: Stromlos geschlossen)]
      var fb_array = [
      "##1","Küche","zigbee.0.00158d0002fbecb1.temperature","shelly.0.SHSW-1#349454738F09#1.Relay0.Switch","NC",
      "##2","Kinderzimmer","zigbee.0.00124b002918fc07.temperature","shelly.0.SHSW-1#34945474BB26#1.Relay0.Switch","NC",
      "##3","Wohnzimmer","zigbee.0.00158d000429ef25.temperature","shelly.0.SHSW-1#34945474C344#1.Relay0.Switch","NC",
      "##4","Bad","zigbee.0.00124b002918afdf.temperature","shelly.0.SHSW-1#349454738DC9#1.Relay0.Switch","NC"
      ];
      
      
      //Anlegen der Systemparameter und Variablen im Ordner 0.javascript.Heizung
      for (var i = 0; i < fb_array.length; i++) { // for every 5th array object
          if (fb_array[i].includes("##")){  //Neue Zeile
              createState(setpointPath+fb_array[i+1], false, {name: "Zieltemperatur "+fb_array[i+1], type: 'number', unit: '°C'});
              createState(hysteresisPath+fb_array[i+1], false, {name: "Hysterese "+fb_array[i+1], type: 'number', unit: '°C'});
              createState(manualTempModePath+fb_array[i+1], false, {name: "Manuelle Temperaturauswahl "+fb_array[i+1], type: 'boolean'});
          }
      } 
      //Alle 10 Minuten die Räume überprüfen  
      
      
       
      log('FB restarted')// Nur zur Info
      
      function refreshFloorHeatingCircuits(){    
          log('...')
          var PumpActive = false;  //Rücksetzen der Hilfsvariable
      
          //Array durchlaufen um die Räume zu steuern
          for (var i = 0; i < fb_array.length; i++) {
              if (fb_array[i].includes("##")){  //Neue Zeile gefunden
      
                  //Fallunterscheidung ob Solltemperatur Parameter durch Heizungssystem oder eigene 
                  if (getState(manualTempModePath+fb_array[i+1]).val == true) {
                      var targetTemp = parseInt(getState(setpointPath+fb_array[i+1]).val);
                  }else{
                      var targetTemp = parseInt(getState("ems-esp.0.heatingCircuits.hc1.currentRoomSetpoint").val);
                  };
      
                  //Hysterese auslesen
                  var hysteresis = parseInt(getState(hysteresisPath+fb_array[i+1]).val);
      
                  // Wenn der Virtuelle schalter eingeschaltet ist 
                  if (getState("javascript.0.Heizung.VirtualSwitchFB").val == true) {   
                      //Nur schalten wenn nötig im bereich wird nichts gemacht
                      if (getState(fb_array[i+2]).val >= targetTemp+hysteresis) {//Warm genug-> ausschalten
                          setState(fb_array[i+3], false, true);
                      } else if (getState(fb_array[i+2]).val < targetTemp-hysteresis) { // zu kalt -> einschalten
                          setState(fb_array[i+3], true, true);
                          PumpActive = true;
                      }
                  } else {  // alles stoppen, alles aus  
                      log(fb_array[i+1]+' wird ausgeschaltet');
                      setState(fb_array[i+3], false, true);    
                  }
      
              }
          }
          setState("javascript.0.Heizung.FBPumpActive", PumpActive, true);    //Wenn einer der Aktoren aktiv ist schaltet meine Pumpe in    
      }
      
      schedule("*/10 * * * *", function () {
          refreshFloorHeatingCircuits();
      });
      
      //Wenn der Hauptschalter verändert wurde dann einmal durchlaufen (ToDo: Triggerbedingung um Vorgabetemperaturen usw Parameter erweitern)
      on({id: 'javascript.0.Heizung.VirtualSwitchFB', change: 'any'}, async function (obj) {
          refreshFloorHeatingCircuits();
      });  
      on({id: 'javascript.0.Heizung.refreshFloorHeatingCircuits', change: 'gt'}, async function (obj) {
          setState("javascript.0.Heizung.refreshFloorHeatingCircuits",false);  //Rücksetzen der Triggervariable
          refreshFloorHeatingCircuits();
      });  
      
      
      

      Ergänzend erzeuge ich noch ein HTML Widget was das schön darstellt. (nicht in diesem Listing)

      Es ist noch sehr wichtig, dass Zustand und Erreichbarkeit aller beteiligten Sensoren/Aktoren noch separat überwacht werden. Ein Problem wird auf alles VIS dargestellt und ich bekomme einen Warnung via Telegram.

      Falls ich was ändere, poste ich updates-

      LG
      Nils
      Ich hoffe das Programm ist was für den ein oder anderen.
      Ich freue mich über Feedback, Verbesserungsvorschläge und alternative Ansteuerungen.

      [edit] jetzt als function anstatt doofer hilfsvariablen

      posted in JavaScript
      jmeister79
      jmeister79
    • Kleiner frecher Assistent

      Hallo,
      jeder der einen Google Home sein eigen nennt kann sich gerne etwas wie Tony Stark fühlen:

      Ich habe mir ein kleines Skript geschrieben, dass mich frech begrüßt wenn ich in den Hobbyraum gehe, der Hobbyraum wird nebenher noch mit einem Bewegungsmelder überwacht, somit "weiß" ioBroker ob der Raum besetzt ist und fährtdiese Begrüßung nur, wenn man den leeren Raum betritt in dem man die Tür öffnet. (javascript.0.Bool_HobbyraumAnwesenheit = FALSE)
      Vorher kann man sich diverse Ansagen überlegen (Ich habe 10 stück genommen)
      Der Zufallsgenerator wählt dann eine aus und schreibt den Inhalt des Arrayelements auf den Ausgang und schon hat man einen Jarvis für Arme.

      Nils

        //ansagen definieren
        var ansagen= ['Hi Boss',
                      'Hallo, wie gehts?',
                      'Aloha, schön Dich zu sehen.',
                      'Guten Tag, wie kann ich helfen.',
                      'Willkommen in der Bathöhle',
                      'Was führt Dich denn hier her?',
                      'Wie kann ich helfen?',
                      'Moin, was geht?',
                      'Hallo, Hallo!',
                      'Schön Sie zu sehen.']
        //zufallsgeneratorfunktion
        function getRandomInt(max) {
          return Math.floor(Math.random() * Math.floor(max));
        }
        on({id: 'zigbee.0.00158d0001873f9b.opened', change: "ne"}, function (obj) {
        var value = obj.state.val;
        var oldValue = obj.oldState.val;
        //ist der raum leer?
        if (getState("javascript.0.Bool_HobbyraumAnwesenheit").val != true) {
          //wähle zufällig aus möglichen ansagen
          auswahl = getRandomInt(ansagen.length); 
          ansageSelected = ansagen[auswahl]; 
          //logeintrag zum debug
          //setState("javascript.0.Logbuch.LogText"/*LogText*/, 'Jarvis aktiv ('+ansageSelected+').');
          //ansage abspielen
          setState("sayit.0.tts.text", "" + ansageSelected);
        }
      });
      
      posted in Praktische Anwendungen (Showcase)
      jmeister79
      jmeister79
    • RE: Google Home/Assistant ioBroker einrichten/nutzen

      @David-Froebus danke!!!

      posted in ioBroker Allgemein
      jmeister79
      jmeister79
    • RE: Gaszähler BK-G4 auslesen mit Zigbee-Fensterkontakt

      @w00dst0ck danke dir.
      Habe jetzt Mal n Gebot auf das Cyble Ding abgegeben. Evtl Krieg ich das günstig. Das von dir hab ich schon gesehen. Da der doofe Zähler aber im Hauswirtschaftsraum hängt will ich nicht so ne großes Geraffel da dran, das stört und außerdem spielt das binnen Tagen jemand aus meiner Familie kaputt. Der hängt direkt über der Waschmaschine.

      posted in Hardware
      jmeister79
      jmeister79

    Latest posts made by jmeister79

    • RE: Solar Flow Visualisierung ähnlich Fronius SolarWeb

      @guenter danke für das Lob.
      Ich hab aber nur mehrere Anpassungen gemacht, der Autor ist jemand anders. 🙂

      Am Ende des Tages ist die Flow Card etwas schciker weil sie sich in Lovelace schön einfügt. (Zwar nicht so vielseitig aber nice)

      posted in Visualisierung
      jmeister79
      jmeister79
    • RE: Solar Flow Visualisierung ähnlich Fronius SolarWeb

      @guenter Wenn Du lovelace isntalliert hast gibt es einige custom cards die ECHT cool sind.
      Ich hab n bisschen loslassen lernen müssen vom klein klein des VIS. Aber am Ende des Tages lohnt es sich.

      Es gibt mehrere davon ich habe einige ausprobiert und am Ende des Tages war es für mein Fronius System und die art wie es die Lesitungen darstellt diese hier

      Flixlix power-flow-card plus

      https://github.com/flixlix/power-flow-card-plus?tab=readme-ov-file

      posted in Visualisierung
      jmeister79
      jmeister79
    • RE: Google Home, iot und "Licht"

      @ticaki selbstverständlich. Aber das reagiert genauso wie "Hey Google - Licht an".

      😞

      Hab jetzt alle Lichter in "Licht" genannt.

      im ioBroker ist es ja noch richtig.

      Der Klügere gibt nach 😄

      posted in ioBroker Allgemein
      jmeister79
      jmeister79
    • RE: Google Home, iot und "Licht"

      @meister-mopper
      Hallo,
      hab ich gemacht. Die Namen in iot sind unverändert geblieben genauso zerschnitten wie vorher.

      Auch das resync von google hat nichts gebracht:_ die Namen kommen dort genauso zerschnitten an.

      edit: Interesstant ist, dass das Licht "Licht Couch" als Couch vom iot abgeschickt wird, bei Google in der Home App auch als "Couch" angezeigt wird, aber bei Name von ioBroker "Licht Couch" steht.
      Wasn da los?

      Das Problem ist nun seit einigen tagen, da ich auf ioBroker Seite keinerlei Veränderungen sowie Updates vorgenommen habe, muss es auf Googles Seite eine Änderung gegeben haben.

      Wenn ich in einem Zimmer das ein Licht Namens "Licht" hat "Hey Google - Licht an" sage, geht dieses an.

      Wenn ich in einem Zimmer das ein Licht Namens "Couch" und eins "Esstisch" hat "Hey Google - Licht an" sage, gehen alle Lichter im Haus an die "Licht" heißen.

      Sage ich hingegen in irgendeinem Raum "Hey Google - Lichter an" dann gehen nur die Lichter im Raum an.

      Das war vorher definitiv anders. Da hat Google wirklich alles angeschaltet was vom Typ Licht war und hat NIE die anderen Zimmer geschaltet außer man sagt "Alle Lichter an"

      Genau wie beim Xiaomi Adapter, beim PSA Adapter und beim Solar Web zeigt sich auch hier: Think Global - Work local.

      Ich finde es auch nicht sinvoll alle Lichter "Licht" zu nennen,d ann kann ich sie in Google ja leider garnicht mehr auseinander halten. Ziemlicher mist grad.

      Leider haben wir uns im laufe der Jahre derart an diese Bequemlichkeit gewöhnt, dass wir sie nicht mehr missen möchten. Ich werde nun mal recherchieren ob man so einen einfachen Assistenten irgendwie lokjal hinbekommt. Dann installier ich mir überall kleine Mikrofone die auf die gängigsten kommandos hören.

      posted in ioBroker Allgemein
      jmeister79
      jmeister79
    • Google Home, iot und "Licht"

      Hi,
      seit einigen Tagen scheint es eine änderung bei google zu geben.

      Ich hatte vor einigen Jahren in jedes Zimmer einen Shelly für das Licht installiert und in der Regel hat dieses Gerät den Namen "Licht" bekommen.

      Nun haben wir in einigen Räumen mehrere Lichter und die haben natürlich entsprechende Namen "Licht Couch" oder "Licht Esstisch" zb im Wohnzimmer.

      Jeder Raum hat einen Google Home Mini, die geräte in den Räumen haben auch die richtigen Zuweisungen für die Räume und Funktionen.

      Alles lief wie geschmiert.
      Wacht mein Sohn auf und sagt in seinem Zimmer "Kind EG" mit dem Gerät "Licht" "Hey Google, Licht an" geht auch das Licht in seinem Zimmer an. Ging überall.

      Seit einigen Tagen scheint etwas anders zu sein.
      Sitze ich zB im Wohnzimmer und sage "Hey Google, Licht an", qutitert Google das mit: Es wurden 36 Lampen eingeschaltet.
      Und er schaltet alle Geräte an die "Licht" heißen und nicht mehr das Licht im betreffenden Raum. Man muss nun "Hey Google, schalte Couch ein" sagen.

      Schaue ich in den IOT Adapter hat er das Gerät das in der Objektliste "Licht Couch" heißt auch nur mit "Couch" veröffentlicht und so kennt Google den dann auch.

      Muss ich nun alle Lichter Stumpf in "Licht" umbennennen? Ich dachte die iot isntanzen gehen nach funktionen und nicht nach Namen...

      Es ist spannend: "Licht Flur OG" im Raum "Flur OG" wird bei iot als "Licht" gesendet. "Licht Treppenhaus" im "Flur EG" und "Licht Flur EG 1" und "Licht Flur EG 2" werden als "Treppenhaus", "1" und "2" gesendet. Scheinbar muss das Gerät den selben Namen haben wie der Raum.

      Es ist natürlich scheinbar ein Problem das Google Verursacht hat und führt natürlich zu absolutem Chaos bei meiner Familie, die jetzt nachts zb in nem dunklen Bad stehen dafür aber der Rest der Familie in gleißendem LED Licht wach wird. Ich möchte nicht nach jedem Softwareupdate eine Neueinweisung in Bedienung von Klospülung und Lochtschalter geben müssen.

      Hab ich evtl Grundsätzlich n fehler bei der Benennung begangen? Was sollte ich tun?

      Nils

      posted in ioBroker Allgemein
      jmeister79
      jmeister79
    • RE: Verständnisfrage Zigbee Netzwerke

      @asgothian danke dir. Das macht es klarer.

      Ich habe die sensoren alle getriggert und die Instanz in pairing geschaltet und aie sind alle wieder gekommen.
      Bis auf den Xiaomi Climate. Der wollte erst als ich ihn direkt neben den Coordinator gehalten habt.
      Zigbee ist schon schwer zu handeln hab ich das Gefühl.
      Und Shellies haben den Nachteil das Wifi zu verstopfen irgendwann.

      Nils

      posted in ioBroker Allgemein
      jmeister79
      jmeister79
    • RE: Zigbee TS0504B arbeitet auf einmal nicht mehr richtig.

      Hi,

      also ich kriege den weiß kanal nicht mehr angesteuert. und der farbwechsel geht auch nur manchmal.

      posted in ioBroker Allgemein
      jmeister79
      jmeister79
    • Verständnisfrage Zigbee Netzwerke

      Moin,

      ich habe eine Verständnsifrage zum Meshlayout des Zigbeenetzwerkes.

      Ich musste in den letzten Tagen diverse Zigbeegeräte entsorgen, da sie defekt waren und der letzte Kandidat war ein LED Controller.
      Obwohl er am gegenüberliegenden Ende des Hauses war, haben diverse Sensoren auf der anderen Seite diese als Parent Node genutzt obwohl der Coordinator und diverse andere Nodes optimaler liegen.

      Jetzt da er weg ist sind sie alle offline und machen seit drei Tagen keine Anstalten sich neu zu verbinden. In einigen Fällen sind repeaterfähige Geräte direkt daneben.

      Was sind die Bedingungen für eine Neuorganisation bzw wann versuchen die Geräte sich wieder neu zu verbinden/was muss ich tun um das zu provozieren.

      Fun fact, ich hab den LED Controlle rwieder eingeschaltet und auch nach einer Nacht hat sich keiner verbunden.

      LG
      Nils

      posted in ioBroker Allgemein
      jmeister79
      jmeister79
    • Telegram Adapter: verschieden Chats mit selbem Benutzer

      Moin,

      mal ne kurze frage:
      Ich nutze den telegram Adapter um fehlermeldung Info Meldung und Anfragen an den io Broker zu stellen dies tue ich auch mit mehreren Benutzern und das funktioniert total super ich kann verschiedenen Benutzern verschiedene Meldungen schicken oder Antworten nur an den Benutzer der die Frage gestellt hat.

      Nun möchte ich aber verschiedene Chats mit demselben Benutzer für z.b Infos, Fehler Warnungen und Alarme haben.
      Beispielsweise um bestimmte Sachen stumm zu schalten oder einen unterschiedlichen Klingelton je nach Typ zu bekommen.

      Muss ich dafür eine zweite telegram Instanz mit einem neuen Bot anlegen oder gibt es da einen Trick das über eine Instanz zu machen.

      Liebe Grüße

      Nils

      posted in ioBroker Allgemein
      jmeister79
      jmeister79
    • RE: Zigbee TS0504B arbeitet auf einmal nicht mehr richtig.

      @asgothian klappt. Gibt rotes licht.
      Wieso verhält der sich auf einmal komplett anders?

      Das einzige eas ich noch gemacht habe war mit nem alias rumgespielt und da gabs n hue.

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