Hilfe mit der Syntax bitte...

Begonnen von Sini, 04 November 2012, 22:46:11

Vorheriges Thema - Nächstes Thema

Sini

                                                         

Hallo Zusammen,

ich versuche in der 99_myUtils.pm über eine "sub" einen Notify zu
erstellen, der dann wiederrum eine Routine in myUtils aufruft und einen
Parameter übergibt. Der Parameter ist ein normaler String...

Leider habe ich bisher keinen Erfolg:

Versuch:

sub
switchOregon_update() {

fhem "deleteattr A_THGR918_1 event-on-change-reading";
fhem "define n_A_THGR918_1_config notify A_THGR918_1:battery.*
{switchOregon_change(A_THGR918_1)}"

}

Wird erst mal ohne Fehler angenommen, sobald dann aber der Notify auslöst
bekomme ich folgende Fehlermeldung:

"n_A_THGR918_1_config return value: Bareword "A_THGR918_1_config" not
allowed while "strict subs" in use at (eval 259) line 1."

Habe dann versucht, den Parameter in "" zu fassen, da bekomme ich schon
eine Fehlermeldung beim Reload:

syntax error at ./FHEM/99_myUtils.pm line 175, near ""define n_A_THGR918_1_config notify A_THGR918_1:battery.* {switchOregon_change("A_THGR918_1"

   
Ebenso habe ich versucht, mit verschiedenen Klammern zu arbeiten, aber ich
bekomme immer nur einen Syntaxfehler.

Kann mir jemand sagen was ich falsch mache?

Grüße...


Sini


--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

1. Variablen in perl beginnen mit $ - das ist die Ursache der 1.
Fehlermeldung.
2. Es ist zwar richtig, den Übergabeparameter in " " zu fassen - aber im
posting stimmen die Klammernebenen nicht.
3. Wieso überhaupt switchOregon_change ? Wo steht diese subroutine denn ?
4. Wieso überhaupt einen Übergabeparameter  ? Die gepostete Subroutine
kommt ohne einen solchen aus.

Mein Tipp: Bitte wenigstens die Grundbegriffe von perl lernen, bevor man
sich ans Schreiben von subroutinen in einem Modul macht.

pah

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Sini

                                                         

Es ist schade, dass von einer Lehrkraft immer nur besserwisserische
Kommentare kommen, konkrete Antworten wären nicht schlecht...

zu 1.: Das ist bekannt, bringt mir nur nichts, da ich keine Variable
weitergeben will. Mein Parameter heißt in diesem Fall einfach
"A_THGR918_1", diesen will ich an eine Routine in 99_myUtils weitergeben...

zu 2.: OK, an welcher Stelle denn?

zu 3. + 4.: Ich habe das gleiche Thema wie andere auch. Seit ich meine
Oregon-Sensoren an FHEM angebunden habe, dauert die Ausgabe der Plots
relativ lang, da die Sensoren im Abstand von ca. 40 Sekunden ihre Werte
liefern. Auf einer Fritzbox 7270 dauert das Plotten dann eben... Das ist
meiner Meinung nach nicht nötig und bläst mir nur die Logfiles auf, daher
habe ich folgenden Ablauf implementiert:

1. Alle Sensoren bekommen das attr event-on-change. Damit bekomme ich nur
noch Änderungen geloggt. Nachteil: Die Plots sind beim Tageswechsel erst
mal eine ganze Zeit lang leer. Um hier Abhilfe zu schaffen folgende
Vorgehensweise:

2. Zeitgesteuert (immer um 00:01, oder auch Stündlich um schönere Plots zu
erhalten) wird das Attribut event-on-change gelöscht. Gleichzeitig wird ein
notify erstellt, welcher auf die nächsten Daten des Sensors reagiert...

3. Die Sensoren liefern im Abstand von 0-40 Sekunden brav ihre kompletten
Werte ab.

4. Notify steuert über die nächsten Daten ein weiteres Programm (ebenfalls
ein sub in 99_myUtils), welches das Attribut event-on-change am Sensor
wieder setzt und das dazugehörige Notify löscht.

Somit bleibt das Logfile klein und ich habe dennoch die Möglichkeit in
einem vorgegebenen Intervall die Werte aller Sensoren zu loggen.

Jetzt habe ich im Moment nur vier dieser Sensoren im Einsatz, kann also die
Notify's und subroutinen noch von Hand anlegen, aber es wäre einfach
eleganter gewesen, nur eine subroutine mit den entsprechenden Sensornamen
zu füttern.

Wie auch immer, für mich funktioniert diese Vorgehensweise. Ich wollte das
Ganze erst vorstellen, wenn auch die elegantere Variante funktioniert...  

Falls noch jemand konstruktive Vorschläge hat, immer gerne...

Grüße...


Sini

Am Montag, 5. November 2012 00:09:00 UTC+1 schrieb Prof. Dr. Peter A.
Henning:
>
> 1. Variablen in perl beginnen mit $ - das ist die Ursache der 1.
> Fehlermeldung.
> 2. Es ist zwar richtig, den Übergabeparameter in " " zu fassen - aber im
> posting stimmen die Klammernebenen nicht.
> 3. Wieso überhaupt switchOregon_change ? Wo steht diese subroutine denn ?
> 4. Wieso überhaupt einen Übergabeparameter  ? Die gepostete Subroutine
> kommt ohne einen solchen aus.
>
> Mein Tipp: Bitte wenigstens die Grundbegriffe von perl lernen, bevor man
> sich ans Schreiben von subroutinen in einem Modul macht.
>
> pah
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

UliM

                                                 

Hi,
ich hab seit ein paar Tagen eine Routine im Einsatz, die zu gewünschten
Zeitpunkten (zB um 23:59 und um 0:01, aber auch zu jedem anderen zeitpunkt)
definierte Readings ausliest und in die entsprechenden Logfiles schreibt.
Damit kann man event-on-change nutzen, und dennoch das Abreissen der logs
verhindern.
Möchte das noch nicht posten, da hier platzierte Programme manchmal
seltsame Wege gehen.

Mag jemand mittesten, bevor das ins Wiki wandert?

Gruß,
Uli

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

Guest

Originally posted by: <email address deleted>

Hallo Uli,
 
teste gerne.
 
Grüße Jörg

Am Montag, 5. November 2012 15:17:16 UTC+1 schrieb UliM:

> Hi,
> ich hab seit ein paar Tagen eine Routine im Einsatz, die zu gewünschten
> Zeitpunkten (zB um 23:59 und um 0:01, aber auch zu jedem anderen zeitpunkt)
> definierte Readings ausliest und in die entsprechenden Logfiles schreibt.
> Damit kann man event-on-change nutzen, und dennoch das Abreissen der logs
> verhindern.
> Möchte das noch nicht posten, da hier platzierte Programme manchmal
> seltsame Wege gehen.
>
> Mag jemand mittesten, bevor das ins Wiki wandert?
>
> Gruß,
> Uli
>
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Sini

                                                         

Bin auch bereit zu testen. Diesen Ansatz hatte ich mir auch mal überlegt,
jedoch mangels Perl-Fähigkeiten dann doch verworfen...

Grüße...

Sini

Am Montag, 5. November 2012 15:17:16 UTC+1 schrieb UliM:
>
> Hi,
> ich hab seit ein paar Tagen eine Routine im Einsatz, die zu gewünschten
> Zeitpunkten (zB um 23:59 und um 0:01, aber auch zu jedem anderen zeitpunkt)
> definierte Readings ausliest und in die entsprechenden Logfiles schreibt.
> Damit kann man event-on-change nutzen, und dennoch das Abreissen der logs
> verhindern.
> Möchte das noch nicht posten, da hier platzierte Programme manchmal
> seltsame Wege gehen.
>
> Mag jemand mittesten, bevor das ins Wiki wandert?
>
> Gruß,
> Uli
>
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

locodriver

                                                         

Ja, das würde mich auch interessieren... :-)

Uwe


Am Montag, 5. November 2012 16:35:22 UTC+1 schrieb Sini:
>
> Bin auch bereit zu testen. Diesen Ansatz hatte ich mir auch mal überlegt,
> jedoch mangels Perl-Fähigkeiten dann doch verworfen...
>
> Grüße...
>
> Sini
>
> Am Montag, 5. November 2012 15:17:16 UTC+1 schrieb UliM:
>>
>> Hi,
>> ich hab seit ein paar Tagen eine Routine im Einsatz, die zu gewünschten
>> Zeitpunkten (zB um 23:59 und um 0:01, aber auch zu jedem anderen zeitpunkt)
>> definierte Readings ausliest und in die entsprechenden Logfiles schreibt.
>> Damit kann man event-on-change nutzen, und dennoch das Abreissen der logs
>> verhindern.
>> Möchte das noch nicht posten, da hier platzierte Programme manchmal
>> seltsame Wege gehen.
>>
>> Mag jemand mittesten, bevor das ins Wiki wandert?
>>
>> Gruß,
>> Uli
>>
>>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
fhem 6.0 auf Rpi3 Bookworm
HM-LAN-CFG (FW 0.965), HM-MOD-UART, 2x HM-TC-IT-WM-W-EU, 4x HM-Sec-RHS und 3x HM-CC-RT-DN, 6x HM-LC-Bl1-FM mit je 1x Somfy-Motor,
2x HM-LC-SW2-FM für Licht und Lüfter, 2x HM-PB-6-WM55, Alexa, Jeelinkcross, CUL, CUNO2, IR-Blaster

Guest

Originally posted by: <email address deleted>

Na, dabei wird es dann wohl auch bleiben.

pah

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Puschel74

                                               

Hallo,

Hi Uli, ich würd auch gern mittesten wenns genehm ist ;-)

Grüße

Am Montag, 5. November 2012 15:17:16 UTC+1 schrieb UliM:
>
> Hi,
> ich hab seit ein paar Tagen eine Routine im Einsatz, die zu gewünschten
> Zeitpunkten (zB um 23:59 und um 0:01, aber auch zu jedem anderen zeitpunkt)
> definierte Readings ausliest und in die entsprechenden Logfiles schreibt.
> Damit kann man event-on-change nutzen, und dennoch das Abreissen der logs
> verhindern.
> Möchte das noch nicht posten, da hier platzierte Programme manchmal
> seltsame Wege gehen.
>
> Mag jemand mittesten, bevor das ins Wiki wandert?
>
> Gruß,
> Uli
>
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
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.

Joachim

                                                   

Moin Uli,

wenn noch ein Tester gebraucht wird, wuerde ich gerne mittesten.

gruss Joachim

Am Montag, 5. November 2012 15:17:16 UTC+1 schrieb UliM:
>
> Hi,
> ich hab seit ein paar Tagen eine Routine im Einsatz, die zu gewünschten
> Zeitpunkten (zB um 23:59 und um 0:01, aber auch zu jedem anderen zeitpunkt)
> definierte Readings ausliest und in die entsprechenden Logfiles schreibt.
> Damit kann man event-on-change nutzen, und dennoch das Abreissen der logs
> verhindern.
> Möchte das noch nicht posten, da hier platzierte Programme manchmal
> seltsame Wege gehen.
>
> Mag jemand mittesten, bevor das ins Wiki wandert?
>
> Gruß,
> Uli
>
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
FHEM aktuellste Version auf FB 7570 und 7390 mit Zebradem Toolbox Freetz
FHEM auf Raspberry
1-Wire mit LinkUSBi und Rs-Pi ds2482-800  1-Wire-9 Board; Max mit Cube, HMLAN
div. 1-Wire Sensoren; MAX-Thermostaten; Homematic-Komponenten, Zehnder KWL über RS-232