[Gelöst] get return value weiterverarbeiten - ich bekomme es nicht hin

Begonnen von Bucky2k, 08 Dezember 2016, 00:15:10

Vorheriges Thema - Nächstes Thema

Bucky2k

Hallo zusammen,

ich möchte einen Müllabfuhr Kalender in FHEM hinterlegen und am Abfuhrttag den Terminnamen als 14Byte Telegramm auf den KNX Bus schicken.

Kalender angelegt:

#Kalender
define Abfall_Kalender Calendar ical file /opt/fhem/calendar/basic.ics


Aktuellen Eintrag auslesen:

get Abfall_Kalender summary mode=start
ergibt Rückmeldung "" (leerer string) oder z.B. "Biomüll"

Wie aber sieht der Eintrag in der FHEM-Config aus, der diesen Returnwert auf den Bus schickt? Sprich:

set EIB_5400 string *den Rückgabewert von "get Abfall_Kalender summary mode start"*

Diesen Befehl würde ich dann jeden morgen um 6 Uhr ausführen lassen und meine Textanzeigen sagen mir, welcher Müll fällig ist... Einen leeren String (kein Kalendereintrag) muss ich dann noch irgendwie abfangen/filtern... Gern auch hierzu Hinweise wie man das macht.

Danke sehr!!!

Bucky

igami

Da wirst du über Perl gehen müssen

my $text = fhem("get Abfall_Kalender summary mode=start");
return $text if($text ne "");


Ob du das nun in ein DOIF, at oder myUtils packst ist dir selbst überlassen.
Ich benutze das Calendar Modul zwar nicht, kann mir aber nicht vorstellen, dass du der erste bist der soetwas vorhat ;)

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

Otto123

Hallo Bucky,
falls Du den Eintrag nicht schon als Reading hast, kannst Du mit dem Code ein userReading erzeugen.
Mit einem DOIF ([06:00] and [Abfall_Kalender:<Reading>] ne "")(set EIB_5400  [Abfall_Kalender:<Reading>]) schickst Du das Ganze ab.

Nur so als ungeprüfte Idee  ;)

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

Bucky2k

#3
sub calendarActive{
  my $text = fhem("get Abfall_Kalender summary mode=start");
  return $text if($text ne "");
}


in 99_myUtils.pm gelegt und

#Kalender
define Abfall_Kalender Calendar ical file /opt/fhem/calendar/basic.ics
attr Abfall_Kalender userReadings urRead {calendarActive}


in die FHEM.cfg

In der commandline dann
set EIB_5400 string [Abfall_Kalender:urRead]

--> läuft :)  Nun noch ein DoIf um 6.00 Uhr morgens und fertig.

Danke euch!!!