FHEM Forum

FHEM - Hardware => Server - Linux => Thema gestartet von: llinus76 am 28 Dezember 2023, 18:49:15

Titel: [gelöst]telnet/netcat comandos an FHEM schicken
Beitrag von: llinus76 am 28 Dezember 2023, 18:49:15
Hallo Community,

ich habe ein Problem, dass ich gerade nicht gelöst bekomme. Ich habe ein Shell script über das ich Parameter in FHEM setzen möchte.

wenn ich folgendes Kommando absetzte wird der PArameter in FHEM nicht übernommen:
echo "setreading aWATTar <Parameter> <Wert>" | nc -w5 127.0.0.1 7072wenn ich nc mit dem Parameter -v aufrufe kommt folgendes:
Connection to 127.0.0.1 7072 port [tcp/*] succeeded!Im Logfile steht auch nichts.

Wenn ich mich manuell mit nc verbinde und alles in 2 Schritten mache funktioniert es
nc -w5 127.0.0.1 7072und dort das Kommande direkt absetzt
setreading aWATTar <Parameter> <Wert>funktioniert alles.

Kann es sein, dass ich da ein Problem mit dem Timing habe (die Übergabe zu schnell/früh ist), oder hat jemand eine Idee was ich falsch mache, oder woran das liegt?

Danke und lG,
Martin

Titel: Aw: telnet/netcat comandos an FHEM schicken
Beitrag von: frober am 28 Dezember 2023, 20:35:28
Probiere es mal mit
echo -e "setreading aWATTar <Parameter> <Wert> \r\n" | nc -w5 127.0.0.1 7072
Titel: Aw: telnet/netcat comandos an FHEM schicken
Beitrag von: llinus76 am 28 Dezember 2023, 20:44:28
Hallo frober,

danke für deine Antwort. Leider ist das Verhalten das gleiche ...

LG,
Martin
Titel: Aw: telnet/netcat comandos an FHEM schicken
Beitrag von: frober am 28 Dezember 2023, 20:52:05
Und wenn du nur mit den \n sendest?
Titel: Aw: telnet/netcat comandos an FHEM schicken
Beitrag von: llinus76 am 28 Dezember 2023, 21:01:31
leider auch nicht
echo -e "setreading aWATTar Test1 123 \n" | nc 127.0.0.1 7072
echo -en "setreading aWATTar Test1 123 \n" | nc 127.0.0.1 7072
Titel: Aw: telnet/netcat comandos an FHEM schicken
Beitrag von: frober am 28 Dezember 2023, 22:18:32
Steht etwas im Fhem Log?
Ohne das Leerzeichen vorm \n geht es auch nicht?

Schon mit socket an Stelle von nc getestet?

Oder Bsp.
netcat -l -c "printf 'HTTP/1.1 200 OK\r\n'" -p 8000
Titel: Aw: telnet/netcat comandos an FHEM schicken
Beitrag von: Otto123 am 28 Dezember 2023, 23:13:31
Hi,

und warum nicht fhem.pl im Client Modus?
Siehe https://fhem.de/commandref_modular_DE.html#command
/opt/fhem/fhem.pl 7072 "setreading aWATTar <Parameter> <Wert>"
Bei mir funktioniert das ansonsten ohne die (unnötigen) Zeilenumbrüche:
echo "setreading Test windDirectionText 23"|nc -v -w5 raspib3 7072
Gruß Otto
Titel: Aw: telnet/netcat comandos an FHEM schicken
Beitrag von: llinus76 am 29 Dezember 2023, 09:16:03
Guten Morgen Otto,

danke für deine Antwort und den für mich neuen Ansatz über fhem.pl - oft liegt das Gute so nahe  ::) . Diese Möglichkeit war mir gar nicht bewusst und gefällt mir eigentlich besser als über nc. Soweit so gut, leider hat es über fhem.pl bei mir auch nicht funktioniert weshalb ich mir das fhem Logfile im LogLevel 5 (erst dann kam der Eintrag) genauer angesehen habe und folgende Meldung gefunden habe:
2023.12.29 07:54:21.608 5: telnet SSL/HTTPS error:  SSL accept attempt failed error:0A00010B:SSL routines::wrong version number (peer: 127.0.0.1)
Anbei meine telnet config aus der fhem.cfg (aktuell habe ich das Passwort deaktiviert):
define telnetPort telnet 7072 global
setuuid telnetPort xxx
attr telnetPort SSL 1

define allowed_telnetPort allowed
setuuid allowed_telnetPort xxx
attr allowed_telnetPort validFor telnetPort
#attr allowed_telnetPort password xxx

Wenn ich hier SSL deaktiviere (attr telnetPort SSL 0) funktioniert alles ;D , sowohl nc als auch über fhem.pl :) .

Soweit so gut, aber wie kann ich das SSL Problem lösen, oder soll ich SSL deaktiviert lassen? Anders gefragt, was wäre die ,,ideale" telnet Konfiguration um es zumindest einigermaßen sicher zu machen? Bringt ein Passwort überhaupt was?

Nochmals Danke, liebe Grüße und vielleicht habt ihr zu SSL Konfig noch eine Idee,
Martin
Titel: Aw: telnet/netcat comandos an FHEM schicken
Beitrag von: Otto123 am 29 Dezember 2023, 09:24:23
Moin Martin,

wozu brauchst Du telnet global? Du willst das auf der gleichen Maschine machen, definiere telnet ohne global und schränke den Zugriff auf localhost (oder die konkreten IPs) ein und gut.
Was macht SSL in der Konstellation (lokale Kommunikation) für einen Sinn? - außer das man es kann :)

Wobei Dein SSL Fehler natürlich noch an andere Stelle ein Problem sein könnte, es einfach wegzuschieben ist da auch keine Lösung.
Dazu solltest Du aber einen neuen Thread aufmachen wo der Entwickler mitliest: help telnet oder help fhemweb

Gruß Otto
Titel: [gelöst] telnet/netcat comandos an FHEM schicken
Beitrag von: llinus76 am 29 Dezember 2023, 10:16:30
Hallo Otto,

ich sag mal so, da war wenig Plan dahinter, habe einfach "ohne Hirn" die Beispielconfig aus der Referenz genommen. Ich habe es jetzt auf localhost eingeschränkt.

Ich werde einen neuen Tread hier öffnen, denn wie du sagst den SSL Fehler hätte ich gerne gelöst um Folgeprobleme auszuschließen ...

Danke nochmals,
Martin
Titel: Aw: [gelöst]telnet/netcat comandos an FHEM schicken
Beitrag von: frober am 29 Dezember 2023, 10:40:20
Was ich nicht verstehe, wieso hat es in 2 Schritten funktioniert?

Wenn es Probleme mit SSL gibt, hätte es keine Verbindung geben dürfen.
Titel: Aw: [gelöst]telnet/netcat comandos an FHEM schicken
Beitrag von: Wernieman am 30 Dezember 2023, 11:06:20
wenn Du SSL verwenden willst, muß der Client auch ssl "reden" können.

Ich verwende gerne nc anstatt fhem.pl, da es kleiner ist ... und ich FHEM auch von Maschienen ansteuere, die kein fhem.pl haben.

Die Beispiele für telnet sollten funktionieren. Kann Dir aber meine Scripte erst Anfang Januar geben ....