<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Linux &#8211; Tomas hjemmeside</title>
	<atom:link href="https://tomas.dk/ps/category/linux/feed/" rel="self" type="application/rss+xml" />
	<link>https://tomas.dk/ps</link>
	<description>Min foto/vejr/3D print blog</description>
	<lastBuildDate>Sun, 12 Jan 2025 17:24:40 +0000</lastBuildDate>
	<language>da-DK</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.3</generator>
	<item>
		<title>Vejrstation del 4</title>
		<link>https://tomas.dk/ps/vejrstation-del-4/</link>
		
		<dc:creator><![CDATA[Tomas Jensen]]></dc:creator>
		<pubDate>Sun, 12 Jan 2025 17:16:32 +0000</pubDate>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Gør det selv]]></category>
		<category><![CDATA[Hobby]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Teknik]]></category>
		<category><![CDATA[Vejr]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mariadb]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[python3]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[webserver]]></category>
		<guid isPermaLink="false">https://tomas.dk/ps/?p=2710</guid>

					<description><![CDATA[Det hele samles i en web-server med en mariadb database.Først oprettes en database med: Databasen burde nu være klar til brug. For at hente data til databasen har jeg lavet et lille python script. Python skal være version 3.11 eller derover. Husk DTR skal være klippet i FTDI kablet, da arduinoen ellers resetter hver gang&#8230; <a class="more-link" href="https://tomas.dk/ps/vejrstation-del-4/">Læs mere <span class="screen-reader-text">Vejrstation del 4</span></a>]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1004" height="1024" data-attachment-id="2713" data-permalink="https://tomas.dk/ps/vejrstation-del-4/vippervipperbund/" data-orig-file="https://tomas.dk/ps/wp-content/uploads/2025/01/VipperVipperBund.jpg" data-orig-size="2459,2508" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;1.7&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;XQ-BQ52&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1734605440&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;5.11&quot;,&quot;iso&quot;:&quot;200&quot;,&quot;shutter_speed&quot;:&quot;0.00625&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}" data-image-title="VipperVipperBund" data-image-description="" data-image-caption="" data-medium-file="https://tomas.dk/ps/wp-content/uploads/2025/01/VipperVipperBund-294x300.jpg" data-large-file="https://tomas.dk/ps/wp-content/uploads/2025/01/VipperVipperBund-1004x1024.jpg" src="https://tomas.dk/ps/wp-content/uploads/2025/01/VipperVipperBund-1004x1024.jpg" alt="Gammel vipperbund med vipper og proximitysensor." class="wp-image-2713" srcset="https://tomas.dk/ps/wp-content/uploads/2025/01/VipperVipperBund-1004x1024.jpg 1004w, https://tomas.dk/ps/wp-content/uploads/2025/01/VipperVipperBund-294x300.jpg 294w, https://tomas.dk/ps/wp-content/uploads/2025/01/VipperVipperBund-147x150.jpg 147w, https://tomas.dk/ps/wp-content/uploads/2025/01/VipperVipperBund-768x783.jpg 768w, https://tomas.dk/ps/wp-content/uploads/2025/01/VipperVipperBund-1506x1536.jpg 1506w, https://tomas.dk/ps/wp-content/uploads/2025/01/VipperVipperBund-2008x2048.jpg 2008w, https://tomas.dk/ps/wp-content/uploads/2025/01/VipperVipperBund-1568x1599.jpg 1568w" sizes="(max-width: 1004px) 100vw, 1004px" /></figure>



<p>Det hele samles i en web-server med en mariadb database.<br />Først oprettes en database med:</p>



<pre class="wp-block-code" style="font-size:10px"><code>CREATE DATABASE arduinovejr;
CREATE USER 'vejr'@'localhost' IDENTIFIED BY '_DITPASSWORD_';
GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT ON arduinovejr.* TO 'vejr'@'localhost';
FLUSH PRIVILEGES;

USE arduinovejr;
CREATE TABLE vejrdata ( tid DATETIME, temp_inde FLOAT(6,2), temp_ud FLOAT(6,2), tryk FLOAT(6,2), temp_cpu FLOAT(6,2), humid FLOAT(6,2), regn1min FLOAT(6,2), regn5min FLOAT(6,2), temp_1 FLOAT(6,2), temp2 FLOAT(6,2), temp3 FLOAT(6,2) );</code></pre>



<p>Databasen burde nu være klar til brug.</p>



<p>For at hente data til databasen har jeg lavet et lille python script. Python skal være version 3.11 eller derover.</p>



<pre class="wp-block-code" style="font-size:10px"><code>#!/usr/bin/python3.11

import serial
import time
from datetime import datetime
import re
import mysql.connector as mysql

# Setup serial

tty = serial.Serial(port='/dev/ttyUSB0', baudrate=9600, timeout=1)

# Setup mysql connection
vejrDB = mysql.connect(
        host = "localhost",
        user = "vejr",
        password = "DITPASSWORD",
        database = "arduinovejr")

def speakToArduino(txt):
    tty.write(bytes(txt, 'utf-8'))
    time.sleep(0.05)
    data = tty.readline().decode('utf-8').rstrip()
    return data

time.sleep(2)

svar = "na"

while not (re.search(r'&#91;0-9\.:\?]+', svar)):
    svar = speakToArduino('\n')
    time.sleep(0.1)

svar = speakToArduino('getPress')
#print("Lufttryk         : %8s"%svar)
tryk = svar

svar = speakToArduino('getTempIn')
#print("Temperatur cpu   : %8s"%svar)
tempCpu = svar

svar = speakToArduino('getTempOut')
#print("Temperatur ude   : %8s"%svar)
tempUd = svar

svar = speakToArduino('getOutHumidity')
#print("Luftfugtighed ude: %8s"%svar)
humid = svar

svar = speakToArduino('getrain5')
#print("5 minuters regn  : %8s"%svar)
rain5 = svar

svar = speakToArduino('getrain1')
#print("1 minuters regn  : %8s"%svar)
rain1 = svar


vejrCursor = vejrDB.cursor()
now = datetime.now()
tid = now.strftime('%Y-%m-%d %H:%M:%S')

sql = "INSERT INTO vejrdata (tid, temp_cpu, tryk, temp_ud, humid, regn5min, regn1min ) VALUES (%s, %s, %s, %s, %s, %s, %s)"
val = (str(tid), str(tempCpu), str(tryk), str(tempUd), str(humid), str(rain5), str(rain1))

vejrCursor.execute(sql, val)
vejrDB.commit()
</code></pre>



<p>Husk DTR skal være klippet i FTDI kablet, da arduinoen ellers resetter hver gang programmet køres. Brugeren der kører scriptet, skal også være i dialout gruppen. Gøres med: &#8216;sudo usermod -a -G dialout exampleusername&#8217;.</p>



<p>Jeg kører scriptet i crontab:</p>



<pre class="wp-block-code" style="font-size:10px"><code>* * * * * /home/BRUGER/arduinoVejr/getWeather</code></pre>



<p>Dernæst skal der laves et lille php script for at displayenheden kan hente data:</p>



<pre class="wp-block-code" style="font-size:10px"><code>&lt;?php
header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");

error_reporting(0);

# Hent logindata til databasen.
# Disse ligger ikke i web-serverens datapath og kan derfor ikke hentes af andet
# skriptet.
include('/home/BRUGER/vejrgraf/dbinfo.php');

$conn = new mysqli("localhost", $dbuser, $dbpasswd, $dbname);

#$result = $conn-&gt;query("SELECT systtamp, t_out, rho, ws, dir0, wc, r1h, r24h FROM vejrlog ORDER BY systtamp DESC LIMIT 1");

$result = $conn-&gt;query("SELECT tid, temp_ud, tryk, humid FROM vejrdata ORDER BY tid DESC LIMIT 1");
while ( $rs = $result-&gt;fetch_array(MYSQLI_ASSOC) ) {
        $tid     = $rs&#91;"tid"];
        $temp_ud = $rs&#91;"temp_ud"];
        $humid   = $rs&#91;"humid"];
        $tryk    = $rs&#91;"tryk"];
}
# Hent summerede data

# find 24 timer regn
#
$result   = $conn-&gt;query("SELECT SUM(regn1min) AS r24timer FROM vejrdata WHERE tid &gt;= NOW() - INTERVAL 1 DAY;");
while ( $rs = $result-&gt;fetch_array(MYSQLI_ASSOC) ) {
        $r24timer = $rs&#91;"r24timer"];
}


# find 1 time regn
#
$result   = $conn-&gt;query("SELECT SUM(regn1min) AS r1timer FROM vejrdata WHERE tid &gt;= NOW() - INTERVAL 1 HOUR;");
while ( $rs = $result-&gt;fetch_array(MYSQLI_ASSOC) ) {
        $r1timer = $rs&#91;"r1timer"];
}

# find 15 min regn
#
$result   = $conn-&gt;query("SELECT SUM(regn1min) AS r15min from vejrdata where tid &gt;= NOW() - INTERVAL 15 MINUTE;");
while ( $rs = $result-&gt;fetch_array(MYSQLI_ASSOC) ) {
        $r15min = $rs&#91;"r15min"];
}


$outp = "";
#while ( $rs = $result-&gt;fetch_array(MYSQLI_ASSOC) ) {

        $outp .= '{"systid":"'  . $tid      . '",';
        $outp .= '"tempout":'   . $temp_ud  . ',';
        $outp .= '"rhout":'     . $humid    . ',';
        $outp .= '"tryk":'      . $tryk     . ',';
        $outp .= '"r1hour":'    . $r1timer  . ',';
        $outp .= '"r24hour":'   . $r24timer . ',';
        $outp .= '"r15min":'    . $r15min   . '}';
#}

$conn-&gt;close();

echo ($outp);
?&gt;
</code></pre>



<pre class="wp-block-code" style="font-size:10px"><code>Logindata filen:
&lt;?php
        $dbname = "arduinovejr";
        $dbuser = "vejr";
        $dbpasswd = "DITPASSWORD";
?&gt;
</code></pre>



<p>Min webserver er en apache i et temmelig standard setup.</p>



<p>Har du spørgsmål, så skriv endelig på tcj snabel_a tomas.dk</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2710</post-id>	</item>
		<item>
		<title>Vejrstation del 2</title>
		<link>https://tomas.dk/ps/vejrstation-del-2/</link>
		
		<dc:creator><![CDATA[Tomas Jensen]]></dc:creator>
		<pubDate>Sun, 08 Dec 2024 13:51:57 +0000</pubDate>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Hobby]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Natur]]></category>
		<category><![CDATA[Teknik]]></category>
		<category><![CDATA[Vejr]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[3d print]]></category>
		<category><![CDATA[freecad]]></category>
		<category><![CDATA[pla]]></category>
		<category><![CDATA[sensorer]]></category>
		<category><![CDATA[vejrstation]]></category>
		<guid isPermaLink="false">https://tomas.dk/ps/?p=2672</guid>

					<description><![CDATA[Vejrstationen er delt i flere hovedkomponenter: Alt 3D arbejde er lavet med FreeCad.Hent tegninger via følgende links:&#8211; Engelsk hus.&#8211; Regnmåler.&#8211; Stueenhed.&#8211; Kabinet for ardunio. Delene der placeres udendørs er printet i PETG og indendørs dele er printet i PLA. Hvis der er nogen der har interesse, eksporterer jeg gerne til et format der kan læses&#8230; <a class="more-link" href="https://tomas.dk/ps/vejrstation-del-2/">Læs mere <span class="screen-reader-text">Vejrstation del 2</span></a>]]></description>
										<content:encoded><![CDATA[
<figure data-carousel-extra='{"blog_id":1,"permalink":"https:\/\/tomas.dk\/ps\/vejrstation-del-2\/"}'  class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large is-style-twentytwentyone-border"><img decoding="async" width="587" height="864" data-attachment-id="2657" data-permalink="https://tomas.dk/ps/engelskhus/" data-orig-file="https://tomas.dk/ps/wp-content/uploads/2024/11/EngelskHus.png" data-orig-size="587,864" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="EngelskHus" data-image-description="" data-image-caption="&lt;p&gt;Engelsk hus med AM2120 sensor&lt;/p&gt;
" data-medium-file="https://tomas.dk/ps/wp-content/uploads/2024/11/EngelskHus-204x300.png" data-large-file="https://tomas.dk/ps/wp-content/uploads/2024/11/EngelskHus.png" data-id="2657" src="https://tomas.dk/ps/wp-content/uploads/2024/11/EngelskHus.png" alt="" class="wp-image-2657" srcset="https://tomas.dk/ps/wp-content/uploads/2024/11/EngelskHus.png 587w, https://tomas.dk/ps/wp-content/uploads/2024/11/EngelskHus-204x300.png 204w, https://tomas.dk/ps/wp-content/uploads/2024/11/EngelskHus-102x150.png 102w" sizes="(max-width: 587px) 100vw, 587px" /><figcaption class="wp-element-caption">Engelsk hus med AM2120 sensor</figcaption></figure>
</figure>



<p>Vejrstationen er delt i flere hovedkomponenter:</p>



<ul class="wp-block-list">
<li>Engelsk hus, der indeholder temperatur og luftfugtighedssensor, AM2120</li>



<li>Regnsensor som er af vippetypen. Her kan bruges enten et reed relæ eller en proximity sensor der virker ved 5V.</li>



<li>En Arduino der aflæser værdier fra sensorer og holder dem klar til af læsning fra en webserver. I denne enhed sidder ligeledes lufttrykmåleren.</li>



<li>En stueenhed, der kan vise de vigtigste data. Denne er baseret på ESP32. Den  måler ligeledes stuetemperaturen.</li>
</ul>



<figure data-carousel-extra='{"blog_id":1,"permalink":"https:\/\/tomas.dk\/ps\/vejrstation-del-2\/"}'  class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><img decoding="async" width="587" height="864" data-attachment-id="2657" data-permalink="https://tomas.dk/ps/engelskhus/" data-orig-file="https://tomas.dk/ps/wp-content/uploads/2024/11/EngelskHus.png" data-orig-size="587,864" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="EngelskHus" data-image-description="" data-image-caption="&lt;p&gt;Engelsk hus med AM2120 sensor&lt;/p&gt;
" data-medium-file="https://tomas.dk/ps/wp-content/uploads/2024/11/EngelskHus-204x300.png" data-large-file="https://tomas.dk/ps/wp-content/uploads/2024/11/EngelskHus.png" data-id="2657" src="https://tomas.dk/ps/wp-content/uploads/2024/11/EngelskHus.png" alt="" class="wp-image-2657" srcset="https://tomas.dk/ps/wp-content/uploads/2024/11/EngelskHus.png 587w, https://tomas.dk/ps/wp-content/uploads/2024/11/EngelskHus-204x300.png 204w, https://tomas.dk/ps/wp-content/uploads/2024/11/EngelskHus-102x150.png 102w" sizes="(max-width: 587px) 100vw, 587px" /><figcaption class="wp-element-caption">Engelsk hus med AM2120 sensor</figcaption></figure>



<figure class="wp-block-image size-large"><img decoding="async" width="698" height="818" data-attachment-id="2658" data-permalink="https://tomas.dk/ps/regnmaaler/" data-orig-file="https://tomas.dk/ps/wp-content/uploads/2024/11/Regnmaaler.png" data-orig-size="698,818" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="" data-image-description="" data-image-caption="&lt;p&gt;Regnmåler. Her vist med reed relæ.&lt;/p&gt;
" data-medium-file="https://tomas.dk/ps/wp-content/uploads/2024/11/Regnmaaler-256x300.png" data-large-file="https://tomas.dk/ps/wp-content/uploads/2024/11/Regnmaaler.png" data-id="2658" src="https://tomas.dk/ps/wp-content/uploads/2024/11/Regnmaaler.png" alt="Regnmåler" class="wp-image-2658" srcset="https://tomas.dk/ps/wp-content/uploads/2024/11/Regnmaaler.png 698w, https://tomas.dk/ps/wp-content/uploads/2024/11/Regnmaaler-256x300.png 256w, https://tomas.dk/ps/wp-content/uploads/2024/11/Regnmaaler-128x150.png 128w" sizes="(max-width: 698px) 100vw, 698px" /><figcaption class="wp-element-caption">Regnmåler. Her vist med reed relæ.</figcaption></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="825" height="544" data-attachment-id="2655" data-permalink="https://tomas.dk/ps/displayfront/" data-orig-file="https://tomas.dk/ps/wp-content/uploads/2024/11/DisplayFront.png" data-orig-size="825,544" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="DisplayFront" data-image-description="" data-image-caption="&lt;p&gt;Stueenhed med OLED skærm&lt;/p&gt;
" data-medium-file="https://tomas.dk/ps/wp-content/uploads/2024/11/DisplayFront-300x198.png" data-large-file="https://tomas.dk/ps/wp-content/uploads/2024/11/DisplayFront.png" data-id="2655" src="https://tomas.dk/ps/wp-content/uploads/2024/11/DisplayFront.png" alt="" class="wp-image-2655" srcset="https://tomas.dk/ps/wp-content/uploads/2024/11/DisplayFront.png 825w, https://tomas.dk/ps/wp-content/uploads/2024/11/DisplayFront-300x198.png 300w, https://tomas.dk/ps/wp-content/uploads/2024/11/DisplayFront-150x99.png 150w, https://tomas.dk/ps/wp-content/uploads/2024/11/DisplayFront-768x506.png 768w" sizes="auto, (max-width: 825px) 100vw, 825px" /><figcaption class="wp-element-caption">Stueenhed med OLED skærm</figcaption></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="892" height="675" data-attachment-id="2654" data-permalink="https://tomas.dk/ps/displaybottom/" data-orig-file="https://tomas.dk/ps/wp-content/uploads/2024/11/DisplayBottom.png" data-orig-size="892,675" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="DisplayBottom" data-image-description="" data-image-caption="&lt;p&gt;Stueenhed. Vist med temperatursensor og plads til kabel for sensoren.&lt;/p&gt;
" data-medium-file="https://tomas.dk/ps/wp-content/uploads/2024/11/DisplayBottom-300x227.png" data-large-file="https://tomas.dk/ps/wp-content/uploads/2024/11/DisplayBottom.png" data-id="2654" src="https://tomas.dk/ps/wp-content/uploads/2024/11/DisplayBottom.png" alt="" class="wp-image-2654" srcset="https://tomas.dk/ps/wp-content/uploads/2024/11/DisplayBottom.png 892w, https://tomas.dk/ps/wp-content/uploads/2024/11/DisplayBottom-300x227.png 300w, https://tomas.dk/ps/wp-content/uploads/2024/11/DisplayBottom-150x114.png 150w, https://tomas.dk/ps/wp-content/uploads/2024/11/DisplayBottom-768x581.png 768w" sizes="auto, (max-width: 892px) 100vw, 892px" /><figcaption class="wp-element-caption">Stueenhed. Vist med temperatursensor og plads til kabel for sensoren.</figcaption></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="971" height="591" data-attachment-id="2653" data-permalink="https://tomas.dk/ps/arduinobox/" data-orig-file="https://tomas.dk/ps/wp-content/uploads/2024/11/ArduinoBox.png" data-orig-size="971,591" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="ArduinoBox" data-image-description="" data-image-caption="&lt;p&gt;Kabinet for arduinoen&lt;/p&gt;
" data-medium-file="https://tomas.dk/ps/wp-content/uploads/2024/11/ArduinoBox-300x183.png" data-large-file="https://tomas.dk/ps/wp-content/uploads/2024/11/ArduinoBox.png" data-id="2653" src="https://tomas.dk/ps/wp-content/uploads/2024/11/ArduinoBox.png" alt="" class="wp-image-2653" srcset="https://tomas.dk/ps/wp-content/uploads/2024/11/ArduinoBox.png 971w, https://tomas.dk/ps/wp-content/uploads/2024/11/ArduinoBox-300x183.png 300w, https://tomas.dk/ps/wp-content/uploads/2024/11/ArduinoBox-150x91.png 150w, https://tomas.dk/ps/wp-content/uploads/2024/11/ArduinoBox-768x467.png 768w" sizes="auto, (max-width: 971px) 100vw, 971px" /><figcaption class="wp-element-caption">Kabinet for arduinoen</figcaption></figure>
</figure>



<p>Alt 3D arbejde er lavet med FreeCad.<br />Hent tegninger via følgende links:<br />&#8211; <a href="https://tomas.dk/download/EngelskHus.FCStd">Engelsk hus</a>.<br />&#8211; <a href="https://tomas.dk/download/Regnmaaler.FCStd">Regnmåler</a>.<br />&#8211; <a href="https://tomas.dk/download/Display.FCStd">Stueenhed</a>.<br />&#8211; <a href="https://tomas.dk/download/ArduinoBox.FCStd">Kabinet for ardunio</a>.</p>



<p>Delene der placeres udendørs er printet i PETG og indendørs dele er printet i PLA.</p>



<p>Hvis der er nogen der har interesse, eksporterer jeg gerne til et format der kan læses af andre designværktøjer. Send da en mail til tcj(a)tomas.dk</p>



<p>Opdatering 12. januar 2025:<br />Jeg har opdaget, at der er problemer med vippebunden i det engelske hus. Vippen har det med at hænge p.g.a. at der samler sig en dråbe på undersiden. Overfladespændingen gør, at vippen &#8220;limer&#8221; sig fast. Derfor er designet nu lavet så vandet nemmere render fra og kontaktfladen er minimeret. Der ud over er det en fordel at give både vippebunden og vippen noget silicone. Dette kan enten være på spray eller som siliconefedt. Det sidste holder bedst men det skal være et meget tyndt lag. Det nye design kan hentes via dette link: <strong><a href="https://tomas.dk/download/VejrStation/VippeBundV2.step">VippeBundV2.step</a></strong></p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="798" height="630" data-attachment-id="2708" data-permalink="https://tomas.dk/ps/vejrstation-del-2/vippebundv2/" data-orig-file="https://tomas.dk/ps/wp-content/uploads/2024/12/VippebundV2.png" data-orig-size="798,630" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="VippebundV2" data-image-description="" data-image-caption="" data-medium-file="https://tomas.dk/ps/wp-content/uploads/2024/12/VippebundV2-300x237.png" data-large-file="https://tomas.dk/ps/wp-content/uploads/2024/12/VippebundV2.png" src="https://tomas.dk/ps/wp-content/uploads/2024/12/VippebundV2.png" alt="" class="wp-image-2708" srcset="https://tomas.dk/ps/wp-content/uploads/2024/12/VippebundV2.png 798w, https://tomas.dk/ps/wp-content/uploads/2024/12/VippebundV2-300x237.png 300w, https://tomas.dk/ps/wp-content/uploads/2024/12/VippebundV2-150x118.png 150w, https://tomas.dk/ps/wp-content/uploads/2024/12/VippebundV2-768x606.png 768w" sizes="auto, (max-width: 798px) 100vw, 798px" /></figure>



<p>Desuden er hængslerne forstærket og der er lavet hul til en 8 mm proximitysensor.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2672</post-id>	</item>
		<item>
		<title>Vejrstation del 1</title>
		<link>https://tomas.dk/ps/vejrstation-del-1/</link>
		
		<dc:creator><![CDATA[Tomas Jensen]]></dc:creator>
		<pubDate>Sun, 17 Nov 2024 20:34:51 +0000</pubDate>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Teknik]]></category>
		<category><![CDATA[Vejr]]></category>
		<category><![CDATA[3d print]]></category>
		<category><![CDATA[luftfugtighed]]></category>
		<category><![CDATA[programmering]]></category>
		<category><![CDATA[regn]]></category>
		<category><![CDATA[temperatur]]></category>
		<category><![CDATA[vejrstation]]></category>
		<guid isPermaLink="false">https://tomas.dk/ps/?p=2664</guid>

					<description><![CDATA[Indledning I forbindelse med vi flyttede adresse besluttede jeg mig for at droppe min noget bedagede LaCrosse Weather Station 2300. Den var efterhånden blevet noget ustabil i den trådløse forbindelse, vindmåleren var slidt ned i lejerne og diverse stik viste tegn på korrosion. I denne del af serien om min nye vejrstation vil jeg prøve&#8230; <a class="more-link" href="https://tomas.dk/ps/vejrstation-del-1/">Læs mere <span class="screen-reader-text">Vejrstation del 1</span></a>]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1136" height="1024" data-attachment-id="2659" data-permalink="https://tomas.dk/ps/regntemp/" data-orig-file="https://tomas.dk/ps/wp-content/uploads/2024/11/RegnTemp-scaled.jpg" data-orig-size="2560,2307" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;2.3&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;XQ-BQ52&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1731850260&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;10.22&quot;,&quot;iso&quot;:&quot;200&quot;,&quot;shutter_speed&quot;:&quot;0.000625&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}" data-image-title="RegnTemp" data-image-description="" data-image-caption="" data-medium-file="https://tomas.dk/ps/wp-content/uploads/2024/11/RegnTemp-300x270.jpg" data-large-file="https://tomas.dk/ps/wp-content/uploads/2024/11/RegnTemp-1136x1024.jpg" src="https://tomas.dk/ps/wp-content/uploads/2024/11/RegnTemp-1136x1024.jpg" alt="" class="wp-image-2659" srcset="https://tomas.dk/ps/wp-content/uploads/2024/11/RegnTemp-1136x1024.jpg 1136w, https://tomas.dk/ps/wp-content/uploads/2024/11/RegnTemp-300x270.jpg 300w, https://tomas.dk/ps/wp-content/uploads/2024/11/RegnTemp-150x135.jpg 150w, https://tomas.dk/ps/wp-content/uploads/2024/11/RegnTemp-768x692.jpg 768w, https://tomas.dk/ps/wp-content/uploads/2024/11/RegnTemp-1536x1384.jpg 1536w, https://tomas.dk/ps/wp-content/uploads/2024/11/RegnTemp-2048x1846.jpg 2048w, https://tomas.dk/ps/wp-content/uploads/2024/11/RegnTemp-1568x1413.jpg 1568w" sizes="auto, (max-width: 1136px) 100vw, 1136px" /></figure>



<ul class="wp-block-list">
<li><a href="#Indledning" data-type="internal" data-id="#Indledning">Indledning</a></li>



<li><a href="#Oversigt">Oversigt</a></li>
</ul>



<h2 class="wp-block-heading">Indledning</h2>



<p id="Indledning">I forbindelse med vi flyttede adresse besluttede jeg mig for at droppe min noget bedagede LaCrosse Weather Station 2300. Den var efterhånden blevet noget ustabil i den trådløse forbindelse, vindmåleren var slidt ned i lejerne og diverse stik viste tegn på korrosion.</p>



<p>I denne del af serien om min nye vejrstation vil jeg prøve at dele mine overvejelser om valg af materialer, dimensioner og skematisk opbygning af setup&#8217;et.<br />Næste del vil indeholde mine tegninger og den software jeg har skrevet.</p>



<p>Jeg kunne enten købe en ny, dyr og formodentlig ville den ikke have drivere og software for Linux eller selv bygge en, med de udfordringer det ville give mig.</p>



<p>Valget var dog ikke så svært, så jeg valgte selv at bygge en, da jeg relativt nemt ville kunne printe plastikdelene på min 3D printer.</p>



<h2 class="wp-block-heading" id="Oversigt">Oversigt</h2>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="741" height="417" data-attachment-id="2663" data-permalink="https://tomas.dk/ps/vejrstationoversigt-drawio/" data-orig-file="https://tomas.dk/ps/wp-content/uploads/2024/11/VejrStationOversigt.drawio.png" data-orig-size="741,417" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="VejrStationOversigt.drawio" data-image-description="" data-image-caption="" data-medium-file="https://tomas.dk/ps/wp-content/uploads/2024/11/VejrStationOversigt.drawio-300x169.png" data-large-file="https://tomas.dk/ps/wp-content/uploads/2024/11/VejrStationOversigt.drawio.png" src="https://tomas.dk/ps/wp-content/uploads/2024/11/VejrStationOversigt.drawio.png" alt="" class="wp-image-2663" srcset="https://tomas.dk/ps/wp-content/uploads/2024/11/VejrStationOversigt.drawio.png 741w, https://tomas.dk/ps/wp-content/uploads/2024/11/VejrStationOversigt.drawio-300x169.png 300w, https://tomas.dk/ps/wp-content/uploads/2024/11/VejrStationOversigt.drawio-150x84.png 150w" sizes="auto, (max-width: 741px) 100vw, 741px" /></figure>



<p>Til at opsamle data valgte jeg at bruge en Arduino pro mini 5V 16MHz version. Den er nem at kode, fylder lidt, nem at montere på et prototype print.<br />Temperatur måler blev en AM2120, da den indeholder både temperatur og luftfugtighedssensorer. Luftfugtighedssensoren måler teoretisk fra 0-99% modsat flere andre typer, som kun måler 20-90%. Jeg har også en måling der viser 99.9%.<br />Lufttryk måles med en BMP280. Den er enkel og simpel at skrive kode til og rimelig præsis. I min kode har jeg lavet mulighed for at justere temperatur og tryk, da sensorerne har en anelse afvigelse. Trykket afhænger desuden af højden, så det er der mulighed for at tilpasse.</p>



<p>Databehandling og lagring i database udføres på en Raspberry PI 4 med 8GB RAM og en ekstern harddisk/USB drev.<br />Operativsystemet er Linux og det meste af koden er skrevet i Python, perl og lidt php. <br />Databasen er Mariadb.<br />Webserver er Apache.</p>



<p>Jeg har lavet en meget simpel api til at levere data til et display der viser de vigtigste data.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1200" height="783" data-attachment-id="2665" data-permalink="https://tomas.dk/ps/vejrstation-del-1/tempude/" data-orig-file="https://tomas.dk/ps/wp-content/uploads/2024/11/TempUde-scaled.jpg" data-orig-size="2560,1670" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;2.3&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;XQ-BQ52&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1731873655&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;10.22&quot;,&quot;iso&quot;:&quot;200&quot;,&quot;shutter_speed&quot;:&quot;0.05&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}" data-image-title="TempUde" data-image-description="" data-image-caption="" data-medium-file="https://tomas.dk/ps/wp-content/uploads/2024/11/TempUde-300x196.jpg" data-large-file="https://tomas.dk/ps/wp-content/uploads/2024/11/TempUde-1200x783.jpg" src="https://tomas.dk/ps/wp-content/uploads/2024/11/TempUde-1200x783.jpg" alt="" class="wp-image-2665" srcset="https://tomas.dk/ps/wp-content/uploads/2024/11/TempUde-1200x783.jpg 1200w, https://tomas.dk/ps/wp-content/uploads/2024/11/TempUde-300x196.jpg 300w, https://tomas.dk/ps/wp-content/uploads/2024/11/TempUde-150x98.jpg 150w, https://tomas.dk/ps/wp-content/uploads/2024/11/TempUde-768x501.jpg 768w, https://tomas.dk/ps/wp-content/uploads/2024/11/TempUde-1536x1002.jpg 1536w, https://tomas.dk/ps/wp-content/uploads/2024/11/TempUde-2048x1336.jpg 2048w, https://tomas.dk/ps/wp-content/uploads/2024/11/TempUde-1568x1023.jpg 1568w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /></figure>



<p>Der ud over har jeg lidt mere avanceret visning på min vejr hjemmeside: <a href="https://tomas.dk/Vejr/Vejrgrafer.html">Vejrgrafer</a></p>



<p>I regnmåleren har jeg benyttet en proximity sensor, da jeg havde en til at ligge og da reed relæet drillede. Den magnet jeg havde påtænkt at bruge, var så kraftig, at den kunne holde vippebægeret selvom det var helt fyldt med vand. Løsningen blev at erstatte magneten med en stump 6mm gevindstump på ca. 8mm længde. De 4 mm blev filet flad og proximity sensoren blev anbragt så føleren var ca. 1,5mm fra fladen. Det var desuden nødvendigt, at bore et 8mm hul i bunden af regnmåleren.</p>



<div class="wp-block-cover"><span aria-hidden="true" class="wp-block-cover__background has-background-dim"></span><img loading="lazy" decoding="async" width="1200" height="900" data-attachment-id="2666" data-permalink="https://tomas.dk/ps/vejrstation-del-1/regntempcloseup-2/" data-orig-file="https://tomas.dk/ps/wp-content/uploads/2024/11/RegnTempCloseup-1-scaled.jpg" data-orig-size="2560,1920" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;2.3&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;XQ-BQ52&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1731850287&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;10.22&quot;,&quot;iso&quot;:&quot;200&quot;,&quot;shutter_speed&quot;:&quot;0.00125&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}" data-image-title="RegnTempCloseup" data-image-description="" data-image-caption="" data-medium-file="https://tomas.dk/ps/wp-content/uploads/2024/11/RegnTempCloseup-1-300x225.jpg" data-large-file="https://tomas.dk/ps/wp-content/uploads/2024/11/RegnTempCloseup-1-1200x900.jpg" class="wp-block-cover__image-background wp-image-2666" alt="" src="https://tomas.dk/ps/wp-content/uploads/2024/11/RegnTempCloseup-1-1200x900.jpg" data-object-fit="cover" srcset="https://tomas.dk/ps/wp-content/uploads/2024/11/RegnTempCloseup-1-1200x900.jpg 1200w, https://tomas.dk/ps/wp-content/uploads/2024/11/RegnTempCloseup-1-300x225.jpg 300w, https://tomas.dk/ps/wp-content/uploads/2024/11/RegnTempCloseup-1-150x113.jpg 150w, https://tomas.dk/ps/wp-content/uploads/2024/11/RegnTempCloseup-1-768x576.jpg 768w, https://tomas.dk/ps/wp-content/uploads/2024/11/RegnTempCloseup-1-1536x1152.jpg 1536w, https://tomas.dk/ps/wp-content/uploads/2024/11/RegnTempCloseup-1-2048x1536.jpg 2048w, https://tomas.dk/ps/wp-content/uploads/2024/11/RegnTempCloseup-1-1568x1176.jpg 1568w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /><div class="wp-block-cover__inner-container is-layout-flow wp-block-cover-is-layout-flow">
<p class="has-text-align-center has-large-font-size">Regnmåler med proximity Sensor</p>
</div></div>



<p>Alle dele er printet i PETG, da det er rimeligt nemt at printe i, vejrbestandig og fysisk stærkt.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2664</post-id>	</item>
		<item>
		<title>Vejrstationen er atter online</title>
		<link>https://tomas.dk/ps/vejrstationen-er-atter-online/</link>
		
		<dc:creator><![CDATA[Tomas Jensen]]></dc:creator>
		<pubDate>Sun, 15 Sep 2024 10:34:59 +0000</pubDate>
				<category><![CDATA[Gør det selv]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Teknik]]></category>
		<category><![CDATA[Vejr]]></category>
		<category><![CDATA[almuevej]]></category>
		<category><![CDATA[hjemmeside]]></category>
		<category><![CDATA[meteorologi]]></category>
		<category><![CDATA[Skanderborg]]></category>
		<category><![CDATA[vejr]]></category>
		<guid isPermaLink="false">https://tomas.dk/ps/?p=2618</guid>

					<description><![CDATA[Så virker vejrstationen atter. Dog måles der nu ikke længere vind, da dette ikke giver mening hvor den er opsat. Der er en del træer og huse omkring, så målinger ville fremstå temmelig tilfældige og ikke korrekte. Grafer kan findes her. Denne side mangler dog opdatering. Vejrstationen er hjemmebygget. Jeg vil senere lave et detaljeret&#8230; <a class="more-link" href="https://tomas.dk/ps/vejrstationen-er-atter-online/">Læs mere <span class="screen-reader-text">Vejrstationen er atter online</span></a>]]></description>
										<content:encoded><![CDATA[
<p>Så virker vejrstationen atter. Dog måles der nu ikke længere vind, da dette ikke giver mening hvor den er opsat. Der er en del træer og huse omkring, så målinger ville fremstå temmelig tilfældige og ikke korrekte.</p>



<figure class="wp-block-image size-full"><a href="https://vejr.tomas.dk/cgi-bin/vejretnu"><img loading="lazy" decoding="async" width="765" height="409" data-attachment-id="2620" data-permalink="https://tomas.dk/ps/vejrstationen-er-atter-online/nyvejr/" data-orig-file="https://tomas.dk/ps/wp-content/uploads/2024/09/NyVejr.png" data-orig-size="765,409" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="NyVejr" data-image-description="" data-image-caption="" data-medium-file="https://tomas.dk/ps/wp-content/uploads/2024/09/NyVejr-300x160.png" data-large-file="https://tomas.dk/ps/wp-content/uploads/2024/09/NyVejr.png" src="https://tomas.dk/ps/wp-content/uploads/2024/09/NyVejr.png" alt="" class="wp-image-2620" srcset="https://tomas.dk/ps/wp-content/uploads/2024/09/NyVejr.png 765w, https://tomas.dk/ps/wp-content/uploads/2024/09/NyVejr-300x160.png 300w, https://tomas.dk/ps/wp-content/uploads/2024/09/NyVejr-150x80.png 150w" sizes="auto, (max-width: 765px) 100vw, 765px" /></a></figure>



<p>Grafer kan findes <a href="https://vejr.tomas.dk/Vejr/Vejrgrafer.html">her</a>. Denne side mangler dog opdatering.</p>



<p>Vejrstationen er hjemmebygget. Jeg vil senere lave et detaljeret indlæg om, hvordan den er bygget og hvilke overvejelser der har været inde over design og materialevalg.</p>



<p>Rettelse:<br />Siden med grafer er nu rettet så grafer er retvisende.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2618</post-id>	</item>
		<item>
		<title>Autofirewall for Linux MTA running postfix</title>
		<link>https://tomas.dk/ps/autofirewall-for-linux-mta-running-postfix/</link>
		
		<dc:creator><![CDATA[Tomas Jensen]]></dc:creator>
		<pubDate>Thu, 14 Jan 2016 12:38:16 +0000</pubDate>
				<category><![CDATA[Hobby]]></category>
		<category><![CDATA[Ikke kategoriseret]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Teknik]]></category>
		<guid isPermaLink="false">http://vejr.tomas.dk/ps/?p=1051</guid>

					<description><![CDATA[I have written a perl program that protects a Linux MTA running postfix. The program snifs on /var/log/mail. If a host is doing something wrong/illegal he will be blocked for 24 hours. Three illegal attemps in 20 minutes triggers a drop action in firewalld.Sorry for the comments in the script being in danish. Installation: Update&#8230; <a class="more-link" href="https://tomas.dk/ps/autofirewall-for-linux-mta-running-postfix/">Læs mere <span class="screen-reader-text">Autofirewall for Linux MTA running postfix</span></a>]]></description>
										<content:encoded><![CDATA[
<p>I have written a perl program that protects a Linux MTA running postfix.</p>



<p>The program snifs on /var/log/mail. If a host is doing something wrong/illegal he will be blocked for 24 hours.</p>



<p>Three illegal attemps in 20 minutes triggers a drop action in firewalld.<br />Sorry for the comments in the script being in danish.</p>



<p>Installation:</p>



<ol class="wp-block-list">
<li>Download the file&nbsp;<a href="http://tomas.dk/af/autofirewall.pl">autofirewall.pl</a></li>



<li>Edit user and password for access to mysql in the file.
<p># ### MAIN LOOP ###</p>
<p># Forbind til database<br />$dbh = DBI-&gt;connect(&#8220;dbi:mysql:$firewalldb&#8221;, &#8220;<span style="color: #ff0000;">USER</span>&#8220;, &#8220;<span style="color: #ff0000;">PASSWD</span>&#8220;) <br />or die &#8220;Kunne ikke forbinde til databasen: $firewalldb\n&#8221;;</p>
</li>



<li>Edit WAN ip and whitelisted ip ranges:<br />my $wanaddr = &#8220;aaa.bbb.ccc.ddd&#8221;; #/32<br />my @whitelist = (&#8220;aaa.bbb.ccc&#8221;, &#8220;aaa.bbb.ddd&#8221;); # /24</li>



<li>Get sql definitions file&nbsp;<a href="http://tomas.dk/af/autofirewall.sql">autofirewall.sql</a> and apply it to the autofirewall database.</li>



<li>Do “chmod 555&nbsp;autofirewall.pl”</li>



<li>Do autofirewall.sql in mysql or&nbsp;MariaDB</li>



<li>Add “*/10 * * * * /path/to/autofirewall.pl &gt;&gt; /path/to/logfile” to roots crontab</li>



<li>Your MTA is now ptrotected against&nbsp;brute force&nbsp;attacks.</li>
</ol>



<p><strong>Update 2016/01/14:</strong></p>



<p>Minor fixes and new function applied that restores the firewall after firewall flush or system reboot.</p>



<p><strong>Update 2024/01/05:</strong></p>



<p>Script changed to use firewallcmd. <br />Database structure is now on mariadb.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1051</post-id>	</item>
	</channel>
</rss>
