Listing aus Forum in eine Linux-Datei übernehmen

Begonnen von is2late, 30 April 2020, 15:32:30

Vorheriges Thema - Nächstes Thema

is2late

Noch ne Anfängerfrage:

Kann man (mit Erfolg) ein Listing/Script aus dem Forum direkt in eine Linux-Datei auf dem Raspi kopieren oder muss zB über dos2unix gegangen werden?

Falls dos2unix benötigt wird, wie bitte benutzt man das Programm? Ich komme mit der englischen Beschreibung nicht klar. Hatte gehofft, einfach das Listing in das dos2unix-Fenster kopieren zu können und dann würde ruckzuck das Linux-Listing erscheinen....
Tatsächlich erscheint das Reinkopierte aber doppelt   :o
Und bei den angegebenen Befehlsbeispielen sehe ich noch nicht einmal, wie/wo einzugeben..
Die Frage hat wahrscheinlich etwas Slapstickhaftes, aber das ist es mir wert, wenn weiterhilft...
Bitte erleuchtet mich!
LG
Pi4, Tahoma Jalousien, Hue, Echo, Sonos, Lupusec XT3, FritzBox

herrmannj

Grundsätzlich sollte das gehen, wobei es die Linux Datei an sich nicht gibt und die zweite Frage ist, wie die Daten auf den raspi kommen.

Der grundsätzliche Unterschied zwischen DOS und Linux sind die line endings. Im Kontext fhem kannst du den Editor von fhem benutzen. Ansonsten kannst du dich per SSH auf den raspi verbinden und dort einen Editor wie nano benutzen. Dort kannst du Inhalte auch direkt reinkopieren.

KernSani

Wenn ich ,,Listings hier im Forum" lese, vermute ich, dass es sich um device definitionen o.ä. handelt? Das ist über die FHEM Weboberfläche einzugeben (Stichwort ,,Raw Editor".


Kurz, weil mobil....
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

is2late

Vielen Dank für die Antworten!

Zur Erläuterung:
Die Verbindung zum Raspi läuft über VNC. Ich möchte ein Script dort in die Datei  /opt/fhem/FHEM/presence.sh setzen.
Kann ich die Vorlage aus dem Forum vom Browser direkt in  die presence.sh auf dem raspi kopieren?

Danke und LG
Pi4, Tahoma Jalousien, Hue, Echo, Sonos, Lupusec XT3, FritzBox

MadMax-FHEM

Wenn du eh schon einen DESKTOP auf dem fhem SERVER hast (du merkst den "Widerspruch"!? ;)  )...
...dann öffne einen Browser und verbinde dich auf die Forumsseite...

...öffne einen Editor (mousepad!?) und kopier das dann da rein...

Einziges Problem wird sein:

Desktop läuft unter User pi (nehme ich an) und fhem unter dem User fhem (vermute ich)...

...ergo: User pi darf NICHT unter /opt/fhem usw. schreiben (das ist ja das Homeverzeichnis von fhem und NICHT von pi)

Besser: du freundest dich (irgendwann) mal mit der Linux-Shell und einigen Linux-Befehlen an!

Weil: du wirst die so erstellte Datei erst mal nur irgendwo im Home von pi (/home/pi usw.) ablegen dürfen.

Dann musst du sie (mittels sudo vermutlich) ins passende Verzeichnis kopieren/verschieben (cp bzw. mv)...
...also irgendwo nach /opt/fhem usw.

Danach musst du die "Besitzverhältnisse" wieder passend rücken: chown

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Otto123

@Joachim mousepad war doch was anderes - oder :)? Oder gibt es den Editor unter Linux?

Deutsche Beschreibung https://waterlan.home.xs4all.nl/dos2unix/de/man1/dos2unix.htm

Aber wozu? Editor unter linux nehmen, der macht das richtig. Man muss bloß beten das die Zwischenablage aus dem Weg vom Browser über VNC in den Editor noch halbwegs korrekte Zeichen übriglässt!

Ich würde unter Windows einfach ein cmd Fenster öffnen, ssh user@ip-adresse eingeben und den Editor nano im linuxfenster verwenden. copy&paste klappt über diesen Weg gut.

Wie kann man den integrierten FHEM Editor mit einer beliebigen Datei aufrufen? Gibt es da einen Hack? Das würde doch alle diese Diskussionen etwas erleichtern?

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

MadMax-FHEM

#6
Hallo Otto,

du hattest noch nie Buster mit Desktop... ;)

Ich hab einen PI4 als "Büro-Kleinrechner" für mal schnell...
...und da gibt es 2 Mousepads...

...einmal das für die Maus auf dem realen Desktop...

...und einmal auf dem virtuellen Desktop für zum Zeichen reinklopfen... ;)

Guckst du: https://wiki.ubuntuusers.de/Mousepad/

EDIT: aber egal welcher Weg, sofern man das nicht als User fhem macht bleibt die "Rechte-/Nutzer-Problematik"... Und da is2late ja extra Desktop und vnc hat, wird er wohl von ssh (noch) nicht viel halten... ;)

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

is2late

Ganz herzlichen Dank, Otto und Joachim!

Das sind haufenweise wertvolle Anfänger-Infos.
Der Hinweis auf die Eigentümer-Problematik bei Unix lässt mich einige Probleme der letzten Tage verstehen  :o

Toll ist die deutsche Übersetzung für dos2unix, wenn ich auch nicht nirgendwo finde, wo man die Kommandos eingibt.
Das Fenster selbst ist ja überraschend leer, nirgendwo ein freundliches Menue...
Sagen wir, ich will Datei W in Datei U umwandeln: gibt man dann entsprechend
dos2unix [Optionen] [DATEI ...] [-n EINGABEDATEI AUSGABEDATEI ...] einfach ins Fenster ein:
dos2unix n W n U
wobei bei W und U jeweils die Speicherorte angegeben werden müssen? Mit "Reinkopieren" läuft da also nichts, oder?

Ottos Anregung mit SSH hab ich erfolgreich ausprobiert, vielen Dank!

Pi4, Tahoma Jalousien, Hue, Echo, Sonos, Lupusec XT3, FritzBox

Otto123

Auf die Gefahr hin, dass es mir mit dos2unix so geht wie mit mousepad - aber das ist für mich ein reines Kommandozeilenprogramm. Ich bin mir nicht sicher wie du es aufrufst, aber normal öffnet man ein Terminalfenster (das ist schwarz und leer, bis auf den Prompt) und dort tippt man Kommandos ein.

Das Programm dos2unix wandelt mit dem Syntax dos2unix bla.txt die Datei bla.txt ins unix Format um. Wurde die Datei in Windows erstellt (nur dann macht die Anwendung eigentlich Sinn) werden die "doppelten" Zeilenumbrüche von Windows durch "einfache" von Unix ersetzt.
Aber man kann die Datei auch "kopieren" dos2unix -n windows.txt linux.txt
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

is2late

Danke, Otto.. krieg es aber immer noch nicht hin.

An welcher Stelle des Kommandos wird denn der Code reinkopiert? Sobald ich das mache, erscheint er doppelt, jede Zeile für sich.

Sagen wir, der Code wäre
sub CheckPresence($$)
{
  my ($ip,$mac)= @_;
  my $ret = "";


Wie sieht dann bitte das komplette Kommando aus?

LG
Pi4, Tahoma Jalousien, Hue, Echo, Sonos, Lupusec XT3, FritzBox

MadMax-FHEM

#10
Warum machst du es nicht über vnc und "Desktop", wenn du das eh schon hast!?

Also einfach mousepad öffnen und Browser wo der Code steht...
Dort markieren, ctrl+c und in mousepad ctrl+v abspeichern fertig...

EDIT: wenn du denkst zur Sicherheit noch dos2unix anwenden. Denke aber in der Verwendung und mit mousepad unnötig...

Erst mal...

Weil egal ob per ssh oder anderem "schwarzen Fenster" (Terminal) die "User-Problematik" wird bleiben...

Außer du bist im Terminal als User fhem eingeloggt...

Wobei nat. der Umgang mit nano (o.ä.) nicht schadet, weil du für das Presence-Script auch etwas bzgl. fhem und "sudo" tun musst und da wird es mit grafischem Editor (z.B. mousepad, Gedit, ...) schwer...

Einfügen in nano geht mit "rechter Maustaste -> einfügen"...

EDIT: zuvor nat "nano" starten, also im "schwarzen Fenstet" nano pfad/dateiname eingeben. Nicht wundern Fenster bleibt schwarz aber du bist dann schon im Editor ;) Speichern mit ctrl+o und verlassen mit ctrl+x Aufpassen, wenn der Pfad wo hin zeigt, wo der ausführende User nicht schreiben darf, dann wird das nicht klappen. Aber (wie mehrfach erwähnt) auch nicht mit einem grafischen Editor o.ä. Besser also mit Linux und Console beschäftigen und auf lange Sicht den Desktop vom fhem Server runter werfen... Wie du siehst hilft er nichts. Verbraucht nur unnötig Ressourcen und birgt zusätzliche "Gefahren"...

EDIT2: wenn pfad/dateiname noch nicht existiert, wird sie angelegt (beim "Verlassen"/"Speichern" vors. der ausführende User darf dorthin schreiben)...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Otto123

Das ist doch aber Code für die 99_myUtils ?

An welcher Stelle und bei welchem Kommando bist Du?

Mit dos2unix schreibst Du keinen Code in eine Datei. Die ist zum Formatwandeln wenn Du es falsch gemacht hast..
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

is2late

@Joachim: Ja, VNC wäre mir auch am liebsten, weil am einfachsten. Ich hab bisher den Code über den Browser meines Windows-PC aus dem Forum kopiert und dann auf den Raspi kopiert. Hat soweit auch funktioniert. Beim Thema Anwesenheitsüberwachung  https://forum.fhem.de/index.php/topic,76342.285.html scheint das so einfach aber nicht zu klappen, jedenfalls nicht so, dass die Sache funktioniert.
Beispiel: Hab in FHEM die presence.sh erstellt und in nano den Code aus Post 141 kopiert.
Nach Euren Hinweisen hab ich das Ganze alternativ mit ssh durchgeführt.
Abgesehen davon, dass die Anwesenheitserkennung immer noch nicht klappt (Handy immer abwesend) wüsste ich gern, ob beide Vorgehensweisen korrekt sind oder ob die Terminalvariante Fehler produziert.

@Otto: Du erkennst so einen kleinen Codeschnippsel? Alle Achtung!
Ich hab den Ausschnitt nur als Beispiel genommen, weil ich gerade an der Anwesenheitsüberwachung verzweifele. Wollte dos2unix als dritte Variante zu oben ausprobieren, für den Fall, dass bei den anderen Varianten immer noch etwas Falsches beim Kopieren mitkommt.

LG und danke!
Pi4, Tahoma Jalousien, Hue, Echo, Sonos, Lupusec XT3, FritzBox

MadMax-FHEM

Zitat von: Otto123 am 01 Mai 2020, 17:54:32
Das ist doch aber Code für die 99_myUtils ?

An welcher Stelle und bei welchem Kommando bist Du?

Mit dos2unix schreibst Du keinen Code in eine Datei. Die ist zum Formatwandeln wenn Du es falsch gemacht hast..

Ups, richtig...
Aber hier geht es aber auch "durcheinander"... ;)

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

MadMax-FHEM

#14
Das Presence was du hier einrichten willst läuft bei mir auch...

Aber es sind 2 Dinge (gut eigentlich 3 ;)  okok 4 ;)  ):

1. du musst etwas in eine myUtils Datei eintragen (das Schnipselchen aber nat. Vollständig)

Wenn du schon eine myUtils hast, dann einfach unter "Edit Files" die Datei auswählen und den Code dort einfügen.

ctrl+c und dann ctrl+v

Wichtig: es muss VOR der 1 am Ende der Datei passieren und darf nat. nicht eine bestehende Sub "zerschießen" ;)

Wenn du noch keine myUtils hast: https://wiki.fhem.de/wiki/99_myUtils_anlegen

2. du musst das presence.sh ablegen, so dass fhem darauf zugreifen darf.

Die musst du entweder mit nano im Terminal oder eben mit mousepad oder Gedit oder einem anderen grafischen Editor anlegen und dann dort den Code reinkopieren...

Theoretisch könnte das auch über edit files gehen...

EDIT: und um die dachte ich geht es (die ganze Zeit). Weil das ist (normalerweise) die einzige Datei in dem Presence-Zusammenhang wo die Unix/Linux Endungen ins Spiel kommen, weil es eben ein "Shell-Script" ist.


3. musst du dafür sorgen, dass fhem die Datei als sudo ausführen darf bzw. wird ja in dem Script sudo benutzt (soweit ich mich erinnere)

und zwar dass fhem das OHNE Passworteingabe darf!

EDIT: habe im anderen Thread gesehen, da hast du ja bereits "gekämpft" und gewonnen!? ;)


4. musst du noch das Presence Device anlegen und diesem mitteilen, dass du die in myUtils angelegte Funktion/Sub zum presence check verwenden willst...



EDIT: und so gerne du das Oberfläschenzeugs und vnc usw. magst: verabschiede dich davon. Auf Dauer wird das sonst nichts... ;)


Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)