FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: cyrusfd am 15 Mai 2024, 07:38:54

Titel: [gelöst] Fehlermeldung im Log: Unknown argument
Beitrag von: cyrusfd am 15 Mai 2024, 07:38:54
Guten Morgen!

Eine Pumpe wird manuell bzw per Schaltuhr gesteuert. Die Pumpe hat 3 Modi für Geschwindigkeiten und einen Aus. Diese werden mit einem kurzen Schalten über 4 verschiedenen Ausgänge gesteuert (GPIO 17/18/22/27). Die Rückmeldung, dass der Motor läuft kommt über GPIO23.
Am Beginn habe ich die Pumpe nur gesteuert, wusste aber nie, ob die Pumpe läuft oder nicht. Die Anzeige des Status des Motors habe ich erst später implementiert. Damit ich nicht alles neu machen muss, ist es vielleicht etwas komplizierter als notwendig.
Grundsätzlich funktioniert aber alles wie gewollt, jedoch sehe ich in den LOGs einige Fehlermeldungen. Ich verstehe einfach nicht, wo der Fehler ist.

2024.05.15 07:30:02 3: n_PumpeAus return value: Unknown argument motor:, choose one of toggle:noArg on:noArg off:noArg off-till-overnight on-till-overnight intervals off-for-timer on-for-timer on-till off-till blink
2024.05.15 07:30:02 3: n_PumpeAus return value: Unknown argument motor:, choose one of toggle:noArg on:noArg off:noArg off-till-overnight on-till-overnight intervals off-for-timer on-for-timer on-till off-till blink
2024.05.15 07:30:03 3: n_PumpeAus return value: Unknown argument motor:, choose one of toggle:noArg on:noArg off:noArg on-till off-till on-for-timer blink off-till-overnight off-for-timer on-till-overnight intervals
Der Dummy PumpeAus gibt mir einen Btn auf der GUI der ua den Status von GPIO23 anzeigt. Ich habe stateFormat auf "motor" geändert, damit der Btn nicht den Status des Dummys, sondern von GPIO23 anzeigt.
define PumpeAus dummy
attr PumpeAus alias Pumpe
attr PumpeAus devStateIcon on.*:general_an@green:on-2 .*:general_aus@red:on-2
attr PumpeAus eventMap /on-for-timer .5:on-2/
attr PumpeAus group Pumpensteuerung
attr PumpeAus icon Shutdown
attr PumpeAus room Technik
attr PumpeAus setList on off
attr PumpeAus sortby 1
attr PumpeAus stateFormat motor
attr PumpeAus useSetExtensions 1
attr PumpeAus webCmd :
#   FUUID      62711d34-f33f-be15-e89b-2d03b2a486610466
#   NAME       PumpeAus
#   NR         47
#   STATE      off
#   TYPE       dummy
#   eventCount 9
#   READINGS:
#     2024-05-14 22:13:26   motor           off
#     2024-05-14 22:13:24   state           off
#
setstate PumpeAus off
setstate PumpeAus 2024-05-14 22:13:26 motor off
setstate PumpeAus 2024-05-14 22:13:24 state off


Das notify kommt von n_PumpeAus
define n_PumpeAus notify PumpeAus set GPIO17 $EVENT
#   DEF        PumpeAus set GPIO17 $EVENT
#   FUUID      62712332-f33f-be15-c2f9-b970dcea11c5012c
#   NAME       n_PumpeAus
#   NOTIFYDEV  PumpeAus
#   NR         48
#   NTFY_ORDER 50-n_PumpeAus
#   REGEXP     PumpeAus
#   STATE      2024-05-15 07:30:03
#   TRIGGERTIME 1715751003.85355
#   TYPE       notify
#   READINGS:
#     2024-05-14 21:51:58   state           active
#     2024-05-15 07:30:03   triggeredByDev  PumpeAus
#     2024-05-15 07:30:03   triggeredByEvent motor: on
#
setstate n_PumpeAus 2024-05-15 07:30:03
setstate n_PumpeAus 2024-05-14 21:51:58 state active
setstate n_PumpeAus 2024-05-15 07:30:03 triggeredByDev PumpeAus
setstate n_PumpeAus 2024-05-15 07:30:03 triggeredByEvent motor: on


sowie von n_gpio23. Hier wird der Status in "motor" gespeichert und an PumpeAus weitergegeben.
define n_gpio23 notify GPIO23:.* {my $value = ReadingsVal('GPIO23','state','');;if ($value eq 'on' or $value eq 'off') {fhem "setreading PumpeAus motor $value";;}}
#   DEF        GPIO23:.* {my $value = ReadingsVal('GPIO23','state','');if ($value eq 'on' or $value eq 'off') {fhem "setreading PumpeAus motor $value";}}
#   FUUID      663775f0-f33f-be15-96e8-bf871b27140fbc4b
#   NAME       n_gpio23
#   NOTIFYDEV  GPIO23
#   NR         69
#   NTFY_ORDER 50-n_gpio23
#   REGEXP     GPIO23:.*
#   STATE      2024-05-15 07:30:03
#   TRIGGERTIME 1715751003.8506
#   TYPE       notify
#   READINGS:
#     2024-05-14 21:51:59   state           active
#     2024-05-15 07:30:03   triggeredByDev  GPIO23
#     2024-05-15 07:30:03   triggeredByEvent Longpress: on
#
setstate n_gpio23 2024-05-15 07:30:03
setstate n_gpio23 2024-05-14 21:51:59 state active
setstate n_gpio23 2024-05-15 07:30:03 triggeredByDev GPIO23
setstate n_gpio23 2024-05-15 07:30:03 triggeredByEvent Longpress: on


Vielen Dank für eure Hilfe! Ich sehe leider vor lauter Bäumen den Wald nicht mehr.

Stefan
Titel: Aw: Fehlermeldung im Log: Unknown argument
Beitrag von: Otto123 am 15 Mai 2024, 08:24:44
Hallo Stefan,

Du reichst alle Events im notify weiter, Deine GPIO17 versteht aber motor xxx nicht. Du musst das Suchmuster im notiy einschränken, eventuell so:
defmod n_PumpeAus notify PumpeAus:on|PumpeAus:off set GPIO17 $EVENT
Oder etwas kürzer
defmod n_PumpeAus notify PumpeAus:o[nf]+ set GPIO17 $EVENT
Gruß Otto
Titel: Aw: Fehlermeldung im Log: Unknown argument
Beitrag von: betateilchen am 15 Mai 2024, 08:26:32
Die Fehlerursache steht doch klar in Deinen listings:

Zitat#    2024-05-15 07:30:03  triggeredByDev  PumpeAus
#    2024-05-15 07:30:03  triggeredByEvent motor: on

Im define des notify steht:

define n_PumpeAus notify PumpeAus set GPIO17 $EVENT

Wenn also der event "motor: on" kommt, dann versucht das notify den Befehl "set GPIO17 motor: on" auszuführen. Und das geht halt nicht - logischerweise.

Mögliche Lösungen:


Titel: Aw: Fehlermeldung im Log: Unknown argument
Beitrag von: betateilchen am 15 Mai 2024, 08:27:12
Otto war schneller, aber ich war ausführlicher...  8)
Titel: Aw: Fehlermeldung im Log: Unknown argument
Beitrag von: cyrusfd am 15 Mai 2024, 08:30:08
Vielen Dank euch beiden für die Hilfe!

Hab's schon angepasst und es funktioniert.