<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.bunnfamily.nz/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Simon</id>
	<title>Simon&#039;s Help System - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.bunnfamily.nz/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Simon"/>
	<link rel="alternate" type="text/html" href="https://wiki.bunnfamily.nz/index.php?title=Special:Contributions/Simon"/>
	<updated>2026-04-11T23:34:57Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://wiki.bunnfamily.nz/index.php?title=MediaWiki_-_enable_file_upload&amp;diff=178</id>
		<title>MediaWiki - enable file upload</title>
		<link rel="alternate" type="text/html" href="https://wiki.bunnfamily.nz/index.php?title=MediaWiki_-_enable_file_upload&amp;diff=178"/>
		<updated>2025-12-09T08:41:53Z</updated>

		<summary type="html">&lt;p&gt;Simon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Images are stored in /var/www/mediawiki/images&lt;br /&gt;
Go to /var/www/mediawiki and type &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo chmod -R 755 ./images/&lt;br /&gt;
sudo chown -R www-data:www-data images/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Also make sure php.ini (/etc/php/8.1/cli/php.ini) has file_uploads = on&lt;br /&gt;
&lt;br /&gt;
Enable Media Wiki when access fails from Browser&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo chown -R www-data:www-data /var/www/mediawiki&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Backup MediaWiki&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 sudo /usr/local/sbin/mediawiki-backup.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Restore MediaWiki&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo /usr/local/sbin/mediawiki-restore.sh /media/simon/Backups/mediawiki/mediawiki-backup-2025-12-09_14-45-00.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Simon</name></author>
	</entry>
	<entry>
		<id>https://wiki.bunnfamily.nz/index.php?title=MediaWiki_-_enable_file_upload&amp;diff=177</id>
		<title>MediaWiki - enable file upload</title>
		<link rel="alternate" type="text/html" href="https://wiki.bunnfamily.nz/index.php?title=MediaWiki_-_enable_file_upload&amp;diff=177"/>
		<updated>2025-12-09T02:17:41Z</updated>

		<summary type="html">&lt;p&gt;Simon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Images are stored in /var/www/mediawiki/images&lt;br /&gt;
Go to /var/www/mediawiki and type &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo chmod -R 755 ./images/&lt;br /&gt;
sudo chown -R www-data:www-data images/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Also make sure php.ini (/etc/php/8.1/cli/php.ini) has file_uploads = on&lt;br /&gt;
&lt;br /&gt;
Enable Media Wiki when access fails from Browser&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo chown -R www-data:www-data /var/www/mediawiki&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Backup MediaWiki&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 sudo /usr/local/sbin/mediawiki-backup.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Restore MediaWiki&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo /usr/local/sbin/mediawiki-restore.sh /srv/backups/mediawiki/mediawiki-backup-2025-12-09_14-45-00.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Simon</name></author>
	</entry>
	<entry>
		<id>https://wiki.bunnfamily.nz/index.php?title=MediaWiki_-_enable_file_upload&amp;diff=176</id>
		<title>MediaWiki - enable file upload</title>
		<link rel="alternate" type="text/html" href="https://wiki.bunnfamily.nz/index.php?title=MediaWiki_-_enable_file_upload&amp;diff=176"/>
		<updated>2025-12-09T01:30:08Z</updated>

		<summary type="html">&lt;p&gt;Simon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Images are stored in /var/www/mediawiki/images&lt;br /&gt;
Go to /var/www/mediawiki and type &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo chmod -R 755 ./images/&lt;br /&gt;
sudo chown -R www-data:www-data images/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Also make sure php.ini (/etc/php/8.1/cli/php.ini) has file_uploads = on&lt;br /&gt;
&lt;br /&gt;
Enable Media Wiki when access fails from Browser&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo chown -R www-data:www-data /var/www/mediawiki&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Simon</name></author>
	</entry>
	<entry>
		<id>https://wiki.bunnfamily.nz/index.php?title=Fix_JTOP&amp;diff=175</id>
		<title>Fix JTOP</title>
		<link rel="alternate" type="text/html" href="https://wiki.bunnfamily.nz/index.php?title=Fix_JTOP&amp;diff=175"/>
		<updated>2025-08-09T02:52:01Z</updated>

		<summary type="html">&lt;p&gt;Simon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To modify the jetson_variables.py file, you would need to:&lt;br /&gt;
&lt;br /&gt;
Locate the file: The file is likely located in the /usr/local/lib/python3.10/dist-packages/jtop/core/ directory, as specified in the question.&lt;br /&gt;
Edit the file: Open the file in a text editor and navigate to line 45.&lt;br /&gt;
Add the new line: &amp;lt;pre&amp;gt;&amp;quot;36.4.4&amp;quot;: &amp;quot;6.2.1&amp;quot;,&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo cp -pu /usr/local/jetson_stats/jtop.service  /etc/systemd/system/&lt;br /&gt;
&lt;br /&gt;
sudo systemctl daemon-reload&lt;br /&gt;
sudo systemctl restart jtop.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To check which version of JetPack is installed run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;    sudo apt-cache show nvidia-jetpack&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Simon</name></author>
	</entry>
	<entry>
		<id>https://wiki.bunnfamily.nz/index.php?title=Fix_JTOP&amp;diff=174</id>
		<title>Fix JTOP</title>
		<link rel="alternate" type="text/html" href="https://wiki.bunnfamily.nz/index.php?title=Fix_JTOP&amp;diff=174"/>
		<updated>2025-08-09T02:31:18Z</updated>

		<summary type="html">&lt;p&gt;Simon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To modify the jetson_variables.py file, you would need to:&lt;br /&gt;
&lt;br /&gt;
Locate the file: The file is likely located in the /usr/local/lib/python3.10/dist-packages/jtop/core/ directory, as specified in the question.&lt;br /&gt;
Edit the file: Open the file in a text editor and navigate to line 45.&lt;br /&gt;
Add the new line: &amp;lt;pre&amp;gt;&amp;quot;36.4.4&amp;quot;: &amp;quot;6.2.1&amp;quot;,&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo cp -pu /usr/local/jetson_stats/jtop.service  /etc/systemd/system/&lt;br /&gt;
&lt;br /&gt;
sudo systemctl daemon-reload&lt;br /&gt;
sudo systemctl restart jtop.service&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Simon</name></author>
	</entry>
	<entry>
		<id>https://wiki.bunnfamily.nz/index.php?title=Fix_JTOP&amp;diff=173</id>
		<title>Fix JTOP</title>
		<link rel="alternate" type="text/html" href="https://wiki.bunnfamily.nz/index.php?title=Fix_JTOP&amp;diff=173"/>
		<updated>2025-08-09T02:22:39Z</updated>

		<summary type="html">&lt;p&gt;Simon: Created page with &amp;quot;To modify the jetson_variables.py file, you would need to:  Locate the file: The file is likely located in the /usr/local/lib/python3.10/dist-packages/jtop/core/ directory, as specified in the question. Edit the file: Open the file in a text editor and navigate to line 45. Add the new line: &amp;lt;pre&amp;gt;&amp;quot;36.4.4&amp;quot;: &amp;quot;6.2.1&amp;quot;,&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To modify the jetson_variables.py file, you would need to:&lt;br /&gt;
&lt;br /&gt;
Locate the file: The file is likely located in the /usr/local/lib/python3.10/dist-packages/jtop/core/ directory, as specified in the question.&lt;br /&gt;
Edit the file: Open the file in a text editor and navigate to line 45.&lt;br /&gt;
Add the new line: &amp;lt;pre&amp;gt;&amp;quot;36.4.4&amp;quot;: &amp;quot;6.2.1&amp;quot;,&lt;/div&gt;</summary>
		<author><name>Simon</name></author>
	</entry>
	<entry>
		<id>https://wiki.bunnfamily.nz/index.php?title=Jetson_Orin_Nano&amp;diff=172</id>
		<title>Jetson Orin Nano</title>
		<link rel="alternate" type="text/html" href="https://wiki.bunnfamily.nz/index.php?title=Jetson_Orin_Nano&amp;diff=172"/>
		<updated>2025-08-09T02:22:07Z</updated>

		<summary type="html">&lt;p&gt;Simon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Opencv with cuda support]]&lt;br /&gt;
&lt;br /&gt;
[[Enable CSI Camera via header pins]]&lt;br /&gt;
&lt;br /&gt;
[[Fix Docker]]&lt;br /&gt;
&lt;br /&gt;
[[RDP Access]]&lt;br /&gt;
&lt;br /&gt;
[[Chromium will not start]]&lt;br /&gt;
&lt;br /&gt;
[[Fix JTOP]]&lt;/div&gt;</summary>
		<author><name>Simon</name></author>
	</entry>
	<entry>
		<id>https://wiki.bunnfamily.nz/index.php?title=Chromium_will_not_start&amp;diff=171</id>
		<title>Chromium will not start</title>
		<link rel="alternate" type="text/html" href="https://wiki.bunnfamily.nz/index.php?title=Chromium_will_not_start&amp;diff=171"/>
		<updated>2025-08-09T02:11:51Z</updated>

		<summary type="html">&lt;p&gt;Simon: Created page with &amp;quot;Just run   &amp;lt;pre&amp;gt; snap download snapd --revision=24724 sudo snap ack snapd_24724.assert sudo snap install snapd_24724.snap sudo sudo snap refresh --hold snapd&amp;lt;/pre&amp;gt;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Just run &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
snap download snapd --revision=24724&lt;br /&gt;
sudo snap ack snapd_24724.assert&lt;br /&gt;
sudo snap install snapd_24724.snap&lt;br /&gt;
sudo sudo snap refresh --hold snapd&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Simon</name></author>
	</entry>
	<entry>
		<id>https://wiki.bunnfamily.nz/index.php?title=Jetson_Orin_Nano&amp;diff=170</id>
		<title>Jetson Orin Nano</title>
		<link rel="alternate" type="text/html" href="https://wiki.bunnfamily.nz/index.php?title=Jetson_Orin_Nano&amp;diff=170"/>
		<updated>2025-08-09T02:11:30Z</updated>

		<summary type="html">&lt;p&gt;Simon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Opencv with cuda support]]&lt;br /&gt;
&lt;br /&gt;
[[Enable CSI Camera via header pins]]&lt;br /&gt;
&lt;br /&gt;
[[Fix Docker]]&lt;br /&gt;
&lt;br /&gt;
[[RDP Access]]&lt;br /&gt;
&lt;br /&gt;
[[Chromium will not start]]&lt;/div&gt;</summary>
		<author><name>Simon</name></author>
	</entry>
	<entry>
		<id>https://wiki.bunnfamily.nz/index.php?title=Opencv_with_cuda_support&amp;diff=169</id>
		<title>Opencv with cuda support</title>
		<link rel="alternate" type="text/html" href="https://wiki.bunnfamily.nz/index.php?title=Opencv_with_cuda_support&amp;diff=169"/>
		<updated>2025-08-05T22:41:25Z</updated>

		<summary type="html">&lt;p&gt;Simon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Install JTOP&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install python3-pip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After pip installs:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo pip3 install -U jetson-stats&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install jetson containers&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# install the container tools&lt;br /&gt;
git clone https://github.com/dusty-nv/jetson-containers&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The opencv_install.sh has gone so you must recreate it using:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd jetson-containers/packages/opencv&lt;br /&gt;
nano opencv_install.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then paste the following into the sh file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
version=&amp;quot;4.10.0&amp;quot;&lt;br /&gt;
folder=&amp;quot;workspace&amp;quot;&lt;br /&gt;
&lt;br /&gt;
set -e&lt;br /&gt;
&lt;br /&gt;
for (( ; ; ))&lt;br /&gt;
do&lt;br /&gt;
    echo &amp;quot;Do you want to remove the default OpenCV (yes/no)?&amp;quot;&lt;br /&gt;
    read rm_old&lt;br /&gt;
&lt;br /&gt;
    if [ &amp;quot;$rm_old&amp;quot; = &amp;quot;yes&amp;quot; ]; then&lt;br /&gt;
        echo &amp;quot;** Remove other OpenCV first&amp;quot;&lt;br /&gt;
        sudo apt -y purge *libopencv*&lt;br /&gt;
	break&lt;br /&gt;
    elif [ &amp;quot;$rm_old&amp;quot; = &amp;quot;no&amp;quot; ]; then&lt;br /&gt;
	break&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;------------------------------------&amp;quot;&lt;br /&gt;
echo &amp;quot;** Install requirement (1/4)&amp;quot;&lt;br /&gt;
echo &amp;quot;------------------------------------&amp;quot;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install -y build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev&lt;br /&gt;
sudo apt-get install -y libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev python3.10-dev python3-numpy&lt;br /&gt;
sudo apt-get install -y libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libv4l-dev v4l-utils qv4l2&lt;br /&gt;
sudo apt-get install -y curl&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;------------------------------------&amp;quot;&lt;br /&gt;
echo &amp;quot;** Download opencv &amp;quot;${version}&amp;quot; (2/4)&amp;quot;&lt;br /&gt;
echo &amp;quot;------------------------------------&amp;quot;&lt;br /&gt;
mkdir $folder&lt;br /&gt;
cd ${folder}&lt;br /&gt;
curl -L https://github.com/opencv/opencv/archive/${version}.zip -o opencv-${version}.zip&lt;br /&gt;
curl -L https://github.com/opencv/opencv_contrib/archive/${version}.zip -o opencv_contrib-${version}.zip&lt;br /&gt;
unzip opencv-${version}.zip&lt;br /&gt;
unzip opencv_contrib-${version}.zip&lt;br /&gt;
rm opencv-${version}.zip opencv_contrib-${version}.zip&lt;br /&gt;
cd opencv-${version}/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;------------------------------------&amp;quot;&lt;br /&gt;
echo &amp;quot;** Build opencv &amp;quot;${version}&amp;quot; (3/4)&amp;quot;&lt;br /&gt;
echo &amp;quot;------------------------------------&amp;quot;&lt;br /&gt;
mkdir release&lt;br /&gt;
cd release/&lt;br /&gt;
cmake -D WITH_CUDA=ON -D WITH_CUDNN=ON -D CUDA_ARCH_BIN=&amp;quot;8.7&amp;quot; -D CUDA_ARCH_PTX=&amp;quot;&amp;quot; -D OPENCV_GENERATE_PKGCONFIG=ON -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-${version}/modules -D WITH_GSTREAMER=ON -D WITH_LIBV4L=ON -D BUILD_opencv_python3=ON -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D BUILD_EXAMPLES=OFF -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..&lt;br /&gt;
make -j$(nproc)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;------------------------------------&amp;quot;&lt;br /&gt;
echo &amp;quot;** Install opencv &amp;quot;${version}&amp;quot; (4/4)&amp;quot;&lt;br /&gt;
echo &amp;quot;------------------------------------&amp;quot;&lt;br /&gt;
sudo make install&lt;br /&gt;
echo &#039;export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH&#039; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &#039;export PYTHONPATH=/usr/local/lib/python3.10/site-packages/:$PYTHONPATH&#039; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
source ~/.bashrc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;** Install opencv &amp;quot;${version}&amp;quot; successfully&amp;quot;&lt;br /&gt;
echo &amp;quot;** Bye :)&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now either run the bash file above which will install OpenCV.4.10.0 ...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash opencv_install.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or if you want a specific version of OpenCV then compile opencv as below&lt;br /&gt;
Change into the home directory&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ./jetson-containers/packages/opencv/opencv_install.sh https://nvidia.box.com/shared/static/ngp26xb9hb7dqbu6pbs7cs9flztmqwg0.deb OpenCV-4.8.1-aarch64.tar.gz&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Run JTOP and you should see&lt;br /&gt;
&lt;br /&gt;
[[file:JTOP.png]]&lt;/div&gt;</summary>
		<author><name>Simon</name></author>
	</entry>
	<entry>
		<id>https://wiki.bunnfamily.nz/index.php?title=Opencv_with_cuda_support&amp;diff=168</id>
		<title>Opencv with cuda support</title>
		<link rel="alternate" type="text/html" href="https://wiki.bunnfamily.nz/index.php?title=Opencv_with_cuda_support&amp;diff=168"/>
		<updated>2025-08-05T22:41:15Z</updated>

		<summary type="html">&lt;p&gt;Simon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Install JTOP&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install python3-pip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After pip installs:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo pip3 install -U jetson-stats&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install jetson containers&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# install the container tools&lt;br /&gt;
git clone https://github.com/dusty-nv/jetson-containers&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The opencv_install.sh has gone so you must recreate it using:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd jetson-containers/packages/opencv&lt;br /&gt;
nano opencv_install.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then paste the following into the sh file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
version=&amp;quot;4.10.0&amp;quot;&lt;br /&gt;
folder=&amp;quot;workspace&amp;quot;&lt;br /&gt;
&lt;br /&gt;
set -e&lt;br /&gt;
&lt;br /&gt;
for (( ; ; ))&lt;br /&gt;
do&lt;br /&gt;
    echo &amp;quot;Do you want to remove the default OpenCV (yes/no)?&amp;quot;&lt;br /&gt;
    read rm_old&lt;br /&gt;
&lt;br /&gt;
    if [ &amp;quot;$rm_old&amp;quot; = &amp;quot;yes&amp;quot; ]; then&lt;br /&gt;
        echo &amp;quot;** Remove other OpenCV first&amp;quot;&lt;br /&gt;
        sudo apt -y purge *libopencv*&lt;br /&gt;
	break&lt;br /&gt;
    elif [ &amp;quot;$rm_old&amp;quot; = &amp;quot;no&amp;quot; ]; then&lt;br /&gt;
	break&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;------------------------------------&amp;quot;&lt;br /&gt;
echo &amp;quot;** Install requirement (1/4)&amp;quot;&lt;br /&gt;
echo &amp;quot;------------------------------------&amp;quot;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install -y build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev&lt;br /&gt;
sudo apt-get install -y libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev python3.10-dev python3-numpy&lt;br /&gt;
sudo apt-get install -y libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libv4l-dev v4l-utils qv4l2&lt;br /&gt;
sudo apt-get install -y curl&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;------------------------------------&amp;quot;&lt;br /&gt;
echo &amp;quot;** Download opencv &amp;quot;${version}&amp;quot; (2/4)&amp;quot;&lt;br /&gt;
echo &amp;quot;------------------------------------&amp;quot;&lt;br /&gt;
mkdir $folder&lt;br /&gt;
cd ${folder}&lt;br /&gt;
curl -L https://github.com/opencv/opencv/archive/${version}.zip -o opencv-${version}.zip&lt;br /&gt;
curl -L https://github.com/opencv/opencv_contrib/archive/${version}.zip -o opencv_contrib-${version}.zip&lt;br /&gt;
unzip opencv-${version}.zip&lt;br /&gt;
unzip opencv_contrib-${version}.zip&lt;br /&gt;
rm opencv-${version}.zip opencv_contrib-${version}.zip&lt;br /&gt;
cd opencv-${version}/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;------------------------------------&amp;quot;&lt;br /&gt;
echo &amp;quot;** Build opencv &amp;quot;${version}&amp;quot; (3/4)&amp;quot;&lt;br /&gt;
echo &amp;quot;------------------------------------&amp;quot;&lt;br /&gt;
mkdir release&lt;br /&gt;
cd release/&lt;br /&gt;
cmake -D WITH_CUDA=ON -D WITH_CUDNN=ON -D CUDA_ARCH_BIN=&amp;quot;8.7&amp;quot; -D CUDA_ARCH_PTX=&amp;quot;&amp;quot; -D OPENCV_GENERATE_PKGCONFIG=ON -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-${version}/modules -D WITH_GSTREAMER=ON -D WITH_LIBV4L=ON -D BUILD_opencv_python3=ON -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D BUILD_EXAMPLES=OFF -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..&lt;br /&gt;
make -j$(nproc)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;------------------------------------&amp;quot;&lt;br /&gt;
echo &amp;quot;** Install opencv &amp;quot;${version}&amp;quot; (4/4)&amp;quot;&lt;br /&gt;
echo &amp;quot;------------------------------------&amp;quot;&lt;br /&gt;
sudo make install&lt;br /&gt;
echo &#039;export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH&#039; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &#039;export PYTHONPATH=/usr/local/lib/python3.10/site-packages/:$PYTHONPATH&#039; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
source ~/.bashrc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;** Install opencv &amp;quot;${version}&amp;quot; successfully&amp;quot;&lt;br /&gt;
echo &amp;quot;** Bye :)&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now either run the bash file above which will install OpenCV.4.10.0 ...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash opencv_install.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or if you want a specific version of OpenCV then compile opencv as below&lt;br /&gt;
Change into the home directory&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ./jetson-containers/packages/opencv/opencv_install.sh https://nvidia.box.com/shared/static/ngp26xb9hb7dqbu6pbs7cs9flztmqwg0.deb OpenCV-4.8.1-aarch64.tar.gz&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Run JTOP and you should see&lt;/div&gt;</summary>
		<author><name>Simon</name></author>
	</entry>
	<entry>
		<id>https://wiki.bunnfamily.nz/index.php?title=File:JTOP.png&amp;diff=167</id>
		<title>File:JTOP.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.bunnfamily.nz/index.php?title=File:JTOP.png&amp;diff=167"/>
		<updated>2025-08-05T22:37:03Z</updated>

		<summary type="html">&lt;p&gt;Simon: Simon reverted File:JTOP.png to an old version&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Simon</name></author>
	</entry>
	<entry>
		<id>https://wiki.bunnfamily.nz/index.php?title=MediaWiki_-_enable_file_upload&amp;diff=166</id>
		<title>MediaWiki - enable file upload</title>
		<link rel="alternate" type="text/html" href="https://wiki.bunnfamily.nz/index.php?title=MediaWiki_-_enable_file_upload&amp;diff=166"/>
		<updated>2025-07-26T05:06:06Z</updated>

		<summary type="html">&lt;p&gt;Simon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Images are stored in /var/www/mediawiki/images&lt;br /&gt;
Go to /var/www/mediawiki and type &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo chmod -R 755 ./images/&lt;br /&gt;
sudo chown -R www-data:www-data images/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Also make sure php.ini (/etc/php/8.1/cli/php.ini) has file_uploads = on&lt;br /&gt;
&lt;br /&gt;
Enable Media Wiki when access fails from Browser&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /var/run/php&lt;br /&gt;
sudo chown nginx:nginx *.*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Simon</name></author>
	</entry>
	<entry>
		<id>https://wiki.bunnfamily.nz/index.php?title=MobiFlight&amp;diff=165</id>
		<title>MobiFlight</title>
		<link rel="alternate" type="text/html" href="https://wiki.bunnfamily.nz/index.php?title=MobiFlight&amp;diff=165"/>
		<updated>2025-07-26T05:04:46Z</updated>

		<summary type="html">&lt;p&gt;Simon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the 2-channel.mcc file for my Radio with Active and Standby&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;MobiflightConnector&amp;gt;&lt;br /&gt;
  &amp;lt;outputs&amp;gt;&lt;br /&gt;
    &amp;lt;config guid=&amp;quot;7da5c890-2ac6-47b2-8021-241f4f5a4b5c&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;active&amp;gt;true&amp;lt;/active&amp;gt;&lt;br /&gt;
      &amp;lt;description&amp;gt;ActiveFrequency&amp;lt;/description&amp;gt;&lt;br /&gt;
      &amp;lt;settings msdata:InstanceType=&amp;quot;MobiFlight.OutputConfigItem, MFConnector, Version=10.5.2.0, Culture=neutral, PublicKeyToken=null&amp;quot; xmlns:msdata=&amp;quot;urn:schemas-microsoft-com:xml-msdata&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;source type=&amp;quot;SimConnect&amp;quot; VarType=&amp;quot;CODE&amp;quot; Value=&amp;quot;(A:COM ACTIVE FREQUENCY:1, KHz) near&amp;quot; UUID=&amp;quot;0dd2e7e3-46b0-46da-863f-2fac9097358b&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;test type=&amp;quot;Float&amp;quot; value=&amp;quot;123456&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;modifiers /&amp;gt;&lt;br /&gt;
        &amp;lt;display type=&amp;quot;Display Module&amp;quot; serial=&amp;quot;MobiFlight Nano/ SN-4èG-3CC&amp;quot; trigger=&amp;quot;normal&amp;quot; ledAddress=&amp;quot;LedModule&amp;quot; ledConnector=&amp;quot;1&amp;quot; ledModuleSize=&amp;quot;6&amp;quot; ledPadding=&amp;quot;False&amp;quot; ledPaddingChar=&amp;quot;0&amp;quot; ledDigits=&amp;quot;0,1,2,3,4,5&amp;quot; ledDecimalPoints=&amp;quot;3&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;preconditions /&amp;gt;&lt;br /&gt;
        &amp;lt;configrefs /&amp;gt;&lt;br /&gt;
      &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;/config&amp;gt;&lt;br /&gt;
    &amp;lt;config guid=&amp;quot;ac677793-4470-4ff0-b719-d5b629aa9350&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;active&amp;gt;true&amp;lt;/active&amp;gt;&lt;br /&gt;
      &amp;lt;description&amp;gt;Standby Frequency&amp;lt;/description&amp;gt;&lt;br /&gt;
      &amp;lt;settings msdata:InstanceType=&amp;quot;MobiFlight.OutputConfigItem, MFConnector, Version=10.5.2.0, Culture=neutral, PublicKeyToken=null&amp;quot; xmlns:msdata=&amp;quot;urn:schemas-microsoft-com:xml-msdata&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;source type=&amp;quot;SimConnect&amp;quot; VarType=&amp;quot;CODE&amp;quot; Value=&amp;quot;(A:COM STANDBY FREQUENCY:1, KHz) near&amp;quot; UUID=&amp;quot;554091be-7c3c-43dd-8eee-d6588927c30a&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;test type=&amp;quot;Float&amp;quot; value=&amp;quot;987654&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;modifiers /&amp;gt;&lt;br /&gt;
        &amp;lt;display type=&amp;quot;Display Module&amp;quot; serial=&amp;quot;MobiFlight Nano/ SN-4èG-3CC&amp;quot; trigger=&amp;quot;normal&amp;quot; ledAddress=&amp;quot;LedModule 1&amp;quot; ledConnector=&amp;quot;1&amp;quot; ledModuleSize=&amp;quot;6&amp;quot; ledPadding=&amp;quot;False&amp;quot; ledPaddingChar=&amp;quot;0&amp;quot; ledDigits=&amp;quot;0,1,2,3,4,5&amp;quot; ledDecimalPoints=&amp;quot;3&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;preconditions /&amp;gt;&lt;br /&gt;
        &amp;lt;configrefs /&amp;gt;&lt;br /&gt;
      &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;/config&amp;gt;&lt;br /&gt;
  &amp;lt;/outputs&amp;gt;&lt;br /&gt;
  &amp;lt;inputs&amp;gt;&lt;br /&gt;
    &amp;lt;config guid=&amp;quot;1b2a0e27-9f71-45fc-8f49-aaa8280ffc5b&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;active&amp;gt;true&amp;lt;/active&amp;gt;&lt;br /&gt;
      &amp;lt;description&amp;gt;Change standby to active&amp;lt;/description&amp;gt;&lt;br /&gt;
      &amp;lt;settings msdata:InstanceType=&amp;quot;MobiFlight.InputConfigItem, MFConnector, Version=10.5.2.0, Culture=neutral, PublicKeyToken=null&amp;quot; serial=&amp;quot;MobiFlight Nano/ SN-4èG-3CC&amp;quot; name=&amp;quot;Button&amp;quot; type=&amp;quot;Button&amp;quot; xmlns:msdata=&amp;quot;urn:schemas-microsoft-com:xml-msdata&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;button&amp;gt;&lt;br /&gt;
          &amp;lt;onPress type=&amp;quot;MSFS2020CustomInputAction&amp;quot; command=&amp;quot;(L:XMLVAR_RMP_L_On) ! (&amp;amp;gt;L:XMLVAR_RMP_L_On) (L:XMLVAR_RMP_L_On) if{ 0 (&amp;amp;gt;L:XMLVAR_RMP_L_GROUP_FREQ_IS_DISABLED) 1 (&amp;amp;gt;L:XMLVAR_RMP_L_GROUP_MODE_IS_DISABLED) 1 (&amp;amp;gt;L:XMLVAR_RMP_L_CURRENT_BUTTON_IN_GROUP_FREQ) 0 (&amp;amp;gt;L:XMLVAR_RMP_L_CURRENT_BUTTON_IN_GROUP_MODE) 0 (&amp;amp;gt;L:XMLVAR_RMP_L_AM_Active) 0 (&amp;amp;gt;L:XMLVAR_RMP_L_NAV_Active) 0 (&amp;amp;gt;L:XMLVAR_RMP_L_BFO_Active) } (&amp;amp;gt;H:A320_Neo_FDW_SWITCH_L_TOGGLE)&amp;quot; presetId=&amp;quot;ac14852e-5867-4503-98cd-940a632a5c69&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;/button&amp;gt;&lt;br /&gt;
        &amp;lt;preconditions /&amp;gt;&lt;br /&gt;
        &amp;lt;configrefs /&amp;gt;&lt;br /&gt;
      &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;/config&amp;gt;&lt;br /&gt;
    &amp;lt;config guid=&amp;quot;36e7adb6-c5ab-4eb6-8dd5-04da5b3b0aa4&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;active&amp;gt;true&amp;lt;/active&amp;gt;&lt;br /&gt;
      &amp;lt;description&amp;gt;Big encoder&amp;lt;/description&amp;gt;&lt;br /&gt;
      &amp;lt;settings msdata:InstanceType=&amp;quot;MobiFlight.InputConfigItem, MFConnector, Version=10.5.2.0, Culture=neutral, PublicKeyToken=null&amp;quot; serial=&amp;quot;MobiFlight Nano/ SN-4èG-3CC&amp;quot; name=&amp;quot;Encoder&amp;quot; type=&amp;quot;Encoder&amp;quot; xmlns:msdata=&amp;quot;urn:schemas-microsoft-com:xml-msdata&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;encoder&amp;gt;&lt;br /&gt;
          &amp;lt;onLeft type=&amp;quot;MSFS2020CustomInputAction&amp;quot; command=&amp;quot;(&amp;amp;gt;H:A32NX_RMP_L_OUTER_KNOB_TURNED_ANTICLOCKWISE)&amp;quot; presetId=&amp;quot;9e29c740-5d56-4313-85ad-0a6745192016&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;onLeftFast /&amp;gt;&lt;br /&gt;
          &amp;lt;onRight type=&amp;quot;MSFS2020CustomInputAction&amp;quot; command=&amp;quot;(&amp;amp;gt;H:A32NX_RMP_L_OUTER_KNOB_TURNED_CLOCKWISE)&amp;quot; presetId=&amp;quot;cedc252d-324d-4e50-95e7-d2ac1e0427db&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;onRightFast /&amp;gt;&lt;br /&gt;
        &amp;lt;/encoder&amp;gt;&lt;br /&gt;
        &amp;lt;preconditions /&amp;gt;&lt;br /&gt;
        &amp;lt;configrefs /&amp;gt;&lt;br /&gt;
      &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;/config&amp;gt;&lt;br /&gt;
    &amp;lt;config guid=&amp;quot;444d0408-8818-470f-a65b-1a0724e484db&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;active&amp;gt;true&amp;lt;/active&amp;gt;&lt;br /&gt;
      &amp;lt;description&amp;gt;Small encoder&amp;lt;/description&amp;gt;&lt;br /&gt;
      &amp;lt;settings msdata:InstanceType=&amp;quot;MobiFlight.InputConfigItem, MFConnector, Version=10.5.2.0, Culture=neutral, PublicKeyToken=null&amp;quot; serial=&amp;quot;MobiFlight Nano/ SN-4èG-3CC&amp;quot; name=&amp;quot;Encoder 1&amp;quot; type=&amp;quot;Encoder&amp;quot; xmlns:msdata=&amp;quot;urn:schemas-microsoft-com:xml-msdata&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;encoder&amp;gt;&lt;br /&gt;
          &amp;lt;onLeft type=&amp;quot;MSFS2020CustomInputAction&amp;quot; command=&amp;quot;(&amp;amp;gt;H:A32NX_RMP_L_INNER_KNOB_TURNED_ANTICLOCKWISE)&amp;quot; presetId=&amp;quot;ea881d6f-7a5f-499b-b801-815d25ccec80&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;onLeftFast /&amp;gt;&lt;br /&gt;
          &amp;lt;onRight type=&amp;quot;MSFS2020CustomInputAction&amp;quot; command=&amp;quot;(&amp;amp;gt;H:A32NX_RMP_L_INNER_KNOB_TURNED_CLOCKWISE)&amp;quot; presetId=&amp;quot;1d605c28-c545-403e-9787-30e818abb668&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;onRightFast /&amp;gt;&lt;br /&gt;
        &amp;lt;/encoder&amp;gt;&lt;br /&gt;
        &amp;lt;preconditions /&amp;gt;&lt;br /&gt;
        &amp;lt;configrefs /&amp;gt;&lt;br /&gt;
      &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;/config&amp;gt;&lt;br /&gt;
  &amp;lt;/inputs&amp;gt;&lt;br /&gt;
&amp;lt;/MobiflightConnector&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Simon</name></author>
	</entry>
	<entry>
		<id>https://wiki.bunnfamily.nz/index.php?title=MobiFlight&amp;diff=164</id>
		<title>MobiFlight</title>
		<link rel="alternate" type="text/html" href="https://wiki.bunnfamily.nz/index.php?title=MobiFlight&amp;diff=164"/>
		<updated>2025-07-26T05:04:16Z</updated>

		<summary type="html">&lt;p&gt;Simon: Created page with &amp;quot;&amp;lt;pre&amp;gt; &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot;?&amp;gt; &amp;lt;MobiflightConnector&amp;gt;   &amp;lt;outputs&amp;gt;     &amp;lt;config guid=&amp;quot;7da5c890-2ac6-47b2-8021-241f4f5a4b5c&amp;quot;&amp;gt;       &amp;lt;active&amp;gt;true&amp;lt;/active&amp;gt;       &amp;lt;description&amp;gt;ActiveFrequency&amp;lt;/description&amp;gt;       &amp;lt;settings msdata:InstanceType=&amp;quot;MobiFlight.OutputConfigItem, MFConnector, Version=10.5.2.0, Culture=neutral, PublicKeyToken=null&amp;quot; xmlns:msdata=&amp;quot;urn:schemas-microsoft-com:xml-msdata&amp;quot;&amp;gt;         &amp;lt;source type=&amp;quot;SimConnect&amp;quot; VarType=&amp;quot;CODE&amp;quot; Value=&amp;quot;(...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;MobiflightConnector&amp;gt;&lt;br /&gt;
  &amp;lt;outputs&amp;gt;&lt;br /&gt;
    &amp;lt;config guid=&amp;quot;7da5c890-2ac6-47b2-8021-241f4f5a4b5c&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;active&amp;gt;true&amp;lt;/active&amp;gt;&lt;br /&gt;
      &amp;lt;description&amp;gt;ActiveFrequency&amp;lt;/description&amp;gt;&lt;br /&gt;
      &amp;lt;settings msdata:InstanceType=&amp;quot;MobiFlight.OutputConfigItem, MFConnector, Version=10.5.2.0, Culture=neutral, PublicKeyToken=null&amp;quot; xmlns:msdata=&amp;quot;urn:schemas-microsoft-com:xml-msdata&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;source type=&amp;quot;SimConnect&amp;quot; VarType=&amp;quot;CODE&amp;quot; Value=&amp;quot;(A:COM ACTIVE FREQUENCY:1, KHz) near&amp;quot; UUID=&amp;quot;0dd2e7e3-46b0-46da-863f-2fac9097358b&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;test type=&amp;quot;Float&amp;quot; value=&amp;quot;123456&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;modifiers /&amp;gt;&lt;br /&gt;
        &amp;lt;display type=&amp;quot;Display Module&amp;quot; serial=&amp;quot;MobiFlight Nano/ SN-4èG-3CC&amp;quot; trigger=&amp;quot;normal&amp;quot; ledAddress=&amp;quot;LedModule&amp;quot; ledConnector=&amp;quot;1&amp;quot; ledModuleSize=&amp;quot;6&amp;quot; ledPadding=&amp;quot;False&amp;quot; ledPaddingChar=&amp;quot;0&amp;quot; ledDigits=&amp;quot;0,1,2,3,4,5&amp;quot; ledDecimalPoints=&amp;quot;3&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;preconditions /&amp;gt;&lt;br /&gt;
        &amp;lt;configrefs /&amp;gt;&lt;br /&gt;
      &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;/config&amp;gt;&lt;br /&gt;
    &amp;lt;config guid=&amp;quot;ac677793-4470-4ff0-b719-d5b629aa9350&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;active&amp;gt;true&amp;lt;/active&amp;gt;&lt;br /&gt;
      &amp;lt;description&amp;gt;Standby Frequency&amp;lt;/description&amp;gt;&lt;br /&gt;
      &amp;lt;settings msdata:InstanceType=&amp;quot;MobiFlight.OutputConfigItem, MFConnector, Version=10.5.2.0, Culture=neutral, PublicKeyToken=null&amp;quot; xmlns:msdata=&amp;quot;urn:schemas-microsoft-com:xml-msdata&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;source type=&amp;quot;SimConnect&amp;quot; VarType=&amp;quot;CODE&amp;quot; Value=&amp;quot;(A:COM STANDBY FREQUENCY:1, KHz) near&amp;quot; UUID=&amp;quot;554091be-7c3c-43dd-8eee-d6588927c30a&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;test type=&amp;quot;Float&amp;quot; value=&amp;quot;987654&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;modifiers /&amp;gt;&lt;br /&gt;
        &amp;lt;display type=&amp;quot;Display Module&amp;quot; serial=&amp;quot;MobiFlight Nano/ SN-4èG-3CC&amp;quot; trigger=&amp;quot;normal&amp;quot; ledAddress=&amp;quot;LedModule 1&amp;quot; ledConnector=&amp;quot;1&amp;quot; ledModuleSize=&amp;quot;6&amp;quot; ledPadding=&amp;quot;False&amp;quot; ledPaddingChar=&amp;quot;0&amp;quot; ledDigits=&amp;quot;0,1,2,3,4,5&amp;quot; ledDecimalPoints=&amp;quot;3&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;preconditions /&amp;gt;&lt;br /&gt;
        &amp;lt;configrefs /&amp;gt;&lt;br /&gt;
      &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;/config&amp;gt;&lt;br /&gt;
  &amp;lt;/outputs&amp;gt;&lt;br /&gt;
  &amp;lt;inputs&amp;gt;&lt;br /&gt;
    &amp;lt;config guid=&amp;quot;1b2a0e27-9f71-45fc-8f49-aaa8280ffc5b&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;active&amp;gt;true&amp;lt;/active&amp;gt;&lt;br /&gt;
      &amp;lt;description&amp;gt;Change standby to active&amp;lt;/description&amp;gt;&lt;br /&gt;
      &amp;lt;settings msdata:InstanceType=&amp;quot;MobiFlight.InputConfigItem, MFConnector, Version=10.5.2.0, Culture=neutral, PublicKeyToken=null&amp;quot; serial=&amp;quot;MobiFlight Nano/ SN-4èG-3CC&amp;quot; name=&amp;quot;Button&amp;quot; type=&amp;quot;Button&amp;quot; xmlns:msdata=&amp;quot;urn:schemas-microsoft-com:xml-msdata&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;button&amp;gt;&lt;br /&gt;
          &amp;lt;onPress type=&amp;quot;MSFS2020CustomInputAction&amp;quot; command=&amp;quot;(L:XMLVAR_RMP_L_On) ! (&amp;amp;gt;L:XMLVAR_RMP_L_On) (L:XMLVAR_RMP_L_On) if{ 0 (&amp;amp;gt;L:XMLVAR_RMP_L_GROUP_FREQ_IS_DISABLED) 1 (&amp;amp;gt;L:XMLVAR_RMP_L_GROUP_MODE_IS_DISABLED) 1 (&amp;amp;gt;L:XMLVAR_RMP_L_CURRENT_BUTTON_IN_GROUP_FREQ) 0 (&amp;amp;gt;L:XMLVAR_RMP_L_CURRENT_BUTTON_IN_GROUP_MODE) 0 (&amp;amp;gt;L:XMLVAR_RMP_L_AM_Active) 0 (&amp;amp;gt;L:XMLVAR_RMP_L_NAV_Active) 0 (&amp;amp;gt;L:XMLVAR_RMP_L_BFO_Active) } (&amp;amp;gt;H:A320_Neo_FDW_SWITCH_L_TOGGLE)&amp;quot; presetId=&amp;quot;ac14852e-5867-4503-98cd-940a632a5c69&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;/button&amp;gt;&lt;br /&gt;
        &amp;lt;preconditions /&amp;gt;&lt;br /&gt;
        &amp;lt;configrefs /&amp;gt;&lt;br /&gt;
      &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;/config&amp;gt;&lt;br /&gt;
    &amp;lt;config guid=&amp;quot;36e7adb6-c5ab-4eb6-8dd5-04da5b3b0aa4&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;active&amp;gt;true&amp;lt;/active&amp;gt;&lt;br /&gt;
      &amp;lt;description&amp;gt;Big encoder&amp;lt;/description&amp;gt;&lt;br /&gt;
      &amp;lt;settings msdata:InstanceType=&amp;quot;MobiFlight.InputConfigItem, MFConnector, Version=10.5.2.0, Culture=neutral, PublicKeyToken=null&amp;quot; serial=&amp;quot;MobiFlight Nano/ SN-4èG-3CC&amp;quot; name=&amp;quot;Encoder&amp;quot; type=&amp;quot;Encoder&amp;quot; xmlns:msdata=&amp;quot;urn:schemas-microsoft-com:xml-msdata&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;encoder&amp;gt;&lt;br /&gt;
          &amp;lt;onLeft type=&amp;quot;MSFS2020CustomInputAction&amp;quot; command=&amp;quot;(&amp;amp;gt;H:A32NX_RMP_L_OUTER_KNOB_TURNED_ANTICLOCKWISE)&amp;quot; presetId=&amp;quot;9e29c740-5d56-4313-85ad-0a6745192016&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;onLeftFast /&amp;gt;&lt;br /&gt;
          &amp;lt;onRight type=&amp;quot;MSFS2020CustomInputAction&amp;quot; command=&amp;quot;(&amp;amp;gt;H:A32NX_RMP_L_OUTER_KNOB_TURNED_CLOCKWISE)&amp;quot; presetId=&amp;quot;cedc252d-324d-4e50-95e7-d2ac1e0427db&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;onRightFast /&amp;gt;&lt;br /&gt;
        &amp;lt;/encoder&amp;gt;&lt;br /&gt;
        &amp;lt;preconditions /&amp;gt;&lt;br /&gt;
        &amp;lt;configrefs /&amp;gt;&lt;br /&gt;
      &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;/config&amp;gt;&lt;br /&gt;
    &amp;lt;config guid=&amp;quot;444d0408-8818-470f-a65b-1a0724e484db&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;active&amp;gt;true&amp;lt;/active&amp;gt;&lt;br /&gt;
      &amp;lt;description&amp;gt;Small encoder&amp;lt;/description&amp;gt;&lt;br /&gt;
      &amp;lt;settings msdata:InstanceType=&amp;quot;MobiFlight.InputConfigItem, MFConnector, Version=10.5.2.0, Culture=neutral, PublicKeyToken=null&amp;quot; serial=&amp;quot;MobiFlight Nano/ SN-4èG-3CC&amp;quot; name=&amp;quot;Encoder 1&amp;quot; type=&amp;quot;Encoder&amp;quot; xmlns:msdata=&amp;quot;urn:schemas-microsoft-com:xml-msdata&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;encoder&amp;gt;&lt;br /&gt;
          &amp;lt;onLeft type=&amp;quot;MSFS2020CustomInputAction&amp;quot; command=&amp;quot;(&amp;amp;gt;H:A32NX_RMP_L_INNER_KNOB_TURNED_ANTICLOCKWISE)&amp;quot; presetId=&amp;quot;ea881d6f-7a5f-499b-b801-815d25ccec80&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;onLeftFast /&amp;gt;&lt;br /&gt;
          &amp;lt;onRight type=&amp;quot;MSFS2020CustomInputAction&amp;quot; command=&amp;quot;(&amp;amp;gt;H:A32NX_RMP_L_INNER_KNOB_TURNED_CLOCKWISE)&amp;quot; presetId=&amp;quot;1d605c28-c545-403e-9787-30e818abb668&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;onRightFast /&amp;gt;&lt;br /&gt;
        &amp;lt;/encoder&amp;gt;&lt;br /&gt;
        &amp;lt;preconditions /&amp;gt;&lt;br /&gt;
        &amp;lt;configrefs /&amp;gt;&lt;br /&gt;
      &amp;lt;/settings&amp;gt;&lt;br /&gt;
    &amp;lt;/config&amp;gt;&lt;br /&gt;
  &amp;lt;/inputs&amp;gt;&lt;br /&gt;
&amp;lt;/MobiflightConnector&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Simon</name></author>
	</entry>
	<entry>
		<id>https://wiki.bunnfamily.nz/index.php?title=Flight_Simulator&amp;diff=163</id>
		<title>Flight Simulator</title>
		<link rel="alternate" type="text/html" href="https://wiki.bunnfamily.nz/index.php?title=Flight_Simulator&amp;diff=163"/>
		<updated>2025-07-26T05:03:07Z</updated>

		<summary type="html">&lt;p&gt;Simon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Fix Flight Simulator]]&lt;br /&gt;
&lt;br /&gt;
[[MobiFlight]]&lt;/div&gt;</summary>
		<author><name>Simon</name></author>
	</entry>
	<entry>
		<id>https://wiki.bunnfamily.nz/index.php?title=Flight_Simulator&amp;diff=162</id>
		<title>Flight Simulator</title>
		<link rel="alternate" type="text/html" href="https://wiki.bunnfamily.nz/index.php?title=Flight_Simulator&amp;diff=162"/>
		<updated>2025-07-26T05:02:41Z</updated>

		<summary type="html">&lt;p&gt;Simon: Created page with &amp;quot; Fix Flight Simulator&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Fix Flight Simulator]]&lt;/div&gt;</summary>
		<author><name>Simon</name></author>
	</entry>
	<entry>
		<id>https://wiki.bunnfamily.nz/index.php?title=Main_Page&amp;diff=161</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.bunnfamily.nz/index.php?title=Main_Page&amp;diff=161"/>
		<updated>2025-07-26T05:02:28Z</updated>

		<summary type="html">&lt;p&gt;Simon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;This is the main repository of knowledge created over the years by Simon Bunn.&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Webhooks and Portainer]]&lt;br /&gt;
&lt;br /&gt;
[[Home Assistant]]&lt;br /&gt;
&lt;br /&gt;
[[node-red]]&lt;br /&gt;
&lt;br /&gt;
[[Ubuntu notes]]&lt;br /&gt;
&lt;br /&gt;
[[Router - setting up from fresh]]&lt;br /&gt;
&lt;br /&gt;
[[MediaWiki - enable file upload]]&lt;br /&gt;
&lt;br /&gt;
[[Lora Gateway and Nodes]]&lt;br /&gt;
&lt;br /&gt;
[[Change the media wiki password]]&lt;br /&gt;
&lt;br /&gt;
[[Jetson Orin Nano]]&lt;br /&gt;
&lt;br /&gt;
[[Front Gate]]&lt;br /&gt;
&lt;br /&gt;
[[Update Cubecoders AMP]]&lt;br /&gt;
&lt;br /&gt;
[[EVNEX charger]]&lt;br /&gt;
&lt;br /&gt;
[[Flight Simulator]]&lt;br /&gt;
&lt;br /&gt;
[[nginx reverse proxy]]&lt;/div&gt;</summary>
		<author><name>Simon</name></author>
	</entry>
	<entry>
		<id>https://wiki.bunnfamily.nz/index.php?title=Nginx_reverse_proxy&amp;diff=160</id>
		<title>Nginx reverse proxy</title>
		<link rel="alternate" type="text/html" href="https://wiki.bunnfamily.nz/index.php?title=Nginx_reverse_proxy&amp;diff=160"/>
		<updated>2025-06-13T01:33:04Z</updated>

		<summary type="html">&lt;p&gt;Simon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The reverse proxy is set up as a conf file in /etc/nginx/conf.d/bunnfamily.nz.conf&lt;br /&gt;
&lt;br /&gt;
certbot keeps the certificates: Use:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo certbot certonly --force-renew -d bunnfamily.nz -d www.bunnfamily.nz -d chrono.bunnfamily.nz -d grafana.bunnfamily.nz -d wiki.bunnfamily.nz -d pumpcompare.aquadvanced.online -d comfyui.bunnfamily.nz -d mine.bunnfamily.nz -d bunnserver.bunnfamily.nz -d hassio.bunnfamily.nz -d node-red.bunnfamily.nz&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mediawiki uses php and this uses a link redirect to /var/run/php-fpm.sock so that I don&#039;t have to use the actual version number &amp;lt;pre&amp;gt;/var/run/php/php8.1-fpm.sock&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You need a Netplan file that allows for the bridge to be the default 192.168.1.38 and then QEMU/KVM will get an IP address assigned by DHCP from the ASUS Router&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;network:&lt;br /&gt;
  version: 2&lt;br /&gt;
  renderer: networkd&lt;br /&gt;
  ethernets:&lt;br /&gt;
    eno1:&lt;br /&gt;
      dhcp4: no&lt;br /&gt;
      dhcp6: no&lt;br /&gt;
      optional: true&lt;br /&gt;
  bridges:&lt;br /&gt;
    br0:&lt;br /&gt;
      interfaces: [eno1]&lt;br /&gt;
      addresses: [192.168.1.38/24]&lt;br /&gt;
      nameservers:&lt;br /&gt;
        addresses: [192.168.1.4, 8.8.8.8]&lt;br /&gt;
      routes:&lt;br /&gt;
        - to: default&lt;br /&gt;
          via: 192.168.1.1&lt;br /&gt;
      parameters:&lt;br /&gt;
        stp: false&lt;br /&gt;
        forward-delay: 0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also note that you need to &amp;lt;pre&amp;gt;cd /var/run/php&lt;br /&gt;
sudo chown nginx:nginx *.* &amp;lt;/pre&amp;gt; &lt;br /&gt;
otherwise you will get errors in /var/log/nginx/error.log about permission errors to access php&lt;br /&gt;
&lt;br /&gt;
Prove PHP is working by going to https://wiki.bunnfamily.nz/phpinfo.php&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
upstream php-handler {&lt;br /&gt;
    server unix:/run/php/php8.1-fpm.sock;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
map $http_upgrade $connection_upgrade {&lt;br /&gt;
    default upgrade;&lt;br /&gt;
    &#039;&#039;      close;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
server {&lt;br /&gt;
    if ($host = comfyui.bunnfamily.nz) {&lt;br /&gt;
        return 301 https://$host$request_uri;&lt;br /&gt;
    } # managed by Certbot&lt;br /&gt;
&lt;br /&gt;
    if ($host = pumpcompare.info) {&lt;br /&gt;
        return 301 https://$host$request_uri;&lt;br /&gt;
    } # managed by Certbot&lt;br /&gt;
&lt;br /&gt;
    if ($host = mine.bunnfamily.nz) {&lt;br /&gt;
        return 301 https://$host$request_uri;&lt;br /&gt;
    } # managed by Certbot&lt;br /&gt;
&lt;br /&gt;
    if ($host = bunnserver.bunnfamily.nz) {&lt;br /&gt;
        return 301 https://$host$request_uri;&lt;br /&gt;
    } # managed by Certbot&lt;br /&gt;
&lt;br /&gt;
    if ($host = www.bunnfamily.nz) {&lt;br /&gt;
        return 301 https://$host$request_uri;&lt;br /&gt;
    } # managed by Certbot&lt;br /&gt;
&lt;br /&gt;
    if ($host = hassio.bunnfamily.nz) {&lt;br /&gt;
        return 301 https://$host$request_uri;&lt;br /&gt;
    } # managed by Certbot&lt;br /&gt;
&lt;br /&gt;
    if ($host = node-red.bunnfamily.nz) {&lt;br /&gt;
        return 301 https://$host$request_uri;&lt;br /&gt;
    } # managed by Certbot&lt;br /&gt;
&lt;br /&gt;
    if ($host = chrono.bunnfamily.nz) {&lt;br /&gt;
        return 301 https://$host$request_uri;&lt;br /&gt;
    } # managed by Certbot&lt;br /&gt;
&lt;br /&gt;
    if ($host = grafana.bunnfamily.nz) {&lt;br /&gt;
        return 301 https://$host$request_uri;&lt;br /&gt;
    } # managed by Certbot&lt;br /&gt;
&lt;br /&gt;
    if ($host = wiki.bunnfamily.nz) {&lt;br /&gt;
        return 301 https://$host$request_uri;&lt;br /&gt;
    } # managed by Certbot&lt;br /&gt;
&lt;br /&gt;
    listen 80; &lt;br /&gt;
    listen [::]:80;&lt;br /&gt;
    server_name *.bunnfamily.nz;&lt;br /&gt;
    return 301 https://$host$request_uri;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
server {&lt;br /&gt;
    listen 443 ssl;&lt;br /&gt;
    listen [::]:443;&lt;br /&gt;
    server_name wiki.bunnfamily.nz;&lt;br /&gt;
    root /var/www/mediawiki;&lt;br /&gt;
    index index.php index.html index.htm index.nginx-debian.html;&lt;br /&gt;
    location ~ \.php$ {&lt;br /&gt;
         fastcgi_pass unix:/run/php/php-fpm.sock;&lt;br /&gt;
         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;&lt;br /&gt;
         include fastcgi_params;&lt;br /&gt;
     }&lt;br /&gt;
    ssl_certificate /etc/letsencrypt/live/bunnfamily.nz/fullchain.pem; # m&amp;gt;&lt;br /&gt;
    ssl_certificate_key /etc/letsencrypt/live/bunnfamily.nz/privkey.pem; #&amp;gt;&lt;br /&gt;
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot&lt;br /&gt;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
server {&lt;br /&gt;
    listen 443 ssl;&lt;br /&gt;
    listen [::]:443 ssl;&lt;br /&gt;
    server_name bunnserver.bunnfamily.nz;&lt;br /&gt;
    location ~ {&lt;br /&gt;
                 proxy_pass_header Authorization;&lt;br /&gt;
                 proxy_set_header Host $host;&lt;br /&gt;
                 proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
                 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
                 proxy_http_version 1.1;&lt;br /&gt;
                 proxy_set_header Connection &amp;quot;&amp;quot;;&lt;br /&gt;
                 proxy_buffering off;&lt;br /&gt;
                 client_max_body_size 0;&lt;br /&gt;
                 proxy_read_timeout 36000s;&lt;br /&gt;
                 proxy_redirect off;              &lt;br /&gt;
                 proxy_pass http://192.168.1.5;&lt;br /&gt;
       }&lt;br /&gt;
    ssl_certificate /etc/letsencrypt/live/bunnfamily.nz/fullchain.pem; # m&amp;gt;&lt;br /&gt;
    ssl_certificate_key /etc/letsencrypt/live/bunnfamily.nz/privkey.pem; #&amp;gt;&lt;br /&gt;
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot&lt;br /&gt;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
server {&lt;br /&gt;
       listen 443 ssl;&lt;br /&gt;
       listen [::]:443 ssl;&lt;br /&gt;
       server_name mine.bunnfamily.nz;&lt;br /&gt;
       location ~ {&lt;br /&gt;
                 proxy_pass_header Authorization;&lt;br /&gt;
                 proxy_set_header Host $host;&lt;br /&gt;
                 proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
                 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
                 proxy_http_version 1.1;&lt;br /&gt;
                 proxy_set_header Connection &amp;quot;&amp;quot;;&lt;br /&gt;
                 proxy_buffering off;&lt;br /&gt;
                 client_max_body_size 0;&lt;br /&gt;
                 proxy_read_timeout 36000s;&lt;br /&gt;
                 proxy_redirect off;&lt;br /&gt;
                 proxy_pass http://192.168.1.127:8080;&lt;br /&gt;
       }&lt;br /&gt;
    ssl_certificate /etc/letsencrypt/live/bunnfamily.nz/fullchain.pem; # m&amp;gt;&lt;br /&gt;
    ssl_certificate_key /etc/letsencrypt/live/bunnfamily.nz/privkey.pem; #&amp;gt;&lt;br /&gt;
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot&lt;br /&gt;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
server {&lt;br /&gt;
       listen 443 ssl;&lt;br /&gt;
       listen [::]:443 ssl;&lt;br /&gt;
       server_name pumpcompare.info;&lt;br /&gt;
       location ~ {&lt;br /&gt;
                  proxy_pass http://192.168.1.37:3838;&lt;br /&gt;
                  proxy_redirect http://192.168.1.37:3838/ https://$host/;&lt;br /&gt;
                  proxy_http_version 1.1;&lt;br /&gt;
                  proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
                  proxy_set_header Connection $connection_upgrade;&lt;br /&gt;
                  proxy_read_timeout 20d;&lt;br /&gt;
       }&lt;br /&gt;
    ssl_certificate /etc/letsencrypt/live/bunnfamily.nz/fullchain.pem; # m&amp;gt;&lt;br /&gt;
    ssl_certificate_key /etc/letsencrypt/live/bunnfamily.nz/privkey.pem; #&amp;gt;&lt;br /&gt;
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot&lt;br /&gt;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
server {&lt;br /&gt;
    listen 443 ssl;&lt;br /&gt;
    listen [::]:443 ssl;&lt;br /&gt;
    server_name hassio.bunnfamily.nz;&lt;br /&gt;
    add_header Strict-Transport-Security &amp;quot;max-age=31536000; includeSubdomains&amp;quot;;&lt;br /&gt;
    location / {&lt;br /&gt;
        proxy_pass http://192.168.1.22:8123;&lt;br /&gt;
        proxy_set_header Host $host;&lt;br /&gt;
        proxy_redirect http:// https://;&lt;br /&gt;
        proxy_http_version 1.1;&lt;br /&gt;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
        proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
        proxy_set_header Connection $connection_upgrade;&lt;br /&gt;
    }&lt;br /&gt;
    ssl_certificate /etc/letsencrypt/live/bunnfamily.nz/fullchain.pem; # m&amp;gt;&lt;br /&gt;
    ssl_certificate_key /etc/letsencrypt/live/bunnfamily.nz/privkey.pem; #&amp;gt;&lt;br /&gt;
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot&lt;br /&gt;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
server {&lt;br /&gt;
    listen 443 ssl;&lt;br /&gt;
    listen [::]:443 ssl;&lt;br /&gt;
    server_name chrono.bunnfamily.nz;&lt;br /&gt;
    location / {&lt;br /&gt;
        proxy_set_header Accept-Encoding &amp;quot;&amp;quot;;&lt;br /&gt;
        proxy_set_header Host $host;&lt;br /&gt;
        proxy_redirect http:// https://;&lt;br /&gt;
        proxy_http_version 1.1;&lt;br /&gt;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
        proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
        proxy_set_header Connection $connection_upgrade;&lt;br /&gt;
        proxy_pass http://localhost:8086;&lt;br /&gt;
        proxy_set_header Connection $connection_upgrade;&lt;br /&gt;
       }&lt;br /&gt;
    ssl_certificate /etc/letsencrypt/live/bunnfamily.nz/fullchain.pem; # m&amp;gt;&lt;br /&gt;
    ssl_certificate_key /etc/letsencrypt/live/bunnfamily.nz/privkey.pem; #&amp;gt;&lt;br /&gt;
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot&lt;br /&gt;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
server {&lt;br /&gt;
    listen 443 ssl;&lt;br /&gt;
    listen [::]:443 ssl;&lt;br /&gt;
    server_name grafana.bunnfamily.nz;&lt;br /&gt;
    location / {&lt;br /&gt;
        proxy_set_header Accept-Encoding &amp;quot;&amp;quot;;&lt;br /&gt;
        proxy_set_header Host $http_host;&lt;br /&gt;
        proxy_redirect http:// https://;&lt;br /&gt;
        proxy_http_version 1.1;&lt;br /&gt;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
        proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
        proxy_set_header Connection $connection_upgrade;&lt;br /&gt;
        proxy_pass http://localhost:3000;&lt;br /&gt;
        proxy_set_header Connection $connection_upgrade;&lt;br /&gt;
       }&lt;br /&gt;
    ssl_certificate /etc/letsencrypt/live/bunnfamily.nz/fullchain.pem; # m&amp;gt;&lt;br /&gt;
    ssl_certificate_key /etc/letsencrypt/live/bunnfamily.nz/privkey.pem; #&amp;gt;&lt;br /&gt;
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot&lt;br /&gt;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
server {&lt;br /&gt;
    listen 443 ssl;&lt;br /&gt;
    listen [::]:443 ssl;&lt;br /&gt;
    server_name node-red.bunnfamily.nz;&lt;br /&gt;
    location / {&lt;br /&gt;
        proxy_set_header Accept-Encoding &amp;quot;&amp;quot;;&lt;br /&gt;
        proxy_pass http://localhost:1880;&lt;br /&gt;
        proxy_set_header Host $host;&lt;br /&gt;
        proxy_redirect http:// https://;&lt;br /&gt;
        proxy_http_version 1.1;&lt;br /&gt;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
        proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
        proxy_set_header Connection $connection_upgrade;&lt;br /&gt;
       }&lt;br /&gt;
    ssl_certificate /etc/letsencrypt/live/bunnfamily.nz/fullchain.pem; # m&amp;gt;&lt;br /&gt;
    ssl_certificate_key /etc/letsencrypt/live/bunnfamily.nz/privkey.pem; #&amp;gt;&lt;br /&gt;
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot&lt;br /&gt;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
server {&lt;br /&gt;
    listen 443 ssl default_server;&lt;br /&gt;
    listen [::]:443 ssl default_server;&lt;br /&gt;
    server_name bunnfamily.nz www.bunnfamily.nz;&lt;br /&gt;
    root /var/www/html;&lt;br /&gt;
    index index.php index.html index.htm index.nginx-debian.html;&lt;br /&gt;
    client_max_body_size 5m;&lt;br /&gt;
    client_body_timeout 30;&lt;br /&gt;
    location / {&lt;br /&gt;
                try_files $uri $uri/ =404;&lt;br /&gt;
               }&lt;br /&gt;
        location ~ /.well-known {&lt;br /&gt;
            allow all;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        location ~ /\.ht {&lt;br /&gt;
          deny all;&lt;br /&gt;
&lt;br /&gt;
         }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#     location ~ \.php$ {&lt;br /&gt;
#&lt;br /&gt;
#         fastcgi_pass unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
#         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;&lt;br /&gt;
#         include fastcgi_params;&lt;br /&gt;
#         include snippets/fastcgi-php.conf;&lt;br /&gt;
#     }&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
     location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|xml)$ {&lt;br /&gt;
         try_files $uri /index.php;&lt;br /&gt;
         expires max;&lt;br /&gt;
         log_not_found off;&lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
     location = /_.gif {&lt;br /&gt;
         expires max;&lt;br /&gt;
         empty_gif;&lt;br /&gt;
     }&lt;br /&gt;
     location ^~ ^/(cache|includes|maintenance|languages|serialized|tests|images/deleted)/ {&lt;br /&gt;
         deny all;&lt;br /&gt;
     }&lt;br /&gt;
     location ^~ ^/(bin|docs|extensions|includes|maintenance|mw-config|resources|serialized|tests)/ {&lt;br /&gt;
         internal;&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
     # Security for &#039;image&#039; directory&lt;br /&gt;
     location ~* ^/images/.*.(html|htm|php|shtml)$ {&lt;br /&gt;
         types { }&lt;br /&gt;
         default_type text/plain;&lt;br /&gt;
     }&lt;br /&gt;
     # Security for &#039;image&#039; directory&lt;br /&gt;
     location ^~ /images/ {&lt;br /&gt;
         try_files $uri /index.php;&lt;br /&gt;
     }&lt;br /&gt;
    ssl_certificate /etc/letsencrypt/live/bunnfamily.nz/fullchain.pem; # m&amp;gt;&lt;br /&gt;
    ssl_certificate_key /etc/letsencrypt/live/bunnfamily.nz/privkey.pem; #&amp;gt;&lt;br /&gt;
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot&lt;br /&gt;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Simon</name></author>
	</entry>
	<entry>
		<id>https://wiki.bunnfamily.nz/index.php?title=Nginx_reverse_proxy&amp;diff=159</id>
		<title>Nginx reverse proxy</title>
		<link rel="alternate" type="text/html" href="https://wiki.bunnfamily.nz/index.php?title=Nginx_reverse_proxy&amp;diff=159"/>
		<updated>2025-06-13T01:31:57Z</updated>

		<summary type="html">&lt;p&gt;Simon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The reverse proxy is set up as a conf file in /etc/nginx/conf.d/bunnfamily.nz.conf&lt;br /&gt;
&lt;br /&gt;
certbot keeps the certificates: Use:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo certbot certonly --force-renew -d bunnfamily.nz -d www.bunnfamily.nz -d chrono.bunnfamily.nz -d grafana.bunnfamily.nz -d wiki.bunnfamily.nz -d pumpcompare.aquadvanced.online -d comfyui.bunnfamily.nz -d mine.bunnfamily.nz -d bunnserver.bunnfamily.nz -d hassio.bunnfamily.nz -d node-red.bunnfamily.nz&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mediawiki uses php and this uses a link redirect to /var/run/php-fpm.sock so that I don&#039;t have to use the actual version number &amp;lt;pre&amp;gt;/var/run/php/php8.1-fpm.sock&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;network:&lt;br /&gt;
  version: 2&lt;br /&gt;
  renderer: networkd&lt;br /&gt;
  ethernets:&lt;br /&gt;
    eno1:&lt;br /&gt;
      dhcp4: no&lt;br /&gt;
      dhcp6: no&lt;br /&gt;
      optional: true&lt;br /&gt;
  bridges:&lt;br /&gt;
    br0:&lt;br /&gt;
      interfaces: [eno1]&lt;br /&gt;
      addresses: [192.168.1.38/24]&lt;br /&gt;
      nameservers:&lt;br /&gt;
        addresses: [192.168.1.4, 8.8.8.8]&lt;br /&gt;
      routes:&lt;br /&gt;
        - to: default&lt;br /&gt;
          via: 192.168.1.1&lt;br /&gt;
      parameters:&lt;br /&gt;
        stp: false&lt;br /&gt;
        forward-delay: 0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also note that you need to &amp;lt;pre&amp;gt;cd /var/run/php&lt;br /&gt;
sudo chown nginx:nginx *.* &amp;lt;/pre&amp;gt; &lt;br /&gt;
otherwise you will get errors in /var/log/nginx/error.log about permission errors to access php&lt;br /&gt;
&lt;br /&gt;
Prove PHP is working by going to https://wiki.bunnfamily.nz/phpinfo.php&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
upstream php-handler {&lt;br /&gt;
    server unix:/run/php/php8.1-fpm.sock;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
map $http_upgrade $connection_upgrade {&lt;br /&gt;
    default upgrade;&lt;br /&gt;
    &#039;&#039;      close;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
server {&lt;br /&gt;
    if ($host = comfyui.bunnfamily.nz) {&lt;br /&gt;
        return 301 https://$host$request_uri;&lt;br /&gt;
    } # managed by Certbot&lt;br /&gt;
&lt;br /&gt;
    if ($host = pumpcompare.info) {&lt;br /&gt;
        return 301 https://$host$request_uri;&lt;br /&gt;
    } # managed by Certbot&lt;br /&gt;
&lt;br /&gt;
    if ($host = mine.bunnfamily.nz) {&lt;br /&gt;
        return 301 https://$host$request_uri;&lt;br /&gt;
    } # managed by Certbot&lt;br /&gt;
&lt;br /&gt;
    if ($host = bunnserver.bunnfamily.nz) {&lt;br /&gt;
        return 301 https://$host$request_uri;&lt;br /&gt;
    } # managed by Certbot&lt;br /&gt;
&lt;br /&gt;
    if ($host = www.bunnfamily.nz) {&lt;br /&gt;
        return 301 https://$host$request_uri;&lt;br /&gt;
    } # managed by Certbot&lt;br /&gt;
&lt;br /&gt;
    if ($host = hassio.bunnfamily.nz) {&lt;br /&gt;
        return 301 https://$host$request_uri;&lt;br /&gt;
    } # managed by Certbot&lt;br /&gt;
&lt;br /&gt;
    if ($host = node-red.bunnfamily.nz) {&lt;br /&gt;
        return 301 https://$host$request_uri;&lt;br /&gt;
    } # managed by Certbot&lt;br /&gt;
&lt;br /&gt;
    if ($host = chrono.bunnfamily.nz) {&lt;br /&gt;
        return 301 https://$host$request_uri;&lt;br /&gt;
    } # managed by Certbot&lt;br /&gt;
&lt;br /&gt;
    if ($host = grafana.bunnfamily.nz) {&lt;br /&gt;
        return 301 https://$host$request_uri;&lt;br /&gt;
    } # managed by Certbot&lt;br /&gt;
&lt;br /&gt;
    if ($host = wiki.bunnfamily.nz) {&lt;br /&gt;
        return 301 https://$host$request_uri;&lt;br /&gt;
    } # managed by Certbot&lt;br /&gt;
&lt;br /&gt;
    listen 80; &lt;br /&gt;
    listen [::]:80;&lt;br /&gt;
    server_name *.bunnfamily.nz;&lt;br /&gt;
    return 301 https://$host$request_uri;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
server {&lt;br /&gt;
    listen 443 ssl;&lt;br /&gt;
    listen [::]:443;&lt;br /&gt;
    server_name wiki.bunnfamily.nz;&lt;br /&gt;
    root /var/www/mediawiki;&lt;br /&gt;
    index index.php index.html index.htm index.nginx-debian.html;&lt;br /&gt;
    location ~ \.php$ {&lt;br /&gt;
         fastcgi_pass unix:/run/php/php-fpm.sock;&lt;br /&gt;
         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;&lt;br /&gt;
         include fastcgi_params;&lt;br /&gt;
     }&lt;br /&gt;
    ssl_certificate /etc/letsencrypt/live/bunnfamily.nz/fullchain.pem; # m&amp;gt;&lt;br /&gt;
    ssl_certificate_key /etc/letsencrypt/live/bunnfamily.nz/privkey.pem; #&amp;gt;&lt;br /&gt;
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot&lt;br /&gt;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
server {&lt;br /&gt;
    listen 443 ssl;&lt;br /&gt;
    listen [::]:443 ssl;&lt;br /&gt;
    server_name bunnserver.bunnfamily.nz;&lt;br /&gt;
    location ~ {&lt;br /&gt;
                 proxy_pass_header Authorization;&lt;br /&gt;
                 proxy_set_header Host $host;&lt;br /&gt;
                 proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
                 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
                 proxy_http_version 1.1;&lt;br /&gt;
                 proxy_set_header Connection &amp;quot;&amp;quot;;&lt;br /&gt;
                 proxy_buffering off;&lt;br /&gt;
                 client_max_body_size 0;&lt;br /&gt;
                 proxy_read_timeout 36000s;&lt;br /&gt;
                 proxy_redirect off;              &lt;br /&gt;
                 proxy_pass http://192.168.1.5;&lt;br /&gt;
       }&lt;br /&gt;
    ssl_certificate /etc/letsencrypt/live/bunnfamily.nz/fullchain.pem; # m&amp;gt;&lt;br /&gt;
    ssl_certificate_key /etc/letsencrypt/live/bunnfamily.nz/privkey.pem; #&amp;gt;&lt;br /&gt;
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot&lt;br /&gt;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
server {&lt;br /&gt;
       listen 443 ssl;&lt;br /&gt;
       listen [::]:443 ssl;&lt;br /&gt;
       server_name mine.bunnfamily.nz;&lt;br /&gt;
       location ~ {&lt;br /&gt;
                 proxy_pass_header Authorization;&lt;br /&gt;
                 proxy_set_header Host $host;&lt;br /&gt;
                 proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
                 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
                 proxy_http_version 1.1;&lt;br /&gt;
                 proxy_set_header Connection &amp;quot;&amp;quot;;&lt;br /&gt;
                 proxy_buffering off;&lt;br /&gt;
                 client_max_body_size 0;&lt;br /&gt;
                 proxy_read_timeout 36000s;&lt;br /&gt;
                 proxy_redirect off;&lt;br /&gt;
                 proxy_pass http://192.168.1.127:8080;&lt;br /&gt;
       }&lt;br /&gt;
    ssl_certificate /etc/letsencrypt/live/bunnfamily.nz/fullchain.pem; # m&amp;gt;&lt;br /&gt;
    ssl_certificate_key /etc/letsencrypt/live/bunnfamily.nz/privkey.pem; #&amp;gt;&lt;br /&gt;
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot&lt;br /&gt;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
server {&lt;br /&gt;
       listen 443 ssl;&lt;br /&gt;
       listen [::]:443 ssl;&lt;br /&gt;
       server_name pumpcompare.info;&lt;br /&gt;
       location ~ {&lt;br /&gt;
                  proxy_pass http://192.168.1.37:3838;&lt;br /&gt;
                  proxy_redirect http://192.168.1.37:3838/ https://$host/;&lt;br /&gt;
                  proxy_http_version 1.1;&lt;br /&gt;
                  proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
                  proxy_set_header Connection $connection_upgrade;&lt;br /&gt;
                  proxy_read_timeout 20d;&lt;br /&gt;
       }&lt;br /&gt;
    ssl_certificate /etc/letsencrypt/live/bunnfamily.nz/fullchain.pem; # m&amp;gt;&lt;br /&gt;
    ssl_certificate_key /etc/letsencrypt/live/bunnfamily.nz/privkey.pem; #&amp;gt;&lt;br /&gt;
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot&lt;br /&gt;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
server {&lt;br /&gt;
    listen 443 ssl;&lt;br /&gt;
    listen [::]:443 ssl;&lt;br /&gt;
    server_name hassio.bunnfamily.nz;&lt;br /&gt;
    add_header Strict-Transport-Security &amp;quot;max-age=31536000; includeSubdomains&amp;quot;;&lt;br /&gt;
    location / {&lt;br /&gt;
        proxy_pass http://192.168.1.22:8123;&lt;br /&gt;
        proxy_set_header Host $host;&lt;br /&gt;
        proxy_redirect http:// https://;&lt;br /&gt;
        proxy_http_version 1.1;&lt;br /&gt;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
        proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
        proxy_set_header Connection $connection_upgrade;&lt;br /&gt;
    }&lt;br /&gt;
    ssl_certificate /etc/letsencrypt/live/bunnfamily.nz/fullchain.pem; # m&amp;gt;&lt;br /&gt;
    ssl_certificate_key /etc/letsencrypt/live/bunnfamily.nz/privkey.pem; #&amp;gt;&lt;br /&gt;
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot&lt;br /&gt;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
server {&lt;br /&gt;
    listen 443 ssl;&lt;br /&gt;
    listen [::]:443 ssl;&lt;br /&gt;
    server_name chrono.bunnfamily.nz;&lt;br /&gt;
    location / {&lt;br /&gt;
        proxy_set_header Accept-Encoding &amp;quot;&amp;quot;;&lt;br /&gt;
        proxy_set_header Host $host;&lt;br /&gt;
        proxy_redirect http:// https://;&lt;br /&gt;
        proxy_http_version 1.1;&lt;br /&gt;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
        proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
        proxy_set_header Connection $connection_upgrade;&lt;br /&gt;
        proxy_pass http://localhost:8086;&lt;br /&gt;
        proxy_set_header Connection $connection_upgrade;&lt;br /&gt;
       }&lt;br /&gt;
    ssl_certificate /etc/letsencrypt/live/bunnfamily.nz/fullchain.pem; # m&amp;gt;&lt;br /&gt;
    ssl_certificate_key /etc/letsencrypt/live/bunnfamily.nz/privkey.pem; #&amp;gt;&lt;br /&gt;
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot&lt;br /&gt;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
server {&lt;br /&gt;
    listen 443 ssl;&lt;br /&gt;
    listen [::]:443 ssl;&lt;br /&gt;
    server_name grafana.bunnfamily.nz;&lt;br /&gt;
    location / {&lt;br /&gt;
        proxy_set_header Accept-Encoding &amp;quot;&amp;quot;;&lt;br /&gt;
        proxy_set_header Host $http_host;&lt;br /&gt;
        proxy_redirect http:// https://;&lt;br /&gt;
        proxy_http_version 1.1;&lt;br /&gt;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
        proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
        proxy_set_header Connection $connection_upgrade;&lt;br /&gt;
        proxy_pass http://localhost:3000;&lt;br /&gt;
        proxy_set_header Connection $connection_upgrade;&lt;br /&gt;
       }&lt;br /&gt;
    ssl_certificate /etc/letsencrypt/live/bunnfamily.nz/fullchain.pem; # m&amp;gt;&lt;br /&gt;
    ssl_certificate_key /etc/letsencrypt/live/bunnfamily.nz/privkey.pem; #&amp;gt;&lt;br /&gt;
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot&lt;br /&gt;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
server {&lt;br /&gt;
    listen 443 ssl;&lt;br /&gt;
    listen [::]:443 ssl;&lt;br /&gt;
    server_name node-red.bunnfamily.nz;&lt;br /&gt;
    location / {&lt;br /&gt;
        proxy_set_header Accept-Encoding &amp;quot;&amp;quot;;&lt;br /&gt;
        proxy_pass http://localhost:1880;&lt;br /&gt;
        proxy_set_header Host $host;&lt;br /&gt;
        proxy_redirect http:// https://;&lt;br /&gt;
        proxy_http_version 1.1;&lt;br /&gt;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
        proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
        proxy_set_header Connection $connection_upgrade;&lt;br /&gt;
       }&lt;br /&gt;
    ssl_certificate /etc/letsencrypt/live/bunnfamily.nz/fullchain.pem; # m&amp;gt;&lt;br /&gt;
    ssl_certificate_key /etc/letsencrypt/live/bunnfamily.nz/privkey.pem; #&amp;gt;&lt;br /&gt;
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot&lt;br /&gt;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
server {&lt;br /&gt;
    listen 443 ssl default_server;&lt;br /&gt;
    listen [::]:443 ssl default_server;&lt;br /&gt;
    server_name bunnfamily.nz www.bunnfamily.nz;&lt;br /&gt;
    root /var/www/html;&lt;br /&gt;
    index index.php index.html index.htm index.nginx-debian.html;&lt;br /&gt;
    client_max_body_size 5m;&lt;br /&gt;
    client_body_timeout 30;&lt;br /&gt;
    location / {&lt;br /&gt;
                try_files $uri $uri/ =404;&lt;br /&gt;
               }&lt;br /&gt;
        location ~ /.well-known {&lt;br /&gt;
            allow all;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        location ~ /\.ht {&lt;br /&gt;
          deny all;&lt;br /&gt;
&lt;br /&gt;
         }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#     location ~ \.php$ {&lt;br /&gt;
#&lt;br /&gt;
#         fastcgi_pass unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
#         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;&lt;br /&gt;
#         include fastcgi_params;&lt;br /&gt;
#         include snippets/fastcgi-php.conf;&lt;br /&gt;
#     }&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
     location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|xml)$ {&lt;br /&gt;
         try_files $uri /index.php;&lt;br /&gt;
         expires max;&lt;br /&gt;
         log_not_found off;&lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
     location = /_.gif {&lt;br /&gt;
         expires max;&lt;br /&gt;
         empty_gif;&lt;br /&gt;
     }&lt;br /&gt;
     location ^~ ^/(cache|includes|maintenance|languages|serialized|tests|images/deleted)/ {&lt;br /&gt;
         deny all;&lt;br /&gt;
     }&lt;br /&gt;
     location ^~ ^/(bin|docs|extensions|includes|maintenance|mw-config|resources|serialized|tests)/ {&lt;br /&gt;
         internal;&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
     # Security for &#039;image&#039; directory&lt;br /&gt;
     location ~* ^/images/.*.(html|htm|php|shtml)$ {&lt;br /&gt;
         types { }&lt;br /&gt;
         default_type text/plain;&lt;br /&gt;
     }&lt;br /&gt;
     # Security for &#039;image&#039; directory&lt;br /&gt;
     location ^~ /images/ {&lt;br /&gt;
         try_files $uri /index.php;&lt;br /&gt;
     }&lt;br /&gt;
    ssl_certificate /etc/letsencrypt/live/bunnfamily.nz/fullchain.pem; # m&amp;gt;&lt;br /&gt;
    ssl_certificate_key /etc/letsencrypt/live/bunnfamily.nz/privkey.pem; #&amp;gt;&lt;br /&gt;
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot&lt;br /&gt;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Simon</name></author>
	</entry>
	<entry>
		<id>https://wiki.bunnfamily.nz/index.php?title=Fix_Flight_Simulator&amp;diff=158</id>
		<title>Fix Flight Simulator</title>
		<link rel="alternate" type="text/html" href="https://wiki.bunnfamily.nz/index.php?title=Fix_Flight_Simulator&amp;diff=158"/>
		<updated>2025-06-10T23:59:46Z</updated>

		<summary type="html">&lt;p&gt;Simon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Win + R, this should open the run box, put this in the search bar: C:\ProgramData\NVIDIA\NGX\models&lt;br /&gt;
&lt;br /&gt;
Then, go to the search bar in the upper right corner and search for or copy this name: 190_E658703&lt;br /&gt;
&lt;br /&gt;
Delete all files with this name&lt;/div&gt;</summary>
		<author><name>Simon</name></author>
	</entry>
	<entry>
		<id>https://wiki.bunnfamily.nz/index.php?title=Ubuntu_notes&amp;diff=157</id>
		<title>Ubuntu notes</title>
		<link rel="alternate" type="text/html" href="https://wiki.bunnfamily.nz/index.php?title=Ubuntu_notes&amp;diff=157"/>
		<updated>2025-06-10T23:39:03Z</updated>

		<summary type="html">&lt;p&gt;Simon: Created page with &amp;quot;== Cron Jobs ==  When creating a cron job using &amp;#039;&amp;#039;crontab -e&amp;#039;&amp;#039; always log in as &amp;#039;&amp;#039;sudo su&amp;#039;&amp;#039; first.  This makes sure the tasks are run at the administrator level ----  == SQL Dump== Its in /home/hassio/temp as &amp;#039;&amp;#039;simon.sql&amp;#039;&amp;#039;  == Find Command== &amp;lt;pre&amp;gt; find -iname temp.smb 2&amp;gt;/dev/null &amp;lt;/pre&amp;gt;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cron Jobs ==&lt;br /&gt;
&lt;br /&gt;
When creating a cron job using &#039;&#039;crontab -e&#039;&#039; always log in as &#039;&#039;sudo su&#039;&#039; first.  This makes sure the tasks are run at the administrator level&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== SQL Dump==&lt;br /&gt;
Its in /home/hassio/temp as &#039;&#039;simon.sql&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Find Command==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
find -iname temp.smb 2&amp;gt;/dev/null&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Simon</name></author>
	</entry>
	<entry>
		<id>https://wiki.bunnfamily.nz/index.php?title=Main_Page&amp;diff=156</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.bunnfamily.nz/index.php?title=Main_Page&amp;diff=156"/>
		<updated>2025-06-10T23:38:58Z</updated>

		<summary type="html">&lt;p&gt;Simon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;This is the main repository of knowledge created over the years by Simon Bunn.&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Webhooks and Portainer]]&lt;br /&gt;
&lt;br /&gt;
[[Home Assistant]]&lt;br /&gt;
&lt;br /&gt;
[[node-red]]&lt;br /&gt;
&lt;br /&gt;
[[Ubuntu notes]]&lt;br /&gt;
&lt;br /&gt;
[[Router - setting up from fresh]]&lt;br /&gt;
&lt;br /&gt;
[[MediaWiki - enable file upload]]&lt;br /&gt;
&lt;br /&gt;
[[Lora Gateway and Nodes]]&lt;br /&gt;
&lt;br /&gt;
[[Change the media wiki password]]&lt;br /&gt;
&lt;br /&gt;
[[Jetson Orin Nano]]&lt;br /&gt;
&lt;br /&gt;
[[Front Gate]]&lt;br /&gt;
&lt;br /&gt;
[[Update Cubecoders AMP]]&lt;br /&gt;
&lt;br /&gt;
[[EVNEX charger]]&lt;br /&gt;
&lt;br /&gt;
[[Fix Flight Simulator]]&lt;br /&gt;
&lt;br /&gt;
[[nginx reverse proxy]]&lt;/div&gt;</summary>
		<author><name>Simon</name></author>
	</entry>
	<entry>
		<id>https://wiki.bunnfamily.nz/index.php?title=Nginx_reverse_proxy&amp;diff=155</id>
		<title>Nginx reverse proxy</title>
		<link rel="alternate" type="text/html" href="https://wiki.bunnfamily.nz/index.php?title=Nginx_reverse_proxy&amp;diff=155"/>
		<updated>2025-05-20T01:57:44Z</updated>

		<summary type="html">&lt;p&gt;Simon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The reverse proxy is set up as a conf file in /etc/nginx/conf.d/bunnfamily.nz.conf&lt;br /&gt;
&lt;br /&gt;
certbot keeps the certificates: Use:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo certbot certonly --force-renew -d bunnfamily.nz -d www.bunnfamily.nz -d chrono.bunnfamily.nz -d grafana.bunnfamily.nz -d wiki.bunnfamily.nz -d pumpcompare.aquadvanced.online -d comfyui.bunnfamily.nz -d mine.bunnfamily.nz -d bunnserver.bunnfamily.nz -d hassio.bunnfamily.nz -d node-red.bunnfamily.nz&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mediawiki uses php and this uses a link redirect to /var/run/php-fpm.sock so that I don&#039;t have to use the actual version number &amp;lt;pre&amp;gt;/var/run/php/php8.1-fpm.sock&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also note that you need to &amp;lt;pre&amp;gt;cd /var/run/php&lt;br /&gt;
sudo chown nginx:nginx *.* &amp;lt;/pre&amp;gt; &lt;br /&gt;
otherwise you will get errors in /var/log/nginx/error.log about permission errors to access php&lt;br /&gt;
&lt;br /&gt;
Prove PHP is working by going to https://wiki.bunnfamily.nz/phpinfo.php&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
upstream php-handler {&lt;br /&gt;
    server unix:/run/php/php8.1-fpm.sock;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
map $http_upgrade $connection_upgrade {&lt;br /&gt;
    default upgrade;&lt;br /&gt;
    &#039;&#039;      close;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
server {&lt;br /&gt;
    if ($host = comfyui.bunnfamily.nz) {&lt;br /&gt;
        return 301 https://$host$request_uri;&lt;br /&gt;
    } # managed by Certbot&lt;br /&gt;
&lt;br /&gt;
    if ($host = pumpcompare.info) {&lt;br /&gt;
        return 301 https://$host$request_uri;&lt;br /&gt;
    } # managed by Certbot&lt;br /&gt;
&lt;br /&gt;
    if ($host = mine.bunnfamily.nz) {&lt;br /&gt;
        return 301 https://$host$request_uri;&lt;br /&gt;
    } # managed by Certbot&lt;br /&gt;
&lt;br /&gt;
    if ($host = bunnserver.bunnfamily.nz) {&lt;br /&gt;
        return 301 https://$host$request_uri;&lt;br /&gt;
    } # managed by Certbot&lt;br /&gt;
&lt;br /&gt;
    if ($host = www.bunnfamily.nz) {&lt;br /&gt;
        return 301 https://$host$request_uri;&lt;br /&gt;
    } # managed by Certbot&lt;br /&gt;
&lt;br /&gt;
    if ($host = hassio.bunnfamily.nz) {&lt;br /&gt;
        return 301 https://$host$request_uri;&lt;br /&gt;
    } # managed by Certbot&lt;br /&gt;
&lt;br /&gt;
    if ($host = node-red.bunnfamily.nz) {&lt;br /&gt;
        return 301 https://$host$request_uri;&lt;br /&gt;
    } # managed by Certbot&lt;br /&gt;
&lt;br /&gt;
    if ($host = chrono.bunnfamily.nz) {&lt;br /&gt;
        return 301 https://$host$request_uri;&lt;br /&gt;
    } # managed by Certbot&lt;br /&gt;
&lt;br /&gt;
    if ($host = grafana.bunnfamily.nz) {&lt;br /&gt;
        return 301 https://$host$request_uri;&lt;br /&gt;
    } # managed by Certbot&lt;br /&gt;
&lt;br /&gt;
    if ($host = wiki.bunnfamily.nz) {&lt;br /&gt;
        return 301 https://$host$request_uri;&lt;br /&gt;
    } # managed by Certbot&lt;br /&gt;
&lt;br /&gt;
    listen 80; &lt;br /&gt;
    listen [::]:80;&lt;br /&gt;
    server_name *.bunnfamily.nz;&lt;br /&gt;
    return 301 https://$host$request_uri;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
server {&lt;br /&gt;
    listen 443 ssl;&lt;br /&gt;
    listen [::]:443;&lt;br /&gt;
    server_name wiki.bunnfamily.nz;&lt;br /&gt;
    root /var/www/mediawiki;&lt;br /&gt;
    index index.php index.html index.htm index.nginx-debian.html;&lt;br /&gt;
    location ~ \.php$ {&lt;br /&gt;
         fastcgi_pass unix:/run/php/php-fpm.sock;&lt;br /&gt;
         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;&lt;br /&gt;
         include fastcgi_params;&lt;br /&gt;
     }&lt;br /&gt;
    ssl_certificate /etc/letsencrypt/live/bunnfamily.nz/fullchain.pem; # m&amp;gt;&lt;br /&gt;
    ssl_certificate_key /etc/letsencrypt/live/bunnfamily.nz/privkey.pem; #&amp;gt;&lt;br /&gt;
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot&lt;br /&gt;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
server {&lt;br /&gt;
    listen 443 ssl;&lt;br /&gt;
    listen [::]:443 ssl;&lt;br /&gt;
    server_name bunnserver.bunnfamily.nz;&lt;br /&gt;
    location ~ {&lt;br /&gt;
                 proxy_pass_header Authorization;&lt;br /&gt;
                 proxy_set_header Host $host;&lt;br /&gt;
                 proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
                 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
                 proxy_http_version 1.1;&lt;br /&gt;
                 proxy_set_header Connection &amp;quot;&amp;quot;;&lt;br /&gt;
                 proxy_buffering off;&lt;br /&gt;
                 client_max_body_size 0;&lt;br /&gt;
                 proxy_read_timeout 36000s;&lt;br /&gt;
                 proxy_redirect off;              &lt;br /&gt;
                 proxy_pass http://192.168.1.5;&lt;br /&gt;
       }&lt;br /&gt;
    ssl_certificate /etc/letsencrypt/live/bunnfamily.nz/fullchain.pem; # m&amp;gt;&lt;br /&gt;
    ssl_certificate_key /etc/letsencrypt/live/bunnfamily.nz/privkey.pem; #&amp;gt;&lt;br /&gt;
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot&lt;br /&gt;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
server {&lt;br /&gt;
       listen 443 ssl;&lt;br /&gt;
       listen [::]:443 ssl;&lt;br /&gt;
       server_name mine.bunnfamily.nz;&lt;br /&gt;
       location ~ {&lt;br /&gt;
                 proxy_pass_header Authorization;&lt;br /&gt;
                 proxy_set_header Host $host;&lt;br /&gt;
                 proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
                 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
                 proxy_http_version 1.1;&lt;br /&gt;
                 proxy_set_header Connection &amp;quot;&amp;quot;;&lt;br /&gt;
                 proxy_buffering off;&lt;br /&gt;
                 client_max_body_size 0;&lt;br /&gt;
                 proxy_read_timeout 36000s;&lt;br /&gt;
                 proxy_redirect off;&lt;br /&gt;
                 proxy_pass http://192.168.1.127:8080;&lt;br /&gt;
       }&lt;br /&gt;
    ssl_certificate /etc/letsencrypt/live/bunnfamily.nz/fullchain.pem; # m&amp;gt;&lt;br /&gt;
    ssl_certificate_key /etc/letsencrypt/live/bunnfamily.nz/privkey.pem; #&amp;gt;&lt;br /&gt;
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot&lt;br /&gt;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
server {&lt;br /&gt;
       listen 443 ssl;&lt;br /&gt;
       listen [::]:443 ssl;&lt;br /&gt;
       server_name pumpcompare.info;&lt;br /&gt;
       location ~ {&lt;br /&gt;
                  proxy_pass http://192.168.1.37:3838;&lt;br /&gt;
                  proxy_redirect http://192.168.1.37:3838/ https://$host/;&lt;br /&gt;
                  proxy_http_version 1.1;&lt;br /&gt;
                  proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
                  proxy_set_header Connection $connection_upgrade;&lt;br /&gt;
                  proxy_read_timeout 20d;&lt;br /&gt;
       }&lt;br /&gt;
    ssl_certificate /etc/letsencrypt/live/bunnfamily.nz/fullchain.pem; # m&amp;gt;&lt;br /&gt;
    ssl_certificate_key /etc/letsencrypt/live/bunnfamily.nz/privkey.pem; #&amp;gt;&lt;br /&gt;
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot&lt;br /&gt;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
server {&lt;br /&gt;
    listen 443 ssl;&lt;br /&gt;
    listen [::]:443 ssl;&lt;br /&gt;
    server_name hassio.bunnfamily.nz;&lt;br /&gt;
    add_header Strict-Transport-Security &amp;quot;max-age=31536000; includeSubdomains&amp;quot;;&lt;br /&gt;
    location / {&lt;br /&gt;
        proxy_pass http://192.168.1.22:8123;&lt;br /&gt;
        proxy_set_header Host $host;&lt;br /&gt;
        proxy_redirect http:// https://;&lt;br /&gt;
        proxy_http_version 1.1;&lt;br /&gt;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
        proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
        proxy_set_header Connection $connection_upgrade;&lt;br /&gt;
    }&lt;br /&gt;
    ssl_certificate /etc/letsencrypt/live/bunnfamily.nz/fullchain.pem; # m&amp;gt;&lt;br /&gt;
    ssl_certificate_key /etc/letsencrypt/live/bunnfamily.nz/privkey.pem; #&amp;gt;&lt;br /&gt;
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot&lt;br /&gt;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
server {&lt;br /&gt;
    listen 443 ssl;&lt;br /&gt;
    listen [::]:443 ssl;&lt;br /&gt;
    server_name chrono.bunnfamily.nz;&lt;br /&gt;
    location / {&lt;br /&gt;
        proxy_set_header Accept-Encoding &amp;quot;&amp;quot;;&lt;br /&gt;
        proxy_set_header Host $host;&lt;br /&gt;
        proxy_redirect http:// https://;&lt;br /&gt;
        proxy_http_version 1.1;&lt;br /&gt;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
        proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
        proxy_set_header Connection $connection_upgrade;&lt;br /&gt;
        proxy_pass http://localhost:8086;&lt;br /&gt;
        proxy_set_header Connection $connection_upgrade;&lt;br /&gt;
       }&lt;br /&gt;
    ssl_certificate /etc/letsencrypt/live/bunnfamily.nz/fullchain.pem; # m&amp;gt;&lt;br /&gt;
    ssl_certificate_key /etc/letsencrypt/live/bunnfamily.nz/privkey.pem; #&amp;gt;&lt;br /&gt;
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot&lt;br /&gt;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
server {&lt;br /&gt;
    listen 443 ssl;&lt;br /&gt;
    listen [::]:443 ssl;&lt;br /&gt;
    server_name grafana.bunnfamily.nz;&lt;br /&gt;
    location / {&lt;br /&gt;
        proxy_set_header Accept-Encoding &amp;quot;&amp;quot;;&lt;br /&gt;
        proxy_set_header Host $http_host;&lt;br /&gt;
        proxy_redirect http:// https://;&lt;br /&gt;
        proxy_http_version 1.1;&lt;br /&gt;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
        proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
        proxy_set_header Connection $connection_upgrade;&lt;br /&gt;
        proxy_pass http://localhost:3000;&lt;br /&gt;
        proxy_set_header Connection $connection_upgrade;&lt;br /&gt;
       }&lt;br /&gt;
    ssl_certificate /etc/letsencrypt/live/bunnfamily.nz/fullchain.pem; # m&amp;gt;&lt;br /&gt;
    ssl_certificate_key /etc/letsencrypt/live/bunnfamily.nz/privkey.pem; #&amp;gt;&lt;br /&gt;
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot&lt;br /&gt;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
server {&lt;br /&gt;
    listen 443 ssl;&lt;br /&gt;
    listen [::]:443 ssl;&lt;br /&gt;
    server_name node-red.bunnfamily.nz;&lt;br /&gt;
    location / {&lt;br /&gt;
        proxy_set_header Accept-Encoding &amp;quot;&amp;quot;;&lt;br /&gt;
        proxy_pass http://localhost:1880;&lt;br /&gt;
        proxy_set_header Host $host;&lt;br /&gt;
        proxy_redirect http:// https://;&lt;br /&gt;
        proxy_http_version 1.1;&lt;br /&gt;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
        proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
        proxy_set_header Connection $connection_upgrade;&lt;br /&gt;
       }&lt;br /&gt;
    ssl_certificate /etc/letsencrypt/live/bunnfamily.nz/fullchain.pem; # m&amp;gt;&lt;br /&gt;
    ssl_certificate_key /etc/letsencrypt/live/bunnfamily.nz/privkey.pem; #&amp;gt;&lt;br /&gt;
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot&lt;br /&gt;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
server {&lt;br /&gt;
    listen 443 ssl default_server;&lt;br /&gt;
    listen [::]:443 ssl default_server;&lt;br /&gt;
    server_name bunnfamily.nz www.bunnfamily.nz;&lt;br /&gt;
    root /var/www/html;&lt;br /&gt;
    index index.php index.html index.htm index.nginx-debian.html;&lt;br /&gt;
    client_max_body_size 5m;&lt;br /&gt;
    client_body_timeout 30;&lt;br /&gt;
    location / {&lt;br /&gt;
                try_files $uri $uri/ =404;&lt;br /&gt;
               }&lt;br /&gt;
        location ~ /.well-known {&lt;br /&gt;
            allow all;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        location ~ /\.ht {&lt;br /&gt;
          deny all;&lt;br /&gt;
&lt;br /&gt;
         }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#     location ~ \.php$ {&lt;br /&gt;
#&lt;br /&gt;
#         fastcgi_pass unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
#         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;&lt;br /&gt;
#         include fastcgi_params;&lt;br /&gt;
#         include snippets/fastcgi-php.conf;&lt;br /&gt;
#     }&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
     location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|xml)$ {&lt;br /&gt;
         try_files $uri /index.php;&lt;br /&gt;
         expires max;&lt;br /&gt;
         log_not_found off;&lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
     location = /_.gif {&lt;br /&gt;
         expires max;&lt;br /&gt;
         empty_gif;&lt;br /&gt;
     }&lt;br /&gt;
     location ^~ ^/(cache|includes|maintenance|languages|serialized|tests|images/deleted)/ {&lt;br /&gt;
         deny all;&lt;br /&gt;
     }&lt;br /&gt;
     location ^~ ^/(bin|docs|extensions|includes|maintenance|mw-config|resources|serialized|tests)/ {&lt;br /&gt;
         internal;&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
     # Security for &#039;image&#039; directory&lt;br /&gt;
     location ~* ^/images/.*.(html|htm|php|shtml)$ {&lt;br /&gt;
         types { }&lt;br /&gt;
         default_type text/plain;&lt;br /&gt;
     }&lt;br /&gt;
     # Security for &#039;image&#039; directory&lt;br /&gt;
     location ^~ /images/ {&lt;br /&gt;
         try_files $uri /index.php;&lt;br /&gt;
     }&lt;br /&gt;
    ssl_certificate /etc/letsencrypt/live/bunnfamily.nz/fullchain.pem; # m&amp;gt;&lt;br /&gt;
    ssl_certificate_key /etc/letsencrypt/live/bunnfamily.nz/privkey.pem; #&amp;gt;&lt;br /&gt;
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot&lt;br /&gt;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Simon</name></author>
	</entry>
	<entry>
		<id>https://wiki.bunnfamily.nz/index.php?title=Main_Page&amp;diff=154</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.bunnfamily.nz/index.php?title=Main_Page&amp;diff=154"/>
		<updated>2025-05-15T04:43:19Z</updated>

		<summary type="html">&lt;p&gt;Simon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;This is the main repository of knowledge created over the years by Simon Bunn.&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Webhooks and Portainer]]&lt;br /&gt;
&lt;br /&gt;
[[Home Assistant]]&lt;br /&gt;
&lt;br /&gt;
[[node-red]]&lt;br /&gt;
&lt;br /&gt;
Ubuntu [[notes]]&lt;br /&gt;
&lt;br /&gt;
[[Router - setting up from fresh]]&lt;br /&gt;
&lt;br /&gt;
[[MediaWiki - enable file upload]]&lt;br /&gt;
&lt;br /&gt;
[[Lora Gateway and Nodes]]&lt;br /&gt;
&lt;br /&gt;
[[Change the media wiki password]]&lt;br /&gt;
&lt;br /&gt;
[[Jetson Orin Nano]]&lt;br /&gt;
&lt;br /&gt;
[[Front Gate]]&lt;br /&gt;
&lt;br /&gt;
[[Update Cubecoders AMP]]&lt;br /&gt;
&lt;br /&gt;
[[EVNEX charger]]&lt;br /&gt;
&lt;br /&gt;
[[Fix Flight Simulator]]&lt;br /&gt;
&lt;br /&gt;
[[nginx reverse proxy]]&lt;/div&gt;</summary>
		<author><name>Simon</name></author>
	</entry>
	<entry>
		<id>https://wiki.bunnfamily.nz/index.php?title=File:65f65808-7046-4d17-920c-040239fa6282.jpg&amp;diff=153</id>
		<title>File:65f65808-7046-4d17-920c-040239fa6282.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.bunnfamily.nz/index.php?title=File:65f65808-7046-4d17-920c-040239fa6282.jpg&amp;diff=153"/>
		<updated>2025-05-15T04:42:55Z</updated>

		<summary type="html">&lt;p&gt;Simon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Simon</name></author>
	</entry>
	<entry>
		<id>https://wiki.bunnfamily.nz/index.php?title=Nginx_reverse_proxy&amp;diff=152</id>
		<title>Nginx reverse proxy</title>
		<link rel="alternate" type="text/html" href="https://wiki.bunnfamily.nz/index.php?title=Nginx_reverse_proxy&amp;diff=152"/>
		<updated>2025-05-15T04:42:22Z</updated>

		<summary type="html">&lt;p&gt;Simon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The reverse proxy is set up as a conf file in /etc/nginx/conf.d/bunnfamily.nz.conf&lt;br /&gt;
&lt;br /&gt;
certbot keeps the certificates: Use:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo certbot certonly --force-renew -d bunnfamily.nz -d www.bunnfamily.nz -d chrono.bunnfamily.nz -d grafana.bunnfamily.nz -d wiki.bunnfamily.nz -d pumpcompare.aquadvanced.online -d comfyui.bunnfamily.nz -d mine.bunnfamily.nz -d bunnserver.bunnfamily.nz -d hassio.bunnfamily.nz -d node-red.bunnfamily.nz&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mediawiki uses php and this uses a link redirect to /var/run/php-fpm.sock so that I don&#039;t have to use the actual version number &amp;lt;pre&amp;gt;/var/run/php/php8.1-fpm.sock&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also note that you need to &amp;lt;pre&amp;gt;cd /var/run/php&lt;br /&gt;
sudo chown www-data:www-data *.* &amp;lt;/pre&amp;gt; &lt;br /&gt;
otherwise you will get errors in /var/log/nginx/error.log about permission errors to access php&lt;br /&gt;
&lt;br /&gt;
Prove PHP is working by going to https://wiki.bunnfamily.nz/phpinfo.php&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
upstream php-handler {&lt;br /&gt;
    server unix:/run/php/php8.1-fpm.sock;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
map $http_upgrade $connection_upgrade {&lt;br /&gt;
    default upgrade;&lt;br /&gt;
    &#039;&#039;      close;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
server {&lt;br /&gt;
    if ($host = comfyui.bunnfamily.nz) {&lt;br /&gt;
        return 301 https://$host$request_uri;&lt;br /&gt;
    } # managed by Certbot&lt;br /&gt;
&lt;br /&gt;
    if ($host = pumpcompare.info) {&lt;br /&gt;
        return 301 https://$host$request_uri;&lt;br /&gt;
    } # managed by Certbot&lt;br /&gt;
&lt;br /&gt;
    if ($host = mine.bunnfamily.nz) {&lt;br /&gt;
        return 301 https://$host$request_uri;&lt;br /&gt;
    } # managed by Certbot&lt;br /&gt;
&lt;br /&gt;
    if ($host = bunnserver.bunnfamily.nz) {&lt;br /&gt;
        return 301 https://$host$request_uri;&lt;br /&gt;
    } # managed by Certbot&lt;br /&gt;
&lt;br /&gt;
    if ($host = www.bunnfamily.nz) {&lt;br /&gt;
        return 301 https://$host$request_uri;&lt;br /&gt;
    } # managed by Certbot&lt;br /&gt;
&lt;br /&gt;
    if ($host = hassio.bunnfamily.nz) {&lt;br /&gt;
        return 301 https://$host$request_uri;&lt;br /&gt;
    } # managed by Certbot&lt;br /&gt;
&lt;br /&gt;
    if ($host = node-red.bunnfamily.nz) {&lt;br /&gt;
        return 301 https://$host$request_uri;&lt;br /&gt;
    } # managed by Certbot&lt;br /&gt;
&lt;br /&gt;
    if ($host = chrono.bunnfamily.nz) {&lt;br /&gt;
        return 301 https://$host$request_uri;&lt;br /&gt;
    } # managed by Certbot&lt;br /&gt;
&lt;br /&gt;
    if ($host = grafana.bunnfamily.nz) {&lt;br /&gt;
        return 301 https://$host$request_uri;&lt;br /&gt;
    } # managed by Certbot&lt;br /&gt;
&lt;br /&gt;
    if ($host = wiki.bunnfamily.nz) {&lt;br /&gt;
        return 301 https://$host$request_uri;&lt;br /&gt;
    } # managed by Certbot&lt;br /&gt;
&lt;br /&gt;
    listen 80; &lt;br /&gt;
    listen [::]:80;&lt;br /&gt;
    server_name *.bunnfamily.nz;&lt;br /&gt;
    return 301 https://$host$request_uri;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
server {&lt;br /&gt;
    listen 443 ssl;&lt;br /&gt;
    listen [::]:443;&lt;br /&gt;
    server_name wiki.bunnfamily.nz;&lt;br /&gt;
    root /var/www/mediawiki;&lt;br /&gt;
    index index.php index.html index.htm index.nginx-debian.html;&lt;br /&gt;
    location ~ \.php$ {&lt;br /&gt;
         fastcgi_pass unix:/run/php/php-fpm.sock;&lt;br /&gt;
         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;&lt;br /&gt;
         include fastcgi_params;&lt;br /&gt;
     }&lt;br /&gt;
    ssl_certificate /etc/letsencrypt/live/bunnfamily.nz/fullchain.pem; # m&amp;gt;&lt;br /&gt;
    ssl_certificate_key /etc/letsencrypt/live/bunnfamily.nz/privkey.pem; #&amp;gt;&lt;br /&gt;
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot&lt;br /&gt;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
server {&lt;br /&gt;
    listen 443 ssl;&lt;br /&gt;
    listen [::]:443 ssl;&lt;br /&gt;
    server_name bunnserver.bunnfamily.nz;&lt;br /&gt;
    location ~ {&lt;br /&gt;
                 proxy_pass_header Authorization;&lt;br /&gt;
                 proxy_set_header Host $host;&lt;br /&gt;
                 proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
                 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
                 proxy_http_version 1.1;&lt;br /&gt;
                 proxy_set_header Connection &amp;quot;&amp;quot;;&lt;br /&gt;
                 proxy_buffering off;&lt;br /&gt;
                 client_max_body_size 0;&lt;br /&gt;
                 proxy_read_timeout 36000s;&lt;br /&gt;
                 proxy_redirect off;              &lt;br /&gt;
                 proxy_pass http://192.168.1.5;&lt;br /&gt;
       }&lt;br /&gt;
    ssl_certificate /etc/letsencrypt/live/bunnfamily.nz/fullchain.pem; # m&amp;gt;&lt;br /&gt;
    ssl_certificate_key /etc/letsencrypt/live/bunnfamily.nz/privkey.pem; #&amp;gt;&lt;br /&gt;
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot&lt;br /&gt;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
server {&lt;br /&gt;
       listen 443 ssl;&lt;br /&gt;
       listen [::]:443 ssl;&lt;br /&gt;
       server_name mine.bunnfamily.nz;&lt;br /&gt;
       location ~ {&lt;br /&gt;
                 proxy_pass_header Authorization;&lt;br /&gt;
                 proxy_set_header Host $host;&lt;br /&gt;
                 proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
                 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
                 proxy_http_version 1.1;&lt;br /&gt;
                 proxy_set_header Connection &amp;quot;&amp;quot;;&lt;br /&gt;
                 proxy_buffering off;&lt;br /&gt;
                 client_max_body_size 0;&lt;br /&gt;
                 proxy_read_timeout 36000s;&lt;br /&gt;
                 proxy_redirect off;&lt;br /&gt;
                 proxy_pass http://192.168.1.127:8080;&lt;br /&gt;
       }&lt;br /&gt;
    ssl_certificate /etc/letsencrypt/live/bunnfamily.nz/fullchain.pem; # m&amp;gt;&lt;br /&gt;
    ssl_certificate_key /etc/letsencrypt/live/bunnfamily.nz/privkey.pem; #&amp;gt;&lt;br /&gt;
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot&lt;br /&gt;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
server {&lt;br /&gt;
       listen 443 ssl;&lt;br /&gt;
       listen [::]:443 ssl;&lt;br /&gt;
       server_name pumpcompare.info;&lt;br /&gt;
       location ~ {&lt;br /&gt;
                  proxy_pass http://192.168.1.37:3838;&lt;br /&gt;
                  proxy_redirect http://192.168.1.37:3838/ https://$host/;&lt;br /&gt;
                  proxy_http_version 1.1;&lt;br /&gt;
                  proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
                  proxy_set_header Connection $connection_upgrade;&lt;br /&gt;
                  proxy_read_timeout 20d;&lt;br /&gt;
       }&lt;br /&gt;
    ssl_certificate /etc/letsencrypt/live/bunnfamily.nz/fullchain.pem; # m&amp;gt;&lt;br /&gt;
    ssl_certificate_key /etc/letsencrypt/live/bunnfamily.nz/privkey.pem; #&amp;gt;&lt;br /&gt;
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot&lt;br /&gt;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
server {&lt;br /&gt;
    listen 443 ssl;&lt;br /&gt;
    listen [::]:443 ssl;&lt;br /&gt;
    server_name hassio.bunnfamily.nz;&lt;br /&gt;
    add_header Strict-Transport-Security &amp;quot;max-age=31536000; includeSubdomains&amp;quot;;&lt;br /&gt;
    location / {&lt;br /&gt;
        proxy_pass http://192.168.1.22:8123;&lt;br /&gt;
        proxy_set_header Host $host;&lt;br /&gt;
        proxy_redirect http:// https://;&lt;br /&gt;
        proxy_http_version 1.1;&lt;br /&gt;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
        proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
        proxy_set_header Connection $connection_upgrade;&lt;br /&gt;
    }&lt;br /&gt;
    ssl_certificate /etc/letsencrypt/live/bunnfamily.nz/fullchain.pem; # m&amp;gt;&lt;br /&gt;
    ssl_certificate_key /etc/letsencrypt/live/bunnfamily.nz/privkey.pem; #&amp;gt;&lt;br /&gt;
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot&lt;br /&gt;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
server {&lt;br /&gt;
    listen 443 ssl;&lt;br /&gt;
    listen [::]:443 ssl;&lt;br /&gt;
    server_name chrono.bunnfamily.nz;&lt;br /&gt;
    location / {&lt;br /&gt;
        proxy_set_header Accept-Encoding &amp;quot;&amp;quot;;&lt;br /&gt;
        proxy_set_header Host $host;&lt;br /&gt;
        proxy_redirect http:// https://;&lt;br /&gt;
        proxy_http_version 1.1;&lt;br /&gt;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
        proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
        proxy_set_header Connection $connection_upgrade;&lt;br /&gt;
        proxy_pass http://localhost:8086;&lt;br /&gt;
        proxy_set_header Connection $connection_upgrade;&lt;br /&gt;
       }&lt;br /&gt;
    ssl_certificate /etc/letsencrypt/live/bunnfamily.nz/fullchain.pem; # m&amp;gt;&lt;br /&gt;
    ssl_certificate_key /etc/letsencrypt/live/bunnfamily.nz/privkey.pem; #&amp;gt;&lt;br /&gt;
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot&lt;br /&gt;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
server {&lt;br /&gt;
    listen 443 ssl;&lt;br /&gt;
    listen [::]:443 ssl;&lt;br /&gt;
    server_name grafana.bunnfamily.nz;&lt;br /&gt;
    location / {&lt;br /&gt;
        proxy_set_header Accept-Encoding &amp;quot;&amp;quot;;&lt;br /&gt;
        proxy_set_header Host $http_host;&lt;br /&gt;
        proxy_redirect http:// https://;&lt;br /&gt;
        proxy_http_version 1.1;&lt;br /&gt;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
        proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
        proxy_set_header Connection $connection_upgrade;&lt;br /&gt;
        proxy_pass http://localhost:3000;&lt;br /&gt;
        proxy_set_header Connection $connection_upgrade;&lt;br /&gt;
       }&lt;br /&gt;
    ssl_certificate /etc/letsencrypt/live/bunnfamily.nz/fullchain.pem; # m&amp;gt;&lt;br /&gt;
    ssl_certificate_key /etc/letsencrypt/live/bunnfamily.nz/privkey.pem; #&amp;gt;&lt;br /&gt;
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot&lt;br /&gt;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
server {&lt;br /&gt;
    listen 443 ssl;&lt;br /&gt;
    listen [::]:443 ssl;&lt;br /&gt;
    server_name node-red.bunnfamily.nz;&lt;br /&gt;
    location / {&lt;br /&gt;
        proxy_set_header Accept-Encoding &amp;quot;&amp;quot;;&lt;br /&gt;
        proxy_pass http://localhost:1880;&lt;br /&gt;
        proxy_set_header Host $host;&lt;br /&gt;
        proxy_redirect http:// https://;&lt;br /&gt;
        proxy_http_version 1.1;&lt;br /&gt;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
        proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
        proxy_set_header Connection $connection_upgrade;&lt;br /&gt;
       }&lt;br /&gt;
    ssl_certificate /etc/letsencrypt/live/bunnfamily.nz/fullchain.pem; # m&amp;gt;&lt;br /&gt;
    ssl_certificate_key /etc/letsencrypt/live/bunnfamily.nz/privkey.pem; #&amp;gt;&lt;br /&gt;
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot&lt;br /&gt;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
server {&lt;br /&gt;
    listen 443 ssl default_server;&lt;br /&gt;
    listen [::]:443 ssl default_server;&lt;br /&gt;
    server_name bunnfamily.nz www.bunnfamily.nz;&lt;br /&gt;
    root /var/www/html;&lt;br /&gt;
    index index.php index.html index.htm index.nginx-debian.html;&lt;br /&gt;
    client_max_body_size 5m;&lt;br /&gt;
    client_body_timeout 30;&lt;br /&gt;
    location / {&lt;br /&gt;
                try_files $uri $uri/ =404;&lt;br /&gt;
               }&lt;br /&gt;
        location ~ /.well-known {&lt;br /&gt;
            allow all;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        location ~ /\.ht {&lt;br /&gt;
          deny all;&lt;br /&gt;
&lt;br /&gt;
         }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#     location ~ \.php$ {&lt;br /&gt;
#&lt;br /&gt;
#         fastcgi_pass unix:/run/php/php7.4-fpm.sock;&lt;br /&gt;
#         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;&lt;br /&gt;
#         include fastcgi_params;&lt;br /&gt;
#         include snippets/fastcgi-php.conf;&lt;br /&gt;
#     }&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
     location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|xml)$ {&lt;br /&gt;
         try_files $uri /index.php;&lt;br /&gt;
         expires max;&lt;br /&gt;
         log_not_found off;&lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
     location = /_.gif {&lt;br /&gt;
         expires max;&lt;br /&gt;
         empty_gif;&lt;br /&gt;
     }&lt;br /&gt;
     location ^~ ^/(cache|includes|maintenance|languages|serialized|tests|images/deleted)/ {&lt;br /&gt;
         deny all;&lt;br /&gt;
     }&lt;br /&gt;
     location ^~ ^/(bin|docs|extensions|includes|maintenance|mw-config|resources|serialized|tests)/ {&lt;br /&gt;
         internal;&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
     # Security for &#039;image&#039; directory&lt;br /&gt;
     location ~* ^/images/.*.(html|htm|php|shtml)$ {&lt;br /&gt;
         types { }&lt;br /&gt;
         default_type text/plain;&lt;br /&gt;
     }&lt;br /&gt;
     # Security for &#039;image&#039; directory&lt;br /&gt;
     location ^~ /images/ {&lt;br /&gt;
         try_files $uri /index.php;&lt;br /&gt;
     }&lt;br /&gt;
    ssl_certificate /etc/letsencrypt/live/bunnfamily.nz/fullchain.pem; # m&amp;gt;&lt;br /&gt;
    ssl_certificate_key /etc/letsencrypt/live/bunnfamily.nz/privkey.pem; #&amp;gt;&lt;br /&gt;
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot&lt;br /&gt;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Simon</name></author>
	</entry>
	<entry>
		<id>https://wiki.bunnfamily.nz/index.php?title=Nginx_reverse_proxy&amp;diff=151</id>
		<title>Nginx reverse proxy</title>
		<link rel="alternate" type="text/html" href="https://wiki.bunnfamily.nz/index.php?title=Nginx_reverse_proxy&amp;diff=151"/>
		<updated>2025-05-15T04:38:00Z</updated>

		<summary type="html">&lt;p&gt;Simon: Created page with &amp;quot;The reverse proxy is set up as a conf file in /etc/nginx/conf.d/bunnfamily.nz.conf  certbot keeps the certificates: Use: &amp;lt;pre&amp;gt; sudo certbot certonly --force-renew -d bunnfamily.nz -d www.bunnfamily.nz -d chrono.bunnfamily.nz -d grafana.bunnfamily.nz -d wiki.bunnfamily.nz -d pumpcompare.aquadvanced.online -d comfyui.bunnfamily.nz -d mine.bunnfamily.nz -d bunnserver.bunnfamily.nz -d hassio.bunnfamily.nz -d node-red.bunnfamily.nz&amp;lt;/pre&amp;gt;  Mediawiki uses php and this uses a li...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The reverse proxy is set up as a conf file in /etc/nginx/conf.d/bunnfamily.nz.conf&lt;br /&gt;
&lt;br /&gt;
certbot keeps the certificates: Use:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo certbot certonly --force-renew -d bunnfamily.nz -d www.bunnfamily.nz -d chrono.bunnfamily.nz -d grafana.bunnfamily.nz -d wiki.bunnfamily.nz -d pumpcompare.aquadvanced.online -d comfyui.bunnfamily.nz -d mine.bunnfamily.nz -d bunnserver.bunnfamily.nz -d hassio.bunnfamily.nz -d node-red.bunnfamily.nz&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mediawiki uses php and this uses a link redirect to /var/run/php-fpm.sock so that I don&#039;t have to use the actual version number &amp;lt;pre&amp;gt;/var/run/php/php8.1-fpm.sock&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also note that you need to &amp;lt;pre&amp;gt;cd /var/run/php&lt;br /&gt;
sudo chown www-data:www-data *.* &amp;lt;/pre&amp;gt; &lt;br /&gt;
otherwise you will get errors in /var/log/nginx/error.log about permission errors to access php&lt;br /&gt;
&lt;br /&gt;
Prove PHP is working by going to https://wiki.bunnfamily.nz/phpinfo.php&lt;/div&gt;</summary>
		<author><name>Simon</name></author>
	</entry>
	<entry>
		<id>https://wiki.bunnfamily.nz/index.php?title=Main_Page&amp;diff=150</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.bunnfamily.nz/index.php?title=Main_Page&amp;diff=150"/>
		<updated>2025-05-15T04:27:10Z</updated>

		<summary type="html">&lt;p&gt;Simon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;This is the main repository of knowledge created over the years by Simon Bunn.&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Webhooks and Portainer]]&lt;br /&gt;
&lt;br /&gt;
[[Home Assistant]]&lt;br /&gt;
&lt;br /&gt;
[[node-red]]&lt;br /&gt;
&lt;br /&gt;
Ubuntu [[notes]]&lt;br /&gt;
&lt;br /&gt;
[[Router - setting up from fresh]]&lt;br /&gt;
&lt;br /&gt;
[[MediaWiki - enable file upload]]&lt;br /&gt;
&lt;br /&gt;
[[Lora Gateway and Nodes]]&lt;br /&gt;
&lt;br /&gt;
[[Change the media wiki password]]&lt;br /&gt;
&lt;br /&gt;
[[Jetson Orin Nano]]&lt;br /&gt;
&lt;br /&gt;
[[Front Gate]]&lt;br /&gt;
&lt;br /&gt;
[[Rebuild Windows 11 and attach to Server 2016]]&lt;br /&gt;
&lt;br /&gt;
[[Update Cubecoders AMP]]&lt;br /&gt;
&lt;br /&gt;
[[EVNEX charger]]&lt;br /&gt;
&lt;br /&gt;
[[Fix Flight Simulator]]&lt;br /&gt;
&lt;br /&gt;
[[nginx reverse proxy]]&lt;/div&gt;</summary>
		<author><name>Simon</name></author>
	</entry>
	<entry>
		<id>https://wiki.bunnfamily.nz/index.php?title=MediaWiki_-_enable_file_upload&amp;diff=149</id>
		<title>MediaWiki - enable file upload</title>
		<link rel="alternate" type="text/html" href="https://wiki.bunnfamily.nz/index.php?title=MediaWiki_-_enable_file_upload&amp;diff=149"/>
		<updated>2025-05-15T02:17:48Z</updated>

		<summary type="html">&lt;p&gt;Simon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Images are stored in /var/www/mediawiki/images&lt;br /&gt;
Go to /var/www/mediawiki and type &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo chmod -R 755 ./images/&lt;br /&gt;
sudo chown -R www-data:www-data images/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Also make sure php.ini (/etc/php/8.1/cli/php.ini) has file_uploads = on&lt;/div&gt;</summary>
		<author><name>Simon</name></author>
	</entry>
	<entry>
		<id>https://wiki.bunnfamily.nz/index.php?title=Fix_Flight_Simulator&amp;diff=148</id>
		<title>Fix Flight Simulator</title>
		<link rel="alternate" type="text/html" href="https://wiki.bunnfamily.nz/index.php?title=Fix_Flight_Simulator&amp;diff=148"/>
		<updated>2025-05-11T10:31:14Z</updated>

		<summary type="html">&lt;p&gt;Simon: Created page with &amp;quot;Win + R, this should open the run box, put this in the search bar: C:\ProgramData\NVIDIA\NGX\models  Then, go to the search bar in the upper right corner and search for or copy this name: 190_E658703&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Win + R, this should open the run box, put this in the search bar: C:\ProgramData\NVIDIA\NGX\models&lt;br /&gt;
&lt;br /&gt;
Then, go to the search bar in the upper right corner and search for or copy this name: 190_E658703&lt;/div&gt;</summary>
		<author><name>Simon</name></author>
	</entry>
	<entry>
		<id>https://wiki.bunnfamily.nz/index.php?title=Main_Page&amp;diff=147</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.bunnfamily.nz/index.php?title=Main_Page&amp;diff=147"/>
		<updated>2025-05-11T10:29:28Z</updated>

		<summary type="html">&lt;p&gt;Simon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;This is the main repository of knowledge created over the years by Simon Bunn.&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Webhooks and Portainer]]&lt;br /&gt;
&lt;br /&gt;
[[Home Assistant]]&lt;br /&gt;
&lt;br /&gt;
[[node-red]]&lt;br /&gt;
&lt;br /&gt;
Ubuntu [[notes]]&lt;br /&gt;
&lt;br /&gt;
[[Router - setting up from fresh]]&lt;br /&gt;
&lt;br /&gt;
[[MediaWiki - enable file upload]]&lt;br /&gt;
&lt;br /&gt;
[[Lora Gateway and Nodes]]&lt;br /&gt;
&lt;br /&gt;
[[Change the media wiki password]]&lt;br /&gt;
&lt;br /&gt;
[[Jetson Orin Nano]]&lt;br /&gt;
&lt;br /&gt;
[[Front Gate]]&lt;br /&gt;
&lt;br /&gt;
[[Rebuild Windows 11 and attach to Server 2016]]&lt;br /&gt;
&lt;br /&gt;
[[Update Cubecoders AMP]]&lt;br /&gt;
&lt;br /&gt;
[[EVNEX charger]]&lt;br /&gt;
&lt;br /&gt;
[[Fix Flight Simulator]]&lt;/div&gt;</summary>
		<author><name>Simon</name></author>
	</entry>
	<entry>
		<id>https://wiki.bunnfamily.nz/index.php?title=UPS&amp;diff=146</id>
		<title>UPS</title>
		<link rel="alternate" type="text/html" href="https://wiki.bunnfamily.nz/index.php?title=UPS&amp;diff=146"/>
		<updated>2025-04-14T06:14:02Z</updated>

		<summary type="html">&lt;p&gt;Simon: Undo revision 145 by Simon (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== UPS ==&lt;br /&gt;
&lt;br /&gt;
Here is my configuration.yaml for a cyberpower and the entities card setup.&lt;br /&gt;
&lt;br /&gt;
First you need to download and install the latest CyberPower Panel Business V4 at https://www.cyberpowersystems.com/products/software/power-panel-business/&lt;br /&gt;
&lt;br /&gt;
I installed this on my Windows 11 computer (IP 192.168.1.7).  I disabled Personal Edition of CyberPower in my startup services and installed Version 4 of the Business edition that I downloaded from the link above  (ppb440-setup.exe).  &lt;br /&gt;
&lt;br /&gt;
You launch CyberPower Business (username : admin , password: admin) and it should automatically find your UPS via the USB port connection.  Password changed to Sarah2025!&lt;br /&gt;
&lt;br /&gt;
I went to settings, enabled SNMP v1, and created the public and private groups and linked to 0.0.0.0 which means any computer on my network can query the snmp service.  I set these to read/write.  Open port 161 in the firewall and set for UDP inbound traffic.&lt;br /&gt;
&lt;br /&gt;
[[File:Ups1.png|1080px|center]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Secondly you need to download the latest MIB file from CyberPower at https://www.cyberpowersystems.com/products/software/mib-files/&lt;br /&gt;
&lt;br /&gt;
Note where this is saved, mine was of course in the Windows Downloads folder.  Unzip the file, mine was called MIB002-0001-10.mib and I stored it in a folder called &amp;quot;MIB&amp;quot; off the Downloads folder.  &lt;br /&gt;
&lt;br /&gt;
Use an MIB browser, I used iReasoning MIB Browser (https://www.ireasoning.com/mibbrowser.shtml)&lt;br /&gt;
&lt;br /&gt;
Install and start the iReasoning Browser.  Choose &amp;quot;File...Open...&amp;quot; and go to the folder where you stored the CyberPower MIB file and select it.   Start by selecting your ip address or localhost as the address in the top right box. In my image below you will see it is connected to &#039;localhost&#039; since I am running the iReasoning Browser on the same computer the UPS is plugged into.  If you are running this on another computer you would have to put in the IP address of the computer attached to the UPS (192.168.1.7 in my case).  Easier to just run on the same Windows 10 machine.  Note that my HA is running in Docker on a Ubuntu machine elsewhere on my network at 192.168.1.38 but I never need to enter this anywhere to get everything to work.&lt;br /&gt;
&lt;br /&gt;
It&#039;s not super intuitive but start after loading the MIB go down the tree with &#039;private...enterprises...cps...products...ups&#039; and work your way down the folder tree in the MIB file and you will see lots of OIDs you can use.  Double click a &#039;leaf&#039; on the tree and it will query the OID and return a value. The OID is listed at the bottom left and the values when you double click are shown on the right hand panel.  &lt;br /&gt;
&lt;br /&gt;
[[File:ups2.png|1080px|center]] &lt;br /&gt;
&lt;br /&gt;
You can try any of the OIDs to see which work on your UPS, most were OK on my Value II 1600E but if the OID is not supported it will just tell you that.  &lt;br /&gt;
&lt;br /&gt;
Note two things.  &lt;br /&gt;
First the OIDs from CyberPower need the &amp;quot;.0&amp;quot; at the end, you cannot use just the OID you see in a viewer.  &lt;br /&gt;
Second, look at the response data, it might be an integer; ticks (e.g. time remaining in my example below);  or a series of strings, for example the &amp;quot;Status&amp;quot;, which you can then use to develop the value_template in configuration.yaml.  I have many examples below.&lt;br /&gt;
&lt;br /&gt;
Then its time to edit the &#039;sensor&#039; section of your configuration.yaml file.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
###############################&lt;br /&gt;
#                             #&lt;br /&gt;
#            UPS              #&lt;br /&gt;
#                             #&lt;br /&gt;
###############################&lt;br /&gt;
- platform: snmp&lt;br /&gt;
  host: 192.168.1.7&lt;br /&gt;
  baseoid: .1.3.6.1.4.1.3808.1.1.1.4.2.1.0&lt;br /&gt;
  accept_errors: &#039;true&#039;&lt;br /&gt;
  community: public&lt;br /&gt;
  port: 161&lt;br /&gt;
  name: UPS Output Voltage&lt;br /&gt;
  value_template: &#039;{{ (value | int / 10 ) }}&#039;&lt;br /&gt;
  unit_of_measurement: &amp;quot;V&amp;quot;&lt;br /&gt;
- platform: snmp&lt;br /&gt;
  host: 192.168.1.7&lt;br /&gt;
  baseoid: .1.3.6.1.4.1.3808.1.1.1.1.1.1.0&lt;br /&gt;
  accept_errors: &#039;true&#039;&lt;br /&gt;
  community: public&lt;br /&gt;
  port: 161&lt;br /&gt;
  name: UPS Model&lt;br /&gt;
- platform: snmp&lt;br /&gt;
  host: 192.168.1.7&lt;br /&gt;
  baseoid: .1.3.6.1.4.1.3808.1.1.1.4.1.1.0&lt;br /&gt;
  accept_errors: &#039;true&#039;&lt;br /&gt;
  community: public&lt;br /&gt;
  port: 161&lt;br /&gt;
  name: UPS Status&lt;br /&gt;
  value_template: &amp;gt;&lt;br /&gt;
    {% set vals = {&#039;1&#039;: &#039;unknown&#039;, &#039;2&#039;:&#039;onLine&#039;, &#039;3&#039;:&#039;onBattery&#039;, &#039;4&#039;:&#039;onBoost&#039;, &#039;5&#039;:&#039;sleep&#039;, &#039;6&#039;:&#039;off&#039;, &#039;7&#039;:&#039;rebooting&#039;} %}&lt;br /&gt;
    {{vals[value]}}&lt;br /&gt;
- platform: snmp&lt;br /&gt;
  host: 192.168.1.7&lt;br /&gt;
  baseoid:  .1.3.6.1.4.1.3808.1.1.1.3.2.6.0&lt;br /&gt;
  accept_errors: &#039;true&#039;&lt;br /&gt;
  community: public&lt;br /&gt;
  port: 161&lt;br /&gt;
  name: UPS Advanced Status&lt;br /&gt;
  value_template: &amp;gt;&lt;br /&gt;
    {% set vals = {&#039;1&#039;: &#039;normal&#039;, &#039;2&#039;:&#039;Over Voltage&#039;, &#039;3&#039;:&#039;Under Voltage&#039;, &#039;4&#039;:&#039;Frequency failure&#039;, &#039;5&#039;:&#039;Blackout&#039;} %}&lt;br /&gt;
    {{vals[value]}}&lt;br /&gt;
- platform: snmp&lt;br /&gt;
  host: 192.168.1.7&lt;br /&gt;
  baseoid: .1.3.6.1.4.1.3808.1.1.1.4.1.1.0&lt;br /&gt;
  accept_errors: &#039;true&#039;&lt;br /&gt;
  community: public&lt;br /&gt;
  port: 161&lt;br /&gt;
  name: UPS Battery Status&lt;br /&gt;
  value_template: &amp;gt;&lt;br /&gt;
    {% set vals = {&#039;1&#039;: &#039;unknown&#039;, &#039;2&#039;:&#039;Normal&#039;, &#039;3&#039;:&#039;Battery Low&#039;} %}&lt;br /&gt;
    {{vals[value]}}&lt;br /&gt;
- platform: snmp&lt;br /&gt;
  host: 192.168.1.7&lt;br /&gt;
  baseoid: .1.3.6.1.4.1.3808.1.1.1.2.2.1.0&lt;br /&gt;
  accept_errors: &#039;true&#039;&lt;br /&gt;
  community: public&lt;br /&gt;
  port: 161&lt;br /&gt;
  name: UPS Battery Capacity&lt;br /&gt;
  value_template: &#039;{{ (value | float) }}&#039;&lt;br /&gt;
  unit_of_measurement: &amp;quot;%&amp;quot;&lt;br /&gt;
- platform: snmp&lt;br /&gt;
  host: 192.168.1.7&lt;br /&gt;
  baseoid:  .1.3.6.1.4.1.3808.1.1.1.4.2.3.0&lt;br /&gt;
  accept_errors: &#039;true&#039;&lt;br /&gt;
  community: public&lt;br /&gt;
  port: 161&lt;br /&gt;
  name: UPS Load&lt;br /&gt;
  value_template: &#039;{{ (value | float) }}&#039;&lt;br /&gt;
  unit_of_measurement: &amp;quot;%&amp;quot;&lt;br /&gt;
- platform: snmp&lt;br /&gt;
  host: 192.168.1.7&lt;br /&gt;
  baseoid:  .1.3.6.1.4.1.3808.1.1.1.2.2.2.0&lt;br /&gt;
  accept_errors: &#039;true&#039;&lt;br /&gt;
  community: public&lt;br /&gt;
  port: 161&lt;br /&gt;
  name: UPS Battery Voltage&lt;br /&gt;
  value_template: &#039;{{ (value | int / 10 ) }}&#039;&lt;br /&gt;
  unit_of_measurement: &amp;quot;V&amp;quot;&lt;br /&gt;
- platform: snmp&lt;br /&gt;
  host: 192.168.1.7&lt;br /&gt;
  baseoid: .1.3.6.1.4.1.3808.1.1.1.2.2.4.0&lt;br /&gt;
  accept_errors: &#039;true&#039;&lt;br /&gt;
  community: public&lt;br /&gt;
  port: 161&lt;br /&gt;
  name: UPS Run Time Remaining&lt;br /&gt;
  value_template: &amp;gt;-&lt;br /&gt;
    {% set time = (value | int) | int %}&lt;br /&gt;
    {% set minutes = ((time % 360000) / 6000) | int%}&lt;br /&gt;
    {% set hours = ((time % 8640000) / 360000) | int %}&lt;br /&gt;
    {% set days = (time / 8640000) | int %}&lt;br /&gt;
    {%- if time &amp;lt; 60 -%}&lt;br /&gt;
      Less then 1 min&lt;br /&gt;
      {%- else -%}&lt;br /&gt;
      {%- if days &amp;gt; 0 -%}&lt;br /&gt;
        {{ days }}d&lt;br /&gt;
      {%- endif -%}&lt;br /&gt;
      {%- if hours &amp;gt; 0 -%}&lt;br /&gt;
        {%- if days &amp;gt; 0 -%}&lt;br /&gt;
          {{ &#039; &#039; }}&lt;br /&gt;
        {%- endif -%}&lt;br /&gt;
        {{ hours }}hr&lt;br /&gt;
      {%- endif -%}&lt;br /&gt;
      {%- if minutes &amp;gt; 0 -%}&lt;br /&gt;
        {%- if days &amp;gt; 0 or hours &amp;gt; 0 -%}&lt;br /&gt;
          {{ &#039; &#039; }}&lt;br /&gt;
        {%- endif -%}&lt;br /&gt;
        {{ minutes }}min&lt;br /&gt;
      {%- endif -%}&lt;br /&gt;
    {%- endif -%}&lt;br /&gt;
- platform: template&lt;br /&gt;
  sensors:&lt;br /&gt;
    ups_battery_capacity:&lt;br /&gt;
      unit_of_measurement: &amp;quot;%&amp;quot;&lt;br /&gt;
      value_template: &amp;quot;{{ states(&#039;sensor.ups_battery_capacity_2&#039;) }}&amp;quot;&lt;br /&gt;
      friendly_name: &amp;quot;Battery Capacity&amp;quot;&lt;br /&gt;
      icon_template: &amp;gt;&lt;br /&gt;
        {% set level = states(&#039;sensor.ups_battery_capacity_2&#039;) | float | multiply(0.1) | round(0,&amp;quot;floor&amp;quot;) | multiply(10)| round(0) %}&lt;br /&gt;
        {% if is_state(&#039;sensor.ups_status&#039;, &#039;onLine&#039;) and is_state(&#039;sensor.ups_battery_capacity_2&#039; , &#039;100.0&#039; ) %}&lt;br /&gt;
          mdi:battery&lt;br /&gt;
        {% elif is_state(&#039;sensor.ups_status&#039;, &#039;onLine&#039;)  %}&lt;br /&gt;
          mdi:battery-charging-{{level}}&lt;br /&gt;
        {% else %}&lt;br /&gt;
          mdi:battery-{{level}}&lt;br /&gt;
        {% endif %}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that the template at the bottom creates a smart icon.  It shows the level of the battery and the icon has the &#039;flash&#039; symbol on the right if it is charging and does not have the flash if at 100% or running on batteries and discharging.  (Thanks to  RobC and AndyVR on Discord for this icon code)&lt;br /&gt;
&lt;br /&gt;
the entities card setup&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
type: entities&lt;br /&gt;
entities:&lt;br /&gt;
  - entity: sensor.ups_model&lt;br /&gt;
    name: Model&lt;br /&gt;
    icon: mdi:power-plug&lt;br /&gt;
  - entity: sensor.ups_status&lt;br /&gt;
    name: Status&lt;br /&gt;
    icon: mdi:power&lt;br /&gt;
  - entity: sensor.ups_battery_capacity&lt;br /&gt;
    name: Battery Capacity&lt;br /&gt;
  - entity: sensor.ups_run_time_remaining&lt;br /&gt;
    name: Run time remaining&lt;br /&gt;
    icon: mdi:av-timer&lt;br /&gt;
  - entity: sensor.ups_battery_status&lt;br /&gt;
    name: Battery Status&lt;br /&gt;
    icon: mdi:car-battery&lt;br /&gt;
  - entity: sensor.ups_battery_voltage&lt;br /&gt;
    name: Battery Voltage&lt;br /&gt;
    icon: mdi:car-battery&lt;br /&gt;
  - entity: sensor.ups_output_voltage&lt;br /&gt;
    name: Output Volts&lt;br /&gt;
    icon: mdi:power-socket-au&lt;br /&gt;
  - entity: sensor.ups_advanced_status&lt;br /&gt;
    name: Advanced status&lt;br /&gt;
  - entity: sensor.ups_load&lt;br /&gt;
    icon: mdi:signal-cellular-3&lt;br /&gt;
header:&lt;br /&gt;
  type: picture&lt;br /&gt;
  image: local/ups5.jpg&lt;br /&gt;
  tap_action:&lt;br /&gt;
    action: none&lt;br /&gt;
  hold_action:&lt;br /&gt;
    action: none&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and the card itself&lt;br /&gt;
Here is my configuration.yaml for a cyberpower and the entities card setup.&lt;br /&gt;
&lt;br /&gt;
First you need to download and install the latest CyberPower Panel Business V4 at https://www.cyberpowersystems.com/products/software/power-panel-business/&lt;br /&gt;
&lt;br /&gt;
I installed this on my Windows 10 computer (IP 192.168.1.7).  I disabled Personal Edition of CyberPower in my startup services and installed Version 4 of the Business edition that I downloaded from the link above  (ppb440-setup.exe).  &lt;br /&gt;
&lt;br /&gt;
You launch CyberPower Business (username : admin , password: admin) and it should automatically find your UPS via the USB port connection.&lt;br /&gt;
&lt;br /&gt;
I went to settings, enabled SNMP v1, and created the public and private groups and linked to 0.0.0.0 which means any computer on my network can query the snmp service.  I set these to read/write&lt;br /&gt;
&lt;br /&gt;
[[File:ups3.png]] &lt;br /&gt;
&lt;br /&gt;
Note in the image above the battery is at 94% and charging (the flash icon to the right of the battery). This is using the icon created in the ‘sensors’ template&lt;br /&gt;
&lt;br /&gt;
https://community.home-assistant.io/t/monitor-cyberpower-ups-plugged-into-windows-machine-via-usb&lt;/div&gt;</summary>
		<author><name>Simon</name></author>
	</entry>
	<entry>
		<id>https://wiki.bunnfamily.nz/index.php?title=UPS&amp;diff=145</id>
		<title>UPS</title>
		<link rel="alternate" type="text/html" href="https://wiki.bunnfamily.nz/index.php?title=UPS&amp;diff=145"/>
		<updated>2025-04-14T06:05:33Z</updated>

		<summary type="html">&lt;p&gt;Simon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== UPS ==&lt;br /&gt;
&lt;br /&gt;
Here is my configuration.yaml for a cyberpower and the entities card setup.&lt;br /&gt;
&lt;br /&gt;
First you need to download and install the latest CyberPower Panel Business V4 at https://www.cyberpowersystems.com/products/software/power-panel-business/&lt;br /&gt;
&lt;br /&gt;
I installed this on my Windows 11 computer (IP 192.168.1.7).  I disabled Personal Edition of CyberPower in my startup services and installed Version 4 of the Business edition that I downloaded from the link above  (ppb440-setup.exe).  &lt;br /&gt;
&lt;br /&gt;
You launch CyberPower Business (username : admin , password: admin) and it should automatically find your UPS via the USB port connection.  Password changed to Sarah2025!&lt;br /&gt;
&lt;br /&gt;
I went to settings, enabled SNMP v1, and created the public and private groups and linked to 0.0.0.0 which means any computer on my network can query the snmp service.  I set these to read/write.  Open port 161 in the firewall and set for UDP inbound traffic.&lt;br /&gt;
&lt;br /&gt;
[[File:Ups1.png|1080px|center]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Secondly you need to download the latest MIB file from CyberPower at https://www.cyberpowersystems.com/products/software/mib-files/&lt;br /&gt;
&lt;br /&gt;
Note where this is saved, mine was of course in the Windows Downloads folder.  Unzip the file, mine was called MIB002-0001-10.mib and I stored it in a folder called &amp;quot;MIB&amp;quot; off the Downloads folder.  &lt;br /&gt;
&lt;br /&gt;
Use an MIB browser, I used iReasoning MIB Browser (https://www.ireasoning.com/mibbrowser.shtml)&lt;br /&gt;
&lt;br /&gt;
Install and start the iReasoning Browser.  Choose &amp;quot;File...Open...&amp;quot; and go to the folder where you stored the CyberPower MIB file and select it.   Start by selecting your ip address or localhost as the address in the top right box. In my image below you will see it is connected to &#039;localhost&#039; since I am running the iReasoning Browser on the same computer the UPS is plugged into.  If you are running this on another computer you would have to put in the IP address of the computer attached to the UPS (192.168.1.7 in my case).  Easier to just run on the same Windows 10 machine.  Note that my HA is running in Docker on a Ubuntu machine elsewhere on my network at 192.168.1.38 but I never need to enter this anywhere to get everything to work.&lt;br /&gt;
&lt;br /&gt;
It&#039;s not super intuitive but start after loading the MIB go down the tree with &#039;private...enterprises...cps...products...ups&#039; and work your way down the folder tree in the MIB file and you will see lots of OIDs you can use.  Double click a &#039;leaf&#039; on the tree and it will query the OID and return a value. The OID is listed at the bottom left and the values when you double click are shown on the right hand panel.  &lt;br /&gt;
&lt;br /&gt;
[[File:ups2.png|1080px|center]] &lt;br /&gt;
&lt;br /&gt;
You can try any of the OIDs to see which work on your UPS, most were OK on my Value II 1600E but if the OID is not supported it will just tell you that.  &lt;br /&gt;
&lt;br /&gt;
Note two things.  &lt;br /&gt;
First the OIDs from CyberPower need the &amp;quot;.0&amp;quot; at the end, you cannot use just the OID you see in a viewer.  &lt;br /&gt;
Second, look at the response data, it might be an integer; ticks (e.g. time remaining in my example below);  or a series of strings, for example the &amp;quot;Status&amp;quot;, which you can then use to develop the value_template in configuration.yaml.  I have many examples below.&lt;br /&gt;
&lt;br /&gt;
Then its time to edit the &#039;sensor&#039; section of your configuration.yaml file.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
###############################&lt;br /&gt;
#                             #&lt;br /&gt;
#            UPS              #&lt;br /&gt;
#                             #&lt;br /&gt;
###############################&lt;br /&gt;
- platform: snmp&lt;br /&gt;
  host: 192.168.1.7&lt;br /&gt;
  baseoid: .1.3.6.1.4.1.3808.1.1.1.4.2.1.0&lt;br /&gt;
  accept_errors: &#039;true&#039;&lt;br /&gt;
  community: public&lt;br /&gt;
  port: 161&lt;br /&gt;
  name: UPS Output Voltage&lt;br /&gt;
  value_template: &#039;{{ (value | int / 10 ) }}&#039;&lt;br /&gt;
  unit_of_measurement: &amp;quot;V&amp;quot;&lt;br /&gt;
- platform: snmp&lt;br /&gt;
  host: 192.168.1.7&lt;br /&gt;
  baseoid: .1.3.6.1.4.1.3808.1.1.1.1.1.1.0&lt;br /&gt;
  accept_errors: &#039;true&#039;&lt;br /&gt;
  community: public&lt;br /&gt;
  port: 161&lt;br /&gt;
  name: UPS Model&lt;br /&gt;
- platform: snmp&lt;br /&gt;
  host: 192.168.1.7&lt;br /&gt;
  baseoid: .1.3.6.1.4.1.3808.1.1.1.4.1.1.0&lt;br /&gt;
  accept_errors: &#039;true&#039;&lt;br /&gt;
  community: public&lt;br /&gt;
  port: 161&lt;br /&gt;
  name: UPS Status&lt;br /&gt;
  value_template: &amp;gt;&lt;br /&gt;
    {% set vals = {&#039;1&#039;: &#039;unknown&#039;, &#039;2&#039;:&#039;onLine&#039;, &#039;3&#039;:&#039;onBattery&#039;, &#039;4&#039;:&#039;onBoost&#039;, &#039;5&#039;:&#039;sleep&#039;, &#039;6&#039;:&#039;off&#039;, &#039;7&#039;:&#039;rebooting&#039;} %}&lt;br /&gt;
    {{vals[value]}}&lt;br /&gt;
- platform: snmp&lt;br /&gt;
  host: 192.168.1.7&lt;br /&gt;
  baseoid:  .1.3.6.1.4.1.3808.1.1.1.3.2.6.0&lt;br /&gt;
  accept_errors: &#039;true&#039;&lt;br /&gt;
  community: public&lt;br /&gt;
  port: 161&lt;br /&gt;
  name: UPS Advanced Status&lt;br /&gt;
  value_template: &amp;gt;&lt;br /&gt;
    {% set vals = {&#039;1&#039;: &#039;normal&#039;, &#039;2&#039;:&#039;Over Voltage&#039;, &#039;3&#039;:&#039;Under Voltage&#039;, &#039;4&#039;:&#039;Frequency failure&#039;, &#039;5&#039;:&#039;Blackout&#039;} %}&lt;br /&gt;
    {{vals[value]}}&lt;br /&gt;
- platform: snmp&lt;br /&gt;
  host: 192.168.1.7&lt;br /&gt;
  baseoid: .1.3.6.1.4.1.3808.1.1.1.4.1.1.0&lt;br /&gt;
  accept_errors: &#039;true&#039;&lt;br /&gt;
  community: public&lt;br /&gt;
  port: 161&lt;br /&gt;
  name: UPS Battery Status&lt;br /&gt;
  value_template: &amp;gt;&lt;br /&gt;
    {% set vals = {&#039;1&#039;: &#039;unknown&#039;, &#039;2&#039;:&#039;Normal&#039;, &#039;3&#039;:&#039;Battery Low&#039;} %}&lt;br /&gt;
    {{vals[value]}}&lt;br /&gt;
- platform: snmp&lt;br /&gt;
  host: 192.168.1.7&lt;br /&gt;
  baseoid: .1.3.6.1.4.1.3808.1.1.1.2.2.1.0&lt;br /&gt;
  accept_errors: &#039;true&#039;&lt;br /&gt;
  community: public&lt;br /&gt;
  port: 161&lt;br /&gt;
  name: UPS Battery Capacity&lt;br /&gt;
  value_template: &#039;{{ (value | float) }}&#039;&lt;br /&gt;
  unit_of_measurement: &amp;quot;%&amp;quot;&lt;br /&gt;
- platform: snmp&lt;br /&gt;
  host: 192.168.1.7&lt;br /&gt;
  baseoid:  .1.3.6.1.4.1.3808.1.1.1.4.2.3.0&lt;br /&gt;
  accept_errors: &#039;true&#039;&lt;br /&gt;
  community: public&lt;br /&gt;
  port: 161&lt;br /&gt;
  name: UPS Load&lt;br /&gt;
  value_template: &#039;{{ (value | float) }}&#039;&lt;br /&gt;
  unit_of_measurement: &amp;quot;%&amp;quot;&lt;br /&gt;
- platform: snmp&lt;br /&gt;
  host: 192.168.1.7&lt;br /&gt;
  baseoid:  .1.3.6.1.4.1.3808.1.1.1.2.2.2.0&lt;br /&gt;
  accept_errors: &#039;true&#039;&lt;br /&gt;
  community: public&lt;br /&gt;
  port: 161&lt;br /&gt;
  name: UPS Battery Voltage&lt;br /&gt;
  value_template: &#039;{{ (value | int / 10 ) }}&#039;&lt;br /&gt;
  unit_of_measurement: &amp;quot;V&amp;quot;&lt;br /&gt;
- platform: snmp&lt;br /&gt;
  host: 192.168.1.7&lt;br /&gt;
  baseoid: .1.3.6.1.4.1.3808.1.1.1.2.2.4.0&lt;br /&gt;
  accept_errors: &#039;true&#039;&lt;br /&gt;
  community: public&lt;br /&gt;
  port: 161&lt;br /&gt;
  name: UPS Run Time Remaining&lt;br /&gt;
  value_template: &amp;gt;-&lt;br /&gt;
    {% set time = (value | int) | int %}&lt;br /&gt;
    {% set minutes = ((time % 360000) / 6000) | int%}&lt;br /&gt;
    {% set hours = ((time % 8640000) / 360000) | int %}&lt;br /&gt;
    {% set days = (time / 8640000) | int %}&lt;br /&gt;
    {%- if time &amp;lt; 60 -%}&lt;br /&gt;
      Less then 1 min&lt;br /&gt;
      {%- else -%}&lt;br /&gt;
      {%- if days &amp;gt; 0 -%}&lt;br /&gt;
        {{ days }}d&lt;br /&gt;
      {%- endif -%}&lt;br /&gt;
      {%- if hours &amp;gt; 0 -%}&lt;br /&gt;
        {%- if days &amp;gt; 0 -%}&lt;br /&gt;
          {{ &#039; &#039; }}&lt;br /&gt;
        {%- endif -%}&lt;br /&gt;
        {{ hours }}hr&lt;br /&gt;
      {%- endif -%}&lt;br /&gt;
      {%- if minutes &amp;gt; 0 -%}&lt;br /&gt;
        {%- if days &amp;gt; 0 or hours &amp;gt; 0 -%}&lt;br /&gt;
          {{ &#039; &#039; }}&lt;br /&gt;
        {%- endif -%}&lt;br /&gt;
        {{ minutes }}min&lt;br /&gt;
      {%- endif -%}&lt;br /&gt;
    {%- endif -%}&lt;br /&gt;
- platform: template&lt;br /&gt;
  sensors:&lt;br /&gt;
    ups_battery_capacity:&lt;br /&gt;
      unit_of_measurement: &amp;quot;%&amp;quot;&lt;br /&gt;
      value_template: &amp;quot;{{ states(&#039;sensor.ups_battery_capacity&#039;) }}&amp;quot;&lt;br /&gt;
      friendly_name: &amp;quot;Battery Capacity&amp;quot;&lt;br /&gt;
      icon_template: &amp;gt;&lt;br /&gt;
        {% set level = states(&#039;sensor.ups_battery_capacity&#039;) | float | multiply(0.1) | round(0,&amp;quot;floor&amp;quot;) | multiply(10)| round(0) %}&lt;br /&gt;
        {% if is_state(&#039;sensor.ups_status&#039;, &#039;onLine&#039;) and is_state(&#039;sensor.ups_battery_capacity&#039; , &#039;100.0&#039; ) %}&lt;br /&gt;
          mdi:battery&lt;br /&gt;
        {% elif is_state(&#039;sensor.ups_status&#039;, &#039;onLine&#039;)  %}&lt;br /&gt;
          mdi:battery-charging-{{level}}&lt;br /&gt;
        {% else %}&lt;br /&gt;
          mdi:battery-{{level}}&lt;br /&gt;
        {% endif %}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that the template at the bottom creates a smart icon.  It shows the level of the battery and the icon has the &#039;flash&#039; symbol on the right if it is charging and does not have the flash if at 100% or running on batteries and discharging.  (Thanks to  RobC and AndyVR on Discord for this icon code)&lt;br /&gt;
&lt;br /&gt;
the entities card setup&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
type: entities&lt;br /&gt;
entities:&lt;br /&gt;
  - entity: sensor.ups_model&lt;br /&gt;
    name: Model&lt;br /&gt;
    icon: mdi:power-plug&lt;br /&gt;
  - entity: sensor.ups_status&lt;br /&gt;
    name: Status&lt;br /&gt;
    icon: mdi:power&lt;br /&gt;
  - entity: sensor.ups_battery_capacity&lt;br /&gt;
    name: Battery Capacity&lt;br /&gt;
  - entity: sensor.ups_run_time_remaining&lt;br /&gt;
    name: Run time remaining&lt;br /&gt;
    icon: mdi:av-timer&lt;br /&gt;
  - entity: sensor.ups_battery_status&lt;br /&gt;
    name: Battery Status&lt;br /&gt;
    icon: mdi:car-battery&lt;br /&gt;
  - entity: sensor.ups_battery_voltage&lt;br /&gt;
    name: Battery Voltage&lt;br /&gt;
    icon: mdi:car-battery&lt;br /&gt;
  - entity: sensor.ups_output_voltage&lt;br /&gt;
    name: Output Volts&lt;br /&gt;
    icon: mdi:power-socket-au&lt;br /&gt;
  - entity: sensor.ups_advanced_status&lt;br /&gt;
    name: Advanced status&lt;br /&gt;
  - entity: sensor.ups_load&lt;br /&gt;
    icon: mdi:signal-cellular-3&lt;br /&gt;
header:&lt;br /&gt;
  type: picture&lt;br /&gt;
  image: local/ups5.jpg&lt;br /&gt;
  tap_action:&lt;br /&gt;
    action: none&lt;br /&gt;
  hold_action:&lt;br /&gt;
    action: none&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and the card itself&lt;br /&gt;
Here is my configuration.yaml for a cyberpower and the entities card setup.&lt;br /&gt;
&lt;br /&gt;
First you need to download and install the latest CyberPower Panel Business V4 at https://www.cyberpowersystems.com/products/software/power-panel-business/&lt;br /&gt;
&lt;br /&gt;
I installed this on my Windows 10 computer (IP 192.168.1.7).  I disabled Personal Edition of CyberPower in my startup services and installed Version 4 of the Business edition that I downloaded from the link above  (ppb440-setup.exe).  &lt;br /&gt;
&lt;br /&gt;
You launch CyberPower Business (username : admin , password: admin) and it should automatically find your UPS via the USB port connection.&lt;br /&gt;
&lt;br /&gt;
I went to settings, enabled SNMP v1, and created the public and private groups and linked to 0.0.0.0 which means any computer on my network can query the snmp service.  I set these to read/write&lt;br /&gt;
&lt;br /&gt;
[[File:ups3.png]] &lt;br /&gt;
&lt;br /&gt;
Note in the image above the battery is at 94% and charging (the flash icon to the right of the battery). This is using the icon created in the ‘sensors’ template&lt;br /&gt;
&lt;br /&gt;
https://community.home-assistant.io/t/monitor-cyberpower-ups-plugged-into-windows-machine-via-usb&lt;/div&gt;</summary>
		<author><name>Simon</name></author>
	</entry>
	<entry>
		<id>https://wiki.bunnfamily.nz/index.php?title=EVNEX_charger&amp;diff=144</id>
		<title>EVNEX charger</title>
		<link rel="alternate" type="text/html" href="https://wiki.bunnfamily.nz/index.php?title=EVNEX_charger&amp;diff=144"/>
		<updated>2025-04-14T05:29:59Z</updated>

		<summary type="html">&lt;p&gt;Simon: Created page with &amp;quot;He will need to set his OCPPEndPoint to wss://192.168.1.22:9000.  The port setting is no longer used.  He will also need to setup basic auth on his server.&amp;lt;br&amp;gt; If he uses ws://192.168.1.22:9000, then there will be no encryption and can use a tool like Wireshark on the server end to see the connection being established and any failure response.&amp;lt;br&amp;gt;     Again, the first most important thing is that the charger has a working network connection.&amp;lt;br&amp;gt;  I assume that it is on W...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;He will need to set his OCPPEndPoint to wss://192.168.1.22:9000.  The port setting is no longer used.  He will also need to setup basic auth on his server.&amp;lt;br&amp;gt;&lt;br /&gt;
If he uses ws://192.168.1.22:9000, then there will be no encryption and can use a tool like Wireshark on the server end to see the connection being established and any failure response.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Again, the first most important thing is that the charger has a working network connection.&amp;lt;br&amp;gt;  I assume that it is on WiFi or Ethernet given that the OCPPEndPoint IP address is local.  The blue light should be flashing fast (about twice a second).&lt;/div&gt;</summary>
		<author><name>Simon</name></author>
	</entry>
	<entry>
		<id>https://wiki.bunnfamily.nz/index.php?title=Main_Page&amp;diff=143</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.bunnfamily.nz/index.php?title=Main_Page&amp;diff=143"/>
		<updated>2025-04-14T05:29:15Z</updated>

		<summary type="html">&lt;p&gt;Simon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;This is the main repository of knowledge created over the years by Simon Bunn.&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Webhooks and Portainer]]&lt;br /&gt;
&lt;br /&gt;
[[Home Assistant]]&lt;br /&gt;
&lt;br /&gt;
[[node-red]]&lt;br /&gt;
&lt;br /&gt;
Ubuntu [[notes]]&lt;br /&gt;
&lt;br /&gt;
[[Router - setting up from fresh]]&lt;br /&gt;
&lt;br /&gt;
[[MediaWiki - enable file upload]]&lt;br /&gt;
&lt;br /&gt;
[[Lora Gateway and Nodes]]&lt;br /&gt;
&lt;br /&gt;
[[Change the media wiki password]]&lt;br /&gt;
&lt;br /&gt;
[[Jetson Orin Nano]]&lt;br /&gt;
&lt;br /&gt;
[[Front Gate]]&lt;br /&gt;
&lt;br /&gt;
[[Rebuild Windows 11 and attach to Server 2016]]&lt;br /&gt;
&lt;br /&gt;
[[Update Cubecoders AMP]]&lt;br /&gt;
&lt;br /&gt;
[[EVNEX charger]]&lt;/div&gt;</summary>
		<author><name>Simon</name></author>
	</entry>
	<entry>
		<id>https://wiki.bunnfamily.nz/index.php?title=Update_Cubecoders_AMP&amp;diff=142</id>
		<title>Update Cubecoders AMP</title>
		<link rel="alternate" type="text/html" href="https://wiki.bunnfamily.nz/index.php?title=Update_Cubecoders_AMP&amp;diff=142"/>
		<updated>2025-04-13T21:22:55Z</updated>

		<summary type="html">&lt;p&gt;Simon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt upgrade ampinstmgr&lt;br /&gt;
sudo su -l amp&lt;br /&gt;
ampinstmgr upgradeall&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ssh  192.168.1.127 Machine calls itself Mi,  with password MineNero2023? &amp;lt;br&amp;gt;&lt;br /&gt;
keylock uses Sarah2023? as password &amp;lt;br&amp;gt;&lt;br /&gt;
use &#039;sarah&#039; as username and &#039;MineNero2025!&#039; as password for RDP &amp;lt;br&amp;gt;&lt;br /&gt;
AMP uses &#039;ben&#039; as username and &#039;MineNero2020?&#039; as password  &amp;lt;br&amp;gt;&lt;br /&gt;
CubeCoders License Key : be35257f-6897-409e-8347-eb5648ccb9ae &amp;lt;br&amp;gt;&lt;br /&gt;
CubeCoder McMyAdmin key: 5b582a52-9574-4d04-b8c9-82ac2761dc5e &amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Simon</name></author>
	</entry>
	<entry>
		<id>https://wiki.bunnfamily.nz/index.php?title=Update_Cubecoders_AMP&amp;diff=141</id>
		<title>Update Cubecoders AMP</title>
		<link rel="alternate" type="text/html" href="https://wiki.bunnfamily.nz/index.php?title=Update_Cubecoders_AMP&amp;diff=141"/>
		<updated>2025-04-13T21:22:40Z</updated>

		<summary type="html">&lt;p&gt;Simon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt upgrade ampinstmgr&lt;br /&gt;
sudo su -l amp&lt;br /&gt;
ampinstmgr upgradeall&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ssh  192.168.1.127 Machine calls itself Mi,  with password MineNero2023? &amp;lt;br&amp;gt;&lt;br /&gt;
keylock uses Sarah2023? as password&lt;br /&gt;
use &#039;sarah&#039; as username and &#039;MineNero2025!&#039; as password for RDP&lt;br /&gt;
AMP uses &#039;ben&#039; as username and &#039;MineNero2020?&#039; as password &lt;br /&gt;
CubeCoders License Key : be35257f-6897-409e-8347-eb5648ccb9ae&lt;br /&gt;
CubeCoder McMyAdmin key: 5b582a52-9574-4d04-b8c9-82ac2761dc5e&lt;/div&gt;</summary>
		<author><name>Simon</name></author>
	</entry>
	<entry>
		<id>https://wiki.bunnfamily.nz/index.php?title=Update_Cubecoders_AMP&amp;diff=140</id>
		<title>Update Cubecoders AMP</title>
		<link rel="alternate" type="text/html" href="https://wiki.bunnfamily.nz/index.php?title=Update_Cubecoders_AMP&amp;diff=140"/>
		<updated>2025-04-13T21:22:28Z</updated>

		<summary type="html">&lt;p&gt;Simon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt upgrade ampinstmgr&lt;br /&gt;
sudo su -l amp&lt;br /&gt;
ampinstmgr upgradeall&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ssh  192.168.1.127 Machine calls itself Mi,  with password MineNero2023?&lt;br /&gt;
keylock uses Sarah2023? as password&lt;br /&gt;
use &#039;sarah&#039; as username and &#039;MineNero2025!&#039; as password for RDP&lt;br /&gt;
AMP uses &#039;ben&#039; as username and &#039;MineNero2020?&#039; as password &lt;br /&gt;
CubeCoders License Key : be35257f-6897-409e-8347-eb5648ccb9ae&lt;br /&gt;
CubeCoder McMyAdmin key: 5b582a52-9574-4d04-b8c9-82ac2761dc5e&lt;/div&gt;</summary>
		<author><name>Simon</name></author>
	</entry>
	<entry>
		<id>https://wiki.bunnfamily.nz/index.php?title=Update_Cubecoders_AMP&amp;diff=139</id>
		<title>Update Cubecoders AMP</title>
		<link rel="alternate" type="text/html" href="https://wiki.bunnfamily.nz/index.php?title=Update_Cubecoders_AMP&amp;diff=139"/>
		<updated>2025-04-13T21:22:16Z</updated>

		<summary type="html">&lt;p&gt;Simon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt upgrade ampinstmgr&lt;br /&gt;
sudo su -l amp&lt;br /&gt;
ampinstmgr upgradeall&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
****************************************&lt;br /&gt;
*         Minecraft                    *&lt;br /&gt;
****************************************&lt;br /&gt;
ssh  192.168.1.127 Machine calls itself Mi,  with password MineNero2023?&lt;br /&gt;
keylock uses Sarah2023? as password&lt;br /&gt;
use &#039;sarah&#039; as username and &#039;MineNero2025!&#039; as password for RDP&lt;br /&gt;
AMP uses &#039;ben&#039; as username and &#039;MineNero2020?&#039; as password &lt;br /&gt;
CubeCoders License Key : be35257f-6897-409e-8347-eb5648ccb9ae&lt;br /&gt;
CubeCoder McMyAdmin key: 5b582a52-9574-4d04-b8c9-82ac2761dc5e&lt;/div&gt;</summary>
		<author><name>Simon</name></author>
	</entry>
	<entry>
		<id>https://wiki.bunnfamily.nz/index.php?title=Update_Cubecoders_AMP&amp;diff=138</id>
		<title>Update Cubecoders AMP</title>
		<link rel="alternate" type="text/html" href="https://wiki.bunnfamily.nz/index.php?title=Update_Cubecoders_AMP&amp;diff=138"/>
		<updated>2025-04-13T21:07:06Z</updated>

		<summary type="html">&lt;p&gt;Simon: Created page with &amp;quot;&amp;lt;pre&amp;gt; sudo apt upgrade ampinstmgr sudo su -l amp ampinstmgr upgradeall&amp;lt;/pre&amp;gt;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt upgrade ampinstmgr&lt;br /&gt;
sudo su -l amp&lt;br /&gt;
ampinstmgr upgradeall&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Simon</name></author>
	</entry>
	<entry>
		<id>https://wiki.bunnfamily.nz/index.php?title=Main_Page&amp;diff=137</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.bunnfamily.nz/index.php?title=Main_Page&amp;diff=137"/>
		<updated>2025-04-13T21:05:37Z</updated>

		<summary type="html">&lt;p&gt;Simon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;This is the main repository of knowledge created over the years by Simon Bunn.&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Webhooks and Portainer]]&lt;br /&gt;
&lt;br /&gt;
[[Home Assistant]]&lt;br /&gt;
&lt;br /&gt;
[[node-red]]&lt;br /&gt;
&lt;br /&gt;
Ubuntu [[notes]]&lt;br /&gt;
&lt;br /&gt;
[[Router - setting up from fresh]]&lt;br /&gt;
&lt;br /&gt;
[[MediaWiki - enable file upload]]&lt;br /&gt;
&lt;br /&gt;
[[Lora Gateway and Nodes]]&lt;br /&gt;
&lt;br /&gt;
[[Change the media wiki password]]&lt;br /&gt;
&lt;br /&gt;
[[Jetson Orin Nano]]&lt;br /&gt;
&lt;br /&gt;
[[Front Gate]]&lt;br /&gt;
&lt;br /&gt;
[[Rebuild Windows 11 and attach to Server 2016]]&lt;br /&gt;
&lt;br /&gt;
[[Update Cubecoders AMP]]&lt;/div&gt;</summary>
		<author><name>Simon</name></author>
	</entry>
	<entry>
		<id>https://wiki.bunnfamily.nz/index.php?title=UPS&amp;diff=136</id>
		<title>UPS</title>
		<link rel="alternate" type="text/html" href="https://wiki.bunnfamily.nz/index.php?title=UPS&amp;diff=136"/>
		<updated>2025-03-03T09:03:35Z</updated>

		<summary type="html">&lt;p&gt;Simon: /* UPS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== UPS ==&lt;br /&gt;
&lt;br /&gt;
Here is my configuration.yaml for a cyberpower and the entities card setup.&lt;br /&gt;
&lt;br /&gt;
First you need to download and install the latest CyberPower Panel Business V4 at https://www.cyberpowersystems.com/products/software/power-panel-business/&lt;br /&gt;
&lt;br /&gt;
I installed this on my Windows 11 computer (IP 192.168.1.7).  I disabled Personal Edition of CyberPower in my startup services and installed Version 4 of the Business edition that I downloaded from the link above  (ppb440-setup.exe).  &lt;br /&gt;
&lt;br /&gt;
You launch CyberPower Business (username : admin , password: admin) and it should automatically find your UPS via the USB port connection.  Password changed to Sarah2025!&lt;br /&gt;
&lt;br /&gt;
I went to settings, enabled SNMP v1, and created the public and private groups and linked to 0.0.0.0 which means any computer on my network can query the snmp service.  I set these to read/write.  Open port 161 in the firewall and set for UDP inbound traffic.&lt;br /&gt;
&lt;br /&gt;
[[File:Ups1.png|1080px|center]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Secondly you need to download the latest MIB file from CyberPower at https://www.cyberpowersystems.com/products/software/mib-files/&lt;br /&gt;
&lt;br /&gt;
Note where this is saved, mine was of course in the Windows Downloads folder.  Unzip the file, mine was called MIB002-0001-10.mib and I stored it in a folder called &amp;quot;MIB&amp;quot; off the Downloads folder.  &lt;br /&gt;
&lt;br /&gt;
Use an MIB browser, I used iReasoning MIB Browser (https://www.ireasoning.com/mibbrowser.shtml)&lt;br /&gt;
&lt;br /&gt;
Install and start the iReasoning Browser.  Choose &amp;quot;File...Open...&amp;quot; and go to the folder where you stored the CyberPower MIB file and select it.   Start by selecting your ip address or localhost as the address in the top right box. In my image below you will see it is connected to &#039;localhost&#039; since I am running the iReasoning Browser on the same computer the UPS is plugged into.  If you are running this on another computer you would have to put in the IP address of the computer attached to the UPS (192.168.1.7 in my case).  Easier to just run on the same Windows 10 machine.  Note that my HA is running in Docker on a Ubuntu machine elsewhere on my network at 192.168.1.38 but I never need to enter this anywhere to get everything to work.&lt;br /&gt;
&lt;br /&gt;
It&#039;s not super intuitive but start after loading the MIB go down the tree with &#039;private...enterprises...cps...products...ups&#039; and work your way down the folder tree in the MIB file and you will see lots of OIDs you can use.  Double click a &#039;leaf&#039; on the tree and it will query the OID and return a value. The OID is listed at the bottom left and the values when you double click are shown on the right hand panel.  &lt;br /&gt;
&lt;br /&gt;
[[File:ups2.png|1080px|center]] &lt;br /&gt;
&lt;br /&gt;
You can try any of the OIDs to see which work on your UPS, most were OK on my Value II 1600E but if the OID is not supported it will just tell you that.  &lt;br /&gt;
&lt;br /&gt;
Note two things.  &lt;br /&gt;
First the OIDs from CyberPower need the &amp;quot;.0&amp;quot; at the end, you cannot use just the OID you see in a viewer.  &lt;br /&gt;
Second, look at the response data, it might be an integer; ticks (e.g. time remaining in my example below);  or a series of strings, for example the &amp;quot;Status&amp;quot;, which you can then use to develop the value_template in configuration.yaml.  I have many examples below.&lt;br /&gt;
&lt;br /&gt;
Then its time to edit the &#039;sensor&#039; section of your configuration.yaml file.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
###############################&lt;br /&gt;
#                             #&lt;br /&gt;
#            UPS              #&lt;br /&gt;
#                             #&lt;br /&gt;
###############################&lt;br /&gt;
- platform: snmp&lt;br /&gt;
  host: 192.168.1.7&lt;br /&gt;
  baseoid: .1.3.6.1.4.1.3808.1.1.1.4.2.1.0&lt;br /&gt;
  accept_errors: &#039;true&#039;&lt;br /&gt;
  community: public&lt;br /&gt;
  port: 161&lt;br /&gt;
  name: UPS Output Voltage&lt;br /&gt;
  value_template: &#039;{{ (value | int / 10 ) }}&#039;&lt;br /&gt;
  unit_of_measurement: &amp;quot;V&amp;quot;&lt;br /&gt;
- platform: snmp&lt;br /&gt;
  host: 192.168.1.7&lt;br /&gt;
  baseoid: .1.3.6.1.4.1.3808.1.1.1.1.1.1.0&lt;br /&gt;
  accept_errors: &#039;true&#039;&lt;br /&gt;
  community: public&lt;br /&gt;
  port: 161&lt;br /&gt;
  name: UPS Model&lt;br /&gt;
- platform: snmp&lt;br /&gt;
  host: 192.168.1.7&lt;br /&gt;
  baseoid: .1.3.6.1.4.1.3808.1.1.1.4.1.1.0&lt;br /&gt;
  accept_errors: &#039;true&#039;&lt;br /&gt;
  community: public&lt;br /&gt;
  port: 161&lt;br /&gt;
  name: UPS Status&lt;br /&gt;
  value_template: &amp;gt;&lt;br /&gt;
    {% set vals = {&#039;1&#039;: &#039;unknown&#039;, &#039;2&#039;:&#039;onLine&#039;, &#039;3&#039;:&#039;onBattery&#039;, &#039;4&#039;:&#039;onBoost&#039;, &#039;5&#039;:&#039;sleep&#039;, &#039;6&#039;:&#039;off&#039;, &#039;7&#039;:&#039;rebooting&#039;} %}&lt;br /&gt;
    {{vals[value]}}&lt;br /&gt;
- platform: snmp&lt;br /&gt;
  host: 192.168.1.7&lt;br /&gt;
  baseoid:  .1.3.6.1.4.1.3808.1.1.1.3.2.6.0&lt;br /&gt;
  accept_errors: &#039;true&#039;&lt;br /&gt;
  community: public&lt;br /&gt;
  port: 161&lt;br /&gt;
  name: UPS Advanced Status&lt;br /&gt;
  value_template: &amp;gt;&lt;br /&gt;
    {% set vals = {&#039;1&#039;: &#039;normal&#039;, &#039;2&#039;:&#039;Over Voltage&#039;, &#039;3&#039;:&#039;Under Voltage&#039;, &#039;4&#039;:&#039;Frequency failure&#039;, &#039;5&#039;:&#039;Blackout&#039;} %}&lt;br /&gt;
    {{vals[value]}}&lt;br /&gt;
- platform: snmp&lt;br /&gt;
  host: 192.168.1.7&lt;br /&gt;
  baseoid: .1.3.6.1.4.1.3808.1.1.1.4.1.1.0&lt;br /&gt;
  accept_errors: &#039;true&#039;&lt;br /&gt;
  community: public&lt;br /&gt;
  port: 161&lt;br /&gt;
  name: UPS Battery Status&lt;br /&gt;
  value_template: &amp;gt;&lt;br /&gt;
    {% set vals = {&#039;1&#039;: &#039;unknown&#039;, &#039;2&#039;:&#039;Normal&#039;, &#039;3&#039;:&#039;Battery Low&#039;} %}&lt;br /&gt;
    {{vals[value]}}&lt;br /&gt;
- platform: snmp&lt;br /&gt;
  host: 192.168.1.7&lt;br /&gt;
  baseoid: .1.3.6.1.4.1.3808.1.1.1.2.2.1.0&lt;br /&gt;
  accept_errors: &#039;true&#039;&lt;br /&gt;
  community: public&lt;br /&gt;
  port: 161&lt;br /&gt;
  name: UPS Battery Capacity&lt;br /&gt;
  value_template: &#039;{{ (value | float) }}&#039;&lt;br /&gt;
  unit_of_measurement: &amp;quot;%&amp;quot;&lt;br /&gt;
- platform: snmp&lt;br /&gt;
  host: 192.168.1.7&lt;br /&gt;
  baseoid:  .1.3.6.1.4.1.3808.1.1.1.4.2.3.0&lt;br /&gt;
  accept_errors: &#039;true&#039;&lt;br /&gt;
  community: public&lt;br /&gt;
  port: 161&lt;br /&gt;
  name: UPS Load&lt;br /&gt;
  value_template: &#039;{{ (value | float) }}&#039;&lt;br /&gt;
  unit_of_measurement: &amp;quot;%&amp;quot;&lt;br /&gt;
- platform: snmp&lt;br /&gt;
  host: 192.168.1.7&lt;br /&gt;
  baseoid:  .1.3.6.1.4.1.3808.1.1.1.2.2.2.0&lt;br /&gt;
  accept_errors: &#039;true&#039;&lt;br /&gt;
  community: public&lt;br /&gt;
  port: 161&lt;br /&gt;
  name: UPS Battery Voltage&lt;br /&gt;
  value_template: &#039;{{ (value | int / 10 ) }}&#039;&lt;br /&gt;
  unit_of_measurement: &amp;quot;V&amp;quot;&lt;br /&gt;
- platform: snmp&lt;br /&gt;
  host: 192.168.1.7&lt;br /&gt;
  baseoid: .1.3.6.1.4.1.3808.1.1.1.2.2.4.0&lt;br /&gt;
  accept_errors: &#039;true&#039;&lt;br /&gt;
  community: public&lt;br /&gt;
  port: 161&lt;br /&gt;
  name: UPS Run Time Remaining&lt;br /&gt;
  value_template: &amp;gt;-&lt;br /&gt;
    {% set time = (value | int) | int %}&lt;br /&gt;
    {% set minutes = ((time % 360000) / 6000) | int%}&lt;br /&gt;
    {% set hours = ((time % 8640000) / 360000) | int %}&lt;br /&gt;
    {% set days = (time / 8640000) | int %}&lt;br /&gt;
    {%- if time &amp;lt; 60 -%}&lt;br /&gt;
      Less then 1 min&lt;br /&gt;
      {%- else -%}&lt;br /&gt;
      {%- if days &amp;gt; 0 -%}&lt;br /&gt;
        {{ days }}d&lt;br /&gt;
      {%- endif -%}&lt;br /&gt;
      {%- if hours &amp;gt; 0 -%}&lt;br /&gt;
        {%- if days &amp;gt; 0 -%}&lt;br /&gt;
          {{ &#039; &#039; }}&lt;br /&gt;
        {%- endif -%}&lt;br /&gt;
        {{ hours }}hr&lt;br /&gt;
      {%- endif -%}&lt;br /&gt;
      {%- if minutes &amp;gt; 0 -%}&lt;br /&gt;
        {%- if days &amp;gt; 0 or hours &amp;gt; 0 -%}&lt;br /&gt;
          {{ &#039; &#039; }}&lt;br /&gt;
        {%- endif -%}&lt;br /&gt;
        {{ minutes }}min&lt;br /&gt;
      {%- endif -%}&lt;br /&gt;
    {%- endif -%}&lt;br /&gt;
- platform: template&lt;br /&gt;
  sensors:&lt;br /&gt;
    ups_battery_capacity:&lt;br /&gt;
      unit_of_measurement: &amp;quot;%&amp;quot;&lt;br /&gt;
      value_template: &amp;quot;{{ states(&#039;sensor.ups_battery_capacity_2&#039;) }}&amp;quot;&lt;br /&gt;
      friendly_name: &amp;quot;Battery Capacity&amp;quot;&lt;br /&gt;
      icon_template: &amp;gt;&lt;br /&gt;
        {% set level = states(&#039;sensor.ups_battery_capacity_2&#039;) | float | multiply(0.1) | round(0,&amp;quot;floor&amp;quot;) | multiply(10)| round(0) %}&lt;br /&gt;
        {% if is_state(&#039;sensor.ups_status&#039;, &#039;onLine&#039;) and is_state(&#039;sensor.ups_battery_capacity_2&#039; , &#039;100.0&#039; ) %}&lt;br /&gt;
          mdi:battery&lt;br /&gt;
        {% elif is_state(&#039;sensor.ups_status&#039;, &#039;onLine&#039;)  %}&lt;br /&gt;
          mdi:battery-charging-{{level}}&lt;br /&gt;
        {% else %}&lt;br /&gt;
          mdi:battery-{{level}}&lt;br /&gt;
        {% endif %}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that the template at the bottom creates a smart icon.  It shows the level of the battery and the icon has the &#039;flash&#039; symbol on the right if it is charging and does not have the flash if at 100% or running on batteries and discharging.  (Thanks to  RobC and AndyVR on Discord for this icon code)&lt;br /&gt;
&lt;br /&gt;
the entities card setup&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
type: entities&lt;br /&gt;
entities:&lt;br /&gt;
  - entity: sensor.ups_model&lt;br /&gt;
    name: Model&lt;br /&gt;
    icon: mdi:power-plug&lt;br /&gt;
  - entity: sensor.ups_status&lt;br /&gt;
    name: Status&lt;br /&gt;
    icon: mdi:power&lt;br /&gt;
  - entity: sensor.ups_battery_capacity&lt;br /&gt;
    name: Battery Capacity&lt;br /&gt;
  - entity: sensor.ups_run_time_remaining&lt;br /&gt;
    name: Run time remaining&lt;br /&gt;
    icon: mdi:av-timer&lt;br /&gt;
  - entity: sensor.ups_battery_status&lt;br /&gt;
    name: Battery Status&lt;br /&gt;
    icon: mdi:car-battery&lt;br /&gt;
  - entity: sensor.ups_battery_voltage&lt;br /&gt;
    name: Battery Voltage&lt;br /&gt;
    icon: mdi:car-battery&lt;br /&gt;
  - entity: sensor.ups_output_voltage&lt;br /&gt;
    name: Output Volts&lt;br /&gt;
    icon: mdi:power-socket-au&lt;br /&gt;
  - entity: sensor.ups_advanced_status&lt;br /&gt;
    name: Advanced status&lt;br /&gt;
  - entity: sensor.ups_load&lt;br /&gt;
    icon: mdi:signal-cellular-3&lt;br /&gt;
header:&lt;br /&gt;
  type: picture&lt;br /&gt;
  image: local/ups5.jpg&lt;br /&gt;
  tap_action:&lt;br /&gt;
    action: none&lt;br /&gt;
  hold_action:&lt;br /&gt;
    action: none&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and the card itself&lt;br /&gt;
Here is my configuration.yaml for a cyberpower and the entities card setup.&lt;br /&gt;
&lt;br /&gt;
First you need to download and install the latest CyberPower Panel Business V4 at https://www.cyberpowersystems.com/products/software/power-panel-business/&lt;br /&gt;
&lt;br /&gt;
I installed this on my Windows 10 computer (IP 192.168.1.7).  I disabled Personal Edition of CyberPower in my startup services and installed Version 4 of the Business edition that I downloaded from the link above  (ppb440-setup.exe).  &lt;br /&gt;
&lt;br /&gt;
You launch CyberPower Business (username : admin , password: admin) and it should automatically find your UPS via the USB port connection.&lt;br /&gt;
&lt;br /&gt;
I went to settings, enabled SNMP v1, and created the public and private groups and linked to 0.0.0.0 which means any computer on my network can query the snmp service.  I set these to read/write&lt;br /&gt;
&lt;br /&gt;
[[File:ups3.png]] &lt;br /&gt;
&lt;br /&gt;
Note in the image above the battery is at 94% and charging (the flash icon to the right of the battery). This is using the icon created in the ‘sensors’ template&lt;br /&gt;
&lt;br /&gt;
https://community.home-assistant.io/t/monitor-cyberpower-ups-plugged-into-windows-machine-via-usb&lt;/div&gt;</summary>
		<author><name>Simon</name></author>
	</entry>
	<entry>
		<id>https://wiki.bunnfamily.nz/index.php?title=Rebuild_Windows_11_and_attach_to_Server_2016&amp;diff=135</id>
		<title>Rebuild Windows 11 and attach to Server 2016</title>
		<link rel="alternate" type="text/html" href="https://wiki.bunnfamily.nz/index.php?title=Rebuild_Windows_11_and_attach_to_Server_2016&amp;diff=135"/>
		<updated>2025-01-27T19:32:59Z</updated>

		<summary type="html">&lt;p&gt;Simon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To join the server without a full domain join run this command before you use https://IBM/Connect&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;reg add &amp;quot;HKLM\SOFTWARE\Microsoft\Windows Server\ClientDeployment&amp;quot; /v SkipDomainJoin /t REG_DWORD /d 1&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Simon</name></author>
	</entry>
	<entry>
		<id>https://wiki.bunnfamily.nz/index.php?title=Rebuild_Windows_11_and_attach_to_Server_2016&amp;diff=134</id>
		<title>Rebuild Windows 11 and attach to Server 2016</title>
		<link rel="alternate" type="text/html" href="https://wiki.bunnfamily.nz/index.php?title=Rebuild_Windows_11_and_attach_to_Server_2016&amp;diff=134"/>
		<updated>2025-01-27T08:09:54Z</updated>

		<summary type="html">&lt;p&gt;Simon: Created page with &amp;quot;&amp;lt;pre&amp;gt;reg add &amp;quot;HKLM\SOFTWARE\Microsoft\Windows Server\ClientDeployment&amp;quot; /v SkipDomainJoin /t REG_DWORD /d 1&amp;lt;/pre&amp;gt;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;reg add &amp;quot;HKLM\SOFTWARE\Microsoft\Windows Server\ClientDeployment&amp;quot; /v SkipDomainJoin /t REG_DWORD /d 1&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Simon</name></author>
	</entry>
	<entry>
		<id>https://wiki.bunnfamily.nz/index.php?title=RDP_Access&amp;diff=133</id>
		<title>RDP Access</title>
		<link rel="alternate" type="text/html" href="https://wiki.bunnfamily.nz/index.php?title=RDP_Access&amp;diff=133"/>
		<updated>2025-01-25T21:47:33Z</updated>

		<summary type="html">&lt;p&gt;Simon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;You will need a GNOME Shell extension to solve this problem.&lt;br /&gt;
&lt;br /&gt;
First, install install gnome-shell-extension-manager with this command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install gnome-shell-extension-manager&amp;lt;/pre&amp;gt;&lt;br /&gt;
The open the newly installed app called Extension in the GUI. Within this app, search for Jonathan Kamens and install the Allow locked Remote Desktop GNOME Shell extension.&lt;br /&gt;
&lt;br /&gt;
Now you will be able to remotely connect to this computer even when the screen is locked. You will still need to be logged in locally first.&lt;/div&gt;</summary>
		<author><name>Simon</name></author>
	</entry>
	<entry>
		<id>https://wiki.bunnfamily.nz/index.php?title=Main_Page&amp;diff=132</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.bunnfamily.nz/index.php?title=Main_Page&amp;diff=132"/>
		<updated>2025-01-24T20:27:00Z</updated>

		<summary type="html">&lt;p&gt;Simon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;This is the main repository of knowledge created over the years by Simon Bunn.&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Webhooks and Portainer]]&lt;br /&gt;
&lt;br /&gt;
[[Home Assistant]]&lt;br /&gt;
&lt;br /&gt;
[[node-red]]&lt;br /&gt;
&lt;br /&gt;
Ubuntu [[notes]]&lt;br /&gt;
&lt;br /&gt;
[[Router - setting up from fresh]]&lt;br /&gt;
&lt;br /&gt;
[[MediaWiki - enable file upload]]&lt;br /&gt;
&lt;br /&gt;
[[Lora Gateway and Nodes]]&lt;br /&gt;
&lt;br /&gt;
[[Change the media wiki password]]&lt;br /&gt;
&lt;br /&gt;
[[Jetson Orin Nano]]&lt;br /&gt;
&lt;br /&gt;
[[Front Gate]]&lt;br /&gt;
&lt;br /&gt;
[[Rebuild Windows 11 and attach to Server 2016]]&lt;/div&gt;</summary>
		<author><name>Simon</name></author>
	</entry>
	<entry>
		<id>https://wiki.bunnfamily.nz/index.php?title=Main_Page&amp;diff=131</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.bunnfamily.nz/index.php?title=Main_Page&amp;diff=131"/>
		<updated>2025-01-24T20:26:48Z</updated>

		<summary type="html">&lt;p&gt;Simon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;This is the main repository of knowledge created over the years by Simon Bunn.&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Webhooks and Portainer]]&lt;br /&gt;
&lt;br /&gt;
[[Home Assistant]]&lt;br /&gt;
&lt;br /&gt;
[[node-red]]&lt;br /&gt;
&lt;br /&gt;
Ubuntu [[notes]]&lt;br /&gt;
&lt;br /&gt;
[[Router - setting up from fresh]]&lt;br /&gt;
&lt;br /&gt;
[[MediaWiki - enable file upload]]&lt;br /&gt;
&lt;br /&gt;
[[Lora Gateway and Nodes]]&lt;br /&gt;
&lt;br /&gt;
[[Change the media wiki password]]&lt;br /&gt;
&lt;br /&gt;
[[Jetson Orin Nano]]&lt;br /&gt;
&lt;br /&gt;
[[Front Gate]]&lt;br /&gt;
&lt;br /&gt;
[[Rebuild Windows 11 and attache to Server 2016]]&lt;/div&gt;</summary>
		<author><name>Simon</name></author>
	</entry>
	<entry>
		<id>https://wiki.bunnfamily.nz/index.php?title=File:JTOP.png&amp;diff=130</id>
		<title>File:JTOP.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.bunnfamily.nz/index.php?title=File:JTOP.png&amp;diff=130"/>
		<updated>2025-01-08T00:39:40Z</updated>

		<summary type="html">&lt;p&gt;Simon: Simon uploaded a new version of File:JTOP.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Simon</name></author>
	</entry>
	<entry>
		<id>https://wiki.bunnfamily.nz/index.php?title=File:JTOP.png&amp;diff=129</id>
		<title>File:JTOP.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.bunnfamily.nz/index.php?title=File:JTOP.png&amp;diff=129"/>
		<updated>2025-01-08T00:37:25Z</updated>

		<summary type="html">&lt;p&gt;Simon: Simon uploaded a new version of File:JTOP.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Simon</name></author>
	</entry>
</feed>