Verbindung zw Fhem und MQTT2 4CH RElais verloren auf Port 1883

Begonnen von DieterN, 16 Dezember 2023, 18:57:15

Vorheriges Thema - Nächstes Thema

DieterN

Hallo liebe Gemeinde
ich nutze schon seit längerem FHEM und möchte mich erst mal recht herzlich für dieses tolle Tool bedanken.
Wie im Betreff schon steht nutze ich schon länger ein 4fach Relais mit Tasmota zum steuern meiner Fussbodenheizung.
Ging alles bis ich vor Tagen meinen Router wechseln musste.
Jetzt kann ich noch über das Webinterface die Relais schalten, aber ich habe keine Verbindung mehr über FHEM.
In der Konsole vom Relais bekomme ich die Meldung;
MQT: Verbindung fehlgeschlagen aufgrund von 192.168.1.101:1883, rc -2. Wiederversuch in 120 s
zwischen drin sind aber kurze Verbindungen wie:
RSL: STATE = {"Time":"2023-12-16T18:21:21","Uptime":"0T03:55:04","UptimeSec":14104,"Heap":23,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":0,"POWER1":"off","POWER2":"on","POWER3":"on","POWER4":"on","Wifi":{"AP":1,"SSId":"Wlan-W****","BSSId":"F0:B0:14:E4:64:D5","Channel":1,"Mode":"11n","RSSI":52,"Signal":-74,"LinkCount":1,"Downtime":"0T00:00:03"}}
Ich habe schon alles mögliche probiert, IP-Adr. geändert, Ports geändert alten Router wieder hin. Geht nicht mehr.
Ich habe in FHEM verbose5 eingeschalten, aber mehr wie dies steht nicht im log:
MQTT2_FHEM_Server: port 1883 opened
2023.12.16 14:25:05 3: MQTT2_DEVICE set MQTT2_DVES_92F3E0 POWER2 on
Die IPAdr. und Ports sind natürlich gleich.
Bin mit meiner Weisheit am Ende und sitze hier im kalten und brauch dringend Hilfe.
Hoffe ich bin hier richtig.
Würde mich riesig über eure Hilfe freuen. Wäre ein tolles Weihnachtsgeschänk.
MfG
Dieter
Fhem Server: BananaPI M2 auf SSD;  11xJeelink(Temp), 6xFHT8Vs(Stellmotoren), CUL_HM (Fensterkontakte); MQTT2 (8fach Relais) (Fussbodenheizung) und 4x Temp

rudolfkoenig

ZitatGing alles bis ich vor Tagen meinen Router wechseln musste.
Womoeglich erlaubt der neue Router keine Verbindung zwischen den Geraeten.

Kann man vom FHEM Server das Webinterface des Tasmota Geraetes erreichen?
Das kann man mit "telnet 192.168.X.Y 80" in einem Shell auf dem FHEM-Server testen.
Oder mit { GetHttpFile("192.168.X.Y", "/") } in FHEM

DieterN

Danke für die schnelle Reaktion.
in Fhem:!DOCTYPE html><html lang="de" class=""><head><meta charset='utf-8'><meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no"/><link rel="icon" href="data:image/x-icon;base64,AAABAAEAEBACAAEAAQCwAAAAFgAAACgAAAAQAAAAIAAAAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AP5/b+H6X2/h8k9v4eZnb+Hud2/h7ndv4e53b+FmZm/hMkxv4ZgZb+HOc2/h5+dv4fPPb+H5n2/h/D9v4f5/b+EAAO4EAADuBAAA7gQAAO4EAADuBAAA7gQAAO4EAADuBAAA7gQAAO4EAADuBAAA7gQAAO4EAADuBAAA7gQAAO4E"><title>Tasmota - Hauptmenü</title><script>var x=null,lt,to,tp,pc='';eb=s=>document.getElementById(s);qs=s=>document.querySelector(s);sp=i=>eb(i).type=(eb(i).type==='text'?'password':'text');wl=f=>window.addEventListener('load',f);var ft;function la(p){a=p||'';clearTimeout(ft);clearTimeout(lt);if(x!=null){x.abort()}x=new XMLHttpRequest();x.onreadystatechange=()=>{if(x.readyState==4&&x.status==200){var s=x.responseText.replace(/{t}/g,"<table style='width:100%'>").replace(/{s}/g,"<tr><th>").replace(/{m}/g,"</th><td style='width:20px;white-space:nowrap'>").replace(/{e}/g,"</td></tr>");eb('l1').innerHTML=s;clearTimeout(ft);clearTimeout(lt);lt=setTimeout(la,2345);}};x.open('GET','.?m=1'+a,true);x.send();ft=setTimeout(la,2e4);}function lc(v,i,p){if(eb('s')){if(v=='h'||v=='d'){var sl=eb('sl4').value;eb('s').style.background='linear-gradient(to right,rgb('+sl+'%,'+sl+'%,'+sl+'%),hsl('+eb('sl2').value+',100%,50%))';}}la('&'+v+i+'='+p);}wl(la);function jd(){var t=0,i=document.querySelectorAll('input,button,textarea,select');while(i.length>=t){if(i[t]){i[t]['name']=(i[t].hasAttribute('id')&&(!i[t].hasAttribute('name')))?i[t]['id']:i[t]['name'];}t++;}}function sf(s){var t=0,i=document.querySelectorAll('.hf');while(i.length>=t){if(i[t]){i[t].style.display=s?'block':'none';}t++;}}wl(jd);</script><style>div,fieldset,input,select{padding:5px;font-size:1em;}fieldset{background:#4f4f4f;}p{margin:0.5em 0;}input{width:100%;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;background:#dddddd;color:#000000;}input[type=checkbox],input[type=radio]{width:1em;margin-right:6px;vertical-align:-1px;}input[type=range]{width:99%;}select{width:100%;background:#dddddd;color:#000000;}textarea{resize:vertical;width:98%;height:318px;padding:5px;overflow:auto;background:#1f1f1f;color:#65c115;}body{text-align:center;font-family:verdana,sans-serif;background:#252525;}td{padding:0px;}button{border:0;border-radius:0.3rem;background:#1fa3ec;color:#faffff;line-height:2.4rem;font-size:1.2rem;width:100%;-webkit-transition-duration:0.4s;transition-duration:0.4s;cursor:pointer;}button:hover{background:#0e70a4;}.bred{background:#d43535;}.bred:hover{background:#931f1f;}.bgrn{background:#47c266;}.bgrn:hover{background:#5aaf6f;}a{color:#1fa3ec;text-decoration:none;}.p{float:left;text-align:left;}.q{float:right;text-align:right;}.r{border-radius:0.3em;padding:2px;margin:6px 2px;}.hf{display:none;}</style></head><body><div style='background:#252525;text-align:left;display:inline-block;color:#eaeaea;min-width:340px;'><div style='text-align:center;color:#eaeaea;'><noscript>JavaScript aktivieren um Tasmota benutzen zu können<br></noscript><h3>LC Technology 4CH Relay</h3><h2>Tasmota</h2></div><div style='padding:0;' id='l1' name='l1'></div><table style='width:100%'><tr><td style='width:25%'><button onclick='la("&o=1");'>An/Aus 1</button></td><td style='width:25%'><button onclick='la("&o=2");'>An/Aus 2</button></td><td style='width:25%'><button onclick='la("&o=3");'>An/Aus 3</button></td><td style='width:25%'><button onclick='la("&o=4");'>An/Aus 4</button></td></tr><tr></tr></table><div id=but3d style="display: block;"></div><p><form id=but3 style="display: block;" action='cn' method='get'><button>Einstellungen</button></form></p><p><form id=but4 style="display: block;" action='in' method='get'><button>Informationen</button></form></p><p><form id=but5 style="display: block;" action='up' method='get'><button>Firmware Update</button></form></p><p><form id=but14 style="display: block;" action='cs' method='get'><button>Konsole</button></form></p><p><form id=but0 style="display: block;" action='.' method='get' onsubmit='return confirm("Wirklich neustarten?");'><button name='rst' class='button bred'>Neustart</button></form></p><div style='text-align:right;font-size:11px;'><hr/><a href='https://bit.ly/tasmota'; target='_blank' style='color:#aaa;'>Tasmota 13.3.0(tasmota) von Theo Arends</a></div></div></body></html>

in der shell:
 Trying 192.168.1.7...
Connected to 192.168.1.7.
Escape character is '^]'.
Connection closed by foreign host.
Wobei 192.168.1.7 das WEbinterface vom Tasmota und 192.168.1.101 die eingetragene MQTT Server Adr. ist in FHEM
Danke
PS Irgendwie haut das mit der Verifizierung nicht hin. Muss zigmale die Bilder bestätigen
Fhem Server: BananaPI M2 auf SSD;  11xJeelink(Temp), 6xFHT8Vs(Stellmotoren), CUL_HM (Fensterkontakte); MQTT2 (8fach Relais) (Fussbodenheizung) und 4x Temp

TomLee

Moin,

wenn du in der Tasmota-Konsole mal MqttLog 4 einstellst, sieht man da evtl. dann den Grund für "192.168.1.101:1883, rc -2. Wiederversuch in 120 s" ?

DieterN

#4
Hallo Rudolf
vielen Dank für deine Hilfe.
Dadurch bin ich auf den Fehler gekommen.
Der FHEM Server lief auf IP ...1.3 und der MQTT2 Server auf ...1.101
Vor lauter hin und her habe ich den Überblick verloren.
Warum kann man die MQTT2 Server Adr. nicht nachträglich ändern?
Vlt check ich es auch nicht nur. :-)

Jetzt hätte ich noch weitere FRagen zu FHEM aber nicht MQTT2 betreffend.
Soll ich neue Beiträge auf machen oder jetzt fragen?
Die 1. Frage wäre: Ich habe in FHEM die Devices mit zB: /dev/serial/by-id/usb-busware.de_CUL868-if00@9600 definiert.
Wenn ich jetzt auf einen neuen Raspberry Umsteige bekommen ich die DEvices nicht hin.

Die 2. Frage wäre: Ich habe FHT8V Stellantriebe direkt gekoppelt ohne die FHT Thermostate(Tasten prellen). Leider geht immer die Verbindung zw. den Stellantrieben nach einer Zeit verloren. Oder wenn man den bananapi auf dem FHEM läuft, neu startet.

Nochmal vielen vielen Dank.
Dieter
Fhem Server: BananaPI M2 auf SSD;  11xJeelink(Temp), 6xFHT8Vs(Stellmotoren), CUL_HM (Fensterkontakte); MQTT2 (8fach Relais) (Fussbodenheizung) und 4x Temp

rudolfkoenig

ZitatWarum kann man die MQTT2 Server Adr. nicht nachträglich ändern?
Port kann man (mit FHEM restart), IP ist nicht Sache vom FHEM, sondern vom OS bzw. Router.

ZitatSoll ich neue Beiträge auf machen oder jetzt fragen?
Neue Beitraege bitte.

ZitatWenn ich jetzt auf einen neuen Raspberry Umsteige bekommen ich die DEvices nicht hin.
Diese Pfade haengen vom Hardware und/oder von der Linux Distribution ab, d.h nach dem Umzug muss man es manchmal neu suchen und einstellen.


ZitatOder wenn man den bananapi auf dem FHEM läuft, neu startet.
Mit dem "set <CUL> raw T1234002C70" Befehl kann man die Synchronization (aller) FHT8V neu einleiten.
1234 und 00 ist Hauscode und Ventil, siehe auch https://wiki.fhem.de/wiki/FHT_8v_direkt_ansprechen
Das koennte man entweder regelmaessig oder beim FHEM Start per notify absetzen.
Sync dauert 112 Sekunden.

DieterN

Zitat von: rudolfkoenig am 17 Dezember 2023, 12:06:53
ZitatWarum kann man die MQTT2 Server Adr. nicht nachträglich ändern?
Port kann man (mit FHEM restart), IP ist nicht Sache vom FHEM, sondern vom OS bzw. Router.

Hallo Rudolf
das stimmt. Das war aber das Problem.
 Die einmal eingerichtete IP Adr. des Servers ist in FHEM fest drin. Wenn man wie ich die IP-Adr. des REchners/Fhem Home ändert, bleibt die alte Adr. in FHEM.
Wäre es nicht besser, wenn Fhem beim Neustart seine eigene Adt. als MQTT2 Adr. übernimmt!!
Dann wäre diesw nicht passiert.
Danke nochmal.
Schöne Feiertage

PS wegen den anderwen Themen machen ich neue Beiträge aus
LG Dieter
Fhem Server: BananaPI M2 auf SSD;  11xJeelink(Temp), 6xFHT8Vs(Stellmotoren), CUL_HM (Fensterkontakte); MQTT2 (8fach Relais) (Fussbodenheizung) und 4x Temp

rudolfkoenig

ZitatWenn man wie ich die IP-Adr. des Rechners/Fhem Home ändert, bleibt die alte Adr. in FHEM.
Man kann zwar die IP-Adresse des Servers bei der Definition von MQTT2_SERVER explizit angeben, das ist aber nur fuer Spezialfaelle gedacht.
Normalerweise gibt man statt IP-Adresse "global" an, wenn man von aussen erreichbar sein will:
define m2s MQTT2_SERVER 1883 globalSo hoert FHEM auf allen vorhandenen Netzwerkschnittstellen.

Wie hast Du MQTT2_SERVER definiert?

DieterN

#8
Hi Rudolf
so:define MQTT2_FHEM_Server MQTT2_SERVER 1883 global

Ich wollte einen 2. Server mit:
define MQTT2_FHEM_Server2 MQTT2_SERVER 1884 192.168.1.xxx
erstellen ging nicht.

PS:
Zu meinen Fragen wegen FHT8V, in welchem Forum soll ich die stellen?
Finde nichts passendes
LG Dieter
Fhem Server: BananaPI M2 auf SSD;  11xJeelink(Temp), 6xFHT8Vs(Stellmotoren), CUL_HM (Fensterkontakte); MQTT2 (8fach Relais) (Fussbodenheizung) und 4x Temp

rudolfkoenig

ZitatIch wollte einen 2. Server mit:
define MQTT2_FHEM_Server2 MQTT2_SERVER 1884 192.168.1.xxx
erstellen ging nicht.
Warum? (d.h. welcher Fehler wurde gemeldet?)
Warum sollte fuer den zweiten Server die IP explizit definiert werden?

ZitatZu meinen Fragen wegen FHT8V, in welchem Forum soll ich die stellen?
Laut https://fhem.de/MAINTAINER.txt: SlowRF

DieterN

Hi Rudolf
gerade probiert mir:
define MQTT2_Server_ND2 MQTT2_SERVER 1884 192.168.1.100
Meldung:
MQTT2_Server_ND2: Can't open server port at 1884: Cannot assign requested address
Fhem Server: BananaPI M2 auf SSD;  11xJeelink(Temp), 6xFHT8Vs(Stellmotoren), CUL_HM (Fensterkontakte); MQTT2 (8fach Relais) (Fussbodenheizung) und 4x Temp

rudolfkoenig

ZitatMQTT2_Server_ND2: Can't open server port at 1884: Cannot assign requested address
Vermutung: die angegebene IP Adresse "gehoert" nicht dem Rechner.
Genauer: es gibt kein Netzwerkinterface mit der spezifizierten IP Adresse.

DieterN

Hallo Rudolf
muss jetzt weg.Melde mich später nochmal.
Vielen Dank
LG Dieter
Fhem Server: BananaPI M2 auf SSD;  11xJeelink(Temp), 6xFHT8Vs(Stellmotoren), CUL_HM (Fensterkontakte); MQTT2 (8fach Relais) (Fussbodenheizung) und 4x Temp

DieterN

Hallo Rudolf,
das 2. Tasmoto Relais ist nicht vorhanden, deswegen die Fehlermeldung.
Verstehe langsam wie es sich gehört.
Ein zweites Relais muss ich dann:
Einschalten und einrichten mit:
IP des Fhem Servsrs und einer anderen Port NUmmer. zb. 1884.
Wenn man mit Global den Server installiert hat, müsste ja der IP wechsel des Relais gehen. Ging aber nicht.
LG Dieter
Fhem Server: BananaPI M2 auf SSD;  11xJeelink(Temp), 6xFHT8Vs(Stellmotoren), CUL_HM (Fensterkontakte); MQTT2 (8fach Relais) (Fussbodenheizung) und 4x Temp

rudolfkoenig

ZitatIP des Fhem Servsrs und einer anderen Port NUmmer. zb. 1884.
Ein zweiter MQTT2_SERVER ist nur selten notwendig.
Ausnahmen sind z.Bsp wenn man sowohl verschluesselte, wie auch unverschluesselte Kommunikation benoetigt, oder wenn man einige Topics nur fuer bestimmte Geraete ignorieren will (ignoreRegexp Attribut).

ZitatWenn man mit Global den Server installiert hat, müsste ja der IP wechsel des Relais gehen. Ging aber nicht.
Das habe ich nicht verstanden, ich rate:
- erst wurde MQTT2_SERVER mit global definiert
- danach wurde die IP des Servers geaendert
- MQTT2_SERVER konnte (trotz diesmal korrekter IP) nicht angesprochen werden.

Ich habe das gerade nachgestellt, und hatte kein Problem, selbst ohne FHEM Neustart.
Ich rate wohl falsch.