Fehler durch set in eigenem Perl modul

Begonnen von roli, 19 Oktober 2017, 09:45:05

Vorheriges Thema - Nächstes Thema

roli

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");       
       
FHEM auf Debian (RASPI), 2 * CUL868/433 *  FS20 STR, 2 * HMS100 T, 2 * , 1* FS20 SU, 2 *  FS20 SM8, 2 ; 1-wire Temp,i2c Bus; ESP32 WROOM; ESP8266; Arduino
Sonnenbatterie Eco8;Elektro  Nachspeicher-Ofen Ladesteuerung,
Haus Lüftung,
Integration von HardwareAlarmanlag

Otto123

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
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

roli

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 ?


FHEM auf Debian (RASPI), 2 * CUL868/433 *&nbsp; FS20 STR, 2 * HMS100 T, 2 *&nbsp;, 1* FS20 SU, 2 *&nbsp; FS20 SM8, 2 ; 1-wire Temp,i2c Bus; ESP32 WROOM; ESP8266; Arduino
Sonnenbatterie Eco8;Elektro&nbsp; Nachspeicher-Ofen Ladesteuerung,
Haus Lüftung,
Integration von HardwareAlarmanlag

Thorsten Pferdekaemper

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
FUIP

nils_

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...)



viele Wege in FHEM es gibt!