gpio fails as of kernel 6.6 on rpi
Moderators: leecollings, remb0
Forum rules
Before posting here, make sure you are on the latest Beta or Stable version.
If you have problems related to the web gui, clear your browser cache + appcache first.
Use the following template when posting here:
Version: xxxx
Platform: xxxx
Plugin/Hardware: xxxx
Description:
.....
If you are having problems with scripts/blockly, always post the script (in a spoiler or code tag) or screenshots of your blockly
If you are replying, please do not quote images/code from the first post
Please mark your topic as Solved when the problem is solved.
Before posting here, make sure you are on the latest Beta or Stable version.
If you have problems related to the web gui, clear your browser cache + appcache first.
Use the following template when posting here:
Version: xxxx
Platform: xxxx
Plugin/Hardware: xxxx
Description:
.....
If you are having problems with scripts/blockly, always post the script (in a spoiler or code tag) or screenshots of your blockly
If you are replying, please do not quote images/code from the first post
Please mark your topic as Solved when the problem is solved.
-
- Posts: 337
- Joined: Friday 17 August 2018 14:03
- Target OS: Raspberry Pi / ODroid
- Domoticz version:
- Contact:
gpio fails as of kernel 6.6 on rpi
Just did an sudo apt update && sudo apt upgrade -y on my pi, which did quite an update on the pi os.
One of the changes was upgrade to kernel 6.6, and now i found out gpio does not work anymore.
On my watermeter plugin i now get the following error:
2024-03-17 20:40:37.307 Error: Watermeter: RuntimeError: Failed to add edge detection
This error is on this line:
GPIO.add_event_detect(gpio_pin, GPIO.BOTH, callback = Interrupt, bouncetime = bouncetime)
(GPIO refers to rpi.GPIO)
anyone have an idea how to fix?
EDIT: Did some research myself. Turns out a lot is changed for GPIO as of kernel 6.6 (which is now the new standard kernel for raspberry pi os), so logged an issue: https://github.com/domoticz/domoticz/issues/6040
One of the changes was upgrade to kernel 6.6, and now i found out gpio does not work anymore.
On my watermeter plugin i now get the following error:
2024-03-17 20:40:37.307 Error: Watermeter: RuntimeError: Failed to add edge detection
This error is on this line:
GPIO.add_event_detect(gpio_pin, GPIO.BOTH, callback = Interrupt, bouncetime = bouncetime)
(GPIO refers to rpi.GPIO)
anyone have an idea how to fix?
EDIT: Did some research myself. Turns out a lot is changed for GPIO as of kernel 6.6 (which is now the new standard kernel for raspberry pi os), so logged an issue: https://github.com/domoticz/domoticz/issues/6040
-
- Posts: 337
- Joined: Friday 17 August 2018 14:03
- Target OS: Raspberry Pi / ODroid
- Domoticz version:
- Contact:
Re: gpio fails as of kernel 6.6 on rpi
hmmm... this is the so maniest issue where i did not get support on the forum. No pun intended for everyone who works very hard to keep this community alive. But it is a bit worrying that support is dropping for domoticz..
anyway... until the issue is solved in the code i created a workaround to be able to still control the switches. posting it here, in case someone has the same issue.
so basically what is happening that the number of the gpio is changed as of kernel 6.6 and domoticz cannot handle this. (should be fixed in the code).
the new numbers can be found if you do a "cat /sys/kernel/debug/gpio". You will get output like this:
in list you can find the new number for the pin (in my case 526 for gpio-14 which controls my "buitenlamp")
you can then still activate the gpio using the sysfs interface, in my case for gpio14:
after this you can create a dummy switch and a helper script to control the gpio:
anyway... until the issue is solved in the code i created a workaround to be able to still control the switches. posting it here, in case someone has the same issue.
so basically what is happening that the number of the gpio is changed as of kernel 6.6 and domoticz cannot handle this. (should be fixed in the code).
the new numbers can be found if you do a "cat /sys/kernel/debug/gpio". You will get output like this:
Code: Select all
gpio-512 (ID_SDA )
gpio-513 (ID_SCL )
gpio-514 (GPIO2 )
gpio-515 (GPIO3 )
gpio-516 (GPIO4 )
gpio-517 (GPIO5 )
gpio-518 (GPIO6 )
gpio-519 (GPIO7 )
gpio-520 (GPIO8 )
gpio-521 (GPIO9 )
gpio-522 (GPIO10 )
gpio-523 (GPIO11 )
gpio-524 (GPIO12 )
gpio-525 (GPIO13 )
gpio-526 (GPIO14 |sysfs ) out hi ACTIVE LOW
gpio-527 (GPIO15 |sysfs ) in hi
gpio-528 (GPIO16 )
gpio-529 (GPIO17 )
gpio-530 (GPIO18 |lg ) in hi IRQ
gpio-531 (GPIO19 )
gpio-532 (GPIO20 )
gpio-533 (GPIO21 )
gpio-534 (GPIO22 )
gpio-535 (GPIO23 )
gpio-536 (GPIO24 )
gpio-537 (GPIO25 )
gpio-538 (GPIO26 )
you can then still activate the gpio using the sysfs interface, in my case for gpio14:
Code: Select all
echo 526 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio526/direction
echo 1 > /sys/class/gpio/gpio526/active_low
Code: Select all
-- helper script for gpio
return {
on = {
devices = {
'Buitenlamp Carport' -- the name of the dummy switch
}
},
logging = {
level = domoticz.LOG_DEBUG,
marker = 'GPIO helper',
},
execute = function(domoticz, device)
domoticz.log('Device ' .. device.name .. ' was changed to ' .. device.state, domoticz.LOG_DEBUG)
if (device.active) then
domoticz.log("Switching on",domoticz.LOG_DEBUG)
domoticz.executeShellCommand("echo 1 > /sys/class/gpio/gpio526/value") -- set to correct gpio
else
domoticz.log("Switching off",domoticz.LOG_DEBUG)
domoticz.executeShellCommand("echo 0 > /sys/class/gpio/gpio526/value") -- set to correct gpio
end
end
}
-
- Posts: 621
- Joined: Saturday 21 September 2019 17:55
- Target OS: Raspberry Pi / ODroid
- Domoticz version: 2024.1
- Location: The Netherlands
- Contact:
Re: gpio fails as of kernel 6.6 on rpi
Keep in mind that not many users will have had this issue, so supporting experience from others was probably not existing. Maybe only the one's that installed domoticz on a RPi 5. I remember a thread about it. As a frontrunner, indeed your own research, or a post on a Raspberry Pi forum, is the way forward then.
- waltervl
- Posts: 5148
- Joined: Monday 28 January 2019 18:48
- Target OS: Linux
- Domoticz version: 2024.7
- Location: NL
- Contact:
Re: gpio fails as of kernel 6.6 on rpi
And also in the github issue I mentioned an existing github issue that tried to solve your issue...
What more can we do?
What more can we do?
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: 337
- Joined: Friday 17 August 2018 14:03
- Target OS: Raspberry Pi / ODroid
- Domoticz version:
- Contact:
Re: gpio fails as of kernel 6.6 on rpi
I regret a bit I made this remark caissière apparently it demotivates the people who still support this community
It’s just a bit that i see a trend. In the past any issue I posted on this forum I got much more feedback. So i am a bit worried that the Community for this very nice product is becoming smaller and smaller
Anyway really appreciate the work a lot of people like you are doing Here. So I won’t make similar remarks again
It’s just a bit that i see a trend. In the past any issue I posted on this forum I got much more feedback. So i am a bit worried that the Community for this very nice product is becoming smaller and smaller
Anyway really appreciate the work a lot of people like you are doing Here. So I won’t make similar remarks again
-
- Posts: 4
- Joined: Monday 02 December 2024 15:03
- Target OS: Raspberry Pi / ODroid
- Domoticz version:
- Contact:
Re: gpio fails as of kernel 6.6 on rpi
How do you make this dummy button?
I created a dummy in hardware and when I try to manually create a switch and select this dummy as hardware and Sysfs GPIO as type gpio516-input appears in the Sysfs GPIO field, but when I try to add the device I get the message: "undefined"
I created a dummy in hardware and when I try to manually create a switch and select this dummy as hardware and Sysfs GPIO as type gpio516-input appears in the Sysfs GPIO field, but when I try to add the device I get the message: "undefined"
- waltervl
- Posts: 5148
- Joined: Monday 28 January 2019 18:48
- Target OS: Linux
- Domoticz version: 2024.7
- Location: NL
- Contact:
Re: gpio fails as of kernel 6.6 on rpi
You should not make a dummy device.
See the instructions on the wiki: https://wiki.domoticz.com/GPIO
See the instructions on the wiki: https://wiki.domoticz.com/GPIO
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: 4
- Joined: Monday 02 December 2024 15:03
- Target OS: Raspberry Pi / ODroid
- Domoticz version:
- Contact:
Re: gpio fails as of kernel 6.6 on rpi
The method as described in the wiki doesn't work anymore that is what this topic is all about.
as akamming writes above you should make a dummy switch and create some scripting
as akamming writes above you should make a dummy switch and create some scripting
- waltervl
- Posts: 5148
- Joined: Monday 28 January 2019 18:48
- Target OS: Linux
- Domoticz version: 2024.7
- Location: NL
- Contact:
Re: gpio fails as of kernel 6.6 on rpi
The issue as logged in https://github.com/domoticz/domoticz/issues/6040 is solved in latest stable 2024.7
So it should work again as akamming tested it in a beta release. No need to do a workaround. But best is that @akamming will reply here indeed.
So it should work again as akamming tested it in a beta release. No need to do a workaround. But best is that @akamming will reply here indeed.
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: 337
- Joined: Friday 17 August 2018 14:03
- Target OS: Raspberry Pi / ODroid
- Domoticz version:
- Contact:
Re: gpio fails as of kernel 6.6 on rpi
it's indeed fixed in the domoticz code.. so the above mentioned workaround is no longer neccessary...waltervl wrote: ↑Monday 02 December 2024 16:26 The issue as logged in https://github.com/domoticz/domoticz/issues/6040 is solved in latest stable 2024.7
So it should work again as akamming tested it in a beta release. No need to do a workaround. But best is that @akamming will reply here indeed.
-
- Posts: 4
- Joined: Monday 02 December 2024 15:03
- Target OS: Raspberry Pi / ODroid
- Domoticz version:
- Contact:
Re: gpio fails as of kernel 6.6 on rpi
Ok, then it might just be me.
I tired to run the sysfs commands in the terminal and that only worked if I added 512 to the required number. and if I did so finally something appeared in domoticz (see screenshot above)
But now I installed an older version of pi os with kernel 6.1 to be sure. and now things like sudo sh -c 'echo 4 > /sys/class/gpio/export' don't give errors in the terminal.
I modified /etc/rc.local to look like:
after reboot I still don't have a gpio pin available in domoticz "No sysfs-gpio exports"
a little background:
I was running a pi1B for 10 years, 2 weeks ago I tried an update because a couldn't connect to it anymore with the domoticz app.
since the it's dark arround the house, after a lot of struggling I found out that the Pi1 is no longer supported so I upgraded to a pi3B
but somehow I cant get the GPIO running again.
I tired to run the sysfs commands in the terminal and that only worked if I added 512 to the required number. and if I did so finally something appeared in domoticz (see screenshot above)
But now I installed an older version of pi os with kernel 6.1 to be sure. and now things like sudo sh -c 'echo 4 > /sys/class/gpio/export' don't give errors in the terminal.
I modified /etc/rc.local to look like:
after reboot I still don't have a gpio pin available in domoticz "No sysfs-gpio exports"
a little background:
I was running a pi1B for 10 years, 2 weeks ago I tried an update because a couldn't connect to it anymore with the domoticz app.
since the it's dark arround the house, after a lot of struggling I found out that the Pi1 is no longer supported so I upgraded to a pi3B
but somehow I cant get the GPIO running again.
-
- Posts: 4
- Joined: Monday 02 December 2024 15:03
- Target OS: Raspberry Pi / ODroid
- Domoticz version:
- Contact:
Re: gpio fails as of kernel 6.6 on rpi
If anyone can help me on this that wile be much appreciated:
1) I create a new install of PI OS
2) I install domoticz using ' sudo bash -c "$(curl -sSfL https://install.domoticz.com)" '
4 ) I add folowing lines to the end of /etc/init.d/domoticz.sh :
7) I try to manually add a switch of type Sysfs GPIO and behind Sysfs GPIO: I read 'No sysfs-gpio exports'
What am I doing wrong?
1) I create a new install of PI OS
2) I install domoticz using ' sudo bash -c "$(curl -sSfL https://install.domoticz.com)" '
4 ) I add folowing lines to the end of /etc/init.d/domoticz.sh :
5) Using the console I can switch a LED that I wired to pin 26 with:echo 538 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio538/direction
6) I open domoticz in the browser and create Genric sysfs GPIO Hardwareecho 1 > /sys/class/gpio/gpio538/value
echo 0 > /sys/class/gpio/gpio538/value
7) I try to manually add a switch of type Sysfs GPIO and behind Sysfs GPIO: I read 'No sysfs-gpio exports'
What am I doing wrong?
-
- Posts: 14
- Joined: Saturday 11 April 2020 11:23
- Target OS: Raspberry Pi / ODroid
- Domoticz version: 2024.7
- Location: Netherland
- Contact:
Re: gpio fails as of kernel 6.6 on rpi
Hi,
I was using GPIO, doorbell application, on Buster and that was working fine with Generic sysfs GPIO in domoticz on PI 3B+.
I completely re-installed with Bookworm and using docker and I had the same problem, I cannot get it to work again.
I am running Bookworm Linux rpi2-3b 6.6.51+rpt-rpi-v8 #1 SMP PREEMPT Debian 1:6.6.51-1+rpt3 (2024-10-08) aarch64 GNU/Linux.
Sysfs is already for a longer time deprecated and the new interface is https://github.com/brgl/libgpiod.
The libgpiod is already pre-installed in Bookworm.
I have created a dummy doorbell device in Domoticz and created the following script:
#!/bin/bash
#
# Monitor GPIO doorbell application
#
CHIP_NAME=gpiochip0
GPIO=4
ACTIVE_STATE=--active-low
NUM_EVENTS="--num-events=20"
EDGE_EVENT=-f
RPI="192.168.111.102:8080/"
SWITCH_CMD="json.htm?type=command¶m=switchlight&"
# Dummy doorbell device Domoticz
IDX=96
while :
do
# gpiomon -l -n 1 -f gpiochip0 $GPIO
EVENT=`/usr/bin/gpiomon $ACTIVE_STATE $NUM_EVENTS $EDGE_EVENT $CHIP_NAME $GPIO`
# echo $EVENT
hostcmd="http://${RPI}${SWITCH_CMD}idx=${IDX}&switchcmd=On"
# echo $hostcmd
curlres=`/usr/bin/curl -sS $hostcmd`
done
This mon_doorbell.sh script runs as daemon.
Created the following file etc/systemd/system/mon_doorbell.service:
Unit]
Description=Monitor doorbell
[Service]
ExecStart=/opt/domoticz/store/scripts/scripts/mon_doorbell.sh
Restart=on-failure
[Install]
WantedBy=multi-user.target
Then run the following commands to enable and start the daemon.
sudo systemctl daemon reload
sudo systemctl enable mon_doorbell.service
sudo systemctl start mon_doorbell.service
The dummy doorbell device sends a telegram notification to my cellphone.
Works perfectly.
I was using GPIO, doorbell application, on Buster and that was working fine with Generic sysfs GPIO in domoticz on PI 3B+.
I completely re-installed with Bookworm and using docker and I had the same problem, I cannot get it to work again.
I am running Bookworm Linux rpi2-3b 6.6.51+rpt-rpi-v8 #1 SMP PREEMPT Debian 1:6.6.51-1+rpt3 (2024-10-08) aarch64 GNU/Linux.
Sysfs is already for a longer time deprecated and the new interface is https://github.com/brgl/libgpiod.
The libgpiod is already pre-installed in Bookworm.
I have created a dummy doorbell device in Domoticz and created the following script:
#!/bin/bash
#
# Monitor GPIO doorbell application
#
CHIP_NAME=gpiochip0
GPIO=4
ACTIVE_STATE=--active-low
NUM_EVENTS="--num-events=20"
EDGE_EVENT=-f
RPI="192.168.111.102:8080/"
SWITCH_CMD="json.htm?type=command¶m=switchlight&"
# Dummy doorbell device Domoticz
IDX=96
while :
do
# gpiomon -l -n 1 -f gpiochip0 $GPIO
EVENT=`/usr/bin/gpiomon $ACTIVE_STATE $NUM_EVENTS $EDGE_EVENT $CHIP_NAME $GPIO`
# echo $EVENT
hostcmd="http://${RPI}${SWITCH_CMD}idx=${IDX}&switchcmd=On"
# echo $hostcmd
curlres=`/usr/bin/curl -sS $hostcmd`
done
This mon_doorbell.sh script runs as daemon.
Created the following file etc/systemd/system/mon_doorbell.service:
Unit]
Description=Monitor doorbell
[Service]
ExecStart=/opt/domoticz/store/scripts/scripts/mon_doorbell.sh
Restart=on-failure
[Install]
WantedBy=multi-user.target
Then run the following commands to enable and start the daemon.
sudo systemctl daemon reload
sudo systemctl enable mon_doorbell.service
sudo systemctl start mon_doorbell.service
The dummy doorbell device sends a telegram notification to my cellphone.
Works perfectly.
Domoticz v2024.2, running on Raspberry PI 3B+ (2x)
Devices/plugins: RPI1: Milight hub , Z-wave, LMS, Denon, Homebridge (eDomoticz), RFXCOM; RPI2: SolarEdge, P1 Smart meter UBS, Plugwise Anna, Generic sysfs GPIO (Doorbell)
Devices/plugins: RPI1: Milight hub , Z-wave, LMS, Denon, Homebridge (eDomoticz), RFXCOM; RPI2: SolarEdge, P1 Smart meter UBS, Plugwise Anna, Generic sysfs GPIO (Doorbell)
Who is online
Users browsing this forum: No registered users and 0 guests