dumpfheimer / OptoProxy

Viessmann Optolink <-> WiFi Proxy
Other
4 stars 1 forks source link

question about project #2

Open Jumbo125 opened 11 months ago

Jumbo125 commented 11 months ago

hello i'm searching for a way, to get/send data via http request, to use the data in my php script. ESPHome is not so good for http request and Vitowifi is not so easy to create a new datapoint. So i found your project. It looks great. Now i have some questions:

  1. can i spend you tip?
  2. do you use a libary from openv ????
  3. do you use Vitowifi inside?
  4. i only use arduino ide not platform io, but i will try it. You include some libarys in your script. #include #include . where can i find this scripts????

Thank you a lot I see, you use the vitowifi too. it will be included with platform.ino

dumpfheimer commented 11 months ago

Hi!

  1. Thanks, but it's fine. I'm not in it for the money ;-)
  2. &3. Yes, this project uses vitowifi for heater communication.
  3. Platform.io should download everything needed as soon as you trigger the build. If you want to stick with Arduino ide for testing you could consider checking out the last commit before I migrated to platform io.

If you bump into any issues or find something I missed in the readme please let me know so I can make make it easier for the next person to get started

Jumbo125 commented 11 months ago

Thank you for your answer it is not my first work with visual studio platform io. so i get it really fast :-) know i try to connect my wemos right. i use thos tutorial: https://github.com/Ixtalo/MyVitotronicLogger/blob/master/doc/Setup/WemosD1MiniVitoOptocoupler_bb.jpg

dumpfheimer commented 11 months ago

It looks like this on my Vitocal: I have D0 to Ground for the receiving side (wich is on the green LED) and D1 to 3.3V on the sending side (with a resistor).

To be honest I'm not sure this sounds sane (has been a long time now and I have come a long way with micro electronics since then). Everything is filled with hot glue, though, so it might be that I am missing something.

The JPG you linked looks sensible, although I do not know why D8 is grounded. If you find a working configuration please let me know and I will put it in the readme

Jumbo125 commented 11 months ago

on of the IR light, when i watch it via my smartphone camera. The other one not light. i don't know if it is correct or how i can test it.

dumpfheimer commented 11 months ago

If you have a fairly young phone it might be that you have an IR filter which could prevent you from seeing anything.

Did you try both polarizations? What value resistor are you using?

Jumbo125 commented 11 months ago

i'm not at home yet.... i only tried the first wiring from my picture i use a 10k resistor for the SFH 309 and a 220ohm resistor for the sfh 4350 On of them light(flash/blink). Does both of them need to flash??? the sending IR should be flash. Should the recieving IR also flash?

Jumbo125 commented 11 months ago

Did you defined D0 and D1 in the setting files? If yes i need to change it.

Jumbo125 commented 11 months ago

Hy i found in your settings

define OPTOLINK_OUT 0//D8

define OPTOLINK_IN 2 //D9

What do you connect to d9

thank you!

dumpfheimer commented 11 months ago

those are commented out, so not really part of the code. I will remove them Correction: they or not commented out, but not used.

dumpfheimer commented 11 months ago

As it is, the Software uses the default, main Serial interface to communicate with the heater. What device do you have and why do you think it is better to use other pins?

Jumbo125 commented 11 months ago

Thank you for your answer. I use a wemos d1 mini

I don't think it's better to use other pins. When i was read "#define OPTOLINK_IN 2 //D9" i thought, that i forgotten a wiring, becuase i didn't connect anything to D9

Now I know, that it wil be not use.

What device do you have? Do you know, if I need to enable the IR connection in the vitocal 200s?

I tried the selfmade plug yesterday. But i only get "timeout read" and after them only "link busy"

dumpfheimer commented 11 months ago

Ii have a WeMos D1R1 wich is like the D1 in matched to the form factor of an Arduino Uno.

Double check if you have a d1 mini or a d1 mini lite and change the platformio.ini to the right device. it might be using different gpio mapping.

dumpfheimer commented 11 months ago

You do not have to enable the OptoLink, it should be always on, I believe.

At this point you might want to know that booting the Vitocal 200S while having the OptoProxy connected prevents the Vitocal from booting up. I simply reset the ESP a few times when this happens which lets the Heater start normally. I do not know why this is happening and if this could be prevented easily (or if it might even be dangerous, wich I do not think it is)

dumpfheimer commented 11 months ago

Ok, so I have the following wiring:

Looking onto the heater I have the Optolink connector in front of me with the right LED glowing green. The green LED is the Sending Side

-----------
|  O   O  |
-----------
   ^   ^
 Off  Green

 TX     RX
10kΩ
3.3V    GND

The green side is connected to Ground + RX on the D1 The off side is connected to 3.3V + TX on the D1, separated by a 10kOhm resistor.

I do not know which LEDs / Phototransistors I was using, unfortunately. But it seems like you have done the research, as you have specified two models? I can remember, though that the Phototransistor looked like a normal LED and the LED looked a bit odd. Make sure you have the right ones in the right positions and the right polarization.

Jumbo125 commented 11 months ago

@dumpfheimer : "At this point you might want to know that booting the Vitocal 200S while having the OptoProxy connected prevents the Vitocal from booting up. I simply reset the ESP a few times when this happens which lets the Heater start normally. I do not know why this is happening and if this could be prevented easily (or if it might even be dangerous, wich I do not think it is)"

okay thank you! Do i understand it correct? the heater doesn't start, when the optolink is pluged in?

Jumbo125 commented 11 months ago

The green side is connected to Ground + RX on the D1 The off side is connected to 3.3V + TX on the D1, separated by a 10kOhm resistor.

I do not know which LEDs / Phototransistors I was using, unfortunately. But it seems like you have done the research, as you have specified two models? I can remember, though that the Phototransistor looked like a normal LED and the LED looked a bit odd. Make sure you have the right ones in the right positions and the right polarization.

I will check it, when i'm at home. Than you for your help

dumpfheimer commented 11 months ago

Do i understand it correct? the heater doesn't start, when the optolink is pluged in?

Yes. The heater has this loading-bar when it starts (mine at least). As long as the OptoProxy ESP is connected, it will remain in this loading bar state. If you kill the OptoProxy it then starts normally. (Or you power it down first)

Another way that has came to my mind would be powering the ESP with power coming from the heater. That way the ESP would be powered down as long as the heater is powered down and the heater should be able to start up before the ESP is connected to the WIFI and starts talking to the heater. If that is not enough I would add an optional startup timeout.

When I have some time on my hands I will look into what the heater is sending and if it could be detected and prevented.

Jumbo125 commented 11 months ago

hm, it not works.... does the sfh309FA (black) also flash, wehn you watch with your smartphone camera on it? when i test it, only the other onle flash. The sfh309 does nothing....

the sfh309fa need to be in front of the GREEN light(right light), on the viesmann device? or???

is my usage correct:

  1. viesmann deivce runs
  2. i plug the optolink in the device and start the wemos.
  3. know i can get every time the data with the http link http:///read?addr=0x2000&conv=temp
dumpfheimer commented 11 months ago

The sfh309fa looks like a phototransistor, so yes, it belongs in the green LED. It should not flash. Are you positive you have the polarizations correct.

If the heater and the esp are up and everything is wired correctly you should be able to read datasets. No startup sequence or similar is needed.

dumpfheimer commented 11 months ago

Do you have a multimeter or even oscilloscope to test if the phototransistor is working?

Jumbo125 commented 11 months ago

thank you for your help!!! i'm so happy, for spending your time.

yes i have a multimeter. i tested the resistor. yes, it shows 10kohm. i tested the solder joint with the continuity mode. i hear always the signal pieeeeeeepppp.

when i put the red cable to one IR pin and the black cable(com) to the other pin i don't get a acustic signal with the connectivity mode. but this also don't work when i test it with the "correct/good" IR sensor. how can i test the sfh309 with the multimeter?

dumpfheimer commented 11 months ago

You might be able to read a voltage over the sfh309. It should be apperent in, for example, sunlight. But it might also show something when you measure voltage while holding it to the green LED on the heater. Not sure if that's long enough for a multimeter to catch.

Did you say your LED blinks visibly on your phones camera? If not: Do you have a normal, for example green, led lying around? If so you could try swapping the sending led to see if your pin on the ESP is still okay.

What power supply are you using? Might just be a power issue?

You could try running the esp while connected to a USB port on the computer (would be good if its a port capable of delivering more than 500mA) and read the logs (pio run -t monitor) there might be something useful there.

dumpfheimer commented 11 months ago

Any success?

Jumbo125 commented 11 months ago

No.... :-( I tested it without my second resistor, because i the most tutorial is a 220ohm resistor too. Nothing work. I will test more...

dumpfheimer commented 11 months ago

Did you try reading the logs?

dumpfheimer commented 11 months ago

Wait a sec, are you connected to a PC ? Or are you using an external power source like a phone charger?

Jumbo125 commented 11 months ago

Did you try reading the logs?

Yes I find out, it use baudrate 9600 I tested the serial monitor with arduino and Plattform io. Both shows only:

Jumbo125 commented 11 months ago

I use it with pc and usb charger 2A. 5V

dumpfheimer commented 11 months ago

I think you should maybe stick to the USB charger. The PC might just mess with the serial connection when it tries to use the monitor.

I do not see any logs. Did something get lost?

dumpfheimer commented 11 months ago

Could you post the changes/configuration you made? Except wifi details of course.

Jumbo125 commented 11 months ago

The log shows only:

" ````````````````````````````````````````````````````````````````````````````````````````` "

Jumbo125 commented 11 months ago

my settings are only the wifi settings:

define WIFI_SSID "my_wifi_sid"

define WIFI_PASSWORD "pw!"

define WIFI_HOSTNAME "OptoProxy"

the conenction work. the wemos connect to my network wifi.

the link, which i use to test: http://10.0.0.135/read?addr=0x0101&conv=temp

(i used other links too)

The answer: time out and after i try it again, i get: LINK BUSY

i use:

define OPTOLINK_CLASS OptolinkP300

should i use OptolinkKP??

dumpfheimer commented 11 months ago

Do you stop receiving the "," when you unplug your optolink connector?

Jumbo125 commented 11 months ago

i got the same message

Jumbo125 commented 11 months ago

i'm searching the problem and i found some problems. i found one problem. the ir was defect. I think the polarization isn't correct. can i post a picture and you show if it is correct? 1692389087727-optolinkesp8266 (1)

dumpfheimer commented 11 months ago

This setup seems unnecessarily complicated. At least mine is working fine having a much simpler wiring.

Normally the longer leg of the led should be connected to ground.

Jumbo125 commented 11 months ago

hello thank you. i will have a lok. How doeas your sketch work? vitowiffe makes it prssobe toste the datad url and check the data e.g. every 60 secondes

how does you script work?

normally the esp run a scipt in a defined intervall. How you can make it possible, that i an send a request and get the current data= i tried this in ome other prjoects, too get data by request, but i dwn't know how i can setup this?

dumpfheimer commented 11 months ago

You can read data in two different ways:

Either the way you want to use it, by sending a http request. In that case the OptoProxy will read the data on demand, every time you call the http URL. In this case the data point does not have to be pre-configured.

The other way is to define data points and let the OptoProxy read and send the values to a MQTT server.

I use both. MQTT for rapidly changing values such as temperature and http for other things like configurations.

Jumbo125 commented 11 months ago

thats sound really good. Is it difficult to config the esp, that it will do something, when i send a url request. I wrote some sketch, and i needed this function exactly. I thought it's not possible for the esp, to do something if i send a http request with my browser

dumpfheimer commented 11 months ago

Not difficult at all! Check out this: https://electropeak.com/learn/create-a-web-server-w-esp32/

The link is for an esp 32 but the esp8266 essentially works the same

Jumbo125 commented 11 months ago

oh, thank you for the infos!

Jumbo125 commented 11 months ago

works! Great!!!!!!!!!!!!!!!! you are the best. thanks for your help! can i spend you a beer or coffee?

dumpfheimer commented 11 months ago

Nice! What was the issue in the end? Did you follow any other instructions (for example how to build the connector) that would be worth linking to in the readme of this project?

Jumbo125 commented 11 months ago

I took a new IR and soldering some part new. The ground plug holds not so good. i fix this, so it holds good. I need to use other IR Sensor because the IR sensor in the diagram is not avaible. I draw my changes on the image and i will send it to you

Jumbo125 commented 11 months ago

wiring

Jumbo125 commented 11 months ago

Dear Mr Dumpfheimer Sorry to bother you again....

Your work is great!

I searching for the useful datapoint for me.

I don't find some datapoint which tell me,

  1. if the boiler heats at the moment....
  2. if the compressor (Verdichter) works at the moment

Did you find datapoints for your heating pump, like this? thank you

dumpfheimer commented 11 months ago

Don't apologize.

Do you have the Vitotronic WO1C?

Jumbo125 commented 11 months ago

yes, i think so... i have the vitocal 200S, but i can also use datapoints from VBC700_AW

dumpfheimer commented 11 months ago

If the heater is boiling water 0x0494 (stat) should be 1 (eg http:///read?addr=0x0494&conv=stat)

If the compressor is on 0x0480 (stat) should be 1

Here is a complete list of the datapoints I use in a project:

outsideTemp temp 0x0101 ruecklaufTemp temp 0x0106 vorlaufTemp temp 0x0105 vorlaufSollTemp temp 0x1800 vorlaufKuehlenSollTemp temp 0x1803 wwTemp temp 0x010D heizkennlinieNiveau temp 0x2006 heizkennlinieSteigung temp 0x2007 kuehlkennlinieNiveau temp 0x7110 kuehlkennlinieSteigung temp 0x7111 minVorlaufKuehlen temp 0x7103 raumSollTemp temp 0x2000 raumSollRedTemp temp 0x2001 raumIstTemp temp 0x0116 betriebsart mode 0xb000 ventHeizenWW stat 0x0494 ventHeizenKuehlen stat 0x0494 hkPumpOn stat 0x048D ventilatorOn stat 0x04a6 compressorOn stat 0x0480 isCooling stat 0x04a6 temperatureRegulationMode mode 0x2005 wwBereitung mode 0xB020 wwTempSoll1 temp 0x6000 wwTempSoll2 temp 0x600C anzEinschaltungenSec count 0x600C kwhHeizen count 0x1660 kwhWW count 0x1670 copGes cop 0x1680 copH cop 0x1681 copWW cop 0x1682 copC cop 0x1683 primSourcePercent counts 0xB420 secPumpPercent counts 0xB421 wwPumpPercent counts 0xB422 verdichterPercent counts 0xB423 ecvPercent counts 0xB424

Jumbo125 commented 11 months ago

thanl you, shows betriebsart mode 0xb000 if the boiler heat at this moment? do you know what Red Temp mean?