Autor Thema: problem mit perl ?  (Gelesen 4631 mal)

Offline juppzupp

  • Full Member
  • ***
  • Beiträge: 490
  • Anti-Dev ;)
problem mit perl ?
« am: 17 Juli 2013, 09:46:57 »
Guten Morgen zusammen,

im Anfängerforum wurde mir ja "geraten" die ersten spielereien vielleicht nicht mit der Sirene eines Rauchmelders zu üben, da zu laut. Da dachte ich mir, warum nicht einen Piezo Summer an den gpio zu benutzen ? Das stellt sich aber schon schwieriger raus als erwartet :) Ich hoffe, das die Frage hier besser aufgehoben ist als im Anfängerforum, da ja sehr spezifisch. Sonst möge ein Mod bitte verschieben.

Ich bin laut wiki Raspberry_Pi:_GPIOs_schalten vorgegangen, und habe mir folgende config gebastelt :

define gpio_piezo FS20 7777 00
attr gpio_piezo dummy 1
attr gpio_piezo icon icoPfeil
define act_on_gpio_piezo notify gpio_piezo {\
 if ("%" ne "off") {\
  system("ton_an &")\
 } else {\
  system("ton_aus &")\
 }\
}


Wenn ich nun per Web das Kommando set gpio_piezo on oder set gpio_piezo off absetze, wird der summer auch ein/respektive aus geschaltet.
Was nicht funktioniert, ist set gpio_piezo on-for timer 10. Der Summer geht an, aber niemals aus.

Von dort bin auch telnet gewechselt, und kann folgendes sehen :
fhem> set gpio_piezo off
fhem>

normal, ok, denke ich. aber bei on / on-for-timer wirds "komisch" :

fhem> set gpio_piezo on        
fhem> perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LC_CTYPE = "UTF-8",
LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
sleep: invalid time interval `'
Try `sleep --help' for more information.

fhem> set gpio_piezo on-for-timer 10
fhem> perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LC_CTYPE = "UTF-8",
LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
sleep: invalid time interval `'
Try `sleep --help' for more information.

Neben der perl-meckerei, die ich irgendwie nicht weg bekomme, wundert mich halt der output sleep: invalid time interval `'
Try `sleep --help' for more information.

Hat jemand ne Lösung parat ?

Danke
Jupp

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 16154
  • s/fhem\.cfg/configDB/g
Aw: problem mit perl ?
« Antwort #1 am: 17 Juli 2013, 10:35:24 »
Versuche mal, Deinen FS20-dummy explizit als Schalter zu definieren, ich bin mir nicht sicher, ob on-for-timer grundsätzlich bereitgestellt wird.

attr gpio_piezo model fs20st
-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.

Offline juppzupp

  • Full Member
  • ***
  • Beiträge: 490
  • Anti-Dev ;)
Aw: problem mit perl ?
« Antwort #2 am: 17 Juli 2013, 10:42:54 »
danke aber das ist es leider nicht.
die sleep fehlermeldung lässt mich vermuten, das die "10"  nicht übergeben wird.
sleep: invalid time interval `'
warum allerdings, dafür steck ich noch nicht tief genug drin

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 16154
  • s/fhem\.cfg/configDB/g
Aw: problem mit perl ?
« Antwort #3 am: 17 Juli 2013, 10:46:52 »
Tritt der Fehler auch auf, wenn Du das Kommando in fhem in die Befehlszeile eintippst oder nur direkt auf der Konsole?

Wenn Du auf der Konsole arbeitest, kannst Du mal set gpio_piezo "on-for-timer 10" probieren.
-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.

Offline juppzupp

  • Full Member
  • ***
  • Beiträge: 490
  • Anti-Dev ;)
Aw: problem mit perl ?
« Antwort #4 am: 17 Juli 2013, 10:50:49 »
egal ob telnet oder web Unknown argument "on-for-timer, choose one of off off-for-timer on on-for-timer on-till reset timer toggle blink intervals off-till
dito mit '

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 16154
  • s/fhem\.cfg/configDB/g
Aw: problem mit perl ?
« Antwort #5 am: 17 Juli 2013, 11:00:17 »
Ok, das Anführungszeichen mag er gar nicht.

Mach mal bitte ein "list gpio_piezo"

-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.

Offline juppzupp

  • Full Member
  • ***
  • Beiträge: 490
  • Anti-Dev ;)
Aw: problem mit perl ?
« Antwort #6 am: 17 Juli 2013, 11:01:40 »
fhem> list gpio_piezo
Internals:
   BTN        00
   DEF        7777 00
   NAME       gpio_piezo
   NR         30
   STATE      off
   TRIGGERTIME 2013-07-17 10:40:24
   TYPE       FS20
   XMIT       7777
   Code:
     1          7777 00
   Readings:
     2013-07-17 10:40:24   state           off
Attributes:
   dummy      1
   icon       icoPfeil
   model      fs20st

fhem>

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 16154
  • s/fhem\.cfg/configDB/g
Aw: problem mit perl ?
« Antwort #7 am: 17 Juli 2013, 11:27:06 »
Ich weiß, dass Dir das nicht viel weiterhilft, aber ich habe das jetzt einfach mal nachgebaut. Und da funktioniert es mit minimalster Konfiguration:


Internals:
   BTN        00
   CFGFN      
   DEF        7777 00
   NAME       gpio_piezo
   NR         33
   STATE      on-for-timer 10
   TYPE       FS20
   XMIT       7777
   Code:
     1          7777 00
   Readings:
     2013-07-17 11:21:23   state           on-for-timer 10
Attributes:
   dummy      1


Selbst ohne die Angabe des models. Hast Du die aktuelle Version von FHEM installiert? Welches Perl?
-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.

Offline juppzupp

  • Full Member
  • ***
  • Beiträge: 490
  • Anti-Dev ;)
Aw: problem mit perl ?
« Antwort #8 am: 17 Juli 2013, 12:55:24 »
den "state" bekomm ich auch hin, aber er der summer bleibt an. wenn du nach 10 sekunden schaust, ändert sich der state ?

fhem> set gpio_piezo on-for-timer 10
fhem> perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LC_CTYPE = "UTF-8",
LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
sleep: invalid time interval `'
Try `sleep --help' for more information.
list gpio_piezo
Internals:
   BTN        00
   DEF        7777 00
   NAME       gpio_piezo
   NR         30
   STATE      on-for-timer 10
   TRIGGERTIME 2013-07-17 12:51:46
   TYPE       FS20
   XMIT       7777
   Code:
     1          7777 00
   Readings:
     2013-07-17 12:51:46   state           on-for-timer 10
Attributes:
   dummy      1
   icon       icoPfeil
   model      fs20st

fhem>


fhem : Fhem 5.4 (DEVELOPMENT), $Id: fhem.pl 3008 2013-04-01 11:19:27Z rudolfkoenig $
perl : This is perl 5, version 14, subversion 2 (v5.14.2) built for arm-linux-gnueabihf-thread-multi-64int

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 16154
  • s/fhem\.cfg/configDB/g
Aw: problem mit perl ?
« Antwort #9 am: 17 Juli 2013, 13:28:23 »
Also ich würde Dir zumindest bei FHEM zu einem Update raten.
-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.

Offline juppzupp

  • Full Member
  • ***
  • Beiträge: 490
  • Anti-Dev ;)
Aw: problem mit perl ?
« Antwort #10 am: 17 Juli 2013, 13:34:46 »
das ist die version von der homepage ? welche meinst du ?


*edit*
habe per cli geupdatet : Fhem 5.4 (DEVELOPMENT), $Id: fhem.pl 3430 2013-07-15 20:34:58Z rudolfkoenig $

gleiches bild wie vorher.

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 16154
  • s/fhem\.cfg/configDB/g
Aw: problem mit perl ?
« Antwort #11 am: 17 Juli 2013, 14:45:56 »
Zitat von: juppzupp schrieb am Mi, 17 Juli 2013 12:55
den "state" bekomm ich auch hin, aber er der summer bleibt an. wenn du nach 10 sekunden schaust, ändert sich der state ?


Setze mal das Attribut: attr gpio_piezo follow-on-for-timer 1 damit sehe ich die korrekte Änderung des state auch in der Weboberfläche.

Übrigens tauchen bei mir nirgends perl-Fehlermeldungen auf.
-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.

Offline juppzupp

  • Full Member
  • ***
  • Beiträge: 490
  • Anti-Dev ;)
Aw: problem mit perl ?
« Antwort #12 am: 17 Juli 2013, 14:58:33 »
ist ja nur die locale die nicht stimmt.
noch wer ne idee ?

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 16154
  • s/fhem\.cfg/configDB/g
Aw: problem mit perl ?
« Antwort #13 am: 17 Juli 2013, 15:11:02 »
Zitat von: juppzupp schrieb am Mi, 17 Juli 2013 14:58
ist ja nur die locale die nicht stimmt.


Hab ich irgendwas verpaßt?

sleep: invalid time interval `'

Das ist doch keine Fehlermeldung, die auf LOCALE basiert, sondern ein Syntaxfehler. Oder hattest Du schon irgendwo geschrieben, dass der nicht mehr auftritt? Ich hatte mich die ganze Zeit schon gewundert, wie Du den state hinbekommst, wenn perl Dir diesen Fehler meldet.

-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.

Offline juppzupp

  • Full Member
  • ***
  • Beiträge: 490
  • Anti-Dev ;)
Aw: problem mit perl ?
« Antwort #14 am: 17 Juli 2013, 16:53:46 »
sleep: invalid time interval `'

sieht für mich wie eine coreutils fehlermeldung aus (nicht übergebener parameter)
und nicht wie eine perl meldung.
mag mich aber gerne irren.

wie dem auch sei, der stand ist der gleiche. on-for-timer funktioniert nicht. der ausgang wird geschaltet, legt sich aber nie schlafen.

Offline juppzupp

  • Full Member
  • ***
  • Beiträge: 490
  • Anti-Dev ;)
Aw: problem mit perl ?
« Antwort #15 am: 18 Juli 2013, 12:54:06 »
So. Problem gelöst.
Es lag tatsächlich an den scripts die ich aufrufe - dort war ein 'sleep' nicht richtig gesetzt.
warum allerdings "nur" der on-for-timer zickt, nicht aber die normalen on/off, erschliest sich mir nicht.

danke für die hilfe.


 

decade-submarginal