ECMD Seitenwechsel bei Rückgabewert

Begonnen von Netior, 04 Januar 2013, 21:27:27

Vorheriges Thema - Nächstes Thema

Netior

Hallo

Ich kann über ein NetIO mit RFM12 ask verschiedene Funksteckdosen ansteuern.
Nur wechselt jedesmal die Seite auf dem Webfrontend, wenn ich dort on oder off klicke.

Ähnliches wurde schon mal besprochen. In meinem Fall gibts aber kein notify.
https://groups.google.com/forum/#!msg/fhem-users/Kj-vKajCLCE/Dzi43lOhKFUJ

Mit einer structure funktioniert das einwandfrei.
Muss ich für jede dose ein ECMD device und eine structure erstellen damit die seite nicht wechselt?

dank und gruss


rudolfkoenig

>  Nur wechselt jedesmal die Seite auf dem Webfrontend, wenn ich dort on oder off klicke.

Liegt vermutlich daran, dass "set DEV on" irgendetwas zurueckliefert. FHEMWEB interpretiert das als darzustellenden Fehler.

Netior


Richtig, es kommt ein "OK" zurück vom NetIO.

Gibt's ne Möglichkeit dass dies nicht als darzustellender Fehler interpretiert wird?
Mit postproc hab ich gerade (net-io Relais Bsp.) versucht mit undef und als leerer postproc, aber es gibt immer etwas zurück.

Gruss und Dank

Netior


Hallo nochmals.

Wollte nur nochmals nachfragen ob es allenfalls eine Lösung für das Problem gibt.
z.b. Rückgabewert zu unterdrücken oder irgendwie zu definieren dass der rückgabewert nicht als fehler behandelt wird.

Gruss und dank!

Dr. Boris Neubert

Zitat von: Netior schrieb am Sa, 12 Januar 2013 17:44Wollte nur nochmals nachfragen ob es allenfalls eine Lösung für das Problem gibt.
z.b. Rückgabewert zu unterdrücken oder irgendwie zu definieren dass der rückgabewert nicht als fehler behandelt wird.

Probier bitte mal aus, ob Du mit einem postprocess { return undef; } in der classdef zum Ziel kommst.

Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Netior

Hallo Boris

Danke für dein Feedback.

Ich habe versucht mit

postprocess { return undef; } =>Seite wird gewechselt mit Antwort "on OK"

und mit

set on postproc { return undef; } => Seite wird noch gewechselt aber String vom Netio kommt nicht mehr durch. Es steht nur noch "on".

Sonst noch eine Idee.

Vielen Dank und Gruss

yoho

Hallo Forum,

da dies mein erster Beitrag ist, möchte ich mich zunächst für diese sehr schöne Software bedanken.

Da ich selber gerne diverse Schaltaufgaben am AVR-NET-IO mit FHEM ausführen möchte, würde ich mich gerne erkundigen, ob es für das, in diesem Threat beschriebene, "Problem" bereits eine Lösung gibt. Bei mir tritt das "Problem" mit dem Schalten von 2272-Funksteckdosen und Relais (über "named_pins") auf.

Danke


FHEM auf Debian Bookworm

Netior

Hallo

Hab leider noch nichts gefunden das helfen würde.
Hat noch jemand eine Idee?


Dr. Boris Neubert

Zitat von: Netior schrieb am Do, 07 Februar 2013 20:53Hallo

Hab leider noch nichts gefunden das helfen würde.
Hat noch jemand eine Idee?


Ich habe am 26.01. eine Änderung eingecheckt, die ein set keinen Wert mehr zurückliefern läßt und außerdem state regelkonform setzt. Damit solltest Du es einmal versuchen. Bei mir klappt es.

Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Netior


Wow, super.
Herzlichen Dank.
D.h. für mich ein update shutdown restart, ist das korrekt?

Werde das voraussichtlich morgen testen und feedbacken.

Gruss

Netior

yoho

Hallo Boris,

auch wenn ich mich nur mit angehängt habe, möchte ich trotzdem Feedback geben:

Funktioniert nun einwandfrei!

Vielen Dank!
FHEM auf Debian Bookworm

Netior

Hallo

Freude herrscht!
Funktioniert einwandfrei nach update und shutdown restart.
Endlich kein Seitenwechsel mehr.

Vielen Dank und Gruss

ulli


Dank der ECMD Erweiterung habe ich auch die Steuerung meiner Funktsteckdosen im Griff.
Super Boris!

Ich würde nur gerne auch die Befehle der Funkfernbedinung nutzen.
Leider habe ich keine Ahnung von Perl und habe auch in stundenlager Suche nicht heraus gefunden wie ich auf einen seriellen Befehl in FHEM reagieren kann.
Ist es auch mit ECMD möglich solche Befehle wie folgender zu verarbeiten:
"rfm 1 10010 B 0"
"rfm <protokol> <housecode> <device> <state>"

Wäre sehr dankbar über Unterstützung.

Dr. Boris Neubert

Zitat von: ulli schrieb am Fr, 01 März 2013 22:49Ich würde nur gerne auch die Befehle der Funkfernbedinung nutzen.
Leider habe ich keine Ahnung von Perl und habe auch in stundenlager Suche nicht heraus gefunden wie ich auf einen seriellen Befehl in FHEM reagieren kann.
Ist es auch mit ECMD möglich solche Befehle wie folgender zu verarbeiten:
"rfm 1 10010 B 0"
"rfm <protokol> <housecode> <device> <state>"

Diese Texte kommen spontan vom Gerät, also nicht als Antwort auf ein von Dir gesendetes Kommando? Dafür ist das ECMD-Modul nicht ausgelegt - es geht nur das Frage-Antwort-Spiel. Grundsätzlich ist es aber möglich, das Modul mit einer ParseFn-Funktion auszustatten, damit spontan gesendete Texte vom Gerät geparst und an Geräte weitergeleitet werden (Beispiel: 00_FHZ.pm). Für erfahrene Fhemler...

Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

ulli

ich versuche gerade mit meinen geringen Kenntnissen das ECMD Modul zu erweitern.
Wie schon beschrieben möchte ich es dazu bringen Nachrichten die einfach auf die USB Schnittstelle geschrieben werden zu verarbeiten. (kein Frage-Antwort-Spiel)
d.h.
Kommando auf der seriellen Schnittstelle ist folgendes:
IR[6]: <10 707 F807 1>

66_ECMD.pm habe ich um folgendes ergänzt
sub
ECMD_Initialize($)
{
....
  $hash->{Match}     = "^IR[6]: <.............>";
  $hash->{ParseFn}   = "ECMD_Parse";
....
}
sub
ECMD_Parse($$)
{
  my ($hash, $msg) = @_;

  Log 3, "Testnachricht";
}

Kann mir wer helfen warum ich im fhem logfile keine Nachricht bekomme?
Was habe ich vergessen?

Erweiterung:
Ich habe noch eine ECM_Read Funktion eingebaut mit folgendem Inhalt:
  $buf = ECMD_SimpleRead($hash);
  Log 3, "ECMD (ReadAnswer): $buf";

Damit erhalte ich im Log folgendes:
2013.03.03 21:57:49 3: ECMD (ReadAnswer): I
2013.03.03 21:57:49 3: ECMD (ReadAnswer): R[6]:
2013.03.03 21:57:49 3: ECMD (ReadAnswer):  <10 7
2013.03.03 21:57:49 3: ECMD (ReadAnswer): 07 F80
2013.03.03 21:57:49 3: ECMD (ReadAnswer): 7 0>
2013.03.03 21:57:49 3: ECMD (ReadAnswer): IR[6]
2013.03.03 21:57:49 3: ECMD (ReadAnswer): : <10
2013.03.03 21:57:49 3: ECMD (ReadAnswer): 707 F
2013.03.03 21:57:49 3: ECMD (ReadAnswer): 807 1>

Warum wird der Befehl nicht vollständig auf einmal eingelesen?

Kann mir kurz jemand einen Roten Faden geben wie ich meine Funktion korrekt in das Modul einbauen kann.....Read, Match, Parse???

Wäre sehr hilfreich...