FHEM Forum

FHEM - Hardware => Server - Windows => Thema gestartet von: the ratman am 01 April 2024, 16:57:04

Titel: [gelöst] Soundausgabe unter windows, wsl2, debian
Beitrag von: the ratman am 01 April 2024, 16:57:04
Fortsetzung von https://forum.fhem.de/index.php?msg=1309425
Zitat von: Otto123 am 01 April 2024, 16:22:24Ich habe das mit tts nicht vergessen, schau ich mir an.
goil! freut mich so richtig und teste dir dumm dämlich alles, was du dann haben willst.
gut, seit ich hier 'ne möchtegern-fhem/wsl2-testumgebung hab, auch alles, was dir so einfallen mag (*). nur sagen ... wenn ich was zum laufen kriege, hast du dann 100% idiotensicher geschrieben *lach*

aber wie g'sagt: tu dir bloß nix an, wenn du nicht selber 'nen mehrwert siehst.
wirklich bringen tuts ja nur was, wenn man recht ähnliche vorgaben hat wie ich. und ich glaub', ich bin da recht einsam unterwegs in der fhem-hardware-struktur *g*.

* meine test-umgebung:
win11home auf intel core i7(gen 12) mit 16gb ram, nvidia rtx3060, 2 monitore (ist 'n hp omen schleppi), wsl2, debian aus dem win-store. alles immer tagesaktuell. für mich ein webmin, weil ich sonst bei linux weine. keine grafischen oberflächen oder sonst was.
Titel: Aw: Soundausgabe unter windows, wsl2, debian
Beitrag von: Otto123 am 03 April 2024, 18:31:01
Ich wusste bisher nicht, dass es in Powershell so einfach ist Sprache auszugeben  ;D

Klar das Beispiel aus deinem Link funktioniert: sogar über eine RDP Sitzung auf ein Windows 11 welches auf meinem Linux Host unter KVM/qemu/libvirt läuft  ;D
Du kannst auf deinem Windows ja erstmal bloß in Powershell probieren:
Add-Type -AssemblyName System.speech
$text="Heute ist ein Schöner Tag"
(New-Object System.Speech.Synthesis.SpeechSynthesizer).Speak($text)
Analog im wsl
text="Heute ist ein Schöner Tag"
powershell.exe "Add-Type -AssemblyName System.speech;(New-Object System.Speech.Synthesis.SpeechSynthesizer).Speak(\"$text\")"

Edit: Wobei mir gerade einfällt, diese Sache dann quasi aus FHEM heraus im "Untergrund" zu starten und wirklich einen Sound zu hören wird wahrscheinlich eine komplizierte Nummer.
Titel: Aw: Soundausgabe unter windows, wsl2, debian
Beitrag von: the ratman am 03 April 2024, 20:48:23
Zitatsogar über eine RDP Sitzung auf ein Windows 11 welches auf meinem Linux Host unter KVM/qemu/libvirt läuft  ;D
war klar, hätte ich dir um 3 in der früh auch sagen können *totlach*

jetzt kommt der onkel milchmädchen ... bitte nicht lachen.
wäre der befehl "powershell.exe" nicht auch nur ein weiterer consolenbefehl, den man in einem cmdalias wie z.b.

defmod c_dellog cmdalias dellog AS {qx(truncate $currlogfile --size 0);;Log 1, "logfile wurde gelöscht";;}

verwursten könnte?
ich hätts ja sogar probiert, wüsste ich, wie ich den ganzen sermon unfallfrei zw. die {} kriege.

auf jeden fall funzen deine beispiele mal bei mir auch ...
Titel: Aw: Soundausgabe unter windows, wsl2, debian
Beitrag von: Otto123 am 04 April 2024, 11:24:33
Moin,

hier spricht der "Verrückte" - nach meinem letzten Post habe ich weiter gesucht und zwei mal aufgegeben - aber wie sagt man? aller guten Dinge sind drei 8)
Ausgangssituation:
Windows 11, wsl ubuntu, fhem installiert (immer noch die Test VM, alles über RDP ;) )

Eine Datei tts.ps1 im Homdedir des Windows Users (bei mir c:\users\heinz) mit diesem Inhalt
Add-Type -AssemblyName System.speech
$text="Heute ist alles ohne Fehler"
$tts=New-Object System.Speech.Synthesis.SpeechSynthesizer
$tts.Speak($text)
In der FHEM Kommandozeile folgendes Kommando einwerfen und es redet  ;D  ;D  ;D
"/mnt/c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe c:\\\\users\\\\heinz\\\\tts.ps1"oder blockierend
{qx '/mnt/c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe c:\\\\users\\\\heinz\\\\tts.ps1' }Das schräge an dieser Zeile:
Was wahrscheinlich auch geht - die Datei im FHEM Directory:
"/mnt/c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe \\\\\\\\wsl$\\\\ubuntu\\\\opt\\\\fhem\\\\tts.ps1"Das habe ich mal getestet :) das gibt aber nur den Inhalt des Directory aus!!!der Befehl zum Sound steht eine Zeile höher.
{qx '/mnt/c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe -command dir \\\\\\\\wsl$\\\\ubuntu\\\\opt\\\\fhem' }
Ich weiß: jetzt willst Du natürlich den Text als Variable übergeben  :))
Titel: Aw: Soundausgabe unter windows, wsl2, debian
Beitrag von: the ratman am 04 April 2024, 12:50:18
ein hellseher *lach*

du meine güte, du gibst ja ordentlich gas.

btw - das übergeben bei meiner jetzigen version funzt eigentlich relativ simpel:
ist auch ein cmdalias mit "say .* AS setreading doif_tts_durchsage text $EVENT"
sprich: sobald ich irgendwo ein say absetze, steht das in meinem doif, das stellt div. zustände fest und jammert dann je nachdem androiden, windosen, tv's usw. voll.
wenn man also sowas hinbekommt ... dann kann ich den ganzen alten kram quasi irgendwann mal einfach übernehmen.

1. versuch:
1) file in fhem legen und dem user/gruppe fhem/dialout übergeben
2) in der commandozeile von fhem
{qx '/mnt/c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe -command dir \\\\\\\\wsl$\\\\Debian\\\\opt\\\\fhem' } absetzen
3) nix zu hören

ausgabe in fhem:
    Verzeichnis: \\wsl$\Debian\opt\fhem


Mode                 LastWriteTime         Length Name                                                                
----                 -------------         ------ ----                                                                
d-----        26.03.2024     10:11                www                                                                 
d-----        26.03.2024     10:11                docs                                                                
d-----        26.03.2024     15:37                share                                                               
d-----        03.04.2024     20:24                log                                                                 
d-----        26.03.2024     10:11                lib                                                                 
d-----        26.03.2024     10:11                demolog                                                             
d-----        26.03.2024     10:11                contrib                                                             
d-----        26.03.2024     11:09                FHEM                                                                
d-----        26.03.2024     11:07                restoreDir                                                          
------        03.04.2024     20:26         423278 CHANGED                                                             
------        28.01.2024     10:20          21936 fhem.cfg.demo                                                       
------        26.03.2024     11:07          47276 MAINTAINER.txt                                                      
------        28.01.2024     10:20          46886 configDB.pm                                                         
------        26.03.2024     11:07          18092 GPL_V2.txt                                                          
------        03.04.2024     20:37           4840 fhem.cfg                                                            
------        26.03.2024     11:07         174201 fhem.pl                                                             
------        04.04.2024     12:51            151 tts.ps1                                                             
------        28.01.2024     10:20            935 README_DEMO.txt    

log bleibt leer

in der wsl-console kommt:
root@LittleBastard:/opt/fhem# ./tts.ps1
./tts.ps1: line 1: Add-Type: command not found
./tts.ps1: line 2: $'=Heute ist alles ohne Fehler\r': command not found
./tts.ps1: line 3: =New-Object: command not found
./tts.ps1: line 4: syntax error near unexpected token `$text'
./tts.ps1: line 4: `$tts.Speak($text)'

zur sicherheit das file tts.ps1:
Add-Type -AssemblyName System.speech
$text="Heute ist alles ohne Fehler"
$tts=New-Object System.Speech.Synthesis.SpeechSynthesizer
$tts.Speak($text)
Titel: Aw: Soundausgabe unter windows, wsl2, debian
Beitrag von: the ratman am 04 April 2024, 13:11:22
ach, da fehlt doch genau beim verwendeten der name des files *g*
{qx '/mnt/c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe -command dir \\\\\\\\wsl$\\\\Debian\\\\opt\\\\fhem' }

sollte wohl
{qx '/mnt/c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe -command dir \\\\\\\\wsl$\\\\Debian\\\\opt\\\\fhem\\\\tts.ps1' }
lauten, oder?

ich probier mal nochmal
nix zu hören, ausgabe in fhem:
Mode                 LastWriteTime         Length Name                                                                
----                 -------------         ------ ----                                                                
------        04.04.2024     12:51            151 tts.ps1  
keine meldung in der console
Titel: Aw: Soundausgabe unter windows, wsl2, debian
Beitrag von: Otto123 am 04 April 2024, 13:13:51
Du hast jetzt den Versuch rausgenommen, der nur den Inhalt des Directory ausgibt  :))  :))  :))
So müsste es gehen
"/mnt/c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe \\\\\\\\wsl$\\\\ubuntu\\\\opt\\\\fhem\\\\tts.ps1"
Oder so:
{qx '/mnt/c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe \\\\\\\\wsl$\\\\Debian\\\\opt\\\\fhem\\\\tts.ps1' }
Zitat von: the ratman am 04 April 2024, 12:50:18in der wsl-console kommt:
Da fehlt aber der komplette Aufruf mit powershell - die datei allein geht nur in der powershell und NICHT in der wsl Konsole!
Titel: Aw: Soundausgabe unter windows, wsl2, debian
Beitrag von: Otto123 am 04 April 2024, 13:21:05
Jetzt mit Parameter. Der Inhalt von tts.ps1 leicht geändert
param(
      [string]$text="Heute ist alles ohne Fehler"
)
Add-Type -AssemblyName System.speech
$tts=New-Object System.Speech.Synthesis.SpeechSynthesizer
$tts.Speak($text)
Der Aufruf in der FHEM Kommandozeile
"/mnt/c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe \\\\\\\\wsl$\\\\ubuntu\\\\opt\\\\fhem\\\\tts.ps1 \"Willi ist Lustig\" "
Titel: Aw: Soundausgabe unter windows, wsl2, debian
Beitrag von: the ratman am 04 April 2024, 13:24:37
hehe, na weil ich qx kannte ... *g*

also folgendes in der kommandozeile:
"/mnt/c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe \\\\\\\\wsl$\\\\Debian\\\\opt\\\\fhem\\\\tts.ps1 \"Willi ist Lustig\" "tts.ps1 hab ich geändert

logfile fhem:
2024.04.04 13:24:08 1: logfile wurde gelöscht
\\\\wsl$\\Debian\\opt\\fhem\\tts.ps1 : Die Datei "\\wsl$\Debian\opt\fhem\tts.ps1" kann nicht geladen werden, da die
Ausf�hrung von Skripts auf diesem System deaktiviert ist. Weitere Informationen finden Sie unter
"about_Execution_Policies" (https:/go.microsoft.com/fwlink/?LinkID=135170).
In Zeile:1 Zeichen:1
+ \\\\wsl$\\Debian\\opt\\fhem\\tts.ps1 "Willi ist Lustig"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : Sicherheitsfehler: (:) [], PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess



PS C:\Users\the-r> Get-ExecutionPolicy -List

        Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process       Undefined
  CurrentUser       Undefined
 LocalMachine    RemoteSigned
Titel: Aw: Soundausgabe unter windows, wsl2, debian
Beitrag von: Otto123 am 04 April 2024, 13:27:00
In der Admin Powershell Konsole:
Set-ExecutionPolicy RemoteSignedDamit tut er es bei mir.

Aber ok Du verwendest jetzt \\wsl$\... - das ist für ihn ev. remote. Ich verwende /mnt/c/...

Dann braucht es bei Dir ev.
Set-ExecutionPolicy Unrestrictednicht schön :(
Titel: Aw: Soundausgabe unter windows, wsl2, debian
Beitrag von: the ratman am 04 April 2024, 13:36:04
jetzt wirds mühsam *g*

also aus dem cheffsesselC:\Windows\System32>Set-ExecutionPolicy RemoteSigned
Der Befehl "Set-ExecutionPolicy" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
Titel: Aw: Soundausgabe unter windows, wsl2, debian
Beitrag von: Otto123 am 04 April 2024, 13:38:34
Nicht aus dem Chefsessel sondern in der Admin Powershell Konsole - erkennbar am PS ganz vorne im Prompt ;)
PS C:\Users\heinz> Set-ExecutionPolicy UnrestrictedHier warst Du doch schonmal richtig
PS C:\Users\the-r> Get-ExecutionPolicy -List
Titel: Aw: Soundausgabe unter windows, wsl2, debian
Beitrag von: the ratman am 04 April 2024, 13:46:17
gut, also zur sicherheit direkt aus dem menü die powershell mit rechtsklick als admin starten:
PS C:\Users\the-r> Set-ExecutionPolicy RemoteSigned
Set-ExecutionPolicy: Access to the path 'C:\Program Files\PowerShell\7\powershell.config.json' is denied.
To change the execution policy for the default (LocalMachine) scope, start PowerShell with the "Run as administrator" option. To change the execution policy for the current user, run "Set-ExecutionPolicy -Scope CurrentUser".
fux, ich hab als admin gestartet! der fragt mich ja sogar noch, ob ich mir sicher bin, dass ich admin sein will ...habs
im rechtsmenü is also ein unterschied von "als admin starten" oder ps dort nochmal mit rechts und danan "als admin starten" heiliger bimbam!

neuer versuch:
\\\wsl$\\Debian\\opt\\fhem\\tts.ps1 : Die Datei "\\wsl$\Debian\opt\fhem\tts.ps1" kann nicht geladen werden, da die
Ausf�hrung von Skripts auf diesem System deaktiviert ist. Weitere Informationen finden Sie unter
"about_Execution_Policies" (https:/go.microsoft.com/fwlink/?LinkID=135170).
In Zeile:1 Zeichen:1
+ \\\\wsl$\\Debian\\opt\\fhem\\tts.ps1 "Willi ist Lustig"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : Sicherheitsfehler: (:) [], PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess
PS C:\Users\the-r> Get-ExecutionPolicy -List

        Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process       Undefined
  CurrentUser       Undefined
 LocalMachine    Unrestricted
Titel: Aw: Soundausgabe unter windows, wsl2, debian
Beitrag von: Otto123 am 04 April 2024, 13:53:00
Aber bei mir funktioniert, das
{qx '/mnt/c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe \\\\\\\\wsl$\\\\ubuntu\\\\opt\\\\fhem\\\\tts.ps1 \"Willi ist Lustig\" ' }Mit
PS C:\Users\heinz> Get-ExecutionPolicy -List

        Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process       Undefined
  CurrentUser       Undefined
 LocalMachine    RemoteSigned
Aber ich habe nicht Powershell 7 ...
Titel: Aw: Soundausgabe unter windows, wsl2, debian
Beitrag von: the ratman am 04 April 2024, 13:55:17
ich auch - ohne admin:
PowerShell 7.4.1
PS C:\Users\the-r>
mit admin:
PowerShell 7.4.1
PS C:\Users\the-r>


wem gehört bei dir die .ps1? ich habs fhem/dialout geändert - richtig?

hab jetzt mal auch das tts-file in mein userverzeichnis gelegt und mit
"/mnt/c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe c:\\\\users\\\\the-r\\\\tts.ps1"
selbe meldung
Titel: Aw: Soundausgabe unter windows, wsl2, debian
Beitrag von: Otto123 am 04 April 2024, 14:04:00
Ich habe 5.1

Wem die gehört sollte egal sein, die wird nur gelesen. Je nachdem wie und woher Du kopiert hast könnte die Datei noch dieses "Remote geblockt attribute" haben. Schau mal mit dem explorer rein - eigenschaften Datei
\\wsl$\Ubuntu\opt\fhem
Oder versuche sowas in der Powershell
Unblock-File \\wsl$\Ubuntu\opt\fhem\tts.ps1
Titel: Aw: Soundausgabe unter windows, wsl2, debian
Beitrag von: the ratman am 04 April 2024, 14:11:58
PowerShell 7.4.1
PS C:\Users\the-r> Unblock-File \\wsl$\Debian\opt\fhem\tts.ps1
PS C:\Users\the-r>

"/mnt/c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe \\\\\\\\wsl$\\\\Debian\\\\opt\\\\fhem\\\\tts.ps1 \"Willi ist Lustig\" "weiterhin die gleiche meldung
übrigens ohne "" auch in der wsl-konsole direkt
Titel: Aw: Soundausgabe unter windows, wsl2, debian
Beitrag von: Otto123 am 04 April 2024, 14:21:50
Letzte Idee: Mit dem Zusatz?
"/mnt/c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe -ExecutionPolicy Bypass \\\\\\\\wsl$\\\\Debian\\\\opt\\\\fhem\\\\tts.ps1 \"Willi ist Lustig\" "
Titel: Aw: Soundausgabe unter windows, wsl2, debian
Beitrag von: Otto123 am 04 April 2024, 14:29:53
Das hier klingt mir nach Dr. Jekyll und Mr. Hyde?
https://learn.microsoft.com/de-de/powershell/scripting/whats-new/migrating-from-windows-powershell-51-to-powershell-7?view=powershell-7.4

Deine Konsole macht 7.4 unser Aufruf mit Pfad 1.0 die Version 5?
Titel: Aw: Soundausgabe unter windows, wsl2, debian
Beitrag von: the ratman am 04 April 2024, 14:31:38
Deine Konsole macht 7.4 unser Aufruf mit Pfad 1.0 die Version 5?fragst mich das ernsthaft? ich hab tatsächlich 0 gemacht. der schleppi ist mit halinstalliertem win11home so bei mir angekommen. hab dann nur nach deiner blog-anleitung sicherheitshalber geschaut, ob eh wsl2 rennt.

wir hätten auch gleich mit deiner letzten idee anfangen können *lach*

"/mnt/c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe -ExecutionPolicy Bypass \\\\\\\\wsl$\\\\Debian\\\\opt\\\\fhem\\\\tts.ps1 \"Willi ist Lustig\" ""willi ist lustig", tönts hier grade lustig um meine ohren.

gratulation und vielen thx - jetzt kann ich da draus ja quasi ein cmdalias machen, mit say As ... oder so?


nachtrag: und fallst mich fragen willst: auch ich hab nur ein unter-dir "1.0" im powershell-dir ...

in der reg hab ich aber auch 2 powershells:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine]
"ApplicationBase"="C:\\Windows\\System32\\WindowsPowerShell\\v1.0"
"ConsoleHostAssemblyName"="Microsoft.PowerShell.ConsoleHost, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, ProcessorArchitecture=msil"
"ConsoleHostModuleName"="C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\Microsoft.PowerShell.ConsoleHost.dll"
"PowerShellVersion"="2.0"
"PSCompatibleVersion"="1.0, 2.0"
"RuntimeVersion"="v2.0.50727"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine]
"ApplicationBase"="C:\\Windows\\System32\\WindowsPowerShell\\v1.0"
"ConsoleHostAssemblyName"="Microsoft.PowerShell.ConsoleHost, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, ProcessorArchitecture=msil"
"ConsoleHostModuleName"="C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\Microsoft.PowerShell.ConsoleHost.dll"
"PowerShellVersion"="5.1.22621.1"
"PSCompatibleVersion"="1.0, 2.0, 3.0, 4.0, 5.0, 5.1"
"PSPluginWkrModuleName"="C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\system.management.automation.dll"
"RuntimeVersion"="v4.0.30319"

ich glaub', ich mach' mir jetzt ein bier auf ... du kriegst auch eines, also muss ich wohl 2 in mich füllen ...
Titel: Aw: Soundausgabe unter windows, wsl2, debian
Beitrag von: Otto123 am 04 April 2024, 14:55:53
Gibt es da bei Dir einen Unterschied? in der CMD
"%ProgramFiles%\PowerShell\7\pwsh.exe" -command Get-ExecutionPolicy"%WINDIR%\System32\WindowsPowerShell\v1.0\powershell.exe" -command Get-ExecutionPolicyOder PS
& $env:ProgramFiles\PowerShell\7\pwsh.exe -command Get-ExecutionPolicy& $env:WINDIR\System32\WindowsPowerShell\v1.0\powershell.exe -command Get-ExecutionPolicy
Zitatich hab tatsächlich 0 gemacht
Ich habe mal installiert, danach gibt es im Windows Terminal zweimal Powershell Konsole: eine Hellblaue und ein Dunkelblaue  :o  :))

Naj, hab ich das auch mal gemacht ...
Zitat von: the ratman am 04 April 2024, 14:31:38jetzt kann ich da draus ja quasi ein cmdalias machen, mit say As ... oder so?
Ja sollte so gehen ...
Titel: Aw: Soundausgabe unter windows, wsl2, debian
Beitrag von: the ratman am 04 April 2024, 15:01:17
Ich habe mal installiert, danach gibt es im Windows Terminal zweimal Powershell Konsole: eine Hellblaue und ein Dunkelblaue  :o  :))gut, dann hat das aber hp so vorgesehen. ich hab damals dumm dämlich losgelegt, ohne was nachzuinstallieren ... kann ich ausnahmsweise nicht mitlachen. genau sowas bricht so halb-wissenden wie mir das genick ... wärst das jetzt nicht du, dürfte ich mir wieder anhören, was für ein fauler, unwissender depp ich doch bin.

jo
PS C:\Users\the-r> & $env:ProgramFiles\PowerShell\7\pwsh.exe -command Get-ExecutionPolicy
Unrestricted
PS C:\Users\the-r> & $env:WINDIR\System32\WindowsPowerShell\v1.0\powershell.exe -command Get-ExecutionPolicy
Restricted

pööser purche *g*
Ja sollte so gehen ... ich krieg' die "" und ;; nicht auf die reihe *g*


nachtrag:
der vollständigkeit halber ... ich hab im startmenü genau eine "PowerShell 7 (x64)" zum anklicken.
nix weiter, auch net bei m wie microsoft oder w wie windoof ...
Titel: Aw: Soundausgabe unter windows, wsl2, debian
Beitrag von: Otto123 am 04 April 2024, 15:20:59
Gut - Deine Ausgabe erklärt wenigsten das Verhalten - darauf muss man erstmal kommen: 2 mal PS und 2 unterschiedliche Umgebungen auf einem Windows  :o

Zitat von: the ratman am 04 April 2024, 15:01:17ich krieg' die "" und ;; nicht auf die reihe *g*
Wenn Du mir erklärst, warum diese beiden Zeilen funktionieren,
" /mnt/c/Program\ Files/PowerShell/7/pwsh.exe -ExecutionPolicy Bypass \\\\wsl$\\ubuntu\\opt\\fhem\\tts.ps1 'willi ist Lustig' ""/mnt/c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe -ExecutionPolicy Bypass \\\\\\\\wsl$\\\\ubuntu\\\\opt\\\\fhem\\\\tts.ps1 \"Willi ist Lustig\" "Und die hier nicht
" /mnt/c/Program\ Files/PowerShell/7/pwsh.exe -ExecutionPolicy Bypass \\\\\\\\wsl$\\\\ubuntu\\\\opt\\\\fhem\\\\tts.ps1 \"Willi ist Lustig\" "helfe ich dir  :))  :))  :))

Aber dann gehe ich erstmal zum Stammtisch - ich tausche quasi diese Bauerschaale gegen Gerstenkaltschale ;)

Nachtrag: Ich sage Dir das mit den "" und ;; und \" usw. ist alles kaum vorhersehbar, da hilft (mir) auch nur ein bisschen Wissen und ganz viel Geduld beim probieren. 
Titel: Aw: Soundausgabe unter windows, wsl2, debian
Beitrag von: the ratman am 04 April 2024, 15:25:25
also das liegt eindeutig an den derzeitigen sonnenflecken-aktivitäten - du noob hast ja gar keine ahnung *lach*
ein bisschen Wissenja, wenn man das auf brot schmieren könnte, hätt ichs auch.ganz viel Geduldoh, neue fremdwörter für mich ...

genieße dein bier, hast dir verdient! ich spende wohl heute 'ne ganze kiste an dich ... muss ich dann wieder alleine saufen, ich armer *g*
Titel: Aw: Soundausgabe unter windows, wsl2, debian
Beitrag von: Otto123 am 05 April 2024, 11:01:45
Guten Morgen,

die Anleitung, ich teile die Dinge gerne auf, um die Verdopplung und escapen halbwegs zu überschauen.
Das PS Script ist ja schon da, wir bauen zum Aufruf des PS Scripts noch ein Shell Script welches dann durch den alias aufgerufen wird.

alias -> shell Script -> powershell Script

wsl öffnen und dort als fhem arbeiten:
sudo -su fhemShell Editor öffnen
nano ~/wtts.shdort hinein diesen Code und speichern.
/mnt/c/Program\ Files/PowerShell/7/pwsh.exe -ExecutionPolicy Bypass \\\\wsl$\\ubuntu\\opt\\fhem\\tts.ps1 "$1" Jetzt muss in der FHEM Kommandozeile dies gehen
"bash wtts.sh 'Willi wieder da' "Wenn ja dann FHEM alias machen
define c_wtts cmdalias wtts .* AS {qx "bash wtts.sh '$EVENT' "}Und dann sollte gehen:
wtts Hedda kann in FHEM reden
Was mir jetzt nicht gefällt: das blockiert FHEM für die gesamte Ausgabe.
Das könnte man in FHEM so umgehen
{system("bash wtts.sh '$EVENT' &")}Die Powershell bzw. die System.Speech von Windows bietet aber auch eine alternative Ausgabe $tts.Speak() -> $tts.SpeakAsync()

Ich habe das jetzt immer nur mit drei Worten getestet - keine Ahnung was passiert wenn man dort einen Roman einwirft :)

Gruß Otto
Titel: Aw: Soundausgabe unter windows, wsl2, debian
Beitrag von: the ratman am 05 April 2024, 15:18:48
super sache - funzt sogar bei mir auf anhieb *g*

na dann romanisieren wir mal mit {system("bash wtts.sh '$EVENT' &")} *g* -->


wtts
wtts Die Powershell bzw. die System.Speech von Windows bietet aber auch eine alternative Ausgabe $tts.Speak() -> $tts.SpeakAsync()

Ich habe das jetzt immer nur mit drei Worten getestet - keine Ahnung was passiert wenn man dort einen Roman einwirft :)


also inkl. [ code] mal auf ganz blöd mit wtts drinnen, $, usw.
das frisst er - sogar mit den eckigen klammern, blaaa

man könnte sich max aufregen, dass ich in fhem ein "-1" als rückmeldung kriege, das log bleibt angenehm leer
Titel: Aw: Soundausgabe unter windows, wsl2, debian
Beitrag von: Otto123 am 05 April 2024, 15:46:01
Na da haben wir gestern gut vorgearbeitet  8)  ;D  :))
Zitat von: the ratman am 05 April 2024, 15:18:48dass ich in fhem ein "-1"
Ja das ist der system() Aufruf, könnte man mit einem return'' danach unterdrücken.
{system("bash wtts.sh '$EVENT' &");;return'' }Oder die qx() Variante nehmen und die ps1 ändern.
Titel: Aw: Soundausgabe unter windows, wsl2, debian
Beitrag von: the ratman am 05 April 2024, 16:00:45
ich hab nun, nur zur sicherheit, folgendes stehen: wtts .* AS {system("bash wtts.sh '$EVENT' &");;return'' }ausgabe kommt, "-1" kommt nicht, was will man mehr?

würde sagen: so einfach kommst sonst nirgends zu einer verständlichen tts ohne zwischennetz und riesen spielchen *g*

/me ist absolut glücklich und zufrieden - vielen, vielen dank!
Titel: Aw: Soundausgabe unter windows, wsl2, debian
Beitrag von: betateilchen am 05 April 2024, 16:10:48
Dafür, dass hier im Thread-Titel schon recht lange "erledigt" steht, wird hier aber noch ganz schön lange hinterher diskutiert...  8)

Zitat[erledigt] hmusb - neuer versuch einer verbindung unter windows, wsl2, debian
Titel: Aw: Soundausgabe unter windows, wsl2, debian
Beitrag von: Otto123 am 05 April 2024, 16:13:35
naja das war die Bonusaufgabe :) - ich könnte schauen ob und wie es geht und den Teil mit wsl und Sound abspalten, der passt ja nicht zu Homematic.