Keine Ahnung was ich falsch mache, bzw. wo der Fehler liegt ! ?
Versuche aus PERL modul heraus, bestimmte Relais zu setzen.
Dies geht mittels commando fhem{set .. } im WEB UI sehr wohl aber der Code im Perl Modul
zeigt fehler an. Weshalb ?
Fehler in fhem-log:
2017.10.19 09:27:05 1: PERL WARNING: readline() on closed filehandle SLAVES at /opt/fhem/FHEM/58_GPIO4.pm line 85.
2017.10.19 09:27:05 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at /opt/fhem/FHEM/33_readingsProxy.pm line 278.
2017.10.19 09:27:05 3: eval: my $EVTPART0='INITIALIZED';my $TYPE='Global';my $SELF='h_InitData';my $EVENT='INITIALIZED';my $NAME='global';{ rw_EH_InitData(); }
2017.10.19 09:27:05 3: set prxPortB0 off : Please define first
2017.10.19 09:27:05 3: set prxPortB1 off : Please define first
2017.10.19 09:27:05 3: set prxPortB2 off : Please define first
2017.10.19 09:27:05 3: set prxPortB3 off : Please define first
2017.10.19 09:27:06 0: Featurelevel: 5.8
2017.10.19 09:27:06 0: Server started with 107 defined entities (fhem.pl:15182/2017-10-03 perl:5.014002 os:linux user:fhem pid:27972)
Mein myUtils.pm:
# Heizungsladung abschalten
#fhem ("set group=Ofen off ");
fhem ("set prxPortB0 off");
fhem ("set prxPortB1 off");
fhem ("set prxPortB2 off");
fhem ("set prxPortB3 off");
Meine Configuration:
define icMCP23017 I2C_MCP23017 0x20
attr icMCP23017 IODev i2cBus
.
.
setdefaultattr group Ofen
setdefaultattr valueFn {($VALUE eq "on")?"off":"on"}
setdefaultattr setList on off
setdefaultattr devStateIcon on:ios-on-green:off .*:ios-off:on
#--- Bank B-----
# Ladegruppen für die Oefen -- siehe rw_LadenHeizung.cfg
define prxPortB0 readingsProxy icMCP23017:PortB0
attr prxPortB0 setFn {($CMD eq "on")?"PortB0 off":"PortB0 on"}
attr prxPortB0 alias Oefen_Keller
attr prxPortB0 sortby 7
define prxPortB1 readingsProxy icMCP23017:PortB1
attr prxPortB1 setFn {($CMD eq "on")?"PortB1 off":"PortB1 on"}
attr prxPortB1 alias Oefen_Unten
attr prxPortB1 sortby 6
.
.
Hinweis:
Fehler kommt nicht wenn ich es wie folgt mache :
$tgt = 'off';
fhem ("set prxPortB0 $tgt");
fhem ("set prxPortB1 $tgt");
fhem ("set prxPortB2 $tgt");
fhem ("set prxPortB3 $tgt");
Moin roli,
als Erstes musst Du jetzt endlich mal lernen Codetags zu verwenden, die findest Du mit der # Taste über dem :-X Smily.
Ansonsten macht das lesen nämlich keinen Spaß.
Hast Du wirklich eine myUtils.pm oder eine 99_myUtils.pm? Bitte sei da genau in Deinen Angaben.
Vielleicht solltest Du diese komplett posten und nicht nur ein paar Zeilen.
Ich kenne mich leider mit readingsproxy nicht aus, aber wenn ich Deinen Fehler und Deinen "Workaround" richtig verstehe, dann ist es eben so, die Kommandos werden da mindestens zweimal durch einen Übergang Perl / FHEM /Perl geschickt.
Ich kann den Grund nicht auf Anhieb sehen, dazu kenne ich mich da auch zu wenig aus. Ich vermute aber eher das der Fehler in Deiner 99_myUtils.pm liegt. Denn die Meldung kommt ja beim Laden der Module und config.
Wenn ich das richtig sehe editierst Du die fhem.cfg per Hand. Vielleicht hast Du dabei auch an ganz andere Stelle einen Fehler produziert.
Gruß Otto
Hallo,
Sorry. Bin nicht so viel im Forum unterwegs und hatte bis jetzt eher weniger FHEm Probleme - mache aber auch immer nur im Herbst was daran.
Ja, es handelt sich um eine Datei 99_myUtils.pm. Kann sie leider nicht komplett posten, da sie auch vertrauliche Infos enthält.
Ja, ich editiere alle dateien, welche ich in fhem.cfg als Include verwende mittels Notepad Editor. Dies erlaubt mir alles leserlich zu dokumentieren.
Bisher hatte ich damit immer mal wieder einige Fehler, welche aber erklärbar und lösbar waren.
Für mein 99_myUtils.pm verwende ich zusätzlich "PADRE", womit ich damm auch Syntax checks machen kann um vorab PERL Probleme zu beseitigen.
Geht ganz gut . Auch ein "reload 99_myUtils.pm" zeigt durchaus Fehler an, falls vorhanden.
Anbei meine Verbose 3 log DAtei nach einem FHEm restart:
2017.10.19 11:42:17 1: PERL WARNING: Prototype mismatch: sub main::round ($$) vs none at /usr/share/perl/5.14/Exporter.pm line 67.
2017.10.19 11:42:18 1: Including fhem.cfg
2017.10.19 11:42:18 3: telnetPort: port 7072 opened
2017.10.19 11:42:19 3: WEB: port 8083 opened
2017.10.19 11:42:19 3: WEBtablet: port 8088 opened
2017.10.19 11:42:19 3: WEBtablet: creating device allowed_WEBtablet for attribute allowedCommands
2017.10.19 11:42:19 3: WEBphone: port 8089 opened
2017.10.19 11:42:19 3: WEBphone: creating device allowed_WEBphone for attribute allowedCommands
2017.10.19 11:42:20 2: eventTypes: loaded 187 events from /var/log/fhem/eventTypes.txt
2017.10.19 11:42:20 3: Opening FunkCOC device /dev/ttyAMA0
2017.10.19 11:42:20 3: Setting FunkCOC serial parameters to 38400,8,N,1
2017.10.19 11:42:20 3: FunkCOC: Possible commands: mCFiAZGMKRTVWXefltux
2017.10.19 11:42:20 3: FunkCOC device opened
2017.10.19 11:42:20 1: Including ./FHEM/rw_bewegungsmelder.cfg
2017.10.19 11:42:21 1: Including ./FHEM/rw_boilertemp.cfg
2017.10.19 11:42:21 1: Including ./FHEM/rw_aussentemp.cfg
2017.10.19 11:42:21 1: Including ./FHEM/rw_tempmessung.cfg
2017.10.19 11:42:21 1: Including ./FHEM/rw_SM8_Keller.cfg
2017.10.19 11:42:22 1: Including ./FHEM/rw_SM8_2.cfg
2017.10.19 11:42:22 1: Including ./FHEM/rw_S4M.cfg
2017.10.19 11:42:22 1: Including ./FHEM/rw_Watchdog.cfg
2017.10.19 11:42:22 1: Including ./FHEM/rw_GPIO_I2C.cfg
2017.10.19 11:42:27 1: Can't open file: Interrupt, active_low
2017.10.19 11:42:28 3: n_prxPortA4: unknown attribute setList. Type 'attr n_prxPortA4 ?' for a detailed list.
2017.10.19 11:42:28 3: n_prxPortA4: unknown attribute valueFn. Type 'attr n_prxPortA4 ?' for a detailed list.
2017.10.19 11:42:28 1: Including ./FHEM/rw_Sonnen.cfg
2017.10.19 11:42:29 3: Eco8: Defined with URL http://192.168.178.51:8080/api/v1/status and interval 1000
2017.10.19 11:42:29 1: Including ./FHEM/rw_Warmwasser.cfg
2017.10.19 11:42:29 1: Including ./FHEM/rw_heizung.cfg
2017.10.19 11:42:29 1: Including ./FHEM/rw_LadenHeizung.cfg
2017.10.19 11:42:30 1: Including ./FHEM/rw_INIT.cfg
2017.10.19 11:42:30 1: Including /var/log/fhem/fhem.save
2017.10.19 11:42:30 1: configfile: WEBtablet: creating device allowed_WEBtablet for attribute allowedCommands
allowed_WEBtablet already defined, delete it first
WEBphone: creating device allowed_WEBphone for attribute allowedCommands
allowed_WEBphone already defined, delete it first
Usage: define <name> <type> <type dependent arguments>
/var/log/fhem/fhem.save: Please define h_InitData first
Please define h_InitData first
2017.10.19 11:42:30 1: PERL WARNING: readline() on closed filehandle SLAVES at /opt/fhem/FHEM/58_GPIO4.pm line 85.
2017.10.19 11:42:31 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at /opt/fhem/FHEM/33_readingsProxy.pm line 278.
2017.10.19 11:42:31 3: eval: my $EVTPART0='off';my $TYPE='readingsProxy';my $SELF='n_prxPortA4';my $EVENT='off';my $NAME='prxPortA4';{ rw_Set_NTSignal($EVENT) }
2017.10.19 11:42:31 3: set prxPortB0 off : Please define first
2017.10.19 11:42:31 3: set prxPortB1 off : Please define first
2017.10.19 11:42:31 3: set prxPortB2 off : Please define first
2017.10.19 11:42:31 3: set prxPortB3 off : Please define first
2017.10.19 11:42:41 1: *** NT- Signal OFF ****************
2017.10.19 11:42:41 2: Messages collected while initializing FHEM: configfile: WEBtablet: creating device allowed_WEBtablet for attribute allowedCommands allowed_WEBtablet already defined, delete it first WEBphone: creating device allowed_WEBphone for attribute allowedCommands allowed_WEBphone already defined, delete it first Usage: define <name> <type> <type dependent arguments> /var/log/fhem/fhem.save: Please define h_InitData first Please define h_InitData first
2017.10.19 11:42:41 0: Featurelevel: 5.8
2017.10.19 11:42:41 0: Server started with 107 defined entities (fhem.pl:15182/2017-10-03 perl:5.014002 os:linux user:fhem pid:28834)
2017.10.19 11:42:41 1: *** NT- Signal OFF ****************
2017.10.19 11:42:41 1: *** EH_InitData: Min/max Temp (0/13.3) NT Signal/Dur (0/480)
Ladedauer/max (0/45) LadeSofort 0/Automatik_Zeit(NT)
Vielleicht kann jemand auf Anhieb sagen ob eventuell 58_GPIO4.pm ein Problem hat ?
Hi,
kann es sein dass zwischen "set" und "prxPortB0" nicht einfach nur ein 0x20 steht, sondern noch irgend was anderes, was man nicht sieht?
Gruß,
Thorsten
hiho,
ich würde eher vermuten das du dir durch die vielen includes den fehler eingefangen hast.
in welcher der dateien wird denn "prxPortB0" defined???
wird die geladen?
was gibt ein "list prxPortB0" ?? (bitte das ergebnis in code-tags posten...)