(Gelöst) Curl und HMLAN Disconnected

Begonnen von SamNitro, 21 August 2017, 17:16:40

Vorheriges Thema - Nächstes Thema

amenomade

#30
Danke für die Empfehlungen.
Zitatnc kannst Du analog zu telnet, z.B.
Code: [Auswählen]

echo -E setreading Update.Counter fhem_text $textfhem | sed 's/\n/ /g' | nc localhost 7072
Telnet habe ich aber nicht mehr drinn, sondern "perl fhem.pl localholst:7072 blabla"

Zu 2. hatte ich am Anfang alles in einem Befhel: perl fhem.pl localhost:7072 befehl1;befehl2;befehl3. Nur zur bessere Lesbarkeit habe ich getrennt. Aber Du hast Recht, ich werde das wieder ändern, und dein "catch" Fehler mitnehmen.

Warum ist "nc" besser als "perl fhem.pl"? (dass nc besser als telnet ist, ist mir schon klar)

@SamNitro: mache heute Abend die Änderungen. Jetzt hab ich Elternabend in der Schule ;)
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

SamNitro

Zitat von: amenomade am 23 August 2017, 19:01:03
@SamNitro: mache heute Abend die Änderungen. Jetzt hab ich Elternabend in der Schule ;)

Ich danke dir vielmals
(Intel-Nuc Proxmox) (Homematic) (EnOcean) (CUL868) (CUL433) (Zigbee2MQTT) (ESP8266) (Echo) (DUOFERN)

betateilchen

Zitat von: SamNitro am 23 August 2017, 16:22:21
Aber jetzt gibt er mir eine Fehlermeldung raus:


Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Connection closed by foreign host.
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Connection closed by foreign host.


EDIT: Aber der text kommt trotzdem in Fhem an

Da sehe ich überhaupt keine Fehlermeldung. Das sind völlig normale Konsolenausgaben. Da wird zweimal erfolgreich eine telnet Session geöffnet und am Ende wieder geschlossen.

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

SamNitro

#33
Zitat von: betateilchen am 23 August 2017, 19:08:20
Da sehe ich überhaupt keine Fehlermeldung. Das sind völlig normale Konsolenausgaben. Da wird zweimal erfolgreich eine telnet Session geöffnet und am Ende wieder geschlossen.



okay gut zu wissen.

aber warum bekomme ich die Fehlermeldung oder ist das auch keine?
Usage: setreading <name> <reading> <value>
where <name> is a single device name, a list separated by komma (,) or a regexp. See the devspec section in the commandref.html for details.

wenn ich das script nehme
#!/bin/bash

textfhem=$(curl -sS http://fhem.de/fhemupdate/controls_fhem.txt| diff - /opt/fhem/FHEM/controls_fhem.txt  |grep "> UPD" )
updatesfhem=`echo $textfhem |grep -o "UPD" |wc -l`
textfhem=${textfhem//[$'\n']}
perl /opt/fhem/fhem.pl localhost:7072 "setreading Update.Counter FHEM $updatesfhem; setreading Update.Counter fhem_text $textfhem"

textftui=$(wget -qO - https://raw.githubusercontent.com/knowthelist/fhem-tablet-ui/master/controls_fhemtabletui.txt| diff - /opt/fhem/FHEM/controls_fhemtabletui.txt |grep ">" |grep "UPD")
updatesftui=`echo $textftui |grep -o "UPD" |wc -l`
textftui=${textftui//[$'\n']}
perl /opt/fhem/fhem.pl localhost:7072 "setreading Update.Counter FTUI $updatesftui; setreading Update.Counter ftui_text $textftui"

updatesall=$(($updatesfhem + $updatesftui))
perl /opt/fhem/fhem.pl localhost:7072 "setreading Update.Counter ALL $updatesall"
(Intel-Nuc Proxmox) (Homematic) (EnOcean) (CUL868) (CUL433) (Zigbee2MQTT) (ESP8266) (Echo) (DUOFERN)

Wernieman

nc ist besser als "perl fhem", da es viel schlanker ist .. und ich z.B. liebe "schlanke Programme"

"perl fhem" macht eigentlich auch nichts anderes.

P.S. wenn man ein PW vergeben hat, ist es wie folgt:
echo -en "passwort\nBefehl\nquit\n" | nc -w 5 localhost 7072

bzw. in der "Aufgeteielten Variante"
FemBefehl="Passwort\n"
FemBefehl="${FemBefehl}fhem-Befel1\n"


Es gibt sogar Prinzipiell einen 2. Grund, es funzt auch von einem fernen rechner (wenn es fhem erlaubt), ohne Installation von fhem
- 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

amenomade

Sooo... mit den Ideen und Empfehlungen von allen (danke):

#!/bin/bash
#
FemBefehl=""
textfhem=$(curl -sS http://fhem.de/fhemupdate/controls_fhem.txt| diff - /opt/fhem/FHEM/controls_fhem.txt  |grep "> UPD" )
updatesfhem=`echo $textfhem |grep -o "UPD" |wc -l`
textfhem=${textfhem//[$'\n']}
FemBefehl="${FemBefehl}setreading Update.Counter FHEM $updatesfhem\nsetreading Update.Counter fhem_text FHEM$textfhem\n"

textftui=$(wget -qO - https://raw.githubusercontent.com/knowthelist/fhem-tablet-ui/master/controls_fhemtabletui.txt| diff - /opt/fhem/FHEM/controls_fhemtabletui.txt |grep ">" |grep "UPD")
updatesftui=`echo $textftui |grep -o "UPD" |wc -l`
textftui=${textftui//[$'\n']}
FemBefehl="${FemBefehl}setreading Update.Counter FTUI $updatesftui\nsetreading Update.Counter ftui_text FTUI$textftui\n"

updatesall=$(($updatesfhem + $updatesftui))
FemBefehl="${FemBefehl}setreading Update.Counter ALL $updatesall\n"

echo -en "${FemBefehl}" | nc localhost 7072

error=$?
if [ "$error" -ne 0 ]
then
  echo "`date` : Fehler $error beim Aufruf \"$0 $@\""
  exit 1
fi
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

SamNitro

Zitat von: amenomade am 23 August 2017, 22:44:30
Sooo... mit den Ideen und Empfehlungen von allen (danke):

#!/bin/bash
#
FemBefehl=""
textfhem=$(curl -sS http://fhem.de/fhemupdate/controls_fhem.txt| diff - /opt/fhem/FHEM/controls_fhem.txt  |grep "> UPD" )
updatesfhem=`echo $textfhem |grep -o "UPD" |wc -l`
textfhem=${textfhem//[$'\n']}
FemBefehl="${FemBefehl}setreading Update.Counter FHEM $updatesfhem\nsetreading Update.Counter fhem_text FHEM$textfhem\n"

textftui=$(wget -qO - https://raw.githubusercontent.com/knowthelist/fhem-tablet-ui/master/controls_fhemtabletui.txt| diff - /opt/fhem/FHEM/controls_fhemtabletui.txt |grep ">" |grep "UPD")
updatesftui=`echo $textftui |grep -o "UPD" |wc -l`
textftui=${textftui//[$'\n']}
FemBefehl="${FemBefehl}setreading Update.Counter FTUI $updatesftui\nsetreading Update.Counter ftui_text FTUI$textftui\n"

updatesall=$(($updatesfhem + $updatesftui))
FemBefehl="${FemBefehl}setreading Update.Counter ALL $updatesall\n"

echo -en "${FemBefehl}" | nc localhost 7072

error=$?
if [ "$error" -ne 0 ]
then
  echo "`date` : Fehler $error beim Aufruf \"$0 $@\""
  exit 1
fi


Wieder mal danke für die Arbeit aber ein kleines problem gibt es noch, wenn ich das script Manuell starte beendet er die eingabe nicht von alleine.
(Intel-Nuc Proxmox) (Homematic) (EnOcean) (CUL868) (CUL433) (Zigbee2MQTT) (ESP8266) (Echo) (DUOFERN)

Wernieman

#37
Ändere mal folgende Zeile

echo -en "${FemBefehl}" | nc localhost 7072

zu folgenden

FemBefehl="${FemBefehl}quit\n"
echo -en "${FemBefehl}" | nc -w 5 localhost 7072


Edit:
Danke anamenomade  (siehe Folgepost) für das Melden eines copy&paste-Fehlers
- 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

amenomade

#38
also... vermutlich ohne das "/code]" am Ende der 1. Zeile
FemBefehl="${FemBefehl}quit\n"
echo -en "${FemBefehl}" | nc -w 5 localhost 7072
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

SamNitro

Bin um halb 3 zuhause werde dann berichten


Gesendet von iPhone mit Tapatalk
(Intel-Nuc Proxmox) (Homematic) (EnOcean) (CUL868) (CUL433) (Zigbee2MQTT) (ESP8266) (Echo) (DUOFERN)

SamNitro

(Intel-Nuc Proxmox) (Homematic) (EnOcean) (CUL868) (CUL433) (Zigbee2MQTT) (ESP8266) (Echo) (DUOFERN)

SamNitro

Danke an alle die dabei geholfen haben und ihr die Geduld hattet mit mir :)


Gesendet von iPhone mit Tapatalk
(Intel-Nuc Proxmox) (Homematic) (EnOcean) (CUL868) (CUL433) (Zigbee2MQTT) (ESP8266) (Echo) (DUOFERN)