mit fhem windows steuern - alternativensuche

Begonnen von the ratman, 03 Juli 2023, 08:34:51

Vorheriges Thema - Nächstes Thema

Otto123

das wäre aber das Gleiche wie{qx 'ssh xxx@192.168.178.21 dir' }Da sollte die Ausgabe von dir im Browser erscheinen.
Irgendwas muss bei Dir unterschiedlich sein zwischen sudo -su fhem und dem user / der Umgebung mit dem fhem läuft.
Läuft dein FHEM wirklich als user fhem?
{qx(whoami)}Du hast nicht einen user fhem auf dem host, dann eine VM mit einem user fhem drin oder einen docker Container in dem FHEM läuft?
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

the ratman

#31
also das geht auch scheinbar (bis auf den kaputten zeichensatz (was n da wieder los?)):
Datentr�ger in Laufwerk C: ist System
 Volumeseriennummer: 988B-B3B6

 Verzeichnis von C:\Users\xxx

06.07.2023  09:56    <DIR>          .
20.11.2022  23:11    <DIR>          ..
22.11.2022  16:34    <DIR>          .android
08.01.2023  16:32    <DIR>          .arduinoIDE
22.06.2023  12:22    <DIR>          .docker
11.06.2023  10:59    <DIR>          .remoteit
06.07.2023  12:21    <DIR>          .ssh
01.03.2023  15:49    <DIR>          .thumbnails
23.06.2023  16:29    <DIR>          2fast
22.02.2023  16:26    <DIR>          3D Objects
08.01.2023  19:10    <DIR>          ansel
20.11.2022  23:16    <DIR>          AppData
08.02.2023  09:28       130�787�944 balenaEtcher-Portable.exe
20.11.2022  23:20    <DIR>          Contacts
27.06.2023  19:03    <DIR>          Desktop
20.07.2022  17:24           303�104 DirectShowLib-2005.dll
23.06.2023  16:29    <DIR>          Documents
06.07.2023  13:14    <DIR>          Downloads
04.12.2022  09:38    <DIR>          Favorites
25.10.2021  11:12       113�721�856 ffmpeg.exe
03.09.2020  17:53           524�752 gifski.dll
06.09.2022  13:49         7�363�560 HWiNFO64.exe
07.09.2022  21:06                55 HWiNFO64.INI
21.11.2022  11:22         3�711�904 jcpicker.exe
30.04.2023  17:55               213 jcpicker.ini
30.04.2023  17:55                56 jcpicker.txt
26.06.2022  21:09           783�872 kitty.exe
19.04.2020  11:00             8�709 kitty.ini
20.11.2022  23:20    <DIR>          Links
05.07.2023  09:17    <DIR>          MediaElch
02.08.2017  10:32           505�664 messagebox.wav
20.11.2022  23:20    <DIR>          Music
18.02.2023  10:38    <DIR>          Odin3
26.07.2022  11:35    <DIR>          OneDrive
23.06.2023  16:29    <DIR>          Pictures
23.07.2022  14:24    <DIR>          renamer
20.11.2022  23:20    <DIR>          Saved Games
27.06.2023  15:08    <DIR>          ScreenToGif
24.06.2023  10:13        22�529�024 ScreenToGif.exe
20.11.2022  23:20    <DIR>          Searches
11.06.2023  18:24    <DIR>          Spiele
22.04.2023  12:04    <DIR>          Tracing
02.08.2017  10:33           479�464 ttsmsg.wav
20.05.2023  14:17    <DIR>          Videos
23.11.2022  09:35         1�656�832 WinControl.exe
23.11.2022  09:35            56�832 WinControlService.exe
              16 Datei(en),    282�433�841 Bytes
              30 Verzeichnis(se), 310�814�035�968 Bytes frei
und
{qx(whoami)} --> fhem


ZitatDu hast nicht einen user fhem auf dem host, dann eine VM mit einem user fhem drin oder einen docker Container in dem FHEM läuft?
eindeutig nö
fhem lauft direkt auf debian - NICHT unter einem container oder sonst was. das war mir wichtig, weils genau so beim aktuellen system is und nur nervt *g*

nachfrage:
du sagtest am anfang, es ginge auch ohne powershell.
nur zur sicherheit: wie ginge mein foobar-befehl MIT powershell genau?
→do↑p!dnʇs↓shit←

the ratman

#32
ich weine gerade ... hab beide rechner NOCHMAL neu hochgefahren.

zumindest ergibt {qx 'ssh xxx@192.168.178.21 echo vom HostB' } jetzt "vom HostB"
aber bei meinem foobar-befehl ändert sich nix

sag mir bitte nochmal genau mit und ohne powershell, was ich aus fehm aufzurufen hab.
also was mach' ich mit "C:\Users\xxx\Music\foobar2000\foobar2000.exe" /playpause - nicht, dass es an irgendwelchen anführungsstichen oder so happert  ...
→do↑p!dnʇs↓shit←

Otto123

ok  :)  sieht für ssh erstmal gut aus.
Erstmal ein Test noch vorab: Pack den Befehl
"C:\Users\xxx\Music\foobar2000\foobar2000.exe" /playpausein den Pfad C:\Users\xxx in eine cmd datei - von mir aus t.cmd

Zum Test machst Du lokal die cmd auf und probierst ob t.cmd ausgeführt wird. Wenn ja machst Du von der FHEM Maschine diese Aktion
sudo -su fhem
ssh xxx@192.168.178.21
und rufst dann wieder einfach t.cmd auf. Funktioniert das? (Das funktioniert bei mir nämlich nicht und ich verstehe noch nicht genau warum)
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

the ratman

gut, hab ne t.cmd mit 1 zeile befehl ...

xxx@LITTLEBASTARD C:\Users\xxx>t.cmd
xxx@LITTLEBASTARD C:\Users\xxx>"C:\Users\xxx\Music\foobar2000\foobar2000.exe" /playpause

er ruft auf, bleibt aber dann ohne bestätigung hängen. nach ca. 30 sek. gibts wieder ne prompt
→do↑p!dnʇs↓shit←

the ratman

#35
habs nun sicherheitshalber auch mit z.b. C:\Users\xxx\Spiele\GW2.bat probiert. ist einfach ein immer schon (ca. 8 jahre lang) funzender aufruf, für n dummes game. funzt genauso nicht

das stünde drinnen:
@Echo off

    start "" "C:\Users\xxx\Spiele\Guild Wars 2\Gw2-64.exe" -autologin -mapLoadinfo
   
    start "" "C:\Program Files\TeamSpeak 3 Client\ts3client_win64.exe"

cd "C:\Users\xxx\Spiele\TacO\"
start "" "GW2TacO.exe"

exit

nachtrag - weißt du was noch mysteriöser ist?
ich dachte, ich ruf' mal
"C:\Users\xxx\Music\foobar2000\foobar2000.exe" /playpause
direkt über die powershell am schleppi auf.
erster aufruf meinte, es rennt schon eine instanz. stimmt auch. kill' ich die, geht auch der aufruf in der win powershell.
ich frag' mich grade, was den foobar gestartet haben soll, weil ich krieg' nirgends eine anzeige, dass er rennt. könnt eigentlich heute nur fhem (vom testsystem) gewesen sein. dann stimmt aber gewaltig was nicht. weil der foobar kommt IMMER in den vordergrund - egal, wie ich ihn aufrufe. und vor allem: wenn er neu startet per playpause, spielt er sofort ab, was er noch in der liste hat. entweder bin ich taub, oder das ding verarscht mich gerade ...
→do↑p!dnʇs↓shit←

Otto123

die ssh shell ist eine reine Textshell, auch wenn es genauso ausschaut: in der lokalen cmd (oder powershell) kann man auch grafische Programme starten. In der ssh Shell ist man remote und jeglicher Output landet in der Textshell, Windows Programme mit grafischen Output starten geht da meines Wissens in keiner Variante. Witzigerweise kann man über ssh in wsl grafische Linuxprogramme starten die an einen XServer senden.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

the ratman

#37
ich hab mal weiter getestet:

befehl --> "C:\Users\xxx\Music\foobar2000\foobar2000.exe" /playpause

cmd = problemlose ausführung. kann sogar die " weg lassen
powershell (ohne adminrechten) =
PS C:\Users\xxx> "C:\Users\the-r\Music\foobar2000\foobar2000.exe" /playpause
In Zeile:1 Zeichen:51
+ "C:\Users\xxx\Music\foobar2000\foobar2000.exe" /playpause
+                                                   ~
Sie müssen nach dem Operator "/" einen Wertausdruck bereitstellen.
In Zeile:1 Zeichen:51
+ "C:\Users\xxx\Music\foobar2000\foobar2000.exe" /playpause
+                                                   ~~~~~~~~~
Unerwartetes Token "playpause" in Ausdruck oder Anweisung.
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : ExpectedValueExpression
na, vielleicht fallt ja dir was zu der meldung ein?
a) wie werd' ich die pudermuschel los und sende per ssh an die gute, alte cmd?
oder
b) was will mir mein windoof da grade sagen?


ja ja, irgendwer meinte mal: "cmd und pudermuschel sind ja eh dasselbe" *g*. gut, das war mir sogar klar, dass das n depp war ...

NACHTRAG:
ha schurke!
man muss bei der powershell zwingend die "" weg lassen.
C:\Users\xxx\Music\foobar2000\foobar2000.exe /playpausegeht also.
also nur mehr die (sicherheits)frage an dich: was setz' ich für 'nen befehl ab in fhem?
nicht, dass mir aufgrund irgendwelche weggelassener sonderzeichen, fhem um die ohren fliegt irgendwann, wenn ich nicht mehr dran denk *g*
→do↑p!dnʇs↓shit←

Otto123

also per ssh gesendet landet landet meiner Meinung nach in Windows in einem Shell Prozess von Openssh, der am ehesten cmd.exe ist. Powershell ist das dort keinesfalls. Das müsstest Du mit ssh user@host powershell bla bla abschicken, also powershell aufrufen und Parameter dahinter.
Das Standard Terminal ist seit Windows irgendwas nicht mehr cmd sondern powershell, aber das ist nicht mal das gleiche geschweige denn dasselbe :)
Powershell hat beim Aufruf wieder andere Parsingregeln als cmd, hast Du ja schon bemerkt. Ist im Zweifelsfall auch nur schwierig.
Ich habe dazu in meinem Blog schon ein paar Artikel verfasst um das Problem niederzuschreiben und immer wieder fallen mir neue Dinge auf. Nichts bleibt wie es ist?
Die Hochkommas um den Pfad/Befehl brauchst Du immer dann wenn Leerzeichen enthalten sind, z.B. bei \Program Files\ ;)

Deswegen mein Rat: entweder ist der Befehl ganz kurz und "einfach" oder man fährt besser damit, eine cmd Datei am Ziel zu machen und die über ssh aufrufen.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

the ratman

#39
ging ja auch nicht. hätte deine vorschlag getestet und auch noch die .bat probiert - siehe oben.

was mach' ich nun?
mir bleibt zwar immer noch winconnect, aber wie lange?

ZitatDie Hochkommas um den Pfad/Befehl brauchst Du immer dann wenn Leerzeichen enthalten sind, z.B. bei \Program Files\ ;)
da könnte man sich ja fast trauen. bis ich dann später mal von mir selber abschreibe und nix geht *g*
→do↑p!dnʇs↓shit←

Otto123

ach so, ich dachte Deine letzten Tests nach Neustart usw. waren erfolgreich?

Also foobar2000 geht nicht  ::) ich hatte das über den Windows Store installiert, das hat sich ganz komisch verhalten. Ich installiere das nochmal anders und schau nochmal.

Alles andere, reine cmd Programme, per Powershell Systemwerte abfragen, Scripts starten usw. funktioniert bei mir einwandfrei. Es gibt manche cmdlets die machen pseudografische Ausgaben (blaue Fortschrittsanzeige am oberen Bildrand) die machen dann Probleme.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

the ratman

#41
nö nö, direkt in der powershell, am windows-rechner, gings mit foobar. das andere war ja nur eine funzendes echo von deinen tests.
die frage bliebe also wie ich das nun ohne anführungsstriche von fhem aus senden soll ...
gut, dann ist ssh wohl nicht für mich, derzeit hätte ich nur diesen konkreten anwendungszweck.

ich geh' jetzt auch mal frech von aus, dass mein 2., eventueller, anwendungszweck auch ned gehen wird - das win-interne tts. das hätte ich nämlich gerne für durchsagen genutzt. hätte die grauslichen offline-tts stimmen von linux z.b. mimic3 (und die is ja schon 'ne bessere) zumindest verringert und mein gehör geschont *g*.

auf jeden fall dank' ich dir nochmal für deine zeit!
und vielleicht gibts ja was wirklich funzendes da draußen in der welt, dass ebenfalls keine zusatzprogramme auf win erfordert? mal schauen, ob hier noch wer reinstolpert ...
→do↑p!dnʇs↓shit←

Otto123

Zitat von: the ratman am 06 Juli 2023, 16:32:13gut, hab ne t.cmd mit 1 zeile befehl ...

xxx@LITTLEBASTARD C:\Users\xxx>t.cmd
xxx@LITTLEBASTARD C:\Users\xxx>"C:\Users\xxx\Music\foobar2000\foobar2000.exe" /playpause

er ruft auf, bleibt aber dann ohne bestätigung hängen. nach ca. 30 sek. gibts wieder ne prompt
naja Du hattest ja so getestet, bei mir gab es einen ganz anderen Fehler - darauf mein Resümee: es geht nicht.
Deswegen: ich installiere das nochmal anders (nicht über store) mal schauen.

Wie wird die win interne tts angesteuert? Hast Du da ne Info?
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

the ratman

#43
so überhaupt gar keine info *g*
mir ist das tts-zeugs erst in den sinn gekommen, als damals winconnect programmiert wurde und ich just zu dem zeitpunkt mit tts auf linux gespielt hab. das ist dann halt schon ein krasser unterschied in der qualität. da halten halt nur noch online-tts mit, was ich aber total verweigere.

eventuell was von den warmluftgebläsen auf stackoverflow: https://stackoverflow.com/questions/1040655/ms-speech-from-command-line#39647762
ob das brauchbar ist, musst du beurteilen.

übrigens: nur 'ne sehr dumme idee --> warum schmeißt du dich nicht mit dem winconnect-programmierer zusammen? ich denke, ihm fehlt die zeit und du bist bisher der "windoof-wissenste", der mir hier über den weg gelaufen ist.
das wäre sicher 'ne geile zusammenarbeit bei euch beiden ... ich find' allein seine wmi-schnittstelle endgeil und tts und cam und mic und ...
leute  wie ich hätten weiterhin eine "modul-sicherheit" und müssen nicht so viel lernen, dass ihnen das gelernte nix nutzt *lach*
→do↑p!dnʇs↓shit←