Alpha Innotec Wärmepumpe über Lan anbinden

Hallo, am Port liegt es nicht - mit 8889 kommt keine Vebindung zustande.

Die Werte werden mir angezeigt, in der Konsole ändert sich nur nichts …

Jetzt erwarte ich, dass die Variablen den Zeitstempel 13:34 bekommen. An der Aussentemperatur kann man gut sehen, dass sich auch inhaltlich nichts ändert (steht auf 5, lt. PopUp 6,3)

Muss ich da noch irgendwo etwas einstellen?

Hast Du das Script WP_Daten richtig eingebunden? (Kann gerade nicht nachsehen, wie es wirklich heißt …)

Was meinst du mit „richtig eingebunden“?

Im wp_daten_holen-Skript habe ich nur die includes angepasst, damit der Socket aufgebaut werden kann.

Muss ich im java-skript noch etwas anpassen?

Die Verbindung klappt, es werden Werte ausgelesen, das Installationsskript hat die Variablen angelegt …

Es kann doch eigentlich nur noch eine Kleinigkeit sein …

Gruß
Michael

Das mit den includes meinte ich…

Mir gehen die Ideen aus.

Hab zwar jetzt die ganzen print_f auskommentiert,aber genauso sah es bei mir auch aus…wenn das Skript zu den ganzen Ausgaben kommt,sollten eigentlich die Variablen auch aktualisiert sein…Da fällt mir jetzt auch mehr zu ein.

Gesendet von meinem HTC One M9 mit Tapatalk

…nicht mehr…

Gesendet von meinem HTC One M9 mit Tapatalk

mir auch - trotzdem danke!:slight_smile:

Kopier mal Dein Script hier rein.

@Sven TJB: Man kann Beiträge auch editieren.

Moni,
hier ist mein

wp_daten_holen (aus dem zip-file von tschewie):

<?
//includes
//include "config.php";
//include "java_daten.php";

include "30863.ips.php";
include "50872.ips.php";


//Variablen
$sBuff = 0;
$time1 = time();
$filename = "test.tst";
$JavaWerte = 0;
$refreshtime = 5; //sekunden

echo '<meta http-equiv="refresh" content="5" >';

// connecten
$socket = socket_create(AF_INET, SOCK_STREAM,0);
$connect = socket_connect($socket, $IpWwc, $WwcJavaPort) || exit("socket_connect fehlgeschlagen");


if ($connect = 1)
	echo "PASS: Verbunden mit WWC Java Console $IpWwc Port: $WwcJavaPort <br>";
else
	echo "ERROR: Nicht verbunden mit WWC Java Console  <br>";

$timestamp= time();
$datum = date("d.m.Y",$timestamp);
$uhrzeit = date("H:i:s",$timestamp);
printf('============================================================== <br>');
printf('Ausleszeit: %s - %s Uhr <br>',$datum,$uhrzeit);
printf('Refresh alle 5s !<br>');
printf('! TEST !<br>');
printf('============================================================== <br>');
//---------------------------------------------------------------------------

// Daten holen
$msg = pack('N*',3004);
//printf('msg:%s <br>',$msg);
$send=socket_write($socket, $msg, 4); //3004 senden
//printf('Bytes send:%d <br>',$send);


$msg = pack('N*',0);
//printf('msg:%s <br>',ord($msg));
$send=socket_write($socket, $msg, 4); //0 senden
//printf('Bytes send:%d <br>',$send);


socket_recv($socket,$Test,4,MSG_WAITALL);  // Lesen, sollte 3004 zurückkommen
$Test = unpack('N*',$Test);
//printf('read:%s <br>',implode($Test));

socket_recv($socket,$Test,4,MSG_WAITALL); // Status
$Test = unpack('N*',$Test);
printf('Status:%s <br>',implode($Test));

socket_recv($socket,$Test,4,MSG_WAITALL); // Länge der nachfolgenden Werte
$Test = unpack('N*',$Test);
printf('Länge der nachfolgenden Werte:%s <br>',implode($Test));

$JavaWerte = implode($Test);
printf('============================================================== <br>');

for ($i = 0; $i < $JavaWerte; ++$i)//vorwärts
{
socket_recv($socket,$InBuff[$i],4,MSG_WAITALL);  // Lesen, sollte 3004 zurückkommen
$daten_raw[$i] = implode(unpack('N*',$InBuff[$i]));
//printf('InBuff(%d): %d <br>',$i,$daten_raw[$i]);
}
//socket wieder schliessen
socket_close($socket);

// Werte anzeigen
for ($i = 0; $i < $JavaWerte; ++$i)//vorwärts
{
if ($i >= 10 & $i <= 28) // Temperaturen
	{($daten_raw[$i] = $daten_raw[$i]*0.1);
	  printf('(%d)%s : %.1f &#176C<br>',$i,$java_dataset[$i],$daten_raw[$i]);
	}

if ($i >= 29 & $i <= 34) // Eingänge
{if ($daten_raw[$i] == 1)
	printf('(%d)%s : EIN<br>',$i,$java_dataset[$i]);
 else
	printf('(%d)%s : AUS<br>',$i,$java_dataset[$i]);
}

if ($i == 35) // Ausgänge
	printf('(%d)%s : %.1f Volt<br>',$i,$java_dataset[$i],$daten_raw[$i]);

if ($i >= 36 & $i <= 55) // Ausgänge
{if ($daten_raw[$i] == 1)
	printf('(%d)%s : EIN<br>',$i,$java_dataset[$i]);
 else
	printf('(%d)%s : AUS<br>',$i,$java_dataset[$i]);
}

if ($i == 56) // Zähler
	{($daten_raw[$i] = $daten_raw[$i]/3600);
	  printf('(%d)%s : %.2f h<br>',$i,$java_dataset[$i],$daten_raw[$i]);
	}
if ($i == 57) // Zähler
	{($daten_raw[$i] = $daten_raw[$i]);
	  printf('(%d)%s : %d<br>',$i,$java_dataset[$i],$daten_raw[$i]);
	}
if ($i == 58) // Zähler
	{($daten_raw[$i] = $daten_raw[$i]/3600);
	  printf('(%d)%s : %.2f h<br>',$i,$java_dataset[$i],$daten_raw[$i]);
	}
if ($i == 59) // Zähler
	{($daten_raw[$i] = $daten_raw[$i]);
	  printf('(%d)%s : %d<br>',$i,$java_dataset[$i],$daten_raw[$i]);
	}

if ($i >= 60 & $i <= 66) // Zähler
	{($daten_raw[$i] = $daten_raw[$i]/3600);
	  printf('(%d)%s : %d h<br>',$i,$java_dataset[$i],$daten_raw[$i]);
	}

if ($i >= 67 & $i <= 77) // AblaufZeiten
	{($daten_raw[$i] = date("H:i:s",$daten_raw[$i]));
	  printf('(%d)%s : %s<br>',$i,$java_dataset[$i],$daten_raw[$i]);
	}

if ($i >= 78 & $i <= 158) // AblaufZeiten
	{
	  printf('(%d)%s : %d<br>',$i,$java_dataset[$i],$daten_raw[$i]);
	}
}
$time2 = time();
print( "Auslesedauer: " . ($time2 - $time1) . " secs
");
?>

Was ist überhaupt mit der refesh-time von 5sec gemeint?

Gruß
Michael

In dem Skript, welches Du gepostet hast, wird zu keinem einzigen Zeitpunkt irgendeine Variable gesetzt. Das Skript zeigt die Werte nur an. Läuft also so, wie vom Skript vorgesehen.

Moin,

ich habe nichts verändert …

Ich bin bin raus - das übersteigt meine PHP-Kenntnisse.

Vielen Dank für alle Rückmeldungen.

Gruß
Michael

Hallo Michael.

Kopf hoch… Guck dir mal das Skript in Post nr 7 an.
Da werden die Variablen bei ‚Werte anzeigen‘ auch gesetzt.

Sven

Gesendet von meinem SM-T560 mit Tapatalk

Hi mstde / Michael
bzw auch für Andere interessant;

füge folgenden Code in // Werte anzeigen des wp_daten_holen ein, um die Wärmemengen abzufragen (Hz / BW / Schwimmbad / „seit dem Datum xxx“)!
Für die Gesamt_kWh muss noch eine float Variable erstellt werden, die dann in den Code einbgebaut werden muss…

if ($i >= 151 & $i <= 154) // Wärmemengen 151 bis 154
{
SetValueFloat(24989 /[Wärmepumpe\Daten Wärmepumpe\WMZ_gesamt]/,0); // Erstmal zurück setzen

			/////// 151 = WMZ_Heizung, 152 = WMZ_Brauchwasser //
   if ($i == 151)
       {
       	$Wert1 = $daten_raw[$i] ;
	   	printf('(%d)%s : %d h&lt;br&gt;',$i,$java_dataset[$i],$daten_raw[$i]);
   		$varid = CreateVariableByName($parentID, $java_dataset[$i], 2, 'WP_'.$java_dataset[$i], "", $i);//float
   		setValueFloat($varid,$daten_raw[$i]);
		 }
   if ($i == 152)
       {
       $Wert2 = $daten_raw[$i] ;
	   printf('(%d)%s : %d h&lt;br&gt;',$i,$java_dataset[$i],$daten_raw[$i]);
   	   $varid = CreateVariableByName($parentID, $java_dataset[$i], 2, 'WP_'.$java_dataset[$i], "", $i);//float
   	   setValueFloat($varid,$daten_raw[$i]);
		}
	   $Gesamt = $Wert1+$Wert2 ;
		SetValueFloat(24989 /*[Wärmepumpe\Daten Wärmepumpe\WMZ_gesamt]*/, $Gesamt);	 

}

Hallo Sven,
D A N K E !!

Es klappt jetzt, die Daten werden in die Variablen eingetragen und meiner Statistik steht nichts mehr im Wege.
Es gibt zwar eine Fehlermeldung:

Aber im Ergebnis klappt es trotzdem

Da kann ich den Fehler doch wohl ignorieren, oder?

Ich habe noch eine Umrechnung eingebaut, da die letzte Ziffer jeweils eine Nachkomma-Stelle ist.

Nochmals vielen Dank!

Gruß
Michael

Hallo zusammen,

habe erst vor kurzem mit IPS gestartet und bin noch blutiger Anfänger. Auch meine Programmierfähigkeiten sind nicht sehr hoch. Immerhin habe ich bis jetzt erfolgreich meine Harmony, Doorbird, Alpha2 und Homematic eingebunden.

Bei meiner Novelan Heizung mit Luxtronik 2 stehe ich aber auf dem Schlauch. Würdet ihr mir evtl. kurz für Anfänger erklären was ich genau machen muss um die wichtigsten Werte meiner Heizung einzubinden. Wichtig ist mir hier nur dass ich die Werte bzw. Fehlermeldungen angezeigt bekomme.

Vielen Dank

Tom

Also mir hat es geholfen, diesen Thread von Anfang bis Ende durchzulesen. Auslesen der Daten der Wärmepumpe funktionierte danach.

Ich empfehle Dir, damit anzufangen und Dich bei Problemen hier zu melden.

Gruß,
Christoph

Hallo nochmal,

ich habe die 3 Skripte (config, Java und wp daten) hinzugefügt und auch das Skript für die variablen.
Die Variablen wurden daraufhin auch erstellt und zeigen in der Console plausible Werte der Heizung an.

Nur leider wird im WebFront bei den Temperaturen Invalid profile angezeigt.
Zähler und Fehlerspeicher wird richtig angezeigt.

Kann sich das jemand erklären.

Gruß

Tom

Wenn Du den Variablen keine Variablenprofile zugewiesen hast, könnte ich mir das erklären.

Ok super klappt. Danke euch! Und ich habe ja gesagt ich bin absoluter anfänger :wink:

Macht ja nix. Wer sich hier nicht alles vorkauen lassen möchte und bereit ist, selbst Hand anzulegen, dem wird geholfen :wink: