santoru / pihole-dashboard

Minimal and clean dashboard to visualize some stats of Pi-Hole with an E-Ink display attached to your Raspberry Pi
GNU General Public License v3.0
125 stars 10 forks source link

Can't install pihole-dashboard on DietPi #8

Closed Falconcrest closed 2 years ago

Falconcrest commented 2 years ago

Hello,

i found your project when I was looking for another use for my Waveshare 2.13" display. My hardware requirements are the same as you listed. I use an RPi Zero WH, pihole in version V5.14.1 and the 2.13inch E -Ink display HAT for Raspberry Pi.

When I run the command sudo python3 examples/epd_2in13_V2_test.py, the demo plays correctly on the display.

I've followed your guide closely, but I get errors with both ways to install pihole-dashboard.

Here the error messages:

root@falconstar:~# sudo pip3 install pihole-dashboard Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple/ Collecting pihole-dashboard Using cached pihole_dashboard-1.0.2-py3-none-any.whl (140 kB) Collecting Pillow>=8.2.0 Using cached https://www.piwheels.org/simple/pillow/Pillow-9.3.0-cp39-cp39-linux_armv6l.whl (1.1 MB) Requirement already satisfied: netifaces>=0.10.9 in /usr/local/lib/python3.9/dist-packages (from pihole-dashboard) (0.11.0) Collecting pihole-dashboard Using cached pihole_dashboard-1.0.1-py3-none-any.whl (137 kB) Using cached https://www.piwheels.org/simple/pihole-dashboard/pihole_dashboard-1.0.0-py3-none-any.whl (124 kB) ERROR: Cannot install pihole-dashboard==1.0.0, pihole-dashboard==1.0.1 and pihole-dashboard==1.0.2 because these package versions have conflicting dependencies.

The conflict is caused by: pihole-dashboard 1.0.2 depends on waveshare-epd pihole-dashboard 1.0.1 depends on waveshare-epd pihole-dashboard 1.0.0 depends on waveshare-epd

To fix this you could try to:

  1. loosen the range of package versions you've specified
  2. remove package versions to allow pip attempt to solve the dependency conflict

ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts

The 2nd method shows these messages:

root@falconstar:~/pihole-dashboard# sudo pip3 install . Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple/ Processing /root/pihole-dashboard Preparing metadata (setup.py) ... done ERROR: Could not find a version that satisfies the requirement waveshare-epd (from pihole-dashboard) (from versions: none) ERROR: No matching distribution found for waveshare-epd

I can't find a solution to these problems, do you have any ideas or tips?

Best regards, Carsten

Falconcrest commented 2 years ago

I have an addendum to my problem.

In the meantime I switched the OS from DietPi to Raspberry Pi OS Lite. Installing pihole-dashboard worked now, I think the problem must be related to Python and DietPi somehow.

One thing still surprises me: My screen has a completely different content than can be seen here in the photo. 5 lines are displayed:

  1. [x]Can`t connect to WI-FI
  2. [+]FTL is listening on port 53
  3. [+]Pi-hole blocking is enabled
  4. [+]There are 2 clients connected
  5. [+]Blocked 0 ads

The plus sign is a tick.

Should it be a problem that I use Pi-hole with unbound?

Despite the fact that pihole-dashboard could now be installed, I am still interested in a solution to the problem described above, as I would like to use DietPi as the OS.

I will also test the whole thing again with Balena OS.

Best regards, Carsten

santoru commented 2 years ago

Hi @Falconcrest, thank you for your message. The first problem is mostly related to the third party library waveshare-epd not being installed properly. Did you installed it as mentioned on the README?:

git clone https://github.com/waveshare/e-Paper.git
cd e-Paper/RaspberryPi_JetsonNano/python/
sudo python3 setup.py install

Let me know if this helps.

Best

Joulinar commented 2 years ago

In addition, you need to install Build-Essential software package on DietPi. Otherwise, installation of waveshare-epd is going to fail.

Falconcrest commented 2 years ago

Hello @santoru

Did you installed it as mentioned on the README?:

git clone https://github.com/waveshare/e-Paper.git
cd e-Paper/RaspberryPi_JetsonNano/python/
sudo python3 setup.py install

I've done exactly the same thing, several times even, unfortunately without success. Depending on the installation method of pihole-dashboard, the corresponding errors are always output.

What could the other advertisement on the e-paper be all about? In the photo you can see completely different values ​​of Pihole under Pi OS Lite.

Best regards

Falconcrest commented 2 years ago

Hi @Joulinar

In addition, you need to install Build-Essential software package on DietPi. Otherwise, installation of waveshare-epd is going to fail.

I've done that now, unfortunately without success. As already described above, the error messages remain.

Both were fresh installations of DietPi and Pi OS Lite, so "legacy" shouldn't be the reason.

Best regards

Joulinar commented 2 years ago

does this finish without issues?

git clone https://github.com/waveshare/e-Paper.git
cd e-Paper/RaspberryPi_JetsonNano/python/
sudo python3 setup.py install
Falconcrest commented 2 years ago

@Joulinar

does this finish without issues?

Yes, completely without, I claim once. The demo with the command works, yes!

cd e-Paper/RaspberryPi_JetsonNano/python/ sudo python3 examples/epd_2in13_V2_test.py

I show the error output again:

sudo pip3 install pihole-dashboard Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple/ Collecting pihole-dashboard Using cached pihole_dashboard-1.0.2-py3-none-any.whl (140 kB) Collecting Pillow>=8.2.0 Using cached https://www.piwheels.org/simple/pillow/Pillow-9.3.0-cp39-cp39-linux_armv6l.whl (1.1 MB) Collecting pihole-dashboard Using cached pihole_dashboard-1.0.1-py3-none-any.whl (137 kB) Using cached https://www.piwheels.org/simple/pihole-dashboard/pihole_dashboard-1.0.0-py3-none-any.whl (124 kB) ERROR: Cannot install pihole-dashboard==1.0.0, pihole-dashboard==1.0.1 and pihole-dashboard==1.0.2 because these package versions have conflicting dependencies.

The conflict is caused by: pihole-dashboard 1.0.2 depends on waveshare-epd pihole-dashboard 1.0.1 depends on waveshare-epd pihole-dashboard 1.0.0 depends on waveshare-epd

To fix this you could try to:

  1. loosen the range of package versions you've specified
  2. remove package versions to allow pip attempt to solve the dependency conflict

ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts

git clone https://github.com/santoru/pihole-dashboard fatal: destination path 'pihole-dashboard' already exists and is not an empty directory. cd pihole-dashboard sudo pip3 install . Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple/ Processing /root/pihole-dashboard Preparing metadata (setup.py) ... done ERROR: Could not find a version that satisfies the requirement waveshare-epd (from pihole-dashboard) (from versions: none) ERROR: No matching distribution found for waveshare-epd root@falconstar:~/pihole-dashboard#

Joulinar commented 2 years ago

Try to use code fences, this will make your code more readable πŸ˜‰

However, there still seems to be an issue with 3rd party library waveshare-epd not being available on your device.

Falconcrest commented 2 years ago

@Joulinar

Try to use code fences, this will make your code more readable πŸ˜‰

I will try my best...

However, there still seems to be an issue with 3rd party library waveshare-epd not being available on your device.

If so, why is the demo working on the e-Paper Display? Why is it easy to install on Pi OS Lite?

Joulinar commented 2 years ago

ok the problem seems to be the location of waveshare-epd module. It's stored at /usr/lib/python3.9/site-packages. Due to whatever reason not recognized by pip3 πŸ€”

Falconcrest commented 2 years ago

Correct, see here:

root@falconstar:/usr/lib/python3.9/site-packages# ls easy-install.pth waveshare_epd-0.0.0-py3.9.egg

Any idea why?

Joulinar commented 2 years ago

not sure who is doing wrong. But default location actually is /root/.local/lib/python3.9/site-packages instead of /usr/lib/python3.9/site-packages

root@DietPi3:~# python3 -m site --user-site
/root/.local/lib/python3.9/site-packages
root@DietPi3:~#

Similar is described on Python docs. There as well it is user home directory. https://docs.python.org/3/library/site.html#site.USER_SITE https://docs.python.org/3/library/site.html#command-line-interface

A workaround would be to copy stuff manually from A to B.

mkdir -p /root/.local/lib/python3.9/site-packages
cd /usr/lib/python3.9/site-packages
cp -p -r * /root/.local/lib/python3.9/site-packages/
cd /root/pihole-dashboard/
sudo pip3 install .
Falconcrest commented 2 years ago

@Joulinar , @santoru

It turns out to be tough, the installation worked, but nothing is displayed. When I run sudo pihole-dashboard-draw according to the instructions, the following message appears:

Traceback (most recent call last): File "/usr/local/bin/pihole-dashboard-draw", line 23, in pihole_dashboard.update() File "/usr/local/lib/python3.9/dist-packages/pihole_dashboard/init.py", line 86, in update ip = ni.ifaddresses(INTERFACE)[ni.AF_INET][0]['addr'] ValueError: You must specify a valid interface name.

In that case I guess I'll have to use Pi OS Lite then.

@santoru Please answer my question about the completely different ad compared to your photo here! Thanks!

@joulinar Thank you for your support!

santoru commented 2 years ago

Thanks @Joulinar for jumping in, yeah that's a hacky solution but should work. πŸ˜ƒ

@Falconcrest regarding the last error I mistakenly hard-coded INTERFACE = "wlan0" on the script but it seems your device has a different name for that interface, you can run ip a to check what interface you're currently using.

Also I'm not sure about what completely different output you mention, I only see the difference being FTL instead of DNS and the message saying you're not connected.

Best

Falconcrest commented 2 years ago

@santoru

... hard-coded INTERFACE = "wlan0" on the script but it seems your device has a different name for that interface

Now I'm using Pi OS Lite again!

Ups, i use eth0 with a Waveshare Pi Zero to Pi 3 adapter. https://www.waveshare.com/zero-to-pi3-adapter-a.htm Is there a solution to switch to eth0?

Also I'm not sure about what completely different output you mention, I only see the difference being FTL instead of DNS and the message saying you're not connected.

Pic

Yes, line 1 does show wlan0 an not eth0, line 2 shows the FTL status instead of the DNS status. Stupid question, but is it because I'm using unbound or because I'm not actively using the pi-hole at the moment? At first I only set it up, it shouldn't be for me, but for my father.

santoru commented 2 years ago

Is there a solution to switch to eth0?

Another hacky solution would be to manually edit the /usr/local/lib/python3.9/dist-packages/pihole_dashboard/__init__.py file to replace the interface name. Fixing this should show the correct IP on the display. Regarding the FTL wording over the DNS one, this is directly coming from the Pi-Hole and was updated a while ago, I have the same one on my updated Raspberry (it's just wording, not related to functionality).

Best

Falconcrest commented 2 years ago

@santoru

Another hacky solution would be to manually edit the /usr/local/lib/python3.9/dist-packages/pihole_dashboard/__init__.py file to replace the interface name. Fixing this should show the correct IP on the display.

Great, it works! Thanks again for the support.