neuinstallation fhem nach anleitung auf win11 funktioniert nicht

Begonnen von the ratman, 16 Dezember 2025, 15:34:21

Vorheriges Thema - Nächstes Thema

krikan

#15
FHEM als Windows-Admin installieren mit folgendem Batch:

md c:\my-fhem
cd c:\my-fhem
curl -L -O https://github.com/StrawberryPerl/Perl-Dist-Strawberry/releases/download/SP_54201_64bit/strawberry-perl-5.42.0.1-64bit-portable.zip
tar -xf strawberry-perl-5.42.0.1-64bit-portable.zip
del strawberry-perl-5.42.0.1-64bit-portable.zip
curl -O https://fhem.de/fhem-6.4.zip 
tar -xf fhem-6.4.zip --strip-components=1
del fhem-6.4.zip
set "PATH=%PATH%;c:\my-fhem\perl\site\bin;c:\my-fhem\perl\bin;c:\my-fhem\c\bin"
powershell -NoProfile -Command ^
  "$new = 'C:\my-fhem\perl\site\bin;C:\my-fhem\perl\bin;C:\my-fhem\c\bin';" ^
  "$machine = [Environment]::GetEnvironmentVariable('Path','Machine');" ^
  "if(-not $machine){ $machine = '' };" ^
  "$parts = ($machine.Split(';') | ForEach-Object { $_.Trim() } | Where-Object { $_ -ne '' }) + ($new.Split(';') | ForEach-Object { $_.Trim() });" ^
  "$uniq = $parts | Where-Object { $_ } | Select-Object -Unique;" ^
  "$final = $uniq -join ';';" ^
  "[Environment]::SetEnvironmentVariable('Path',$final,'Machine');" ^
  "Write-Output 'PATH updated';"
netsh advfirewall firewall add rule name="Perl interpreter TCP" dir=in action=allow program="C:\my-fhem\perl\bin\perl.exe" profile=private protocol=TCP
netsh advfirewall firewall add rule name="Perl interpreter UDP" dir=in action=allow program="C:\my-fhem\perl\bin\perl.exe" profile=private protocol=UDP
perl fhem.pl fhem.cfg -i
net start fhem

In FHEM anschließend "update" und "shutdown restart". Wenn FHEM wieder startet, dann alles OK.


FHEM und Perl als Windows-Admin entfernen:

Deinstallation Dienst
perl fhem.pl -ualternativ
sc stop fhem
sc delete fhem
Firewall-Ausnahmen und env-Variablen löschen
netsh advfirewall firewall delete rule name="Perl interpreter TCP"
netsh advfirewall firewall delete rule name="Perl interpreter UDP"
powershell -NoProfile -Command ^
  "$oldPaths = 'C:\my-fhem\perl\site\bin;C:\my-fhem\perl\bin;C:\my-fhem\c\bin';" ^
  "$machine = [Environment]::GetEnvironmentVariable('Path','Machine');" ^
  "if(-not $machine){ $machine = '' };" ^
  "$parts = $machine.Split(';') | ForEach-Object { $_.Trim() } | Where-Object { $_ -ne '' };" ^
  "$filtered = $parts | Where-Object { $_ -notin $oldPaths.Split(';') };" ^
  "$final = $filtered -join ';';" ^
  "[Environment]::SetEnvironmentVariable('Path',$final,'Machine');" ^
  "Write-Output 'PATH updated';"
Ordner c:\my-fhem löschen
rmdir /s /q C:\my-fhem
Alternativ: Liefere mir Testvorschlag und ich teste.

the ratman

dumme zwischenfrage, wärend ich in den startlöchern stehe: ist's eigentlich ein problem, mein dir von my-fhem zu fhem umzubenennen, wenn ich die 3 pathangaben mit ändere?
geht eigentlich nur darum, dass mich "my" so an div. apps erinnert, die ich nicht haben will *g*
→do↑p!dnʇs↓shit←

betateilchen

(offtopic)
Die ganzen Klimmzüge, die Du hier aber jetzt machen musst, um das in Windows hinzubekommen, sind vermutlich auch nicht weniger Neuland als wenn man sich ein bisschen in Linux einarbeiten müsste, um FHEM zu installieren.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

the ratman

naja, würd ja rennen, sind ja nur ein paar kleinigkeiten. und so is dann wenigsten win mit fhem gleich am neuesten stand *g*.

und da ich win für ein paar spielereien sowieso brauche, fällt zumindest der rest an problemen weg.
→do↑p!dnʇs↓shit←

krikan

@Rudi:
Als Ergänzung, weil https://forum.fhem.de/index.php?msg=1353866 (#15) eventuell etwas knapp war.
Bei akuellem FHEM Stand scheitert der Befehl zur Installation des Dienstes unter Windows:
perl fhem.pl fhem.cfg -iSelbst wenn man ihn installiert hatte (wie oben bspw. über fhem-6.4.zip), scheitert nach "update" auf aktuellen Stand ein Neustart von FHEM mit "shutdown restart". Der Dienst startet dann nicht mehr.

Wenn der Befehl
perl fhem.pl -unicht funktioniert, habe ich den Dienst über Windows Commandline mit
net stop fhem
sc delete fhem
manuell gelöscht und dann weiter experimentiert.

@the ratmann
Zitatdumme zwischenfrage, wärend ich in den startlöchern stehe: ist's eigentlich ein problem, mein dir von my-fhem zu fhem umzubenennen, wenn ich die 3 pathangaben mit ändere?
Vorher Dienst (vorsichtshalber) deinstallieren und nach Umbenennung und Pfadanpassung anschließend neu installieren, dann sollte es eigentlich kein Problem sein. Es sei denn, jemand (Entwickler, Anwender) hätte Pfade hart verdrahtet: Macht man nicht. Gehe davon aus, dass das klappt. Ausprobieren und berichten.

rudolfkoenig

ZitatFHEM als Windows-Admin installieren mit folgendem Batch:
Danke fuer die klasse Anleitung.

Ich habe WinService.pm nach lib/FHEM verschoben, fhem.pl angepasst, alles eingecheckt und fuer update vorbereitet, damit ich die Anleitung erneut testen konnte.

Jetzt funktioniert shutdown restart (und perl fhem.pl -u) nach update.

krikan

Danke zurück. Hier hat es auch funktioniert.

Ich bin nur irritiert, dass nach der Installation des Dienstes über "perl fhem.pl fhem.cfg -i" der Dienst manuell über "net start fhem" gestartet werden muss. Meinte das wäre mal anders gewesen:Autmatischer Start nach Dienst-Installation. Habe jetzt bis FHEM 6.0 zurück die Dienst-Installation probiert; immer war direkt nach der Installation der manuelle Start notwendig. Also wohl doch keine Änderung. Da der Dienst nach Neustart von Windows automatisch startet ist im Fazit alles OK. Doku muss (ich) nur noch anpassen.

@the ratman:
Die Perl-Module Win32::Daemon und Win32::Console werden in strawberryperl 5.42 (und auch schon einige Versionen vorher) mitgeliefert und müssen nicht mehr mit cpan nachinstalliert werden.

the ratman

ZitatDie Perl-Module Win32::Daemon und Win32::Console werden in strawberryperl 5.42 (und auch schon einige Versionen vorher) mitgeliefert und müssen nicht mehr mit cpan nachinstalliert werden.
hihi, endlich was, was ich schon mitbekommen hab'. wobei ichs über die module zu mysql mitbekommen habe. die sind nämlich auch schon dabei. wobei ich grade 'rum rätsel, womit ich meine db.conf (modul dblog) füttern muß ... "localhost", "127.0.0.1", oder doch "192.158.178.xxx". oder liegts doch am mysql server? mag er maria, mysql oder oracle nicht? da ziert sich fhem auch noch a bissi mit der verweigerung eines connects *g*
hast du da eventuell empfehlungen für mich? vorzugsweise bei mehreren die dau-sicherste?
→do↑p!dnʇs↓shit←

krikan

Hab keine Ahnung von Datenbanken bzw. Dantenbankservern im FHEM/Perl-Umfeld. Ich bin Nur-Text-File Nutzer.

the ratman

schad ... kriegs schon noch raus, was am besten funzt, wird halt nervig. aber da ich sowieso ne db wegen meiner kodis brauch, darf auch fhem mit rein.
→do↑p!dnʇs↓shit←