neuer FHEM-Befehl IF

Begonnen von Damian, 25 Dezember 2013, 23:50:06

Vorheriges Thema - Nächstes Thema

Brockmann

Zitat von: Damian am 24 Juni 2014, 19:11:03
Die Fehlermeldungen kommen alle nicht von IF.
Hast du den Befehl überhaupt? Das kannst du erst mal testen, indem du einfach IF in der Kommandozeile eingibst. Dann sollte die Syntax von IF kommen.

Wenn ich im Eingabefeld der WebGUI IF eingeben, bekomme ich als Antwort:
Global symbol "$EVTPART0" requires explicit package name at (eval 3581) line 1.
Global symbol "$EVTPART1" requires explicit package name at (eval 3581) line 1.
Global symbol "$EVTPART0" requires explicit package name at (eval 3581) line 1.
Global symbol "$EVTPART1" requires explicit package name at (eval 3581) line 1.


Immerhin nicht also nicht "Unknown Command".
FHEM ist frisch aktualisiert und danach neugestartet. Ausgabe von "version":
# $Id: fhem.pl 6080 2014-06-07 16:12:09Z rudolfkoenig $
# $Id: 00_CUL.pm 5487 2014-04-08 11:29:41Z rudolfkoenig $
# $Id: 10_CUL_HM.pm 6153 2014-06-23 05:13:54Z martinp876 $
# $Id: 14_CUL_MAX.pm 5282 2014-03-22 10:02:33Z mgehre $
# $Id: 57_Calendar.pm 6145 2014-06-20 09:50:14Z borisneubert $
# $Id: 95_Dashboard.pm 5921 2014-05-21 18:47:19Z svenson08 $
# $Id: 72_FB_CALLMONITOR.pm 5994 2014-05-28 17:56:09Z markusbloch $
# $Id: 01_FHEMWEB.pm 6090 2014-06-09 10:25:11Z rudolfkoenig $
# $Id: 92_FileLog.pm 5876 2014-05-16 19:54:51Z rudolfkoenig $
# $Id: 00_HMLAN.pm 6150 2014-06-21 19:09:37Z martinp876 $
# $Id: 10_IT.pm 5649 2014-04-25 22:44:27Z justme1968 $
# $Id: 10_MAX.pm 5446 2014-04-05 12:17:00Z mgehre $
# $Id: 73_PRESENCE.pm 5434 2014-04-04 15:43:23Z markusbloch $
# $Id: 99_SUNRISE_EL.pm 5851 2014-05-13 19:39:03Z rudolfkoenig $
# $Id: 98_SVG.pm 5956 2014-05-24 13:04:04Z rudolfkoenig $
# $Id: 59_Twilight.pm 6136 2014-06-18 19:08:58Z dietmar63 $
# $Id: 99_Utils.pm 5488 2014-04-08 11:32:17Z rudolfkoenig $
# $Id: 59_Weather.pm 6112 2014-06-14 17:41:36Z borisneubert $
# $Id: 99_XmlList.pm 1840 2012-09-12 13:52:08Z rudolfkoenig $
# $Id: 90_at.pm 5319 2014-03-25 10:11:47Z rudolfkoenig $
# $Id: 98_autocreate.pm 5268 2014-03-20 20:46:00Z rudolfkoenig $
# $Id: 98_cmdalias.pm 5818 2014-05-11 14:15:07Z rudolfkoenig $
# $Id: 98_dewpoint.pm 5099 2014-03-02 16:29:34Z betateilchen $
# $Id: 98_dummy.pm 4934 2014-02-15 08:23:12Z rudolfkoenig $
# $Id: 91_notify.pm 6081 2014-06-07 16:31:18Z rudolfkoenig $
# $Id: 98_structure.pm 5050 2014-02-26 08:29:44Z rudolfkoenig $
# $Id: 98_telnet.pm 4844 2014-02-08 07:54:03Z rudolfkoenig $
./FHEM/95_webViewControl.pm: No such file or directory
# $Id: 98_weblink.pm 5608 2014-04-23 10:57:16Z rudolfkoenig $


Damian

Zitat von: Brockmann am 24 Juni 2014, 20:26:32
Wenn ich im Eingabefeld der WebGUI IF eingeben, bekomme ich als Antwort:
Global symbol "$EVTPART0" requires explicit package name at (eval 3581) line 1.
Global symbol "$EVTPART1" requires explicit package name at (eval 3581) line 1.
Global symbol "$EVTPART0" requires explicit package name at (eval 3581) line 1.
Global symbol "$EVTPART1" requires explicit package name at (eval 3581) line 1.


Immerhin nicht also nicht "Unknown Command".
FHEM ist frisch aktualisiert und danach neugestartet. Ausgabe von "version":
# $Id: fhem.pl 6080 2014-06-07 16:12:09Z rudolfkoenig $
# $Id: 00_CUL.pm 5487 2014-04-08 11:29:41Z rudolfkoenig $
# $Id: 10_CUL_HM.pm 6153 2014-06-23 05:13:54Z martinp876 $
# $Id: 14_CUL_MAX.pm 5282 2014-03-22 10:02:33Z mgehre $
# $Id: 57_Calendar.pm 6145 2014-06-20 09:50:14Z borisneubert $
# $Id: 95_Dashboard.pm 5921 2014-05-21 18:47:19Z svenson08 $
# $Id: 72_FB_CALLMONITOR.pm 5994 2014-05-28 17:56:09Z markusbloch $
# $Id: 01_FHEMWEB.pm 6090 2014-06-09 10:25:11Z rudolfkoenig $
# $Id: 92_FileLog.pm 5876 2014-05-16 19:54:51Z rudolfkoenig $
# $Id: 00_HMLAN.pm 6150 2014-06-21 19:09:37Z martinp876 $
# $Id: 10_IT.pm 5649 2014-04-25 22:44:27Z justme1968 $
# $Id: 10_MAX.pm 5446 2014-04-05 12:17:00Z mgehre $
# $Id: 73_PRESENCE.pm 5434 2014-04-04 15:43:23Z markusbloch $
# $Id: 99_SUNRISE_EL.pm 5851 2014-05-13 19:39:03Z rudolfkoenig $
# $Id: 98_SVG.pm 5956 2014-05-24 13:04:04Z rudolfkoenig $
# $Id: 59_Twilight.pm 6136 2014-06-18 19:08:58Z dietmar63 $
# $Id: 99_Utils.pm 5488 2014-04-08 11:32:17Z rudolfkoenig $
# $Id: 59_Weather.pm 6112 2014-06-14 17:41:36Z borisneubert $
# $Id: 99_XmlList.pm 1840 2012-09-12 13:52:08Z rudolfkoenig $
# $Id: 90_at.pm 5319 2014-03-25 10:11:47Z rudolfkoenig $
# $Id: 98_autocreate.pm 5268 2014-03-20 20:46:00Z rudolfkoenig $
# $Id: 98_cmdalias.pm 5818 2014-05-11 14:15:07Z rudolfkoenig $
# $Id: 98_dewpoint.pm 5099 2014-03-02 16:29:34Z betateilchen $
# $Id: 98_dummy.pm 4934 2014-02-15 08:23:12Z rudolfkoenig $
# $Id: 91_notify.pm 6081 2014-06-07 16:31:18Z rudolfkoenig $
# $Id: 98_structure.pm 5050 2014-02-26 08:29:44Z rudolfkoenig $
# $Id: 98_telnet.pm 4844 2014-02-08 07:54:03Z rudolfkoenig $
./FHEM/95_webViewControl.pm: No such file or directory
# $Id: 98_weblink.pm 5608 2014-04-23 10:57:16Z rudolfkoenig $


Dann stimmt bei dir etwas nicht.

Das Modul heißt "98_IF.pm" und hat die Version-Id # $Id: 98_IF.pm 5813 2014-05-10 18:03:59Z damian-s $

Gruß

Damian

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

Brockmann

Zitat von: Damian am 24 Juni 2014, 20:47:05
Dann stimmt bei dir etwas nicht.
Das Modul heißt "98_IF.pm" und hat die Version-Id # $Id: 98_IF.pm 5813 2014-05-10 18:03:59Z damian-s $
Hmm, nur was?
Also eine Datei 98_IF.pm habe ich im Verzeichnis /opt/fhem/FHEM (da wo auch die anderen derartigen Dateien sind). Dateieigenschaften (Besitzer, Zugriffsrechte) sind genau wie bei den "Nachbardateien".
Wenn ich die Datei öffnen, beginnt sie mit der angegebenen ID:
##############################################
# $Id: 98_IF.pm 5813 2014-05-10 18:03:59Z damian-s $
package main;

Wenn ich mal grob durchschaue, scheint sie auch fehlerfrei und vollständig zu sein.

Ich habe nochmal ein update force und anschließenden Neustart gemacht, aber das hat auch keine Änderung gebracht.
Was kann ich noch tun, um dem Problem auf die Spur zu kommen?

Damian

Zitat von: Brockmann am 24 Juni 2014, 23:33:31
Hmm, nur was?
Also eine Datei 98_IF.pm habe ich im Verzeichnis /opt/fhem/FHEM (da wo auch die anderen derartigen Dateien sind). Dateieigenschaften (Besitzer, Zugriffsrechte) sind genau wie bei den "Nachbardateien".
Wenn ich die Datei öffnen, beginnt sie mit der angegebenen ID:
##############################################
# $Id: 98_IF.pm 5813 2014-05-10 18:03:59Z damian-s $
package main;

Wenn ich mal grob durchschaue, scheint sie auch fehlerfrei und vollständig zu sein.

Ich habe nochmal ein update force und anschließenden Neustart gemacht, aber das hat auch keine Änderung gebracht.
Was kann ich noch tun, um dem Problem auf die Spur zu kommen?

Keine Ahnung. Damit es funktioniert muss am Bildschirm diese Meldung kommen:

Usage: IF (<condition>) (<FHEM commands>) ELSE (<FHEM commands>)

wenn du in der Kommandozeile nur das Wort IF eingibst und mit Enter bestätigst.

Was passiert, wenn du in der Kommanzeile "reload 98_IF.pm" eingibst?

Gruß

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

Brockmann

Zitat von: Damian am 24 Juni 2014, 23:44:46
Was passiert, wenn du in der Kommanzeile "reload 98_IF.pm" eingibst?
Dann wird einfach die Startseite von FHEM angezeigt, keine Fehler- oder sonstige Meldung.

Damian

Zitat von: Brockmann am 24 Juni 2014, 23:46:47
Dann wird einfach die Startseite von FHEM angezeigt, keine Fehler- oder sonstige Meldung.

Dann weiß ich auch nicht weiter. Du bist der erste, bei dem sich die Sache so verhält.

Gruß

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

Brockmann

Zitat von: Damian am 24 Juni 2014, 23:50:20
Dann weiß ich auch nicht weiter. Du bist der erste, bei dem sich die Sache so verhält.
Ich habe inzwischen eine etwas schräge Theorie, warum das so ist. Kann ich aber erst morgen testen, weil das etwas komplexer wird. Dafür ist es mir heute zu spät.
Ich melde mich wieder, wenn es was neues gibt.
Auf alle Fälle vielen Dank für Deine Hilfe.

Damian

wenn ich bei mir "help" in der Kommadozeile aufrufe, dann wird u. a. auch IF angezeigt:

Command   Parameter                 Description
-----------------------------------------------
?                                   get this help
IF        (<condition>) (<FHEM commands>) ELSE (<FHEM commands>)  executes FHEM commands depending on the condition
addstruct <structure> <devspec>     add <devspec> to <structure>
attr      <devspec> <attrname> [<attrval>] set attribute for <devspec>
createlog <device>                  create log/weblink for <device>
define    <name> <type> <options>   define a device/at/notify entity
delete    <devspec>                 delete the corresponding definition(s)
deleteattr <devspec> [<attrname>]    delete attribute for <devspec>
deletereading <devspec> [<attrname>]    delete user defined reading for <devspec>
delstruct <structure> <devspec>     delete <devspec> from <structure>
displayattr <devspec> [attrname]      display attributes
get       <devspec> <type dependent> request data from <devspec>
help                                get this help
include   <filename>                read the commands from <filenname>
iowrite   <iodev> <data>            write raw data with iodev
list      [devspec]                 list definitions and status info
modify    device <options>          modify the definition (e.g. at, notify)
reload    <module-name>             reload the given module (e.g. 99_PRIV)
rename    <old> <new>               rename a definition
rereadcfg [configfile]              read in the config after deleting everything
save      [configfile]              write the configfile and the statefile
set       <devspec> <type dependent> transmit code for <devspec>
setdefaultattr <attrname> <attrvalue>    set attr for following definitions
setreading <devspec> <reading> <value> set reading for <devspec>
setstate  <devspec> <state>         set the state shown in the command list
shutdown  [restart]                 terminate the server
sleep     <sec> [quiet]             sleep for sec, 3 decimal places
trigger   <devspec> <state>         trigger notify command
update    [development|stable] [<file>|check|fhem] update Fhem
usb       [scan|create]             display or create fhem-entries for USB devices
version   [filter]                  print SVN version of loaded modules
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Brockmann

Zitat von: Damian am 24 Juni 2014, 23:53:55
wenn ich bei mir "help" in der Kommadozeile aufrufe, dann wird u. a. auch IF angezeigt:
Ja, bei mir auch. Da liegt was anderes im Argen.
Wenn meine Theorie stimmt, hat das mit Deinem Modul auch gar nichts zu tun.

Damian

#294
Zitat von: Brockmann am 24 Juni 2014, 23:56:25
Ja, bei mir auch. Da liegt was anderes im Argen.
Wenn meine Theorie stimmt, hat das mit Deinem Modul auch gar nichts zu tun.

Das vermute ich auch mal.

Nur mal am Rande, schaue dir DOIF mal an, damit kannst du vieles noch einfacher machen und brauchst wahrscheinlich auch kein IF.

Gruß

Damian

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

rudolfkoenig

Der Richtige liest mit.

cmdalias traegt beim definieren ifset in die Befehlsliste ein, und falls ein Befehl nicht gefunden wird, dann wird zuerst nach moeglichen Abkuerzungen gesucht, und erst danach werden Module mit passenden Namen nachgeladen. In diesem Fall waere das andersherum korrekter. Um das Problem zu loesen muss man entweder das cmdalias umbenennen (einfacher), oder vor dem definieren ein IF ausfuehren.

Brockmann

Zitat von: rudolfkoenig am 25 Juni 2014, 16:00:19
In diesem Fall waere das andersherum korrekter.
In welchem Fall wäre es andersherum denn nicht korrekt?

satprofi

#297
hallo @all.

Habe ein kleines notify um klima zu schalten, weiss aber nicht, aus mangel an richtiger states ob es klappen wird.
ich will einen schalter ansteuern wenn genug leistung vorhanden u. die aussentemperatur hoch genug ist.


define Klima_WZ_off notify Pac IF ([Pac:state] < 1500) (IF ([Forecast:temp_c] < 23) (set Klima_WZ on-for-timer 660))


wird hier beides ausgewertet oder nur Pac ?
möchte das ganze noch mit Türkontakt koppeln, wenn open dann ebenfalls ansteuern des schalters
gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

Damian

Zitat von: satprofi am 29 Juni 2014, 19:27:10
hallo @all.

Habe ein kleines notify um klima zu schalten, weiss aber nicht, aus mangel an richtiger states ob es klappen wird.
ich will einen schalter ansteuern wenn genug leistung vorhanden u. die aussentemperatur hoch genug ist.


define Klima_WZ_off notify Pac IF ([Pac:state] < 1500) (IF ([Forecast:temp_c] < 23) (set Klima_WZ on-for-timer 660))


wird hier beides ausgewertet oder nur Pac?
möchte das ganze noch mit Türkontakt koppeln, wenn open dann ebenfalls ansteuern des schalters

Es wird beides ausgewertet, allerdings ist bei dir der Trigger nur Pac und nicht Forecast. Das kannst du auch mit einem IF definieren:


define Klima_WZ_off notify Pac IF ([Pac:state] < 1500 and [Forecast:temp_c] < 23) (set Klima_WZ on-for-timer 660)


Zu bedenken ist, dass "set Klima_WZ on-for-timer 660" immer wieder aufgerufen wird, wenn die Bedingung stimmt.


Gruß

Damian

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

Puschel74

Hallo,

hier
define Klima_WZ_off notify Pac IF ([Pac:state] < 1500 and [Forecast:temp_c] < 23) (set Klima_WZ on-for-timer 660)
ist der trigger auch nur PAC und nicht Forecast.

Sollte das nicht so
define Klima_WZ_off notify (Pac|Forecast) IF ([Pac:state] < 1500 and [Forecast:temp_c] < 23) (set Klima_WZ on-for-timer 660)
sein?
Wobei man das noch auf
define Klima_WZ_off notify (Pac|Forecast):(state|temp_c) IF ([Pac:state] < 1500 and [Forecast:temp_c] < 23) (set Klima_WZ on-for-timer 660)
einschränken sollte so man auf state überhaupt triggern kann - ich hab das noch nier versucht.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.