Remeha Calenta interface for Homeseer

Show or discuss your existing Home automation project here, so a detailed explanation!.....
psmaaswinkel
Member
Member
Posts: 88
Joined: Wed Oct 27, 2010 8:36 pm

Re: Remeha Calenta interface for Homeseer

Post by psmaaswinkel »

After 2 days of searching the internet to find out how to readout my calenta by a php script still no luck.

It looks like the best way to connect is using fsockopen to create a socket to my wiznet110sr. I am able to open the connection, but can't find the sollution to request the calenta to send its data.
Looking at the vb script for homeseer I think the request is:

Code: Select all

chr(02).chr(254).chr(01).chr(05).chr(08).chr(02).chr(01).chr(105).chr(171).chr(03)
The problem I have at this moment that I can't find how to sent this data in php to the wiznet interface.

Is there someone how could help me with this php script for the Calenta?

With kind regards,

Peter
___________________________________________________________________
iEase Home Control
psmaaswinkel
Member
Member
Posts: 88
Joined: Wed Oct 27, 2010 8:36 pm

Re: Remeha Calenta interface for Homeseer

Post by psmaaswinkel »

I am using the script below to request the calenta to send its data. As a result I get the following data, but I am not sure it is even right:

Code: Select all

Received data: �þH 


At this moment I don't know how to decode this data, or where to go from here...

Code: Select all

<?php
$request_vb = "chr(0x02).chr(0xFE).chr(0x00).chr(0x05).chr(0x08).chr(0x01).chr(0x0B).chr(0xD4).chr(0x9C).chr(0x03)";
$request_php = "02 FE 00 05 08 01 0B D4 9C 03";

$fp = fsockopen("192.168.1.60", 5000, $errno, $errstr, 5);

if (!$fp) {
    echo "ERROR opening port<br />\n";
} else {
    echo "Connected to port<br />";
	echo "Sending request...<br />";
    $byte=chr(0x02);
	fwrite($fp,$byte);
	$byte=chr(0xFE);
	fwrite($fp,$byte);
	$byte=chr(0x00);
	fwrite($fp,$byte);
	$byte=chr(0x05);
	fwrite($fp,$byte);
	$byte=chr(0x08);
	fwrite($fp,$byte);
	$byte=chr(0x01);
	fwrite($fp,$byte);
	$byte=chr(0x0B);
	fwrite($fp,$byte);
	$byte=chr(0xD4);
	fwrite($fp,$byte);
	$byte=chr(0x9C);
	fwrite($fp,$byte);
	$byte=chr(0x03);
    fwrite($fp,$byte);
	
	echo "Request sent, reading answer...<br />";
    $data = fgets($fp, 55);
	
	echo "Answer read, closing connection<br />";
    fclose($fp);
	
    echo "Connection closed<br /><br />";

  echo "Received data: ";
  echo $data;
} 

?>
___________________________________________________________________
iEase Home Control
phoenixb
Advanced Member
Advanced Member
Posts: 512
Joined: Thu Jul 23, 2009 1:00 pm
Location: Netherlands

Re: Remeha Calenta interface for Homeseer

Post by phoenixb »

Hi,

At this moment i have made a connection from the TTL to my homeseer pc.
And have try the recom software if i can read some data and yes its work.
Only when i use the script a getting a error.

Code: Select all

7-1-2011 18:31:41  - Error - Scripting runtime error: System.Reflection.TargetInvocationException: Het doel van een aanroep heeft een uitzondering veroorzaakt. ---> System.ArgumentException: De lengte van argument String moet groter zijn dan nul.   bij Microsoft.VisualBasic.CompilerServices.Symbols.Container.InvokeMethod(Method TargetProcedure, Object[] Arguments, Boolean[] CopyBack, BindingFlags Flags)   bij Microsoft.VisualBasic.CompilerServices.NewLateBinding.LateGet(Object Instance, Type Type, String MemberName, Object[] Arguments, String[] ArgumentNames, Type[] TypeArguments, Boolean[] CopyBack)   bij scriptcode8.scriptcode8.Main(Object parm)   --- Einde van intern uitzonderingsstackpad ---   bij System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)   bij System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)   bij System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)   bij System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)   bij System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters)   bij Scheduler.VsaScriptHost.Invoke(String ModuleName, String MethodName, Object[] Arguments)
What can be the problem?
Regards,
__________________
psmaaswinkel
Member
Member
Posts: 88
Joined: Wed Oct 27, 2010 8:36 pm

Re: Remeha Calenta interface for Homeseer

Post by psmaaswinkel »

I've had some succes with decoding the received data..

The result of my php script at this moment is:

Code: Select all

Connected to port
Sending request...
Request sent, reading answer...
Answer read, closing connection
Connection closed

Received data: 02 00 fe 06 48 01 0b 0a [....H...]
This is the correct beginning of the data received by the recom software:

Code: Select all

 02 00 FE 06 48 01 0B 0A 07 01 FF FF 14 11 03 04   ..þ.H.....ÿÿ....
 01 00 FF FF FF FF FF 04 02 FF 01 FF FF FF FF FF   ..ÿÿÿÿÿ..ÿ.ÿÿÿÿÿ
 FF FF FF FF FF FF FF 31 30 32 38 34 30 30 37 34   ÿÿÿÿÿÿÿ102840074
 37 37 31 30 20 20 20 43 61 6C 65 6E 74 61 20 43   7710   Calenta C
 43 53 20 20 20 20 20 00 A3 03                     CS     .£.
The big question is why it stops receiving....
___________________________________________________________________
iEase Home Control
Bwired
Administrator
Administrator
Posts: 4704
Joined: Sat Mar 25, 2006 1:07 am
Location: Netherlands
Contact:

Re: Remeha Calenta interface for Homeseer

Post by Bwired »

Is it possible that you need to poll it everytime you want the data
how is the recom software doing it?
richard naninck
Member
Member
Posts: 123
Joined: Sun Nov 21, 2010 9:53 pm

Re: Remeha Calenta interface for Homeseer

Post by richard naninck »

Avanta and Quinta needs to be polled to get data.
Avanta produces one message with all data whereas Quinta use three messages to get three data strings containing all info.

I guess this should be the same for any Remeha. It makes sense since in the Recom software you can set the polling time. Default at 1000ms.

So Open your connection once, setup a timer, send the message each second, handle the received data etc. Close the port only when closing the php connection.
psmaaswinkel
Member
Member
Posts: 88
Joined: Wed Oct 27, 2010 8:36 pm

Re: Remeha Calenta interface for Homeseer

Post by psmaaswinkel »

Acoording to my serial port monitor the recom software only sends one request...

Code: Select all

Request: 7-1-2011 20:56:26.03564 (+0.0120 seconds)

 02 FE 00 05 08 01 0B D4 9C 03                     .þ.....Ԝ.      

Answer: 7-1-2011 20:56:26.19464 (+0.1590 seconds)

 02 00 FE 06 48 01 0B 0A 07 01 FF FF 14 11 03 04   ..þ.H.....ÿÿ....
 01 00 FF FF FF FF FF 04 02 FF 01 FF FF FF FF FF   ..ÿÿÿÿÿ..ÿ.ÿÿÿÿÿ
 FF FF FF FF FF FF FF 31 30 32 38 34 30 30 37 34   ÿÿÿÿÿÿÿ102840074
 37 37 31 30 20 20 20 43 61 6C 65 6E 74 61 20 43   7710   Calenta C
 43 53 20 20 20 20 20 00 A3 03                     CS     .£.

I have just tried to use the fpassthru() function of php which actualy received the complete data string. Only problem is that fpassthru() doesn't know when to stop receiving, en only times out on the server setting of 60 seconds... and the rest of the script (decoding the data) isn't executed I believe that the data 0x0A is the problem for fgets(), because this is seen as an EOL (end of line) after which fgets() stops automaticly...
___________________________________________________________________
iEase Home Control
Digit
Global Moderator
Global Moderator
Posts: 3388
Joined: Sat Mar 25, 2006 10:23 am
Location: Netherlands
Contact:

Re: Remeha Calenta interface for Homeseer

Post by Digit »

Richard is right. Open the connection and keep it open; send a command and just sit back, relax and wait for the response. When the response has arrived, you can start a new sequence of sending and receiving.
richard naninck
Member
Member
Posts: 123
Joined: Sun Nov 21, 2010 9:53 pm

Re: Remeha Calenta interface for Homeseer

Post by richard naninck »

That one message is the message containing the type and firmware etc. The actual data will show if you start the monitoring function in Recom. The one where the Recom software starts to show temperature etc.
psmaaswinkel
Member
Member
Posts: 88
Joined: Wed Oct 27, 2010 8:36 pm

Re: Remeha Calenta interface for Homeseer

Post by psmaaswinkel »

Richard, your completly right!
I didn't noticed that until now... I have monitored the request sent by recom to request the actual data, and now I am requesting those data with my script...
I have been trying something else with the fget() function. I am reading the received data in bits of 16 byte and adding them to a variable...
It looks like I finaly found a working solution to readout the actual data....

Code: Select all

Connected to port
Sending request...
Request sent, reading answer...
Answer read, closing connection

Received data:
0 :   02 01 fe 06 48 02 01 5e 0b 36 0b 00 80 00 80 8c [....H..^.6......]
10 : f3 00 80 34 0e 4b 08 bc 02 a8 16 a4 06 00 00 00 [...4.K..........]
20 : 00 00 bc 02 00 00 00 64 00 00 00 01 c2 0b 10 00 [.......d........]
30 : ff ff 00 45 45 00 ff ff 12 00 bc 02 00 00 00 00     [...EE...........]
40 : 80 45 45 45 45 00 00 5a a2 03                            [.EEEE..Z..]

Connection closed
Onto the next part... decoding the data into actual values....
___________________________________________________________________
iEase Home Control
Digit
Global Moderator
Global Moderator
Posts: 3388
Joined: Sat Mar 25, 2006 10:23 am
Location: Netherlands
Contact:

Re: Remeha Calenta interface for Homeseer

Post by Digit »

That's the easy part :)
http://blog.hekkers.net/2010/10/10/more ... -protocol/
Take the payload from the packet, check the length of the packet and the checksum.
Find the right XML file (Calenta=PCU-02_P1.xml) and you're ready to go. Here's a snippet of my code:

Code: Select all

  if (PacketID = SAMPLE_ID)
  then begin
    //    <config type="select" label="STATUS" group="0">
    //      <present name.nr="2023" description.nr="2023" />                    State
    //      <function byte="40" expression="A" format="0" />
    //      <node-ref type="selections" id="status.code" />
    //    </config>
    Pin(STATUS).AsInteger := Payload[40];

    //    <config type="select" label="SUBSTATUS" group="0">
    //      <present name.nr="2024" description.nr="2024" />                    Sub-State
    //      <function byte="43" expression="A" format="0" />
    //      <node-ref type="selections" id="substatus.code" />
    //    </config>
    Pin(SUBSTATUS).AsInteger := Payload[43];

    //    <config type="select" label="LOCKING" group="0">
    //      <present name.nr="2026" description.nr="2026" />                    Lockout E
    //      <function byte="41" expression="A" format="0" />
    //      <node-ref type="selections" id="failure.code" />
    //    </config>
    Pin(LOCKING).AsInteger := Payload[41];

    //    <config type="select" label="BLOCKING" group="0">
    //      <present name.nr="2025" description.nr="2025" />                    Blocking b
    //      <function byte="42" expression="A" format="0" />
    //      <node-ref type="selections" id="error.code" />
    //    </config>
    Pin(BLOCKING).AsInteger := Payload[42];

    //    <config type="field" group="1">
    //      <present name.nr="1362" description.nr="1363" unit.nr="312" />      Flow Temp
    //      <function byte="0" expression="sgn(A.0 + B.1) x 0.01" format="0.00" />
    //      <limits min="-25" min.nr="107" max="150" max.nr="106" />
    //    </config>
    Pin(FLOWTEMP).AsFloat := ((Payload[1]*256)+Payload[0])/100;
Example for flowtemp: sgn(A.0 + B.1) x 0.01 means: ((first byte) * 256^0 + (2nd byte) * 256^1) * 0.01
The meaning of all the byte values can be found in the language-xx.xml files.
psmaaswinkel
Member
Member
Posts: 88
Joined: Wed Oct 27, 2010 8:36 pm

Re: Remeha Calenta interface for Homeseer

Post by psmaaswinkel »

This morning I started decoding the received data. As guideline I used the homeseer readremeha script to find the correct bytes...
At this moment I am still trying to catch the ignition moment to read out the correct byte value... I am also having troubles to display the 'toevoer' temperature correct..
But this is the situation at the moment:

Code: Select all

Connected to port
Sending request...
Request sent, reading answer...
Answer read, closing connection

Received data:
02 01 fe 06 48 02 01 90 16 ca 12 00 80 00 80 89
f3 00 80 b8 10 31 08 34 21 a8 16 34 08 3a 07 39
07 5e 8e 1c 00 14 00 00 00 00 00 13 c6 40 15 03
ff ff 20 45 45 04 ff ff 13 00 90 16 00 00 00 00
80 45 45 45 45 00 00 6d 7b 03


Put result in array before starting decoding..
Array ( [0] => 02 [1] => 01 [2] => fe [3] => 06 [4] => 48 [5] => 02 [6] => 01 [7] => 90 [8] => 16 [9] => ca [10] => 12 [11] => 00 [12] => 80 [13] => 00 [14] => 80 [15] => 89 [16] => f3 [17] => 00 [18] => 80 [19] => b8 [20] => 10 [21] => 31 [22] => 08 [23] => 34 [24] => 21 [25] => a8 [26] => 16 [27] => 34 [28] => 08 [29] => 3a [30] => 07 [31] => 39 [32] => 07 [33] => 5e [34] => 8e [35] => 1c [36] => 00 [37] => 14 [38] => 00 [39] => 00 [40] => 00 [41] => 00 [42] => 00 [43] => 13 [44] => c6 [45] => 40 [46] => 15 [47] => 03 [48] => ff [49] => ff [50] => 20 [51] => 45 [52] => 45 [53] => 04 [54] => ff [55] => ff [56] => 13 [57] => 00 [58] => 90 [59] => 16 [60] => 00 [61] => 00 [62] => 00 [63] => 00 [64] => 80 [65] => 45 [66] => 45 [67] => 45 [68] => 45 [69] => 00 [70] => 00 [71] => 6d [72] => 7b [73] => 03 )

Starting decoding...
Received values:
ruimtetemp: 20.97 °C
ruimteset: 21 °C
cvsetpoint: 85 °C
wwsetpoint: 58 °C
toevoertemp: 0.22 °C
retourtemp: 48.1 °C
venttoeren: 1849 Rpm
ionisatiestroom: 9.4 mA
pompvermogen: 20
waterdruk: 1.9 Bar
tapdebiet: 0 l/min
vermogen: 0
(modrequest: 19)
Mod.warmtevraag: Ja
WW warmtevraag: Nee
WW Eco: Nee
ionisatie: Ja
(kleppen: 64)
driewegklep: CV
gasklep: open
ontsteking: uit
pomp: Aan
status: Branden voor CV

Connection closed
___________________________________________________________________
iEase Home Control
psmaaswinkel
Member
Member
Posts: 88
Joined: Wed Oct 27, 2010 8:36 pm

Re: Remeha Calenta interface for Homeseer

Post by psmaaswinkel »

The problem with the 'toevoer' temperature has been found, I made a little mistake in the script which has been corrected.
Next thing to do is make a script for the counters and other information of the remeha...

For those who are interested in a php script to readout the calenta (don't forget to change the ip-adres and port number):

Code: Select all

<?php
//Uncomment line below for DEBUG
//error_reporting(E_ALL);

function hex_dump($data, $newline="<br>")
{
  static $from = '';
  static $to = '';

  static $width = 16; # number of bytes per line

  static $pad = '.'; # padding for non-visible characters

  if ($from==='')
  {
    for ($i=0; $i<=0xFF; $i++)
    {
      $from .= chr($i);
      $to .= ($i >= 0x20 && $i <= 0x7E) ? chr($i) : $pad;
    }
  }

  $hex = str_split(bin2hex($data), $width*2);
  $decode = str_split(bin2hex($data), 2);

  $chars = str_split(strtr($data, $from, $to), $width);

  //$offset = 0;
  //foreach ($hex as $i => $line)
  //{
  //  echo sprintf(implode(' ', str_split($line,2)) . ' ' . $newline);
  //  $offset += $width;
  //}
  //echo "<br /><br />";
  echo "Put result in array before starting decoding..<br />";
  
  //Uncomment line below for DEBUG 
  //print_r($decode);
  
  //echo "<br /><br />";
  echo "Starting decoding...<br />";
  
  //Devine variables and append right bytes
  $toevoertemp ="";
  $toevoertemp .= $decode["8"];
  $toevoertemp .= $decode["7"];
  
  $retourtemp = "";
  $retourtemp .= $decode["10"];
  $retourtemp .= $decode["9"];
  
  $ruimtetemp = "";
  $ruimtetemp .= $decode["22"];
  $ruimtetemp .= $decode["21"];
  
  $ruimteset = "";
  $ruimteset .= $decode["28"];
  $ruimteset .= $decode["27"];
  
  $cvsetpoint = "";
  $cvsetpoint .= $decode ["24"];
  $cvsetpoint .= $decode ["23"];
  
  $wwsetpoint = "";
  $wwsetpoint .= $decode ["26"];
  $wwsetpoint .= $decode ["25"];
  
  $venttoeren = "";
  $venttoeren .= $decode ["32"];
  $venttoeren .= $decode ["31"];
  
  $ionisatiecur = "";
  $ionisatiecur .= $decode ["33"];
  
  $pomppower = "";
  $pomppower .= $decode ["37"];
  
  $pressure = "";
  $pressure .= $decode ["56"];
  
  $tapflow = "";
  $tapflow .= $decode ["60"];
  
  $curpower = "";
  $curpower .= $decode ["40"];
  
  $modrequest = "";
  $modrequest .= $decode ["43"];
  
  $ionisatie = "";
  $ionisatie .= $decode ["44"];
  
  $kleppen = "";
  $kleppen .= $decode ["45"];
  
  $pomp = "";
  $pomp .= $decode ["46"];
  
  $status = "";
  $status .= $decode ["47"];
  
 //Decode values
  $retourtemp = hexdec($retourtemp) / 100;
  $toevoertemp = hexdec($toevoertemp) / 100;
  $ruimtetemp = hexdec($ruimtetemp) / 100;
  $ruimteset = hexdec($ruimteset) /100;
  $cvsetpoint = hexdec($cvsetpoint) /100;
  $wwsetpoint = hexdec($wwsetpoint) /100;
  $venttoeren = hexdec($venttoeren);
  $ionisatiecur = hexdec($ionisatiecur)/10;
  $pomppower = hexdec($pomppower);
  $pressure = hexdec($pressure)/10;
  $tapflow = hexdec($tapflow)/10;
  $curpower = hexdec($curpower);
  $modrequest = hexdec($modrequest);
  if ($modrequest == 17) {$Modwarmte = "Nee"; $WWwarmte ="Nee"; $WWeco = "Nee";}
  elseif ($modrequest == 145) {$Modwarmte = "Nee"; $WWwarmte = "Ja"; $WWeco = "Nee";}
  elseif ($modrequest == 19) {$Modwarmte = "Ja"; $WWwarmte = "Nee"; $WWeco = "Nee";}
  else {$Modwarmte = "Onbekend"; $WWwarmte = "Onbekend"; $WWeco = "Onbekend";}  
  $ionisatie = hexdec($ionisatie);
  if ($ionisatie == 194) {$ionisatie = "Nee";}
  elseif ($ionisatie == 198) {$ionisatie = "Ja";}
  else {$ionisatie = "Onbekend";}
  $kleppen = hexdec($kleppen);
  if ($kleppen == 64 ) {$drieweg = "CV"; $gas = "Open"; $ontsteking ="Uit";}
  elseif ($kleppen == 11 ) {$drieweg = "WW"; $gas = "Dicht"; $ontsteking ="Uit";}
  elseif ($kleppen == 3 ) {$drieweg = "CV"; $gas = "Open"; $ontsteking ="Uit";}
  elseif ($kleppen == 88 ) {$drieweg = "WW"; $gas = "Open"; $ontsteking ="Uit";}
  else {$drieweg = "Onbekend"; $gas = "Onbekend"; $ontsteking ="Onbekend";}
  $pomp = hexdec($pomp);
  if ($pomp == 21) {$pomp = "Aan";}
  elseif ($pomp == 16) {$pomp = "Uit";}
  elseif ($pomp == 17) {$pomp = "Nadraaien";}
  else { $pomp = "Onbekend";}
  $status = hexdec($status);
  if ($status == 0) {$status = "Rust";}
  elseif ($status == 1) {$status = "Warmtevraag";}
  elseif ($status == 2) {$status = "Brander_start";}
  elseif ($status == 3) {$status = "Branden_CV";}
  elseif ($status == 4) {$status = "Branden_WW";}
  elseif ($status == 5) {$status = "Brander_stop";}
  elseif ($status == 6) {$status = "Einde_warmtevraag";}
  elseif ($status == 7) {$status = "-";}
  elseif ($status == 8) {$status = "Regelstop";}
  elseif ($status == 9) {$status = "Blokkering";}
  elseif ($status == 10) {$status = "Vergrendeling";}
  elseif ($status == 11) {$status = "Schoorsteenveger_L";}
  elseif ($status == 12) {$status = "Schoorsteenveger_h";}
  elseif ($status == 13) {$status = "Schoorsteenveger_H";}
  elseif ($status == 14) {$status = "-";}
  elseif ($status == 15) {$status = "Handmatige_warmtevraag";}
  elseif ($status == 16) {$status = "Ketel_vorstbeveiling";}
  elseif ($status == 17) {$status = "Ontluchting";}
  else { $status = "Onbekend"; }
  
  //Uncomment lines below for DEBUG
  //Display values
  echo "<b>Received values:</b><br />";
  echo "ruimtetemp: $ruimtetemp &deg;C<br />";
  echo "ruimteset: $ruimteset &deg;C<br />";
  echo "cvsetpoint: $cvsetpoint &deg;C<br />";
  echo "wwsetpoint: $wwsetpoint &deg;C<br />";
  echo "toevoertemp: $toevoertemp &deg;C<br />";
  echo "retourtemp: $retourtemp &deg;C<br />";
  echo "venttoeren: $venttoeren Rpm<br />";
  echo "ionisatiestroom: $ionisatiecur mA<br />";
  echo "pompvermogen: $pomppower<br />";
  echo "waterdruk: $pressure Bar<br />";
  echo "tapdebiet: $tapflow l/min<br />";
  echo "vermogen: $curpower<br />";
  echo "(modrequest: $modrequest)<br />";
  echo "Mod.warmtevraag: $Modwarmte<br />";
  echo "WW warmtevraag: $WWwarmte<br />";
  echo "WW Eco: $WWeco<br />";
  echo "ionisatie: $ionisatie<br />";
  echo "(kleppen: $kleppen)<br />";
  echo "driewegklep: $drieweg<br />";
  echo "gasklep: $gas<br />";
  echo "ontsteking: $ontsteking<br />";
  echo "pomp: $pomp<br />";
  echo "status: $status<br />";
  
  echo "Decoding complete! Sending JSON to database..";
 
}

$fp = fsockopen("192.168.1.0", 5000, $errno, $errstr, 30);

if (!$fp) {
    echo "ERROR opening port<br />\n";
} else {
    echo "Connected to port<br />";
	echo "Sending request...<br />";
    $byte=chr(0x02);
	fwrite($fp,$byte);
	$byte=chr(0xFE);
	fwrite($fp,$byte);
	$byte=chr(0x01);
	fwrite($fp,$byte);
	$byte=chr(0x05);
	fwrite($fp,$byte);
	$byte=chr(0x08);
	fwrite($fp,$byte);
	$byte=chr(0x02);
	fwrite($fp,$byte);
	$byte=chr(0x01);
	fwrite($fp,$byte);
	$byte=chr(0x69);
	fwrite($fp,$byte);
	$byte=chr(0xAB);
	fwrite($fp,$byte);
	$byte=chr(0x03);
   fwrite($fp,$byte);
	
	echo "Request sent, reading answer...<br />";
	
	$data = "";
	$data .= fgets($fp, 16);
	$data .= fgets($fp, 16);
	$data .= fgets($fp, 16);
	$data .= fgets($fp, 16);
	$data .= fgets($fp, 16);
	$data .= fgets($fp, 4);
	echo "Answer read, closing connection<br />";
    
	echo "<br />";
    echo "Received data:<br /> ";
    $output = hex_dump($data);
  
  echo "<br />";
  fclose($fp);
	
  echo "Connection closed<br /><br />";
} 

?>

___________________________________________________________________
iEase Home Control
Menno
Member
Member
Posts: 179
Joined: Thu May 22, 2008 10:46 pm
Location: Netherlands

Re: Remeha Calenta interface for Homeseer

Post by Menno »

Nice to see that several peaple are working on implementing the Remeha into their domotica-systems !

I am still working on a real plugin for Homeseer. Maybe someone here can do this job, because I am not into making plugins and my programming skills aren't not so
good as i wanted them to be. A plugin for Homeseer for all models of Remeha boilers (Recom XML-files can be used for this) is my final goal. Time will tell.....
richard naninck
Member
Member
Posts: 123
Joined: Sun Nov 21, 2010 9:53 pm

Re: Remeha Calenta interface for Homeseer

Post by richard naninck »

I wonder how you are going to write plugins for all Remeha products if you can't directly interface with them. I wrote code for the Avanta and the Quinta and although the xml files helped a bit in identifying some crucial info, you cannot address this info without the actual product. The Avanta and Quinta are very different from eachother and you can tell that the Quinta is older than the Avanta as much as I can tell by reading posts about the Calenta that the Calenta differs in many ways from the Avanta and Quinta. So unless you can interface directly to all Remeha products, you probably won't be able to write one or more plugins to cover them all. Protocols are different and the way these products are addressed are very different from eachother. Recom doesn't give you anything unless you have established a true connection.
Post Reply

Return to “Home Automation Projects”