[gelöst]telnet/netcat comandos an FHEM schicken

Begonnen von llinus76, 28 Dezember 2023, 18:49:15

Vorheriges Thema - Nächstes Thema

llinus76

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


frober

#1
Probiere es mal mit
echo -e "setreading aWATTar <Parameter> <Wert> \r\n" | nc -w5 127.0.0.1 7072
Raspi 3b mit Raspbian Buster und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

llinus76

Hallo frober,

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

LG,
Martin

frober

Raspi 3b mit Raspbian Buster und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

llinus76

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

frober

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
Raspi 3b mit Raspbian Buster und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

Otto123

#6
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
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

llinus76

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

Otto123

#8
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
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

llinus76

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

frober

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.
Raspi 3b mit Raspbian Buster und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

Wernieman

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 ....
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html