Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Visualisierung
  4. [Gelöst] homee in ioBroker visualisieren

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    501

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.7k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.6k

[Gelöst] homee in ioBroker visualisieren

Geplant Angeheftet Gesperrt Verschoben Visualisierung
vis
2 Beiträge 1 Kommentatoren 837 Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • O Online
    O Online
    Oli
    schrieb am zuletzt editiert von Oli
    #1

    Hallo zusammen,

    ich beschäftige mich zur Zeit mit der Visualisierung in ioBroker. Nun möchte ich versuchen homee in die Visualisierung mit einzubinden.

    Folgendes möchte ich mir in VIS anzeigen lassen:

    1. Anzahl der in homee vorhanden Geräte und homeegramme
    2. Auflistung der einzelnen Geräte mit verwendeten Funkstandard und Anzeige ob in homee verfügbar oder nicht
    3. Logfile
    4. Heizpläne eventuell diese sogar über ioBroker ändern

    Was ist davon möglich und wie setze ich das am dümmsten um?

    EDITH vom 24.03.2023
    Ich habe das Ganze jetzt mit Node-Red und der homeeApi gelöst.
    https://forum.iobroker.net/topic/61663/benötige-hilfe-mit-node-red-in-verbindung-mit-homee

    Gruß Oliver

    Gruß
    Oliver

    1 Antwort Letzte Antwort
    0
    • O Online
      O Online
      Oli
      schrieb am zuletzt editiert von Oli
      #2

      Hallo zusammen,

      ich habe es jetzt teilweise gelöst, anbei mal meine Vis und das dazugehörige Script.

      04a52249-7a4c-449f-8a02-d0bafaf71f34-image.png

      Das Script liest den homee Adapter aus und legt für jedes Gerät verschiedene State's an, zählt die Anzahl der Lichter, Rauchmelder und Fenster pro Etage.

      //Liest den homee Adapter aus und legt für jedes Gerät verschiedene State's an
      
      on({id:"system.adapter.admin.0.uptime",change:'any'}, function (obj) {
          createState('homee.Anzahl_Geräte', 0, { name: 'Anzahl der Geräte', desc: '', type: 'number', unit: '', min: '0', max: '255', role: '',read: true, write: true });
          createState('homee.Anzahl_homeegramme', 0, { name: 'Anzahl der homeegramme', desc: '', type: 'number', unit: '', min: '0', max: '255', role: '',read: true, write: true });
          createState('homee.Anzahl_Aktivierte_homeegramme', 0, { name: 'Anzahl der aktivierten homeegramme', desc: '', type: 'number', unit: '', min: '0', max: '255', role: '',read: true, write: true });
          createState('homee.Anzahl_deaktivierte_homeegramme', 0, { name: 'Anzahl der deaktivierten homeegramme', desc: '', type: 'number', unit: '', min: '0', max: '255', role: '',read: true, write: true });
          createState('homee.Anzahl_Batterie', 0, { name: 'Anzahl der Geräte mit Batterie', desc: '', type: 'number', unit: '', min: '0', max: '255', role: '',read: true, write: true });
          createState('homee.Anzahl_Batteriealarm', 0, { name: 'Anzahl der Geräte mit schwacher Batterie', desc: '', type: 'number', unit: '', min: '0', max: '255', role: '',read: true, write: true });
          createState('homee.Anzahl_ohne_Batterie', 0, { name: 'Anzahl der Geräte ohne Batterie', desc: '', type: 'number', unit: '', min: '0', max: '255', role: '',read: true, write: true });
          createState('homee.Anzahl_Fenster', 0, { name: 'Anzahl der Fensterkontakte', desc: '', type: 'number', unit: '', min: '0', max: '255', role: '',read: true, write: true });
          createState('homee.Anzahl_Fenster_offen', 0, { name: 'Anzahl der geöffneten Fenster', desc: '', type: 'number', unit: '', min: '0', max: '255', role: '',read: true, write: true });
          createState('homee.Anzahl_Fenster_offen_EG', 0, { name: 'Anzahl der geöffneten Fenster im EG', desc: '', type: 'number', unit: '', min: '0', max: '255', role: '',read: true, write: true });
          createState('homee.Liste_Fenster', 'empty', { name: 'Liste offener Fenster', desc: '', type: 'string', role: '',read: true, write: true });   
          createState('homee.Liste_Batterie', 'empty', { name: 'Liste schwacher Batterien', desc: '', type: 'string', role: '',read: true, write: true });
          createState('homee.Anzahl_Fenster_offen_OG', 0, { name: 'Anzahl der geöffneten Fenster im OG', desc: '', type: 'number', unit: '', min: '0', max: '255', role: '',read: true, write: true });
          createState('homee.Anzahl_Fenster_offen_UG', 0, { name: 'Anzahl der geöffneten Fenster im UG', desc: '', type: 'number', unit: '', min: '0', max: '255', role: '',read: true, write: true });
          createState('homee.Liste_Rauchalarm', 'empty', { name: 'Liste Rauchalarm', desc: '', type: 'string', role: '',read: true, write: true });
          createState('homee.Anzahl_Rauchmelder', 0, { name: 'Anzahl der Rauchmelder', desc: '', type: 'number', unit: '', min: '0', max: '255', role: '',read: true, write: true });
          createState('homee.Anzahl_Rauchalarm', 0, { name: 'Anzahl Rauchalarm', desc: '', type: 'number', unit: '', min: '0', max: '255', role: '',read: true, write: true }); 
          createState('homee.Liste_Licht', 'empty', { name: 'Liste Licht an', desc: '', type: 'string', role: '',read: true, write: true });
          createState('homee.Anzahl_Lichtquellen', 0, { name: 'Anzahl der Lichtquellen', desc: '', type: 'number', unit: '', min: '0', max: '255', role: '',read: true, write: true });
          createState('homee.Anzahl_Licht_an', 0, { name: 'Anzahl der brennenden Lichter', desc: '', type: 'number', unit: '', min: '0', max: '255', role: '',read: true, write: true }); 
          createState('homee.Anzahl_Licht_an_EG', 0, { name: 'Anzahl der brennenden Lichter im EG', desc: '', type: 'number', unit: '', min: '0', max: '255', role: '',read: true, write: true }); 
          createState('homee.Anzahl_Licht_an_UG', 0, { name: 'Anzahl der brennenden Lichter im UG', desc: '', type: 'number', unit: '', min: '0', max: '255', role: '',read: true, write: true });
          createState('homee.Anzahl_Licht_an_OG', 0, { name: 'Anzahl der brennenden Lichter im OG', desc: '', type: 'number', unit: '', min: '0', max: '255', role: '',read: true, write: true });        
      
          var cacheSelector = $('[id=homee.0.*]');  
          var counter =0;
          var batterie =0;
          var fenster = 0;
          var fensterO =0;
          var fensterEG =0;
          var fensterOG =0;
          var fensterUG =0;
          var rauchmelder =0;
          var rauchalarm =0;
          var licht =0;
          var lichtA =0;
          var lichtEG =0;
          var lichtOG =0;
          var lichtUG =0;
          var listeL = "";
          var listeR = "";
          var listeF = "";
          var lowbat =0;
          var listeB = "";    
          var blevel = 255;
          var akt = 0;
          var deakt = 0; 
          blevel = parseFloat(blevel);
          var level = 11; // full   
          
          cacheSelector.each(function(id, i) {        
              var contentstring = id; 
              var test = id 
              var suchstring = /(FirmwareRevision)/g; 
              var suchergebnis = suchstring.test( contentstring );       
              
              if (suchergebnis != false) {    
                  counter = counter+1;              
                  var devicenameName = id.replace(/homee.0./g, "");
                  devicenameName = devicenameName.replace(/.FirmwareRevision/g, "");            
                  var längeName = devicenameName.length;            
                  var name = devicenameName.substring(0, längeName); 
                  var bezeichnung = getObject(id).common.name;
                  bezeichnung = bezeichnung.replace(/.FirmwareRevision/g, "");
                  var name_array = name.split('-');
                  name = name_array[0];
                  var nummer = name_array[1];
                  name = name + "-" + nummer;            
              
                  var devicename="homee.Gerät"+counter.toString()+".NameGerät";
                  createState(devicename, 'empty', { name: 'Name Gerät', desc: '', type: 'string', role: '',read: true, write: true });
                  setStateDelayed(devicename, name, 800);
      
                  devicename="homee.Gerät"+counter.toString()+".BezeichnungGerät";
                  createState(devicename, 'empty', { name: 'Bezeichnung Gerät', desc: '', type: 'string', role: '',read: true, write: true });
                  setStateDelayed(devicename, bezeichnung, 800);            
      
                  var aSelector = $('[id=homee.0.' + name + '.*]');           
                  aSelector.each(function(id, i) {
                      var contentstring1 = id;                               
                      var suchstring1 = /(BatteryLevel)/g; 
                      var suchergebnis1 = suchstring1.test( contentstring1 );
      
                      if (suchergebnis1 != false) {
                          batterie = batterie+1;
                          var anhang = id.slice(id.lastIndexOf("."));
                          var strStatePath = "homee.0." + name + anhang;                    
      
                          if (isState(strStatePath, true)) {
                              blevel = getState(id).val;
                              blevel = parseFloat(blevel);                         
                              if(blevel == 255) level = 11; // 100 % 
                              if(blevel == 100) level = 10; // 100 %                      
                              if(blevel < 100) level = 9; // 90 %
                              if(blevel <= 90) level = 8; // 80 %
                              if(blevel <= 80) level = 7; // 70 %
                              if(blevel <= 70) level = 6; // 60 %
                              if(blevel <= 60) level = 5; // 50 %
                              if(blevel <= 50) level = 4; // 40 %
                              if(blevel <= 40) level = 3; // 30 %
                              if(blevel <= 30) level = 2; // 20 %
                              if(blevel <= 20) { 
                                  level = 1; // 10 %
                                  lowbat = lowbat+1;
                                  listeB = listeB + " " + bezeichnung;
                              }     
                              if(blevel <= 10) level = 0; // empty                                             
                          }                 
                      }                                
                      
                      devicename="homee.Gerät"+counter.toString()+".BatterieStand";
                      createState(devicename, 0, { name: 'Batterie Ladezustand', type: 'number', unit: '', min: '0', max: '255', role: '',read: true, write: true });               
                      setStateDelayed(devicename, blevel, 800); 
      
                      devicename="homee.Gerät"+counter.toString()+".BatterieLevel";
                      createState(devicename, 0, { name: 'Batterie Level', desc: '', type: 'number', unit: '', min: '0', max: '255', role: '',read: true, write: true });               
                      setStateDelayed(devicename, level, 800);                          
                  });
      
                  var bSelector = $('[id=homee.0.' + name + '.*]');           
                  bSelector.each(function(id, i) {
                      var contentstring2 = id;                               
                      var suchstring2 = /(OpenClose-)/g; 
                      var suchergebnis2 = suchstring2.test( contentstring2 );
      
                      if (suchergebnis2 != false) {
                          fenster = fenster+1;                    
                          
                          if(getState(id).val != 0) {
                              fensterO = fensterO+1;
                              var bezeichnung1 = getObject(id).common.name;
                              var test1 = getObject(id).common.name;
                              bezeichnung1 = bezeichnung1.replace(/.OpenClose/g, "");
                              listeF = listeF + " " + bezeichnung1;
      
                              var contentstring3 = bezeichnung1;                               
                              var suchstring3 = /(EG)/g; 
                              var suchergebnis3 = suchstring3.test( contentstring3 );
                              if (suchergebnis3 != false) {
                                  fensterEG = fensterEG+1
                              }
      
                              var suchstring4 = /(UG)/g; 
                              var suchergebnis4 = suchstring4.test( contentstring3 );
                              if (suchergebnis4 != false) {
                                  fensterUG = fensterUG+1
                              }
      
                              var suchstring5 = /(DG)/g; 
                              var suchergebnis5 = suchstring5.test( contentstring3 );
                              if (suchergebnis5 != false) {
                                  fensterOG = fensterOG+1
                              }                                                        
                          }
                          
                          if (fensterO == 0) {
                              listeF = "Alle Fenster geschlossen!"
                          }
                          
                          setStateDelayed('homee.Anzahl_Fenster', fenster, 800);
                          setStateDelayed('homee.Anzahl_Fenster_offen', fensterO, 800);
                          setStateDelayed('homee.Liste_Fenster', listeF, 800);
                          setStateDelayed('homee.Anzahl_Fenster_offen_EG', fensterEG, 800);
                          setStateDelayed('homee.Anzahl_Fenster_offen_OG', fensterOG, 800);
                          setStateDelayed('homee.Anzahl_Fenster_offen_UG', fensterUG, 800);
                      }
                  });
      
                  var rSelector = $('[id=homee.0.' + name + '.*]');           
                  rSelector.each(function(id, i) {
                      var contentstring4 = id;                               
                      var suchstring6 = /(SmokeAlarm-)/g; 
                      var suchergebnis6 = suchstring6.test( contentstring4 );
      
                      if (suchergebnis6 != false) {
                          rauchmelder = rauchmelder+1;
      
                          if(getState(id).val != false) {
                              rauchalarm = rauchalarm+1;
                              var bezeichnung2 = getObject(id).common.name;
                              var test2 = getObject(id).common.name;
                              bezeichnung2 = bezeichnung2.replace(/.SmokeAlarm/g, "");
                              listeR = listeR + " " + bezeichnung2;                              
                          }
      
                          if (rauchalarm == 0) {
                              listeR = "Kein Rauchalarm!"
                          }
                          
                          setStateDelayed('homee.Anzahl_Rauchmelder', rauchmelder, 800);
                          setStateDelayed('homee.Anzahl_Rauchalarm', rauchalarm, 800);
                          setStateDelayed('homee.Liste_Rauchalarm', listeR, 800);
                      }
                  });
      
                  var lSelector = $('[id=homee.0.' + name + '.*]');           
                  lSelector.each(function(id, i) {
                      var contentstring5 = getObject(id).common.name;                               
                      var suchstring7 = /(Licht.OnOff)/g; 
                      var suchergebnis7 = suchstring7.test( contentstring5 );
      
                      if (suchergebnis7 != false) {
                          licht = licht+1;
      
                          if(getState(id).val != false) {
                              lichtA = lichtA+1;
                              var bezeichnung3 = getObject(id).common.name;
                              var test3 = getObject(id).common.name;
                              bezeichnung3 = bezeichnung3.replace(/.OnOff/g, "");
                              listeL = listeL + " " + bezeichnung3;
      
                              var contentstring5 = bezeichnung3;                               
                              var suchstring7 = /(EG)/g; 
                              var suchergebnis7 = suchstring7.test( contentstring5 );
                              if (suchergebnis7 != false) {
                                  lichtEG = lichtEG+1
                              }
      
                              var suchstring8 = /(UG)/g; 
                              var suchergebnis8 = suchstring8.test( contentstring5 );
                              if (suchergebnis8 != false) {
                                  lichtUG = lichtUG+1
                              }
      
                              var suchstring9 = /(DG)/g; 
                              var suchergebnis9 = suchstring9.test( contentstring5 );
                              if (suchergebnis9 != false) {
                                  lichtOG = lichtOG+1
                              }                                       
                          }
      
                          if (lichtA == 0) {
                              listeL = "Alle Lichter aus!"
                          }
                          
                          setStateDelayed('homee.Anzahl_Lichtquellen', licht, 800);
                          setStateDelayed('homee.Anzahl_Licht_an', lichtA, 800);
                          setStateDelayed('homee.Liste_Licht', listeL, 800);
                          setStateDelayed('homee.Anzahl_Licht_an_EG', lichtEG, 800);
                          setStateDelayed('homee.Anzahl_Licht_an_OG', lichtOG, 800);
                          setStateDelayed('homee.Anzahl_Licht_an_UG', lichtUG, 800);
                      }
                  });                                                                
              };
      
              if (lowbat == 0) {
                  listeB = "Alle Batterien in Ordnung!"
              }
      
              setStateDelayed('homee.Anzahl_Geräte', counter, 800);    
              setStateDelayed('homee.Anzahl_Batterie', batterie, 800);
              setStateDelayed('homee.Anzahl_Batteriealarm', lowbat, 800);
              setStateDelayed('homee.Liste_Batterie', listeB, 800);   
      
              var ohne = counter - batterie;
              setStateDelayed('homee.Anzahl_ohne_Batterie', ohne, 800);                
              
              function isState(strStatePath, strict) {
                  let mSelector;
                  if (strict) {
                      mSelector = $('state[id=' + strStatePath + '$]');
                  } else {
                      mSelector = $('state[id=' + strStatePath + ']');
                  }
                  if (mSelector.length > 0) {
                      return true;
                  } else {
                      return false;
                  }
              }           
          });    
          
          var hSelector = $('[id=homee.0.Homee-0.Homeegrams.*]'); 
          var counter =0;
          hSelector.each(function(id, i) {              
              var devicename = getObject(id).common.name;
                     
              if(devicename == "active") {
                  counter = counter+1
      
                  var status = getState(id).val;
                  if(status != false) {
                      akt = akt+1
                  } 
              } else {
                  counter = counter
              }
                                     
          });
          
          deakt = counter - akt;
          
          setStateDelayed('homee.Anzahl_homeegramme', counter, 800);
          setStateDelayed('homee.Anzahl_Aktivierte_homeegramme', akt, 800);
          setStateDelayed('homee.Anzahl_deaktivierte_homeegramme', deakt, 800);    
      });        
          
      

      Für Vorschläge oder Anregungen, wie ich die Logdatei oder die Heizpläne darstellen kann bin ich immer offen.

      Lg Oliver

      Gruß
      Oliver

      1 Antwort Letzte Antwort
      0
      Antworten
      • In einem neuen Thema antworten
      Anmelden zum Antworten
      • Älteste zuerst
      • Neuste zuerst
      • Meiste Stimmen


      Support us

      ioBroker
      Community Adapters
      Donate

      715

      Online

      32.5k

      Benutzer

      81.8k

      Themen

      1.3m

      Beiträge
      Community
      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
      ioBroker Community 2014-2025
      logo
      • Anmelden

      • Du hast noch kein Konto? Registrieren

      • Anmelden oder registrieren, um zu suchen
      • Erster Beitrag
        Letzter Beitrag
      0
      • Home
      • Aktuell
      • Tags
      • Ungelesen 0
      • Kategorien
      • Unreplied
      • Beliebt
      • GitHub
      • Docu
      • Hilfe