Wärmepumpen mit Luxtronik 2 auslesen, verarbeiten und erweitern - AlphaInnotec, Novelan und andere

Hallo mb-stern

wie hast du das mit der Anzeige des COP gelöst?

dein WF gefällt :slightly_smiling_face:

Wärmeleistung durch Eingangsleistung teilen…

kannst du das auch einem „Dummen“ erklären :smiley:

brauche ich da wieder ein Script?

Ist nur ein kleiner php-Script
Wärmeleistung geteilt durch Eingangsleistung

<?
$var1 = GetValue(13040); 
$var2 = GetValue(35104); 
$ergebnis = $var1 / $var2; 
// Ausgabe in eine IPS-Variable: 
SetValue (57924,$ergebnis)
?>
1 „Gefällt mir“

Klasse

das reicht mir vollig aus

Danke

frohes Neues Jahr noch.

AIT Deutschland hat ein neues Update (3.88.0) für die Luxtronic 2 rausgebracht.

nach Installation soll die Abfrage der Datenpunkte im iobroker Modul nicht mehr funktionieren
ich befürchte jetzt, das das mit dem PHP Script und Symcon das gleiche passiert.

Kann das jemand bestätigen, oder besser kann mir jemand meine Befürchtungen nehmen.?

Ich bin bis jetzt sehr zufrieden mit der Wärmepumpe, und glücklich mit dem Script.

es wäre sehr schade, wenn sich das ändern würde

ist hier wirklich keiner, der dazu was sagen kann?

ich würde schon gerne das Update der Wärmepumpe machen, aber nicht um dann die Funktion
des schönen Scriptes zu verlieren

Warum willst du denn unbedingt das Update machen? Hast du Probleme mit der Steuerung? Ich werde das nicht machen, da die Pumpe ja genau das tut was sie soll. Warum also möchtest du das Risiko eingehen?

In meiner Branche heißt es

never change a running system

:slight_smile:

die Angabe der produzierten Wärmemenge soll nicht mehr ganz so euphorisch sein.

Ich will auch nicht unbedingt das Update machen.
Ich würde es gerne machen, wenn ich wüsste das dein Script dann noch funktioniert. :wink:

Du kannst das Update bedenkenlos probieren. Sollte das Update nicht den gewünschten Erfolg bringen oder den nicht gewünschten Misserfolg, kannst Du jederzeit wieder ein Downgrade machen. Wichtig, Du musst immer im Versionsbereich bleiben. Zum Beispiel von der 3.xx nach 3.xx. Oder von 2.xx nach 2.xx.

Gruß schulzenman

bist du da sicher?

im HTD schrieb einer

Zitat:

Ich habe auch die neue FW installiert und würde gerne wieder downgraden. Weiß jemand wie das geht? Gleich wie beim Update jedenfalls nicht.

Ich lese alle Daten der WP mittels Node-Red aus und das funktioniert nun leider nicht mehr. Mit der vorletzten Version ging es noch einwandfrei

Hallo sym-patix,

ich habe jetzt bei AIT angerufen und genau hinterfragt, was möglich und was nicht möglich ist. Also kleiner gleich Version 3.88.0 ist es immer möglich ein Downgrade der Software wie oben beschrieben durchzuführen. Ab der Version 3.88.0 ist es nicht mehr möglich. Dies ist softwaretechnisch bedingt und ein Downgrade ist nur noch durch den Austausch des Bedienteils möglich.

Gruß schulzenman

siehst du!

Gott sei Dank, war ich skeptisch und glaube nicht immer alles sofort was einer schreibt.

nach einem Changelog hast du nicht zufällig gefragt, oder?

Hallo,

vielen Dank für die Skripte. Ich finde die Zusammenstellung sehr Übersichtlich, und mit wenig Aufwand individuell anpassbar. Nach anfänglichen Fehlermeldungen läuft es bei mir nun auch.

ich musste

    function uProfileTemp($data){                                                                                       //umrechnung temperaturen
        if($data > 429496000)
            $data = bcsub($data, 429496000, 2);
        return bcmul($data, 0.1, 2);
    }

in

    function uProfileTemp($data){                                                                                       //umrechnung temperaturen
        if($data > 429496000)
            $data = bcsub($data, 429496000, 2);
        return bcdiv($data, 10, 2);
    }

ändern.
Kann es sein, dass es ein Problem „0.1“ gibt?

Da du ja schon eine Menge Parameter den Profilen zugeordnet hast, würde es viel Zeit und Aufwand ersparen, wenn du uns auch deine aktuelle Zuordnung von Variablentypen, Variablenprofilen und Umrechnungsprofilen zur Verfügung stellen könntest.

Hey @rodek82,

so wie die Scripte oben gepostet wurde, so laufen diese auch bei mir. Ich habe aktuell nicht mehr Variablen identifiziert, die mir von der WP zurück gemeldet werden. Alles was ich aktuell wissen möchte, habe ich identifiziert.

Das du die Methode uProfileTemp ändern musstest, deutet für mich darauf hin, das du eventuell eine andere WP im Einsatz hast oder eine andere Steuerung, kann das sein? Obwohl…wenn ich x mit 0,1 multipliziere dürfte das gleiche Ergebnis kommen wenn ich x mit 10 dividiere. Wieso dann die Änderung? Was meinst du mit Problem „0.1“?

Beste Grüße aus Cottbus

tomquenten

Hallo tomquenten,

danke für schnelle Antwort!

ich verwende dein Skript zum Testen wie folgt:

<?php
//variablentypen
//jeder wert den man von der wärmepumpe in die ipsymcon übernehmen möchte MUSS hier eine variablendefinition bekommen
//es MUSS also festgelegt werden, um welchen typ von variable es sich in der ipsymcon handeln soll
//das array brauch nicht erweitert werden, ipsymcon kennt (aktuell) nur 4 variablentypen
$vType = array(
    'variableBoo'       	=> array(),					//variablentyp boolean
    'variableInt'       	=> array(),					//variablentyp integer
    'variableFlo'       	=> array(10),					//variablentyp float
    'variableStr'       	=> array(),					//variablentyp string
//    'variableStr'       	=> array(1,2,3,4,5,6,7,8,9,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,258,259),					//variablentyp string
);

//variablenprofile
//jeder wert den man von der wärmepumpe in die ipsymcon übernehmen möchte KANN hier ein variablenprofil bekommen
//es KANN also festgelegt werden, wie die werte in der ipsymcon optisch dargestellt werden
//das array könnte jetzt unendlich mit eigenen profilen erweitert werden
$vProfile = array(
    'WPTemperatur'      	=> array(10),					//präfix °C
//     'WPEinAus'          	=> array(),					//kein präfix sondern farblich ein/aus
//     'WPBetriebsstunden' 	=> array(),					//präfix h
//     'WPKilowattstunden' 	=> array(),					//präfix kWh
//     'WPDruck'           	=> array(),					//präfix bar
//     'WPLiterStunde'     	=> array(),					//präfix l/h// 
//     'WPKilowatt'        	=> array(),					//präfix KW
//     'WPProzent'         	=> array(),					//präfix %
//     'WPKelvin'          	=> array(),					//präfix K
//     'WPFrequenz'        	=> array(),					//präfix Hz
);

//umrechnungsprofile
//jeder wert den man von der wärmepumpe in die ipsymcon übernehmen möchte KANN hier ein umrechnungsprofil bekommen
//es KANN also festgelegt werden, ob der übermittelte rohwert noch bearbeitet werden muss
//das array kann jetzt unendlich mit eigenen profilen erweitert werden
$uProfile = array(
    'uProfileTemp'          	=> array(10),					//umrechnung wert multiplizieren mit 0.1, 2 nachkommastellen
//    'uProfileTimeToHours'   	=> array(),					//umrechnung wert teilen durch 3600, 2 nachkommastellen
 //   'uProfileMDHis'         	=> array(),					//formatiereung zu 00:00:00
 //   'uProfileWPZust'        	=> array(),					//ermittlt mithilfe des codes den zustand der wp
 //   'uProfileDMYHIS'        	=> array(),					//formatiereung zu tag.monat.jahr Stunden:minute:sekunde
 //   'uProfileDruck'         	=> array(),					//umrechnung wert teilen durch 100, 4 nachkommastellen
 //   'uProfileELeistung'     	=> array(),					//umrechnung wert teilen durch 1000, 2 nachkommastellen
 //   'uProfileKwh'           	=> array(),					//umrechnung wert teilen durch 10, 2 nachkommastellen
 //   'uProfileKw'            	=> array(),					//umrechnung wert teilen durch 10, 2 nachkommastellen
 //   'uProfileWPKelvin'      	=> array(),					//umrechnung wert teilen durch 10, 2 nachkommastellen
);
//106,107,108,109,110,
$array = array();
for($i=0; $i<=$valueCount; $i++){						//valueCount kommt aus der wpcommunication und enthält nur den wert der von der wp übermittelten anzahl an datenfelder
    $array[$i]                = $wpClass->getStdObj();				//erstelle erst einmal das standardobjekt
    $array[$i]->Name          = $dataSet[$i];					//weise diesem nun einen namen zu, der name steht in der wpValue
    $array[$i]->Profile       = $wpClass->getProfiles($vProfile, $i);		//hole das passende variablen profil damit es in der symcon optisch hübsch dargestellt wird
    $array[$i]->UmrechnungTyp = $wpClass->getProfiles($uProfile, $i);		//hole das passende umrechnungs profil
    $array[$i]->VariablenTyp  = $wpClass->getProfiles($vType, $i);		//hole das passende variablen type profil, also string, float, etc...

wenn ich das skript wie von dir mit

return bcmul($data, 0.1, 2);

ausführe bekomme ich eine Fehlermeldung.

Warning: bcmul(): bcmath function argument is not well-formed

wenn ich

return bcdiv($data, 10, 2);

verwende, läuft es ohne Fehler. Das irritiert mich, da beides zum gleichen Ergebnis kommen sollte.
Ich arbeite hier auf einem Windows System, kann es was mit der Formatierung oder „Punkt“ zu tun haben?
Das ist aber nichts Kritisches, ich möchte es nur verstehen.

Ich habe die Scripte aus deinem Beitrag vom 01.09.22 verwendet. Da sind leider die Zuordnungen der Profile nicht drin gewesen. Und ich dachte, bevor ich mir das neu zusammen suchen muss, frage ich lieber nochmal nach :wink:

VG Dirk

Bei Windows habe ich aufgehört zu lesen. :smile:
So Spass beiseite, versuche mal folgendes…

Ersetze
return bcmul($data, 0.1, 2)
durch
return bcmul($data, 0,1, 2);
und schreib mir mal was dabei raus kommt… DANKE

Is glaube ich auch Qatsch, 2 Kommas hintereinander, wie soll das PHP verstehen…mach mal so…
return bcmul($data, '0,1', '2');

Bei Windows habe ich aufgehört zu lesen. :smile:

:sweat_smile: das hatte ich schon vermutet…

return bcmul($data, '0,1', '2');

hat funtkioniert.
das Vorherige habe ich gar nicht erst probiert.

Hallo @mb-stern ,

kannst du verraten wie du die Steuerung der Betriebsarten realisiert hast?
Kannst du auch die Werte der Heizkurve wie in der App mit einem Offset +/- regeln?

VG Dirk

Hi @rodek82

Herzlich Willkommen hier im Forum

darf ich fragen welche AIT WP du genau hast, und wichtiger sogar welche Firmware Version?

über eine Rückmeldung würde mich freuen