Hauptmenü

AVR NET IO-Analogeingang

Begonnen von Steve, 09 Januar 2013, 22:02:07

Vorheriges Thema - Nächstes Thema

Steve

Hallo,

ich habe das Problem ein 0-5V Signal vom NET_IO zu empfangen.
Schon auf der Ethersex-Webseite wird kein Signal angezeigt.
Die cfg ist lt. Beschreibung geschrieben, doch es kommt kein Analogwert an.(Status ???)

Logfile:Use of uninitialized value $r[0] in join or string at /usr/share/fhem/FHEM/66_ECMD.pm line 634.


In der Ethersex-Konfiguration sind die Analogeingänge aktiviert.

Einen Eingang habe ich für 1-Wire reserviert.(funktioniert)

Ich denke das es am NET_IO liegt bzw an der Konfiguration.


Hat jemand einen Tip, wo eventuell der Fehler sein kann?

Grüße Steve


Puschel74

Hallo und Guten morgen,

naja, wenn du auf der Ethersex-Seite schon keine Werte angezeigt bekommst wird es wohl dort bzw. schon am Analogeingang hängen.
Die Firmware ist korrekt installiert auf dem AVR?

Bist du sicher das du in der Firmware die Analogeingänge ausgewählt hast?
Ein neues make durchgeführt und neu geflasht?
auf der AVR-Seite wird das gut in einem Tutorial erklärt.
Hab nur grad den Link nicht im Kopf aber einfach im G****** eingeben
AVR-NET-IO Forum <<--- müsste es sein

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Steve

Hallo,

ich hab den Fehler gefunden,im Internetexplorer werden auf Ethersex die Analogeingänge nicht dargestellt.
Ich habe dafür Firefox installiert, und es funktioniert.

Ich habe jetzt lt. Wiki den Analogeingang konfigurieret, bekomme aber eine
Fehlermeldung,da das Attribut "referenz" nicht unterstützt wird.

<value Not enough arguments for main::readingsSingleUpdate at (eval 970) line 1, near "$status)"> bzw. wenn ich sichere kommt die Meldung<portvalue 1023 Bodenfeuchte_3: unknown attribute referenz, choose one of room group comment alias eventMap loglevel 0,1,2,3,4,5 devStateIcon fp_Testbild icon webCmd or use attr global userattr referenz>

Mit "attr global userattr referenz" geht es auch nicht
Gibt es da eine Alternative?



Tobias

doch, du musst das Attribut "referenz" erst anlegen, so wie im wikibeitrag beschrieben.
Die Fehlermeldung sagt eindeutig das das Attribut nicht definiert ist
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

Steve

Habe jetzt bei global das Attribut noch mal angelegt, hatte es vorher nur nicht
gespeichert.

Allerdings kommt jetzt eine andere Meldung:
<value Not enough arguments for main::readingsSingleUpdate at (eval 1548) line 1, near "$status)">

Ist der Fehler in der classdef?


Steve

Habe den Fehler in der classdef gefunden

Heinz

Hallo, ich habe den selben Fehler.
Was muss ich in der classdef ändern?

Steve

Hallo,

verwende mal die classdef!

--------------------------------------------------------------------------------------------------------------------------4
# Uebergabeparameter Portnummer des internen Analogeingangs
params PortID

# Umsetzung in ECMD Befehle
# value = Rückgabewert in 0-100%, je nach eingestelltem Referenzwert im Attribut "Referenz"
#    Gleichzeitig wird das Reading "status" gesetzt, je nach eingestelltem Schwellwert
#    status = on  => gemessener Wert liegt unter dem Schwellwert
#    status = off  => gemessener Wert liegt über dem Schwellwert
# 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(trim("$_"));\
  my $refval = trim(AttrVal("%NAME","referenz",1024));\
  my $retval = $hexval*100/$refval;\
  my $hash   = $defs{%NAME};\
  my $status = "off";\
  my $schwellwert = trim(AttrVal("%NAME","schwellwert",30));\
  \
  $status = "on" if ($retval < $schwellwert);\
  \
  readingsSingleUpdate($hash,"status",$status,0);\
  \
  $retval;\
}
get portvalue cmd {"adc get %PortID"}
get portvalue postproc {hex(trim("$_"))}
-----------------------------------------------------------------------------------------------------------------------------------

Grüße Steve

Heinz