Hallo,
ich möchte ein Reading "temperature" an eine Prozedur in 99_myutils übeergeben.
Code:
---------------------
{&test([d_dect200kaffeemaschine:temperature])}
---------------------
bringt einen Syntaxfehler. Wie muss der aufruf korrekt aussehen?
Danke und Gruß,
Kurt
{&test(ReadingsVal("d_dect200kaffeemaschine","temperature",""))}
https://wiki.fhem.de/wiki/DevelopmentModuleAPI#ReadingsVal (https://wiki.fhem.de/wiki/DevelopmentModuleAPI#ReadingsVal)
?
Heißt die Sub tatsächlich '&test'!?
Du musst den Wert auch nicht übergeben, du kannst ihn per ReadingsVal oder ReadingsNum auch IN der Sub abfragen...
Wenn die Sub über ein Notify ausgelöst wird und z.B. von verschiedenen Devices getriggert wird und du je nach triggerndem Device etwas in der Sub tun willst, kannst du auch das triggernde Device bzw. dessen Namen übergeben: $NAME, also:
define NotifyName notify RegEx {mySub($NAME)}
Und wenn du erzählst was genau du willst und was die Sub tut etc. gibt's evtl. noch bessere/konkretere Hilfe...
EDIT: und statt nur zu schreiben "bringt einen Syntaxfehler" hätte die genaue Fehlermeldung geholfen zu helfen...
Gruß, Joachim
Hallo,
@yersinia: Danke, hat funktioniert!
@MadMax:
- Die Sub heißt natürlich "test".
- Es wurde tatsächlich nur "Syntaxfehler" at ... near... ausgegeben.
Was ich machen will. Ganz vorne im Reading steht die Temperatur (z. b. 29,5), dahinter kommt datenmüll, den ich abschneiden möchte. Die 29,5 sollen dann per Sprachausgabe auf Knopfdruck ausgegeben werden. Da ich mehrere von diesen geräten habe, wollte ich eben das jeweilige Gerät an Sub übergeben. Was die Lesbarkeit des Aufrufs angeht, ist das natürlich eine Katastrophe.
Dazu fällt mir nur ein, die Geräte in die Sub zu packen und mit unterschiedlichen Aufrufparametern zu steuern. Hat aber den Nachteil, dass beim nächsten Gerät die Sub angepasst werden müsste.
Bessere Vorschläge?
Danke und Gruß,
Kurt
Hallo Kurt,
naja, wenn du immer nur "drumrum" erzählst kann man keine (besseren) Vorschläge machen.
Also wie ist der Ablauf!?
Was ist der "Auslöser"!?
Woher weiß der Knopf welche Temperatur genommen und ausgegeben werden soll!?
Also wie würdest du deine Sub füttern (wollen)!?
Wenn du die Geräte entsprechend benamst, also ein "programmiertauglisches Schema" hast und die Sub entsprechend "generisch" ist, dann ist das nächste Gerät, welches diesem Schema "genügt" automatisch dabei!!?
Also ich habe einige Subs etc. die eben automatisch neu angelegte Geräte (mit entsprechendem Schema) "ausführen"...
Stichwort: devspec
Du kannst ja auch Devices mit bestimmten Namen "finden" oder von einem bestimmten Typ oder mit bestimmten Attributen (du kannst ja auch per userattr selber Attribute "erfinden" und dann nur bestimmten Devices "zuordnen")...
Es gibt sooooooo viele Möglichkeiten etwas "generisch" zu machen...
...aber erneut: solange du "um den heißen Brei" drumrum redest und nicht konkret (am besten mit "Ablaufbeschreibung" und list der betroffenen/beteiligten Devices) wird es halt immer auf "diesem Niveau" bleiben: "hinwerfen" von Möglichkeiten/Stichworten...
Wenn du nur die Zahl aus einem Readings haben willst: ReadingsNum statt ReadingsVal...
Gruß, Joachim