Bitte um Hilfe bei Perlcode

Begonnen von tagedieb, 25 September 2014, 20:23:17

Vorheriges Thema - Nächstes Thema

tagedieb

Hallo und guten Abend zusammen
ich habe hier im Forum eine Beitrag gefunden, um mein WLAN der FB vom Cubietruck aus zu schalten, Beim probieren stosse ich auf die Fehlermeldung

2014.09.25 19:51:47 3: WLAN_OnOff_Schalten return value: Too many arguments for main::FB_WLANswitch at (eval 2403) line 1, near ""on") "
Too many arguments for main::FB_WLANswitch at (eval 2403) line 1, near ""off") "

der code der diesen logeintrag hervorruft, lautet so:
WLAN_OnOff { if (Value("WLAN_OnOff") =~ /[Oo]n/) {FB_WLANswitch("192.168.1.xxx","geheim","on") } else {FB_WLANswitch("192.168.1.xxx","geheim","off") }}


(DEF Auszug vom notify für dummy)
da ich sehr viel, von keiner Ahnung im Bereich perl habe, hilft mir die fehlermeldung nur bedingt weiter, denn tausche ich das "," gegen ein ";"
erhalte ich
2014.09.25 20:18:36 3: WLAN_OnOff_Schalten return value: syntax error at (eval 6021) line 1, at EOF
syntax error at (eval 6021) line 1, at EOF

und DAS kann ich nun gar nicht mehr zuordnen  :-[
Was bedeutet EOF?
Kann mich hier bitte jemand mit einer kleinen Hilfestellung bei meinem Vorhaben unterstützen?

Vielen Dank im voraus

Gruss tagedieb


FHEM 5.6 auf Cubitruck
CUL und Cul 868 und 2 HM LAN an Zbox
Remoteserver auf 2.Zboxi
HM-CC-RT-DN,HM-LC-Bl1PBU-FM,HM-LC-SW1-FM,HM-LC-SW4-PCB,HM-LC-Sw1PBU-FM,HM-PB-2-WM55,HM-PB-6-WM55,HM-SCI-3-FM,HM-SEC-RHS,HM-SEC-SC,HM-SEC-SC-2,HM-SEC-TIS,HM-WDS10-TH-O u.viele mehr
diverse IT Empfänger und LW3

Bennemannc

Hallo,

EOF kenne ich nur aus DOS Zeiten - da stand das für "End Of File".
Aus den Fehlermeldungen - die Funktion FB_WLANswitch bekommt zu viele Argumente - oder die falschen Argumente. Was steht denn in dieser Funktion - müsste ja in einer 99_xxx Datei stehen. Brauchst Du vielleicht "nur" Adresse und on/off ? Muss hinter der Adresse noch ein Port stehen ?

Gruß Christoph
Cubietruck, Fhem 5.8
CC-RT-DN|LC-SW2-FM|RC-12|RC-19|LC-SW4-BA-PCB|LCp-SW1-BA-PCB|ES-PMSw1-Pl|LC-Bl1PBU-FM|PBI-4-FM|CC-VD|CC-TC|SEC-SC(2)|RC-KEY3-B|LC-Sw1PBU-FM|PB-2-FM|WDS100-C6-O|WDC7000|LC-Bl1-FM
Module: Dewpoint,FB_Callmonitor,HCS,Panstamp,at,notify,THRESHOLD,average,DOIF

franky08

Das EOF kommt, weil du 2 { öffnest aber 3 } Klammern schließt.

VG
Frank
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

Puschel74

#3
Hallo,

jajaja, wie auch beschrieben und im Anfängerbereich festgepinnt.
Es gehören ALLE verwendeten Codings zur Schau gestellt.
In diesem Fall fehlt die sub aus der Routine und alle können hier erstmal im Nebel stochern.

EOF = End of File.
IN einem Code lässt sich ; gegen , nur austauschen wenn man weiß was man macht und wie man mit der Meldung umgehen muss/kann.

Grüße

P.S.: Ich überlege grad den Beitrag in den FritzBox-BEreich zu verschieben - dort gibt es auch einen Beitrag zum Thema FB_WLANswitch.
Ich hab mir diesen zwar noch nicht angesehen vermute aber das er bei der Lösungsfindung helfen könnte.
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.

tagedieb

Hallo zusammen
ersteinmal Danke für die vielen Hinweise - ich werde sie nachher in Ruhe abarbeiten
das genannte Thema im Fritzbox bereich  habe ich zur Grundlage meiner "versuchsproduktion"  genommen und wie ihr schon richtig vermutet habt, die dazugehörige Datei ist die 99..TM bzw 99...FBUtils
Eure Hinweise gaben mir schon eine Richtung - ich hoffe es, damit zum laufen zu bringen

Vielen Dank für die Hilfestellung

Gruss tagedieb
FHEM 5.6 auf Cubitruck
CUL und Cul 868 und 2 HM LAN an Zbox
Remoteserver auf 2.Zboxi
HM-CC-RT-DN,HM-LC-Bl1PBU-FM,HM-LC-SW1-FM,HM-LC-SW4-PCB,HM-LC-Sw1PBU-FM,HM-PB-2-WM55,HM-PB-6-WM55,HM-SCI-3-FM,HM-SEC-RHS,HM-SEC-SC,HM-SEC-SC-2,HM-SEC-TIS,HM-WDS10-TH-O u.viele mehr
diverse IT Empfänger und LW3

Puschel74

Hallo,

die sub müsste in der 99_...pm so aufgerufen werden:
FB_WLANswitch($$$)
Wenn du in der Klammer <> 3 $ findest dann passt was nicht.
Wenn doch dann solltest du uns deine gesamten Codes (Aufruf-steht schon oben und sub) zeigen.

Solltest du in der Zwischenzeit was verändert haben dann bitte den aktuell verwendeten Code und die Meldung(en) aus dem Logfile dazu.

Grüße
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.

betateilchen

Zitat von: Puschel74 am 26 September 2014, 08:50:14
P.S.: Ich überlege grad den Beitrag in den FritzBox-BEreich zu verschieben

nene, lass den mal bitte hier. Hier geht es schlichtweg um perl Grundlagen.

Die originale Funktion ist in den Fritzkotzutils so definiert:


sub
FB_WLANswitch($) {}


und wird demnach nur mit einem einzigen Argument ("on" oder "off") aufgerufen. Deshalb müssen die gezeigten Funktionsaufrufe ganz logisch die Fehlermeldungen bringen, denn dort werden drei Argumente an die Funktion übergeben.

Die Funktion ist ursprünglich dazu gedacht, das WLAN der unter localhost erreichbaren Fritzkotz an- bzw. abzuschalten, auf der gleichzeitig auch das fhem läuft, das diese Funktion ausführen soll.

Natürlich kann man versuchen, diese Funktion auch zur Fernsteuerung einer Fritzkotz zu verwenden (ob es funktioniert oder nicht, sei mal dahingestellt) dann muss man allerdings genau wissen was man tut und darüber nachdenken, dass man die gesamte Funktion auf die neuen Gegebenheiten anpassen muss. Vor allem sollte man auch darauf achten, dass man hinterher nicht irgendwann zwei Funktionen mit dem gleichen Namen im System hat.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!