howto: Migration von Pi3 buster nach Pi4 bookworm mit busware SCC und fritz.box

Begonnen von Markus_F, 17 November 2024, 15:43:03

Vorheriges Thema - Nächstes Thema

Markus_F

Mein Pi3 gab den Geist auf, daher musste ich mein System nach Pi4 umziehen, anbei meine Erfahrung:
SW Installation
  • bookwork auf SSD/SD flashen
  • SW installieren: vim*, apache2, apache2-dev, libsoap-lite-perl, ntpdate, sendemail, libnet-telnet-perl, gpg, certbot, libapache2-mod-proxy-uwsgi, mosquitto, mosquitto-clients, mosquitto-dev
  • perl module installieren (cpan): Text::Levenshtein, Log::Log4perl, LWP::Simple, Net::Fritz, Net::MQTT:Simple, Net::MQTT:Constants
System konfigurieren:
  • ntpdate -u de.pool.ntp.org
  • /boot/firmware/config.txt:
    [all]
    enable_uart=1
    # bringt zurück /dev/ttyAMA0
    dtoverlay=disable-bt
  • Neue SCC.sh:
    #!/bin/bash
    pinctrl set 17 op dl
    pinctrl set 18 op dl
    gpioset 0 18=1
    gpioset 0 17=0
    sleep 1
    gpioset 0 17=1
  • Apache konfig Dateien von pi3 kopieren: /etc/apache2/* ... plus /etc/http_pw_datei
  • letsencrypt konfig Dateien von pi3 kopieren: /etc/letsencrypt/* ...
    cron job definieren
  • Apache konfigurieren:
    a2enmod ssl proxy_http proxy_html lbmethod_byrequests
  • Mosquitto konfiguriren: Bei mir läuft das ohne ID/PW  O:-)
    Dazu muss in /etc/mosquitto/mosquitto.conf das noch gesetzt werden:
    allow_anonymous true
    listener 1883 0.0.0.0
fhem installieren
  • Da gibs genug Hinweise  ;)
  • fhem.cfg (99_myUtils.pm) von pi3 kopieren
  • fhem.service überprüfen ob es noch passt, es sollte, wenn SCC.sh im gleichen Verzeichnis liegt.
  • fhem neu starten ... das solle es gewesen sein ... 8)

renew von letenrypt
Das ist sicherlich ein altes Thema, anbei mein Weg:
renew.sh:
#!/bin/bash
LOG=/log/letsencrypt_renew_$(date +%Y.%m.%d-%H.%M).log
echo "log file: ${LOG}"
# öffne port 80 in der Fritz
/root/fritz_set_port_80.pl 1
systemctl stop apache2             1>>$LOG 2>&1
/usr/bin/certbot renew             1>>$LOG 2>&1
systemctl start apache2            1>>$LOG 2>&1
# schließe port 80 in der Fritz
/root/fritz_set_port_80.pl 0

#!/usr/bin/perl -I lib/
use warnings;
use strict;
use Net::Fritz::Box;
use utf8;

# yes .... pw is not the best implementation
my $user     = 'id';
my $pass     = 'pw';
my $upnp_url = 'https://ip of fritz.box:49443';
my ip_pi     = 'ip of pi';

die "Need first parameter to be 0 or 1\n" if scalar @ARGV == 0;

my $NewEnabled = $ARGV[0];

die "First parameter must be 0 or 1, but is >$NewEnabled<\n"
   if $NewEnabled != 0 and $NewEnabled != 1;

my $f = Net::Fritz::Box->new(
          username => $user,
          password => $pass,
          upnp_url => $upnp_url,
        );

my $d = $f->discover();

my $services = $d->find_service('WANPPPConnection');
$services->errorcheck;
my $response = $services->call('AddPortMapping',
                 'NewRemoteHost'             => '0.0.0.0',
                 'NewExternalPort'           => 80,
                 'NewProtocol'               => 'TCP',
                 'NewInternalPort'           => 80,
                 'NewInternalClient'         => $ip_pi,
                 'NewEnabled'                => $NewEnabled,
                 'NewPortMappingDescription' => 'HTTP-Server',
                 'NewLeaseDuration'          => 0
               );

exit 1 if $response->error;
exit 0;