Fhem Kalender Kalendermodul Syntax

Begonnen von Thomas Stark, 17 Juni 2018, 10:24:32

Vorheriges Thema - Nächstes Thema

Thomas Stark

Hallo ich verzweifle am Syntax von Fhem
In der Kommandozeile funktioniert das hier wunderbar.
get Abfuhrkalender events filter:mode=="upcoming"
upcoming wird als string übergeben. Soweit so klar.
Aber ich kriege es nicht hin als Übergabe an eine Variable in einer Funktion.
Hier der 1. Versuch
my $str = fhem("get Abfuhrkalender events filter:mode=="upcoming"");
geht nicht.
Hier der zweite Versuch
my $str = fhem("get Abfuhrkalender events filter:mode=='upcoming'");
geht auch nicht.
Die Aufgabe
wie mache ich upcoming als string bekannt?
Ich glaube das ist was für unsere Perl experten.
Sorry mit C# kann ich mir Helden, aber jetzt bin ich mit meinem Latein am Ende.
Habe auch nichts gefunden im Web.

Wer kann mir helfen?
Danke vorab Thomas

Otto123

#1
Hallo Thomas,

ich bin auch kein Perl Experte, versuch mir aber immer durch Versuch/Irrtum zu helfen.
Das Problem mit """" hat man ja nicht nur im Perl, hinzukommt, dass dieses Kommando nicht einen String upcoming will sondern wirklich den kompletten String "upcoming".

Du kannst alles interaktive testen, auch über Perl:
Kommandozeile
get Abfuhrkalender events filter:mode=="upcoming"
oder über Perl sollten diese drei Varianten gehen, zwei mit anderen Anführungszeichen, das dritte mit "Schutz" \ innerhalb von "" für einige Sonderzeichen nötig.
{fhem ("get Abfuhrkalender events filter:mode=='upcoming' ")}
{fhem ('get Abfuhrkalender events filter:mode=="upcoming" ')}
{fhem ("get Abfuhrkalender events filter:mode=="\"upcoming\"")}


Vielleicht hilft es. Ansonsten hier suchen -> http://perldoc.perl.org

Allerdings bin ich nicht sicher, was das Ergebnis ist, sicher kein einfacher String :)

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

Thomas Stark

Hallo Otto,

vielen Dank für Deine Hilfe.
Ich habe einfach weiterprobiert.
Hier meine Lösung.
my $str = fhem('get Abfuhrkalender events filter:mode=="upcoming"');

Wenn Du das so in die Klammern schreibst, dann behandelt Fhem bzw. perl den ganzen Ausdruck als einen String.
In diesem Fall kann man in Fhem in der Kommandozeile schön üben und sich den Syntax zusammenbauen.
Wenn es dann klappt, dann  einfach hier auf diese Weise in der Klammer zwischen den ' Zeichnen das Kommando einbauen.

So etwas würde dann auch funktionieren.
my $str= fhem('get Abfuhrkalender events filter:mode=="upcoming", limit:count=1');

Ich musste meinen Kalender umstellen, weil ständig der Hinweis kam text wird nicht weiter unterstützt.

Vielen Dank für Deine Hilfe.

Gruss Thomas