Codeschnipsel einfügen - Backslash?

Begonnen von Stonemuc, 09 Juli 2018, 18:34:10

Vorheriges Thema - Nächstes Thema

Stonemuc

Hallo,

ich bin's mal wieder mit einer kleinen Frage. Ich habe die Suche bemüht, bekomme aber so viele Seiten Treffer, dass ich vom ganzen Lesen schon irre bin und doch keine für mich relevante Antwort gefunden habe.

Ich möchte ein paar Codeschnipsel direkt in meine fhem.cfg übernehmen, verstehe aber das \ hinter den Zeilen nicht so richtig. Es geht um einen Teil aus einer THZ Wärmepumpe. Hat das was mit den Sonderzeichen und der Maskierung zu tun? Muss jede Zeile in der ein : oder @ ist, mit einem \ am Ende maskiert werden? Ich kenn mich in der Perl Programmiersprache leider noch überhaupt nicht so richtig aus. Ich wäre über eine kleine Aufklärung sehr dankbar. Das Einsteiger Manual lässt sich darüber nicht aus.
Ich hab zumindest mal gelernt, dass ein Sonderzeichen mit einem \voran dann als Sonderzeichen gilt und nicht als Steuerbefehl - was bedeutet aber das \ am Ende einer Zeile wie im Code unten?


define rg_thz_stat readingsGroup Mythz:<Schaltprogramm_aktiv>,SwitchingProg\
Mythz:<Verdichter>,Compressor\
Mythz:<Heizen>,HeatingHC\
Mythz:<Warmwasserbereitung>,HeatingDHW\
Mythz:<Nachheizstufen>,BoosterHC\
Mythz:<Filterwechsel>,FilterBoth\
Mythz:<Lüftungsstufe_manuell>,VentStage\
Mythz:<Lüftungsstufe_aktuell>,fanstage\
Mythz:<Heizkreispumpe>,PumpHC\
Mythz:<Abtauen>,Defrost\
Mythz:<Störung>,Service
attr rg_thz_stat alias Status
attr rg_thz_stat group THZ
attr rg_thz_stat nonames 1
attr rg_thz_stat room Heizung
attr rg_thz_stat sortby 1
attr rg_thz_stat valueIcon {'SwitchingProg.1'=>'hourglass@red',\
'SwitchingProg.0'=>'hourglass', \
'Compressor.1'=>'sani_garden_pump@red',\
'Compressor.0'=>'sani_garden_pump', \
'HeatingHC.1'=>'sani_heating@red',\
'HeatingHC.0'=>'sani_heating', \
'HeatingDHW.1'=>'sani_water_hot@red',\
'HeatingDHW.0'=>'sani_water_hot', \
'BoosterHC.3'=>'sani_heating_level_100@red',\
'BoosterHC.2'=>'sani_heating_level_80@red',\
'BoosterHC.1'=>'sani_heating_level_60@red',\
'BoosterHC.0'=>'sani_heating_level_0', \
'FilterBoth.1'=>'recycling@red',\
'FilterBoth.0'=>'recycling', \
'VentStage.1'=>'vent_ventilation_level_manual_m@red',\
'VentStage.0'=>'vent_ventilation_level_manual_m', \
'fanstage.3'=>'vent_ventilation_level_3@red', \
'fanstage.2'=>'vent_ventilation_level_2@blue', \
'fanstage.1'=>'vent_ventilation_level_1@green', \
'fanstage.0'=>'vent_ventilation_level_0@red', \
'PumpHC.1'=>'sani_pump@red',\
'PumpHC.0'=>'sani_pump', \
'Defrost.1'=>'frost@red',\
'Defrost.0'=>'frost', \
'Service.1'=>'hue_room_garage@red',\
'Service.0'=>'hue_room_garage', \
\
}

FHEM aus Raspberry PI 3 B+, Haussteuerung auf EnOcean Basis, Tecalor THZ 404eco Wärmepumpe

helmut

Als letztes Zeichen in der Zeile (danach darf nichts mehr kommen) bedeutet es eine Verkettung mit der nachfolgenden Zeile.
Das heisst, der Backslash und das Newline werden vom Interpreter weggeworfen und beide Zeilen als eine gesehen.

Gruss Helmut
Intelligenz ist die Fähigkeit, Arbeit zu vermeiden, aber dafür zu sorgen, daß die Arbeit gemacht wird.
(Linus Torvalds)

Stonemuc

Das ist quasi nur zur besseren Übersicht des Codes in einteiliger Darstellung,  wenn ich das richtig verstehe? Dann kann ich das direkt so einbinden und bin nun informiert...

Vielen Dank
FHEM aus Raspberry PI 3 B+, Haussteuerung auf EnOcean Basis, Tecalor THZ 404eco Wärmepumpe

helmut

Ganz genau. Damit machst Du nur den Code leserlicher.

Gruss Helmut
Intelligenz ist die Fähigkeit, Arbeit zu vermeiden, aber dafür zu sorgen, daß die Arbeit gemacht wird.
(Linus Torvalds)

Otto123

#4
ZitatIch möchte ein paar Codeschnipsel direkt in meine fhem.cfg übernehmen, verstehe aber das \ hinter den Zeilen nicht so richtig.
Meine Empfehlung: mach es über die Raw Def. Der Syntax ist dort identisch.

https://wiki.fhem.de/wiki/Konfiguration

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