UserReadings Progamm kürzen?

Begonnen von Stonemuc, 22 Januar 2020, 19:56:05

Vorheriges Thema - Nächstes Thema

Stonemuc

Hallo,

hat jemand eine Idee wie ich per userreadings dea aktive Programm so kürzen kann, das nur der letzte Teil, also das eigentliche Programm in einem reading steht?

BSH.Common.Root.ActiveProgram Dishcare.Dishwasher.Program.MachineCare

Also so, dass nur noch MachineCare da steht?
FHEM aus Raspberry PI 3 B+, Haussteuerung auf EnOcean Basis, Tecalor THZ 404eco Wärmepumpe

CoolTux

Es ist nur die Anschauung der Richtung. Keine vollständige Lösung für Deine Anfrage.
Dafür hast Du zu wenig Infos gegeben.

(split('.','BSH.Common.Root.ActiveProgram Dishcare.Dishwasher.Program.MachineCare))[6]
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Stonemuc

Bedeutet also, dass er immer bei einem Punkt trennt und dann Wert 6 genommen wird?

Bis ActiveProgram ist es allerdings der Name des Readings...der Teil ab Dishcare dann das Reading an sich...
FHEM aus Raspberry PI 3 B+, Haussteuerung auf EnOcean Basis, Tecalor THZ 404eco Wärmepumpe

CoolTux

Das Reading an sich? Oder eher der Wert des Readings. Aber Du hast es ja verstanden und kannst es entsprechend an passen.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Stonemuc

Der Wert natürlich..war falsch ausgedrückt von mir.
FHEM aus Raspberry PI 3 B+, Haussteuerung auf EnOcean Basis, Tecalor THZ 404eco Wärmepumpe

Stonemuc

Ich glaub ich bin echt zu schwer von Begriff für soetwas. Ich bekomme das nicht hin.
Ich versuch jetzt nochmal alle Informationen zu geben, vielleicht kann mir jemand mit der Lösung auf die Sprünge helfen.

Es gibt ein Reading mit folgendem Namen:

BSH.Common.Root.ActiveProgram

dazu z.B. folgender Inhalt:

LaundryCare.Washer.Program.Cotton

Nun soll ein userreading mit dem Namen Program erzeugt werden, was nur den letzten Teil des Strings abbildet - hier also z.B. Cotton.

Funktioniert also mit split '.' ...aber wie muss denn der genau Terminus sein?
FHEM aus Raspberry PI 3 B+, Haussteuerung auf EnOcean Basis, Tecalor THZ 404eco Wärmepumpe

CoolTux

Program:BSH.Common.Root.ActiveProgram:.* {  (split('.', ReadingsVal($name,'BSH.Common.Root.ActiveProgram','none')))[3] }

Voraussetzung ist aber das der Inhalt des Readings tatsächlich immer so ausschaut       value1.value2.value3.value4 und Du somit immer value4 haben willst
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Stonemuc

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

Stonemuc

Noch mal eine Frage...

Ist bei dir oben eine : zu viel drinnen? Vor .*{ split ?
FHEM aus Raspberry PI 3 B+, Haussteuerung auf EnOcean Basis, Tecalor THZ 404eco Wärmepumpe

CoolTux

Nein. Das ist die Regex für das Event

Das Event sollte genau so ausschauen

BSH.Common.Root.ActiveProgram: LaundryCare.Washer.Program.Cotton
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net