ECMD mit Readfunktion

Begonnen von ulli, 23 Juli 2013, 18:31:05

Vorheriges Thema - Nächstes Thema

ulli


macmattes

Hallo Ulli

hoffe du kannst mir einfach beim verständnis, der Übergabe der Werte weiterhelfen.
Vielleicht etwas unbeholfen ausgedrückt ab so in etwa wie ich es verstehe.
"wenn ich es richtig verstanden habe dann baut ECMD im Fhem jeweils eine telnet verbindung auf, und setzt dort die befehle ab und wartet auf die Logausgabe.
hoffe ab hier versteh ich es dann richtig, read liest auf der Telnetsession mit und reagiert dann entsprechend wenn definierte werte reinkommen?"

wenn dass soweit richtig wäre, wie überrede ich dann meine Ethersex dazu,auf diese Telnetsession zu schreiben wenn sich was auf den Pins tut?
Wie läuft das im Cuno,dass doch eigentlich ein Ethersex ist?

besten dank für ein paar erklärende tips.

Tom_S

#32
Ich habe die erweiterten Module von Ulli getestet. Soweit funktioniert alles wie vorher.
Jetzt möchte ich die recv ausprobieren.
Zum testen habe ich einen NetIO mit ethersex wie mi Wikki beschrieben in der 'fhem.cfg' wie folgt definiert

   define NETIO93 ECMD telnet IP:PORT
   attr NETIO93 classdefs ECMD93C=ECMD93C.classdef
   define PORT93C1 ECMDDevice ECMD93C 01

in der 'ECMD93C.classdef' steht
   params PIN
   set on cmd {"io set ddr 2 ff\nio set port 2 %PIN %PIN"}
   set on postproc {substr($_, 0, 2) eq "OK" ? "" : "$_";}
   set off cmd {"io set ddr 2 ff\nio set port 2 00 %PIN"}
   set off postproc {substr($_, 0, 2) eq "OK" ? "" : "$_";}
weiterhin kann ich mit der Funktion
   get status cmd {"io get port 2"}
   get status postproc {\
      my $retval = "off";\
      my $portwert = substr($_, 10, 2);\
      $portwert = hex($portwert) & hex($PIN);\
      $retval = "on" if ($portwert > 0);\
      $retval;}
Der NetIO gibt als Antwort 'port 2 0x01 # also den Port 2 als Hex.

Wenn ich es richtig verstanden habe, kann ich mit der neuen Funktion eine Statusänderung erhalten, ohne den Port abzufragen.
Dazu muss der NetIO bei einer Änderung des Zustandes am PIN etwas ausgeben. Kann mir jemand an einem kurzen Beispiel sagen, was der NetIO ausgeben muss, und was ich dann in 'recv status (on?) cmd {???????????}' eintragen muss? Laut Anleitung "io set port 2 %PIN %PIN"? Das ist mir noch nicht so ganz klar.
Muß ich irgendwann erst mal recv (NAME) on aufrufen?
Ich hoffe das Thema ist noch aktuell.

mfg Tom_S
RaspberryPI2 + pilight, 3x AVR-NetIO, LW12, LW12HX, LW12FC; MAX-Lan, ESP8266, Arduino, H801, Neopixel, Solaredge, Modbus

Tom_S

#33
So. habe es jetzt hin bekommen. Super Erweiterung - sehr gut. Danke an Ulli

aber das
achso ja und Ihr müsst den MatchString an eure einzulesende Commando Syntax anpassen in der ECMDDevice_Initialize


sollte noch ein bischen genauer beschrieben werden. Dann wäre es einfacher.

LG Tom_S
RaspberryPI2 + pilight, 3x AVR-NetIO, LW12, LW12HX, LW12FC; MAX-Lan, ESP8266, Arduino, H801, Neopixel, Solaredge, Modbus

Tom_S

#34
hallo,

wollte noch mal fragen, ob noch an dieser Version gearbeitet wird. Bei mir funktioniert sie nach den Erklärungen hier im Forum. Das Einlesen von Analogwerten, was justme1968 gern verwenden würde, bekomme ich nicht hin. Der Ausgabewert des Controller muß genau auf den String passen, dann wird das Kommando ausgeführt.
Hat da schon jemand etwas hinbekommen?
RaspberryPI2 + pilight, 3x AVR-NetIO, LW12, LW12HX, LW12FC; MAX-Lan, ESP8266, Arduino, H801, Neopixel, Solaredge, Modbus

kpwg

Zitat von: Tom_S am 28 Oktober 2013, 09:43:42
wollte noch mal fragen, ob noch an dieser Version gearbeitet wird.
Das würde mich auch interessieren, da ich gerade an der Stelle hänge. 

Zitat von: Tom_S am 28 Oktober 2013, 09:43:42
Bei mir funktioniert sie nach den Erklärungen hier im Forum.
Wo lässt sich das nachlesen? Vielen Dank vorab!

Dr. Boris Neubert

Zitat von: Tom_S am 15 Oktober 2013, 19:38:03
achso ja und Ihr müsst den MatchString an eure einzulesende Commando Syntax anpassen in der ECMDDevice_Initialize

sollte noch ein bischen genauer beschrieben werden. Dann wäre es einfacher.

Das genau ist neben der Umstellung auf DevIO.pm der andere Grund, warum ich die Erweiterung nicht in das offizielle Modul übernommen habe. Der MatchString gehört in die ClassDef. Und das ist mir im Moment zuviel Arbeit, da ich das Modul nur im Dialogmodus benötige.

Freiwillige vor!

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

Mopedpaul

Hallo,
auch ich benutze 2 AVM NetIO Systeme. Hier brauche ich die Funktionen Port setzen, Port lesen und Onewire. Ich weiss nicht , ob ich die neue Funktion richtig verstanden habe.  :-\

Auf den NetIO´s läuft, die wie im Ethersex Wiki beschriebene, geflashte Ethersex Software. Ich kann Ausgänge schalten , Onewire Werte empfangen , Meldungen am das LCD Display senden, und Eingänge auslesen. Das läuft auch soweit alles.  :D Bis auf den Nachteil, daß die Eingänge zum Lesen ständig durch FHEM gepollt werden müssen.  :(

Bei mir läuft da zum Beispiel eine Heizungssteuerung mit. Mit den Onewire Temp Sensoren nehme ich die Vor,Rücklauf, Kessel und Brauchwasser Werte auf. Über einen Ausgangsport schalte ich von Tag auf Nachtabsenkung um. Denn Brenner "Fehlerausgang" frage ich über einen Eingangsport ab. Leider muss ich deshalb pollen (alle 3 min für Temp Werte und Brennerstatus). Auch würde ich gerne die Brenner Laufzeit über einen weiteren Port ermitteln, doch um da noch recht genaue Ergebnisse zu erhalten, müsste ich den Poll sehr kurz einstellen, was FHEM dann doch sehr belasten würde.

Nun meine Frage: Kann ich mit dieser Erweiterung die Eingänge vom NetIO so in FHEM einbinden, daß bei einer Änderung des Portzustands automatisch über ein notify eine Aktion durchgeführt wird und dann nur noch die Temp Werte pollen.

Könnt Ihr mir dann dafür ein Beispiel geben, wie der Befehl in FHEM aussieht, und wie der Eitrag in der ECMDDevice.pl angepasst werden muss.

In dem Beispiel wurden ja nur Ausgangsport überwacht. Der Status sollte ja bekannt sein.

MfG Uwe 
System:FHEM 5.7 auf Intel NUC  mit 1xCUL(433) ,1xCUNO V2 (868)mit Onewire,2xNetIO mit Onewire , HMLAN
,Max Cube , Philips Hue, webViewControll, MiLight
Devices:FS20,Onewire (Cuno+NetIO),Intertechno ,Homematic (Keymatic & TC & SD) Max ,Solaranlage 7,3kWP mit Solarlog 200

sku

hallo zusammen,

warum wird das attribut NoWriteFeedback nicht in das offizielle modul übernommen? das wird nur am anfang erwähnt und dann nicht mehr?

gruß

1wire

Hallo an alle,
ich habe ein AVR-Net-IO im Gartenhaus als Steuerung von Springbrunnen und Bachlauf. Das ganze läuft direkt per Tasten für Bachlauf Taste für Springbrunnen. zusätlich kann ich über FHEM beides ein/ausschalten.
Wenn ich aber die Tasten benutze um ein/auszuschalten, wird dies nicht in FHEM angezeigt. Wenn ich das richtig verstanden habe kann ich dieses Modul hier verwenden um genau das abzubilden. (Polling im 1min Takt auf die Schaltzustände der Relais, möchte ich auch nicht machen)

Was fehlt damit das hier benutzt werden kann bzw. als offiz. Teil in FHEM aufgenommen werden kann? Sonst ist das ganze ja nach einem Update wieder weg, oder?

Grüße
1wire

Dr. Boris Neubert

siehe bitte meinen Beitrag vom 16.11. in diesem Thread...

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

1wire

ok. Soweit klar.

Also da ich das unbedingt umsetzen will und so gar keine Ahnung habe, werde ich parallel alles dokumentieren wie das geht. Evtl. können wir dann daraus die offiz. Version fertigstellen bzw. die fehlenden Dinge nachliefern.

Also:
ich hab jetzt diesen Thread mehrfach durchgelesen.
Ich hab jetzt die aktuellen Module vom 20.August bei mir in FHEM drin. Shutdown restart und alles funktioniert wie vorher.

Welche Vorraussetzungen müssen im Ethersex konfiguriert sein, damit der AVR z. B.: den Tastendruck PA0 sendet? Ich hab (Simple) I/O abstraction model (Port I(O) in der Firmware aktiviert.

viele Grüße

mwsun

Zitat von: Tom_S am 15 Oktober 2013, 19:38:03
So. habe es jetzt hin bekommen. Super Erweiterung - sehr gut. Danke an Ulli

aber das
achso ja und Ihr müsst den MatchString an eure einzulesende Commando Syntax anpassen in der ECMDDevice_Initialize


sollte noch ein bischen genauer beschrieben werden. Dann wäre es einfacher.

LG Tom_S
Hallo Tom,

da ich auch gerne eine Änderung von Port Pins im NetIO an mein fhem schicken möchte, würde mich mal interessieren "wie" du es hin bekommen hast. Du hast leider nur geschrieben "dass" Du hes hin bekommen hast. :)

Gruß,
Manfred

1wire

ich habe jetzt eine Lösung gefunden wie ich Statiänderungen vom AVR-Netio an Fhem senden kann.

Hier mein Beitrag in einem anderen Thread:
http://forum.fhem.de/index.php/topic,16618.msg126005.html#msg126005

na dann, Gute Nacht  ;)

mfuchs

Hi Ulli,

haben diesen vielversprechenden Ansatz gefunden. Ich würde ihn nutzen um ein paar dig. Eingänge, die üben einen TCP-Server ihren Zustand melden in FHEM zu integrieren. Hat also nichts mit AVR-NET-IO etc. zu tun. Das Prinzip ist aber identisch zu Deinem IR-Empfang.

Was ist denn aus Deinen Modifikationen geoworden. Passt alles nicht mehr zum aktuellen Code. Leider. Willst Du da vielleicht nochmal nachziehen?

Matthias