Nano Clone mit KeyValueProtocol stört FHEM Weboberfläche

Begonnen von Rave Rebel, 28 Februar 2019, 21:05:15

Vorheriges Thema - Nächstes Thema

Rave Rebel

Hallo zusammen, ich habe mein FHEM System schon seit mehreren Jahren.
Jetzt bin ich mal richtig an eine Grenze gestoßen und brauche eure Hilfe.
Dies ist mein erster Eintrag hier im Forum und ich hoffe, ich habe das Thema richtig platziert.

Was habe ich gemach:
Ich habe einen Nano Clone (CH340) per USB an meinem PI 1.
Der Nano sendet per serieller Schnittstelle die Daten per KeyValueProtocol.

Wenn ich es am PC in der Arduino IDE teste, kommen die einzelnen Daten sauber an.

Bei einem virtuellen FHEM auf dem PC funktioniert auch alles prima.
Neue Geräte werden automatisch angelegt und die Werte dargestellt.

Nun zu meinem Problem:

Auf meinem PI 1 kann ich nach mehr oder weniger kurzer Zeit die Weboberfläche nicht mehr aufrufen, wenn die ersten Daten vom Nano gesendet werden!

Der PI selbst ist über SSH und eine andere Web Oberfläche (PIHole) weiterhin erreichbar und läuft.
Nur das FHEM Web :8083 ist nicht mehr verfügbar.

Nach einem Neustart ohne den Nano sind jedoch die geschriebenen Werte des Nanos in den logs.
Somit funktioniert auch ein Teil von FHEM noch!

Folgendes habe ich schon probiert:

- neuer Nano  → gleiches Problem
- anderer PI 1 mit neu installiertem FHEM   → gleiches Problem
- andere Serielle Geschwindigkeit   → gleiches Problem
- Zeit zwischen dem Senden der einzelnen Daten verlängert und verkürzt   → gleiches Problem

Hat jemand eine Idee??

Auszug aus dem seriellen Monitor am PC:

OK VALUES VW_ARDUINO 0011 state=0.00
OK VALUES VW_ARDUINO 0012 state=0.00
OK VALUES VW_ARDUINO 0013 state=255.00
OK VALUES VW_ARDUINO 0014 state=12.43
OK VALUES VW_ARDUINO 0010 state=1.00

FHEM:

define ARDUINOserial JeeLink /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0@38400
setuuid ARDUINOserial 5c47408f-f33f-ec69-cd6a-53721ed31f97d667
attr ARDUINOserial flashCommand avrdude -p atmega328P -c arduino -P [PORT] -D -U flash:w:[HEXFILE] 2>[LOGFILE]
attr ARDUINOserial group Arduino_serial
attr ARDUINOserial room System
attr ARDUINOserial verbose 5



Beta-User

Willkommen im Forum!

Tummelt sich da sonst noch was an USB?
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Rave Rebel

Es läuft noch ein nano CUL mit FTDI. Problemlos!

Ich hatte  in der Vergangenheit auch schon den Nano mit ECDM am laufen. Bestimmt 2 Jahre. Das hat dann auf einmal nicht mehr funktioniert. Dann wollte ich auf KVP. Das lief dann auch einige Zeit. Jetzt hängt sich das WEB nach den ersten gesendeten Daten auf.

An meinem Test PI war der Nano und ein USB Wlan Adapter. Der funktioniert auch noch wenn das WEB nicht mehr geht. SSH oder NFS geht dann immer noch.

rudolfkoenig

Wie genau definierst Du "FHEM Web :8083 ist nicht mehr verfügbar"?
Ich weiss nicht genau, was "attr ARDUINOserial verbose 5" macht, aber evtl. ueberlastet es die Festplatte.
Zum debuggen wuerde ich FHEM mit "perl fhem.pl -d fhem.cfg" in einer Konsole starten, und die Ausgaben beobachten.

Beta-User

Ggf. wäre noch ein list von dem anderen (FTDI-)Arduino hilfreich.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Wernieman

Und wenn FHEM nicht erreichbar ist:
Prozessor/Speicher Last etc.
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Rave Rebel

So die Tests gingen weiter. Vielen Dank für die Rückmeldungen.

- mit "FHEM Web :8083" meinte ich das normale "Builtin web frontend" das über den Port 8083 erreichbar ist. Dieses kann ich dann nicht mehr aufrufen.

- "attr ARDUINOserial verbose 5" habe ich nur zum debuggen gesetzt. Das Problem war vorher schon da. Danke für den Tipp mit der Konsole, ist viel besser!

- Ich bin jetzt nochmal zurück auf 0 und habe mir mal einen minimalen Arduino Sketchs geschrieben. Hier werden einfach alle 20 Sekunden 10 Werte übertragen und bei jedem schreiben um 1 erhöht.
Dieser Sketch hat neue devices angelegt und es läuft jetzt tatsächlich! CPU bei 5 - 10 % mit Spitzen bis 40% und Mem bei 5,1%

Danach habe ich den Sketch geändert und auf die alten devices geschrieben. 
Dann lief es nicht mehr!
Die alten devices hatten noch zusätzliche Attribute: event-on-change-reading, stateFormat, event-min-interval & logfile
Ich habe diese auch mit ,,rename" umbenannt.

Wenn ich alle Attribute lösche, läuft es wieder besser.
Wenn mehr Attribute dazu kommen, zeigen sich so langsam erste Timeout am Web Frontend.
Und eben hatte ich auch mal mehrere Reset des Arduino! CPU bei 95%

Somit vermutete ich jetzt ein performance Problem des TEST Pi1. Dort läuft aber sonst fast nichts anderes in FHEM.


Und zum Schluss habe ich nochmal alles neu angelegt und gerade läuft es mal wieder.
Ich bin etwas Ratlos. Den die Attribute sind jetzt wieder drin.
Jetzt läuft auch wieder große Sketch und nur beim senden hat die CPU >5% sonst 0%

So einen richtigen Grund habe ich jetzt nicht finden können.

rudolfkoenig

ZitatDieses kann ich dann nicht mehr aufrufen.
Weil dir die Haende gebunden sind?
Will sagen: aufrufen kann man sicher, es kommt aber eine Fehlermeldung, und genau diese interessiert mich. Timeout, Connection refused, etc.

ZitatWenn mehr Attribute dazu kommen, zeigen sich so langsam erste Timeout am Web Frontend.
Es koennte an der "Festplatte" liegen:
- mit "iostat -x 2" in einem separaten Konsolenfenster kann man sehen, ob sie ausgelastet ist, und wieviel sie schreibt oder liest.
- "top" zeigt in der "%Cpu" Zeile (dritte von oben), ob der Prozessor belastet ist (us/sy/ni), ob auf etwas wie Platte gewartet wird (wa), oder die Interrupt-Last (hi/si) zu hoch ist.

Rave Rebel

Zitataufrufen kann man sicher, es kommt aber eine Fehlermeldung, und genau diese interessiert mich. Timeout, Connection refused, etc.

Wenn garnichts mehr geht erhalte ich im Browser "Diese Seite ist nicht erreichbar"

Wenn das Frontend schon offen war und es dann nicht mehr geht "Connection lost, trying a reconnect every 5 seconds".
Wenn es nicht so lange dauert, wird die Seite dann auch mal wider geladen.

Bei der CPU Last, Platte oder Interrupt konnte ich nichts besondere feststellen.
Das Bild zeigt den Moment an dem die Daten gesendet wurden. ( Heute funktionierte aber auch fast immer das Web Frontend)

Rave Rebel

Die Probleme sind irgendwie immer etwas unterschiedlich.

Heute hatte ich weniger Probleme mit dem Frontend aber dafür nach einiger Zeit immer wieder einen Reset des NANO.
In allen KVP Devices sind die Werte dann wieder weg und es steht dann wieder "Initialized"


Noch eine Frage:
Wie muss die Übertragung des KeyValueProtocol abgeschlossen werden?
Gibt es ein bestimmtes Steuerzeichen?

In meinem Fall verwende ich "serial.println(255.00)" und den zu übertragenden Wert.
OK VALUES VW_ARDUINO 0013 state=255.00


Gibt es einen Beispielsketch für den Arduino?
Hier auch mal mein Testsketch.


float Wert[10]={0.0,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0};


void setup(){
    Serial.begin(38400);   
}


void send_serial(){
 
 
  for(int d=0; d<10; d++){
  Serial.print("OK VALUES VW_ARDUINO 0");
  Serial.print(d);
  Serial.print(" state=");
  Serial.println(Wert[d]);
          Wert[d]=Wert[d]+1;
  delay(50);
}
   
}


void loop(){

    send_serial();
    delay(20000);
}



Rave Rebel

Habe mein Test FHEM jetzt komplett gelöscht und nur den NANO mit KeyValueProtocol neu angelegt.

Da läuft jetzt der Test Sketch und es läuft alles super.
Ich werde jetzt nach und nach wieder alles aufbauen und schauen ab wann Probleme auftreten.
Ich habe noch einige andere Sensoren (1-Wire, I2C, GPIO) am laufen.



Rave Rebel

Ich versteh die Welt nicht mehr. Nach zwei Wochen mit Problemen, geht es seit gestern einfach wieder!
Sowohl auf meinem Test FHEM als auch auf meinen großen FHEM.

An meinem großen habe ich keine Änderungen gemacht. Alle Attribute der KVP Devices sind unverändert.

Ich werde es weiter beobachten.

Rave Rebel

So und heute geht wieder gar nichts mehr! Kein FHEM Frontend erreichbar.

FHEM läuft aber im Hintergrund fleißig weiter.

Wenn ich den FHEM Service über das Terminal beende und wieder mit "perl fhem.pl -d fhem.cfg" starte, sehe ich dass es läuft.

Das Frontend ist weiterhin nicht erreichbar.

Prozessorlast, Platte und Interrupt alles minimal belastet.

Nur ein Neustart des Pi hilft für kurze Zeit.

rudolfkoenig

ZitatWenn ich den FHEM Service über das Terminal beende und wieder mit "perl fhem.pl -d fhem.cfg" starte, sehe ich dass es läuft.
Das Frontend ist weiterhin nicht erreichbar.
Bin verwirrt: ist das FHEM Frontend in diesem Fall erreichbar, oder nicht?
Wenn nicht, dann wuerde weiterhelfen, wenn Du die Ausgaben vom "fhem.pl -d" hier angehaengen wuerdest.

Wernieman

Da es eine ältere Installation, ist die telnet-Schnittstelle noch aktiv und erreichbar?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html