<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.kanthaus.online/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tilmann</id>
	<title>Kanthaus wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.kanthaus.online/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tilmann"/>
	<link rel="alternate" type="text/html" href="https://wiki.kanthaus.online/Special:Contributions/Tilmann"/>
	<updated>2026-04-20T12:51:44Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.5</generator>
	<entry>
		<id>https://wiki.kanthaus.online/index.php?title=Ventilation&amp;diff=2199</id>
		<title>Ventilation</title>
		<link rel="alternate" type="text/html" href="https://wiki.kanthaus.online/index.php?title=Ventilation&amp;diff=2199"/>
		<updated>2026-02-09T19:30:17Z</updated>

		<summary type="html">&lt;p&gt;Tilmann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;🎐 Kanthaus has a [https://en.wikipedia.org/wiki/Heat_recovery_ventilation central heat-recovery ventilation system], consisting of a [https://shop.systemair.com/de-DE/save--vtc--700--l--wrg--geraet/p609989 Systemair SAVE VTC 700] ventilation unit in the K22 attic and an extended system of pipes and valves to many rooms in K20 and K22.&lt;br /&gt;
&lt;br /&gt;
The ventilation unit supplies fresh air to the house, slightly warmed by the stale air it extracts from the house. Both air flows do not mix, they just transfer the heat inside the heat exchanger.&lt;br /&gt;
&lt;br /&gt;
The system automatically adjusts the fan speed to maintain a consistent relative indoor humidity, thereby saving electric power.&lt;br /&gt;
&lt;br /&gt;
== Air flow schema ==&lt;br /&gt;
[[File:Ventilation-plan.png|thumb]]&lt;br /&gt;
There are exceptions between floors: &lt;br /&gt;
&lt;br /&gt;
* [[Silent office|Silent Office]] has supply instead of intake&lt;br /&gt;
* K22-0 just has one intake in the [[Freeshop storage|Free Shop Storage]], but no supply - it pulls fresh air from the hallway and through the [[Freeshop lounge|Free Shop Lounge]]&lt;br /&gt;
&lt;br /&gt;
Also, ventilation piping is work-in-progress and will be extended as the house evolves.&lt;br /&gt;
&lt;br /&gt;
== Statistics ==&lt;br /&gt;
&lt;br /&gt;
You can get some statistics about the ventilation system in [[Grafana]]. Those statistics are pulled from the ventilation unit via [https://git.kanthaus.online/kanthaus/ventilation-watcher an ESP32 device communicating with it via Modbus].&lt;br /&gt;
&lt;br /&gt;
== Maintenance ==&lt;br /&gt;
&lt;br /&gt;
* Intake filters in the rooms: change and wash every 1-3 months when heating is running&lt;br /&gt;
* Central filters in the attic: replace and buy new filter every 12 months, ideally before winter&lt;br /&gt;
* Heat exchanger in the attic: wash every 1-2 years, maybe?&lt;br /&gt;
&lt;br /&gt;
=== Change and wash intake filters ===&lt;br /&gt;
&lt;br /&gt;
They are located in all rooms where air is sucked into the pipe, to prevent the pipe from getting dirty. Especially when radiators are running, a lot of dust is kicked up in the air and ends in the filters.&lt;br /&gt;
&lt;br /&gt;
To check if a change is necessary, measure the air flow into the intake with an air flow meter (currently in K22-4). It doesn’t hurt to replace the filters more often.&lt;br /&gt;
&lt;br /&gt;
You can take the filters out by simply pulling out the valve.&lt;br /&gt;
&lt;br /&gt;
Fresh filters are in a box, currently in the Spitzboden (K22-4). Put the new filter on the outside of the pipe and insert the valve again. It’s a bit tricky to prevent the filter from getting pushed too far into the pipe.&lt;br /&gt;
&lt;br /&gt;
You can wash the filters with a lot of water and dry them. Then they can be reused a few times, until holes appear.&lt;br /&gt;
&lt;br /&gt;
=== Central filters in the attic ===&lt;br /&gt;
&lt;br /&gt;
The SAVE VTC 700 ventilation devices has two filters, one for fresh air and one for used air. It’s important to replace the fresh air filter every 12 months, because it gets filled with dust and dirt from outside air. Especially spring and summer add a lot of pollution. When the filter gets full, the air supply can get smelly and the ventilation system doesn’t provide as much air. Hence, it’s good to replace the fresh air filter in autumn.&lt;br /&gt;
&lt;br /&gt;
The used air filter doesn’t need to replaced regularly, as we have to filters on the intakes in the room (see section above).&lt;br /&gt;
&lt;br /&gt;
First, buy a new fitting F7 filter, like those: &lt;br /&gt;
* https://cleanfilter-shop.de/save-vtr-700-vtc-700-f7-m5-filterset&lt;br /&gt;
* https://www.rado-airshop.de/5x-ersatz-kompaktfilter-systemair-save-vtc-700-save-vtr-700-f7/S0006.1393/&lt;br /&gt;
* https://www.as-luftfilter.de/Ersatzflter-Lueftungsgeraete/Systemair/VTC-700/Ersatzfilter-passend-fuer-Systemair-VTC-700---Gueteklasse-F7.html&lt;br /&gt;
* https://rt-handel.de/Ersatzfilter-Lueftung/Systemair/VTC-700/Ersatzfilter-passend-fuer-Systemair-VTC-700-Filterklasse-F7&lt;br /&gt;
&lt;br /&gt;
Then turn off the ventilation device, open the main cover and unscrew the left panel. Slide out the old filter and take a picture to show it to interested people ;) Insert the new filter, carefully screw the panel on, close the main cover and turn on ventilation again.&lt;br /&gt;
&lt;br /&gt;
A note about replacement filters: they seem to vary a lot in terms of filter surface, that means how often it is folded. The original Systemair filter seems to have almost double the folds compared to the ones from &amp;quot;Cleanfilter-Shop&amp;quot;. &amp;quot;AS-Luftfilter&amp;quot; were somewhere in the middle.&lt;br /&gt;
More surface means the filter needs less fan power to get the same air flow. Which also means that they can stay longer inside the device.&lt;br /&gt;
We didn&#039;t measure pressure differences across filters yet.&lt;br /&gt;
&lt;br /&gt;
=== Wash heat exchanger ===&lt;br /&gt;
&lt;br /&gt;
We didn’t do this so far, but the heat-exchanger can be rinsed with water to get rid of fine dust. This should increase its efficiency.&lt;br /&gt;
[[Category:Technical]]&lt;br /&gt;
[[Category:Repro]]&lt;/div&gt;</summary>
		<author><name>Tilmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.kanthaus.online/index.php?title=Ventilation&amp;diff=2198</id>
		<title>Ventilation</title>
		<link rel="alternate" type="text/html" href="https://wiki.kanthaus.online/index.php?title=Ventilation&amp;diff=2198"/>
		<updated>2026-02-09T19:27:18Z</updated>

		<summary type="html">&lt;p&gt;Tilmann: /* Central filters in the attic */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;🎐 Kanthaus has a [https://en.wikipedia.org/wiki/Heat_recovery_ventilation central heat-recovery ventilation system], consisting of a [https://shop.systemair.com/de-DE/save--vtc--700--l--wrg--geraet/p609989 Systemair SAVE VTC 700] ventilation unit in the K22 attic and an extended system of pipes in valves to the majority of the rooms.&lt;br /&gt;
&lt;br /&gt;
The ventilation unit supplies fresh air to the house, slightly warmed by the stale air it extracts from the house. Both air flows do not mix, they just transfer the heat inside the heat exchanger.&lt;br /&gt;
&lt;br /&gt;
The system automatically adjusts the fan speed to maintain a consistent relative indoor humidity, thereby saving electric power.&lt;br /&gt;
&lt;br /&gt;
== Air flow schema ==&lt;br /&gt;
[[File:Ventilation-plan.png|thumb]]&lt;br /&gt;
There are exceptions between floors: &lt;br /&gt;
&lt;br /&gt;
* [[Silent office|Silent Office]] has supply instead of intake&lt;br /&gt;
* K22-0 just has one intake in the [[Freeshop storage|Free Shop Storage]], but no supply - it pulls fresh air from the hallway and through the [[Freeshop lounge|Free Shop Lounge]]&lt;br /&gt;
&lt;br /&gt;
Also, ventilation piping is work-in-progress and will be extended as the house evolves.&lt;br /&gt;
&lt;br /&gt;
== Statistics ==&lt;br /&gt;
&lt;br /&gt;
You can get some statistics about the ventilation system in [[Grafana]]. Those statistics are pulled from the ventilation unit via [https://git.kanthaus.online/kanthaus/ventilation-watcher an ESP32 device communicating with it via Modbus].&lt;br /&gt;
&lt;br /&gt;
== Maintenance ==&lt;br /&gt;
&lt;br /&gt;
* Intake filters in the rooms: change and wash every 1-3 months when heating is running&lt;br /&gt;
* Central filters in the attic: replace and buy new filter every 12 months, ideally before winter&lt;br /&gt;
* Heat exchanger in the attic: wash every 1-2 years, maybe?&lt;br /&gt;
&lt;br /&gt;
=== Change and wash intake filters ===&lt;br /&gt;
&lt;br /&gt;
They are located in all rooms where air is sucked into the pipe, to prevent the pipe from getting dirty. Especially when radiators are running, a lot of dust is kicked up in the air and ends in the filters.&lt;br /&gt;
&lt;br /&gt;
To check if a change is necessary, measure the air flow into the intake with an air flow meter (currently in K22-4). It doesn’t hurt to replace the filters more often.&lt;br /&gt;
&lt;br /&gt;
You can take the filters out by simply pulling out the valve.&lt;br /&gt;
&lt;br /&gt;
Fresh filters are in a box, currently in the Spitzboden (K22-4). Put the new filter on the outside of the pipe and insert the valve again. It’s a bit tricky to prevent the filter from getting pushed too far into the pipe.&lt;br /&gt;
&lt;br /&gt;
You can wash the filters with a lot of water and dry them. Then they can be reused a few times, until holes appear.&lt;br /&gt;
&lt;br /&gt;
=== Central filters in the attic ===&lt;br /&gt;
&lt;br /&gt;
The SAVE VTC 700 ventilation devices has two filters, one for fresh air and one for used air. It’s important to replace the fresh air filter every 12 months, because it gets filled with dust and dirt from outside air. Especially spring and summer add a lot of pollution. When the filter gets full, the air supply can get smelly and the ventilation system doesn’t provide as much air. Hence, it’s good to replace the fresh air filter in autumn.&lt;br /&gt;
&lt;br /&gt;
The used air filter doesn’t need to replaced regularly, as we have to filters on the intakes in the room (see section above).&lt;br /&gt;
&lt;br /&gt;
First, buy a new fitting F7 filter, like those: &lt;br /&gt;
* https://cleanfilter-shop.de/save-vtr-700-vtc-700-f7-m5-filterset&lt;br /&gt;
* https://www.rado-airshop.de/5x-ersatz-kompaktfilter-systemair-save-vtc-700-save-vtr-700-f7/S0006.1393/&lt;br /&gt;
* https://www.as-luftfilter.de/Ersatzflter-Lueftungsgeraete/Systemair/VTC-700/Ersatzfilter-passend-fuer-Systemair-VTC-700---Gueteklasse-F7.html&lt;br /&gt;
* https://rt-handel.de/Ersatzfilter-Lueftung/Systemair/VTC-700/Ersatzfilter-passend-fuer-Systemair-VTC-700-Filterklasse-F7&lt;br /&gt;
&lt;br /&gt;
Then turn off the ventilation device, open the main cover and unscrew the left panel. Slide out the old filter and take a picture to show it to interested people ;) Insert the new filter, carefully screw the panel on, close the main cover and turn on ventilation again.&lt;br /&gt;
&lt;br /&gt;
A note about replacement filters: they seem to vary a lot in terms of filter surface, that means how often it is folded. The original Systemair filter seems to have almost double the folds compared to the ones from &amp;quot;Cleanfilter-Shop&amp;quot;. &amp;quot;AS-Luftfilter&amp;quot; were somewhere in the middle.&lt;br /&gt;
More surface means the filter needs less fan power to get the same air flow. Which also means that they can stay longer inside the device.&lt;br /&gt;
We didn&#039;t measure pressure differences across filters yet.&lt;br /&gt;
&lt;br /&gt;
=== Wash heat exchanger ===&lt;br /&gt;
&lt;br /&gt;
We didn’t do this so far, but the heat-exchanger can be rinsed with water to get rid of fine dust. This should increase its efficiency.&lt;br /&gt;
[[Category:Technical]]&lt;br /&gt;
[[Category:Repro]]&lt;/div&gt;</summary>
		<author><name>Tilmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.kanthaus.online/index.php?title=Network&amp;diff=2158</id>
		<title>Network</title>
		<link rel="alternate" type="text/html" href="https://wiki.kanthaus.online/index.php?title=Network&amp;diff=2158"/>
		<updated>2025-11-30T11:38:00Z</updated>

		<summary type="html">&lt;p&gt;Tilmann: /* How to update OPNsense */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;👻 This page should document some bits of the network infrastructure of Kanthaus. Please maintain so people with a bit of network knowledge can understand and maintain the network. See also [[Server]].&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
[[File:Network topology 2024-10-18 .png|none|thumb]]&amp;lt;!--&lt;br /&gt;
drawn with https://excalidraw.com/&lt;br /&gt;
raw file for modifying: /images/network-topology.svg&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ISP ==&lt;br /&gt;
We currently use Telekom as our internet provider. They have a [https://www.telekom.de/hilfe/hilfe-bei-stoerungen/leitungspruefung help page] for diagnosing internet issues from their side: good idea to check this first if the wifi networks are still up, but not connected to the internet.&lt;br /&gt;
&lt;br /&gt;
== TRUNK network ==&lt;br /&gt;
&lt;br /&gt;
the backbone of our network, connecting all Access Points and the central firewall, carries all the different networks via VLAN:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!align=&amp;quot;right&amp;quot; width=&amp;quot;17%&amp;quot;| VLAN-ID&lt;br /&gt;
!width=&amp;quot;33%&amp;quot;| IP Range&lt;br /&gt;
!width=&amp;quot;26%&amp;quot;| Name&lt;br /&gt;
!width=&amp;quot;22%&amp;quot;| Purpose / Devices&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;right&amp;quot;| untagged&lt;br /&gt;
| 192.168.178.x&lt;br /&gt;
| ADMIN&lt;br /&gt;
| configuration tnterfaces of all AP’s &amp;amp;amp; Switches&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;right&amp;quot;| 4&lt;br /&gt;
| 192.168.4.x&lt;br /&gt;
| PRINTER&lt;br /&gt;
| connection between print server (kanthaus-server) and printer&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;right&amp;quot;| 5&lt;br /&gt;
| 192.168.5.x&lt;br /&gt;
| IOT &#039;&#039;(former SMA)&#039;&#039;&lt;br /&gt;
| only access to kanthaus-server and potentially whitelisted internet IP’s + isolated clients¹&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;right&amp;quot;| 100&lt;br /&gt;
| 192.168.100.x&lt;br /&gt;
| RESTRICTED&lt;br /&gt;
| normal internet access + isolated clients¹&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;right&amp;quot;| 101&lt;br /&gt;
| 192.168.101.x&lt;br /&gt;
| VPN&lt;br /&gt;
| tunneled to VPN (currently NL)&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;right&amp;quot;| 102&lt;br /&gt;
| 192.168.102.x&lt;br /&gt;
| UNSECURE&lt;br /&gt;
| normal internet access&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
¹ client isolation does not work between LAN &amp;amp;lt;-&amp;amp;gt; LAN clients&lt;br /&gt;
&lt;br /&gt;
== Wifis ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! SSID&lt;br /&gt;
! Network&lt;br /&gt;
!align=&amp;quot;center&amp;quot;| Encrypt.&lt;br /&gt;
!align=&amp;quot;center&amp;quot;| 802.11r&lt;br /&gt;
!align=&amp;quot;center&amp;quot;| 802.11w&lt;br /&gt;
!align=&amp;quot;center&amp;quot;| Isolation&lt;br /&gt;
! Comment&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;kanthaus&amp;lt;/code&amp;gt;&lt;br /&gt;
| RESTRICTED&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| WPA3&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -¹&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| required&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| on&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;kanthaus-insecure&amp;lt;/code&amp;gt;&lt;br /&gt;
| INSECURE&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| WPA2&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
| unsupported drivers, LAN parties, etc.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;kanthaus-gast&amp;lt;/code&amp;gt;&lt;br /&gt;
| VPN&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| on&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;kh-admin&amp;lt;/code&amp;gt;&lt;br /&gt;
| ADMIN&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| WPA3&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| required&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;kh-iot&amp;lt;/code&amp;gt;&lt;br /&gt;
| IOT&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| WPA2&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| on&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;802.11r:&#039;&#039;&#039; Fast Roaming &#039;&#039;&#039;802.11w&#039;&#039;&#039;: Management Frame Protection&lt;br /&gt;
&lt;br /&gt;
¹ would be cool to have it on, but eventually led to issues. let’s reevaluate in a few months&lt;br /&gt;
&lt;br /&gt;
== Device list ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!width=&amp;quot;15%&amp;quot;| Type&lt;br /&gt;
!width=&amp;quot;18%&amp;quot;| Name&lt;br /&gt;
!width=&amp;quot;19%&amp;quot;| Admin-IP&lt;br /&gt;
!width=&amp;quot;18%&amp;quot;| Location&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;| Hardware&lt;br /&gt;
!width=&amp;quot;8%&amp;quot;| Comments&lt;br /&gt;
|-&lt;br /&gt;
| Router&lt;br /&gt;
| &amp;lt;code&amp;gt;fritz.box&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.200.1&lt;br /&gt;
| K20-1 hallway&lt;br /&gt;
| FritzBox 7530&lt;br /&gt;
| DSL termination (on main network), telephone&lt;br /&gt;
|-&lt;br /&gt;
| Router&lt;br /&gt;
| &amp;lt;code&amp;gt;firewall&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.178.1&lt;br /&gt;
| K20-B rack&lt;br /&gt;
|&lt;br /&gt;
| central router / firewall&lt;br /&gt;
|-&lt;br /&gt;
| AP&lt;br /&gt;
| &amp;lt;code&amp;gt;dragon-k20-0&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.178.207&lt;br /&gt;
| K20-0 hallway&lt;br /&gt;
| Archer C5 v1.2&lt;br /&gt;
|switch with servers&lt;br /&gt;
|-&lt;br /&gt;
| AP&lt;br /&gt;
| &amp;lt;code&amp;gt;dragon-k20-1&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.178.201&lt;br /&gt;
| K20-1 hallway&lt;br /&gt;
| Archer C5 v1.2&lt;br /&gt;
|maybe overloaded&lt;br /&gt;
|-&lt;br /&gt;
| AP&lt;br /&gt;
| &amp;lt;code&amp;gt;dragon-k20-3&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.178.208&lt;br /&gt;
| K20-3 center&lt;br /&gt;
| Archer C5 v1.2&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| AP&lt;br /&gt;
| &amp;lt;code&amp;gt;dragon-k20-B&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.178.206&lt;br /&gt;
| K20-B water room&lt;br /&gt;
| Archer C5 v1.2&lt;br /&gt;
|for IoT devices&lt;br /&gt;
|-&lt;br /&gt;
| AP&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;s&amp;gt;dragon-k22-1&amp;lt;/s&amp;gt;&amp;lt;/code&amp;gt; ?&lt;br /&gt;
| &amp;lt;s&amp;gt;192.168.178.202&amp;lt;/s&amp;gt; 192.168.178.217&lt;br /&gt;
| K22-1 hallway&lt;br /&gt;
| Archer C5 v1.2&lt;br /&gt;
|Timber installed the &amp;quot;normal&amp;quot; firmware, now it has a separate wifi (see [https://chat.kanthaus.online/kanthaus/pl/px368istkib7xdf4ekae76oqze Mattermost])&lt;br /&gt;
|-&lt;br /&gt;
| AP&lt;br /&gt;
| &amp;lt;code&amp;gt;dragon-k22-2&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.178.203&lt;br /&gt;
| K22-2 hallway&lt;br /&gt;
| Archer C5 v1.2&lt;br /&gt;
|maybe overloaded&lt;br /&gt;
|-&lt;br /&gt;
| Managed Switch&lt;br /&gt;
| k20 firewall switch&lt;br /&gt;
| 192.168.178.9&lt;br /&gt;
| K20-B rack&lt;br /&gt;
| TL-SG108E&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Managed Switch&lt;br /&gt;
| k22 trunk switch&lt;br /&gt;
| 192.168.178.10&lt;br /&gt;
| K22-B stairs&lt;br /&gt;
| GS108E v3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Switch&lt;br /&gt;
| k20 trunk switch&lt;br /&gt;
| -&lt;br /&gt;
| K20-B Rack&lt;br /&gt;
|&lt;br /&gt;
| provides PoE for some AP’s in K20&lt;br /&gt;
|-&lt;br /&gt;
| Server&lt;br /&gt;
| &amp;lt;code&amp;gt;kanthaus-server&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.*.2&lt;br /&gt;
| K20-0 hallway&lt;br /&gt;
| Server, i5-2500K, 16GB Ram&lt;br /&gt;
| file storage, nextcloud, foodsharing gitlab CI Server, housebus logging &amp;amp;amp; time/sunset provider (see [https://git.kanthaus.online/kanthaus/kanthaus-server-services/ Repo])&lt;br /&gt;
|-&lt;br /&gt;
| Main water meter reader&lt;br /&gt;
| &amp;lt;code&amp;gt;mainwatermeter&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.5.37&lt;br /&gt;
| K20 basement (former heating room)&lt;br /&gt;
| ESP32-CAM&lt;br /&gt;
| see [[./water.html|Water usage tracking]]&lt;br /&gt;
|-&lt;br /&gt;
| Warm water meter reader&lt;br /&gt;
| &amp;lt;code&amp;gt;warmwatermeter&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.5.38&lt;br /&gt;
| K20 basement (rainwater room)&lt;br /&gt;
| ESP32-CAM&lt;br /&gt;
| see [[./water.html|Water usage tracking]]&lt;br /&gt;
|-&lt;br /&gt;
| Ventilation watcher&lt;br /&gt;
| &amp;lt;code&amp;gt;ventilation&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.5.39&lt;br /&gt;
| K20 attic&lt;br /&gt;
| ESP32-WROOM&lt;br /&gt;
| see [https://git.kanthaus.online/kanthaus/ventilation-watcher docs]&lt;br /&gt;
|-&lt;br /&gt;
| K20 door&lt;br /&gt;
| &amp;lt;code&amp;gt;k20-door&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.5.40&lt;br /&gt;
| K20 hallway&lt;br /&gt;
| ESP32-CAM&lt;br /&gt;
| see [https://git.kanthaus.online/kanthaus/door-esp32 docs]&lt;br /&gt;
|-&lt;br /&gt;
| radiator fan switch&lt;br /&gt;
| &amp;lt;code&amp;gt;socket-radiator-fansipan&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.5.41&lt;br /&gt;
| Fansipan&lt;br /&gt;
| LSPA9/CB2S/BK7231N&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| radiator fan switch&lt;br /&gt;
| &amp;lt;code&amp;gt;socket-radiator-elephant&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.5.42&lt;br /&gt;
| Elephant Room&lt;br /&gt;
| LSPA9/CB2S/BK7231N&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|electricity monitor&lt;br /&gt;
|&amp;lt;code&amp;gt;socket-2-k22-3-aircon&amp;lt;/code&amp;gt;&lt;br /&gt;
|192.168.5.43&lt;br /&gt;
|K22-3&lt;br /&gt;
|LSPA9/CB2S/BK7231N&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Firewall / Router ==&lt;br /&gt;
&lt;br /&gt;
Central point of all subnets, routes between them &lt;br /&gt;
&lt;br /&gt;
* runs OPNSense &lt;br /&gt;
* due to lack of ports on firewall, a VLAN switch added, bound to the firewall, also connecting to the fritz!box&lt;br /&gt;
* Features: &lt;br /&gt;
** VPN client&lt;br /&gt;
** DNS Server&lt;br /&gt;
** DHCP Server&lt;br /&gt;
&lt;br /&gt;
== Access Points ==&lt;br /&gt;
&lt;br /&gt;
* see Device list&lt;br /&gt;
* so far all Archer C5 v1.2&lt;br /&gt;
* centrally configured by OpenWISP: https://openwisp.im.kanthaus.online (only reachable inside the &amp;lt;code&amp;gt;ADMIN&amp;lt;/code&amp;gt; net)&lt;br /&gt;
* starting point for other ethernet cables on that floor&lt;br /&gt;
* in K20 all powered by PoE (802.3af) from the switch in the basement&lt;br /&gt;
&lt;br /&gt;
== Printer (Canon C2025i) ==&lt;br /&gt;
&lt;br /&gt;
* Printer is in its own subnet together with the kanthaus-server&lt;br /&gt;
* On the kanthaus-server, there is &#039;&#039;CUPS&#039;&#039; running with printer sharing and auto discovery in the networks via avahi-daemon&lt;br /&gt;
* In &amp;lt;code&amp;gt;RESTRICTED&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;UNSECURE&amp;lt;/code&amp;gt; the printer is also reachable directly via 192.168.4.153:9100&lt;br /&gt;
&lt;br /&gt;
== kanthaus-server ==&lt;br /&gt;
&lt;br /&gt;
* Most of the services are running inside a docker-compose setup&lt;br /&gt;
** Repo: https://git.kanthaus.online/kanthaus/kanthaus-server-services&lt;br /&gt;
** in &amp;lt;code&amp;gt;/opt/kh-services&amp;lt;/code&amp;gt;&lt;br /&gt;
** checking state: &amp;lt;code&amp;gt;docker-compose ps&amp;lt;/code&amp;gt;&lt;br /&gt;
** starting everything: &amp;lt;code&amp;gt;docker-compose up -d&amp;lt;/code&amp;gt;&lt;br /&gt;
** logs: &amp;lt;code&amp;gt;docker-compose logs -f --tail=20&amp;lt;/code&amp;gt;&lt;br /&gt;
* BTRFS raid for HDD’s under &amp;lt;code&amp;gt;/data&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Random notes ==&lt;br /&gt;
&lt;br /&gt;
=== Building customized OpenWRT for Archer C5 ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh kanthaus-server&lt;br /&gt;
sudo -iu openwrt-builder&lt;br /&gt;
cd openwrt&lt;br /&gt;
make&lt;br /&gt;
ls -l bin/targets/ath79/generic/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== included changes ====&lt;br /&gt;
* root password&lt;br /&gt;
* default IP &amp;lt;code&amp;gt;192.168.178.200&amp;lt;/code&amp;gt; in ADMIN range&lt;br /&gt;
* switch: all ports in ADMIN net&lt;br /&gt;
* disabled DNS rebind protection&lt;br /&gt;
* wireless interface names&lt;br /&gt;
* additional packages&lt;br /&gt;
** openwisp-config&lt;br /&gt;
** prometheus-node-exporter-lu&lt;br /&gt;
** luci-ssl (for https)&lt;br /&gt;
** ebtables (for [https://blog.matthias-larisch.de/openwrt_client_isolation/ effective client isolation])&lt;br /&gt;
** tcpdump (for easier debugging)&lt;br /&gt;
&lt;br /&gt;
=== Upgrading customized OpenWRT ===&lt;br /&gt;
&lt;br /&gt;
Documentation: https://openwrt.org/docs/guide-developer/toolchain/use-buildsystem&lt;br /&gt;
 ssh kanthaus-server&lt;br /&gt;
 sudo -iu openwrt-builder&lt;br /&gt;
 cd openwrt&lt;br /&gt;
 git pull&lt;br /&gt;
 git checkout v23.05.2&lt;br /&gt;
Edit &amp;lt;code&amp;gt;feeds.conf&amp;lt;/code&amp;gt; to change the branch for each feed to the new version, e.g. &amp;lt;code&amp;gt;...;openwrt-23.05&amp;lt;/code&amp;gt;&lt;br /&gt;
 ./scripts/feeds update -a&lt;br /&gt;
 ./scripts/feeds install -a&lt;br /&gt;
 make -j4 defconfig download clean world&lt;br /&gt;
 ls -l bin/targets/ath79/generic/&lt;br /&gt;
Errors during &amp;lt;code&amp;gt;make world&amp;lt;/code&amp;gt; are to be expected, usually the set of default packages changed and dependency conflicts are happening. Investigate generated the &amp;lt;code&amp;gt;.config&amp;lt;/code&amp;gt; file and compare with the official ones at https://downloads.openwrt.org/releases/23.05.2/targets/ath79/generic/config.buildinfo&lt;br /&gt;
&lt;br /&gt;
=== How to update OPNsense ===&lt;br /&gt;
&lt;br /&gt;
There is a short downtime involved during the two reboots, usually 2 minutes each.&lt;br /&gt;
&lt;br /&gt;
# Join the &amp;lt;code&amp;gt;kanthaus-admin&amp;lt;/code&amp;gt; wifi network and log in to 192.168.178.1 (user &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt;, password in keepass). Export the configuration to make a backup.&lt;br /&gt;
# Check if updates are available (System-&amp;amp;gt;Firmware-&amp;amp;gt;Updates)&lt;br /&gt;
# In case of minor updates, just use the button to perform&lt;br /&gt;
# If there is a major update (2x per year), download the newest version from https://opnsense.org/download/, unzip and flash to any USB stick&lt;br /&gt;
# Take a VGA monitor, a USB keyboard and the USB stick to the K20 basement big room, open the rack box and connect the devices to the small computer (HP)&lt;br /&gt;
# Log in with the USB keyboard (same credentials as above) and trigger a reboot. It should now boot from the USB stick.&lt;br /&gt;
# Press any key when it prompts to run the “Importer”. Now it will boot up a live environment and read the configuration file. If successful, network services should run as before.&lt;br /&gt;
# If all looks good, it’s time to install to disk. Run &amp;lt;code&amp;gt;opnsense-installer&amp;lt;/code&amp;gt; from the shell (either on local keyboard or via ssh), choose ZFS and let the installer do its job.&lt;br /&gt;
# Remove the USB stick and reboot again.&lt;br /&gt;
# Check if the system came up good.&lt;br /&gt;
# Perform any last updates from the web UI.&lt;br /&gt;
# Delete the configuration backup again, it can contain secrets.&lt;br /&gt;
# Check if &amp;lt;code&amp;gt;os-realtek-re&amp;lt;/code&amp;gt; is installed&lt;br /&gt;
# Check if VPN for kanthaus-gast is online&lt;br /&gt;
&lt;br /&gt;
=== Pitfalls ===&lt;br /&gt;
&lt;br /&gt;
* We use 802.1q VLAN tagging. All switches everywhere need to have at least passive passthrough support, otherwise the Vlans disappear at that switch. I don’t know of any gigabit switch that does not support this.&lt;br /&gt;
* Again Vlan: Managed switches normally need to have all VLANs that should be forwarded (also tagged -&amp;amp;gt; tagged forward) defined in them.&lt;br /&gt;
* Again Vlan: Some Access Points like WDR841 v7/v8 cannot handle tagged and untagged vlan on the same port at the same time. So far, we don’t have any equipment like that and likely we will never have, but just to know…&lt;br /&gt;
* Again Vlan: fritz boxes have their switch in managed vlan mode and don’t forward any tagged vlan&lt;/div&gt;</summary>
		<author><name>Tilmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.kanthaus.online/index.php?title=Network&amp;diff=2157</id>
		<title>Network</title>
		<link rel="alternate" type="text/html" href="https://wiki.kanthaus.online/index.php?title=Network&amp;diff=2157"/>
		<updated>2025-11-30T11:37:24Z</updated>

		<summary type="html">&lt;p&gt;Tilmann: /* How to update OPNsense */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;👻 This page should document some bits of the network infrastructure of Kanthaus. Please maintain so people with a bit of network knowledge can understand and maintain the network. See also [[Server]].&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
[[File:Network topology 2024-10-18 .png|none|thumb]]&amp;lt;!--&lt;br /&gt;
drawn with https://excalidraw.com/&lt;br /&gt;
raw file for modifying: /images/network-topology.svg&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ISP ==&lt;br /&gt;
We currently use Telekom as our internet provider. They have a [https://www.telekom.de/hilfe/hilfe-bei-stoerungen/leitungspruefung help page] for diagnosing internet issues from their side: good idea to check this first if the wifi networks are still up, but not connected to the internet.&lt;br /&gt;
&lt;br /&gt;
== TRUNK network ==&lt;br /&gt;
&lt;br /&gt;
the backbone of our network, connecting all Access Points and the central firewall, carries all the different networks via VLAN:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!align=&amp;quot;right&amp;quot; width=&amp;quot;17%&amp;quot;| VLAN-ID&lt;br /&gt;
!width=&amp;quot;33%&amp;quot;| IP Range&lt;br /&gt;
!width=&amp;quot;26%&amp;quot;| Name&lt;br /&gt;
!width=&amp;quot;22%&amp;quot;| Purpose / Devices&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;right&amp;quot;| untagged&lt;br /&gt;
| 192.168.178.x&lt;br /&gt;
| ADMIN&lt;br /&gt;
| configuration tnterfaces of all AP’s &amp;amp;amp; Switches&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;right&amp;quot;| 4&lt;br /&gt;
| 192.168.4.x&lt;br /&gt;
| PRINTER&lt;br /&gt;
| connection between print server (kanthaus-server) and printer&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;right&amp;quot;| 5&lt;br /&gt;
| 192.168.5.x&lt;br /&gt;
| IOT &#039;&#039;(former SMA)&#039;&#039;&lt;br /&gt;
| only access to kanthaus-server and potentially whitelisted internet IP’s + isolated clients¹&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;right&amp;quot;| 100&lt;br /&gt;
| 192.168.100.x&lt;br /&gt;
| RESTRICTED&lt;br /&gt;
| normal internet access + isolated clients¹&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;right&amp;quot;| 101&lt;br /&gt;
| 192.168.101.x&lt;br /&gt;
| VPN&lt;br /&gt;
| tunneled to VPN (currently NL)&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;right&amp;quot;| 102&lt;br /&gt;
| 192.168.102.x&lt;br /&gt;
| UNSECURE&lt;br /&gt;
| normal internet access&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
¹ client isolation does not work between LAN &amp;amp;lt;-&amp;amp;gt; LAN clients&lt;br /&gt;
&lt;br /&gt;
== Wifis ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! SSID&lt;br /&gt;
! Network&lt;br /&gt;
!align=&amp;quot;center&amp;quot;| Encrypt.&lt;br /&gt;
!align=&amp;quot;center&amp;quot;| 802.11r&lt;br /&gt;
!align=&amp;quot;center&amp;quot;| 802.11w&lt;br /&gt;
!align=&amp;quot;center&amp;quot;| Isolation&lt;br /&gt;
! Comment&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;kanthaus&amp;lt;/code&amp;gt;&lt;br /&gt;
| RESTRICTED&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| WPA3&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -¹&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| required&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| on&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;kanthaus-insecure&amp;lt;/code&amp;gt;&lt;br /&gt;
| INSECURE&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| WPA2&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
| unsupported drivers, LAN parties, etc.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;kanthaus-gast&amp;lt;/code&amp;gt;&lt;br /&gt;
| VPN&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| on&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;kh-admin&amp;lt;/code&amp;gt;&lt;br /&gt;
| ADMIN&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| WPA3&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| required&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;kh-iot&amp;lt;/code&amp;gt;&lt;br /&gt;
| IOT&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| WPA2&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| on&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;802.11r:&#039;&#039;&#039; Fast Roaming &#039;&#039;&#039;802.11w&#039;&#039;&#039;: Management Frame Protection&lt;br /&gt;
&lt;br /&gt;
¹ would be cool to have it on, but eventually led to issues. let’s reevaluate in a few months&lt;br /&gt;
&lt;br /&gt;
== Device list ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!width=&amp;quot;15%&amp;quot;| Type&lt;br /&gt;
!width=&amp;quot;18%&amp;quot;| Name&lt;br /&gt;
!width=&amp;quot;19%&amp;quot;| Admin-IP&lt;br /&gt;
!width=&amp;quot;18%&amp;quot;| Location&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;| Hardware&lt;br /&gt;
!width=&amp;quot;8%&amp;quot;| Comments&lt;br /&gt;
|-&lt;br /&gt;
| Router&lt;br /&gt;
| &amp;lt;code&amp;gt;fritz.box&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.200.1&lt;br /&gt;
| K20-1 hallway&lt;br /&gt;
| FritzBox 7530&lt;br /&gt;
| DSL termination (on main network), telephone&lt;br /&gt;
|-&lt;br /&gt;
| Router&lt;br /&gt;
| &amp;lt;code&amp;gt;firewall&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.178.1&lt;br /&gt;
| K20-B rack&lt;br /&gt;
|&lt;br /&gt;
| central router / firewall&lt;br /&gt;
|-&lt;br /&gt;
| AP&lt;br /&gt;
| &amp;lt;code&amp;gt;dragon-k20-0&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.178.207&lt;br /&gt;
| K20-0 hallway&lt;br /&gt;
| Archer C5 v1.2&lt;br /&gt;
|switch with servers&lt;br /&gt;
|-&lt;br /&gt;
| AP&lt;br /&gt;
| &amp;lt;code&amp;gt;dragon-k20-1&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.178.201&lt;br /&gt;
| K20-1 hallway&lt;br /&gt;
| Archer C5 v1.2&lt;br /&gt;
|maybe overloaded&lt;br /&gt;
|-&lt;br /&gt;
| AP&lt;br /&gt;
| &amp;lt;code&amp;gt;dragon-k20-3&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.178.208&lt;br /&gt;
| K20-3 center&lt;br /&gt;
| Archer C5 v1.2&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| AP&lt;br /&gt;
| &amp;lt;code&amp;gt;dragon-k20-B&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.178.206&lt;br /&gt;
| K20-B water room&lt;br /&gt;
| Archer C5 v1.2&lt;br /&gt;
|for IoT devices&lt;br /&gt;
|-&lt;br /&gt;
| AP&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;s&amp;gt;dragon-k22-1&amp;lt;/s&amp;gt;&amp;lt;/code&amp;gt; ?&lt;br /&gt;
| &amp;lt;s&amp;gt;192.168.178.202&amp;lt;/s&amp;gt; 192.168.178.217&lt;br /&gt;
| K22-1 hallway&lt;br /&gt;
| Archer C5 v1.2&lt;br /&gt;
|Timber installed the &amp;quot;normal&amp;quot; firmware, now it has a separate wifi (see [https://chat.kanthaus.online/kanthaus/pl/px368istkib7xdf4ekae76oqze Mattermost])&lt;br /&gt;
|-&lt;br /&gt;
| AP&lt;br /&gt;
| &amp;lt;code&amp;gt;dragon-k22-2&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.178.203&lt;br /&gt;
| K22-2 hallway&lt;br /&gt;
| Archer C5 v1.2&lt;br /&gt;
|maybe overloaded&lt;br /&gt;
|-&lt;br /&gt;
| Managed Switch&lt;br /&gt;
| k20 firewall switch&lt;br /&gt;
| 192.168.178.9&lt;br /&gt;
| K20-B rack&lt;br /&gt;
| TL-SG108E&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Managed Switch&lt;br /&gt;
| k22 trunk switch&lt;br /&gt;
| 192.168.178.10&lt;br /&gt;
| K22-B stairs&lt;br /&gt;
| GS108E v3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Switch&lt;br /&gt;
| k20 trunk switch&lt;br /&gt;
| -&lt;br /&gt;
| K20-B Rack&lt;br /&gt;
|&lt;br /&gt;
| provides PoE for some AP’s in K20&lt;br /&gt;
|-&lt;br /&gt;
| Server&lt;br /&gt;
| &amp;lt;code&amp;gt;kanthaus-server&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.*.2&lt;br /&gt;
| K20-0 hallway&lt;br /&gt;
| Server, i5-2500K, 16GB Ram&lt;br /&gt;
| file storage, nextcloud, foodsharing gitlab CI Server, housebus logging &amp;amp;amp; time/sunset provider (see [https://git.kanthaus.online/kanthaus/kanthaus-server-services/ Repo])&lt;br /&gt;
|-&lt;br /&gt;
| Main water meter reader&lt;br /&gt;
| &amp;lt;code&amp;gt;mainwatermeter&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.5.37&lt;br /&gt;
| K20 basement (former heating room)&lt;br /&gt;
| ESP32-CAM&lt;br /&gt;
| see [[./water.html|Water usage tracking]]&lt;br /&gt;
|-&lt;br /&gt;
| Warm water meter reader&lt;br /&gt;
| &amp;lt;code&amp;gt;warmwatermeter&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.5.38&lt;br /&gt;
| K20 basement (rainwater room)&lt;br /&gt;
| ESP32-CAM&lt;br /&gt;
| see [[./water.html|Water usage tracking]]&lt;br /&gt;
|-&lt;br /&gt;
| Ventilation watcher&lt;br /&gt;
| &amp;lt;code&amp;gt;ventilation&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.5.39&lt;br /&gt;
| K20 attic&lt;br /&gt;
| ESP32-WROOM&lt;br /&gt;
| see [https://git.kanthaus.online/kanthaus/ventilation-watcher docs]&lt;br /&gt;
|-&lt;br /&gt;
| K20 door&lt;br /&gt;
| &amp;lt;code&amp;gt;k20-door&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.5.40&lt;br /&gt;
| K20 hallway&lt;br /&gt;
| ESP32-CAM&lt;br /&gt;
| see [https://git.kanthaus.online/kanthaus/door-esp32 docs]&lt;br /&gt;
|-&lt;br /&gt;
| radiator fan switch&lt;br /&gt;
| &amp;lt;code&amp;gt;socket-radiator-fansipan&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.5.41&lt;br /&gt;
| Fansipan&lt;br /&gt;
| LSPA9/CB2S/BK7231N&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| radiator fan switch&lt;br /&gt;
| &amp;lt;code&amp;gt;socket-radiator-elephant&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.5.42&lt;br /&gt;
| Elephant Room&lt;br /&gt;
| LSPA9/CB2S/BK7231N&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|electricity monitor&lt;br /&gt;
|&amp;lt;code&amp;gt;socket-2-k22-3-aircon&amp;lt;/code&amp;gt;&lt;br /&gt;
|192.168.5.43&lt;br /&gt;
|K22-3&lt;br /&gt;
|LSPA9/CB2S/BK7231N&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Firewall / Router ==&lt;br /&gt;
&lt;br /&gt;
Central point of all subnets, routes between them &lt;br /&gt;
&lt;br /&gt;
* runs OPNSense &lt;br /&gt;
* due to lack of ports on firewall, a VLAN switch added, bound to the firewall, also connecting to the fritz!box&lt;br /&gt;
* Features: &lt;br /&gt;
** VPN client&lt;br /&gt;
** DNS Server&lt;br /&gt;
** DHCP Server&lt;br /&gt;
&lt;br /&gt;
== Access Points ==&lt;br /&gt;
&lt;br /&gt;
* see Device list&lt;br /&gt;
* so far all Archer C5 v1.2&lt;br /&gt;
* centrally configured by OpenWISP: https://openwisp.im.kanthaus.online (only reachable inside the &amp;lt;code&amp;gt;ADMIN&amp;lt;/code&amp;gt; net)&lt;br /&gt;
* starting point for other ethernet cables on that floor&lt;br /&gt;
* in K20 all powered by PoE (802.3af) from the switch in the basement&lt;br /&gt;
&lt;br /&gt;
== Printer (Canon C2025i) ==&lt;br /&gt;
&lt;br /&gt;
* Printer is in its own subnet together with the kanthaus-server&lt;br /&gt;
* On the kanthaus-server, there is &#039;&#039;CUPS&#039;&#039; running with printer sharing and auto discovery in the networks via avahi-daemon&lt;br /&gt;
* In &amp;lt;code&amp;gt;RESTRICTED&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;UNSECURE&amp;lt;/code&amp;gt; the printer is also reachable directly via 192.168.4.153:9100&lt;br /&gt;
&lt;br /&gt;
== kanthaus-server ==&lt;br /&gt;
&lt;br /&gt;
* Most of the services are running inside a docker-compose setup&lt;br /&gt;
** Repo: https://git.kanthaus.online/kanthaus/kanthaus-server-services&lt;br /&gt;
** in &amp;lt;code&amp;gt;/opt/kh-services&amp;lt;/code&amp;gt;&lt;br /&gt;
** checking state: &amp;lt;code&amp;gt;docker-compose ps&amp;lt;/code&amp;gt;&lt;br /&gt;
** starting everything: &amp;lt;code&amp;gt;docker-compose up -d&amp;lt;/code&amp;gt;&lt;br /&gt;
** logs: &amp;lt;code&amp;gt;docker-compose logs -f --tail=20&amp;lt;/code&amp;gt;&lt;br /&gt;
* BTRFS raid for HDD’s under &amp;lt;code&amp;gt;/data&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Random notes ==&lt;br /&gt;
&lt;br /&gt;
=== Building customized OpenWRT for Archer C5 ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh kanthaus-server&lt;br /&gt;
sudo -iu openwrt-builder&lt;br /&gt;
cd openwrt&lt;br /&gt;
make&lt;br /&gt;
ls -l bin/targets/ath79/generic/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== included changes ====&lt;br /&gt;
* root password&lt;br /&gt;
* default IP &amp;lt;code&amp;gt;192.168.178.200&amp;lt;/code&amp;gt; in ADMIN range&lt;br /&gt;
* switch: all ports in ADMIN net&lt;br /&gt;
* disabled DNS rebind protection&lt;br /&gt;
* wireless interface names&lt;br /&gt;
* additional packages&lt;br /&gt;
** openwisp-config&lt;br /&gt;
** prometheus-node-exporter-lu&lt;br /&gt;
** luci-ssl (for https)&lt;br /&gt;
** ebtables (for [https://blog.matthias-larisch.de/openwrt_client_isolation/ effective client isolation])&lt;br /&gt;
** tcpdump (for easier debugging)&lt;br /&gt;
&lt;br /&gt;
=== Upgrading customized OpenWRT ===&lt;br /&gt;
&lt;br /&gt;
Documentation: https://openwrt.org/docs/guide-developer/toolchain/use-buildsystem&lt;br /&gt;
 ssh kanthaus-server&lt;br /&gt;
 sudo -iu openwrt-builder&lt;br /&gt;
 cd openwrt&lt;br /&gt;
 git pull&lt;br /&gt;
 git checkout v23.05.2&lt;br /&gt;
Edit &amp;lt;code&amp;gt;feeds.conf&amp;lt;/code&amp;gt; to change the branch for each feed to the new version, e.g. &amp;lt;code&amp;gt;...;openwrt-23.05&amp;lt;/code&amp;gt;&lt;br /&gt;
 ./scripts/feeds update -a&lt;br /&gt;
 ./scripts/feeds install -a&lt;br /&gt;
 make -j4 defconfig download clean world&lt;br /&gt;
 ls -l bin/targets/ath79/generic/&lt;br /&gt;
Errors during &amp;lt;code&amp;gt;make world&amp;lt;/code&amp;gt; are to be expected, usually the set of default packages changed and dependency conflicts are happening. Investigate generated the &amp;lt;code&amp;gt;.config&amp;lt;/code&amp;gt; file and compare with the official ones at https://downloads.openwrt.org/releases/23.05.2/targets/ath79/generic/config.buildinfo&lt;br /&gt;
&lt;br /&gt;
=== How to update OPNsense ===&lt;br /&gt;
&lt;br /&gt;
There is a short downtime involved during the two reboots, usually 2 minutes each.&lt;br /&gt;
&lt;br /&gt;
# Join the &amp;lt;code&amp;gt;kanthaus-admin&amp;lt;/code&amp;gt; wifi network and log in to 192.168.178.1 (user &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt;, password in keepass). Export the configuration to make a backup.&lt;br /&gt;
# Check if updates are available (System-&amp;amp;gt;Firmware-&amp;amp;gt;Updates)&lt;br /&gt;
# In case of minor updates, just use the button to perform&lt;br /&gt;
# If there is a major update (2x per year), download the newest version from https://opnsense.org/download/, unzip and flash to any USB stick&lt;br /&gt;
# Take a VGA monitor, a USB keyboard and the USB stick to the K20 basement big room, open the rack box and connect the devices to the small computer (HP)&lt;br /&gt;
# Log in with the USB keyboard (same credentials as above) and trigger a reboot. It should now boot from the USB stick.&lt;br /&gt;
# Press any key when it prompts to run the “Importer”. Now it will boot up a live environment and read the configuration file. If successful, network services should run as before.&lt;br /&gt;
# If all looks good, it’s time to install to disk. Run &amp;lt;code&amp;gt;opnsense-installer&amp;lt;/code&amp;gt; from the shell (either on local keyboard or via ssh), choose ZFS and let the installer do its job.&lt;br /&gt;
# Remove the USB stick and reboot again.&lt;br /&gt;
# Check if the system came up good.&lt;br /&gt;
# Perform any last updates from the web UI.&lt;br /&gt;
# Delete the configuration backup again, it can contain secrets.&lt;br /&gt;
# Check if &amp;lt;code&amp;gt;os-realtek-re&amp;lt;/code&amp;gt; is installed&lt;br /&gt;
&lt;br /&gt;
=== Pitfalls ===&lt;br /&gt;
&lt;br /&gt;
* We use 802.1q VLAN tagging. All switches everywhere need to have at least passive passthrough support, otherwise the Vlans disappear at that switch. I don’t know of any gigabit switch that does not support this.&lt;br /&gt;
* Again Vlan: Managed switches normally need to have all VLANs that should be forwarded (also tagged -&amp;amp;gt; tagged forward) defined in them.&lt;br /&gt;
* Again Vlan: Some Access Points like WDR841 v7/v8 cannot handle tagged and untagged vlan on the same port at the same time. So far, we don’t have any equipment like that and likely we will never have, but just to know…&lt;br /&gt;
* Again Vlan: fritz boxes have their switch in managed vlan mode and don’t forward any tagged vlan&lt;/div&gt;</summary>
		<author><name>Tilmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.kanthaus.online/index.php?title=Network&amp;diff=2126</id>
		<title>Network</title>
		<link rel="alternate" type="text/html" href="https://wiki.kanthaus.online/index.php?title=Network&amp;diff=2126"/>
		<updated>2025-11-19T11:54:10Z</updated>

		<summary type="html">&lt;p&gt;Tilmann: /* Device list */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;👻 This page should document some bits of the network infrastructure of Kanthaus. Please maintain so people with a bit of network knowledge can understand and maintain the network. See also [[Server]].&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
[[File:Network topology 2024-10-18 .png|none|thumb]]&amp;lt;!--&lt;br /&gt;
drawn with https://excalidraw.com/&lt;br /&gt;
raw file for modifying: /images/network-topology.svg&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ISP ==&lt;br /&gt;
We currently use Telekom as our internet provider. They have a [https://www.telekom.de/hilfe/hilfe-bei-stoerungen/leitungspruefung help page] for diagnosing internet issues from their side: good idea to check this first if the wifi networks are still up, but not connected to the internet.&lt;br /&gt;
&lt;br /&gt;
== TRUNK network ==&lt;br /&gt;
&lt;br /&gt;
the backbone of our network, connecting all Access Points and the central firewall, carries all the different networks via VLAN:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!align=&amp;quot;right&amp;quot; width=&amp;quot;17%&amp;quot;| VLAN-ID&lt;br /&gt;
!width=&amp;quot;33%&amp;quot;| IP Range&lt;br /&gt;
!width=&amp;quot;26%&amp;quot;| Name&lt;br /&gt;
!width=&amp;quot;22%&amp;quot;| Purpose / Devices&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;right&amp;quot;| untagged&lt;br /&gt;
| 192.168.178.x&lt;br /&gt;
| ADMIN&lt;br /&gt;
| configuration tnterfaces of all AP’s &amp;amp;amp; Switches&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;right&amp;quot;| 4&lt;br /&gt;
| 192.168.4.x&lt;br /&gt;
| PRINTER&lt;br /&gt;
| connection between print server (kanthaus-server) and printer&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;right&amp;quot;| 5&lt;br /&gt;
| 192.168.5.x&lt;br /&gt;
| IOT &#039;&#039;(former SMA)&#039;&#039;&lt;br /&gt;
| only access to kanthaus-server and potentially whitelisted internet IP’s + isolated clients¹&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;right&amp;quot;| 100&lt;br /&gt;
| 192.168.100.x&lt;br /&gt;
| RESTRICTED&lt;br /&gt;
| normal internet access + isolated clients¹&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;right&amp;quot;| 101&lt;br /&gt;
| 192.168.101.x&lt;br /&gt;
| VPN&lt;br /&gt;
| tunneled to VPN (currently NL)&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;right&amp;quot;| 102&lt;br /&gt;
| 192.168.102.x&lt;br /&gt;
| UNSECURE&lt;br /&gt;
| normal internet access&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
¹ client isolation does not work between LAN &amp;amp;lt;-&amp;amp;gt; LAN clients&lt;br /&gt;
&lt;br /&gt;
== Wifis ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! SSID&lt;br /&gt;
! Network&lt;br /&gt;
!align=&amp;quot;center&amp;quot;| Encrypt.&lt;br /&gt;
!align=&amp;quot;center&amp;quot;| 802.11r&lt;br /&gt;
!align=&amp;quot;center&amp;quot;| 802.11w&lt;br /&gt;
!align=&amp;quot;center&amp;quot;| Isolation&lt;br /&gt;
! Comment&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;kanthaus&amp;lt;/code&amp;gt;&lt;br /&gt;
| RESTRICTED&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| WPA3&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -¹&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| required&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| on&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;kanthaus-insecure&amp;lt;/code&amp;gt;&lt;br /&gt;
| INSECURE&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| WPA2&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
| unsupported drivers, LAN parties, etc.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;kanthaus-gast&amp;lt;/code&amp;gt;&lt;br /&gt;
| VPN&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| on&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;kh-admin&amp;lt;/code&amp;gt;&lt;br /&gt;
| ADMIN&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| WPA3&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| required&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;kh-iot&amp;lt;/code&amp;gt;&lt;br /&gt;
| IOT&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| WPA2&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| on&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;802.11r:&#039;&#039;&#039; Fast Roaming &#039;&#039;&#039;802.11w&#039;&#039;&#039;: Management Frame Protection&lt;br /&gt;
&lt;br /&gt;
¹ would be cool to have it on, but eventually led to issues. let’s reevaluate in a few months&lt;br /&gt;
&lt;br /&gt;
== Device list ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!width=&amp;quot;15%&amp;quot;| Type&lt;br /&gt;
!width=&amp;quot;18%&amp;quot;| Name&lt;br /&gt;
!width=&amp;quot;19%&amp;quot;| Admin-IP&lt;br /&gt;
!width=&amp;quot;18%&amp;quot;| Location&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;| Hardware&lt;br /&gt;
!width=&amp;quot;8%&amp;quot;| Comments&lt;br /&gt;
|-&lt;br /&gt;
| Router&lt;br /&gt;
| &amp;lt;code&amp;gt;fritz.box&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.200.1&lt;br /&gt;
| K20-1 hallway&lt;br /&gt;
| FritzBox 7530&lt;br /&gt;
| DSL termination (on main network), telephone&lt;br /&gt;
|-&lt;br /&gt;
| Router&lt;br /&gt;
| &amp;lt;code&amp;gt;firewall&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.178.1&lt;br /&gt;
| K20-B rack&lt;br /&gt;
|&lt;br /&gt;
| central router / firewall&lt;br /&gt;
|-&lt;br /&gt;
| AP&lt;br /&gt;
| &amp;lt;code&amp;gt;dragon-k20-0&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.178.207&lt;br /&gt;
| K20-0 hallway&lt;br /&gt;
| Archer C5 v1.2&lt;br /&gt;
|switch with servers&lt;br /&gt;
|-&lt;br /&gt;
| AP&lt;br /&gt;
| &amp;lt;code&amp;gt;dragon-k20-1&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.178.201&lt;br /&gt;
| K20-1 hallway&lt;br /&gt;
| Archer C5 v1.2&lt;br /&gt;
|maybe overloaded&lt;br /&gt;
|-&lt;br /&gt;
| AP&lt;br /&gt;
| &amp;lt;code&amp;gt;dragon-k20-3&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.178.208&lt;br /&gt;
| K20-3 center&lt;br /&gt;
| Archer C5 v1.2&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| AP&lt;br /&gt;
| &amp;lt;code&amp;gt;dragon-k20-B&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.178.206&lt;br /&gt;
| K20-B water room&lt;br /&gt;
| Archer C5 v1.2&lt;br /&gt;
|for IoT devices&lt;br /&gt;
|-&lt;br /&gt;
| AP&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;s&amp;gt;dragon-k22-1&amp;lt;/s&amp;gt;&amp;lt;/code&amp;gt; ?&lt;br /&gt;
| &amp;lt;s&amp;gt;192.168.178.202&amp;lt;/s&amp;gt; 192.168.178.217&lt;br /&gt;
| K22-1 hallway&lt;br /&gt;
| Archer C5 v1.2&lt;br /&gt;
|Timber installed the &amp;quot;normal&amp;quot; firmware, now it has a separate wifi (see [https://chat.kanthaus.online/kanthaus/pl/px368istkib7xdf4ekae76oqze Mattermost])&lt;br /&gt;
|-&lt;br /&gt;
| AP&lt;br /&gt;
| &amp;lt;code&amp;gt;dragon-k22-2&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.178.203&lt;br /&gt;
| K22-2 hallway&lt;br /&gt;
| Archer C5 v1.2&lt;br /&gt;
|maybe overloaded&lt;br /&gt;
|-&lt;br /&gt;
| Managed Switch&lt;br /&gt;
| k20 firewall switch&lt;br /&gt;
| 192.168.178.9&lt;br /&gt;
| K20-B rack&lt;br /&gt;
| TL-SG108E&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Managed Switch&lt;br /&gt;
| k22 trunk switch&lt;br /&gt;
| 192.168.178.10&lt;br /&gt;
| K22-B stairs&lt;br /&gt;
| GS108E v3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Switch&lt;br /&gt;
| k20 trunk switch&lt;br /&gt;
| -&lt;br /&gt;
| K20-B Rack&lt;br /&gt;
|&lt;br /&gt;
| provides PoE for some AP’s in K20&lt;br /&gt;
|-&lt;br /&gt;
| Server&lt;br /&gt;
| &amp;lt;code&amp;gt;kanthaus-server&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.*.2&lt;br /&gt;
| K20-0 hallway&lt;br /&gt;
| Server, i5-2500K, 16GB Ram&lt;br /&gt;
| file storage, nextcloud, foodsharing gitlab CI Server, housebus logging &amp;amp;amp; time/sunset provider (see [https://git.kanthaus.online/kanthaus/kanthaus-server-services/ Repo])&lt;br /&gt;
|-&lt;br /&gt;
| Main water meter reader&lt;br /&gt;
| &amp;lt;code&amp;gt;mainwatermeter&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.5.37&lt;br /&gt;
| K20 basement (former heating room)&lt;br /&gt;
| ESP32-CAM&lt;br /&gt;
| see [[./water.html|Water usage tracking]]&lt;br /&gt;
|-&lt;br /&gt;
| Warm water meter reader&lt;br /&gt;
| &amp;lt;code&amp;gt;warmwatermeter&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.5.38&lt;br /&gt;
| K20 basement (rainwater room)&lt;br /&gt;
| ESP32-CAM&lt;br /&gt;
| see [[./water.html|Water usage tracking]]&lt;br /&gt;
|-&lt;br /&gt;
| Ventilation watcher&lt;br /&gt;
| &amp;lt;code&amp;gt;ventilation&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.5.39&lt;br /&gt;
| K20 attic&lt;br /&gt;
| ESP32-WROOM&lt;br /&gt;
| see [https://git.kanthaus.online/kanthaus/ventilation-watcher docs]&lt;br /&gt;
|-&lt;br /&gt;
| K20 door&lt;br /&gt;
| &amp;lt;code&amp;gt;k20-door&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.5.40&lt;br /&gt;
| K20 hallway&lt;br /&gt;
| ESP32-CAM&lt;br /&gt;
| see [https://git.kanthaus.online/kanthaus/door-esp32 docs]&lt;br /&gt;
|-&lt;br /&gt;
| radiator fan switch&lt;br /&gt;
| &amp;lt;code&amp;gt;socket-radiator-fansipan&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.5.41&lt;br /&gt;
| Fansipan&lt;br /&gt;
| LSPA9/CB2S/BK7231N&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| radiator fan switch&lt;br /&gt;
| &amp;lt;code&amp;gt;socket-radiator-elephant&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.5.42&lt;br /&gt;
| Elephant Room&lt;br /&gt;
| LSPA9/CB2S/BK7231N&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|electricity monitor&lt;br /&gt;
|&amp;lt;code&amp;gt;socket-2-k22-3-aircon&amp;lt;/code&amp;gt;&lt;br /&gt;
|192.168.5.43&lt;br /&gt;
|K22-3&lt;br /&gt;
|LSPA9/CB2S/BK7231N&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Firewall / Router ==&lt;br /&gt;
&lt;br /&gt;
Central point of all subnets, routes between them &lt;br /&gt;
&lt;br /&gt;
* runs OPNSense &lt;br /&gt;
* due to lack of ports on firewall, a VLAN switch added, bound to the firewall, also connecting to the fritz!box&lt;br /&gt;
* Features: &lt;br /&gt;
** VPN client&lt;br /&gt;
** DNS Server&lt;br /&gt;
** DHCP Server&lt;br /&gt;
&lt;br /&gt;
== Access Points ==&lt;br /&gt;
&lt;br /&gt;
* see Device list&lt;br /&gt;
* so far all Archer C5 v1.2&lt;br /&gt;
* centrally configured by OpenWISP: https://openwisp.im.kanthaus.online (only reachable inside the &amp;lt;code&amp;gt;ADMIN&amp;lt;/code&amp;gt; net)&lt;br /&gt;
* starting point for other ethernet cables on that floor&lt;br /&gt;
* in K20 all powered by PoE (802.3af) from the switch in the basement&lt;br /&gt;
&lt;br /&gt;
== Printer (Canon C2025i) ==&lt;br /&gt;
&lt;br /&gt;
* Printer is in its own subnet together with the kanthaus-server&lt;br /&gt;
* On the kanthaus-server, there is &#039;&#039;CUPS&#039;&#039; running with printer sharing and auto discovery in the networks via avahi-daemon&lt;br /&gt;
* In &amp;lt;code&amp;gt;RESTRICTED&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;UNSECURE&amp;lt;/code&amp;gt; the printer is also reachable directly via 192.168.4.153:9100&lt;br /&gt;
&lt;br /&gt;
== kanthaus-server ==&lt;br /&gt;
&lt;br /&gt;
* Most of the services are running inside a docker-compose setup&lt;br /&gt;
** Repo: https://git.kanthaus.online/kanthaus/kanthaus-server-services&lt;br /&gt;
** in &amp;lt;code&amp;gt;/opt/kh-services&amp;lt;/code&amp;gt;&lt;br /&gt;
** checking state: &amp;lt;code&amp;gt;docker-compose ps&amp;lt;/code&amp;gt;&lt;br /&gt;
** starting everything: &amp;lt;code&amp;gt;docker-compose up -d&amp;lt;/code&amp;gt;&lt;br /&gt;
** logs: &amp;lt;code&amp;gt;docker-compose logs -f --tail=20&amp;lt;/code&amp;gt;&lt;br /&gt;
* BTRFS raid for HDD’s under &amp;lt;code&amp;gt;/data&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Random notes ==&lt;br /&gt;
&lt;br /&gt;
=== Building customized OpenWRT for Archer C5 ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh kanthaus-server&lt;br /&gt;
sudo -iu openwrt-builder&lt;br /&gt;
cd openwrt&lt;br /&gt;
make&lt;br /&gt;
ls -l bin/targets/ath79/generic/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== included changes ====&lt;br /&gt;
* root password&lt;br /&gt;
* default IP &amp;lt;code&amp;gt;192.168.178.200&amp;lt;/code&amp;gt; in ADMIN range&lt;br /&gt;
* switch: all ports in ADMIN net&lt;br /&gt;
* disabled DNS rebind protection&lt;br /&gt;
* wireless interface names&lt;br /&gt;
* additional packages&lt;br /&gt;
** openwisp-config&lt;br /&gt;
** prometheus-node-exporter-lu&lt;br /&gt;
** luci-ssl (for https)&lt;br /&gt;
** ebtables (for [https://blog.matthias-larisch.de/openwrt_client_isolation/ effective client isolation])&lt;br /&gt;
** tcpdump (for easier debugging)&lt;br /&gt;
&lt;br /&gt;
=== Upgrading customized OpenWRT ===&lt;br /&gt;
&lt;br /&gt;
Documentation: https://openwrt.org/docs/guide-developer/toolchain/use-buildsystem&lt;br /&gt;
 ssh kanthaus-server&lt;br /&gt;
 sudo -iu openwrt-builder&lt;br /&gt;
 cd openwrt&lt;br /&gt;
 git pull&lt;br /&gt;
 git checkout v23.05.2&lt;br /&gt;
Edit &amp;lt;code&amp;gt;feeds.conf&amp;lt;/code&amp;gt; to change the branch for each feed to the new version, e.g. &amp;lt;code&amp;gt;...;openwrt-23.05&amp;lt;/code&amp;gt;&lt;br /&gt;
 ./scripts/feeds update -a&lt;br /&gt;
 ./scripts/feeds install -a&lt;br /&gt;
 make -j4 defconfig download clean world&lt;br /&gt;
 ls -l bin/targets/ath79/generic/&lt;br /&gt;
Errors during &amp;lt;code&amp;gt;make world&amp;lt;/code&amp;gt; are to be expected, usually the set of default packages changed and dependency conflicts are happening. Investigate generated the &amp;lt;code&amp;gt;.config&amp;lt;/code&amp;gt; file and compare with the official ones at https://downloads.openwrt.org/releases/23.05.2/targets/ath79/generic/config.buildinfo&lt;br /&gt;
&lt;br /&gt;
=== How to update OPNsense ===&lt;br /&gt;
&lt;br /&gt;
There is a short downtime involved during the two reboots, usually 2 minutes each.&lt;br /&gt;
&lt;br /&gt;
# Join the &amp;lt;code&amp;gt;kanthaus-admin&amp;lt;/code&amp;gt; wifi network and log in to 192.168.178.1 (user &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt;, password in keepass). Export the configuration to make a backup.&lt;br /&gt;
# Check if updates are available (System-&amp;amp;gt;Firmware-&amp;amp;gt;Updates)&lt;br /&gt;
# In case of minor updates, just use the button to perform&lt;br /&gt;
# If there is a major update (2x per year), download the newest version from https://opnsense.org/download/, unzip and flash to any USB stick&lt;br /&gt;
# Take a VGA monitor, a USB keyboard and the USB stick to the K20 basement big room, open the rack box and connect the devices to the small computer (HP)&lt;br /&gt;
# Log in with the USB keyboard (same credentials as above) and trigger a reboot. It should now boot from the USB stick.&lt;br /&gt;
# Press any key when it prompts to run the “Importer”. Now it will boot up a live environment and read the configuration file. If successful, network services should run as before.&lt;br /&gt;
# If all looks good, it’s time to install to disk. Run &amp;lt;code&amp;gt;opnsense-installer&amp;lt;/code&amp;gt; from the shell (either on local keyboard or via ssh), choose ZFS and let the installer do its job.&lt;br /&gt;
# Remove the USB stick and reboot again.&lt;br /&gt;
# Check if the system came up good.&lt;br /&gt;
# Perform any last updates from the web UI.&lt;br /&gt;
# Delete the configuration backup again, it can contain secrets.&lt;br /&gt;
&lt;br /&gt;
=== Pitfalls ===&lt;br /&gt;
&lt;br /&gt;
* We use 802.1q VLAN tagging. All switches everywhere need to have at least passive passthrough support, otherwise the Vlans disappear at that switch. I don’t know of any gigabit switch that does not support this.&lt;br /&gt;
* Again Vlan: Managed switches normally need to have all VLANs that should be forwarded (also tagged -&amp;amp;gt; tagged forward) defined in them.&lt;br /&gt;
* Again Vlan: Some Access Points like WDR841 v7/v8 cannot handle tagged and untagged vlan on the same port at the same time. So far, we don’t have any equipment like that and likely we will never have, but just to know…&lt;br /&gt;
* Again Vlan: fritz boxes have their switch in managed vlan mode and don’t forward any tagged vlan&lt;/div&gt;</summary>
		<author><name>Tilmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.kanthaus.online/index.php?title=Network&amp;diff=2124</id>
		<title>Network</title>
		<link rel="alternate" type="text/html" href="https://wiki.kanthaus.online/index.php?title=Network&amp;diff=2124"/>
		<updated>2025-11-13T21:18:10Z</updated>

		<summary type="html">&lt;p&gt;Tilmann: /* Device list */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;👻 This page should document some bits of the network infrastructure of Kanthaus. Please maintain so people with a bit of network knowledge can understand and maintain the network. See also [[Server]].&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
[[File:Network topology 2024-10-18 .png|none|thumb]]&amp;lt;!--&lt;br /&gt;
drawn with https://excalidraw.com/&lt;br /&gt;
raw file for modifying: /images/network-topology.svg&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ISP ==&lt;br /&gt;
We currently use Telekom as our internet provider. They have a [https://www.telekom.de/hilfe/hilfe-bei-stoerungen/leitungspruefung help page] for diagnosing internet issues from their side: good idea to check this first if the wifi networks are still up, but not connected to the internet.&lt;br /&gt;
&lt;br /&gt;
== TRUNK network ==&lt;br /&gt;
&lt;br /&gt;
the backbone of our network, connecting all Access Points and the central firewall, carries all the different networks via VLAN:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!align=&amp;quot;right&amp;quot; width=&amp;quot;17%&amp;quot;| VLAN-ID&lt;br /&gt;
!width=&amp;quot;33%&amp;quot;| IP Range&lt;br /&gt;
!width=&amp;quot;26%&amp;quot;| Name&lt;br /&gt;
!width=&amp;quot;22%&amp;quot;| Purpose / Devices&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;right&amp;quot;| untagged&lt;br /&gt;
| 192.168.178.x&lt;br /&gt;
| ADMIN&lt;br /&gt;
| configuration tnterfaces of all AP’s &amp;amp;amp; Switches&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;right&amp;quot;| 4&lt;br /&gt;
| 192.168.4.x&lt;br /&gt;
| PRINTER&lt;br /&gt;
| connection between print server (kanthaus-server) and printer&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;right&amp;quot;| 5&lt;br /&gt;
| 192.168.5.x&lt;br /&gt;
| IOT &#039;&#039;(former SMA)&#039;&#039;&lt;br /&gt;
| only access to kanthaus-server and potentially whitelisted internet IP’s + isolated clients¹&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;right&amp;quot;| 100&lt;br /&gt;
| 192.168.100.x&lt;br /&gt;
| RESTRICTED&lt;br /&gt;
| normal internet access + isolated clients¹&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;right&amp;quot;| 101&lt;br /&gt;
| 192.168.101.x&lt;br /&gt;
| VPN&lt;br /&gt;
| tunneled to VPN (currently NL)&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;right&amp;quot;| 102&lt;br /&gt;
| 192.168.102.x&lt;br /&gt;
| UNSECURE&lt;br /&gt;
| normal internet access&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
¹ client isolation does not work between LAN &amp;amp;lt;-&amp;amp;gt; LAN clients&lt;br /&gt;
&lt;br /&gt;
== Wifis ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! SSID&lt;br /&gt;
! Network&lt;br /&gt;
!align=&amp;quot;center&amp;quot;| Encrypt.&lt;br /&gt;
!align=&amp;quot;center&amp;quot;| 802.11r&lt;br /&gt;
!align=&amp;quot;center&amp;quot;| 802.11w&lt;br /&gt;
!align=&amp;quot;center&amp;quot;| Isolation&lt;br /&gt;
! Comment&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;kanthaus&amp;lt;/code&amp;gt;&lt;br /&gt;
| RESTRICTED&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| WPA3&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -¹&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| required&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| on&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;kanthaus-insecure&amp;lt;/code&amp;gt;&lt;br /&gt;
| INSECURE&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| WPA2&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
| unsupported drivers, LAN parties, etc.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;kanthaus-gast&amp;lt;/code&amp;gt;&lt;br /&gt;
| VPN&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| on&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;kh-admin&amp;lt;/code&amp;gt;&lt;br /&gt;
| ADMIN&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| WPA3&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| required&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;kh-iot&amp;lt;/code&amp;gt;&lt;br /&gt;
| IOT&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| WPA2&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| on&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;802.11r:&#039;&#039;&#039; Fast Roaming &#039;&#039;&#039;802.11w&#039;&#039;&#039;: Management Frame Protection&lt;br /&gt;
&lt;br /&gt;
¹ would be cool to have it on, but eventually led to issues. let’s reevaluate in a few months&lt;br /&gt;
&lt;br /&gt;
== Device list ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!width=&amp;quot;15%&amp;quot;| Type&lt;br /&gt;
!width=&amp;quot;18%&amp;quot;| Name&lt;br /&gt;
!width=&amp;quot;19%&amp;quot;| Admin-IP&lt;br /&gt;
!width=&amp;quot;18%&amp;quot;| Location&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;| Hardware&lt;br /&gt;
!width=&amp;quot;8%&amp;quot;| Comments&lt;br /&gt;
|-&lt;br /&gt;
| Router&lt;br /&gt;
| &amp;lt;code&amp;gt;fritz.box&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.200.1&lt;br /&gt;
| K20-1 hallway&lt;br /&gt;
| FritzBox 7530&lt;br /&gt;
| DSL termination (on main network), telephone&lt;br /&gt;
|-&lt;br /&gt;
| Router&lt;br /&gt;
| &amp;lt;code&amp;gt;firewall&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.178.1&lt;br /&gt;
| K20-B rack&lt;br /&gt;
|&lt;br /&gt;
| central router / firewall&lt;br /&gt;
|-&lt;br /&gt;
| AP&lt;br /&gt;
| &amp;lt;code&amp;gt;dragon-k20-0&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.178.207&lt;br /&gt;
| K20-0 hallway&lt;br /&gt;
| Archer C5 v1.2&lt;br /&gt;
|switch with servers&lt;br /&gt;
|-&lt;br /&gt;
| AP&lt;br /&gt;
| &amp;lt;code&amp;gt;dragon-k20-1&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.178.201&lt;br /&gt;
| K20-1 hallway&lt;br /&gt;
| Archer C5 v1.2&lt;br /&gt;
|maybe overloaded&lt;br /&gt;
|-&lt;br /&gt;
| AP&lt;br /&gt;
| &amp;lt;code&amp;gt;dragon-k20-3&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.178.208&lt;br /&gt;
| K20-3 center&lt;br /&gt;
| Archer C5 v1.2&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| AP&lt;br /&gt;
| &amp;lt;code&amp;gt;dragon-k20-B&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.178.206&lt;br /&gt;
| K20-B water room&lt;br /&gt;
| Archer C5 v1.2&lt;br /&gt;
|for IoT devices&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;s&amp;gt;AP&amp;lt;/s&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;s&amp;gt;dragon-k22-0&amp;lt;/s&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;s&amp;gt;192.168.178.204&amp;lt;/s&amp;gt;&lt;br /&gt;
| &amp;lt;s&amp;gt;K22-0 side hallway&amp;lt;/s&amp;gt;&lt;br /&gt;
| &amp;lt;s&amp;gt;Archer C5 v1.2&amp;lt;/s&amp;gt;&lt;br /&gt;
|usually unplugged&lt;br /&gt;
|-&lt;br /&gt;
| AP&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;s&amp;gt;dragon-k22-1&amp;lt;/s&amp;gt;&amp;lt;/code&amp;gt; ?&lt;br /&gt;
| &amp;lt;s&amp;gt;192.168.178.202&amp;lt;/s&amp;gt; 192.168.178.217&lt;br /&gt;
| in front of baby bathroom [TODO: What is the name for this?]&lt;br /&gt;
| Archer C5 v1.2&lt;br /&gt;
|Timber installed the &amp;quot;normal&amp;quot; firmware, now it has a separate wifi (see [https://chat.kanthaus.online/kanthaus/pl/px368istkib7xdf4ekae76oqze Mattermost])&lt;br /&gt;
|-&lt;br /&gt;
| AP&lt;br /&gt;
| &amp;lt;code&amp;gt;dragon-k22-2&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.178.203&lt;br /&gt;
| K22-2 hallway&lt;br /&gt;
| Archer C5 v1.2&lt;br /&gt;
|maybe overloaded&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;s&amp;gt;AP&amp;lt;/s&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;s&amp;gt;dragon-k20-outside&amp;lt;/s&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;s&amp;gt;192.168.178.205&amp;lt;/s&amp;gt;&lt;br /&gt;
| &amp;lt;s&amp;gt;K20-0-2 window&amp;lt;/s&amp;gt;&lt;br /&gt;
| &amp;lt;s&amp;gt;Archer C5 v1.2&amp;lt;/s&amp;gt;&lt;br /&gt;
| broken?&lt;br /&gt;
|-&lt;br /&gt;
| Managed Switch&lt;br /&gt;
| k20 firewall switch&lt;br /&gt;
| 192.168.178.9&lt;br /&gt;
| K20-B rack&lt;br /&gt;
| TL-SG108E&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Managed Switch&lt;br /&gt;
| k22 trunk switch&lt;br /&gt;
| 192.168.178.10&lt;br /&gt;
| K22-B stairs&lt;br /&gt;
| GS108E v3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Switch&lt;br /&gt;
| k20 trunk switch&lt;br /&gt;
| -&lt;br /&gt;
| K20-B Rack&lt;br /&gt;
|&lt;br /&gt;
| provides PoE for some AP’s in K20&lt;br /&gt;
|-&lt;br /&gt;
| Server&lt;br /&gt;
| &amp;lt;code&amp;gt;kanthaus-server&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.*.2&lt;br /&gt;
| K20-0 hallway&lt;br /&gt;
| Server, i5-2500K, 16GB Ram&lt;br /&gt;
| file storage, nextcloud, foodsharing gitlab CI Server, housebus logging &amp;amp;amp; time/sunset provider (see [https://git.kanthaus.online/kanthaus/kanthaus-server-services/ Repo])&lt;br /&gt;
|-&lt;br /&gt;
| Main water meter reader&lt;br /&gt;
| &amp;lt;code&amp;gt;mainwatermeter&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.5.37&lt;br /&gt;
| K20 basement (former heating room)&lt;br /&gt;
| ESP32-CAM&lt;br /&gt;
| see [[./water.html|Water usage tracking]]&lt;br /&gt;
|-&lt;br /&gt;
| Warm water meter reader&lt;br /&gt;
| &amp;lt;code&amp;gt;warmwatermeter&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.5.38&lt;br /&gt;
| K20 basement (rainwater room)&lt;br /&gt;
| ESP32-CAM&lt;br /&gt;
| see [[./water.html|Water usage tracking]]&lt;br /&gt;
|-&lt;br /&gt;
| Ventilation watcher&lt;br /&gt;
| &amp;lt;code&amp;gt;ventilation&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.5.39&lt;br /&gt;
| K20 attic&lt;br /&gt;
| ESP32-WROOM&lt;br /&gt;
| see [https://git.kanthaus.online/kanthaus/ventilation-watcher docs]&lt;br /&gt;
|-&lt;br /&gt;
| K20 door&lt;br /&gt;
| &amp;lt;code&amp;gt;k20-door&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.5.40&lt;br /&gt;
| K20 hallway&lt;br /&gt;
| ESP32-CAM&lt;br /&gt;
| see [https://git.kanthaus.online/kanthaus/door-esp32 docs]&lt;br /&gt;
|-&lt;br /&gt;
| radiator fan switch&lt;br /&gt;
| &amp;lt;code&amp;gt;socket-radiator-fansipan&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.5.41&lt;br /&gt;
| Fansipan&lt;br /&gt;
| LSPA9/CB2S/BK7231N&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| radiator fan switch&lt;br /&gt;
| &amp;lt;code&amp;gt;socket-radiator-elephant&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.5.42&lt;br /&gt;
| Elephant Room&lt;br /&gt;
| LSPA9/CB2S/BK7231N&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|electricity monitor&lt;br /&gt;
|&amp;lt;code&amp;gt;socket-2-k22-3-aircon&amp;lt;/code&amp;gt;&lt;br /&gt;
|192.168.5.43&lt;br /&gt;
|K22-3&lt;br /&gt;
|LSPA9/CB2S/BK7231N&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Firewall / Router ==&lt;br /&gt;
&lt;br /&gt;
Central point of all subnets, routes between them &lt;br /&gt;
&lt;br /&gt;
* runs OPNSense &lt;br /&gt;
* due to lack of ports on firewall, a VLAN switch added, bound to the firewall, also connecting to the fritz!box&lt;br /&gt;
* Features: &lt;br /&gt;
** VPN client&lt;br /&gt;
** DNS Server&lt;br /&gt;
** DHCP Server&lt;br /&gt;
&lt;br /&gt;
== Access Points ==&lt;br /&gt;
&lt;br /&gt;
* see Device list&lt;br /&gt;
* so far all Archer C5 v1.2&lt;br /&gt;
* centrally configured by OpenWISP: https://openwisp.im.kanthaus.online (only reachable inside the &amp;lt;code&amp;gt;ADMIN&amp;lt;/code&amp;gt; net)&lt;br /&gt;
* starting point for other ethernet cables on that floor&lt;br /&gt;
* in K20 all powered by PoE (802.3af) from the switch in the basement&lt;br /&gt;
&lt;br /&gt;
== Printer (Canon C2025i) ==&lt;br /&gt;
&lt;br /&gt;
* Printer is in its own subnet together with the kanthaus-server&lt;br /&gt;
* On the kanthaus-server, there is &#039;&#039;CUPS&#039;&#039; running with printer sharing and auto discovery in the networks via avahi-daemon&lt;br /&gt;
* In &amp;lt;code&amp;gt;RESTRICTED&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;UNSECURE&amp;lt;/code&amp;gt; the printer is also reachable directly via 192.168.4.153:9100&lt;br /&gt;
&lt;br /&gt;
== kanthaus-server ==&lt;br /&gt;
&lt;br /&gt;
* Most of the services are running inside a docker-compose setup&lt;br /&gt;
** Repo: https://git.kanthaus.online/kanthaus/kanthaus-server-services&lt;br /&gt;
** in &amp;lt;code&amp;gt;/opt/kh-services&amp;lt;/code&amp;gt;&lt;br /&gt;
** checking state: &amp;lt;code&amp;gt;docker-compose ps&amp;lt;/code&amp;gt;&lt;br /&gt;
** starting everything: &amp;lt;code&amp;gt;docker-compose up -d&amp;lt;/code&amp;gt;&lt;br /&gt;
** logs: &amp;lt;code&amp;gt;docker-compose logs -f --tail=20&amp;lt;/code&amp;gt;&lt;br /&gt;
* BTRFS raid for HDD’s under &amp;lt;code&amp;gt;/data&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Random notes ==&lt;br /&gt;
&lt;br /&gt;
=== Building customized OpenWRT for Archer C5 ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh kanthaus-server&lt;br /&gt;
sudo -iu openwrt-builder&lt;br /&gt;
cd openwrt&lt;br /&gt;
make&lt;br /&gt;
ls -l bin/targets/ath79/generic/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== included changes ====&lt;br /&gt;
* root password&lt;br /&gt;
* default IP &amp;lt;code&amp;gt;192.168.178.200&amp;lt;/code&amp;gt; in ADMIN range&lt;br /&gt;
* switch: all ports in ADMIN net&lt;br /&gt;
* disabled DNS rebind protection&lt;br /&gt;
* wireless interface names&lt;br /&gt;
* additional packages&lt;br /&gt;
** openwisp-config&lt;br /&gt;
** prometheus-node-exporter-lu&lt;br /&gt;
** luci-ssl (for https)&lt;br /&gt;
** ebtables (for [https://blog.matthias-larisch.de/openwrt_client_isolation/ effective client isolation])&lt;br /&gt;
** tcpdump (for easier debugging)&lt;br /&gt;
&lt;br /&gt;
=== Upgrading customized OpenWRT ===&lt;br /&gt;
&lt;br /&gt;
Documentation: https://openwrt.org/docs/guide-developer/toolchain/use-buildsystem&lt;br /&gt;
 ssh kanthaus-server&lt;br /&gt;
 sudo -iu openwrt-builder&lt;br /&gt;
 cd openwrt&lt;br /&gt;
 git pull&lt;br /&gt;
 git checkout v23.05.2&lt;br /&gt;
Edit &amp;lt;code&amp;gt;feeds.conf&amp;lt;/code&amp;gt; to change the branch for each feed to the new version, e.g. &amp;lt;code&amp;gt;...;openwrt-23.05&amp;lt;/code&amp;gt;&lt;br /&gt;
 ./scripts/feeds update -a&lt;br /&gt;
 ./scripts/feeds install -a&lt;br /&gt;
 make -j4 defconfig download clean world&lt;br /&gt;
 ls -l bin/targets/ath79/generic/&lt;br /&gt;
Errors during &amp;lt;code&amp;gt;make world&amp;lt;/code&amp;gt; are to be expected, usually the set of default packages changed and dependency conflicts are happening. Investigate generated the &amp;lt;code&amp;gt;.config&amp;lt;/code&amp;gt; file and compare with the official ones at https://downloads.openwrt.org/releases/23.05.2/targets/ath79/generic/config.buildinfo&lt;br /&gt;
&lt;br /&gt;
=== How to update OPNsense ===&lt;br /&gt;
&lt;br /&gt;
There is a short downtime involved during the two reboots, usually 2 minutes each.&lt;br /&gt;
&lt;br /&gt;
# Join the &amp;lt;code&amp;gt;kanthaus-admin&amp;lt;/code&amp;gt; wifi network and log in to 192.168.178.1 (user &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt;, password in keepass). Export the configuration to make a backup.&lt;br /&gt;
# Check if updates are available (System-&amp;amp;gt;Firmware-&amp;amp;gt;Updates)&lt;br /&gt;
# In case of minor updates, just use the button to perform&lt;br /&gt;
# If there is a major update (2x per year), download the newest version from https://opnsense.org/download/, unzip and flash to any USB stick&lt;br /&gt;
# Take a VGA monitor, a USB keyboard and the USB stick to the K20 basement big room, open the rack box and connect the devices to the small computer (HP)&lt;br /&gt;
# Log in with the USB keyboard (same credentials as above) and trigger a reboot. It should now boot from the USB stick.&lt;br /&gt;
# Press any key when it prompts to run the “Importer”. Now it will boot up a live environment and read the configuration file. If successful, network services should run as before.&lt;br /&gt;
# If all looks good, it’s time to install to disk. Run &amp;lt;code&amp;gt;opnsense-installer&amp;lt;/code&amp;gt; from the shell (either on local keyboard or via ssh), choose ZFS and let the installer do its job.&lt;br /&gt;
# Remove the USB stick and reboot again.&lt;br /&gt;
# Check if the system came up good.&lt;br /&gt;
# Perform any last updates from the web UI.&lt;br /&gt;
# Delete the configuration backup again, it can contain secrets.&lt;br /&gt;
&lt;br /&gt;
=== Pitfalls ===&lt;br /&gt;
&lt;br /&gt;
* We use 802.1q VLAN tagging. All switches everywhere need to have at least passive passthrough support, otherwise the Vlans disappear at that switch. I don’t know of any gigabit switch that does not support this.&lt;br /&gt;
* Again Vlan: Managed switches normally need to have all VLANs that should be forwarded (also tagged -&amp;amp;gt; tagged forward) defined in them.&lt;br /&gt;
* Again Vlan: Some Access Points like WDR841 v7/v8 cannot handle tagged and untagged vlan on the same port at the same time. So far, we don’t have any equipment like that and likely we will never have, but just to know…&lt;br /&gt;
* Again Vlan: fritz boxes have their switch in managed vlan mode and don’t forward any tagged vlan&lt;/div&gt;</summary>
		<author><name>Tilmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.kanthaus.online/index.php?title=Network&amp;diff=2114</id>
		<title>Network</title>
		<link rel="alternate" type="text/html" href="https://wiki.kanthaus.online/index.php?title=Network&amp;diff=2114"/>
		<updated>2025-11-02T20:11:28Z</updated>

		<summary type="html">&lt;p&gt;Tilmann: /* Device list */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;👻 This page should document some bits of the network infrastructure of Kanthaus. Please maintain so people with a bit of network knowledge can understand and maintain the network. See also [[Server]].&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
[[File:Network topology 2024-10-18 .png|none|thumb]]&amp;lt;!--&lt;br /&gt;
drawn with https://excalidraw.com/&lt;br /&gt;
raw file for modifying: /images/network-topology.svg&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ISP ==&lt;br /&gt;
We currently use Telekom as our internet provider. They have a [https://www.telekom.de/hilfe/hilfe-bei-stoerungen/leitungspruefung help page] for diagnosing internet issues from their side: good idea to check this first if the wifi networks are still up, but not connected to the internet.&lt;br /&gt;
&lt;br /&gt;
== TRUNK network ==&lt;br /&gt;
&lt;br /&gt;
the backbone of our network, connecting all Access Points and the central firewall, carries all the different networks via VLAN:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!align=&amp;quot;right&amp;quot; width=&amp;quot;17%&amp;quot;| VLAN-ID&lt;br /&gt;
!width=&amp;quot;33%&amp;quot;| IP Range&lt;br /&gt;
!width=&amp;quot;26%&amp;quot;| Name&lt;br /&gt;
!width=&amp;quot;22%&amp;quot;| Purpose / Devices&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;right&amp;quot;| untagged&lt;br /&gt;
| 192.168.178.x&lt;br /&gt;
| ADMIN&lt;br /&gt;
| configuration tnterfaces of all AP’s &amp;amp;amp; Switches&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;right&amp;quot;| 4&lt;br /&gt;
| 192.168.4.x&lt;br /&gt;
| PRINTER&lt;br /&gt;
| connection between print server (kanthaus-server) and printer&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;right&amp;quot;| 5&lt;br /&gt;
| 192.168.5.x&lt;br /&gt;
| IOT &#039;&#039;(former SMA)&#039;&#039;&lt;br /&gt;
| only access to kanthaus-server and potentially whitelisted internet IP’s + isolated clients¹&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;right&amp;quot;| 100&lt;br /&gt;
| 192.168.100.x&lt;br /&gt;
| RESTRICTED&lt;br /&gt;
| normal internet access + isolated clients¹&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;right&amp;quot;| 101&lt;br /&gt;
| 192.168.101.x&lt;br /&gt;
| VPN&lt;br /&gt;
| tunneled to VPN (currently NL)&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;right&amp;quot;| 102&lt;br /&gt;
| 192.168.102.x&lt;br /&gt;
| UNSECURE&lt;br /&gt;
| normal internet access&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
¹ client isolation does not work between LAN &amp;amp;lt;-&amp;amp;gt; LAN clients&lt;br /&gt;
&lt;br /&gt;
== Wifis ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! SSID&lt;br /&gt;
! Network&lt;br /&gt;
!align=&amp;quot;center&amp;quot;| Encrypt.&lt;br /&gt;
!align=&amp;quot;center&amp;quot;| 802.11r&lt;br /&gt;
!align=&amp;quot;center&amp;quot;| 802.11w&lt;br /&gt;
!align=&amp;quot;center&amp;quot;| Isolation&lt;br /&gt;
! Comment&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;kanthaus&amp;lt;/code&amp;gt;&lt;br /&gt;
| RESTRICTED&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| WPA3&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -¹&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| required&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| on&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;kanthaus-insecure&amp;lt;/code&amp;gt;&lt;br /&gt;
| INSECURE&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| WPA2&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
| unsupported drivers, LAN parties, etc.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;kanthaus-gast&amp;lt;/code&amp;gt;&lt;br /&gt;
| VPN&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| on&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;kh-admin&amp;lt;/code&amp;gt;&lt;br /&gt;
| ADMIN&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| WPA3&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| required&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;kh-iot&amp;lt;/code&amp;gt;&lt;br /&gt;
| IOT&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| WPA2&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| on&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;802.11r:&#039;&#039;&#039; Fast Roaming &#039;&#039;&#039;802.11w&#039;&#039;&#039;: Management Frame Protection&lt;br /&gt;
&lt;br /&gt;
¹ would be cool to have it on, but eventually led to issues. let’s reevaluate in a few months&lt;br /&gt;
&lt;br /&gt;
== Device list ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!width=&amp;quot;15%&amp;quot;| Type&lt;br /&gt;
!width=&amp;quot;18%&amp;quot;| Name&lt;br /&gt;
!width=&amp;quot;19%&amp;quot;| Admin-IP&lt;br /&gt;
!width=&amp;quot;18%&amp;quot;| Location&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;| Hardware&lt;br /&gt;
!width=&amp;quot;8%&amp;quot;| Comments&lt;br /&gt;
|-&lt;br /&gt;
| Router&lt;br /&gt;
| &amp;lt;code&amp;gt;fritz.box&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.200.1&lt;br /&gt;
| K20-1 hallway&lt;br /&gt;
| FritzBox 7530&lt;br /&gt;
| DSL termination (on main network), telephone&lt;br /&gt;
|-&lt;br /&gt;
| Router&lt;br /&gt;
| &amp;lt;code&amp;gt;firewall&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.178.1&lt;br /&gt;
| K20-B rack&lt;br /&gt;
|&lt;br /&gt;
| central router / firewall&lt;br /&gt;
|-&lt;br /&gt;
| AP&lt;br /&gt;
| &amp;lt;code&amp;gt;dragon-k20-0&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.178.207&lt;br /&gt;
| K20-0 hallway&lt;br /&gt;
| Archer C5 v1.2&lt;br /&gt;
|switch with servers&lt;br /&gt;
|-&lt;br /&gt;
| AP&lt;br /&gt;
| &amp;lt;code&amp;gt;dragon-k20-1&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.178.201&lt;br /&gt;
| K20-1 hallway&lt;br /&gt;
| Archer C5 v1.2&lt;br /&gt;
|maybe overloaded&lt;br /&gt;
|-&lt;br /&gt;
| AP&lt;br /&gt;
| &amp;lt;code&amp;gt;dragon-k20-3&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.178.208&lt;br /&gt;
| K20-3 center&lt;br /&gt;
| Archer C5 v1.2&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| AP&lt;br /&gt;
| &amp;lt;code&amp;gt;dragon-k20-B&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.178.206&lt;br /&gt;
| K20-B water room&lt;br /&gt;
| Archer C5 v1.2&lt;br /&gt;
|for IoT devices&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;s&amp;gt;AP&amp;lt;/s&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;s&amp;gt;dragon-k22-0&amp;lt;/s&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;s&amp;gt;192.168.178.204&amp;lt;/s&amp;gt;&lt;br /&gt;
| &amp;lt;s&amp;gt;K22-0 side hallway&amp;lt;/s&amp;gt;&lt;br /&gt;
| &amp;lt;s&amp;gt;Archer C5 v1.2&amp;lt;/s&amp;gt;&lt;br /&gt;
|usually unplugged&lt;br /&gt;
|-&lt;br /&gt;
| AP&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;s&amp;gt;dragon-k22-1&amp;lt;/s&amp;gt;&amp;lt;/code&amp;gt; ?&lt;br /&gt;
| &amp;lt;s&amp;gt;192.168.178.202&amp;lt;/s&amp;gt; 192.168.178.217&lt;br /&gt;
| in front of baby bathroom [TODO: What is the name for this?]&lt;br /&gt;
| Archer C5 v1.2&lt;br /&gt;
|Timber installed the &amp;quot;normal&amp;quot; firmware, now it has a separate wifi (see [https://chat.kanthaus.online/kanthaus/pl/px368istkib7xdf4ekae76oqze Mattermost])&lt;br /&gt;
|-&lt;br /&gt;
| AP&lt;br /&gt;
| &amp;lt;code&amp;gt;dragon-k22-2&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.178.203&lt;br /&gt;
| K22-2 hallway&lt;br /&gt;
| Archer C5 v1.2&lt;br /&gt;
|maybe overloaded&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;s&amp;gt;AP&amp;lt;/s&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;s&amp;gt;dragon-k20-outside&amp;lt;/s&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;s&amp;gt;192.168.178.205&amp;lt;/s&amp;gt;&lt;br /&gt;
| &amp;lt;s&amp;gt;K20-0-2 window&amp;lt;/s&amp;gt;&lt;br /&gt;
| &amp;lt;s&amp;gt;Archer C5 v1.2&amp;lt;/s&amp;gt;&lt;br /&gt;
| broken?&lt;br /&gt;
|-&lt;br /&gt;
| Managed Switch&lt;br /&gt;
| k20 firewall switch&lt;br /&gt;
| 192.168.178.9&lt;br /&gt;
| K20-B rack&lt;br /&gt;
| TL-SG108E&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Managed Switch&lt;br /&gt;
| k22 trunk switch&lt;br /&gt;
| 192.168.178.10&lt;br /&gt;
| K22-B stairs&lt;br /&gt;
| GS108E v3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Switch&lt;br /&gt;
| k20 trunk switch&lt;br /&gt;
| -&lt;br /&gt;
| K20-B Rack&lt;br /&gt;
|&lt;br /&gt;
| provides PoE for some AP’s in K20&lt;br /&gt;
|-&lt;br /&gt;
| Server&lt;br /&gt;
| &amp;lt;code&amp;gt;kanthaus-server&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.*.2&lt;br /&gt;
| K20-0 hallway&lt;br /&gt;
| Server, i5-2500K, 16GB Ram&lt;br /&gt;
| file storage, nextcloud, foodsharing gitlab CI Server, housebus logging &amp;amp;amp; time/sunset provider (see [https://git.kanthaus.online/kanthaus/kanthaus-server-services/ Repo])&lt;br /&gt;
|-&lt;br /&gt;
| Main water meter reader&lt;br /&gt;
| &amp;lt;code&amp;gt;mainwatermeter&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.5.37&lt;br /&gt;
| K20 basement (former heating room)&lt;br /&gt;
| ESP32-CAM&lt;br /&gt;
| see [[./water.html|Water usage tracking]]&lt;br /&gt;
|-&lt;br /&gt;
| Warm water meter reader&lt;br /&gt;
| &amp;lt;code&amp;gt;warmwatermeter&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.5.38&lt;br /&gt;
| K20 basement (rainwater room)&lt;br /&gt;
| ESP32-CAM&lt;br /&gt;
| see [[./water.html|Water usage tracking]]&lt;br /&gt;
|-&lt;br /&gt;
| Ventilation watcher&lt;br /&gt;
| &amp;lt;code&amp;gt;ventilation&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.5.39&lt;br /&gt;
| K20 attic&lt;br /&gt;
| ESP32-WROOM&lt;br /&gt;
| see [https://git.kanthaus.online/kanthaus/ventilation-watcher docs]&lt;br /&gt;
|-&lt;br /&gt;
| K20 door&lt;br /&gt;
| &amp;lt;code&amp;gt;k20-door&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.5.40&lt;br /&gt;
| K20 hallway&lt;br /&gt;
| ESP32-CAM&lt;br /&gt;
| see [https://git.kanthaus.online/kanthaus/door-esp32 docs]&lt;br /&gt;
|-&lt;br /&gt;
| radiator fan switch&lt;br /&gt;
| &amp;lt;code&amp;gt;socket-radiator-fansipan&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.5.41&lt;br /&gt;
| Fansipan&lt;br /&gt;
| CB2S/BK7231N&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| radiator fan switch&lt;br /&gt;
| &amp;lt;code&amp;gt;socket-radiator-elephant&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.5.42&lt;br /&gt;
| Elephant Room&lt;br /&gt;
| CB2S/BK7231N&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Firewall / Router ==&lt;br /&gt;
&lt;br /&gt;
Central point of all subnets, routes between them &lt;br /&gt;
&lt;br /&gt;
* runs OPNSense &lt;br /&gt;
* due to lack of ports on firewall, a VLAN switch added, bound to the firewall, also connecting to the fritz!box&lt;br /&gt;
* Features: &lt;br /&gt;
** VPN client&lt;br /&gt;
** DNS Server&lt;br /&gt;
** DHCP Server&lt;br /&gt;
&lt;br /&gt;
== Access Points ==&lt;br /&gt;
&lt;br /&gt;
* see Device list&lt;br /&gt;
* so far all Archer C5 v1.2&lt;br /&gt;
* centrally configured by OpenWISP: https://openwisp.im.kanthaus.online (only reachable inside the &amp;lt;code&amp;gt;ADMIN&amp;lt;/code&amp;gt; net)&lt;br /&gt;
* starting point for other ethernet cables on that floor&lt;br /&gt;
* in K20 all powered by PoE (802.3af) from the switch in the basement&lt;br /&gt;
&lt;br /&gt;
== Printer (Canon C2025i) ==&lt;br /&gt;
&lt;br /&gt;
* Printer is in its own subnet together with the kanthaus-server&lt;br /&gt;
* On the kanthaus-server, there is &#039;&#039;CUPS&#039;&#039; running with printer sharing and auto discovery in the networks via avahi-daemon&lt;br /&gt;
* In &amp;lt;code&amp;gt;RESTRICTED&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;UNSECURE&amp;lt;/code&amp;gt; the printer is also reachable directly via 192.168.4.153:9100&lt;br /&gt;
&lt;br /&gt;
== kanthaus-server ==&lt;br /&gt;
&lt;br /&gt;
* Most of the services are running inside a docker-compose setup&lt;br /&gt;
** Repo: https://git.kanthaus.online/kanthaus/kanthaus-server-services&lt;br /&gt;
** in &amp;lt;code&amp;gt;/opt/kh-services&amp;lt;/code&amp;gt;&lt;br /&gt;
** checking state: &amp;lt;code&amp;gt;docker-compose ps&amp;lt;/code&amp;gt;&lt;br /&gt;
** starting everything: &amp;lt;code&amp;gt;docker-compose up -d&amp;lt;/code&amp;gt;&lt;br /&gt;
** logs: &amp;lt;code&amp;gt;docker-compose logs -f --tail=20&amp;lt;/code&amp;gt;&lt;br /&gt;
* BTRFS raid for HDD’s under &amp;lt;code&amp;gt;/data&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Random notes ==&lt;br /&gt;
&lt;br /&gt;
=== Building customized OpenWRT for Archer C5 ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh kanthaus-server&lt;br /&gt;
sudo -iu openwrt-builder&lt;br /&gt;
cd openwrt&lt;br /&gt;
make&lt;br /&gt;
ls -l bin/targets/ath79/generic/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== included changes ====&lt;br /&gt;
* root password&lt;br /&gt;
* default IP &amp;lt;code&amp;gt;192.168.178.200&amp;lt;/code&amp;gt; in ADMIN range&lt;br /&gt;
* switch: all ports in ADMIN net&lt;br /&gt;
* disabled DNS rebind protection&lt;br /&gt;
* wireless interface names&lt;br /&gt;
* additional packages&lt;br /&gt;
** openwisp-config&lt;br /&gt;
** prometheus-node-exporter-lu&lt;br /&gt;
** luci-ssl (for https)&lt;br /&gt;
** ebtables (for [https://blog.matthias-larisch.de/openwrt_client_isolation/ effective client isolation])&lt;br /&gt;
** tcpdump (for easier debugging)&lt;br /&gt;
&lt;br /&gt;
=== Upgrading customized OpenWRT ===&lt;br /&gt;
&lt;br /&gt;
Documentation: https://openwrt.org/docs/guide-developer/toolchain/use-buildsystem&lt;br /&gt;
 ssh kanthaus-server&lt;br /&gt;
 sudo -iu openwrt-builder&lt;br /&gt;
 cd openwrt&lt;br /&gt;
 git pull&lt;br /&gt;
 git checkout v23.05.2&lt;br /&gt;
Edit &amp;lt;code&amp;gt;feeds.conf&amp;lt;/code&amp;gt; to change the branch for each feed to the new version, e.g. &amp;lt;code&amp;gt;...;openwrt-23.05&amp;lt;/code&amp;gt;&lt;br /&gt;
 ./scripts/feeds update -a&lt;br /&gt;
 ./scripts/feeds install -a&lt;br /&gt;
 make -j4 defconfig download clean world&lt;br /&gt;
 ls -l bin/targets/ath79/generic/&lt;br /&gt;
Errors during &amp;lt;code&amp;gt;make world&amp;lt;/code&amp;gt; are to be expected, usually the set of default packages changed and dependency conflicts are happening. Investigate generated the &amp;lt;code&amp;gt;.config&amp;lt;/code&amp;gt; file and compare with the official ones at https://downloads.openwrt.org/releases/23.05.2/targets/ath79/generic/config.buildinfo&lt;br /&gt;
&lt;br /&gt;
=== How to update OPNsense ===&lt;br /&gt;
&lt;br /&gt;
There is a short downtime involved during the two reboots, usually 2 minutes each.&lt;br /&gt;
&lt;br /&gt;
# Join the &amp;lt;code&amp;gt;kanthaus-admin&amp;lt;/code&amp;gt; wifi network and log in to 192.168.178.1 (user &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt;, password in keepass). Export the configuration to make a backup.&lt;br /&gt;
# Check if updates are available (System-&amp;amp;gt;Firmware-&amp;amp;gt;Updates)&lt;br /&gt;
# In case of minor updates, just use the button to perform&lt;br /&gt;
# If there is a major update (2x per year), download the newest version from https://opnsense.org/download/, unzip and flash to any USB stick&lt;br /&gt;
# Take a VGA monitor, a USB keyboard and the USB stick to the K20 basement big room, open the rack box and connect the devices to the small computer (HP)&lt;br /&gt;
# Log in with the USB keyboard (same credentials as above) and trigger a reboot. It should now boot from the USB stick.&lt;br /&gt;
# Press any key when it prompts to run the “Importer”. Now it will boot up a live environment and read the configuration file. If successful, network services should run as before.&lt;br /&gt;
# If all looks good, it’s time to install to disk. Run &amp;lt;code&amp;gt;opnsense-installer&amp;lt;/code&amp;gt; from the shell (either on local keyboard or via ssh), choose ZFS and let the installer do its job.&lt;br /&gt;
# Remove the USB stick and reboot again.&lt;br /&gt;
# Check if the system came up good.&lt;br /&gt;
# Perform any last updates from the web UI.&lt;br /&gt;
# Delete the configuration backup again, it can contain secrets.&lt;br /&gt;
&lt;br /&gt;
=== Pitfalls ===&lt;br /&gt;
&lt;br /&gt;
* We use 802.1q VLAN tagging. All switches everywhere need to have at least passive passthrough support, otherwise the Vlans disappear at that switch. I don’t know of any gigabit switch that does not support this.&lt;br /&gt;
* Again Vlan: Managed switches normally need to have all VLANs that should be forwarded (also tagged -&amp;amp;gt; tagged forward) defined in them.&lt;br /&gt;
* Again Vlan: Some Access Points like WDR841 v7/v8 cannot handle tagged and untagged vlan on the same port at the same time. So far, we don’t have any equipment like that and likely we will never have, but just to know…&lt;br /&gt;
* Again Vlan: fritz boxes have their switch in managed vlan mode and don’t forward any tagged vlan&lt;/div&gt;</summary>
		<author><name>Tilmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.kanthaus.online/index.php?title=Heating&amp;diff=2067</id>
		<title>Heating</title>
		<link rel="alternate" type="text/html" href="https://wiki.kanthaus.online/index.php?title=Heating&amp;diff=2067"/>
		<updated>2025-09-09T21:31:28Z</updated>

		<summary type="html">&lt;p&gt;Tilmann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;🌋 Since beginning of Winter 2021, Kanthaus is powered by an air heat pump heating system, which means we heat fossil free only using electricity.&lt;br /&gt;
&lt;br /&gt;
The outdoor unit is located in the garden outside of K20-0-1. Using a special liquid called refrigerant, it heats up water to send through our radiators, or domestic hot water (also called ‘DHW’) for showering and sinks.&lt;br /&gt;
&lt;br /&gt;
The heat pump control panel is installed on the wall next to the [[Kitchen]] door in the hallway of K20-1.&lt;br /&gt;
&lt;br /&gt;
== ❕General info for users ==&lt;br /&gt;
&lt;br /&gt;
Heat pumps work fundamentally different from gas heaters. (Here’s an [https://home.howstuffworks.com/home-improvement/heating-and-cooling/heat-pump.htm article about how they work in general].) While gas heaters usually send really hot water through the radiators, the heat pump heating system’s water temperature needs to be as low as possible for it to be efficient. That means:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;You can not heat up a room quickly&#039;&#039;&#039;- expect a room to become pleasantly warm only 1-2 days after turning on the radiator&lt;br /&gt;
* Much of the temperature control is set centrally. Thus, turning the knobs on the radiators doesn’t do much more than switching on or off.&lt;br /&gt;
* &#039;&#039;&#039;The maximum reachable temperature is usually around 19.5 °C in Kanthaus.&#039;&#039;&#039; It slightly changes depending on the outdoor temperature though.&lt;br /&gt;
* It’s good for the system to run continuously rather than to be frequently switched on and off. Hence it is normal and wanted that the heat pump outside is working all the time.&lt;br /&gt;
* It needs a minimum water flow through the radiators to work at all. This means at least 6 radiators need to be turned on all the time.&lt;br /&gt;
* It can be very expensive if it doesn’t run efficiently, so there is a lot of focus on keeping the efficiency of the system high.&lt;br /&gt;
&lt;br /&gt;
=== 📃 Default settings ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;as of 2025-09-09&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* heating water target temperature: between 30 and 40 °C&lt;br /&gt;
** consequence: the radiators can never be hotter than this&lt;br /&gt;
* water temperature is adjusted so that Piano Room and Main Office are kept around 20°C&lt;br /&gt;
** the mean temperature of both rooms combined over the last 5 minutes is the figure used&lt;br /&gt;
** consequence: if (one of) those rooms get colder, the whole house will be heated more and the other way around&lt;br /&gt;
&lt;br /&gt;
=== 🏠️ Room heatability ===&lt;br /&gt;
&lt;br /&gt;
We purposefully do not heat all rooms in Kanthaus.&lt;br /&gt;
&lt;br /&gt;
The rooms which are &#039;&#039;&#039;warm by default in Winter are:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [[Snack kitchen]]&lt;br /&gt;
* [[Office]]&lt;br /&gt;
* [[Kitchen]]&lt;br /&gt;
* [[Dining room]]&lt;br /&gt;
* [[Elephant room]]&lt;br /&gt;
* [[Piano room]]&lt;br /&gt;
* [[Main bathroom]]&lt;br /&gt;
&lt;br /&gt;
Additionally, when there are enough people to justify it, we usually also heat:&lt;br /&gt;
&lt;br /&gt;
* [[Fansipan]]&lt;br /&gt;
* [[Silent office]]&lt;br /&gt;
&lt;br /&gt;
If someone is in need of a warm private room, the best choice for that is definitely:&lt;br /&gt;
&lt;br /&gt;
* [[Lantern]]&lt;br /&gt;
&lt;br /&gt;
Also K-20-3 and K22_3 are very well heatable, but use two completely decoupled heating solutions.&lt;br /&gt;
&lt;br /&gt;
To keep the efficiency of the system high, we actively decided that &amp;lt;span style=&amp;quot;color:dodgerblue;&amp;quot;&amp;gt;badly heatable rooms stay cold(er)&amp;lt;/span&amp;gt;. A room is badly heatable if: &lt;br /&gt;
&lt;br /&gt;
* the radiator is too small for the specific room&lt;br /&gt;
* it is surrounded by cold walls (including floor and ceiling)&lt;br /&gt;
&lt;br /&gt;
Here’s an incomplete list of those rooms: &lt;br /&gt;
&lt;br /&gt;
* [[The private]] (6 cold walls)&lt;br /&gt;
* [[Hipster room]] (6 cold walls) &lt;br /&gt;
* [[Cat plane dream basket]] (6 cold walls) &lt;br /&gt;
* [[Sorano]] (6 cold walls) &lt;br /&gt;
* [[Freeshop lounge]] (6 cold walls) &lt;br /&gt;
* [[Cloud room]] (4 cold walls) &lt;br /&gt;
* [[Dragon room]] (5 cold walls)&lt;br /&gt;
&lt;br /&gt;
To determine yourself if a room is well or badly heatable, please refer to the [https://kanthaus.gitlab.io/expfloorer/ expfloorer] and analyze the room’s location in the house. Keep in mind that K18 is completely cold, while WR9 is mostly heated.&lt;br /&gt;
&lt;br /&gt;
=== 🛀 Domestic hot water (aka DHW) ===&lt;br /&gt;
[[File:Domestic Hot Water (DHW) heating tank .jpg|thumb|&#039;&#039;The heat is transferred without the two liquids touching.&#039;&#039;]]&lt;br /&gt;
The heat pump is also responsible for domestic hot water (‘DHW’) being available in the Main Bathroom, the Main Kitchen and the Snack Kitchen. We have a DHW tank in K20-B water room for that purpose. When full and freshly heated, it holds 200 liters of 52°C water.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Heating up DHW and water for radiators is not possible at the same time!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Usually the heat pump switches to water mode once a day at some point when it’s sunny. If the hot water tank is empty, however, it immediately starts heating it up again.&lt;br /&gt;
&lt;br /&gt;
The process of heating up DHW takes 30 to 90 minutes depending on how warm the water in the tank was to begin with.&lt;br /&gt;
&lt;br /&gt;
==== Details of DHW heating ====&lt;br /&gt;
&lt;br /&gt;
To heat the DHW, the heating water which otherwise would go through the radiators is redirected and its’ target temperature adapted. A DHW tank is specifically designed to have passages for heating water than can give off heat to the DHW without touching it.&lt;br /&gt;
&lt;br /&gt;
When DHW is used, cold water flows into the tank from below. The hot water on top can still be used, because different temperature layers form in the tank. The thermometer to check the DHW’s temperature is on the upper side of the tank so that the reheating doesn’t start too early. When the temperature of the DHW falls below 39 °C on the top, then the heat pump will switch to water mode automatically and start heating the tank to the target temperature of 52 °C again.&lt;br /&gt;
&lt;br /&gt;
The start of the heating process will mix the layers of different temperature water and first make it colder overall. Meaning: If you’re taking a shower and the hot water seems to not be so hot anymore, you better finish quickly.&lt;br /&gt;
&lt;br /&gt;
==== Legionella ====&lt;br /&gt;
&lt;br /&gt;
A known problem in domestic water systems are [https://en.wikipedia.org/wiki/Legionella legionella] bacteria which cause lung diseases. They only die above 60 - 70 °C, but there are other ways to get rid of them. To avoid chlorine, we went for physical removal, which means to create enough throughput of water to basically wash them away. When they don’t have the time to settle down and form bigger populations they’re nothing to worry about.&lt;br /&gt;
&lt;br /&gt;
=== ❔ Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
==== A radiator is not getting warm, although the heating system should be running? ====&lt;br /&gt;
&lt;br /&gt;
* Is it warm outside? Maybe the heating system turned off temporarily during nighttime?&lt;br /&gt;
* Try another radiator in another room, preferably on the other side of the house or in the other house&lt;br /&gt;
** If successful, a part of the heating system might be turned off at the valves in K20-B-old-heating-room or K22-b-event-storage. Find people who might be working on the heating system before turning it back on.&lt;br /&gt;
&lt;br /&gt;
If both are not successful, go to the heating system control panel in K20-1 hallway.&lt;br /&gt;
&lt;br /&gt;
* It does not show anything?&lt;br /&gt;
** Locate the heating systems fuse in the main electricity fuse box in the electricity room in the basement&lt;br /&gt;
** When you open the right panel of the heat pump outside (losen 4 screws, push it down, yes, push it down harder!) there are also 2 fuses at the top.&lt;br /&gt;
* It shows an error?&lt;br /&gt;
** H62: Too many radiators are turned off so the heat pump could not satisfy its minimum water flow. Turn on some more radiators and make sure that nobody can turn them off (e.g. by removing the thermostat to have it fully on)&lt;br /&gt;
** H70: Check the fuse “heater” in the main electricity box on the bottom right&lt;br /&gt;
** H74: Maybe the house bus node controlling the heating system had a problem? Press the “On” button and watch it for 5 minutes, if it reappears, disable “Optional PCB connectivity” in the installer menu to make it completely autonomous again.&lt;br /&gt;
&lt;br /&gt;
==== I really want to heat a badly heatable/cold room/ I need to heat a room quickly. ====&lt;br /&gt;
&lt;br /&gt;
* Use an electric space heater (“Heizlüfter”).&lt;br /&gt;
* Isn’t this very expensive?&lt;br /&gt;
** Yes (60 cents per hour), but adjusting the heating system so this is possible without the electric heater is more expensive all the time and this scenario should not occur often.&lt;br /&gt;
&lt;br /&gt;
==== I would like to permanently use a badly heatable room. What do I need to do? ====&lt;br /&gt;
&lt;br /&gt;
* Install fans underneath the radiator for better heat distribution&lt;br /&gt;
* Install a bigger radiator&lt;br /&gt;
* If this need is really there for many rooms, we might want to increase the whole heating systems temperatures, this increases the heating cost about 2.5 percent per degree (+ the increased heating cost for the rooms getting warmer of 6% per degree of room temperature)&lt;br /&gt;
* Generally it would be preferable to rather find a better heatable room instead.&lt;br /&gt;
&lt;br /&gt;
==== The heat pump is annoyingly loud, can we do something? ====&lt;br /&gt;
&lt;br /&gt;
* Depends. Is it a certain time or mode of operation? We can always have it operate on lower power for some hours, where it will then be more silent. Communicate your wish :-)&lt;br /&gt;
&lt;br /&gt;
== 👷 Advanced information ==&lt;br /&gt;
&lt;br /&gt;
Our heat pump is a &#039;&#039;&#039;Panasonic Aquarea T-Cap 12 kW WH-MXC12H9E8&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [[:File:Aquarea-service-manual.pdf|Service Manual]]&lt;br /&gt;
* [[:File:Aquarea-installation-manual.pdf|Planungs- und Installationsanleitung]]&lt;br /&gt;
&lt;br /&gt;
=== 🛠️ Required maintenance ===&lt;br /&gt;
In K20-B water room, there are two filters that should be cleaned regularly (e.g. at least once per heating season):&lt;br /&gt;
&lt;br /&gt;
* Spirotap MB3 (The “big” thing in the return line on the bottom)&lt;br /&gt;
** Turn off the heat pump, so the pump is not running&lt;br /&gt;
** Pull down black magnetic cap&lt;br /&gt;
** Get a bucket, put it underneath the exhaust in the bottom&lt;br /&gt;
** Use the cap to turn the knob&lt;br /&gt;
** Leave it open for a second, it will immediately get rinsed&lt;br /&gt;
** &#039;&#039;&#039;Careful:&#039;&#039;&#039; water comes out with high pressure! Don’t let the cap slide off the knob!&lt;br /&gt;
** Put black magnetic cap back on, turn heat pump back on&lt;br /&gt;
* Superfilter (The ball valve with the black handle on the bottem)&lt;br /&gt;
** Turn black handle until it reaches closing position&lt;br /&gt;
** Unscrew cap and get the filter out&lt;br /&gt;
** It’s quite hidden inside, find it by feeling with your finger&lt;br /&gt;
** Take it out and rinse it, use a (tooth)brush to get it really clean&lt;br /&gt;
** Put it back in - no need to let it dry&lt;br /&gt;
** Close cap again and open black handle&lt;br /&gt;
&lt;br /&gt;
The outside unit in the garden also has a filter, but it seems to be fine without maintenance after 2 winters.&lt;br /&gt;
&lt;br /&gt;
=== 👀 Additional layers of control ===&lt;br /&gt;
&lt;br /&gt;
Because of some shortcomings in the controller of the heat pump itself, it is additionally monitored and controlled by a [https://github.com/NerdyProjects/HousebusNode_Heatpump House Bus node], a [https://github.com/Egyras/HeishaMon Heishamon] and a self-made [https://git.kanthaus.online/kanthaus/heating_control heating controller script].&lt;br /&gt;
&lt;br /&gt;
There is some unwanted redundancy, complexity and inflexibility in this setup that might be addressed at some point in the future, but for now it’s functional as it is.&lt;br /&gt;
&lt;br /&gt;
If you want access to these additional layers because you are technically adept and interested in helping out with managing and improving the system, talk to Tilmann. He will be happy about it. :blush:&lt;br /&gt;
&lt;br /&gt;
==== House Bus integration ====&lt;br /&gt;
&lt;br /&gt;
The [[Housebus|House Bus]] node is a piece of hardware and software. The physical part is installed in K20-B water room and the digital part, which is running on it, is recorded in [https://github.com/NerdyProjects/HousebusNode_Heatpump Matthias’ github].&lt;br /&gt;
&lt;br /&gt;
Its’ purpose is to allow reading all status from the heat pump, the heat meter and the electric counter, and to then write the data in InfluxDB. From there we can import it into (Grafana)[https://grafana.yunity.org/]. and use it to e.g. debug and understand the heat pump’s behaviour better.&lt;br /&gt;
&lt;br /&gt;
The info made visible by the House Bus node is: - heating water temperature - power usage - heat generation - water flow - DHW mode or heating mode - outside temperature - compressor power consumption - many small details which not even Tilmann uses or understands&lt;br /&gt;
&lt;br /&gt;
The House Bus node is a new generation coming from our other nodes as it uses upgraded uavcan v1 and an arduino base stack.&lt;br /&gt;
&lt;br /&gt;
==== Heishamon interface ====&lt;br /&gt;
&lt;br /&gt;
[https://github.com/Egyras/HeishaMon Heishamon] is a small piece of open-source software and hardware to monitor and control the heatpump. It is located in the K20-B water room and is connected to WiFi.&lt;br /&gt;
&lt;br /&gt;
It also emulates the &amp;lt;code&amp;gt;Optional PCB&amp;lt;/code&amp;gt; thus is able to set the SG ready signals and demand control.&lt;br /&gt;
&lt;br /&gt;
Heishamon is used to adjust the water target temperatures, with the aim to keep room temperatures consistent and use more of our own solar power.&lt;br /&gt;
&lt;br /&gt;
This probably is something the House Bus node is capable of, too, but at the time it seemed easier to set up a new system than to modify the existing one.&lt;br /&gt;
&lt;br /&gt;
==== Script ====&lt;br /&gt;
&lt;br /&gt;
A heating controller script called &amp;lt;code&amp;gt;heating-control.py&amp;lt;/code&amp;gt; is running on the Kanthaus server. It is additionally stored in the git repo [https://git.kanthaus.online/kanthaus/heating_control heating_control], although the version in there might not be fully up-to-date.&lt;br /&gt;
&lt;br /&gt;
It maintains comfortable temperatures in the house while minimizing energy usage. It does this by reading room temperature sensor data provided by the [[Housebus|House Bus system]] from InfluxDB and adjusting the heating water target temperature via Heishamon. Also, it can switch the heating on or off based on temperature thresholds.&lt;br /&gt;
&lt;br /&gt;
Additionally, the program determines the amount of available solar power and makes use of it by raising temperatures to store heat in the house.&lt;br /&gt;
&lt;br /&gt;
The program also triggers DHW re-heating if conditions are good, for example if the house is warm enough and there’s solar power available.&lt;br /&gt;
[[Category:Technical]]&lt;br /&gt;
[[Category:Structural]]&lt;/div&gt;</summary>
		<author><name>Tilmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.kanthaus.online/index.php?title=Compressed_air&amp;diff=1968</id>
		<title>Compressed air</title>
		<link rel="alternate" type="text/html" href="https://wiki.kanthaus.online/index.php?title=Compressed_air&amp;diff=1968"/>
		<updated>2025-06-24T19:16:06Z</updated>

		<summary type="html">&lt;p&gt;Tilmann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Outlets 💨 ==&lt;br /&gt;
* K22-0-4 workshop (next to door)&lt;br /&gt;
* Garden (next to K22 door)&lt;br /&gt;
* K22 basement (used for bicycle repair station)&lt;br /&gt;
&lt;br /&gt;
== Compressor ==&lt;br /&gt;
The compressor is located in K20-B-1 water storage room. It is a Kaeser Classic 210/50, having a storage volume of 50l and delivers around 100 liters per minute constantly at 6 bars.&lt;br /&gt;
&lt;br /&gt;
A pressure regulator, filter and water separation unit is attached directly to the compressor.&lt;br /&gt;
&lt;br /&gt;
The pressure is set to approximately 7 bars. There is a separate pressure regulator for the bicycle repair station (an additional handbook page for that would be useful).&lt;br /&gt;
&lt;br /&gt;
We equipped the compressor with a DIY automatic switch that drains water from the compressor every time it turns on.&lt;br /&gt;
&lt;br /&gt;
The manual is available in Kanthaus nextcloud: public/topics/workshops and tools&lt;br /&gt;
&lt;br /&gt;
== Maintenance ==&lt;br /&gt;
* If there is a leakage, turn off or unplug the compressor in K20 basement.&lt;br /&gt;
* Compressor oil level should be checked every few months. On the side opposite to the air outlet there is a circle indicating min/max oil level. As of 2020, we didn’t refill oil yet and it is still slightly above maximum (since we got it). As of 2025, we didn&#039;t refill oil yet, and it is somewhere in the middle.&lt;br /&gt;
* Compressor is leaking tiny amounts of oil out of oil drain screw.&lt;br /&gt;
* The whole compressed air system does not have any valves as they would likely induce more complexity and possible leakages into the system. &#039;&#039;&#039;Do not disconnect the hose from the compressor!&#039;&#039;&#039; Or if you want to, do it only with hearing protection and beware of the air coming out of the tube you disconnect. Alternatively, use the condensation drain unterneath the compressor to empty it from air first.&lt;br /&gt;
[[Category:Technical]]&lt;/div&gt;</summary>
		<author><name>Tilmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.kanthaus.online/index.php?title=Mattermost&amp;diff=1962</id>
		<title>Mattermost</title>
		<link rel="alternate" type="text/html" href="https://wiki.kanthaus.online/index.php?title=Mattermost&amp;diff=1962"/>
		<updated>2025-06-02T11:11:57Z</updated>

		<summary type="html">&lt;p&gt;Tilmann: add public team invite link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;👪️ We use Mattermost to organize ourselves, at https://chat.kanthaus.online/&lt;br /&gt;
&lt;br /&gt;
== Creating a personal account on the public team ==&lt;br /&gt;
You can get an account on the public team by following [https://chat.kanthaus.online/signup_user_complete/?id=gm4f7a56ab813q1a3xp8krcdde&amp;amp;md=link&amp;amp;sbr=sa this link].&lt;br /&gt;
&lt;br /&gt;
== Get invited to the not-so-public section ==&lt;br /&gt;
Your host should make sure to add you to the not-so-public team.&lt;br /&gt;
&lt;br /&gt;
== Channels on the not-so-public team ==&lt;br /&gt;
Our main channel is &amp;lt;code&amp;gt;#kanthaus&amp;lt;/code&amp;gt;. Many channels we use have been historically prefixed by &amp;lt;code&amp;gt;#kanthaus-&amp;lt;/code&amp;gt; because they were in a Slack instance shared with other people.&lt;br /&gt;
&lt;br /&gt;
Some of those channels are private, because they contain private or sensitive information. Those are reserved to Volunteers and Members.&lt;br /&gt;
&lt;br /&gt;
== Known issues ==&lt;br /&gt;
&lt;br /&gt;
This lists the issues we have encountered when switching from Slack to Mattermost:&lt;br /&gt;
* No email integration. We have built the [https://codeberg.org/mailmirror/mailmirror MailMirror plugin] for that, which could still be [https://codeberg.org/mailmirror/mailmirror/issues improved in many ways]&lt;br /&gt;
* No support for reminders of events (for instance stored in an ICS file)&lt;br /&gt;
* Not possible to fully rename the &amp;quot;Town Square&amp;quot; channel (the id will stay `~town-square`)&lt;br /&gt;
[[Category:Digital]]&lt;br /&gt;
[[Category:Social]]&lt;/div&gt;</summary>
		<author><name>Tilmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.kanthaus.online/index.php?title=Volunteer_induction&amp;diff=1943</id>
		<title>Volunteer induction</title>
		<link rel="alternate" type="text/html" href="https://wiki.kanthaus.online/index.php?title=Volunteer_induction&amp;diff=1943"/>
		<updated>2025-04-26T05:19:47Z</updated>

		<summary type="html">&lt;p&gt;Tilmann: added hosting checklist&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;🔰 This page lists knowledge and accesses we give to new [[Positions and evaluations|Volunteers]]. It is formatted as Markdown to make it easier to copy into a pad and tick boxes as the steps get done.&lt;br /&gt;
&lt;br /&gt;
Evaluation facilitators don’t need to do all this work by themselves, they can share the pad with the group to spread the load.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;### Immediately after evaluation&lt;br /&gt;
_to be done by the evaluation facilitator_&lt;br /&gt;
- [ ] invite to #kh_vol_and_mem and #kanthaus-mails&lt;br /&gt;
- [ ] invite to the Signal group&lt;br /&gt;
- [ ] send them the introductory message (see below)&lt;br /&gt;
- [ ] update the website (at https://git.kanthaus.online/kanthaus/kanthaus.online/src/branch/master/user/data/kanthausians.yaml)&lt;br /&gt;
&lt;br /&gt;
### In the next days&lt;br /&gt;
- [ ] explain the hosting duties&lt;br /&gt;
- [ ] invite to Nextcloud (create their account at https://cloud.kanthaus.online/settings/users and add them to the &amp;amp;quot;Kanthaus&amp;amp;quot; group)&lt;br /&gt;
- [ ] show the cloud calendar and file system (see https://wiki.kanthaus.online/Nextcloud)&lt;br /&gt;
- [ ] show KeePassXC&lt;br /&gt;
- [ ] explain CoMe facilitation and mention git, CoMe script and records&lt;br /&gt;
- [ ] explain the email setup, offer access to hello@ and creation of personal kanthaus address (see https://wiki.kanthaus.online/Email)&lt;br /&gt;
- [ ] show the wiki (at https://wiki.kanthaus.online)&lt;br /&gt;
- [ ] explain the collective agreements changes with ukuvota&lt;br /&gt;
- [ ] share link collection&lt;br /&gt;
- [ ] give a door tag&lt;br /&gt;
&lt;br /&gt;
### Eventually&lt;br /&gt;
- [ ] introduce to git with kanthaus.online to upload CoMe minutes&lt;br /&gt;
- [ ] introduce to git with kanthaus-private to update evaluation record&lt;br /&gt;
- [ ] show and go through https://wiki.kanthaus.online/Hosting_checklist&lt;br /&gt;
&lt;br /&gt;
### By request or obvious interest&lt;br /&gt;
- [ ] show grafana (https://grafana.yunity.org)&lt;br /&gt;
- [ ] show the overview of kanthaus repositories on git (https://git.kanthaus.online)&lt;br /&gt;
- [ ] introduce to editing kanthaus.online&lt;br /&gt;
- [ ] introduce to editing the wiki&lt;br /&gt;
- [ ] introduce to any more complex house task (sysadmin, finances, you name it)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Link collection ==&lt;br /&gt;
&lt;br /&gt;
* https://kanthaus.online/public&lt;br /&gt;
* https://cloud.kanthaus.online&lt;br /&gt;
* https://handbook.kanthaus.online&lt;br /&gt;
* https://pad.kanthaus.online/groupHosting#&lt;br /&gt;
* https://git.kanthaus.online/&lt;br /&gt;
* https://premiumize.me&lt;br /&gt;
&lt;br /&gt;
== Template for introductory message ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Congratulations on becoming a Volunteer 🙂&lt;br /&gt;
&lt;br /&gt;
(This message is copy-pasted from https://wiki.kanthaus.online/Volunteer_induction )&lt;br /&gt;
&lt;br /&gt;
I have invited you to the private Mattermost channels&lt;br /&gt;
~vol_and_mem (the channel for volunteers and members only) and&lt;br /&gt;
~kanthaus-mails (where all mails to hello@kanthaus.online get forwarded to), but there are other channels you could be invited to if you wanted, mostly automatically fed ones like:&lt;br /&gt;
&lt;br /&gt;
* ~kanthaus-konto-wawü that prints the charitable association&#039;s bank account activity&lt;br /&gt;
* ~kanthaus-konto-hkw that prints the house owner association&#039;s bank account activity&lt;br /&gt;
* ~residence that prints the results of the weekly script that is used for CoMe&lt;br /&gt;
* ~kanthaus-git that prints activity on kanthaus-private and kanthaus.online git repositories&lt;br /&gt;
* ~kanthaus-finances that is mainly (but rarely) used by the finances team&lt;br /&gt;
&lt;br /&gt;
There also is a Signal group that serves as the only encrypted group communication for Kanthaus volunteers and members. I can add you there if you give me your phone number.&amp;lt;/pre&amp;gt;&lt;br /&gt;
Feel free to point them to the pad where the other induction tasks are listed, so that they can prod other Volunteers and Members if they are interested in getting a specific access or knowledge.&lt;br /&gt;
[[Category:Social]]&lt;/div&gt;</summary>
		<author><name>Tilmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.kanthaus.online/index.php?title=Network&amp;diff=1840</id>
		<title>Network</title>
		<link rel="alternate" type="text/html" href="https://wiki.kanthaus.online/index.php?title=Network&amp;diff=1840"/>
		<updated>2025-03-04T20:58:35Z</updated>

		<summary type="html">&lt;p&gt;Tilmann: /* Device list */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;👻 This page should document some bits of the network infrastructure of Kanthaus. Please maintain so people with a bit of network knowledge can understand and maintain the network. See also [[Server]].&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
[[File:Network topology 2024-10-18 .png|none|thumb]]&amp;lt;!--&lt;br /&gt;
drawn with https://excalidraw.com/&lt;br /&gt;
raw file for modifying: /images/network-topology.svg&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
== TRUNK network ==&lt;br /&gt;
&lt;br /&gt;
the backbone of our network, connecting all Access Points and the central firewall, carries all the different networks via VLAN:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!align=&amp;quot;right&amp;quot; width=&amp;quot;17%&amp;quot;| VLAN-ID&lt;br /&gt;
!width=&amp;quot;33%&amp;quot;| IP Range&lt;br /&gt;
!width=&amp;quot;26%&amp;quot;| Name&lt;br /&gt;
!width=&amp;quot;22%&amp;quot;| Purpose / Devices&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;right&amp;quot;| untagged&lt;br /&gt;
| 192.168.178.x&lt;br /&gt;
| ADMIN&lt;br /&gt;
| configuration tnterfaces of all AP’s &amp;amp;amp; Switches&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;right&amp;quot;| 4&lt;br /&gt;
| 192.168.4.x&lt;br /&gt;
| PRINTER&lt;br /&gt;
| connection between print server (kanthaus-server) and printer&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;right&amp;quot;| 5&lt;br /&gt;
| 192.168.5.x&lt;br /&gt;
| IOT &#039;&#039;(former SMA)&#039;&#039;&lt;br /&gt;
| only access to kanthaus-server and potentially whitelisted internet IP’s + isolated clients¹&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;right&amp;quot;| 100&lt;br /&gt;
| 192.168.100.x&lt;br /&gt;
| RESTRICTED&lt;br /&gt;
| normal internet access + isolated clients¹&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;right&amp;quot;| 101&lt;br /&gt;
| 192.168.101.x&lt;br /&gt;
| VPN&lt;br /&gt;
| tunneled to VPN (currently NL)&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;right&amp;quot;| 102&lt;br /&gt;
| 192.168.102.x&lt;br /&gt;
| UNSECURE&lt;br /&gt;
| normal internet access&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
¹ client isolation does not work between LAN &amp;amp;lt;-&amp;amp;gt; LAN clients&lt;br /&gt;
&lt;br /&gt;
== Wifis ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! SSID&lt;br /&gt;
! Network&lt;br /&gt;
!align=&amp;quot;center&amp;quot;| Encrypt.&lt;br /&gt;
!align=&amp;quot;center&amp;quot;| 802.11r&lt;br /&gt;
!align=&amp;quot;center&amp;quot;| 802.11w&lt;br /&gt;
!align=&amp;quot;center&amp;quot;| Isolation&lt;br /&gt;
! Comment&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;kanthaus&amp;lt;/code&amp;gt;&lt;br /&gt;
| RESTRICTED&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| WPA3&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -¹&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| required&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| on&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;kanthaus-insecure&amp;lt;/code&amp;gt;&lt;br /&gt;
| INSECURE&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| WPA2&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
| unsupported drivers, LAN parties, etc.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;kanthaus-gast&amp;lt;/code&amp;gt;&lt;br /&gt;
| VPN&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| on&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;kh-admin&amp;lt;/code&amp;gt;&lt;br /&gt;
| ADMIN&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| WPA3&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| required&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;kh-iot&amp;lt;/code&amp;gt;&lt;br /&gt;
| IOT&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| WPA2&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| on&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;802.11r:&#039;&#039;&#039; Fast Roaming &#039;&#039;&#039;802.11w&#039;&#039;&#039;: Management Frame Protection&lt;br /&gt;
&lt;br /&gt;
¹ would be cool to have it on, but eventually led to issues. let’s reevaluate in a few months&lt;br /&gt;
&lt;br /&gt;
== Device list ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!width=&amp;quot;15%&amp;quot;| Type&lt;br /&gt;
!width=&amp;quot;18%&amp;quot;| Name&lt;br /&gt;
!width=&amp;quot;19%&amp;quot;| Admin-IP&lt;br /&gt;
!width=&amp;quot;18%&amp;quot;| Location&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;| Hardware&lt;br /&gt;
!width=&amp;quot;8%&amp;quot;| Comments&lt;br /&gt;
|-&lt;br /&gt;
| Router&lt;br /&gt;
| &amp;lt;code&amp;gt;fritz.box&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.200.1&lt;br /&gt;
| K20-1 hallway&lt;br /&gt;
| FritzBox 7530&lt;br /&gt;
| DSL termination (on main network), telephone&lt;br /&gt;
|-&lt;br /&gt;
| Router&lt;br /&gt;
| &amp;lt;code&amp;gt;firewall&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.178.1&lt;br /&gt;
| K20-B rack&lt;br /&gt;
|&lt;br /&gt;
| central router / firewall&lt;br /&gt;
|-&lt;br /&gt;
| AP&lt;br /&gt;
| &amp;lt;code&amp;gt;dragon-k20-0&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.178.207&lt;br /&gt;
| K20-0 hallway&lt;br /&gt;
| Archer C5 v1.2&lt;br /&gt;
|switch with servers&lt;br /&gt;
|-&lt;br /&gt;
| AP&lt;br /&gt;
| &amp;lt;code&amp;gt;dragon-k20-1&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.178.201&lt;br /&gt;
| K20-1 hallway&lt;br /&gt;
| Archer C5 v1.2&lt;br /&gt;
|maybe overloaded&lt;br /&gt;
|-&lt;br /&gt;
| AP&lt;br /&gt;
| &amp;lt;code&amp;gt;dragon-k20-3&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.178.208&lt;br /&gt;
| K20-3 center&lt;br /&gt;
| Archer C5 v1.2&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| AP&lt;br /&gt;
| &amp;lt;code&amp;gt;dragon-k20-B&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.178.206&lt;br /&gt;
| K20-B water room&lt;br /&gt;
| Archer C5 v1.2&lt;br /&gt;
|for IoT devices&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;s&amp;gt;AP&amp;lt;/s&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;s&amp;gt;dragon-k22-0&amp;lt;/s&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;s&amp;gt;192.168.178.204&amp;lt;/s&amp;gt;&lt;br /&gt;
| &amp;lt;s&amp;gt;K22-0 side hallway&amp;lt;/s&amp;gt;&lt;br /&gt;
| &amp;lt;s&amp;gt;Archer C5 v1.2&amp;lt;/s&amp;gt;&lt;br /&gt;
|usually unplugged&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;s&amp;gt;AP&amp;lt;/s&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;s&amp;gt;dragon-k22-1&amp;lt;/s&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;s&amp;gt;192.168.178.202&amp;lt;/s&amp;gt;&lt;br /&gt;
| &amp;lt;s&amp;gt;K22-1-4 piano room&amp;lt;/s&amp;gt;&lt;br /&gt;
| &amp;lt;s&amp;gt;Archer C5 v1.2&amp;lt;/s&amp;gt;&lt;br /&gt;
|broken&lt;br /&gt;
|-&lt;br /&gt;
| AP&lt;br /&gt;
| &amp;lt;code&amp;gt;dragon-k22-2&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.178.203&lt;br /&gt;
| K22-2 hallway&lt;br /&gt;
| Archer C5 v1.2&lt;br /&gt;
|maybe overloaded&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;s&amp;gt;AP&amp;lt;/s&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;s&amp;gt;dragon-k20-outside&amp;lt;/s&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;s&amp;gt;192.168.178.205&amp;lt;/s&amp;gt;&lt;br /&gt;
| &amp;lt;s&amp;gt;K20-0-2 window&amp;lt;/s&amp;gt;&lt;br /&gt;
| &amp;lt;s&amp;gt;Archer C5 v1.2&amp;lt;/s&amp;gt;&lt;br /&gt;
| broken?&lt;br /&gt;
|-&lt;br /&gt;
| Managed Switch&lt;br /&gt;
| k20 firewall switch&lt;br /&gt;
| 192.168.178.9&lt;br /&gt;
| K20-B rack&lt;br /&gt;
| TL-SG108E&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Managed Switch&lt;br /&gt;
| k22 trunk switch&lt;br /&gt;
| 192.168.178.10&lt;br /&gt;
| K22-B stairs&lt;br /&gt;
| GS108E v3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Switch&lt;br /&gt;
| k20 trunk switch&lt;br /&gt;
| -&lt;br /&gt;
| K20-B Rack&lt;br /&gt;
|&lt;br /&gt;
| provides PoE for some AP’s in K20&lt;br /&gt;
|-&lt;br /&gt;
| Server&lt;br /&gt;
| &amp;lt;code&amp;gt;kanthaus-server&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.*.2&lt;br /&gt;
| K20-0 hallway&lt;br /&gt;
| Server, i5-2500K, 16GB Ram&lt;br /&gt;
| file storage, nextcloud, foodsharing gitlab CI Server, housebus logging &amp;amp;amp; time/sunset provider (see [https://git.kanthaus.online/kanthaus/kanthaus-server-services/ Repo])&lt;br /&gt;
|-&lt;br /&gt;
| Main water meter reader&lt;br /&gt;
| &amp;lt;code&amp;gt;mainwatermeter&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.5.37&lt;br /&gt;
| K20 basement (former heating room)&lt;br /&gt;
| ESP32-CAM&lt;br /&gt;
| see [[./water.html|Water usage tracking]]&lt;br /&gt;
|-&lt;br /&gt;
| Warm water meter reader&lt;br /&gt;
| &amp;lt;code&amp;gt;warmwatermeter&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.5.38&lt;br /&gt;
| K20 basement (rainwater room)&lt;br /&gt;
| ESP32-CAM&lt;br /&gt;
| see [[./water.html|Water usage tracking]]&lt;br /&gt;
|-&lt;br /&gt;
| Ventilation watcher&lt;br /&gt;
| &amp;lt;code&amp;gt;ventilation&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.5.39&lt;br /&gt;
| K20 attic&lt;br /&gt;
| ESP32-WROOM&lt;br /&gt;
| see [https://git.kanthaus.online/kanthaus/ventilation-watcher docs]&lt;br /&gt;
|-&lt;br /&gt;
| K20 door&lt;br /&gt;
| &amp;lt;code&amp;gt;k20-door&amp;lt;/code&amp;gt;&lt;br /&gt;
| 192.168.5.40&lt;br /&gt;
| K20 hallway&lt;br /&gt;
| ESP32-CAM&lt;br /&gt;
| see [https://git.kanthaus.online/kanthaus/door-esp32 docs]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Firewall / Router ==&lt;br /&gt;
&lt;br /&gt;
Central point of all subnets, routes between them &lt;br /&gt;
&lt;br /&gt;
* runs OPNSense &lt;br /&gt;
* due to lack of ports on firewall, a VLAN switch added, bound to the firewall, also connecting to the fritz!box&lt;br /&gt;
* Features: &lt;br /&gt;
** VPN client&lt;br /&gt;
** DNS Server&lt;br /&gt;
** DHCP Server&lt;br /&gt;
&lt;br /&gt;
== Access Points ==&lt;br /&gt;
&lt;br /&gt;
* see Device list&lt;br /&gt;
* so far all Archer C5 v1.2&lt;br /&gt;
* centrally configured by OpenWISP: https://openwisp.im.kanthaus.online (only reachable inside the &amp;lt;code&amp;gt;ADMIN&amp;lt;/code&amp;gt; net)&lt;br /&gt;
* starting point for other ethernet cables on that floor&lt;br /&gt;
* in K20 all powered by PoE (802.3af) from the switch in the basement&lt;br /&gt;
&lt;br /&gt;
== Printer (Canon C2025i) ==&lt;br /&gt;
&lt;br /&gt;
* Printer is in its own subnet together with the kanthaus-server&lt;br /&gt;
* On the kanthaus-server, there is &#039;&#039;CUPS&#039;&#039; running with printer sharing and auto discovery in the networks via avahi-daemon&lt;br /&gt;
* In &amp;lt;code&amp;gt;RESTRICTED&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;UNSECURE&amp;lt;/code&amp;gt; the printer is also reachable directly via 192.168.4.153:9100&lt;br /&gt;
&lt;br /&gt;
== kanthaus-server ==&lt;br /&gt;
&lt;br /&gt;
* Most of the services are running inside a docker-compose setup&lt;br /&gt;
** Repo: https://git.kanthaus.online/kanthaus/kanthaus-server-services&lt;br /&gt;
** in &amp;lt;code&amp;gt;/opt/kh-services&amp;lt;/code&amp;gt;&lt;br /&gt;
** checking state: &amp;lt;code&amp;gt;docker-compose ps&amp;lt;/code&amp;gt;&lt;br /&gt;
** starting everything: &amp;lt;code&amp;gt;docker-compose up -d&amp;lt;/code&amp;gt;&lt;br /&gt;
** logs: &amp;lt;code&amp;gt;docker-compose logs -f --tail=20&amp;lt;/code&amp;gt;&lt;br /&gt;
* BTRFS raid for HDD’s under &amp;lt;code&amp;gt;/data&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Random notes ==&lt;br /&gt;
&lt;br /&gt;
=== Building customized OpenWRT for Archer C5 ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh kanthaus-server&lt;br /&gt;
sudo -iu openwrt-builder&lt;br /&gt;
cd openwrt&lt;br /&gt;
make&lt;br /&gt;
ls -l bin/targets/ath79/generic/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== included changes ====&lt;br /&gt;
* root password&lt;br /&gt;
* default IP &amp;lt;code&amp;gt;192.168.178.200&amp;lt;/code&amp;gt; in ADMIN range&lt;br /&gt;
* switch: all ports in ADMIN net&lt;br /&gt;
* disabled DNS rebind protection&lt;br /&gt;
* wireless interface names&lt;br /&gt;
* additional packages&lt;br /&gt;
** openwisp-config&lt;br /&gt;
** prometheus-node-exporter-lu&lt;br /&gt;
** luci-ssl (for https)&lt;br /&gt;
** ebtables (for [https://blog.matthias-larisch.de/openwrt_client_isolation/ effective client isolation])&lt;br /&gt;
** tcpdump (for easier debugging)&lt;br /&gt;
&lt;br /&gt;
=== Upgrading customized OpenWRT ===&lt;br /&gt;
&lt;br /&gt;
Documentation: https://openwrt.org/docs/guide-developer/toolchain/use-buildsystem&lt;br /&gt;
 ssh kanthaus-server&lt;br /&gt;
 sudo -iu openwrt-builder&lt;br /&gt;
 cd openwrt&lt;br /&gt;
 git pull&lt;br /&gt;
 git checkout v23.05.2&lt;br /&gt;
Edit &amp;lt;code&amp;gt;feeds.conf&amp;lt;/code&amp;gt; to change the branch for each feed to the new version, e.g. &amp;lt;code&amp;gt;...;openwrt-23.05&amp;lt;/code&amp;gt;&lt;br /&gt;
 ./scripts/feeds update -a&lt;br /&gt;
 ./scripts/feeds install -a&lt;br /&gt;
 make -j4 defconfig download clean world&lt;br /&gt;
 ls -l bin/targets/ath79/generic/&lt;br /&gt;
Errors during &amp;lt;code&amp;gt;make world&amp;lt;/code&amp;gt; are to be expected, usually the set of default packages changed and dependency conflicts are happening. Investigate generated the &amp;lt;code&amp;gt;.config&amp;lt;/code&amp;gt; file and compare with the official ones at https://downloads.openwrt.org/releases/23.05.2/targets/ath79/generic/config.buildinfo&lt;br /&gt;
&lt;br /&gt;
=== How to update OPNsense ===&lt;br /&gt;
&lt;br /&gt;
There is a short downtime involved during the two reboots, usually 2 minutes each.&lt;br /&gt;
&lt;br /&gt;
# Join the &amp;lt;code&amp;gt;kanthaus-admin&amp;lt;/code&amp;gt; wifi network and log in to 192.168.178.1 (user &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt;, password in keepass). Export the configuration to make a backup.&lt;br /&gt;
# Check if updates are available (System-&amp;amp;gt;Firmware-&amp;amp;gt;Updates)&lt;br /&gt;
# In case of minor updates, just use the button to perform&lt;br /&gt;
# If there is a major update (2x per year), download the newest version from https://opnsense.org/download/, unzip and flash to any USB stick&lt;br /&gt;
# Take a VGA monitor, a USB keyboard and the USB stick to the K20 basement big room, open the rack box and connect the devices to the small computer (HP)&lt;br /&gt;
# Log in with the USB keyboard (same credentials as above) and trigger a reboot. It should now boot from the USB stick.&lt;br /&gt;
# Press any key when it prompts to run the “Importer”. Now it will boot up a live environment and read the configuration file. If successful, network services should run as before.&lt;br /&gt;
# If all looks good, it’s time to install to disk. Run &amp;lt;code&amp;gt;opnsense-installer&amp;lt;/code&amp;gt; from the shell (either on local keyboard or via ssh), choose ZFS and let the installer do its job.&lt;br /&gt;
# Remove the USB stick and reboot again.&lt;br /&gt;
# Check if the system came up good.&lt;br /&gt;
# Perform any last updates from the web UI.&lt;br /&gt;
# Delete the configuration backup again, it can contain secrets.&lt;br /&gt;
&lt;br /&gt;
=== Pitfalls ===&lt;br /&gt;
&lt;br /&gt;
* We use 802.1q VLAN tagging. All switches everywhere need to have at least passive passthrough support, otherwise the Vlans disappear at that switch. I don’t know of any gigabit switch that does not support this.&lt;br /&gt;
* Again Vlan: Managed switches normally need to have all VLANs that should be forwarded (also tagged -&amp;amp;gt; tagged forward) defined in them.&lt;br /&gt;
* Again Vlan: Some Access Points like WDR841 v7/v8 cannot handle tagged and untagged vlan on the same port at the same time. So far, we don’t have any equipment like that and likely we will never have, but just to know…&lt;br /&gt;
* Again Vlan: fritz boxes have their switch in managed vlan mode and don’t forward any tagged vlan&lt;/div&gt;</summary>
		<author><name>Tilmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.kanthaus.online/index.php?title=Ukuvota&amp;diff=1837</id>
		<title>Ukuvota</title>
		<link rel="alternate" type="text/html" href="https://wiki.kanthaus.online/index.php?title=Ukuvota&amp;diff=1837"/>
		<updated>2025-02-27T07:05:35Z</updated>

		<summary type="html">&lt;p&gt;Tilmann: /* Access */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;🎯 Our small and simple score voting tool.&lt;br /&gt;
&lt;br /&gt;
== Access ==&lt;br /&gt;
&lt;br /&gt;
* to the [https://ukuvota.kanthaus.online/#/ tool]&lt;br /&gt;
* to the [https://gitlab.com/yunity/ukuvota code]&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
&lt;br /&gt;
* Create score votings in the range of -3 to +3 with public link.&lt;br /&gt;
* Specify the times for proposal and voting phase.&lt;br /&gt;
* Specify an additional weight for negative scores.&lt;br /&gt;
* Fully transparent results view.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
We use ukuvota for all important decision-making: &lt;br /&gt;
&lt;br /&gt;
* Constitutional changes&lt;br /&gt;
* Changes to the Collective Agreements&lt;br /&gt;
* any questions with sufficiently high complexity and/or weight&lt;br /&gt;
&lt;br /&gt;
In the past it was also used in more fun ways, like collect proposals for naming humans (in this case the decision of the crowd was never binding of course… 😉).&lt;br /&gt;
[[Category:Digital]]&lt;br /&gt;
[[Category:Social]]&lt;/div&gt;</summary>
		<author><name>Tilmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.kanthaus.online/index.php?title=Washing_room&amp;diff=1836</id>
		<title>Washing room</title>
		<link rel="alternate" type="text/html" href="https://wiki.kanthaus.online/index.php?title=Washing_room&amp;diff=1836"/>
		<updated>2025-02-27T06:28:09Z</updated>

		<summary type="html">&lt;p&gt;Tilmann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;🌀 A room for sorting and cleaning clothes and food.{{Roombox|RoomNumber=K20-0-1}}&lt;br /&gt;
&lt;br /&gt;
== Purposes ==&lt;br /&gt;
* wash and dry potentially dirty saved food&lt;br /&gt;
* wash laundry&lt;br /&gt;
* storage for green boxes, big plastic bags and bike bags for dumpster diving&lt;br /&gt;
* storage for categorized dirty laundry&lt;br /&gt;
&lt;br /&gt;
== Specials ==&lt;br /&gt;
* washing machine can operate with rain water&lt;br /&gt;
* waterproof screen and sound system provide entertainment while washing food&lt;br /&gt;
&lt;br /&gt;
== Laundry ==&lt;br /&gt;
We have a pretty elaborate idea of how communal laundry should be done. Please refer to the [[Laundry|laundry page]] for further details.&lt;br /&gt;
&lt;br /&gt;
== Food ==&lt;br /&gt;
You may find saved food in here which needs cleaning and sorting. Saving food is one of the main tasks in our house. [[Saving food|Here’s the guide]] to do it properly.&lt;br /&gt;
[[Category:Rooms]]&lt;/div&gt;</summary>
		<author><name>Tilmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.kanthaus.online/index.php?title=Laundry&amp;diff=1835</id>
		<title>Laundry</title>
		<link rel="alternate" type="text/html" href="https://wiki.kanthaus.online/index.php?title=Laundry&amp;diff=1835"/>
		<updated>2025-02-27T06:06:32Z</updated>

		<summary type="html">&lt;p&gt;Tilmann: /* Wet laundry */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;👗 Everything concerning laundry - be it dirty or clean.&lt;br /&gt;
&lt;br /&gt;
== Communal clothing ==&lt;br /&gt;
Since everything in Kanthaus is communal by default, this is the main section.&lt;br /&gt;
&lt;br /&gt;
=== Dirty laundry sorting ===&lt;br /&gt;
Dirty laundry can be put into the laundry containers in the [[Main bathroom|Main Bathroom]] (K20-2-1b). When those are full they go to the fitting sections in the [[Washing room|Washing Room]] K20-0-1b.&lt;br /&gt;
&lt;br /&gt;
The categories are as follows: &lt;br /&gt;
&lt;br /&gt;
* 40°C: Standard laundry (e.g. most clothes) &lt;br /&gt;
&lt;br /&gt;
* 60°C: Hygiene laundry (e.g. underwear, socks, tissues, bed sheets, towels) &lt;br /&gt;
&lt;br /&gt;
* 90°C: Kill-everything laundry (e.g. kitchen towels, butt towels)&lt;br /&gt;
&lt;br /&gt;
=== Wet laundry ===&lt;br /&gt;
Spaces to dry laundry are: &lt;br /&gt;
* the outside clothes lines &lt;br /&gt;
* the [[2nd bathroom|2nd Bathroom]] in K22-2-2 &lt;br /&gt;
* K20 staircase ceiling-mounted rack (only if outdoor temperature is above 5°C, to prevent mold on the walls)&lt;br /&gt;
* K20-0 wash room ceiling-mounted rack&lt;br /&gt;
* if need be more mobile drying racks can be put up in ventilated rooms&lt;br /&gt;
&lt;br /&gt;
=== Dry laundry ===&lt;br /&gt;
Clothes baskets can be found in the [[Washing room|Washing Room]]. Often they are also left right beside the drying rack and can be used to take down the laundry when dry. Dry communal laundry goes into the [[Communal closet|Communal Closet]]. Just leave the basket on the floor, sorting it in can be done during [[Power hour|Power Hour]].&lt;br /&gt;
&lt;br /&gt;
== Private clothing ==&lt;br /&gt;
If you stay only for a short time or have clothes which you don’t want to share, you should not put them in the laundry baskets - chances are high that you won’t find you stuff again in a reasonable amount of time. Simply run a machine yourself; it should be adequately labeled to make it doable. Please make sure that you have enough things to wash, so that the machine is full, or add some Kanthaus pieces.&lt;br /&gt;
&lt;br /&gt;
When drying your private clothing make sure you somehow label them as yours. Otherwise they might end up in the [[Communal closet|Communal Closet]] after all.&lt;br /&gt;
[[Category:Repro]]&lt;br /&gt;
[[Category:Practicalities]]&lt;/div&gt;</summary>
		<author><name>Tilmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.kanthaus.online/index.php?title=Ventilation&amp;diff=1834</id>
		<title>Ventilation</title>
		<link rel="alternate" type="text/html" href="https://wiki.kanthaus.online/index.php?title=Ventilation&amp;diff=1834"/>
		<updated>2025-02-27T05:57:21Z</updated>

		<summary type="html">&lt;p&gt;Tilmann: /* Central filters in the attic */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;🎐 Kanthaus has a [https://en.wikipedia.org/wiki/Heat_recovery_ventilation central heat-recovery ventilation system], consisting of a [https://shop.systemair.com/de-DE/save--vtc--700--l--wrg--geraet/p609989 Systemair SAVE VTC 700] ventilation unit in the K22 attic and an extended system of pipes in valves to the majority of the rooms.&lt;br /&gt;
&lt;br /&gt;
The ventilation unit supplies fresh air to the house, slightly warmed by the stale air it extracts from the house. Both air flows do not mix, they just transfer the heat inside the heat exchanger.&lt;br /&gt;
&lt;br /&gt;
The system automatically adjusts the fan speed to maintain a consistent relative indoor humidity, thereby saving electric power.&lt;br /&gt;
&lt;br /&gt;
== Air flow schema ==&lt;br /&gt;
[[File:Ventilation-plan.png|thumb]]&lt;br /&gt;
There are exceptions between floors: &lt;br /&gt;
&lt;br /&gt;
* [[Silent office|Silent Office]] has supply instead of intake&lt;br /&gt;
* K22-0 just has one intake in the [[Freeshop storage|Free Shop Storage]], but no supply - it pulls fresh air from the hallway and through the [[Freeshop lounge|Free Shop Lounge]]&lt;br /&gt;
&lt;br /&gt;
Also, ventilation piping is work-in-progress and will be extended as the house evolves.&lt;br /&gt;
&lt;br /&gt;
== Statistics ==&lt;br /&gt;
&lt;br /&gt;
You can get some statistics about the ventilation system in [[Grafana]]. Those statistics are pulled from the ventilation unit via [https://git.kanthaus.online/kanthaus/ventilation-watcher an ESP32 device communicating with it via Modbus].&lt;br /&gt;
&lt;br /&gt;
== Maintenance ==&lt;br /&gt;
&lt;br /&gt;
* Intake filters in the rooms: change and wash every 1-3 months when heating is running&lt;br /&gt;
* Central filters in the attic: replace and buy new filter every 12 months, ideally before winter&lt;br /&gt;
* Heat exchanger in the attic: wash every 1-2 years, maybe?&lt;br /&gt;
&lt;br /&gt;
=== Change and wash intake filters ===&lt;br /&gt;
&lt;br /&gt;
They are located in all rooms where air is sucked into the pipe, to prevent the pipe from getting dirty. Especially when radiators are running, a lot of dust is kicked up in the air and ends in the filters.&lt;br /&gt;
&lt;br /&gt;
To check if a change is necessary, measure the air flow into the intake with an air flow meter (currently in K22-4). It doesn’t hurt to replace the filters more often.&lt;br /&gt;
&lt;br /&gt;
You can take the filters out by simply pulling out the valve.&lt;br /&gt;
&lt;br /&gt;
Fresh filters are in a box, currently in the Spitzboden (K22-4). Put the new filter on the outside of the pipe and insert the valve again. It’s a bit tricky to prevent the filter from getting pushed too far into the pipe.&lt;br /&gt;
&lt;br /&gt;
You can wash the filters with a lot of water and dry them. Then they can be reused a few times, until holes appear.&lt;br /&gt;
&lt;br /&gt;
=== Central filters in the attic ===&lt;br /&gt;
&lt;br /&gt;
The SAVE VTC 700 ventilation devices has two filters, one for fresh air and one for used air. It’s important to replace the fresh air filter every 12 months, because it gets filled with dust and dirt from outside air. Especially spring and summer add a lot of pollution. When the filter gets full, the air supply can get smelly and the ventilation system doesn’t provide as much air. Hence, it’s good to replace the fresh air filter in autumn.&lt;br /&gt;
&lt;br /&gt;
The used air filter doesn’t need to replaced regularly, as we have to filters on the intakes in the room (see section above).&lt;br /&gt;
&lt;br /&gt;
First, buy a new fitting F7 filter, like those: &lt;br /&gt;
* https://www.as-luftfilter.de/Ersatzflter-Lueftungsgeraete/Systemair/VTC-700/Ersatzfilter-passend-fuer-Systemair-VTC-700---Gueteklasse-F7.html&lt;br /&gt;
* https://rt-handel.de/Ersatzfilter-Lueftung/Systemair/VTC-700/Ersatzfilter-passend-fuer-Systemair-VTC-700-Filterklasse-F7&lt;br /&gt;
&lt;br /&gt;
Then turn off the ventilation device, open the main cover and unscrew the left panel. Slide out the old filter and take a picture to show it to interested people ;) Insert the new filter, carefully screw the panel on, close the main cover and turn on ventilation again.&lt;br /&gt;
&lt;br /&gt;
=== Wash heat exchanger ===&lt;br /&gt;
&lt;br /&gt;
We didn’t do this so far, but the heat-exchanger can be rinsed with water to get rid of fine dust. This should increase its efficiency.&lt;br /&gt;
[[Category:Technical]]&lt;br /&gt;
[[Category:Repro]]&lt;/div&gt;</summary>
		<author><name>Tilmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.kanthaus.online/index.php?title=Ventilation&amp;diff=1833</id>
		<title>Ventilation</title>
		<link rel="alternate" type="text/html" href="https://wiki.kanthaus.online/index.php?title=Ventilation&amp;diff=1833"/>
		<updated>2025-02-27T05:54:13Z</updated>

		<summary type="html">&lt;p&gt;Tilmann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;🎐 Kanthaus has a [https://en.wikipedia.org/wiki/Heat_recovery_ventilation central heat-recovery ventilation system], consisting of a [https://shop.systemair.com/de-DE/save--vtc--700--l--wrg--geraet/p609989 Systemair SAVE VTC 700] ventilation unit in the K22 attic and an extended system of pipes in valves to the majority of the rooms.&lt;br /&gt;
&lt;br /&gt;
The ventilation unit supplies fresh air to the house, slightly warmed by the stale air it extracts from the house. Both air flows do not mix, they just transfer the heat inside the heat exchanger.&lt;br /&gt;
&lt;br /&gt;
The system automatically adjusts the fan speed to maintain a consistent relative indoor humidity, thereby saving electric power.&lt;br /&gt;
&lt;br /&gt;
== Air flow schema ==&lt;br /&gt;
[[File:Ventilation-plan.png|thumb]]&lt;br /&gt;
There are exceptions between floors: &lt;br /&gt;
&lt;br /&gt;
* [[Silent office|Silent Office]] has supply instead of intake&lt;br /&gt;
* K22-0 just has one intake in the [[Freeshop storage|Free Shop Storage]], but no supply - it pulls fresh air from the hallway and through the [[Freeshop lounge|Free Shop Lounge]]&lt;br /&gt;
&lt;br /&gt;
Also, ventilation piping is work-in-progress and will be extended as the house evolves.&lt;br /&gt;
&lt;br /&gt;
== Statistics ==&lt;br /&gt;
&lt;br /&gt;
You can get some statistics about the ventilation system in [[Grafana]]. Those statistics are pulled from the ventilation unit via [https://git.kanthaus.online/kanthaus/ventilation-watcher an ESP32 device communicating with it via Modbus].&lt;br /&gt;
&lt;br /&gt;
== Maintenance ==&lt;br /&gt;
&lt;br /&gt;
* Intake filters in the rooms: change and wash every 1-3 months when heating is running&lt;br /&gt;
* Central filters in the attic: replace and buy new filter every 12 months, ideally before winter&lt;br /&gt;
* Heat exchanger in the attic: wash every 1-2 years, maybe?&lt;br /&gt;
&lt;br /&gt;
=== Change and wash intake filters ===&lt;br /&gt;
&lt;br /&gt;
They are located in all rooms where air is sucked into the pipe, to prevent the pipe from getting dirty. Especially when radiators are running, a lot of dust is kicked up in the air and ends in the filters.&lt;br /&gt;
&lt;br /&gt;
To check if a change is necessary, measure the air flow into the intake with an air flow meter (currently in K22-4). It doesn’t hurt to replace the filters more often.&lt;br /&gt;
&lt;br /&gt;
You can take the filters out by simply pulling out the valve.&lt;br /&gt;
&lt;br /&gt;
Fresh filters are in a box, currently in the Spitzboden (K22-4). Put the new filter on the outside of the pipe and insert the valve again. It’s a bit tricky to prevent the filter from getting pushed too far into the pipe.&lt;br /&gt;
&lt;br /&gt;
You can wash the filters with a lot of water and dry them. Then they can be reused a few times, until holes appear.&lt;br /&gt;
&lt;br /&gt;
=== Central filters in the attic ===&lt;br /&gt;
&lt;br /&gt;
The SAVE VTC 700 ventilation devices has two filters, one for fresh air and one for used air. It’s important to replace the fresh air filter every 12 months, because it gets filled with dust and dirt from outside air. Especially spring and summer add a lot of pollution. When the filter gets full, the air supply can get smelly and the ventilation system doesn’t provide as much air. Hence, it’s good to replace the fresh air filter in autumn.&lt;br /&gt;
&lt;br /&gt;
The used air filter doesn’t need to replaced regularly, as we have to filters on the intakes in the room (see section above).&lt;br /&gt;
&lt;br /&gt;
First, buy a new fitting F7 filter, like those: - https://www.as-luftfilter.de/Ersatzflter-Lueftungsgeraete/Systemair/VTC-700/Ersatzfilter-passend-fuer-Systemair-VTC-700—Gueteklasse-F7.html - https://rt-handel.de/Ersatzfilter-Lueftung/Systemair/VTC-700/Ersatzfilter-passend-fuer-Systemair-VTC-700-Filterklasse-F7&lt;br /&gt;
&lt;br /&gt;
Then turn off the ventilation device, open the main cover and unscrew the left panel. Slide out the old filter and take a picture to show it to interested people ;) Insert the new filter, carefully screw the panel on, close the main cover and turn on ventilation again.&lt;br /&gt;
&lt;br /&gt;
=== Wash heat exchanger ===&lt;br /&gt;
&lt;br /&gt;
We didn’t do this so far, but the heat-exchanger can be rinsed with water to get rid of fine dust. This should increase its efficiency.&lt;br /&gt;
[[Category:Technical]]&lt;br /&gt;
[[Category:Repro]]&lt;/div&gt;</summary>
		<author><name>Tilmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.kanthaus.online/index.php?title=Ventilation&amp;diff=1832</id>
		<title>Ventilation</title>
		<link rel="alternate" type="text/html" href="https://wiki.kanthaus.online/index.php?title=Ventilation&amp;diff=1832"/>
		<updated>2025-02-27T05:52:40Z</updated>

		<summary type="html">&lt;p&gt;Tilmann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;🎐 Kanthaus has a [https://en.wikipedia.org/wiki/Heat_recovery_ventilation central heat-recovery ventilation system], consisting of a [https://shop.systemair.com/de-DE/save--vtc--700--l--wrg--geraet/p609989 Systemair SAVE VTC 700] ventilation unit in the K22 attic and an extended system of pipes in valves to the majority of the rooms.&lt;br /&gt;
&lt;br /&gt;
The ventilation unit supplies fresh air to the house, slightly warmed by the stale air it extracts from the house. Both air flows do not mix, they just transfer the heat inside the heat exchanger.&lt;br /&gt;
&lt;br /&gt;
The system automatically adjusts the fan speed to maintain a consistent relative indoor humidity, thereby saving electric power.&lt;br /&gt;
&lt;br /&gt;
== Air flow schema ==&lt;br /&gt;
[[File:Ventilation-plan.png|thumb]]&lt;br /&gt;
There are exceptions between floors: &lt;br /&gt;
&lt;br /&gt;
* [[Silent office|Silent Office]] has supply instead of intake&lt;br /&gt;
* K22-0 just has one intake in the [[Freeshop storage|Free Shop Storage]], but no supply - it pulls fresh air from the hallway and through the [[Freeshop lounge|Free Shop Lounge]]&lt;br /&gt;
&lt;br /&gt;
Also, ventilation piping is work-in-progress and will be extended as the house evolves.&lt;br /&gt;
&lt;br /&gt;
== Statistics ==&lt;br /&gt;
&lt;br /&gt;
You can get some statistics about the ventilation system in [[Grafana]]. Those statistics are pulled from the ventilation unit via [https://git.kanthaus.online/kanthaus/ventilation-watcher an ESP32 device communicating with it via Modbus].&lt;br /&gt;
&lt;br /&gt;
== Maintenance ==&lt;br /&gt;
&lt;br /&gt;
* Intake filters in the rooms: change and wash every 1-3 months when heating is running&lt;br /&gt;
* Central filters in the attic: replace and buy new filter every 12 months, ideally before winter&lt;br /&gt;
* Heat exchanger in the attic: wash every 1-2 years, maybe?&lt;br /&gt;
&lt;br /&gt;
=== Change and wash intake filters ===&lt;br /&gt;
&lt;br /&gt;
They are located in all rooms where air is sucked into the pipe, to prevent the pipe from getting dirty. Especially when radiators are running, a lot of dust is kicked up in the air and ends in the filters.&lt;br /&gt;
&lt;br /&gt;
To check if a change is necessary, measure the air flow into the intake with an air flow meter (currently in K22-1-1). It doesn’t hurt to replace the filters more often.&lt;br /&gt;
&lt;br /&gt;
You can take the filters out by simply pulling out the valve.&lt;br /&gt;
&lt;br /&gt;
Fresh filters are in a box, currently in the Ex-food-storage (K22-1-1) as of 2023-02-23. Put the new filter on the outside of the pipe and insert the valve again. It’s a bit tricky to prevent the filter from getting pushed too far into the pipe.&lt;br /&gt;
&lt;br /&gt;
You can wash the filters with a lot of water and dry them. Then they can be reused a few times, until holes appear.&lt;br /&gt;
&lt;br /&gt;
=== Central filters in the attic ===&lt;br /&gt;
&lt;br /&gt;
The SAVE VTC 700 ventilation devices has two filters, one for fresh air and one for used air. It’s important to replace the fresh air filter every 12 months, because it gets filled with dust and dirt from outside air. Especially spring and summer add a lot of pollution. When the filter gets full, the air supply can get smelly and the ventilation system doesn’t provide as much air. Hence, it’s good to replace the fresh air filter in autumn.&lt;br /&gt;
&lt;br /&gt;
The used air filter doesn’t need to replaced regularly, as we have to filters on the intakes in the room (see section above).&lt;br /&gt;
&lt;br /&gt;
First, buy a new fitting F7 filter, like those: - https://www.as-luftfilter.de/Ersatzflter-Lueftungsgeraete/Systemair/VTC-700/Ersatzfilter-passend-fuer-Systemair-VTC-700—Gueteklasse-F7.html - https://rt-handel.de/Ersatzfilter-Lueftung/Systemair/VTC-700/Ersatzfilter-passend-fuer-Systemair-VTC-700-Filterklasse-F7&lt;br /&gt;
&lt;br /&gt;
Then turn off the ventilation device, open the main cover and unscrew the left panel. Slide out the old filter and take a picture to show it to interested people ;) Insert the new filter, carefully screw the panel on, close the main cover and turn on ventilation again.&lt;br /&gt;
&lt;br /&gt;
=== Wash heat exchanger ===&lt;br /&gt;
&lt;br /&gt;
We didn’t do this so far, but the heat-exchanger can be rinsed with water to get rid of fine dust. This should increase its efficiency.&lt;br /&gt;
[[Category:Technical]]&lt;br /&gt;
[[Category:Repro]]&lt;/div&gt;</summary>
		<author><name>Tilmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.kanthaus.online/index.php?title=Server&amp;diff=1260</id>
		<title>Server</title>
		<link rel="alternate" type="text/html" href="https://wiki.kanthaus.online/index.php?title=Server&amp;diff=1260"/>
		<updated>2024-11-06T17:28:15Z</updated>

		<summary type="html">&lt;p&gt;Tilmann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;⭐️ We have a server running locally that provides a few services to residents as well as guests.&lt;br /&gt;
&lt;br /&gt;
== File sharing services ==&lt;br /&gt;
&lt;br /&gt;
The server provides the possibility to store and exchange data. Some services are publicly available (e.g. connecting with an anonymous user), for others you need a user account with some privileges. All file services are only available in the &amp;lt;code&amp;gt;full&amp;lt;/code&amp;gt; [[Wifi|network]] and served via [[wikipedia:Samba_(software)|Samba]]. Use your computers file manager to browse the available network computers and locate the server as &amp;lt;code&amp;gt;KANTHAUS-SERVER&amp;lt;/code&amp;gt;. If this doesn’t show up in your file manager or the link is broken, you can try entering &amp;lt;code&amp;gt;smb://kanthaus-server/&amp;lt;/code&amp;gt; directly into your file managers address bar. This should work on most Linux environments.&lt;br /&gt;
&lt;br /&gt;
=== Getting a user account ===&lt;br /&gt;
To get a user account, speak to an admin (e.g. Antonin or Tilmann). The admin will add you to the Ansible user configuration and ask you to set a temporary password using your account. You can change the password yourself, e.g. via &amp;lt;code&amp;gt;smbpasswd -r kanthaus-server -U yourusername&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Actually, you have two passwords: &lt;br /&gt;
&lt;br /&gt;
* System user account: Used for local access and SSH access. Change password using &amp;lt;code&amp;gt;passwd&amp;lt;/code&amp;gt; when logged in &lt;br /&gt;
* Samba account: Used for accessing the samba network shares. Change password using command above remotely or using &amp;lt;code&amp;gt;smbpasswd&amp;lt;/code&amp;gt; when logged in.&lt;br /&gt;
&lt;br /&gt;
==== Kanthaus cloud copy ====&lt;br /&gt;
* The share &amp;lt;code&amp;gt;kanthaus-public&amp;lt;/code&amp;gt; offers an anonymously usable read only copy of the public part of the kanthaus cloud.&lt;br /&gt;
* The share &amp;lt;code&amp;gt;cloud.kanthaus.online&amp;lt;/code&amp;gt; offers a read only copy of the whole kanthaus cloud. You need to have a user with the permissions class &amp;lt;code&amp;gt;kanthaus&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The cloud copy is synchronized from the Kanthaus cloud once every minute.&lt;br /&gt;
&lt;br /&gt;
==== Internal cloud ====&lt;br /&gt;
The share &amp;lt;code&amp;gt;internalcloud&amp;lt;/code&amp;gt; stores some data which should only be available from inside Kanthaus (e.g. financial data) and is only available to users with the permissions class &amp;lt;code&amp;gt;internal&amp;lt;/code&amp;gt;. Please make sure to only put security sensitive stuff in here and also make sure to not leak your user credentials or the contents of this folder, when you have access to it.&lt;br /&gt;
&lt;br /&gt;
This folder is part of the daily backup.&lt;br /&gt;
&lt;br /&gt;
==== Home folder ====&lt;br /&gt;
Every user account also has their personal &amp;lt;code&amp;gt;home&amp;lt;/code&amp;gt; folder available as the &amp;lt;code&amp;gt;homes&amp;lt;/code&amp;gt; storage. All data you put here is only available to yourself. Inside the home folder, there is a directory called &amp;lt;code&amp;gt;storage&amp;lt;/code&amp;gt;. This folder lies on an easily expandable, cheap hard-disk storage. It is slower to access but suitable to store lots of data (e.g. backups of your computer).&lt;br /&gt;
&lt;br /&gt;
Your home folder is part of a daily backup. Please put files called &amp;lt;code&amp;gt;.nobackup&amp;lt;/code&amp;gt; into folders that you don’t want to be backed up (e.g. to save storage space). The &amp;lt;code&amp;gt;storage&amp;lt;/code&amp;gt; folder is &#039;&#039;&#039;not&#039;&#039;&#039; part of the backup, but the hard-disks have a raid configuration to tolerate the loss of one hard-disk.&lt;br /&gt;
&lt;br /&gt;
== Shell access ==&lt;br /&gt;
&lt;br /&gt;
When you have a user account, you can also use SSH to connect to the server and use it for computing tasks. To set an initial password, ask an admin. When you already have file sharing access, you can add your SSH public key to the &amp;lt;code&amp;gt;homes/.ssh/authorized_keys&amp;lt;/code&amp;gt; and use that for logging in. Same as above: In your home directory there is a symlinked folder called &amp;lt;code&amp;gt;storage&amp;lt;/code&amp;gt; which is on spinning disks, whereby the rest of your home folder is on limited SSD space.&lt;br /&gt;
&lt;br /&gt;
== SFTP Access ==&lt;br /&gt;
&lt;br /&gt;
You can use software like FileZilla to access your home folder through &amp;lt;code&amp;gt;sftp://kanthaus-server&amp;lt;/code&amp;gt; providing your username. See the Shell Access section above for other details.&lt;br /&gt;
&lt;br /&gt;
=== How to unlock the encrypted &amp;lt;code&amp;gt;kanthaus-server&amp;lt;/code&amp;gt; via network ===&lt;br /&gt;
* be in &amp;lt;code&amp;gt;kh-admin&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ssh -p 2222 root@192.168.178.249&amp;lt;/code&amp;gt;&lt;br /&gt;
** your key must be stored on the server in &amp;lt;code&amp;gt;/etc/dropbear-initramfs/authorized_keys&amp;lt;/code&amp;gt; -&amp;amp;gt; &amp;lt;code&amp;gt;update-initramfs -u&amp;lt;/code&amp;gt;&lt;br /&gt;
** ED25519 key fingerprint: &amp;lt;code&amp;gt;SHA256:mvCVYx8D/Fv/qYq+a/H4MoRAcfExAUsAFW3L2NVHnD0&amp;lt;/code&amp;gt;&lt;br /&gt;
* enter password (stored in keepass -&amp;amp;gt; Server)&lt;br /&gt;
&lt;br /&gt;
== System specs ==&lt;br /&gt;
&lt;br /&gt;
* System is designed to save power but still have some computing resources. &lt;br /&gt;
* CPU: Intel Core i5-2500K (4x 3.3 GHz) &lt;br /&gt;
* Ram: 16 GB DDR3L&lt;br /&gt;
* SSD: 1 TB Samsung 860 Evo as root file system &lt;br /&gt;
* HDD: BTRFS pool with 2 disks. Current usable size 3 TB&lt;br /&gt;
&lt;br /&gt;
== Backups ==&lt;br /&gt;
&lt;br /&gt;
Backups are done using Borgmatic. The backup target is the local hard-disk storage, so it does not safe us against fire or theft of the computer. We might think about adding a remote backup as well.&lt;br /&gt;
&lt;br /&gt;
== Other services ==&lt;br /&gt;
&lt;br /&gt;
* Foodsharing Gitlab CI runner (dockerized)&lt;br /&gt;
* House bus services&lt;br /&gt;
** local Web interface (dockerized)&lt;br /&gt;
** Logging daemon to externally hosted influxdb&lt;br /&gt;
* Virtual machines (kvm/libvirt)&lt;/div&gt;</summary>
		<author><name>Tilmann</name></author>
	</entry>
</feed>