CUL -Device empfängt nach Neustart keine Daten

Begonnen von Mundus, 06 Juni 2018, 00:42:55

Vorheriges Thema - Nächstes Thema

Mundus

Hallo,

nach einem Neustart meines FHEM empfängt der CUL keine Daten mehr. Leider weiß ich an dieser Stelle nicht, was ich falsch mache. Zunächst einmal der Auszug aus meinem LOG

2018.06.06 00:20:59 1: PERL WARNING: Prototype mismatch: sub main::berechneBinaer ($) vs none at ./FHEM/99_TCMSensorUtility.pm line 103.
...

2018.06.06 00:20:59 5: Cmd: >define myCul433 CUL /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A505MQF0-if00-port0@38400 1234<
2018.06.06 00:20:59 5: Loading ./FHEM/00_CUL.pm
2018.06.06 00:20:59 3: Opening myCul433 device /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A505MQF0-if00-port0
2018.06.06 00:20:59 3: Setting myCul433 serial parameters to 38400,8,N,1
2018.06.06 00:20:59 5: SW: V
2018.06.06 00:20:59 5: CUL/RAW (ReadAnswer): V
2018.06.06 00:20:59 5: CUL/RAW (ReadAnswer): 1.26.02 a-culfw Build: private build (unknown) nanoCUL433
2018.06.06 00:20:59 5: CUL/RAW (ReadAnswer): (F-Band: 433MHz)

2018.06.06 00:20:59 5: SW: ?
2018.06.06 00:20:59 5: CUL/RAW (ReadAnswer): ? (? is unknown) Use one of A B C e F f G i K L l M N R
2018.06.06 00:20:59 5: CUL/RAW (ReadAnswer):  T t U V W X x

2018.06.06 00:20:59 3: myCul433: Possible commands: ABCeFfGiKLlMNRTtUVWXx
2018.06.06 00:20:59 5: SW: X21
2018.06.06 00:20:59 5: SW: T01
2018.06.06 00:20:59 5: CUL/RAW (ReadAnswer): 1234

2018.06.06 00:20:59 5: GOT CUL fhtid: 1234
2018.06.06 00:20:59 3: myCul433 device opened
2018.06.06 00:20:59 5: Cmd: >attr myCul433 room Cul<
...

2018.06.06 00:21:04 5: Cmd: >define cul_Wetter_Sensor_aussen CUL_TCM97001 CUL_TCM97001_Unknown<
2018.06.06 00:21:04 5: Loading ./FHEM/14_CUL_TCM97001.pm
2018.06.06 00:21:04 5: Cmd: >attr cul_Wetter_Sensor_aussen alias Wetter Außen<
2018.06.06 00:21:04 5: Cmd: >attr cul_Wetter_Sensor_aussen model Unknown<
2018.06.06 00:21:04 5: Cmd: >attr cul_Wetter_Sensor_aussen room Cul,Wetter<
2018.06.06 00:21:04 5: Cmd: >attr cul_Wetter_Sensor_aussen stateFormat T: Temperatur Luft: Luftfeuchte<
2018.06.06 00:21:04 5: Cmd: >define FileLog_cul_Wetter_Sensor_aussen FileLog ./log/cul_Wetter_Sensor_aussen-%Y-%m-%d.log cul_Wetter_Sensor_aussen|cul_Wetter_Sensor_aussen:Luftfeuchte:.*|cul_Wetter_Sensor_aussen:Temperatur:.*<
2018.06.06 00:21:04 5: Cmd: >attr FileLog_cul_Wetter_Sensor_aussen archivedir ./archivelog/<
2018.06.06 00:21:04 5: Cmd: >attr FileLog_cul_Wetter_Sensor_aussen logtype text<
2018.06.06 00:21:04 5: Cmd: >attr FileLog_cul_Wetter_Sensor_aussen nrarchive 10<
2018.06.06 00:21:04 5: Cmd: >attr FileLog_cul_Wetter_Sensor_aussen room Logs<
2018.06.06 00:21:04 5: Cmd: >define nt_Wetter_Sensor_aussen notify cul_Wetter_Sensor_aussen.Code.* {
TCM302($EVTPART1,$NAME);
}<
2018.06.06 00:21:04 5: Cmd: >attr nt_Wetter_Sensor_aussen room Cul<
...


Meines Erachtens müsste das Device von dem CUL alle Daten empfangen, dies passiert aber nicht. WIe bereits in einem anderen Thread geschrieben https://forum.fhem.de/index.php?topic=68400.0 wird der cul direkt nach den GLOBAL-Attributen usw. initialisiert. Aber auch das brachte keinen Erfolg.

Der Erste Fehler (Warning) in den LOGS scheint an meiner eigenen Funktion zu liegen, die aber trotzdem korrekt abgearbeitet wird. Hier der Codetext
##############################################
# $Id: myUtilsTemplate.pm 7570 2015-01-14 18:31:44Z rudolfkoenig $
#
# Save this file as 99_myUtils.pm, and create your own functions in the new
# file. They are then available in every Perl expression.

package main;

use strict;
use warnings;
use POSIX;

sub berechneBinaer($);

sub
TCMSensorUtility_Initialize($$)
{
  my ($hash) = @_;
}

# Enter you functions below _this_ line.

sub TCM302($$)
{
  my ($hexWert,$Device) = @_;
my @hexarray = split(//,$hexWert);
my @binArray;

foreach (@hexarray) {
push(@binArray,sprintf("%04b",hex($_)));
}

#Channel Bits
my @binZerlegt = split(//,$binArray[3]);
my $channel = $binZerlegt[0].$binZerlegt[1];
if ($channel == "00") {
$channel = 1;
}elsif ($channel == "01"){
$channel = 2;
}elsif ($channel == "10"){
$channel = 3;
}

fhem("sleep 0.1; setreading $Device Kanal $channel");

#TX Bit
@binZerlegt = split(//,$binArray[8]);
my $tx = $binZerlegt[2];

fhem("sleep 0.1; setreading $Device TX $tx");

#Luftfeuchte
@binZerlegt = split(//,$binArray[7]);
my $Luft = $binZerlegt[2].$binZerlegt[3];
@binZerlegt =split(//,$binArray[8]);
$Luft = $Luft . $binZerlegt[0]. $binZerlegt[1];
@binZerlegt =split(//,$binArray[6]);
$Luft = $Luft . $binZerlegt[2]. $binZerlegt[3];
@binZerlegt =split(//,$binArray[7]);
$Luft = $Luft . $binZerlegt[0]. $binZerlegt[1];
$Luft = berechneBinaer($Luft);

#Log3 $hexWert,3, "Die Luft hat $Luft%\n";
fhem("sleep 0.1; setreading $Device Luftfeuchte $Luft%");

#Temperatur
@binZerlegt = split(//,$binArray[5]);
my $Temp = $binZerlegt[2].$binZerlegt[3];
@binZerlegt =split(//,$binArray[6]);
$Temp = $Temp . $binZerlegt[0]. $binZerlegt[1];
@binZerlegt =split(//,$binArray[4]);
$Temp = $Temp . $binZerlegt[2]. $binZerlegt[3];
@binZerlegt =split(//,$binArray[5]);
$Temp = $Temp . $binZerlegt[0]. $binZerlegt[1];
@binZerlegt =split(//,$binArray[3]);
$Temp = $Temp . $binZerlegt[2]. $binZerlegt[3];
@binZerlegt =split(//,$binArray[4]);
$Temp = $Temp . $binZerlegt[0]. $binZerlegt[1];
$Temp = berechneBinaer($Temp);

my $TempFahr = ($Temp-900)/10;
my $TempCels = ($TempFahr-32)/1.8;
$TempCels = sprintf("%.2f", $TempCels);
my $RoundTempCels = round ($TempCels,0);

#Log3 $hexWert,3, "Celsius lautet die Temp: $TempCels°C\n";
fhem("sleep 0.1; setreading $Device Temperatur $TempCels°C");
fhem("sleep 0.1; setreading $Device RoundTemperatur $RoundTempCels°C");
}

sub berechneBinaer{

foreach(@_){
my $x = $_;
my $n = 1;
my $value;
while($x) {
$value +=$n*chop($x);
$n *=2;
}
return $value;
}
}
 
1;


Aus dem Rest des LOGs werde ich leider nicht schlau, da m.E. das Device ordnungsgemäß mit Daten beliefert werden müsste. Ich bin also für jede Hilfe dankbar.

Gruß

Mundus

rudolfkoenig

FHEM kann offensichtlich mit dem CUL kommunizieren, und es wird SlowRF Empfang aktiviert (X21).
Ob es danach was empfaengt, geht aus dem Log nicht hervor, vermutlich ist das aber trotzdem was fuer den a-culfw Maintaier, d.h. das sollte man entsprechend im Betreff deutlich machen.

Zu der Warnung: in Zeile 13 wird die Funktion berechneBinaer mit einem Parameter deklariert, weiter unten aber ohne Parameter definiert.Im Zweifel sollte man die Deklaration entfernen.

RaspiLED

Hi,
was zeigt der CUL bei ccconf?
Was bedeutet FHEM Neustart? Nur shutdown/restart Von FHEM oder Rechnerneustart?
Welche Hardware ist der CUL? nanoCUL mit FTDI? Ist der Testpin auf Ground gezogen?
Gruß Arnd


Gesendet von iPhone mit Tapatalk
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

Mundus

Zitat von: rudolfkoenig am 06 Juni 2018, 08:58:37
...vermutlich ist das aber trotzdem was fuer den a-culfw Maintaier, d.h. das sollte man entsprechend im Betreff deutlich machen...
Wie mache ich das? Maintainer in den Betreff einfügen?

Zitat von: RaspiLED am 06 Juni 2018, 20:53:11
...was zeigt der CUL bei ccconf?
Das Ergebnis lautet
ZitatmyCul433 ccconf => freq:767.388MHz bWidth:650KHz rAmpl:30dB sens:4dB
Ich vermute, hier liegt vermutlich der Hase im Pfeffer... Leider weiß ich einerseits nicht, wieso die Einstellung nach einem Neustart verändert wird und andererseits nicht, wie ich es nach einem Neustart richtig einstelle. Denn der Befehl
Zitatset myCul433 freq 433
war nicht von Erfolg gekrönt.
Im Übrigen habe ich gerade bei weiteren Überprüfungen festgestellt, dass sich die Werte von cconf immer wieder verändern. Das verstehe ich noch viel weniger.


ZitatNur shutdown/restart Von FHEM oder Rechnerneustart?
Aufgefallen ist es mir nach einem Rechnerneustart
ZitatWelche Hardware ist der CUL? nanoCUL mit FTDI? Ist der Testpin auf Ground gezogen?
Es handelt sich um einen SelbstbauCul und die Bauteile sind entsprechend des Wiki-Eintrages zusammengebaut.

Gruß und Danke für eure Impulse

RaspiLED

Hi,
Das sich die Werte in der Freq bei jeder Abfrage ändern ist eindeutig ein Hardwareproblem. Die Spannungsteiler (über Widerstände?) lassen den Nano nicht richtig mit dem CC1101 reden. Oder der CC1101 ist kaputt. Ich empfehle erstmal nachlösten.
Gruß Arnd


Gesendet von iPhone mit Tapatalk
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

Mundus

Zitat von: RaspiLED am 07 Juni 2018, 06:22:04
Hi,
Das sich die Werte in der Freq bei jeder Abfrage ändern ist eindeutig ein Hardwareproblem.

Ich glaube ich hatte das Problem in der Vergangenheit schon einaml und habe damals den CUL neu geflasht... Natürlich kann ich das nicht verifizieren, werde aber heute oder morgen (je nach Zeit) den CUL neu flashen und dann einen kurzen Bericht posten.

Was mich wundert ist, dass der CUL bis zum Neustart tadellos gearbeitet hat und erst danach ausgestiegen ist....

Gruß Munuds

Mundus

So, habe soeben meine Cul erneut geflasht und das folgende Ergebnis erhalten
myCul433 ccconf => freq:433.920MHz bWidth:325KHz rAmpl:42dB sens:4dB
Das bleibt auch stabil, schon merkwürdig. Jetzt warte ich auf die Eingänge der ersten Nachrichten und hoffe, dass mein Device wieder sendet und FHEM mit Infos versorgt....

RaspiLED

#7
Hi,
Hast Du den CUL in der Hand gehabt zum flashen? Vielleicht mal gedrückt oder seitlich bewegt? Ich glaube immer noch an Hardwarefehler ;-)
Gruß Arnd


Gesendet von iPhone mit Tapatalk
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

Mundus

Hi,

ich habe den USB-Anschluss ab-  und angesteckt, sicherlich dabei den CUL bewegt. Kann sicherlich eine falsche Lötstelle sein...
Leider empfängt der Stick keine Daten, hier bin ich jetzt ratlos. Bringt es etwas mit Screen auf dem Terminal und X08 zu probieren? Sollte ich hierzu FHEM beenden?

Gruß

RaspiLED

Hi,
Er steht auf initialized und ccconf Werte sind wieder okay?
Dann Werksreset (raw e) und Verbose auf 4 und Eventmonitor schauen.
Man kann über einen Code Empfang deaktivieren (X00) oder im Debug aktivieren (X67) und die Sendeleistung erhöhen (raw x09).
Gruß Arnd


Gesendet von iPhone mit Tapatalk
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

Mundus

Zitat von: RaspiLED am 09 Juni 2018, 08:24:33
Hi,
Er steht auf initialized und ccconf Werte sind wieder okay?
Ja, so verhielt er sich.
Nach dem Absetzen des Befehls von raw e habe ich ein, zumindest für mich, merkwürdiges Verhalten beobachtet
Der EvenMonitor ist ohne Auffälligkeiten
Zitat2018.06.10 11:37:06 5: Cmd: >set myCul433 raw e<
2018.06.10 11:37:06 3: set myCul433 raw e
2018.06.10 11:37:06 5: SW: e
2018.06.10 11:37:06 5: Starting notify loop for myCul433, 1 event(s), first is raw e
2018.06.10 11:37:06 5: createNotifyHash
2018.06.10 11:37:06 5: testBattStatus: not on any display, ignoring notify
2018.06.10 11:37:06 5: End notify loop for myCul433
Das war es. Anschließend blinkt der CUL wie wild, die Kontroll-LED leuchtet nicht und eine Abfrage ccconf ergibt
ZitatTimeout reading answer for get C0D

Sobald ich den CUL abziehe und erneut anschließe, ist der Status initialized, die Abfrage cconf ergibt das gewünschte Ergebnis, die Kontroll-LED leuchtet einmal in der Sekunde, nur die Daten werden bislang ebenfalls nicht empfangen...

Bin schon ratlos....
 

RaspiLED

#11
Hi,
Also raw e ist Werksreset und dein Verhalten ist genau wie erwartet dauerblinken, was erst nach abziehen anstecken wieder normal wird! Das ist also gut so.

Das 1s Blinken ist Standard und kann mit
set cul led 00
ausgeschaltet werden:
http://fhem.de/commandref.html - ,,Set the CUL led off (00), on (01) or blinking (02)."

Was sagt den
get cul raw X
? Bei mir ,,CUL868 raw => 21 3600"

Irgendwas im Eventmonitor nach
set cul raw X67
?

Hat hier jemand eine Idee wie man den Empfang testet?

Gruß Arnd


Gesendet von iPhone mit Tapatalk
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

Mundus

Hi,

bei der Eingabe "get raw x" erhalte ich
21 687", "21 711", "21  876"

Jedoch gabe es auch

"No answer" und der CUL disconnected kurz und wechselt danach in den Status "Initialized". Sehr merkwürdig. Habe jetzt im LOG gesehen, dass dann an den CUL der Befehl
Zitatget myCul433 raw
abgesetzt wird.

Bei X67 passiert im LOG/Eventmonitor nichts.


Gruß und Danke

rudolfkoenig

ZitatJedoch gabe es auch "No answer" und der CUL disconnected kurz und wechselt danach in den Status "Initialized".
Ein Zeichen dafuer, dass entweder die USB-Verbindung, oder die MCU (als Hardware oder Firmware) kaputt ist.

Bei dieser Anfrage (get CUL raw x) wird das CC1101 nicht gebraucht, d.h. die MCU->CC1101 Kommunikation ueber SPI ist irrelevant, genauso wie die Antennenanbindung.

RaspiLED

Hi,
Jetzt habe ich ein wenig gebraucht, aber Du hast mehrfach X aufgerufen, richtig?
Dann war ja jede Antwort okay und man sieht wie die 1% Regel wieder hochläuft. Für mich entgegen der Aussage von Rudi kein Fehler.
Das teilweise keine Antwort und ein Reconnect erfolgte ist allerdings komisch. Hast Du es sehr schnell hintereinander probiert? Oder Rudi referiert mit dem HW Argument darauf! Also erklärendes Deinen Hardwareaufbau! Selbstbau Arduino Nano mit FTDI oder CH340 Chip(?). Falls FTDI: Auch mit Lötbrücke am Testpin? Spannungswandler per Widerstände (Welche Werte?) oder Logik Level Converter? Auf Platine aufgebaut mit welchem Layout (z.B. Version 3 hier aus dem Forum)?

Nachdem Du X67 einstellst und in den Eventmonitor wechselst, musst Du natürlich auch Funkverkehr (z.B. mit einer Hörmann Fernbedienung oder einem Homematic Thermostat) generieren. Also beschreib mal was Du genau machst, obwohl es leer bleibt ;-)

Gruß Arnd



Gesendet von iPhone mit Tapatalk
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...