Alpha Innotec Wärmepumpe über Lan anbinden

Hallo,

wo lege ich die dll-Datei hin?

Grüße
Mehdi

Ich habe die Version von Miniblister genommen,damit kommt zumindest die Kommunikation zustande und die Frage nach der dll stellt sich erst garnicht! Bist du grad dran,dein luxtronik zu verbinden?könntest du mir dann evtl ein paar Fragen beantworten? Zb sw-Version deiner luxtronik? Bei mir kommen immer noch nur Nullen zurück…

HI,

ich habe die Zip-Datei von tschewie (Post Nr. 2) genommen und den Script (Post Nr. 7). Die Importanweisungen im Script musst du entsprechend anpassen!

Wichtig ist noch im config.php die WP-IPAdresse!

Die DLL-Datei habe ich nicht gebraucht. Das ganze hat auf Anhieb funktioniert.

Ich habe Luxtronic 2.0, Softwareversion 1.77

Was zeigt die Konsole wenn du den Script startest?

Grüße
Mehdi

Ich hatte beide Versionen schon am laufen und bei der Version von Tschewie kam auch „…Java Verbindung hergestelt…“ (oder so).

So sieht das Debugging vom Socket aus, wenn ich alle 30s 3004 sende… Irgendwie kommen da nur Nullen zurück…
Genau so sieht es auch aus, wenn ich zB alle 5Min refreshe…

Wie sieht das bei euch aus?

Also irgendwas ist total durcheinander.

Die hast doch die Zipdatei entpackt.

Darin findest du drei PHP Dateien und eine DLL-Datei.

Du brauchst nur folgende PHP-Dateien:
config.php
java_daten.php

In config.php trägst du die WP IP Adresse ein.

Du kopierst diesen Code

<?php 
//includes 
include "innotec_wp"; 
include "java_daten"; 

//Dummy Modul anlegen als Heimat der Messdaten im Selben Pfad wie das Script 
$parentobject = IPS_GetObject($_IPS['SELF']); 
$parentID = $parentobject['ParentID']; 

//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]); 
      $varid = CreateVariableByName($parentID, $java_dataset[$i], 2, 'WP_'.$java_dataset[$i], "Temperatur_200_C", $i);//float
       setValueFloat($varid,$daten_raw[$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]); 
      $varid = CreateVariableByName($parentID, $java_dataset[$i], 2, 'WP_'.$java_dataset[$i], "", $i);//float
       setValueFloat($varid,$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]); 
      $varid = CreateVariableByName($parentID, $java_dataset[$i], 2, 'WP_'.$java_dataset[$i], "", $i);//float
       setValue($varid,$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]); 
      $varid = CreateVariableByName($parentID, $java_dataset[$i], 2, 'WP_'.$java_dataset[$i], "", $i);//float
       setValueFloat($varid,$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]); 
       $varid = CreateVariableByName($parentID, $java_dataset[$i], 2, 'WP_'.$java_dataset[$i], "", $i);//float
       setValue($varid,$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]); 
       $varid = CreateVariableByName($parentID, $java_dataset[$i], 2, 'WP_'.$java_dataset[$i], "", $i);//float
       setValueFloat($varid,$daten_raw[$i]); 
    } 
if ($i >= 95 & $i <= 99) // Errors 
    { 
      //printf('(%d)%s : %d<br>',$i,$java_dataset[$i],$daten_raw[$i]); 
       $varid = CreateVariableByName($parentID, $java_dataset[$i], 3, 'WP_'.$java_dataset[$i], "", $i);//integer
         $FehlerDatum = date("m.d.y",$daten_raw[$i]); 
        setValueString($varid,$FehlerDatum); 
    } 

if ($i >= 100 & $i <= 105) // Errors 
    { 
      //printf('(%d)%s : %d<br>',$i,$java_dataset[$i],$daten_raw[$i]); 
       $varid = CreateVariableByName($parentID, $java_dataset[$i], 3, 'WP_'.$java_dataset[$i], "", $i);//integer
         setValueString($varid,$daten_raw[$i]); 
    } 
} 

function CreateVariableByName($id, $name, $type, $ident, $profile, $position) 
{ 
    $vid = @IPS_GetObjectIDByIdent ($ident, $id); 
    if($vid === false) 
    { 
        $vid = IPS_CreateVariable($type); 
        IPS_SetParent($vid, $id); 
        IPS_SetName($vid, $name); 
        IPS_SetIdent($vid, $ident); 
        IPS_SetInfo($vid, ""); 
        IPS_SetPosition($vid, $position); 

          if($profile !== "") 
        { 
            IPS_SetVariableCustomProfile($vid, $profile); 
        } 
    } 
    return $vid; 
} 
?> 

in eine Datei und speicherst die Datei als Script ab. Vorher die zwei include-Anweisungen ganz oben entsprechend anpassen.

Danach lässt du den Script laufen und screenshot hier posten.

Grüße
Mehdi

brauchst natürlich die wp_daten_holen.php auch noch. Sorry habst vergessen :smiley:

PASS: Verbunden mit WWC Java Console 192.168.2.18 Port: 8888 ==============================================================
Ausleszeit: 03.02.2016 - 19:47:27 Uhr Refresh alle 5s !! TEST !==============================================================
Status:0 Länge der nachfolgenden Werte:0 ==============================================================
Auslesedauer: 0 secs

Das spuckt mir die Console aus.

jetzt müssten auch die Werte drin stehen! Oder hast du immer noch Nullen?

Ach jetzt sehe ich es!

Kannst du mit deinem alphainnotec App mit dem Smartphone auf die WP zugreifen?

und da ist mein skript

Hab die app nicht, aber per browser…

Welche luxtronic hast du?

Oh Mann. War die ganze Zeit von 2.0 ausgegangen,scheint aber wohl doch die 2.1 zu sein. Sollten die tatsächlich das Protokoll geändert haben?

Würde mich wundern aber das scheint das einzig logische zu sein.

Ruf doch mal bei der Technikhotline an.

Will do! Sieht das webinterface bei 2.0 anders aus?

Bin bis jetzt nur mit dem APP rein :rolleyes:

Ich probiere es heute Abend und sag Bescheid

Wir könnten auch den HTTP Protokoll auslesen falls alle Stricke reissen sollten.

Aber bist du sicher dass du den 2.1 hast?

  • in der Fritzbox wird die IP der WP immer als AUS angezeigt
  • in der App / dem Webinterface wird immer ein Passwort verlangt
  • die Verbindung über die 2.0 App funktioniert
  • tschewies Skript zeigt „Verbindung hergestellt“

Hab dem techn. Support jetzt ne EMail geschickt, der Herr am Telefon konnte als Klempner dazu nichts sagen bzw. wusste nicht, wovon ich rede …

Wie liest man denn das Protokoll aus??

Wenn ich direkt 3005 sende, kommen über 300 Hexbytes zurück, aber das Skript lauft sich scheinbar tot…

mmmhhh…
Das habe ich gefunden im knx-Forum und auch Google spukt einen anderen Port aus
8889 statt 8888
http://knx-user-forum.de/forum/supportforen/eibpc/18361-anlagenstatus-einer-alpha-innotec-wärmepumpe-luxtronik-2-0/page2

wäre schön wenn es nur das ist.

thx tschewie

PASS: Verbunden mit WWC Java Console 192.168.2.18 Port: 8889 ============================================================== Ausleszeit: 04.02.2016 - 21:39:05 Uhr Refresh alle 5s !! TEST !============================================================== Status:0 Länge der nachfolgenden Werte:231 ============================================================== (10)Temperatur_TVL_Vorlauf : 29.3 &#176C(11)Temperatur_TRL_Ruecklauf : 29.4 &#176C(12)Sollwert_TRL_HZ_Ruecklauf_Soll : 32.6 &#176C(13)Temperatur_TRL_ext_Ruecklauf_Extern : 5.0 &#176C(14)Temperatur_THG_Heissgas : 40.4 &#176C(15)Temperatur_TA_Aussenfuehler : 3.7 &#176C(16)Mitteltemperatur : 2.6 &#176C(17)Temperatur_TBW : 42.1 &#176C(18)Einst_BWS_akt : 42.5 &#176C(19)Temperatur_TWE_Waermequelle_Ein : 0.2 &#176C(20)Temperatur_TWA_Waermequelle_Aus : -0.1 &#176C(21)Temperatur_TFB1 : 75.0 &#176C(22)Sollwert_TVL_MK : 0.0 &#176C(23)Temperatur_RFV : 0.0 &#176C(24)Temperatur_TFB2 : 0.0 &#176C(25)Sollwert_TVL_MK2 : 0.0 &#176C(26)Temperatur_TSK : 0.0 &#176C(27)Temperatur_TSS : 0.0 &#176C(28)Temperatur_TEE : 0.0 &#176C(29)ASDin : EIN(30)BWTin : AUS(31)EVUin : EIN(32)HDin : AUS(33)MOTin : EIN(34)NDin : EIN(35)PEXin : 0.0 Volt(36)SWTin : AUS(37)AVout : AUS(38)BUPout : AUS(39)HUPout : EIN(40)MA1out : AUS(41)MZ1out : EIN(42)VENout : AUS(43)VBOout : AUS(44)VD1out : AUS(45)VD2out : AUS(46)ZIPout : AUS(47)ZUPout : AUS(48)ZW1out : AUS(49)ZW2SSTout : AUS(50)ZW3SSTout : AUS(51)FP2out : AUS(52)SLPout : AUS(53)SUPout : AUS(54)MZ2out : AUS(55)MA2out : AUS(56)Zaehler_BetrZeitVD1 : 1508.23 h(57)Zaehler_BetrZeitImpVD1_Impulse_Verdichter : 6945(58)Zaehler_BetrZeitVD2 : 0.00 h(59)Zaehler_BetrZeitImpVD2 : 0(60)Zaehler_BetrZeitZWE1 : 1 h(61)Zaehler_BetrZeitZWE2 : 0 h(62)Zaehler_BetrZeitZWE3 : 0 h(63)Zaehler_BetrZeitWP : 1508 h(64)Zaehler_BetrZeitHz : 1383 h(65)Zaehler_BetrZeitBW : 123 h(66)Zaehler_BetrZeitKue : 0 h(67)Time_WPein_akt : 01:00:01(68)Time_ZWE1_akt : 01:00:00(69)Time_ZWE2_akt : 01:00:00(70)Timer_EinschVerz : 01:00:00(71)Time_SSPAUS_akt : 01:00:00(72)Time_SSPEIN_akt : 01:01:56(73)Time_VDStd_akt : 01:06:34(74)Time_HRM_akt : 01:04:33(75)Time_HRW_akt : 01:00:00(76)Time_LGS_akt : 01:00:00(77)Time_SBW_akt : 01:00:00(78)Code_WP_akt : 59(79)BIV_Stufe_akt : 1(80)WP_BZ_akt : 0(81)SoftStand1 : 86(82)SoftStand2 : 51(83)SoftStand3 : 46(84)SoftStand4 : 55(85)SoftStand5 : 53(86)SoftStand6 : 0(87)SoftStand7 : 0(88)SoftStand8 : 0(89)SoftStand9 : 0(90)SoftStand10 : 0(91)AdresseIP_akt : -1062731162(92)SubNetMask_akt : -256(93)Add_Broadcast : -1062731009(94)Add_StdGateway : -1062731263(95)ERROR_Time0 : 1440748545(96)ERROR_Time1 : 1440748492(97)ERROR_Time2 : 1436956998(98)ERROR_Time3 : 1097859072(99)ERROR_Time4 : 51(100)ERROR_Nr0 : 751(101)ERROR_Nr1 : 711(102)ERROR_Nr2 : 716(103)ERROR_Nr3 : 1077957242(104)ERROR_Nr4 : -1094547212(105)AnzahlFehlerInSpeicher : 3(106)Switchoff_file_Nr0 : 9(107)Switchoff_file_Nr1 : 9(108)Switchoff_file_Nr2 : 9(109)Switchoff_file_Nr3 : 9(110)Switchoff_file_Nr4 : 9(111)Switchoff_file_Time0 : 1454619827(112)Switchoff_file_Time1 : 1454621647(113)Switchoff_file_Time2 : 1454621648(114)Switchoff_file_Time3 : 1454618469(115)Switchoff_file_Time4 : 1454619826(116)Comfort_exists : 0(117)HauptMenuStatus_Zeile1 : 2(118)HauptMenuStatus_Zeile2 : 1(119)HauptMenuStatus_Zeile3 : 3(120)HauptMenuStatus_Zeit : 116(121)HauptMenuAHP_Stufe : 0(122)HauptMenuAHP_Temp : 0(123)HauptMenuAHP_Zeit : 33249(124)SH_BWW : 1(125)SH_HZ : 0(126)SH_MK1 : 0(127)SH_MK2 : 1(128)Einst_Kurzrpgramm : 0(129)StatusSlave_1 : 0(130)StatusSlave_2 : 0(131)StatusSlave_3 : 0(132)StatusSlave_4 : 0(133)StatusSlave_5 : 0(134)AktuelleTimeStamp : 1454622042(135)SH_MK3 : 1(136)Sollwert_TVL_MK3 : 0(137)Temperatur_TFB3 : 0(138)MZ3out : 0(139)MA3out : 0(140)FP3out : 0(141)Time_AbtIn : 0(142)Temperatur_RFV2 : 0(143)Temperatur_RFV3 : 0(144)SH_SW : 3(145)Zaehler_BetrZeitSW : 0(146)FreigabKuehl : 0(147)AnalogIn : 0(148)SonderZeichen : 0(149)SH_ZIP : 0(150)WebsrvProgrammWerteBeobarten : 0(151)WMZ_Heizung : 112109(152)WMZ_Brauchwasser : 9524(153)WMZ_Schwimmbad : 0(154)WMZ_Seit : 121604(155)WMZ_Durchfluss : 0(156)AnalogOut1 : 0(157)AnalogOut2 : 0(158)Time_Heissgas : 0Auslesedauer: 0 secs

…aber wo sind die Variablen?