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. Skripten / Logik
  4. JavaScript
  5. HomeControlCenter van Bartels/Ravensberger Solar

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.4k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    960

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

HomeControlCenter van Bartels/Ravensberger Solar

Geplant Angeheftet Gesperrt Verschoben JavaScript
1 Beiträge 1 Kommentatoren 469 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.
  • J Offline
    J Offline
    JackON
    schrieb am zuletzt editiert von JackON
    #1

    Hallo zusammen!

    Seit nunmehr 2 Jahren läuft bei mir (wohlgemerkt fast Problemlos) eine Raspberry mit IObroker.
    Um den steigenden Strompreisen entgegen zu arbeiten habe ich mir heuer eine thermische Solaranlage für die Warmwassererzeugung geholt.
    Leider bin ich wie man im Internet lesen kann wie viele andere den Fake Bewertungen der Fa. Ravensberger Solar auf den Leim gegangen. Der mitgelieferte Regler (wird unter dem Namen "HomeControlCenter" vertrieben)
    arbeitet zwar offline
    das war leider eine Falsche Annahme, Regelung läuft alles online wenn ich mir den Quelltext so ansehe
    allerdings kann man das auslesen der Werte und setzen von Einstellungen nur online über die eigene Website vornehmen.
    Schnittstellen gibt es keine. (Zumindest keine vom Hersteller dokumentierte)
    Zu allem Überfluss ist die Firmware auch noch so schlecht programmiert dass sich der Controller in unregelmäßigen Abständen (12-72 Stunden) aufhängt.
    Der Service der Firma ist unterirdisch, telefonisch gibt es eine Mehrwertnummer unter welcher man sich für Warteschleifenmelodie und unqualifizierte und unfreundliche Antworten noch Geld aus der Tasche ziehen lassen kann.
    Wenn ich das was ich jetzt weiß vorher gewusst hätte wäre es wohl eine Steuerung der TA geworden...
    Leider reicht jetzt das Budget dafür nicht mehr und eine Rücksendung ist gelinde gesagt wenn ich mir die Erfahrungsberichte mit dieser Firma ansehe Hoffnungslos.
    Um jetzt die Heizpatrone (hängt an einem Shelly) trotzdem sinnvoll zu steuern und die Anlage automatisch bei einem Hänger zu resetten bis ich etwas anderes habe benötige ich die Daten der thermischen Anlage von der Website.

    Ich habe über die Google-Suche und auch über die Forensuche zwar ein paar Projekte gefunden die ähnlich sind,
    allerdings komme ich mit Javascript nicht klar und kann die Scripte nicht an meine Anforderung umschreiben.

    Kann mir hier jemand von euch helfen?

    Die Seite um welches es geht:
    http://energycenter.vonbartels.de
    (Zugangsdaten kann ich gerne per PM zu diagnosezwecken zur Verfügung stellen)

    Der Quelltext und ein Screenshot welche Daten ich brauche:
    Übersicht.txt Übersicht.png Login-Page.txt

    Und noch abschließend mein versuch etwas bestehendes dafür umzuschreiben
    Ab Zeile 108 komme ich dann nicht weiter weil ich nicht weis wie ich die Daten eingrenzen bzw. Abfragen soll:

    const dpSchema = "javascript.0.Solar.Schema";
    const dpLastCon = "javascript.0.Solar.LetzteVerbindung";
    const dpRelai1 = "javascript.0.Solar.Relai1";
    const dpRelai2 = "javascript.0.Solar.Relai2";
    const dpRelai3 = "javascript.0.Solar.Relai3";
    const dpRelai4 = "javascript.0.Solar.Relai4";
    const dpRelai5 = "javascript.0.Solar.Relai5";
    const dpRelai6 = "javascript.0.Solar.Relai6";
    const dpRelai7 = "javascript.0.Solar.Relai7";
    const dpRelai8 = "javascript.0.Solar.Relai8";
    const dpSensorS1 = "javascript.0.Solar.SensorS1";
    const dpSensorS2 = "javascript.0.Solar.SensorS2";
    const dpSensorS3 = "javascript.0.Solar.SensorS3";
    const dpSensorS4 = "javascript.0.Solar.SensorS4";
    const dpSensorS5 = "javascript.0.Solar.SensorS5";
    const dpSensorS6 = "javascript.0.Solar.SensorS6";
    const dpSensorS7 = "javascript.0.Solar.SensorS7";
    const dpSensorS8 = "javascript.0.Solar.SensorS8";
    const dpSensorS9 = "javascript.0.Solar.SensorS9";
    const dpSensorS10 = "javascript.0.Solar.SensorS10";
    const dpSensorDS15 = "javascript.0.Solar.SensorDS15";
    const dpSensorDS16 = "javascript.0.Solar.SensorDS16";
    const dpSensorDS17 = "javascript.0.Solar.SensorDS17";
    const dpSensorDS18 = "javascript.0.Solar.SensorDS18";
    const dpSensorDS19 = "javascript.0.Solar.SensorDS19";
    const dpSensorDS20 = "javascript.0.Solar.SensorDS20";
    const dpSensorDS21 = "javascript.0.Solar.SensorDS21";
    const dpSensorDS22 = "javascript.0.Solar.SensorDS22";
    const dpSensorDS23 = "javascript.0.Solar.SensorDS23";
    const dpSensorDS24 = "javascript.0.Solar.SensorDS24";
    const dpSensorDS25 = "javascript.0.Solar.SensorDS25";
    const dpSensorDS26 = "javascript.0.Solar.SensorDS26";
    const dpSensorDS27 = "javascript.0.Solar.SensorDS27";
    const dpSensorDS28 = "javascript.0.Solar.SensorDS28";
    const dpSensorDS29 = "javascript.0.Solar.SensorDS29";
    const dpSensorDS30 = "javascript.0.Solar.SensorDS30";
    const dpSensorDS31 = "javascript.0.Solar.SensorDS31";
    const dpSensorDS32 = "javascript.0.Solar.SensorDS32";
    const dpSensorDS33 = "javascript.0.Solar.SensorDS33";
    const dpSensorDS34 = "javascript.0.Solar.SensorDS34";
    
    var user = "****";
    var pass = "*****";
     
     
    const request = require("request");
    const cheerio = require("cheerio");
     
    async function main() {
     
      var optionsLogin = {
        method: 'POST',
        url: "http://energycenter.vonbartels.de/",
        body: "BENUID=" + user + "&PASSWT=" + pass + "&login-form-submit=login",
        jar: true,
        followRedirect:true,
        followAllRedirects :true,
        headers: {
          "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
          "accept-encoding": "gzip, deflate, br",
          "accept-language": "de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7",
          "cache-control": "no-cache",
          "content-type": "application/x-www-form-urlencoded",
          "dnt": "1",
          "origin": "http://energycenter.vonbartels.de/",
          "pragma": "no-cache",
          "sec-ch-ua": "\"Not?A_Brand\";v=\"8\", \"Chromium\";v=\"108\", \"Google Chrome\";v=\"108\"",
          "sec-ch-ua-mobile": "?0",
          "sec-ch-ua-platform": "\"Windows\"",
          "sec-fetch-dest": "empty",
          "sec-fetch-mode": "cors",
          "sec-fetch-site": "same-origin",
          "upgrade-insecure-requests": "1",
          "User-Agent": " Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36",
          "cookie": "cAccept=true; NETSERVICE=true; IQCARDPASSWT=; IQCARDBENUID= ",
          "Referer": "http://energycenter.vonbartels.de/"
        }
      };
      var optionsReglerinfo = {
        method: 'GET',
        url: "http://energycenter.vonbartels.de/startseite",
        jar: true,
        followRedirect:true,
        followAllRedirects :true,
        headers: {
          "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
          "accept-encoding": "gzip, deflate, br",
          "accept-language": "de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7",
          "cache-control": "no-cache",
          "dnt": "1",
          "origin": "http://energycenter.vonbartels.de",
          "pragma": "no-cache",
          "sec-ch-ua": "\"Not?A_Brand\";v=\"8\", \"Chromium\";v=\"108\", \"Google Chrome\";v=\"108\"",
          "sec-ch-ua-mobile": "?0",
          "sec-ch-ua-platform": "\"Windows\"",
          "sec-fetch-dest": "empty",
          "sec-fetch-mode": "cors",
          "sec-fetch-site": "same-origin",
          "sec-fetch-user": "?1",
          "upgrade-insecure-requests": "1",
          "User-Agent": " Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36",
          "Referer": "http://energycenter.vonbartels.de"
        }
      };
      request.jar();
      request.post(optionsLogin,()=>{
        request.get(optionsReglerinfo,(error, response, body)=>{
          const $ = cheerio.load(body);
          let titles = $('div[class="panel-body"] > fieldset > legend > strong').map((i,el)=>$(el).text().replace("Preise","").trim());
          let dates = $('div[class="panel-body"] > fieldset').contents().filter(function() {
            return this.nodeType == 3 && this.data.replace(/\s/gm,"")!=""
          }).map((i,el)=>$(el).text().replace(/\s/gm,"").slice(0,-1));
          let prices = $('div[class="panel-body"] > fieldset > strong').map((i,el)=>$(el).text());
          if (titles.length==dates.length && titles.length==prices.length) {
            console.debug("website structure OK, found matching elements");
          } else {
            console.debug("website structure is not OK, elements doesnt match");
            return;
          }
          let data={};
          for (var i=0;i<titles.length;i++) {
            data[titles[i]]={
              title:titles[i],
              date:dates[i],
              price:prices[i]
            };
          };
          console.debug(data);
          writeDatapoint(data);
        });
      });
      function writeDatapoint(data) {
        console.debug("write dpSchema");
        setState(dpSchema,JSON.stringify(data));
      }
    }
    main()
    
    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

    479

    Online

    32.6k

    Benutzer

    82.2k

    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