Hello i was trying to add thermocouple sensor by using ADC MCP3008 directly to GPIO of my RPi. I used this code
echo 4 > /sys/class/gpio/export
echo in > /sys/class/gpio/gpio4/direction
and added my GPIO to domoticz hardware. The problem is that i need temperature sensor but when i added my GPIO it shows as lighting input which is now closed. Can someone please tell me is there a way to change it somehow to temperature sensor? input value is now in mV and I have a code to transform it into temp value. How can i implement this transformation that domoticz can read it for 6 GPIOs from my MCP3008 eg.
for i in range 6:
values=((values/1023)*3300*24.39))
Can i put it somehow in domoticz files? i would be very grateful for your help
I assume that connecting ADC channels directly with generic sysfs GPIO domoticz will always give me mV value. maybe you have idea or program where domoticz could read all 6 values from program
generic sysfs GPIO temperature sensor
Moderator: leecollings
-
- Posts: 7
- Joined: Monday 30 August 2021 19:49
- Target OS: Raspberry Pi / ODroid
- Domoticz version:
- Contact:
generic sysfs GPIO temperature sensor
- Attachments
-
- urzadzenia domoticz.JPG (54.92 KiB) Viewed 775 times
-
- swiatlo.JPG (25.7 KiB) Viewed 775 times
- waltervl
- Posts: 5908
- Joined: Monday 28 January 2019 18:48
- Target OS: Linux
- Domoticz version: 2024.7
- Location: NL
- Contact:
Re: generic sysfs GPIO temperature sensor
GPIO input can only see open close (binary input). It cannot handle ADC. Be aware that putting a high voltage on your GPIO can damage your RPi!
Domoticz running on Udoo X86 (on Ubuntu)
Devices/plugins: ZigbeeforDomoticz (with Xiaomi, Ikea, Tuya devices), Nefit Easy, Midea Airco, Omnik Solar, Goodwe Solar
Devices/plugins: ZigbeeforDomoticz (with Xiaomi, Ikea, Tuya devices), Nefit Easy, Midea Airco, Omnik Solar, Goodwe Solar
-
- Posts: 7
- Joined: Monday 30 August 2021 19:49
- Target OS: Raspberry Pi / ODroid
- Domoticz version:
- Contact:
Re: generic sysfs GPIO temperature sensor
maximum input of voltage i'm gonna put to GPIOs is 100mV so RPi will be fine

If there isn't an option to do that from MCP3008 is there an option to read temp from thermocouple using max6675 module?
- waltervl
- Posts: 5908
- Joined: Monday 28 January 2019 18:48
- Target OS: Linux
- Domoticz version: 2024.7
- Location: NL
- Contact:
Re: generic sysfs GPIO temperature sensor
You could do something with python:
to read the MCP3008:
https://learn.adafruit.com/mcp3008-spi- ... cuitpython
Then make a python script and call that in dzVents to update a temperature device.
See for example below topic for a battery voltage reading.
viewtopic.php?t=34088
to read the MCP3008:
https://learn.adafruit.com/mcp3008-spi- ... cuitpython
Then make a python script and call that in dzVents to update a temperature device.
See for example below topic for a battery voltage reading.
viewtopic.php?t=34088
Domoticz running on Udoo X86 (on Ubuntu)
Devices/plugins: ZigbeeforDomoticz (with Xiaomi, Ikea, Tuya devices), Nefit Easy, Midea Airco, Omnik Solar, Goodwe Solar
Devices/plugins: ZigbeeforDomoticz (with Xiaomi, Ikea, Tuya devices), Nefit Easy, Midea Airco, Omnik Solar, Goodwe Solar
-
- Posts: 7
- Joined: Monday 30 August 2021 19:49
- Target OS: Raspberry Pi / ODroid
- Domoticz version:
- Contact:
Re: generic sysfs GPIO temperature sensor
i have already python code to receive temp values from my MCP connecting it to 4 GPIO pins instead of SPI software. I must admit i can't really understand part with dzVents and the rest could you explain it more specific what can i do with my values received from python code to domoticz.waltervl wrote: ↑Tuesday 31 August 2021 18:29 You could do something with python:
to read the MCP3008:
https://learn.adafruit.com/mcp3008-spi- ... cuitpython
Then make a python script and call that in dzVents to update a temperature device.
See for example below topic for a battery voltage reading.
viewtopic.php?t=34088
- waltervl
- Posts: 5908
- Joined: Monday 28 January 2019 18:48
- Target OS: Linux
- Domoticz version: 2024.7
- Location: NL
- Contact:
Re: generic sysfs GPIO temperature sensor
Dzvents is one of the internal scripting languages. You can use the internal events system to write the code and do some automation (eg switch on fan when temp is > 40 deg).
The last code in the other topic reads the voltage and puts it in a device. You can do the same but then for a temperature.
Other option is to adapt your current python script and have it update the Domoticz temperature device by a http API url. That is what they do in the first script:
But then you have to fire that python script from the OS every x minutes by a crontab. In the optimized script the dzVents script is triggering the python script. So it is more regulated from Domoticz.
The last code in the other topic reads the voltage and puts it in a device. You can do the same but then for a temperature.
Other option is to adapt your current python script and have it update the Domoticz temperature device by a http API url. That is what they do in the first script:
Code: Select all
httpresponse = urllib.urlopen("http://127.0.0.1:8080/json.htm?type=command¶m=udevice&idx=" + str(domoticz_V) + "&nvalue=0&svalue=" + str(float(VOLTAGE_BATTERY)))
Domoticz running on Udoo X86 (on Ubuntu)
Devices/plugins: ZigbeeforDomoticz (with Xiaomi, Ikea, Tuya devices), Nefit Easy, Midea Airco, Omnik Solar, Goodwe Solar
Devices/plugins: ZigbeeforDomoticz (with Xiaomi, Ikea, Tuya devices), Nefit Easy, Midea Airco, Omnik Solar, Goodwe Solar
Who is online
Users browsing this forum: No registered users and 1 guest