Hauptmenü

notify syntax error

Begonnen von pula, 27 Oktober 2015, 20:17:53

Vorheriges Thema - Nächstes Thema

pula

Hallo,

hab nach einem Umbau alles auf fhem umgestellt, einiges auf arduino (firmata), einiges auf hm, ein paar dinge mit milight.
Habe nun folgendes Problem:

Ich habe einen Arduino mit firmata und daran einen Taster (Pin A0) gegen Masse geschaltet. Das funktioniert grundsätzlich auch - sobald ich den Taster betätige, bekomme ich ein reading von 0.

Wo ich momentan völlig auf dem Schlauch stehe, ist das zugehörige notify.

Ich hab mal mit folgendem probiert:

define n_wz_balkon_taster1 notify wz_balkon_taster1 { my $t = ReadingsVal("wz_balkon_taster1","reading",99);; if ($t < 1) { set ez_led_nischen toggle } }

bekomme aber dafür im log etliche errors:

2015.10.27 20:12:25 5: Notify loop for wz_balkon_taster1 reading: 1023
2015.10.27 20:12:25 5: Triggering n_wz_balkon_taster1
2015.10.27 20:12:25 4: n_wz_balkon_taster1 exec { my $t = ReadingsVal("wz_balkon_taster1","reading",99);; if ($t < 1) { set ez_led_nischen toggle } }
2015.10.27 20:12:25 5: Cmd: >{ my $t = ReadingsVal("wz_balkon_taster1","reading",99); if ($t < 1) { set ez_led_nischen toggle } }<
2015.10.27 20:12:25 3: n_wz_balkon_taster1 return value: Bareword "toggle" not allowed while "strict subs" in use at (eval 127) line 1.


Bin grade einigermaßen demotiviert, weil ich seit einer Stunde oder so versuche, das hinzukriegen, leider erfolglos.
Für zweckdienliche Hinweise wäre ich sehr dankbar - ich habe etliche Taster, die ich mit der Methode anbinden möchte...

Vielen Dank im voraus!

Pula
fhem (debian auf proxmox), HM-LAN und wired, MySensors, FritzBoxes, Kodi, vdr, Onkyo, squeezeplayers, nanoCUL, wifilight (Ethernet-Bridge), Heizungssteuerung (python/vncdotool), doorpi, ESP/Arduinos/MQTT, Alexa, HomeConnect, Sonoff/Tasmota, espRGBWW, esphome, Telegram

marvin78

#1
Grundlagen lernen. Dazu empfehle ich das Einsteiger-PDF und diverse Perl-Seiten. Dann hast du deutlich weniger Frust.


Wenn du schon in Perl-Ebene bist, musst du bekannt machen, dass als nächstes dann doch wieder ein Befehl auf FHEM-Ebene kommt. Dazu gibt es die Funktion fhem().

wz_balkon_taster1 {my $t = ReadingsVal("wz_balkon_taster1","reading",99);fhem("set ez_led_nischen toggle") if ($t < 1)}

Code für den DEF Bereich des notifys.

BTW: Heißt dein Reading wirklch reading?

pula

Hallo,

danke - ich Depp :-(
Darauf bin ich in der Zwischenzeit allerdings selber auch gekommen - tu ja schon ein Weilchen mit fhem herum, bin nur grad sehr nervös, weil wir unmittelbar vor dem Einzug stehen und ich alles mit fhem/arduino gemacht habe ^^

Ja, das reading heisst wirklich reading (kommt aus dem frm-modul so raus)

Scheint nun grundsätzlich zu funktionieren, scheint aber ein timing-Problem zu geben...


fhem (debian auf proxmox), HM-LAN und wired, MySensors, FritzBoxes, Kodi, vdr, Onkyo, squeezeplayers, nanoCUL, wifilight (Ethernet-Bridge), Heizungssteuerung (python/vncdotool), doorpi, ESP/Arduinos/MQTT, Alexa, HomeConnect, Sonoff/Tasmota, espRGBWW, esphome, Telegram