[workaround] Attribut mit Newlines kopieren geht nicht

Begonnen von JoeALLb, 18 April 2017, 11:50:15

Vorheriges Thema - Nächstes Thema

JoeALLb

Hallo,

ich möchte von einem Device das Userreading auf ein anderes kopieren.
Das klappt mit einfachem Code, sobald jedoch eine Kombination aus Newline, etc. vorhanden ist
klappt dies leider nicht mehr.

Den Code, den ich zum kopieren nutzen möchte ist:
{fhem("attr dummy2 userReadings ".AttrVal("dummy1","userReadings",""))}


Ein Beispiel für solch einen Dummy wäre:

define dummy2 dummy
define dummy1 dummy
attr dummy1 room 3_Bastelecke
attr dummy1 userReadings tmp {\
my $xx= "xx";;\
# kommentar;;\
return "1"\
\
}


Ale Fehlermeldung erhalte ich immer
Unknown command #, try help.
Unknown command return, try help.


Gibt es eine interne "escape"-Funktion, die ich nutzen kann?

sG
Joe
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

Otto123

#1
Hi,

verwende doch einfach die Raw definition. Kopiere nicht direkt aus der fhem.cfg.
Wenn es nur ein einzelnes Userreading ist funktioniert auch der integrierte FHEM Editor ohne Probleme.

Oder ich habe den Zweck mal wieder nicht verstanden.

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

JoeALLb

Hallo Otto,

danke fürs mitdenken, da ich das jedoch zigfach automatisiert an mehrere Devices übergeben muss, hilft mir der FHEM-Editor wenig...
Auch die RAW-Befehle helfen mir hier nicht...

Im Endausbau suche ich sogar die Möglichkeit, das per devspec direkt an mehrere Devices übergeben zu können um eine gewisse Vereinheitlichung zu bekommen,
das kann ich dann aber auch per Perl erreichen.Wichtig für mich ist im Moment eine Möglichkeit zu finden, wie ich solch ein Atribut 1:1 kopieren kann.
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

Otto123

naja wenn Du es sowieso "nicht liest" muss es auch nicht hübsch sein. Dann würde ich die Zeilenumbrüche im Code einfach weglassen.
Ich weiß - ist jetzt ein dürftiger Ansatz  ;)

Die Jokerfrage wäre: sind die \ von Dir? Also sieht man die auch im Editor?
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

dev0

Zitat von: JoeALLb am 18 April 2017, 11:50:15
Ale Fehlermeldung erhalte ich immer
Unknown command #, try help.
Unknown command return, try help.


Wenn das Problem tatsächlich nur an der Kommentarzeile liegt, dann entweder keine Kommentare verwenden oder den Code in eine 99_myUtils.pm auslagern.

igami

zwar immer noch beta, aber guck dir mal mein archetype modul an, das macht das was du möchtest.
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

JoeALLb

Zitat von: igami am 18 April 2017, 13:20:19
zwar immer noch beta, aber guck dir mal mein archetype modul an, das macht das was du möchtest.
Puh, aber "einfach" macht es das Modul auch nicht gerade... Aber immerhin, es funktioniert!.
Wenn ich nun aber mehrere (viele) Quellen angeben möchte, ist mir dieser Ansatz eigentlich nicht stimmig genug.
Ich möchte keine neuen zusätzlichen Devices anlegen müssen, ich mögte lediglich ein Attribut, egal welche (funktionierenden!) Sonderzeichen es enthält, kopieren können.

Wie sieht es mit dem %attr-Hash aus? Empfohlen ist dieser lt. https://wiki.fhem.de/wiki/DevelopmentModuleIntro#Attribute zwar auch nicht,
aber hat damit jemand Erfahrung?
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

JoeALLb

Zitat von: Otto123 am 18 April 2017, 12:29:27
naja wenn Du es sowieso "nicht liest" muss es auch nicht hübsch sein. Dann würde ich die Zeilenumbrüche im Code einfach weglassen.
[...]
Die Jokerfrage wäre: sind die \ von Dir? Also sieht man die auch im Editor?
Der Code ändert sich häufiger, da sind Formatierungen für mich schon sehr hilfreich!
die \ kommen aus der FHEM-Oberfläche, indem man unten auf "RAW definition" klickt.
Ich denke, ein simples escapen von Newlines reicht hier nicht aus, oder?
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

Otto123

Wie dev0 schont gesagt hat, das Problem sind wahrscheinlich gar nicht die \ sondern der Kommentar #.
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

JoeALLb

Zitat von: Otto123 am 18 April 2017, 14:06:40
Wie dev0 schont gesagt hat, das Problem sind wahrscheinlich gar nicht die \ sondern der Kommentar #.
Wenn ich die Kommentarzeile im Beispiel entferne, geht es immer noch nicht. Es hängt also schon mit mehreren Parametern zusammen...

Der FHEM-Editor müsste doch beim Abspeichern eine den Code Escapen... kann da nicht einfach die selbe Funktion für diesen
Fall verwendet werden? Leide rhabe ich diese im Code jedoch nicht gefunden...
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

igami

Zitat von: JoeALLb am 18 April 2017, 14:00:41
Puh, aber "einfach" macht es das Modul auch nicht gerade... Aber immerhin, es funktioniert!.
Wenn ich nun aber mehrere (viele) Quellen angeben möchte, ist mir dieser Ansatz eigentlich nicht stimmig genug.
Ich möchte keine neuen zusätzlichen Devices anlegen müssen, ich mögte lediglich ein Attribut, egal welche (funktionierenden!) Sonderzeichen es enthält, kopieren können.
aber hat damit jemand Erfahrung?
Vorteil von dem Modul, es vererbt immer wieder wenn neue devices hinzukommen.

Was ich noch nicht verstanden habe, was meinst du mit mehreren Quellen?
Alternativ, guck dir mal das Template Modul an, ist ählich zum archetype modul, nur anders :D
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

Otto123

Ich bleibe mal bei deinem Beispiel: leere Leerzeilen mag FHEM auch manchmal nicht in Definitionen ->
return "1"\
\
}

->
return "1"}

Aber Du willst eh was ganz anderes, ich kann Dir leider nicht helfen.

Viel Erfolg
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

JoeALLb

Eine Erweiterung des COPY-Befehls wurde hier auch schon mal ins Spiel gebracht....
https://forum.fhem.de/index.php/topic,68455.msg601271.html#msg601271

Leider ist auch das Template-Modul nicht das, was ich suche.
Im Endeffekt läuft die gesuchte Möglichkeit von mir darauf hinaus, dass ich ein
copyAttr, oder ein copy mit Attributen als Parameter benötigen würde.

Leider verstehe ich den Code von 98_copy.pm nicht ausreichend, um mir eine auf Attribute angepasste Version davon zu machen...
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

Ellert

Wenn alles andere nicht hilft, geht es so
{$attr{dummy2}{userReadings} = $attr{dummy1}{userReadings}}

siehe https://wiki.fhem.de/wiki/DevelopmentModuleIntro#Attribute

JoeALLb

Zitat von: Ellert am 18 April 2017, 16:30:15
Wenn alles andere nicht hilft, geht es so

Perfekt, vielen Dank, das ist genau das, was mir hier hilft!!
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270