Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. [Gelöst] homee in ioBroker visualisieren

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Gelöst] homee in ioBroker visualisieren

    This topic has been deleted. Only users with topic management privileges can see it.
    • O
      Oli last edited by Oli

      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

      1 Reply Last reply Reply Quote 0
      • O
        Oli last edited by Oli

        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

        1 Reply Last reply Reply Quote 0
        • First post
          Last post

        Support us

        ioBroker
        Community Adapters
        Donate

        956
        Online

        31.7k
        Users

        79.7k
        Topics

        1.3m
        Posts

        vis
        1
        2
        740
        Loading More Posts
        • Oldest to Newest
        • Newest to Oldest
        • Most Votes
        Reply
        • Reply as topic
        Log in to reply
        Community
        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
        The ioBroker Community 2014-2023
        logo