fhem, direkt unter windows mit strawberry perl - spielereien

Begonnen von the ratman, 04 Januar 2026, 17:48:58

Vorheriges Thema - Nächstes Thema

the ratman

auf der suche nach dem einfachsten weg, fhem unter windows zum sprechen zu bringen ... eine lösung

info:
1) ich danke hier "noob_at_pc" und "˗ˋˏAd0larˎˊ˗" aus dem kodinerds-matrix-chat für ihre geduldige hilfe!
2) da ich fhem unter c:/fhem/ installiert habe, bitte die pfade beachten!

o) nach der offiziellen anleitung von hier https://wiki.fhem.de/wiki/FHEM_Installation_Windows fhem auf windows installieren.
o)folgenden code einmalig als administrator in der powershell ausführen:
set-executionpolicy remotesigned
o) in c:/fhem/ folgende 3 zeilen
Add-Type -AssemblyName System.Speech
$synth = New-Object -TypeName System.Speech.Synthesis.SpeechSynthesizer
$synth.Speak($args[0])
als tts.ps1 speichern

o) ein cmdalias in fhem anlegen
say cmdalias say .* AS {system('cmd', '/c','start','/B','""','C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe','-ExecutionPolicy','Bypass','c:\fhem\tts.ps1',$EVENT);;return''}bzw.say cmdalias say .* AS {system('cmd', '/c','start','/B','""','c:\Program Files\PowerShell\7\pwsh.exe','-ExecutionPolicy','Bypass','c:\fhem\tts.ps1',$EVENT);;return''}für die powershell 7.5 variante

dies sollte blockingfrei und ohne zusätzliche ausgabe in fhem die win tts mit z.b.
say mein text ist sehr einfallsreichzur sprachausgabe bewegen.

falls sich noch wer direkt unter win mit fhem spielt - ich habe keinerlei einwände, tipps und tricks zu bekommen *g*.
→do↑p!dnʇs↓shit←

the ratman

#1
eine neue spielerei - natürlich auch nicht von mir, sondern wie immer von adolar, der mir langsam ein wenig unheimlich wird "zitat: ich kenne fhem nicht, aber ich setze es mal schnell zum testen für dich auf.)

diesmal: aus fhem/windows raus einen entfernten windows-rechner beenden. und zwar dau-sicher.

auf dem zukünftig abzuschaltenden rechner:

1. in der powershell als administrator
Set-ExecutionPolicy Bypass -Scope Process -Force2. im anhang findet sich eine 7zip gepackte datei.
die enpackten daten am besten ins neu anzulegende dir c:\scripte" spielen
das installer-script als admin aus der powershell heraus starten
cd c:\scripte
./install.ps1
eine neue aufgabenplanung wird angelegt.

3. in der windows firewall ist der tcp-port 65535 eingehend freizugeben.

wer das korrekte vorgehen testen will, öffnet eine powershell und setzt folgenden befehl ab.
curl "http://127.0.0.1:65535"der rechner sollte sofort runter fahren.

unter fhem:
defmod xxx cmdalias xxx AS {HttpUtils_NonblockingGet({url=>"http://aaa.bbb.ccc.ddd:65535/",callback=>sub($$$){} });;return ''}xxx = bezeichnung, die auch immer gefällt
aaa.bbb.ccc.ddd = die ip des rechners, den man runterfahren will

das wars dann schon.
ich soll noch darauf hinweisen, dass dies mit "force" passiert. der rechner fährt also sofort und ohne fragen runter.

NACHTRAG: nun auch nicht blockierend.
→do↑p!dnʇs↓shit←