Datei "Zahl.txt" in Fhem bekommen

Begonnen von klausmrkor, 11 Januar 2017, 16:09:45

Vorheriges Thema - Nächstes Thema

Schmitzkatze

Hallo Otto

Zeile 1:

Can't find string terminator '"' anywhere before EOF at (eval 7366977) line 1.

Zeile 2:
Can't find string terminator '"' anywhere before EOF at (eval 7367074) line 1.

Gruß Thomas
Server: Raspberry pi 2 + Debian +, USB-TCM310, HM_IP / CCU3, FitzBox!

Otto123

Sorry da war ein " zuviel, ich habe es editiert probiere es nochmal.
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

Schmitzkatze

Hallo Otto

das scheint zu gehen:

Zeile 1:

"Zeile 5","MNO"

Zeile 2:

"Zeile 5";"MNO"

Scheint also das Auslesen zu gehen.

hmmm
Server: Raspberry pi 2 + Debian +, USB-TCM310, HM_IP / CCU3, FitzBox!

Otto123

#48
Dann probiere noch { my @content = FileRead({FileName => "log/test.txt", ForceType => "file"});; $content[-1] =~ s/\;;/,/g;; fhem "set energieerzeugung $content[-1]"} ;)

Wenn das richtig im dummy ankommt hast Du ein C&P Fehler :) oder dein anderes at ist noch aktiv?

Ich habe mal in #42 von define auf defmod geändert.
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

Schmitzkatze

Hallo Otto

ich habe erst einen Luftsprung gemacht - war umsonst.

geht nicht.

Aber es liegt nicht am Auslesen!

Wenn ich z.B. set energieerzeugung "Zeile 5";"MNO" absetze, kommt auch nur "Zeile 5" im Dummy an.

Also geht die übergabe an´s Dummy mit ; nicht.

Thomas
Server: Raspberry pi 2 + Debian +, USB-TCM310, HM_IP / CCU3, FitzBox!

Otto123

#50
Das sage ich doch! Aber die Variante mit Komma muss doch gehen!?!
bei set dummy "Zeile 5";"MNO" ist ab dem ; ein neuer Befehl und das wirft maximal einen Fehler

Du kannst anstatt Komma auch etwas anderes nehmen, bloß semikolon wird schwierig, Brauchst Du ein Semikolon im Dummy?
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

Schmitzkatze

Die ;´s sind mir egal - ich brauche nur die Zahlen dazwischen.

Ich versuche mal alles zusammenzusetzen, sodass nur das , gesetzt wird.

Th.
Server: Raspberry pi 2 + Debian +, USB-TCM310, HM_IP / CCU3, FitzBox!

Schmitzkatze

#52
Hallo Otto

habe folgenses getestet:

{ my @content = FileRead({FileName => "log/test.txt", ForceType => "file"});; $content[-1] =~ s/\;;/,/g;; return $content[-1];; fhem "set energieerzeugung $content[-1]"}

geht aber trotzdem nicht.

Habe ich ev. das falsch zusammengesetzt?
bestimmt - es geht nämlich garnicht...

Irgend etwas habe ich falsch gemacht.

Th.
Server: Raspberry pi 2 + Debian +, USB-TCM310, HM_IP / CCU3, FitzBox!

Otto123

#53
Ja  :'(

warum nimmst Du nicht direkt meinen Code aus #48 ? Der ist doch für Dich gemacht?!

das das ersetzen geht hast Du doch in #47 schon bestätigt  :-[

Und lerne bitte Codetags - die # Taste über dem  :-X Smiley
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

Schmitzkatze

#54
Hallo Otto

manchmal steht man vor einem Wald und sucht Bäume.

JEP! Geht.

Puhh - Ich danke Dir nochmal.

Gruß Thomas
Server: Raspberry pi 2 + Debian +, USB-TCM310, HM_IP / CCU3, FitzBox!

Schmitzkatze

Hallo Otto.

Danke für den # Hinweis - habe nicht dran gedacht.

Trotzdem habe ich ein komisches Phänomen:

Wenn ich aus der Originaldatei folgendes als Befehl absetzte, wird alles sauber an das Dummy übergeben:

{ my @content = FileRead({FileName => "log/SMI_Loggdatei.txt", ForceType => "file"});; $content[-1] =~ s/\;;/,/g;; fhem "set energieerzeugung $content[-1]"}

raus kommt im Dummy: "THK","29.8.2017 20:16:55",0,6228,000000000000

cool.

Jetzt alles ins AT:

+*00:00:05 { my @content = FileRead({FileName => "log/SMI_Loggdatei.txt", ForceType => "file"});; $content[-1] =~ s/\;;/,/g;; fhem "set energieerzeugung $content[-1]"}

Das AT aus der Config:

define leistungholen at +*00:00:05 { my @content = FileRead({FileName => "log/SMI_Loggdatei.txt", ForceType => "file"});;;; $content[-1] =~ s/\;;;;/,/g;;;; fhem "set energieerzeugung $content[-1]"}

Im Dummy kommt nur "THK" an.

:-\

Siehst Du noch einen Fehler?

Gruß Thomas
Server: Raspberry pi 2 + Debian +, USB-TCM310, HM_IP / CCU3, FitzBox!

Otto123

#56
Du hast jetzt den Code für das define in die DEF eingetragen? Schwerer Fehler ...

Die Anzahl der ; ist in beiden Fällen unterschiedlich  ::)
ZitatMehrere FHEM-Kommandos hintereinander werden mittels Semikolon (;) getrennt. Weil Semikola auch in PERL-Code oder SHELL-Programmen benutzt werden, müssen sie mittels doppelten Semikola geschützt werden. Lesen Sie sich bitte die Bermerkungen des notify-Abschnittes zu Kommandoparametern und Regeln durch.
Z.B. schaltet die erste der folgenden Befehlszeilen die Lampe 1 nur/erst zur Uhrzeit 07:00 Uhr aus, die Lampe 2 aber sofort und die zweite Befehlszeile schaltet Lampe 1 und 2 um 7:00 Uhr gleichzeitig aus.

define lampoff at 07:00 set Lamp1 off; set Lamp2 off
define lampoff at 07:00 set Lamp1 off;; set Lamp2 off

Für jede weitere Indirektion muss man die Strichpunkte verdoppeln. Um also die beiden Lampen um 7:00 für 10 Minuten einzuschalten schreibt man:
define onAt at 07:00 set Lamp1 on;;set Lamp2 on;; define offAt at +00:10 set Lamp1 off;;;;set Lamp2 off
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

Schmitzkatze

Hallo Otto

jetzt hab ich´s

Ist irgendwie verwirrend. Einmal müssen zwei Semikolons genommen werden und dann aber wieder nur eines.

Aber jetzt geht es.

So sieht es jetzt in der CFG aus:

define leistungholen at +*00:00:05 { my @content = FileRead({FileName => "log/SMI_Loggdatei.txt", ForceType => "file"});; $content[-1] =~ s/\;;/,/g;; fhem "set energieerzeugung $content[-1]"}

Damit geht es.

Danke nochmal.

Gruß Thomas


PS.: Eine Bitte: Sei nicht so hart zu den Anfängern obwohl ich das verstehen kann, wenn man immer wieder schreiben muss "nimm das #..." - wir sind nicht nur innerhalb von FHEM Anfänger, sondern auch im Forum. Alle Regeln perfekt zu beherschen ist nicht einfach.
Server: Raspberry pi 2 + Debian +, USB-TCM310, HM_IP / CCU3, FitzBox!

Otto123

Hallo Thomas,

uih da bin ich jetzt wieder zu sehr als Oberlehrer durchgekommen. Sorry das wollte ich nicht.

Weißt Du, ich "kann zwar Windows" aber mein FHEM läuft unter Linux. Das FileRead was bei Dir läuft gibt es bei mir nicht, ich hab es anders nachgestellt ( my @content = `cat /home/pi/test.txt`). Dann versuche ich Deine Umgebung in dem was ich schreibe nach zu "denken" dabei können natürlich Fehler passieren. Wenn Du dann sagst es geht nicht, zweifle ich an mir.

Im geschriebenen Wort steht nur 7 % unserer Kommunikation :) da kann es im schnellen in und her schon mal schief gehen. 

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

betateilchen

Zitat von: Otto123 am 29 August 2017, 22:22:42
Das FileRead was bei Dir läuft gibt es bei mir nicht, ich hab es anders nachgestellt

Das FileRead() gibt es bei Dir auch, Du benutzt es nur nicht. FileRead() ist eine von FHEM bereitgestellte Funktion.
An dieser Stelle mit einem Systemaufruf zu arbeiten, um eine Datei mit cat auszugeben, ist schon ziemlich haarsträubend.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!