NEWS
Test Adapter weishaupt WEM Portal v0.0.x
-
@tombox
Danke für das schnelle Update. Die Befehle gehen jetzt, ich weiß aber nicht so recht warum. Zum einen passen die Links immer noch nicht überein und in der main.js multiplizierst du die state.values nochmal mit 10.Der Befehl funktioniert aber nur, wenn ich für eine gewünschte Temperatur von 20,0°C den Wert 200 übergebe. Würde dein Befehl dann nicht 2000 in das Feld eintragen? Über Costum-Befehl funktioniert es mit beiden Links und mit der Werteübergabe von 200.
Hier nochmal die Links zur Warmwasser-Solltemperatur:
Link aus dem WEM-Portal:
https://www.wemportal.com/Web/UControls/Weishaupt/DataDisplay/WwpsParameterDetails.aspx?entityvalue=4600420100003C0055400060FD0300110104&readdata=True&rwndrnd=0.13499713276591585
und hier der Link aus der main.js
https://www.wemportal.com/Web/UControls/Weishaupt/DataDisplay/WwpsParameterDetails.aspx?entityvalue=46004201000037003C4000B9EF0300110104&readdata=True&rwndrnd=0.2514459684152772
Im Grund ist das nichts gravierendes, dass du ändern musst. Ich frage eigentlich nur verständnisshalber, sodass ich auch mal selbst Parameter zum Ändern anlegen kann.
Interessanter fände ich, neben den Werten auf der Infoseite auch die Werte der anderen Untermenüs bereitzustellen. In einer externen Visualisierung bekommt man ansonsten ja nicht mit, wenn Werte direkt am Gerät oder über das WEM-Portal geändert werden. Das sollte doch recht einfach mit einem Wechsel auf das entsprechende Untermenü und der Verwendung der gleichen for-Schleife wie für das Info-Menü möglich sein???
Ich würde mich hier durchaus auch gerne selbst versuchen, dann haben wir aber anschließend 2 Repos....
-
@Sp0b1e Das * 10 ist dazu das man eine Temperatur normal eingeben kann mit 20.5 oder 21.5 dann wandelt er es gleich in 205 oder 215 um. für custom Befehl muss du korrekterweiße dann selber 215 eingeben. Aber die nicht wwp geräte haben 20 oder 21 deswegen habe ich es einheitlich gemacht.
du kannst gerne mein repo forken
und dann wenn du fertig bist ein pull request across forks stellen damit ich es in mein repo übernehmen kann.
Ich habe leider keine weitere Zeit an dem Adapter zu arbeiten, habe nur wegen dem Interesse die Grundlage gelegt.
-
@tombox
Ich muss aber bei den normalen Befehlen für die Temperatur auch 205 oder 215 eingeben. Ansonsten funktioniert es nicht.Ok, ich werde das mit dem forken mal versuchen.
Wie gesagt, ein großer Grundstein ist ja schon gelegt. Vielen Dank nochmal dafür.
-
@Sp0b1e Bei mir geht 21.5 du darfst nur kein Komma verwenden.
-
@tombox
Ich habe mir den Code mal etwas detaillierter angesehen und verstehe den Ablauf und die Befehle grundsätzlich. Das Einzige bei dem ich Verständnisprobleme habe, ist der Login und das wechseln auf die Fachmannseite. Entsprechend finde ich gerade auch keine Lösung auf die anderen Untermenüs zu gelangen. Dazu fehlt mir einfach die Erfahrung in JS und Java ist auch schon etwas länger her...
Kannst du hier vielleicht eine kleine Funktion bereit stellen, die in die entsprechenden Untermenüs wie "Systembetreibsart", "Heizkreis", "Warmwasser", etc.. wechselt? -
@Sp0b1e du brauchst nur __EVENTTARGET und __EVENTARGUMENT das kannst du mit einem proxy wie charles oder mitm proxy oder in dem network von der chrome dev console.
Heizkrei ist zb
__EVENTTARGET: ctl00$rdMain$C$controlExtension$iconMenu$rmMenuLayer
__EVENTARGUMENT: 2 -
Der Adapter ist ja sehr interessant, habe ich schon lange gesucht.
Ist es möglich, über ioBroker die Vorlauftemperatur des Brennwertkessels zu
verändern, so ca. +- 10K zusätzlich zur bestehenden Aussentemperatur-Führung?Ich möchte damit die Leistung über die bereits installierte Einzelraumregelung
entsprechend dem Bedarf korrigieren. -
@hanss
Du kannst nur die Parameter ändern, die Du auch im Wem-Portal ändern kannst. Würde mich wundern, wenn Du die Vorlauf Solltemperatur direkt einstellen könntest. Du kannst die Raumsolltemperaturen oder die Heizkurve anpassen.... -
@Tg-71
Wenn man die Raumsolltemperatur ändern kann, dann wäre das doch was ich brauche:
Raumsolltemperatur +1K entspricht doch Vorlaufsolltemperatur +2K oder nicht? -
@Tg-71
@hanss
Ich kann bei mir die Anforderung unter Heizkreis auf Festwert stellen. Dann kann ich direkt den Sollwert für die Vorlauftemperatur vorgeben. Diese ist dann aber nicht mehr abhängig von der Witterung.
Ich kann aber auch eine Anforderungsüberhöhung zwischen +-5K im witterungsgeführten Betreibsmodus vorgeben. Das wäre in Grunde genau das was du suchst.
Ich habe ein Split-Wärmepumpe, vielleicht gibt es die Einstellungen bei deinem Bennwertkessel auch....
-
@Sp0b1e
Vielen Dank, aber die Möglichkeiten der Einstellung sind natürlich abhängig von der Steuerung/Regelung
mit der man es zu tun hat. In meinem Fall benötige ich die Info für die Weishaupt WTC 15A. -
@tombox said in Test Adapter weishaupt WEM Portal v0.0.x:
@Sp0b1e du brauchst nur __EVENTTARGET und __EVENTARGUMENT das kannst du mit einem proxy wie charles oder mitm proxy oder in dem network von der chrome dev console.
Heizkrei ist zb
__EVENTTARGET: ctl00$rdMain$C$controlExtension$iconMenu$rmMenuLayer
__EVENTARGUMENT: 2Ja ich hatte __EVENTTARGET und __EVENTARGUMENT schon mit der chrom dec console ausgelesen. Bin aber noch zu keinem funktionierenden Ergebnis gekommen. Du hattest noch den "ClientState" gesetzt, muss ich das beim Wechseln ins Untermenü auch setzt?
Ich hatte versucht mit deiner switchFachmann()-Funktion im normalen Benutzermodus auf das Untermenü Heizkreis zuzugreifen, indem ich das von dir definierte __EVENTTARGET und __EVENTARGUMENT mit den ausgelesenen Werten ersetzt habe.
//form["__EVENTTARGET"] = "ctl00$SubMenuControl1$subMenu"; //form["__EVENTARGUMENT"] = "3"; //form["ctl00_SubMenuControl1_subMenu_ClientState"] = '{"logEntries":[{"Type":3},{"Type":1,"Index":"0","Data":{"text":"Übersicht","value":"110"}},{"Type":1,"Index":"1","Data":{"text":"Anlage:","value":""}},{"Type":1,"Index":"2","Data":{"text":"Benutzer","value":"222"}},{"Type":1,"Index":"3","Data":{"text":"Fachmann","value":"223","selected":true}},{"Type":1,"Index":"4","Data":{"text":"Statistik","value":"225"}},{"Type":1,"Index":"5","Data":{"text":"Datenlogger","value":"224"}}],"selectedItemIndex":"3"}' form["__EVENTTARGET"] = "ctl00$rdMain$C$controlExtension$iconMenu$rmMenuLayer"; form["__EVENTARGUMENT"] = "2"; form["ctl00_rdMain_C_controlExtension_iconMenu_rmMenuLayer_ClientState"] = '{"logEntries":[],"selectedItemIndex":"2"}'
Leider geht es wohl nicht so einfach oder ich habe einen Denkfehler. Ich bin mit der Syntax auch nicht wirklich vertraut.
Ergbniss ist, dass in den logs im ioBroker der body als debug-Information ausgeworfen wird... -
@Sp0b1e Ich habe . mir das mal kurz angeschaut und sieht soweit gut aus er liefert direkt die html datei mit den werten man müsste jetze direkt danach
for (const dataCell of dom.window.document.querySelectorAll(".simpleDataIconCell")) {
ausführen um die werte abzugreifen.
Bzw es gibt dann kein
if (body.indexOf('Object moved to <a href="https://www.wemportal.com/Web/Default.aspx"') !== -1) {
mehr das resolve muss also davor passieren.
Es wäre besser wenn man followAllRedirects: false auf true setzen und dann ist auch bei switch auf fachmann gleich der body mit den inhalten da und muss nicht erst nochmal in getStatus requested werden. dem getStatus könnte man den jeweiligen body übergeben.
-
Kleiner Bug
Bei mir läuft der Adapter jetzt seit drei Wochen problemlos. Ich logge die relevanten Daten mit und sehe dass diese korrekt sind. Auch habe ich eine Vis erstellt, so dass man jetzt vom Wohnzimmer die Heizung steuern kann ohne in den Keller gehen zu müssen.
Einen kleinen Fehler habe ich gefunden, über dessen Korrektur ich mich freuen würde:
Unter "Status" wird der Status des Warmwassers (müsste eigentlich bei StatusWW erscheinen) angezeigt. Es wäre schön, wenn der Status der Heizung (Zeitprogramm/Absenk/Normal/Komfort) dort und der WW Status unter der entsprechenden Rubrik (Status WW) angezeigt würde.
@tombox wenn Du dazu nochmal einen Zugang zu meinem System brauchst, stelle ich diesen gerne her. -
@Olivbus Werden diese Information auf der Fachmann Seite angezeigt?
-
@tombox Ja, ich glaube der eine Wert ist im Adapter vertauscht und der andere nicht angelegt. Kann das sein?
-
@Olivbus Aber ich sehe diese Werte nicht auf der Infoseite von Fachmann hast du ein Screenshot?
-
@tombox ![Bild Text](Bild Link)
-
@Olivbus Ich habe mal versucht in der neusten Version das Problem zu lösen in dem ich die Status durchnummeriere
-
@tombox Habe die neue Version geladen, sehe aber keinen Unterschied bei "Status" und "StatusWW". Bei Betriebsart erscheint jetzt eine Zahl hinter Zeitprogramm 1?