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. ioBroker Allgemein
  4. Starthilfe Iobroker und ETA Heizung visualisieren

NEWS

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.6k

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

Starthilfe Iobroker und ETA Heizung visualisieren

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
19 Beiträge 6 Kommentatoren 7.5k Aufrufe 1 Watching
  • Ä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.
  • paul53P Offline
    paul53P Offline
    paul53
    schrieb am zuletzt editiert von
    #8

    @Shadow310876:

    Ich möchte ja auch die Historie sehen. Dafür würde ich dann gerne ein Diagramm erstellen. `
    Dafür gibt es den Adapter http://www.iobroker.net/docu/?page_id=198&lang=de.

    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

    1 Antwort Letzte Antwort
    0
    • HomoranH Nicht stören
      HomoranH Nicht stören
      Homoran
      Global Moderator Administrators
      schrieb am zuletzt editiert von
      #9

      @Shadow310876:

      hier habe ich gerade eine Anleitung für MariaDb gefunden `
      Ich weiß nicht wo du diese Seite her hast, die aktuelle ist hier

      http://www.iobroker.net/docu/?page_id=5197&lang=de

      Gruß

      Rainer

      kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

      1 Antwort Letzte Antwort
      0
      • S Offline
        S Offline
        Shadow310876
        schrieb am zuletzt editiert von
        #10

        Hallo zusammen.

        Und wieder bin ich weiter gekommen :)

        Vielen Dank für die Hilfe!

        Ein paar Probleme habe ich aber doch noch.

        Offenbar ist mein RegEx (in meinen Worten würde ich das mal als Suchbegriff definieren) falsch.

        Das gibt iobroker mir als Testtext aus:

        <eta version="1.0" xmlns="<URL url=" http:/www.eta.co.at/rest/v1"="">http://www.eta.co.at/rest/v1">

        <value uri="//user/var/40/10201/0/0/12015" strvalue="1298" unit="kg" decplaces="0" scalefactor="10" advtextoffset="0">12979</value></eta>

        Ich brauche die 1298, also strValue.

        Mein RegEx lautet: strValue="(-?\d+)"

        Ist das korrekt und könnte mir jemand die für mich unverständlichen Zeichen zwischen den "" erklären?

        Offenbar aktualisiert er die Werte aber nicht, denn unter Objekte wird mir noch ein alter Wert angezeigt und in der Tabelle sind noch keine Daten.

        Was muss ich wo einstellen, damit er mit den Wert alle 2 Stunden ausliest?

        Nächste Frage

        Wenn ich mehrere Werte logge, die aber auf unterschiedlichen Diagrammen darstellen möchte, wie mache ich das?

        Bei Flot kann ich die Werte alle im gleichen Diagramm einblenden, das macht aber keinen Sinn.

        Und letzte Frage für heute.

        Wo finde ich die Datei der Datenbank auf der Synology? Könnte ich da auch mit z.b. Excel draufzugreifen?

        Danke und einen schönen Abend noch!

        Tobias

        1 Antwort Letzte Antwort
        0
        • G Offline
          G Offline
          George_Best
          schrieb am zuletzt editiert von
          #11

          Hallo,

          • für Lagerstände, Verbräuche etc. (d.h. alles in "kg") verwende ich:````
            "([\d]+)"
          - für Außentemperatur:````
          "([\d,-]+)"
          

          Die Bildung von regulären Ausdrücken (kurz "RegEx") ist nicht ganz ohne und wird vor allem bei Perl verwendet.

          () damit bildet man Gruppen innerhalb des Ausdrucks

          [] bildet eine Zeichenklassendefinition

          /nach dem nachfolgenden Zeichen wird gesucht ("geparst")

          d sucht nach einer Zahl

          • es werden alle Stellen der Zahl gesucht - solange, bis ein anderes Zeichen oder das Ende des Strings gefunden wird.

          In meinem Beispiel wird also der Vebrauch komplett als ganze Zahl geparst.

          Ich empfehle dir: https://wiki.selfhtml.org/wiki/Regul%C3%A4rer_Ausdruck

          Für Android gibt es einige nette Apps, mit deren Hilfe man RegEx lernen und üben kann.

          Bei mir zeigt er zwar die richtigen Werte an den Objekten an, schreibt aber auch nur einen Wert in die History-Tabelle.

          Habe auch schon mit den Zeiten rumprobiert (Default Poll-Intervall; Intervall) und den Einstellungen in der History (Nur Änderungen aufzeichnen deaktiviert usw.)

          1 Antwort Letzte Antwort
          0
          • Q Offline
            Q Offline
            QuesT
            schrieb am zuletzt editiert von
            #12

            Hallo,

            wollte mal nachfragen wie es bei euch aussieht. Habe auch einen PU15.

            1 Antwort Letzte Antwort
            0
            • S Offline
              S Offline
              Shadow310876
              schrieb am zuletzt editiert von
              #13

              Hallo QuesT,

              ich bin mangelst Zeit und Equipment leider nicht weitergekommen.

              Wenn du was hinbekommst oder findest melde dich gerne!

              Brauche wahrscheinlich nur nochmal entsprechende Motivation :roll:

              Gruß

              Tobias

              1 Antwort Letzte Antwort
              0
              • G Offline
                G Offline
                George_Best
                schrieb am zuletzt editiert von
                #14

                Hi,

                mir läuft es ohne Probleme. Ich lese Temperatur, Lager, absoluter Verbrauch, Status Kessel, Status Heizkreis usw. aus.

                Ich speichere Temperatur und absoluter Verbrauch via SQL und berechne mit daraus dann den täglichen Verbrauch, Durchschnitt absolut und Durschnitt der letzten 7 Tage. Mit Flot visualisere ich das dann alles fürs Smartphone. Das sieht dann so aus:
                3428_unbenannt.jpg

                So sieht das Vis fürs Handy aus (ja… ich weiß... schön ist was anderes...):
                3428_unbenannt2.jpg

                1 Antwort Letzte Antwort
                0
                • S Offline
                  S Offline
                  Shadow310876
                  schrieb am zuletzt editiert von
                  #15

                  Hallo George,

                  das sieht super aus und wäre genau das, was ich mir wünsche. Bin aber irgendwie zu dämlich um das umzusetzen.

                  Welche Hardware setzt du ein?

                  Bei mir sollte es auf ner Synology Diskstation laufen, aber mit Iobroker bin ich nicht weitergekommen.

                  Da fehlt mir einfach das Grundwissen zu…

                  Gruß

                  Tobias

                  1 Antwort Letzte Antwort
                  0
                  • G Offline
                    G Offline
                    George_Best
                    schrieb am zuletzt editiert von
                    #16

                    Bei mir läuft ioBroker auf nem Raspi. Die SQL-Datenbanken liegen auch auf einer Synology.

                    Ich habe auch "klein" bei ioBroker angefangen. Das Licht im Flur via Taster in vis ein- und ausgeschaltet. Dann erstmal via Parser die Werte der ETA eingelesen usw. usw.

                    K 1 Antwort Letzte Antwort
                    0
                    • Q Offline
                      Q Offline
                      QuesT
                      schrieb am zuletzt editiert von
                      #17

                      Hallo,

                      könntest du dein SQl Script und eine VIS Export zuverfügung stellen?

                      Danke

                      @George_Best:

                      Hi,

                      mir läuft es ohne Probleme. Ich lese Temperatur, Lager, absoluter Verbrauch, Status Kessel, Status Heizkreis usw. aus.

                      Ich speichere Temperatur und absoluter Verbrauch via SQL und berechne mit daraus dann den täglichen Verbrauch, Durchschnitt absolut und Durschnitt der letzten 7 Tage. Mit Flot visualisere ich das dann alles fürs Smartphone. Das sieht dann so aus:

                      Unbenannt.JPG

                      So sieht das Vis fürs Handy aus (ja… ich weiß... schön ist was anderes...):

                      Unbenannt2.JPG `

                      1 Antwort Letzte Antwort
                      0
                      • G Offline
                        G Offline
                        George_Best
                        schrieb am zuletzt editiert von
                        #18

                        @QuesT:

                        Hallo,

                        könntest du dein SQl Script und eine VIS Export zuverfügung stellen?

                        Danke `

                        Klar - sehr gerne:

                        SQL Script:```
                        `var parseString = require('xml2js').parseString;
                        var request = require('request');
                        var Test_Objekt_JS_2;

                        var IP_Adress = '192.168.178.13';
                        var ETA_GesamtVerbrauch = '/user/var//112/10021/0/0/12016';
                        var ETA_Aussentemp = '/user/var//112/10241/0/0/12197';

                        function ETA_Status_Aufruf(IP_Adress_A, Get_Status, global_var_ETA){ /
                        Gesamt_Get=(['http://',IP_Adress_A,':8080', Get_Status].join(''));
                        console.log(Gesamt_Get);
                        request(Gesamt_Get, function (error, response, body) {

                                        parseString(body, function (err, result) {  
                                           // log("XML Objekt: " + result);
                                           // log(typeof(result));
                        
                                            xml = JSON.stringify(result); 
                                           // log("XML Objekt: " + xml);
                        
                                            var suchString = 'strValue":';
                                            var TXT_laenge = suchString.length;  
                                           // log("TXT_laenge: " + TXT_laenge);
                                            var TXT_begin = xml.indexOf('strValue":');
                                           // log("TXT_begin: " +  TXT_begin);
                                            var TXT_ende = xml.indexOf('","unit"');
                                           // log("TXT_ende : " +  TXT_ende );
                                            var TXT_zwischen = TXT_ende - TXT_begin - TXT_laenge;
                                           // log("TXT_zwischen: " + TXT_zwischen);
                        
                                            var erg = xml.substr(TXT_begin + 1 + TXT_laenge, TXT_zwischen-1); 
                                           // log(typeof(erg));
                        
                                            //setObject("javascript.0.ETA_Verbrauch_Daily_JS"/*ETA_Verbrauch_Daily_JS*/, erg);
                        
                                            if (Get_Status == "/user/var//112/10021/0/0/12016"){
                                                erg = parseInt(erg);
                                                log(erg);
                                               setState("javascript.0.ETA_Verbrauch_Daily_JS"/*ETA_Verbrauch_Daily_JS*/, erg); 
                                            }
                                            else if (Get_Status == "/user/var//112/10241/0/0/12197"){
                                                erg = erg.replace( /,/,"." );
                                                log(erg);
                                                erg = parseFloat(erg);
                                                log(erg);
                                               setState("javascript.0.ETA_Aussentemp_Daily_JS"/*ETA_Aussentemp_Daily_JS*/, erg); 
                                            }       
                                        });	
                        });
                        

                        }

                        // manueller Aufruf:
                        //ETA_Status_Aufruf(IP_Adress, ETA_GesamtVerbrauch);
                        //ETA_Status_Aufruf(IP_Adress, ETA_Aussentemp);
                        //ETA_Status_Aufruf(IP_Adress);

                        schedule("0 21 * * *", function () {
                        ETA_Status_Aufruf(IP_Adress, ETA_GesamtVerbrauch);
                        ETA_Status_Aufruf(IP_Adress, ETA_Aussentemp);
                        log("ETA Verbrauch Abruf durchgeführt");
                        });

                        schedule("0 22 * * *", function () {
                        sendTo('sql.0', 'query', 'SELECT id, (from_unixtime((ts / 1000))) AS time, val FROM ioBroker.ts_number WHERE (ioBroker.ts_number.id = 15) ORDER BY (from_unixtime((ts / 1000))) DESC LIMIT 2', function (result) {
                        if (result.error) {
                        console.error(result.error);
                        } else {
                        // show result
                        // console.log('Rows: ' + JSON.stringify(result.result));
                        // console.log(result.result[0].time)
                        // console.log(result.result[0].val)
                        // console.log(result.result[1].time)
                        // console.log(result.result[1].val)
                        var Differenz = (result.result[0].val) - (result.result[1].val);
                        console.log("Verbraucher letzter Tag: " + Differenz +" kg");
                        setState("javascript.0.ETA_Vebrauch_letzer_Tag"/ETA_Vebrauch_letzer_Tag/, Differenz);
                        }
                        });

                        // Pelletsverbrauch Durchschnitt ALL
                        sendTo('sql.0', 'query', 'SELECT id, (from_unixtime((ts / 1000))) AS time, val FROM ioBroker.ts_number WHERE (ioBroker.ts_number.id = 18) ORDER BY (from_unixtime((ts / 1000))) /DESC LIMIT 30/', function (result) {
                        if (result.error) {
                        console.error(result.error);
                        } else {
                        //console.log(result.result.length); //Anzahl der Unterobjekte im Objekt result
                        var i = 0;
                        var sum_old = 0;
                        var sum_new = 0;
                        var avg = 0;
                        for (i; i < result.result.length; i++ ) {
                        // console.log(result.result[i].val)
                        sum_new = sum_old + sum_new;
                        sum_old = (result.result[i].val);
                        }
                        avg = sum_new/(result.result.length);
                        console.log("Summe: " + (sum_new/(result.result.length)));
                        setState("javascript.0.ETA_Verbrauch_Daily_AVG_ALL", avg );
                        }
                        });

                        // Pelletsverbrauch Durchschnitt 7 Tage
                        sendTo('sql.0', 'query', 'SELECT id, (from_unixtime((ts / 1000))) AS time, val FROM ioBroker.ts_number WHERE (ioBroker.ts_number.id = 18) ORDER BY (from_unixtime((ts / 1000))) DESC LIMIT 7', function (result) {
                        if (result.error) {
                        console.error(result.error);
                        } else {
                        //console.log(result.result.length); //Anzahl der Unterobjekte im Objekt result
                        var i = 0;
                        var sum_old = 0;
                        var sum_new = 0;
                        for (i; i < result.result.length; i++ ) {
                        // console.log(result.result[i].val)
                        sum_new = sum_old + sum_new;
                        sum_old = (result.result[i].val);
                        }
                        avg = sum_new/(result.result.length);
                        console.log("Summe: " + (sum_new/(result.result.length)));
                        setState("javascript.0.ETA_Verbrauch_Daily_AVG_7", avg );
                        }
                        });
                        ` Im ersten Teil erzeuge ich eine Funktion die mir die Werte aus der ETA-Heizung holt (function ETA_Status_Aufruf). Im zweiten Teil rufe ich die Funktion einmal pro Tag auf und schreibe die Werte via sendTo in die SQL-DB). Im dritten Teil berechne ich Durchschnittverbräuche.

                        Das Widget sieht so aus: ~~[code]~~[{"tpl":"tplIFrame","data":{"g_fixed":true,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","refreshInterval":"0","seamless":"true","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"src":"http://192.168.178.120:8082/flot/index.html?range=20160&zoom=true&axeX=lines&axeY=inside&width=600&hoverDetail=true&height=350&aggregate=onchange&chartType=step&live=3600&instance=sql.0&l%5B0%5D%5Bid%5D=parser.0.ETA_Aussentemperatur&l%5B0%5D%5Boffset%5D=0&l%5B0%5D%5Baggregate%5D=minmax&l%5B0%5D%5Bcolor%5D=%231ec02f&l%5B0%5D%5Bthickness%5D=2&l%5B0%5D%5Bshadowsize%5D=2&l%5B0%5D%5Bsmoothing%5D=0&l%5B0%5D%5BafterComma%5D=0&l%5B0%5D%5Bmin%5D=-20&l%5B0%5D%5Bmax%5D=40&l%5B0%5D%5BchartType%5D=line&l%5B0%5D%5Bpoints%5D=false&l%5B0%5D%5Bname%5D=Aussentemperatur&l%5B0%5D%5BignoreNull%5D=false&l%5B0%5D%5Bxticks%5D=0&l%5B0%5D%5Byticks%5D=0&l%5B1%5D%5Bid%5D=javascript.0.ETA_Vebrauch_letzer_Tag&l%5B1%5D%5Boffset%5D=0&l%5B1%5D%5Baggregate%5D=minmax&l%5B1%5D%5Bcolor%5D=%2358ceed&l%5B1%5D%5Bmin%5D=0&l%5B1%5D%5Bmax%5D=40&l%5B1%5D%5Bthickness%5D=2&l%5B1%5D%5Bshadowsize%5D=2&l%5B1%5D%5Bname%5D=Verbrauch+Tag&l%5B1%5D%5BafterComma%5D=0&l%5B1%5D%5Bxaxe%5D=off&l%5B1%5D%5Bv%5D=javascript.0.ETA_Verbrauch_Daily_AVG_ALL&l%5B1%5D%5BignoreNull%5D=&aggregateType=step&aggregateSpan=300&relativeEnd=now&timeType=relative&useComma=false&noedit=true&animation=0&bg=6&barColor=%23000000&legend=nw&timeFormat=%25d.%25m.%25y&m%5B0%5D%5Bl%5D=1&m%5B0%5D%5Bv%5D=0&m%5B0%5D%5Bf%5D=0&m%5B0%5D%5Bc%5D=%23020203&m%5B0%5D%5Bt%5D=1&m%5B0%5D%5Bs%5D=1&m%5B0%5D%5Bd%5D=&m%5B0%5D%5Bp%5D=l&m%5B0%5D%5Bpy%5D=0&m%5B0%5D%5Bfc%5D=%23FF0000&m%5B0%5D%5Bfs%5D=3&m%5B1%5D%5Bl%5D=1&m%5B1%5D%5Bv%5D=javascript.0.ETA_Verbrauch_Daily_AVG_ALL&m%5B1%5D%5Bf%5D=false&m%5B1%5D%5Bc%5D=%23edfa74&m%5B1%5D%5Bt%5D=1&m%5B1%5D%5Bs%5D=1&m%5B1%5D%5Bd%5D=AVG_ALL&m%5B1%5D%5Bp%5D=l&m%5B1%5D%5Bpy%5D=0&m%5B1%5D%5Bfc%5D=%23edfa74&m%5B1%5D%5Bfs%5D=&m%5B2%5D%5Bl%5D=1&m%5B2%5D%5Bv%5D=javascript.0.ETA_Verbrauch_Daily_AVG_7&m%5B2%5D%5Bf%5D=0&m%5B2%5D%5Bc%5D=%23f44e17&m%5B2%5D%5Bt%5D=1&m%5B2%5D%5Bs%5D=1&m%5B2%5D%5Bd%5D=AVG_7Days&m%5B2%5D%5Bp%5D=l&m%5B2%5D%5Bpy%5D=0&m%5B2%5D%5Bfc%5D=%23f44e17&m%5B2%5D%5Bfs%5D=&m%5B2%5D%5Bvl%5D=&legBgOpacity=0.6&noBorder=noborder","class":"rotate270"},"style":{"left":"-90px","top":"130px","transform":"","width":"600px","height":"418px"},"widgetSet":"basic"}][/code][/i][/i][/i][/i]

                        1 Antwort Letzte Antwort
                        0
                        • G George_Best

                          Bei mir läuft ioBroker auf nem Raspi. Die SQL-Datenbanken liegen auch auf einer Synology.

                          Ich habe auch "klein" bei ioBroker angefangen. Das Licht im Flur via Taster in vis ein- und ausgeschaltet. Dann erstmal via Parser die Werte der ETA eingelesen usw. usw.

                          K Offline
                          K Offline
                          Kapsville
                          schrieb am zuletzt editiert von
                          #19

                          @george_best said in Starthilfe Iobroker und ETA Heizung visualisieren:

                          Bei mir läuft ioBroker auf nem Raspi. Die SQL-Datenbanken liegen auch auf einer Synology.

                          Ich habe auch "klein" bei ioBroker angefangen. Das Licht im Flur via Taster in vis ein- und ausgeschaltet. Dann erstmal via Parser die Werte der ETA eingelesen usw. usw.

                          Hallo,
                          parse hier auch gerade ein wenig herum - bekomme den Außentemperaturwert allerdings nicht extrahiert..

                          <eta version="1.0">
                          <value advTextOffset="0" unit="°C" uri="/user/var///76/10241/0/0/12197" strValue="-6,7" scaleFactor="10" decPlaces="1">-67</value>
                          </eta>

                          Kann mir hier jemand auf die Sprünge helfen? (Kesseltemperaturen etc funktioniert alles wunderbar)

                          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
                          FAQ Cloud / IOT
                          HowTo: Node.js-Update
                          HowTo: Backup/Restore
                          Downloads
                          BLOG

                          738

                          Online

                          32.5k

                          Benutzer

                          81.7k

                          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