@philipp14
Guten Morgen
Ich habe dieses hier → LINK
Ja habe ich aber da kommt nicht viel. Unter Logbuch kommt auch nicht viel bei mir.
Wo finde ich das? kann ich nicht beantworten.
Ja genau
Ebenso ja
@philipp14
Guten Morgen
Ich habe dieses hier → LINK
Ja habe ich aber da kommt nicht viel. Unter Logbuch kommt auch nicht viel bei mir.
Wo finde ich das? kann ich nicht beantworten.
Ja genau
Ebenso ja
Hallo @MainzlEd,
in den Logs solltest du auf jeden Fall sehen wenn Telegramme durch die Luft gehen, unabhängig davon ob die Geräte in der Konfig sind oder nicht. Ansonsten funktioniert irgendwas in Kombination mit dem Gateway nicht.
Ich gehe davon aus, dass das mgw von PioTek sehr wahrscheinlich nicht gleich wie dein Gateway funktionieren. Das müsste man Debuggen uns sehen wo die Unterschiede sind.
Ich frage mal bei PioTek an, ob es das gleiche Gerät ist.
Du kannst auch mal versuchen, ob du das Gateway mit BSC Finder auslesen kannst.
Zum Test kannst du das Gateway auch per USB einstecken und wie ein USB300 konfigurieren. Das funktioniert mit dem von PioTek sehr gut.
BA ist ein Drehrad auf dem FAM14 für den Betriebsmodus.
In der Konfig unter light: id: muss die Id von deinem FSR stehen das sollte FF-EE-DB-05 bis FF-EE-DB-08 sein. Das siehst du auch auf dem Screenshot von PCT14.
Hab eigentlich nie was gesehen im Log. Muss ich da noch was anderes einstellen ? Loglevel debug ?
Der Link geht irgendwie nicht
In der Doku stand was anderes.
Dort steht die ID des FAM Gateway plus 01 !
Woher hast du die FF-EE-DB-05 ? Im Screenshot steht was von FF-A4-74 usw.
Ja, man muss die debug levels aktivieren. In deinem Fall sollte eltako: debug
und eltakobus.tcp2serial: debug
ausreichen.
Link zu BSC ist hier unter Tools:
Ich habe auch schon eine Antwort von PioTek bekommen, dass die HW sehr wahrscheinlich gleich ist aber die SW nicht.
Hier im Screenshot siehst du, dass FSR14-4x die Adresse 5 bis 8 hat. Bei Gateways, die nicht direkt an den Bus angeschlossen sind, gilt für die id
: Base Id vom FAM14 + lokale Adresse (hier 5-8)
Für die sender id
gilt: Base Id vom Gateway + beliebige Adresse von 1 bis 128. (Ich verwende immer die gleiche Adresse wie die lokale Adresse vom Gerät)
bei internal oder locale address ist gemeint, die Busadresse. Auf dem Bus sehen die Adressen der Geräte immer so aus 00-00-00-XX.
Welche ist das denn in meinem Fall ?
Okay habe verstanden das die light:id jetzt die 05-08 hinten ist !
Was kommt dann bei sender-id hin ?
(werde morgen weiter testen)
Das ist egal eine Zahl von 1-128. Wenn dein Licht mit 5 endet verwende ich für die sender id auch 5, dann ist es einfach die Telegramme zu zuordnen wenn eine Fehlkonfiguration vorliegt. Wichtig ist, dass du auch genau die sender id bei dem richtigen Licht einträgst. Falls du sie richtig einträgst aber vertauschst, dann geht halt ein anderes Licht an.
Update:
Bzgl. des Gateways gibt es hier eine Anleitung. Man kann sich socat installieren und dann per /dev/enoceanPort
wie auf USB300 (ESP3) darauf zugreifen.
D.h. dann sollte deine Konfig so aussehen:
eltako:
gateway:
- id: 1
device_type: enocean-usb300
base_id: FF-A4-74-00
serial_port: /dev/enoceanPort
devices:
light:
- id: FF-EE-DB-05
eep: M5-38-08
name: FSR14_4x - 3
sender:
id: FF-A4-74-05
eep: A5-38-08
Nabend
Ich habe jetzt auch mal manuell versucht den feature-branch zu installieren.
Gleiches Verhalten wie zuletzt mit dem main … allerdings habe ich jetzt mal debug aktiviert:
2024-07-29 23:03:49.418 ERROR (Thread-2) [eltakobus.tcp2serial] [Errno 9] Bad file descriptor
2024-07-29 23:03:49.419 INFO (Thread-2) [eltakobus.tcp2serial] TCP2Serial communication crashed. Wait 10 seconds for reconnection.
2024-07-29 23:03:49.419 DEBUG (MainThread) [eltako] [binary_sensor] [Gateway Id 1] connected False
2024-07-29 23:03:59.421 INFO (Thread-2) [eltakobus.tcp2serial] Established TCP connection to 192.168.3.19:5000 (blocking: False, tcp timeout: 1 sec, serial timeout: 10 sec)
2024-07-29 23:03:59.422 DEBUG (MainThread) [eltako] [binary_sensor] [Gateway Id 1] connected True
2024-07-29 23:04:10.437 ERROR (Thread-2) [eltakobus.tcp2serial] [Errno 9] Bad file descriptor
2024-07-29 23:04:10.437 INFO (Thread-2) [eltakobus.tcp2serial] TCP2Serial communication crashed. Wait 10 seconds for reconnection.
2024-07-29 23:04:10.438 DEBUG (MainThread) [eltako] [binary_sensor] [Gateway Id 1] connected False
2024-07-29 23:04:20.440 INFO (Thread-2) [eltakobus.tcp2serial] Established TCP connection to 192.168.3.19:5000 (blocking: False, tcp timeout: 1 sec, serial timeout: 10 sec)
2024-07-29 23:04:20.441 DEBUG (MainThread) [eltako] [binary_sensor] [Gateway Id 1] connected True
Okay, das ist ja nun wieder ganz was neues.
Muss ich es denn per USB dann anschliessen ? Wenn ja, dann geht das nicht da ich im Gartenhaus nur Netzwerk liegen haben und meine VM im Keller läuft
Nein, das socat macht eine Netzwerk zu serial Port Übersetzung und installiert einen virtuellen serial Port, so dass es sich wie USB300 verhält.
Ah ok, ohh also das andere vergessen ? Lieber über socat das machen ?
Hier das Protokoll:
2024-07-30 07:52:35.036 INFO (MainThread) [homeassistant.components.sensor] Setting up eltako.sensor
2024-07-30 07:52:35.036 DEBUG (MainThread) [eltako] [Eltako Integration Setup] Provide new and old gateway descriptions/id for smooth version upgrades.
2024-07-30 07:52:35.036 INFO (MainThread) [eltako] [Eltako Integration Setup] Support downwards compatibility => from new gatewy description 'EnOcean Gateway - mgw-lan (Id: 1, BaseId: FF-A4-74-00)' to old description 'EnOcean ESP2 Gateway - mgw-lan (Id: 1, BaseId: FF-A4-74-00)'
2024-07-30 07:52:35.036 INFO (MainThread) [eltako] [Eltako Integration Setup] Migrate gatewy from old description 'EnOcean ESP2 Gateway - mgw-lan (Id: 1, BaseId: FF-A4-74-00)' to new description 'EnOcean Gateway - mgw-lan (Id: 1, BaseId: FF-A4-74-00)'
2024-07-30 07:52:35.036 DEBUG (MainThread) [eltako] [sensor ff-a4-74-00] Added entity Id (GatewayInfoField).
2024-07-30 07:52:35.036 DEBUG (MainThread) [eltako] [sensor ff-a4-74-00] Added entity Base Id (GatewayInfoField).
2024-07-30 07:52:35.036 DEBUG (MainThread) [eltako] [sensor ff-a4-74-00] Added entity Serial Path (GatewayInfoField).
2024-07-30 07:52:35.036 DEBUG (MainThread) [eltako] [sensor ff-a4-74-00] Added entity USB Protocol (GatewayInfoField).
2024-07-30 07:52:35.036 DEBUG (MainThread) [eltako] [sensor ff-a4-74-00] Added entity Message Delay (GatewayInfoField).
2024-07-30 07:52:35.036 DEBUG (MainThread) [eltako] [sensor ff-a4-74-00] Added entity Auto Connect Enabled (GatewayInfoField).
2024-07-30 07:52:35.036 DEBUG (MainThread) [eltako] [sensor ff-a4-74-00] Added entity Last Message Received (GatewayLastReceivedMessage).
2024-07-30 07:52:35.036 DEBUG (MainThread) [eltako] [sensor ff-a4-74-00] Added entity Received Messages per Session (GatewayReceivedMessagesInActiveSession).
2024-07-30 07:52:35.036 DEBUG (MainThread) [eltako] [sensor ff-a4-74-00] Add entity Id (id: ff-a4-74-00, gw: EnOcean Gateway - mgw-lan (Id: 1, BaseId: FF-A4-74-00)) to Home Assistant.
2024-07-30 07:52:35.036 DEBUG (MainThread) [eltako] [sensor ff-a4-74-00] Add entity Base Id (id: ff-a4-74-00, gw: EnOcean Gateway - mgw-lan (Id: 1, BaseId: FF-A4-74-00)) to Home Assistant.
2024-07-30 07:52:35.036 DEBUG (MainThread) [eltako] [sensor ff-a4-74-00] Add entity Serial Path (id: ff-a4-74-00, gw: EnOcean Gateway - mgw-lan (Id: 1, BaseId: FF-A4-74-00)) to Home Assistant.
2024-07-30 07:52:35.036 DEBUG (MainThread) [eltako] [sensor ff-a4-74-00] Add entity USB Protocol (id: ff-a4-74-00, gw: EnOcean Gateway - mgw-lan (Id: 1, BaseId: FF-A4-74-00)) to Home Assistant.
2024-07-30 07:52:35.036 DEBUG (MainThread) [eltako] [sensor ff-a4-74-00] Add entity Message Delay (id: ff-a4-74-00, gw: EnOcean Gateway - mgw-lan (Id: 1, BaseId: FF-A4-74-00)) to Home Assistant.
2024-07-30 07:52:35.036 DEBUG (MainThread) [eltako] [sensor ff-a4-74-00] Add entity Auto Connect Enabled (id: ff-a4-74-00, gw: EnOcean Gateway - mgw-lan (Id: 1, BaseId: FF-A4-74-00)) to Home Assistant.
2024-07-30 07:52:35.036 DEBUG (MainThread) [eltako] [sensor ff-a4-74-00] Add entity Last Message Received (id: ff-a4-74-00, gw: EnOcean Gateway - mgw-lan (Id: 1, BaseId: FF-A4-74-00)) to Home Assistant.
2024-07-30 07:52:35.037 DEBUG (MainThread) [eltako] [sensor ff-a4-74-00] Add entity Received Messages per Session (id: ff-a4-74-00, gw: EnOcean Gateway - mgw-lan (Id: 1, BaseId: FF-A4-74-00)) to Home Assistant.
2024-07-30 07:52:35.038 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new sensor.eltako entity: sensor.eltako_gw1_ff_a4_74_00_message_delay
2024-07-30 07:52:35.038 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new sensor.eltako entity: sensor.eltako_gw1_ff_a4_74_00_auto_connect_enabled
2024-07-30 07:52:35.038 DEBUG (MainThread) [eltako] [sensor ff-a4-74-00] eneity unique_id: eltako_gw1_ff_a4_74_00_last_message_received
2024-07-30 07:52:35.038 DEBUG (MainThread) [eltako] [sensor ff-a4-74-00] latest state - state: unknown
2024-07-30 07:52:35.038 DEBUG (MainThread) [eltako] [sensor ff-a4-74-00] latest state - attributes: {'device_class': 'timestamp', 'icon': 'mdi:message-check-outline', 'friendly_name': 'EnOcean Gateway - mgw-lan (Id: 1, BaseId: FF-A4-74-00) Last Message Received'}
2024-07-30 07:52:35.038 DEBUG (MainThread) [eltako] [sensor ff-a4-74-00 (GatewayLastReceivedMessage)] value initially loaded: [native_value: None, state: None]
2024-07-30 07:52:35.038 ERROR (MainThread) [homeassistant.components.sensor] Error adding entity sensor.eltako_gw1_ff_a4_74_00_received_messages_per_session for domain sensor with platform eltako
ValueError: Entity <class 'custom_components.eltako.sensor.GatewayReceivedMessagesInActiveSession'> suggest an incorrect unit of measurement: Messages.
2024-07-30 07:52:35.047 WARNING (MainThread) [homeassistant.helpers.frame] Detected code that calls async_forward_entry_setup for integration eltako with title: Eltako and entry_id: f9ae59be4fc343b07ddbd9ed13616efd, during setup without awaiting async_forward_entry_setup, which can cause the setup lock to be released before the setup is done. This will stop working in Home Assistant 2025.1. Please report this issue.
2024-07-30 07:52:35.047 DEBUG (MainThread) [eltako] [binary_sensor] [Gateway Id 1] connected True
2024-07-30 07:52:35.049 INFO (MainThread) [homeassistant.components.switch] Setting up eltako.switch
2024-07-30 07:52:35.049 DEBUG (MainThread) [eltako] [Eltako Integration Setup] Provide new and old gateway descriptions/id for smooth version upgrades.
2024-07-30 07:52:35.049 INFO (MainThread) [eltako] [Eltako Integration Setup] Support downwards compatibility => from new gatewy description 'EnOcean Gateway - mgw-lan (Id: 1, BaseId: FF-A4-74-00)' to old description 'EnOcean ESP2 Gateway - mgw-lan (Id: 1, BaseId: FF-A4-74-00)'
2024-07-30 07:52:35.049 INFO (MainThread) [eltako] [Eltako Integration Setup] Migrate gatewy from old description 'EnOcean ESP2 Gateway - mgw-lan (Id: 1, BaseId: FF-A4-74-00)' to new description 'EnOcean Gateway - mgw-lan (Id: 1, BaseId: FF-A4-74-00)'
2024-07-30 07:52:35.050 WARNING (MainThread) [homeassistant.helpers.frame] Detected code that calls async_forward_entry_setup for integration eltako with title: Eltako and entry_id: f9ae59be4fc343b07ddbd9ed13616efd, during setup without awaiting async_forward_entry_setup, which can cause the setup lock to be released before the setup is done. This will stop working in Home Assistant 2025.1. Please report this issue.
2024-07-30 07:52:35.052 INFO (MainThread) [homeassistant.components.cover] Setting up eltako.cover
2024-07-30 07:52:35.052 DEBUG (MainThread) [eltako] [Eltako Integration Setup] Provide new and old gateway descriptions/id for smooth version upgrades.
2024-07-30 07:52:35.052 INFO (MainThread) [eltako] [Eltako Integration Setup] Support downwards compatibility => from new gatewy description 'EnOcean Gateway - mgw-lan (Id: 1, BaseId: FF-A4-74-00)' to old description 'EnOcean ESP2 Gateway - mgw-lan (Id: 1, BaseId: FF-A4-74-00)'
2024-07-30 07:52:35.052 INFO (MainThread) [eltako] [Eltako Integration Setup] Migrate gatewy from old description 'EnOcean ESP2 Gateway - mgw-lan (Id: 1, BaseId: FF-A4-74-00)' to new description 'EnOcean Gateway - mgw-lan (Id: 1, BaseId: FF-A4-74-00)'
@philipp14
Anbei ein Screenshot von dem Lan-GW.
Die Ip Adresse 40.55 ist von meinem HA. Somit verbindet sich HA mit dem GW ABER es werden keine Daten ausgetauscht. Anscheinend wird der Funk-Chip TCM310 nicht angesprochen.
P.S.:
Installation socat wird nicht funktionieren, da ich kein vollwertiges Debian habe (Install war über proxmox helper script)
Mal ne dumme Frage, könntest du das Gateway zurückgeben und das von PioTek kaufen?
Da kann ich garantieren, dass es funktioniert. Ich habe es auch Zuhause im Einsatz und es hat den neuen Chip tcm515. Die Reichweite ist deutlich besser als bei tcm310. Falls es dennoch Schwierigkeiten geben sollte stehe ich auch mit PioTek in Kontakt und könnte bestimmt eine Lösung finden.
@philipp14
Also ist ehrlich gesagt keine Option für mich.
Ich habe das GW seit fast 3 Jahren und die Reichweite ist völlig ausreichend für.
Funktioniert auch seit 3 Jahren unter IoB einwandfrei. Es soll auch super easy sein mit den GW sprich dem TCM Chip kommunizieren aber ich bin kein Programmierer.
Von daher ist das keine Option für mich … und andere haben ja ein ähnliches Problem ( siehe @Sevensworld)
In beiden euren Fällen wird es jetzt schwierig das ganze per Chat und ohne HW zu lösen.
Die Geräte von PioTek habe ich damals angeschlossen und debugged. Ich habe mit wireshark geschaut welche Pakete ankommen und danach die Integration geschrieben. Sehr wahrscheinlich verhalten sich die Gateways leicht anders.
@philipp14
Kein Thema, ich versuche ja zu helfen wo ich nur kann.
Fehlerprotokoll und Kommunikation zum GW habe ich bereits geschickt.
Was soll / kann ich noch tun? Wenne ja musste es mir kurz erklären.
Bin per Discord auch erreichbar und für eine Onlinesession immer zu haben.
Verbinde dich Mal mit dem Code auf dein Gateway und schau was du empfängst
import socket
def tcp_client(server_ip, server_port):
# Erstellen eines TCP/IP-Sockets
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
# Verbinden mit dem Server
client_socket.connect((server_ip, server_port))
print(f"Verbindung zu {server_ip}:{server_port} hergestellt")
# Nachricht an den Server senden
message = "Hallo, Server!"
client_socket.sendall(message.encode())
# Antwort vom Server empfangen
data = client_socket.recv(1024)
print(hex(int.from_bytes(data, "big")))
finally:
# Verbindung schließen
client_socket.close()
print("Verbindung geschlossen")
# Beispielaufruf
tcp_client('127.0.0.1', 65432)
Da musst du mir mal helfen. Ich weiss nicht wie und womit ich mich zu meinem gateway verbinden soll ?
Moin Philip
Irgendeine Idee, wo der Fehler bei mir liegen könnte?
Scheinbar wird die Verbindung gar nicht erst hergestellt.
Das GW hält alle Enocean ESP3 Konventionen ein (https://www.enocean.com/wp-content/uploads/Knowledge-Base/EnOceanSerialProtocol3-1.pdf). Der Timeout zur Verbindungstrennung liegt bei 300sec.
So jetzt mal der Reihe nach (Dank tatkräftiger Unterstützung des “Erbauers” des GW’s)
Hier die Antwort auf dein Code:
dirk@DebPyt3:~$ python3 eltako
Verbindung zu 192.168.40.231:20108 hergestellt
Verbindung geschlossen
Traceback (most recent call last):
File "/home/dirk/eltako", line 26, in <module>
tcp_client('192.168.40.231', 20108)
File "/home/dirk/eltako", line 17, in tcp_client
data = client_socket.recv(1024)
^^^^^^^^^^^^^^^^^^^^^^^^
ConnectionResetError: [Errno 104] Connection reset by peer
dirk@DebPyt3:~$
Wie wir sehen, klappt das nicht, da anscheinend nicht das richtige geschickt wird.
Dann haben wir es auf folgendes geändert - damit wird die Base-ID des Chips abgefragt:
# Nachricht an den Server senden
message = "0x5500010006790612"
# Konvertiere die Nachricht in Bytes
message_bytes = bytes.fromhex(message[2:])
client_socket.sendall(message_bytes)
Und hier die Antwort:
Verbindung zu 192.168.40.231:20108 hergestellt
0x5500010002650000
Verbindung geschlossen
Etwas überspitzt gesagt wenn das richtige geschickt wird bekommt man auch eine Antwort vom Chip
Ich hoffe es hilft weiter
Sehr komisch dass es mit der Integration nicht funktioniert. Der Verbindungsaufbau ist der gleiche:
Schau mal ob das folgende läuft und ob du auch eine keep-alive-message bekommst, wenn kein Telegramm gesendet wird.