PC aansluiting (RS 232?) op Intergas CV ketel HR 28/24

Foutje

[Bericht gewijzigd door Martin-B op dinsdag 15 maart 2016 11:15:49 (81%)

Het beste en veiligste is natuurlijk om een galvanisch gescheiden TTL/RS232 interface te gebruiken. Is wat duurder maar dan heb je meer bescherming.

Ik heb de IDS "Intergas Diagnostics software", en deze is zoals onderstaand:

-------------------
Licence: python (http://www.python.org)
This program is free software. It is released under Python License as published by the PYTHON SOFTWARE FOUNDATION .
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the Python License for more details. Programmed in: Python version 2.5
-------------------

Uiteraard voor een ieder die een poging doet hiermee te bepalen wat en hoe de 32 bytes te interpreteren die uit de PLC komen.
Voor een iedere die interesse heeft, drop mij een message in the mail.

Ik heb interesse in de software, maar je e-mail adres is niet openbaar.

StijnN

Golden Member

Op 11 maart 2016 13:22:51 schreef Leo van der Kallen:

Stuur (TX) naar je CV de hex waardes :

53 3F 0D

Men krijgt dan bijvoorbeeld terug de volgende 32 hexwaardes:

HEX Ascii
65 0C 50 0C 46 0C 77 0A 97 F3 96 F3 58 02 00 00 e.P.F.w.—ó–óX...
00 00 00 00 00 00 00 00 7E 00 41 40 00 FF 00 FF ........~.A@.ÿ.ÿ

Let wel je krijgt alleen de 32 hexwaardes terug en niet de ascii waardes die er achter staan
Deze hexwaardes krijg ik uit de PLC van mijn CV.

Hierin staan dus alle gegevens:
t1,t2,t3,t4,t5,t6,temp_set,fanspeed_set,fanspeed,fan_pwm,opentherm,roomtherm,tap_switch,gp_switch,pump,dwk,gasvalve,io_signal,spark,io_curr,displ_code,ch_pressure

Nu moet ik alleen nog weten hoe je de hex waardes moet behandelen om de betekenis te destilleren.

Voor mijn Solaredge omvormer van mijn zonnepanelen is het gelukt (122 hexwaardes), maar hier was een mooi document van per byte.

Voor de Intergas ketel nog niet gevonden, dus wie helpt aan de byte definities voor de CV ketel..... wie helpt mij (ons allen bij deze)

Het begin lijkt me in elk geval duidelijk, als je 53 3F 0D door de ascii tabel haalt staat er: S?<CR>

Wat is de status?

A person who never made a mistake never tried anything new.

check mailadres opnieuw, only for members to see!

kan ik deze software ook ontvangen?

GMT+1
Lambiek

Special Member

Ik heb je gisteren een mail gestuurd, heb je die ontvangen?

Als je haar maar goed zit, GROETEN LAMBIEK.

Op 21 maart 2016 16:22:56 schreef Leo van der Kallen
Licence: python (http://www.python.org)

dit is de taal (omgeving) waarin het pakket IDS is geschreven. dit is niet per se de licentie van het programma zelf.

ik heb vanavond een afspraak, hoop morgen de ketel open te maken om te kijken of ik deze poort ook heb.

als ik deze blog lees, begrijp ik dat het legaal is als ik jou vertel hoe de berichten eruitzien, en dat jij vervolgens het programma maakt..
http://blog.iusmentis.com/2008/02/07/de-legaliteit-van-reverse-enginee…

[Bericht gewijzigd door Progger op dinsdag 22 maart 2016 13:54:55 (36%)

GMT+1
PE9SMS

Special Member

Ik denk dat in cable_interface.pyo de seriele bytes geinterpreteerd worden..

This signature is intentionally left blank.

Heren, alweer een tijdje geleden, maar er moest natuurlijk proefgedraaid worden.

Ik heb in VB6 een programma geschreven dat via wat aanwijzingen van PE9SMS (mijn dank hiervoor) nu al meer als een week 'draait'

Hieronder voor ieder als hij dat wil kan daar gebruik van maken voor zijn eigen programma. een stukje van de source.
De 32 Bytes die je ontvangt na het commando S?<enter>
Chr(83) & Chr(63) & Chr(13)

' ------ VB6 Start ontcijferen van de 32 bytes die ik ontvangen heb -----
Private Sub Ontcijfer32Bytes()
' ByteNr(1) tot en met ByteNr(32)
t1 = Format(GetFloat(ByteNr(2), ByteNr(1)), "####0.0") ' Byte 2 en 1
t2 = Format(GetFloat(ByteNr(6), ByteNr(5)), "####0.0") ' Byte 6 en 5
t3 = Format(GetFloat(ByteNr(8), ByteNr(7)), "####0.0") ' Byte 8 en 7
' t4 = Format(GetFloat(ByteNr(10), ByteNr(9)), "####0.0") ' Byte 10 en 9 klopt niet ? (boiler en buitentemp)
' t5 = Format(GetFloat(ByteNr(12), ByteNr(11)), "####0.0") ' Byte 12 en 11 klopt niet ? (boiler en buitentemp)
ch_pressure = GetFloat(ByteNr(14), ByteNr(13)) ' Byte 14 en 13
temp_flow = Format(GetFloat(ByteNr(4), ByteNr(3)), "####0.0") ' Byte 4 en 3
t6 = temp_flow
temp_set = Format(GetFloat(ByteNr(16), ByteNr(15)), "####0.0") ' Byte 16 en 15
fanspeed_set = GetFloat(ByteNr(18), ByteNr(17)) * 100 ' Byte 18 en 17
fanspeed = GetFloat(ByteNr(20), ByteNr(19)) * 100 ' Byte 20 en 19
fan_pwm = Format(GetFloat(ByteNr(22), ByteNr(21)) * 10, "####0.00") ' Byte 22 en 21
io_curr = Format(GetFloat(ByteNr(24), ByteNr(23)), "####0.00") ' Byte 24 en 23

' Byte 27
If ByteNr(27) And 1 Then gp_switch = True Else gp_switch = False
If ByteNr(27) And 2 Then tap_switch = True Else tap_switch = False
If ByteNr(27) And 4 Then roomtherm = True Else roomtherm = False
If ByteNr(27) And 8 Then pump = True Else pump = False
If ByteNr(27) And 16 Then dwk = True Else dwk = False
If ByteNr(27) And 32 Then alarm_status = True Else alarm_status = False
If ByteNr(27) And 64 Then ch_cascade_relay = True Else ch_cascade_relay = False
If ByteNr(27) And 128 Then opentherm = True Else opentherm = False

' Byte 29
If ByteNr(29) And 1 Then gasvalve = True Else gasvalve = False
If ByteNr(29) And 2 Then spark = True Else spark = False
If ByteNr(29) And 4 Then io_signal = True Else io_signal = False
If ByteNr(29) And 8 Then ch_ot_disabled = True Else ch_ot_disabled = False
If ByteNr(29) And 16 Then low_water_pressure = True Else low_water_pressure = False
If ByteNr(29) And 32 Then pressure_sensor = True Else pressure_sensor = False
If ByteNr(29) And 64 Then burner_block = True Else burner_block = False
If ByteNr(29) And 128 Then grad_flag = True Else grad_flag = False

' Byte 25
If pressure_sensor = False Then
ch_pressure = -35
displ_code = ByteNr(25) ' Byte 25
End If

' Byte 28 en Byte 30
If ByteNr(28) = 128 Then ' Byte 28
fault_code = ByteNr(30) ' Byte 30
displ_code = 256 + fault_code
End If

' Check wat de CVstatus is nav de displaycode. Deze moet nog aangevuld worden met meer codes
Select Case displ_code
Case 102
CVStatus = "CV brandt"
Case 126
CVStatus = "CV is in Rust"
Case 231
CVStatus = "Nadraaien CV"
Case 204
CVStatus = "Tapwater"
Case 999
CVStatus = "Status 999" ' Reserve
Case Else
CVStatus = "Code " & displ_code ' Onbekende situatie
End Select

End Sub

Private Function GetFloat(msb As Double, lsb As Double) As Double
' converteer twee 8-bits integers naar een float, converts two 8-bits numbers to a float
' If msb > 127 Then
' GetFloat = -((msb ^ 255) + 1) * 256 - lsb / 100
' Else
GetFloat = (msb * 256 + lsb) / 100
' End If
End Function

Hoop dat iemand hier iets aan heeft.
Voor mij is het voldoende om te maken wat ik wil..
Gegroet aan allen!

PA3HFP, de Leo

PE9SMS

Special Member

Leuk dat het gelukt is Leo! :-)

This signature is intentionally left blank.

Op basis van het stukje VB6 van Leo heb ik een programma geschreven voor een ESP8266.
Hiermee wil de status van de ketel uitlezen en via Wifi en MQTT naar mijn home automation system sturen. Ik wil deze op de X5 connector van de Intergas aansluiten. De ESP8266 maakt gebruik van 3,3 Volt logica.
Kan ik dit het beste doen: met een optocoupler (moet ik dan ergens rekening mee houden?) of zijn een paar weerstanden voor een spanningsdeler voldoende?

Hallo Kees,

Je zou bijgesloten .jpg filetje kunnen proberen 2x (Tx-Rx) beetje aangepast, deze zorgt tevens voor een scheiding van de CV en de ESP8266

Ik zelf gebruik ook ESP8266 met LUA om email te versturen bij een alarmcontact, leuk en goedkoop. alleen de standby stroom opname is erg hoog. (heb er nog niet zo veel ervaring mee)

Zou tevens graag in aanmerking komen voor de software om de CV gegevens via de ESP8266 naar de processor te sturen.

Suc6 met de bouw :-)
Leo

Leo,

Bedankt. Moet nog nog even wat solderen dus.
Ik ben van plan om de software voor anderen beschikbaar te stellen.
Wil het wel eerst testen. Nog even geduld...

Wat voor connector zit aan de intergas zijde. Het lijkt op een dergelijke connector: http://www.playtool.com/pages/psuconnectors/12v4pinindex.jpg

Klopt dat?

Shiptronic

Overleden

Als je nog oude computervoedingen heb liggen kan je kijken of er daar nog een aan zit.

Wie de vraag stelt, zal met het antwoord moeten leren leven.

@Leo

Kijk naar EspEasy voor de ESP8266. http://www.esp8266.nu/index.php/ESPEasy

Kun je een seriele server instellen en dan via TCP naar je computer sturen...

Die gebruik ik ook om de gegevens van mijn slimme meter naar Domoticz te sturen....

[Bericht gewijzigd door Roches op vrijdag 29 april 2016 16:23:54 (20%)

Domoticz en ESP8266, goede combo!!!

Ik heb een eerste ruwe gereed van de esp8266. Heb wat moeite gehad om de optocouplers aan de praat te krijgen.

De VB code van Leo geeft aan hoe het bericht geconverteerd moet worden.
Ik heb wel wat vraagtekens bij de conversie nav de folder van Intergas over de IDS software:

- De waarde van de druksensor lijkt maar 1 byte te zijn (welke?)
- Er is ook een (float) waarde voor pomp pwm. Welke bytes zijn dit?
- De labels zijn niet altijd duidelijk. Pump (uit de code van Leo) blijkt in de praktijk te zijn dat de pomp loopt. Wat beteken de labels precies
- Hoe is de mapping van t1..t5 naar Tboiler, Twarmwater, Tboilter, Tmax, Tbuiten
- Toerental set lijkt maar 1 byte te zijn

Omdat ik de IDS software niet heb, is bijna onmogelijk om de conversie goed te krijgen. Wie kan hier mee helpen?

En wie heeft de folder van IDS is zijn bezit? De schermafdrukken zijn in de elektronische versie niet goed te lezen (een schermafdruk is ook goed).

PE9SMS

Special Member

Zet je email even zichtbaar (is spam safe) in je profiel hier op CO.

This signature is intentionally left blank.

Hoi Kees e.a.,

Ben je ooit verder gekomen met de ESP8266 icm Intergas ? Ik heb er ook 1 gekocht en wil hiermee aan de gang. Mocht iemand info hebben en willen delen.. BV:
- welke firmware; http://www.esp8266.nu/index.php/ESPEasy ?
- aansluitschema; kan ik die ESP8266 aan de intergas hangen met een stepdown van 5v -> 3.3v? Of trekt de esp8266 meer dan het bordje in de ketel kan leveren, fikt er wat door en zit ik straks in de kou :)
- welke baudrate moet je nu praten naar de intergas ?
- is iemand nog verder gekomen met de conversie ? Kees had daar ook nog wat vragen over zag ik.
- Zou me ook graag aanmelden voor die IDS folder.. en een eventueel conversiescriptje.

Ik ben zeker van plan ook zelf wat te prutsen binnenkort, als ik verder kom zal ik het hier delen. Eerste keer dat ik zoiets doe alleen, dus tips zijn welkom :)

Hai Kees,
Heb net een mailtje met de software naar je gemailed!

Suc6

Leo

Hoi Leo,

Zou je 'm ook naar mij kunnen mailen ? M'n email is zichtbaar in mijn profiel. Dank!

heb nu ook het aansluitschema van de optocoupler er bij gezet.