telnet Befehle --> Quittierung von fhem?

Begonnen von Frank_Huber, 16 Dezember 2015, 22:26:54

Vorheriges Thema - Nächstes Thema

Frank_Huber

Nabend,

ist es irgendwie möglich dass fhem einen über Telnet eingehenden Befehl quittiert?
wäre für mein Projekt von Vorteil, finde aber nichts dazu.

danke & Grüße
Frank

Otto123

Guten Abend,

was erwartest Du für eine Antwort? Ja? oder Nein?

Was genau meinst Du mit quittiert?
Welches Telnet? Kommando an FHEM? Telnet auf einen anderen Client?

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

Zrrronggg!

Er meint sicher die Eingabe eines Fhem Befehls in das Fhem Telnet.

Und eine echte Quittierung gibt es nicht, so funktioniert telnet ja allgemein nicht. Man kann aber natürlich sofort sehen was Fhem mit dem Befehl macht, wenn man z.b. die Ausgabe aller Aktivitäten von Fhem mittels "inform timer" aktivert.

Das sieht dann z.b. so aus:

fhem> set Licht_Anlage on                               <- Eingabe
fhem> 2015-12-16 23:49:58 IT Licht_Anlage on            <- Fhem Reaktion
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

Frank_Huber

Morgen,

Sorry, ich war wohl nicht präzise genug.

Ja, ich möchte einen Befehl per Telnet client absetzen und FHEm sollte diesen irgendwie quittieren. ein simples "ack" würde genügen.

Das mit dem "inform timer" klingt interessant, nur bei einem kurzen Telnet Test gesehen dass dann zu viel ankommt. :(

Hintergrund:
über die NetIO app habe ich einen Button definiert. Beim druck darauf sendet der Button einen Befehl: "SET GPIO_IN_14 readValue on"
Damit greift mein Notify zum Toggeln.
Funktioniert einwandfrei.
Jetzt möchte ich aber auch auf dem gleichen Button den Status des Aktors sehen.
Also noch ein "read" Attribut mit Wiederholung auf den Button: "getstate OUT1_A1"

Ich kann dem Button allerdings nur global sagen ob er auf Antwort warten soll oder nicht .
in NetIO über "requireSendresponse"
mach ich den auf ON geht der Toggle einmal zu schalten, dann steht NetIO weil es auf Antwort wartet.
mach ich auf off wird NetIO strubbelig weil Antworten kommen die nicht erwartet werden.

von daher wäre wirklich ein simples "ack" nach absetzen des Telnet Befehls am besten.
mir ist klar dass Telnet selbst so nicht arbeitet, das ging mehr in die FHEM Ecke. Telnet ist ja nur das Übertragungsprotokoll.

Ich hab jetzt eine andere "Lösung gefunden. Ich lege zwei Buttons übereinander.
Der Statusanzeigebutton unten und einen Schaltbutton oben drüber. diesen dann transparent und alles geht soweit. zwar nicht die schönste Lösung, aber sie funktioniiert. :)

Danke fürs mitdenken!

Grüße
Frank

justme1968

wenn du ein mal eine leere zeile sendest bekommst du ab da nach jeder zeile einen fhem prompt.

ansonsten kannst du bei inform timer angeben was du sehen willst. z.b. nur bestimmte events von bestimmten devices.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Wuppi68

mach Dir doch eine Perl Funktion, die Dein ach sendet und rufe diese via telnet auf

sub machirgendwas(Befehl) {
  print "preAck";
  $Befehl;
  print "postAck";
}


FHEM unter Proxmox als VM

Frank_Huber

Ohje, Ich und Perl. ;-)

Werd ich mir mal anschauen, für den Moment geht es aber recht gut mit den zwei Buttons übereinander.

Das ganze Projekt steht eh noch aufm Schreibtisch. Baubeginn ist erst nächstes Jahr.
vielleicht schaff ich es bis dahin was in Per zu machen. ;)

Danke nochmal und viele Grüße
Frank

Otto123

Nur Mut. Ist einfacher als du denkst  8)
Grüße 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

Klaus0815

#8
wenn Du die NetIO App einsetzen willst, versuche es lieber über HTTP statt über Telnet, ich habe auf der NetIO Demo-Seite ein kleines Beispiel abgelegt, ist viel einfacher und umgeht das Problem mit den Antworten

schau mal hier, habe auch lange damit gekämpft:
http://netio.davideickhoff.de/en/projects/836

Frank_Huber

Zitat von: Klaus0815
wenn Du die NetIO App einsetzen willst, versuche es lieber über HTTP statt über Telnet, ich habe auf der NetIO Demo-Seite ein kleines Beispiel abgelegt, ist viel einfacher und umgeht das Problem mit den Antworten
http://netio.davideickhoff.de/en/projects/836

Danke Klaus, werde ich versuchen.