Hauptmenü

DOIF Zugriff auf Attribute

Begonnen von traxanos, 27 Juli 2015, 20:48:28

Vorheriges Thema - Nächstes Thema

Damian

Zitat von: traxanos am 10 August 2015, 22:40:26
Die Idee mit dem § hört sich gut an. Ich frage jetzt mal nicht wann es kommt, nervt mich selber immer wenn ich gefragt werden :D

ja, die Ferienzeit ist erst mal um, und da muss ich mit anderen Sachen mein Geld verdienen ;)

Das Modul ist nur ein Hobby-Projekt.

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

igami

Zitat von: Damian am 10 August 2015, 21:43:10
Wahrscheinlich werde ich Zugriff auf Attribute mit einem Sonderzeichen versehen z. B.

[global:§energyCost]

Das kaufmännische und-Zeichen & habe ich bereits für Internels eingebaut.
Hallo Damian, dann war es ja damals eine blöde Idee von mir, dass ? für Abfragen ohne trigger vorzuschlagen, sonst hätte man es wie bei ReadingsGroup machen können, was im Nachhinein bestimmt zu weniger Verwirrung führt.
Aber könnte man nicht auch einfach Texte nehmen? Attr Internal und Readings wie bei AttrVal, InternalVal und ReadingsVal? Das Readings würde dabei ja sowieso schon wegfallen. Sonst muss man in einem Jahr immer erst die Commandref bemühen um zu gucken, welches Sonderzeichen in welchem Modul was bewirkt. Ich vermute auch deswegen sind mal % und @ aus dem notify Modul durch $EVENT und $NAME ersetzt worden.

Grüße
igami
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

traxanos

Ich finde das gar nicht so schlecht. Ich verwende ebenfalls viel ? für triggerlose Abfragen. Die Sonderzeichen finde ich ebenfalls nicht so schlimm, da man so relative schnell auf viele Daten zugreifen kann, ohne komplexe Funktionen aufrufen zu müssen. Was wenn überhaupt schade ist, dass es keine Perl Syntax gibt um für komplexere Sachen selber was zu bauen.
Im Einsatz:
FHEM: Latest auf RPi2
HM: vCCU, HMLAN, HMUSB2, HM-CC-RD-DN, HM-TC-IT-WM-W-EU, HM-SEC-SC-2, HM-ES-PMWs1-Pl, HM-LC-Sw1PBU-FM, HM-PB-2-WM55-2, HM-RC-8, HM-BP-6-WM55
CUL: ESA2000, Intertechno

Damian

Zitat von: igami am 11 August 2015, 17:30:15
Hallo Damian, dann war es ja damals eine blöde Idee von mir, dass ? für Abfragen ohne trigger vorzuschlagen, sonst hätte man es wie bei ReadingsGroup machen können, was im Nachhinein bestimmt zu weniger Verwirrung führt.
Aber könnte man nicht auch einfach Texte nehmen? Attr Internal und Readings wie bei AttrVal, InternalVal und ReadingsVal? Das Readings würde dabei ja sowieso schon wegfallen. Sonst muss man in einem Jahr immer erst die Commandref bemühen um zu gucken, welches Sonderzeichen in welchem Modul was bewirkt. Ich vermute auch deswegen sind mal % und @ aus dem notify Modul durch $EVENT und $NAME ersetzt worden.

Grüße
igami

Alles hat seine Vor- und Nachteile. Fragezeichen finde ich OK für reine Abfragen. Ich habe auch das Fragezeichen für regexp genommen, was im Nachhinein etwas unglücklich war, weil es verwirrend ist, auch wenn es an einer anderen Stelle steht. DOIF ist ein Preprozessor für den Perlinterpreter und alles was in Perl erlaubt ist, versuche ich zu meiden, damit es keine Kollisionen gibt und alle Optionen von Perl weiterhin möglich sind. Damit verbieten sich alle Bezeichnernamen, die insb. für irgendeine Funktion stehen können. Auch $ steht für Variablen und das möchte ich bewusst vermeiden, um mich an dieser Stelle von der Perl-Welt abzugrenzen. Ich habe mich für eckige Klammern entschieden, weil sie in Perl, wenn überhaupt, dann in Verbindung mit Arrays vorkommen und die dürften in DOIF selten vorkommen. Meine Welt ist also auf [...] beschränkt. Andererseits muss es ein Zeichen sein, welches normalerweise in FHEM-Namen nicht vorkommt, damit man es an eine bestimmte Funktion binden kann.

Vorschläge für ein Attribut können hier gerne abgegeben werden. Vielleicht gibt es ein Sonderzeichen, welches intuitiver ist als ein §.

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

igami

Zitat von: Damian am 11 August 2015, 19:46:37
Vorschläge für ein Attribut können hier gerne abgegeben werden. Vielleicht gibt es ein Sonderzeichen, welches intuitiver ist als ein §.

Ein @ wie @ttribut, kommt auch nur bei Arrays vor.
Viele Sonderzeichen bleiben ja nicht mehr.

Für regexp würde sich auch ~ anbieten, kannst ja einfach beides einbauen, und das ? aus der commandref nehmen.

Grüße
igami
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

Damian

Zitat von: igami am 11 August 2015, 20:45:35
Ein @ wie @ttribut, kommt auch nur bei Arrays vor.
Viele Sonderzeichen bleiben ja nicht mehr.

Für regexp würde sich auch ~ anbieten, kannst ja einfach beides einbauen, und das ? aus der commandref nehmen.

Grüße
igami

Die Idee mit @ ist auch nicht schlecht.

Bei regexp muss man inzwischen kompatibel bleiben, dafür wird das Modul zu oft benutzt, als dass man etwas ändern könnte.

Aber ich hatte sowieso vor irgendwann, so etwas einzubauen:

  ["regexp für Device":"regexp für Event"]

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

igami

Zitat von: Damian am 11 August 2015, 21:15:40
Bei regexp muss man inzwischen kompatibel bleiben, dafür wird das Modul zu oft benutzt, als dass man etwas ändern könnte.
Die Idee war auch es zusätzlich einzubauen und nur die Commandref abzuändern, dass ? an der Stelle soll weiterhin funktionieren.
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

Damian

Zitat von: igami am 11 August 2015, 21:43:07
Die Idee war auch es zusätzlich einzubauen und nur die Commandref abzuändern, dass ? an der Stelle soll weiterhin funktionieren.

ja, aber da ich die Anführungszeichen für beliebige Devices einbauen wollte, wären sie auch für Events gut, zumal man regexp in Perl auch in Anführungszeichen angibt.

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF