FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: manny59 am 16 Juli 2015, 10:33:43

Titel: AVR Netio Board
Beitrag von: manny59 am 16 Juli 2015, 10:33:43
Hallo zusammen
wer kann mir weiterhelfen. Ich habe ein AVR Board mit Ethersex geflasht und lt. Fhem Wiki AVR NETIO die Einträge für Onewire, Relais, Analog Eingänge und Contacts kopiert und als onewire.classdefin  usw  in dem Verzeichnis cd /opt/fhem abgespeichert. Auch die Gruppe und Rechte sind angepasst.
Die Onewire Abfragen und das Schalten der Relais funktioneren einwandfrei.
Nur bei dem Versuch Analog Eingänge anzulegen oder Digital Eingänge abzufragen / anzulegen kommt nach dem Eintrag
define Netzspg ECMDDevice adc 4 in der Fhem Eingabezeile folgende Meldung
ECMDDevice Netzspg error: unknown class adc (I/O device is NETIO_02) .

Wo liegt mein Fehler, zudem dies schon mal alles funktioniert hat , hab leider kein Backup erstellt - Learning by Doing ..

Danke schon mal im voraus für Eure Mithilfe

manny59
Titel: Antw:AVR Netio Board
Beitrag von: franky08 am 16 Juli 2015, 11:34:04
Hallo, poste mal deine adc.classdef und list von deinem NETIO Board.

VG
Frank
Titel: Antw:AVR Netio Board
Beitrag von: manny59 am 16 Juli 2015, 12:14:14
Hallo Frank
danke für Deine rasche Antwort - hier meine adc.classdef

# Uebergabeparameter Portnummer des Analogeingangs wie auf der Platine aufgedruckt
params PortID

# Umsetzung in ECMD Befehle
# value = Rückgabewert in 0-100%, je nach eingestelltem Referenzwert im Attribut "Referenz"
# portvalue = originaler Rückgabewert des NET-IO in Dec umgerechnet um einen Referenzwert ermitteln zu können


get value cmd {"adc get %PortID"}
get value postproc {\
   my $hexval = hex("$_");\
   my $refval = AttrVal("%NAME","status",1024);\
   my $retval = $hexval*100/$refval;\
   $retval;\
}

get portvalue cmd {"adc get %PortID"}
#get portvalue postproc{hex("$_")}

und hier das List von NETIO_02

Internals:
   DEF        telnet 192.168.1.85:2701
   DeviceName 192.168.1.85:2701
   FD         4
   NAME       NETIO_02
   NR         30
   PARTIAL
   Protocol   telnet
   STATE      opened
   TYPE       ECMD
   Readings:
     2015-07-16 10:18:14   state           opened
   Fhem:
     Classdefs:
       Adc:
         filename   /opt/fhem/adc.classdef
         params     PortID
         Gets:
           Portvalue:
             cmd        {"adc get %PortID"}
           Value:
             cmd        {"adc get %PortID"}
             postproc   {   my $hexval = hex("$_");   my $refval = AttrVal("%NAME","status",1024);   my $retval = $hexval*100/$refval;   $retval;}
       Contact:
       Onewire:
         filename   /opt/fhem/onewire.classdef
         params     devID
         Gets:
           Temp:
             cmd        {"1w get %devID\n"}
             expect     \d+.\d\n
         Sets:
           Messen:
             cmd        {"1w convert\n"}
             expect     OK\n
       Relais:
         filename   /opt/fhem/relais.classdef
         params     RelaisPort
         Sets:
           Off:
             cmd        {"io set ddr 2 ff\n\000io set port 2 00 %RelaisPort\n"}
             expect     OK\n
             postproc   {s/([OK\n|;]*)/success/; "$_" eq "success" ? "ok" : "error";}
           On:
             cmd        {"io set ddr 2 ff\n\000io set port 2 %RelaisPort %RelaisPort\n"}
             expect     OK\n
             postproc   {s/([OK\n|;]*)/success/; "$_" eq "success" ? "ok" : "error";}
       Adc:
       Contact:
       Ip01:
       Netio:
Attributes:
   classdefs  ADC=/opt/fhem/adc.classdef:ONEWIRE=/opt/fhem/onewire.classdef:RELAIS=/opt/fhem/relais.classdef
   room       AVR Board

... das war´s - bin schon gespannt auf Deine Antwort

manny59
Titel: Antw:AVR Netio Board
Beitrag von: franky08 am 16 Juli 2015, 12:39:23
Probier mal die adc.classdef von mir. Im Netz kursieren einige Varianten die nicht funktionieren, ich hab damals auch ewig drann rumprobiert.

gegebenfalls den Namen anpassen und dann aber fhem shutdown restart, da die geänderte classdef sonst nicht geladen wird!

get value cmd {"adc get %PortID\n"}
params PortID
get value expect ".*"
get value postproc {\
my $hexval = hex(trim("$_"));\
my $hash  = $defs{%NAME};\
readingsSingleUpdate($hash, "state", $hexval, 1);\
}

VG
Frank

P.S. Da ist jetzt aber keine Umrechnung /1024 mit drinn
Titel: Antw:AVR Netio Board
Beitrag von: manny59 am 16 Juli 2015, 13:17:28
Hallo Frank
hab Deine adc.classdef eingefügt - raspi mit shutdown restart neu gestartet , Analogeingang definiert ..
Ergebnis :
ECMDDevice Netzspg error: unknown class adc (I/O device is NETIO_02).

... das macht mich noch ganz irre !

trotzdem schonmal Danke für Deine Bemühungen

manny59
Titel: Antw:AVR Netio Board
Beitrag von: LuckyDay am 16 Juli 2015, 13:29:12
classdefs  ADC

schreib mal ADC groß bei deiner definition

Zitatdefine Netzspg ECMDDevice adc 4
Titel: Antw:AVR Netio Board
Beitrag von: franky08 am 16 Juli 2015, 13:47:16
Stimmt! Das gehört natürlich Groß geschrieben, ist mir erst gar nicht aufgefallen.

define Netzspg ECMDDevice ADC 4

VG
Frank
Titel: Antw:AVR Netio Board
Beitrag von: manny59 am 16 Juli 2015, 13:48:58
Hallo harry, Hallo Frank

Danke für Eure Unterstützung - jetzt klappt´s wieder  - Danke.
War schon am Verzweifeln - wo war der Fehler in der classdef - nur so zum Verständnis ..
Und habt Ihr auch eine classdef für die digitalen Eingänge für mich parat - grins ..

Danke nochmals - super Forum, tolle und hilfsbereite MItglieder .

manny 59
Titel: Antw:AVR Netio Board
Beitrag von: franky08 am 16 Juli 2015, 13:55:15
Guck mal hier: http://www.ethersex.de/index.php/Nutzung_in_FHEM_(Deutsch)#digitale_Eing.C3.A4nge_-_proaktiv

oder
http://www.mikrocontroller.net/articles/AVR_Net-IO_Bausatz_von_Pollin

oder mal im Netzt suchen, ich benutze die digitalen nicht.

VG
Frank
Titel: Antw:AVR Netio Board
Beitrag von: manny59 am 16 Juli 2015, 14:00:44
Danke Frank
dafür muss ich aber das AVR NETIO nochmals mit Ethersex "bearbeiten" - hat asich ber früher auch ohne diese "Watch io changes and react" Einstellung nutzen lassen ..

Trotzdem Danke , vielleicht gibt es ja andere User bei denen dies klappt und welche die digtialen Ports nutzen

manny59
Titel: Antw:AVR Netio Board
Beitrag von: franky08 am 16 Juli 2015, 14:06:08
Hallo manny59

Du könntest dich an den User kpwg wenden, er arbeitet an der Sache oder mach unter Automatisierung mal einen neuen Thread auf, hier im Anfängerbereich ließt das sonst keiner von den richtigen Leuten.

VG
Frank
Titel: Antw:AVR Netio Board
Beitrag von: LuckyDay am 16 Juli 2015, 14:27:47
ZitatWar schon am Verzweifeln - wo war der Fehler in der classdef - nur so zum Verständnis ..

Wie man aus deinem List erkennen kann ....
ZitatAttributes:
   classdefs  ADC=/opt/fhem/adc.classdef:ONEWIRE=/opt/fhem/onewire.classdef:RELAIS=/opt/fhem/relais.classdef
Titel: Antw:AVR Netio Board
Beitrag von: manny59 am 19 Juli 2015, 11:39:03
Hallo zusammen
ich wollte nur noch berichten, dass die Analogdaten nun seit Tagen einwandfrei ankommen und sich dementsprechend auswerten und anwenden lassen.
Vielen Dank nochmals an Hary und Frank

P.S. die Sache mit den Digitaleingängen hab ich einstweilen als "Analogeingang" gelöst - funktioniert auch so .

manny59