Autor Thema: 51_RPI_GPIO.pm: PERL WARNING: Use of uninitialized value in subtraction  (Gelesen 8475 mal)

Offline alpha1974

  • Full Member
  • ***
  • Beiträge: 192
Werte Mitstreiter,

seit einem FHEM-Update nach den Osterferien zeigt mir das Log-File für das RPI_GPIO-Module folgende Warnung an, wenn der Zustand des RPI_GPIO-Devices = Reed-Magnet-Kontakt, der am GPIO des Raspberry hängt, auf high wechselt:

PERL WARNING: Use of uninitialized value in subtraction (-) at ./FHEM/51_RPI_GPIO.pm line 524, <GEN33> line 13
Hier das dazugehörige Device:
Internals:
   CHANGED
   DEF        26
   EXCEPT_FD  34
   GPIO_Basedir /sys/class/gpio
   NAME       Terrassentuer_Magnet
   NR         126
   RPI_pin    26
   STATE      zu
   TYPE       RPI_GPIO
   WiringPi_gpio /usr/local/bin/gpio
   lasttrg    1459794780.88888
   Helper:
     Dblog:
       Longpress:
         Logdb:
           TIME       1459795484.17733
           VALUE      off
       Pinlevel:
         Logdb:
           TIME       1459795484.17733
           VALUE      low
       State:
         Logdb:
           TIME       1459795484.17733
           VALUE      off
   Readings:
     2016-04-05 07:07:01   Dblclick        off
     2016-04-05 07:07:01   Longpress       off
     2016-04-05 07:53:33   Pinlevel        low
     2016-04-05 07:07:01   state           off
   Fhem:
     interfaces switch
Attributes:
   alias      Terrassentür Magnetsensor
   debounce_in_ms 20
   devStateIcon zu:fts_door_right auf:fts_door_right_open
   direction  input
   event-on-change-reading .*
   group      Wohnzimmer-Sensoren
   interrupt  both
   pud_resistor up
   room       Einbruch,Wohnzimmer
   stateFormat {if (ReadingsVal("Terrassentuer_Magnet","Pinlevel",0) eq "low") {"zu"} elsif (ReadingsVal("Terrassentuer_Magnet","Pinlevel",0) eq "high") {"auf"}}

Ist ja nur eine Warnung, aber vielleicht hat ein anderer Forist eine Idee, woran es liegen könnte bzw. ob ich etwas an meiner Konfiguration ändern muss.

Dank und Gruß
alpha1974
FHEM/Z-Wave USB-Dongle + div. Devices

Offline blueberry63

  • Sr. Member
  • ****
  • Beiträge: 673
Hallo,

ich kann alphas Aussage bestätigen. Außerdem kommt seit einigen Tagen/Wochen(?) nach jedem Update mit anschl. "shutdown restart" folgende Fehlermeldung im LOG:

Zitat
Can't exec "export": No such file or directory at ./FHEM/51_RPI_GPIO.pm line 640, <$fh> line 471.
Can't exec "export": No such file or directory at ./FHEM/51_RPI_GPIO.pm line 640, <$fh> line 473.

Ich muss dann immer manuell die Berechtigungen in "/sys/class/gpio" korrigieren.

Hat jemand eine Idee, was da passiert ist?

Gruß
Blueberry63
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

Offline Wernieman

  • Hero Member
  • *****
  • Beiträge: 5674
Dein System lässt fhem nicht auf "/sys/class/gpio"

Ich gehe davon aus, das Du mit chown/chmod die Berechtigungen anpasst und dann erst fhem funktioniert? D.h. Deine Config ist nicht bootsafe

Du hast jetzt (Unix-Typisch) mehrere Möglichkeiten:
1. im Startscript vom fhem (/etc/init.d/fhem) genau diese befehle eingeben
2. per udev-Regel (wiki, forum?) die Berechtigungen vom System sezten lassen
3. fhem einer Gruppe zuordnen, welche Zugreifen darf
4. .......
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Offline blueberry63

  • Sr. Member
  • ****
  • Beiträge: 673
Hallo Wernieman,

in meiner "/etc/rc.local" habe ich die entsprechenden Befehle für die Berechtigungen auf /sys/class/gpio gesetzt - und nach einem Reboot ist auch alles OK. Was mich eben wundert ist, warum das Problem erst seit kurzem auftritt?

Trotzdem Danke für Deine Erklärung.

Gruß
Blueberry63
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

Offline Wernieman

  • Hero Member
  • *****
  • Beiträge: 5674
rc.local .... da wird aber fhem vorher gestartet. rc.local ist eigentlich der letzte "Dienst", der gestartet wird. Besser ist wirklich, Du editiers die init-Datei, anstatt der rc.local. Alternativ startest Du fhem auch erst durch die rc.local, mußt es dann aber aus dem autostart des Servers rausnehmen.
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Offline klausw

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1895
Hallo,

ich kann alphas Aussage bestätigen. Außerdem kommt seit einigen Tagen/Wochen(?) nach jedem Update mit anschl. "shutdown restart" folgende Fehlermeldung im LOG:

Ich muss dann immer manuell die Berechtigungen in "/sys/class/gpio" korrigieren.

Hat jemand eine Idee, was da passiert ist?

poste mal ein list vom Device
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

Offline klausw

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1895
Werte Mitstreiter,

seit einem FHEM-Update nach den Osterferien zeigt mir das Log-File für das RPI_GPIO-Module folgende Warnung an, wenn der Zustand des RPI_GPIO-Devices = Reed-Magnet-Kontakt, der am GPIO des Raspberry hängt, auf high wechselt:

PERL WARNING: Use of uninitialized value in subtraction (-) at ./FHEM/51_RPI_GPIO.pm line 524, <GEN33> line 13

Kommt die Meldung jedes mal, oder nur nach einem Neustart?
Seltsamerweise findet in Zeile 524 keine Subtraktion statt.
Ich schaue mir das mal an.
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

Offline Ellert

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3609
Ich habe eine ähnliche Warnung in Zeile 510, die kommt beim Neustart mit 51_RPI_GPIO.pm 11120 2016-03-23 23:49:16Z klauswitt
Zitat
2016.04.06 13:41:17 1: PERL WARNING: Use of uninitialized value in subtraction (-) at ./FHEM/51_RPI_GPIO.pm line 510, <GEN25> line 2.
2016.04.06 13:41:19 1: PERL WARNING: Use of uninitialized value in subtraction (-) at ./FHEM/51_RPI_GPIO.pm line 510, <GEN29> line 2.

Zitat
Zeile 510:       my $testtt = (gettimeofday() - $hash->{lasttrg} );
« Letzte Änderung: 06 April 2016, 18:42:16 von Ellert »

Offline klausw

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1895
Ich habe eine ähnliche Warnung in Zeile 510, die kommt beim Neustart mit 51_RPI_GPIO.pm 11120 2016-03-23 23:49:16Z klauswitt
das kann schon eher sein, da habe ich wohl was übersehen  8)
Wird demnächst behoben.
Die Fehlermeldung korreliert aber nicht ganz mit dem ersten Post.
@alpha, hast du die aktuellste Version drauf?
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

Offline alpha1974

  • Full Member
  • ***
  • Beiträge: 192
@alpha, hast du die aktuellste Version drauf?
Zum Zeitpunkt meines Ausgangs-Postings hatte ich die per update verfügbare Version drauf. Zwischenzeitlich ist die Warnung nicht mehr aufgetaucht, was allerdings auch damit zusammenhängen kann, dass der Status des betreffenden Device unverändert geblieben ist (diese Terrassentür wurde in den letzten Tagen nicht geöffnet..).
Ich achte aber weiterhin darauf und melde mich wieder, wenn es nochmal eine Warnung gibt.
FHEM/Z-Wave USB-Dongle + div. Devices

Offline kirk1h

  • New Member
  • *
  • Beiträge: 24
Hi,

ich hab auch die Warnung im Log:

PERL WARNING: Use of uninitialized value in subtraction (-) at ./FHEM/51_RPI_GPIO.pm line 524, <GEN14> line 3.
524          my $testtt = (gettimeofday() - $hash->{lasttrg} );
LG
« Letzte Änderung: 05 August 2016, 17:57:29 von kirk1h »

Offline klausw

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1895
Ab Morgen gibt es ein Update...hatte ich ganz vergessen  ::)
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

Offline KölnSolar

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3646
Antw:51_RPI_GPIO.pm: PERL WARNING: Use of uninitialized value in subtraction
« Antwort #12 am: 05 September 2016, 10:47:46 »
Hallo Klaus,

ich hab gestern erstmalig das Modul eingesetzt. Ich bekomme beim auslösen Fehlermeldungen.

2016.09.04 19:36:28 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/47_OBIS.pm line 229, <GEN34> line 2.
2016.09.04 19:36:28 1: PERL WARNING: Use of uninitialized value in subtraction (-) at ./FHEM/51_RPI_GPIO.pm line 524, <GEN34> line 3.
.
.
2016.09.04 19:36:29 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/47_OBIS.pm line 229, <GEN34> line 3.
2016.09.04 19:36:36 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/47_OBIS.pm line 229, <GEN34> line 4.
.
.
2016.09.04 19:36:36 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/47_OBIS.pm line 229, <GEN34> line 5.
.
. und so weiter...

Mit dem OBIS-Modul hat das definitiv nichts zu tun. Liegt wohl nur daran, dass dort ein anderer Fehler vorher(nur bei der Initialisierung/Reboot) mit PERL-Warnung "uninitialized String" gemeldet wurde
2016.09.04 19:35:34 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/47_OBIS.pm line 229.
2016.09.04 19:35:34 1: PERL WARNING: Use of uninitialized value $1 in hash element at ./FHEM/47_OBIS.pm line 491.
2016.09.04 19:35:34 1: PERL WARNING: Use of uninitialized value $v2 in substitution (s///) at ./FHEM/47_OBIS.pm line 521.

Das Device ist so angelegt:
Internals:
   CFGFN      includeOther.cfgPI
   DEF        18
   EXCEPT_FD  39
   GPIO_Basedir /sys/class/gpio
   NAME       Wassersensor
   NR         547
   RPI_pin    18
   STATE      off
   TYPE       RPI_GPIO
   WiringPi_gpio /usr/bin/gpio
   lasttrg    1473011574.23681
   Readings:
     2016-09-04 19:52:54   Dblclick        off
     2016-09-04 19:52:54   Longpress       off
     2016-09-04 19:52:54   Pinlevel        low
     2016-09-04 19:52:54   state           off
   Fhem:
     interfaces switch
Attributes:
   alarmDevice Sensor
   alarmSettings alarm4,|Wassersensor:on|�berschwemmung|on
   devStateIcon off:Wecker.Aus on:Wecker.Immer
   direction  input
   interrupt  both
   room       Keller

Version vom 22.8.16 wird genutzt.

Idee, was das ist ?

Grüße
Markus
RPi3/2 Stretch-STV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-CUL868-FS20A4-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty-Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)

Offline klausw

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1895
Antw:51_RPI_GPIO.pm: PERL WARNING: Use of uninitialized value in subtraction
« Antwort #13 am: 06 September 2016, 14:22:06 »

Version vom 22.8.16 wird genutzt.

Idee, was das ist ?

Stimmt OBIS sollte mit den GPIO Fehlern nix zu tun haben.

Wenn oben der erste Satz  nicht wäre, würde ich behaupten, das du eine alte Version einsetzt.
In der aktuellen Version gibt es in Zeile 524 keine Subtraktion.

was gibt denn die Eingabe von:
version 51_RPI_GPIO.pmin FHEM aus?
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 16100
  • s/fhem\.cfg/configDB/g
Antw:51_RPI_GPIO.pm: PERL WARNING: Use of uninitialized value in subtraction
« Antwort #14 am: 06 September 2016, 15:38:09 »
In der aktuellen Version gibt es in Zeile 524 keine Subtraktion.

äh...

in der in svn aktuellen Version steht in Zeile 524

my $testtt = (gettimeofday() - $hash->{lasttrg} );
Für mich sieht das doch sehr nach einer Subtraktion aus ;)
-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.