TCP Binding

Hier bitte alles rein was Off-topic ist.

Moderatoren: Cyrelian, seppy

Antworten
GerdTernes
Beiträge: 25
Registriert: 5. Okt 2020 15:55

TCP Binding

Beitrag von GerdTernes »

Hallo,
leider muss ich Euch noch einmal belästigen. Ich hatte vorher ja mein Problem mit dem 1 Wire Controller gepostet. Nun habe ich versucht, das ganze über das TCP Binding, welches manuell installiert werden soll zu lösen.
Folgende Schritte bin ich bisher gegangen:
Der Controller läuft und sendet auch bereits daten an das (von Esera) bereit gestellte interface.
Danach habe ich das simple binary binding (https://github.com/docbender/openHAB-SimpleBinary) in den Ordner addons kopiert und über die Konsole mit

Code: Alles auswählen

feature:install openhab-transport-serial
installiert. Das binding ist nun zwar nicht auf der binding Übersicht zu sehen, aber wenn ich ein neues "thing" anlegen möchte, kannn ich dies tun indem ich das binding auswähle. Hier sind dann die Möglichkeiten eine tcp bridge, eine uart bridge und ein simple binary thing zu installieren.
Und hier hört es dann auf. Die bridge kann ich noch installieren, aber sobald ich die Bridge generiere wird diese erzeugt und erscheint auch als online. Den voreingestellten Port (43243) kann ich jedoch nicht ändern, da ansonsten die bridge wieder in den "unknown" modus wechselt. Auch habe ich versucht die Bridge über ein tcp.things zu definieren

Code: Alles auswählen

Bridge simplebinary:tcp_bridge:192.168.178.77 "Label" @ "Location" 
, aber dies wird mir gar nicht erst angezeigt.
gibt es irgendwo eine "step by step" anleitung für das tcp binding?

Danke im Voraus
binding.png
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Benutzeravatar
udo1toni
Beiträge: 13947
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: TCP Binding

Beitrag von udo1toni »

Es gibt so viele inoffizielle Bindings da draußen, schade, dass die Entwickler nicht die Extra Meile gehen wollen, sie offiziell zu openHAB hinzuzufügen...

Das manuelle Hinzufügen erfolgt nur durch das Ablegen der *.jar Datei im Ordner $OPENHAB_RUNTIME/../addons/. Eventuell müssen noch zusätzliche Randbedingungen erfüllt werden, wie in diesem Fall das installierte Protokoll openhab-transport-serial.

Bindings, die manuell dem System hinzugefügt werden, tauchen nirgends auf, außer eben an der Stelle, wo man Things erstellen kann. Wenn Du ein Thing erzeugst, musst Du den Typ auswählen, hier also zunächst mal die Bridge. Beim Erzeugen des Things kannst Du alle Parameter anpassen.
Du musst schon beim Anlegen der Bridge die korrekten Parameter setzen.
Wenn Du nachträglich Parameter anpassen willst/musst, so kann es sein, dass Du openHAB neu starten musst (vor allem, wenn es sich um ein manuell hinzugefügtes Binding handelt)

Code: Alles auswählen

Bridge simplebinary:tcp_bridge:192.168.178.77 "Label" @ "Location" 
legt eine simplebinary Bridge an, welche den Namen 192.168.178.77 trägt. Leider sind Punkte im Namen aber nicht erlaubt. :)

Wenn überhaupt, so müsste die Bridge so aussehen:

Code: Alles auswählen

Bridge simplebinary:tcp_bridge:bridge "Label" @ "Location" [ address="192.168.178.77", port="12345" ] 
Das erzeugt eine Bridge mit der UID simplebinary:tcp_bridge:bridge, welche ausschließlich auf der IP 192.168.178.77 erreichbar ist und auf Port 12345 lauscht. address muss gewöhnlich nicht gesetzt werden, die Bridge lauscht dann einfach auf allen IPs, die das Hostsystem nutzt.

Wenn es eine Bridge gibt, so musst Du zwingend noch mindestens ein Thing hinzufügen, welches die Bridge nutzt (das geschieht natürlich ebenfalls über das Simplebinary Binding). Eine Bridge wird eigentlich immer dann verwendet, wenn man es mit einem Bus zu tun hat, also z.B. knx oder homematic. Die Anbindung an den Bus erfolgt über die Bridge, die Things repräsentieren die einzelnen Devices am Bus. Auf diese Weise kann openHAB auch mehrere Busse des selben Bussystems verwenden.
Wenn Du den Port setzt, denke daran, dass openHAB nicht beliebige Ports verwenden kann. Alles unterhalb 1024 ist verboten (privileged), genauso wie die belegten Ports (z.B. 8080, 8443, 5007, 9001 usw.). Im Zweifel ist es das einfachste, den Port in openHAB zu belassen und auf der anderen Seite zu verstellen, oder Du schaust auf der GNU/Linux Konsole mit

Code: Alles auswählen

ss -tln
nach, ob der Port, den Du verwenden willst, evtl. schon belegt ist.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

GerdTernes
Beiträge: 25
Registriert: 5. Okt 2020 15:55

Re: TCP Binding

Beitrag von GerdTernes »

erst einmal ein großes "Danke" für die ausführliche Antwort.
Leider bin ich noch nicht wirklich weitergekommen.
Ich habe die Bridge jetzt über die openhab oberfläche angelegt. Das Problem war, das ich den Port im voraus anlegen muss. Im Raspberry habe ich nachgesehen, ob der port auch abgehört wird und das scheint der fall zu sein. (Port 5000). Anfangs hatte ich das problem, das die Software von Esera nur eine Verbindung erlaubt, ich musste also die verbingung vom esera tool zu dem server entfernen.
Und jetzt hört es (bei mir ) leider schon wieder auf. Ein Thing kann ich zwar über die Oberfläche erstellen und auch definieren, aber ich sehe keinen input.
Gibt es eine Möglichkeit das ich (beim raspberry) sehen welche daten von dem Controller gesendet werden?
Sorry aber ich lerne noch.

VG

Gerd
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Benutzeravatar
udo1toni
Beiträge: 13947
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: TCP Binding

Beitrag von udo1toni »

Ich kenne das Binding ja nicht (bis auf die Infos auf der verlinkten Seite). der nächste Schritt ist auf jeden Fall, das Du im Esera Config Tool die IP-Adresse von openHAB hinterlegst. Ist das die auf dem Bild erkennbare 192.168.178.77? Da die Daten einfach als TCP Pakete in openHAB aufschlagen, musst Du wissen, welches Byte welche Funktion hat. Dazu musst Du dann passende Channel erstellen. Ist hier erklärt.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

GerdTernes
Beiträge: 25
Registriert: 5. Okt 2020 15:55

Re: TCP Binding

Beitrag von GerdTernes »

.... zunächst einmal Danke für die Antwort und Sorry für die verspätete Rückmeldung.
Covid 19 hat leider in der vergangenen Woche auch bei mir zugeschlagen und ich war daher sehr eingeschränkt.
Vielleicht zum Zweck der von mir auszuwertenden Daten.
Ich habe über den 1Wire Bus Strom- , Gas-, Regenwasser- und Wasserzähler jeweils über ein 1Wire S0 Modul angeschlossen. Diese werte ich aus, speichere sie in meiner Datenbank sodaß ich immer eine schöne Übersicht über die aktuellen (und vergangenen) Stände meiner Zähler und Temperaturdaten habe. Dies habe ich mit einem kleinen PHP Programm gemacht. An dieser Stelle nutze ich openhab nicht. Openhab nutze ich "nur" zur Steuerung der Aktoren. Irgenwann bin ich dann auf den Trichter gekommen, das ich ja auch über ein kleines PHP Programm die Daten des Servers über einen cronjob auslesen und in die Datenbank speichern kann. Das habe ich dann in der vergangenen Woche gemacht und es klappt ziemlich gut.
Den Vorschlag von udo1toni werde ich dann in dieser Woche noch einmal angehen.
Anbei einige screenshots von meinem kleinen selbstgebastelten Programm für diejenigen, die etwas in ähnlicher Form vorhaben.
Nochmals "Danke" für die Unterstützung.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Benutzeravatar
udo1toni
Beiträge: 13947
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: TCP Binding

Beitrag von udo1toni »

Da machst Du Dir das Leben aber extrem schwer...

Kennst Du volkszähler.org? Die haben natürlich nicht so eine schöne Oberfläche, machen aber nichts anderes, als Zählerstände einzusammeln und so aufzubereiten, dass man hübsche Graphen erhält. Gespeichert wird dabei in einer MySQL Datenbank. Das System ist in frontend, Middleware und Backend aufgeteilt, die drei Teilsysteme können bequem auf unterschiedlichen Systemen laufen oder auch gemeinsam.
Aber wie gesagt, nicht so hübsch wie bei Dir :)

Was aber die Datenübernahme nach openHAB betrifft, so solltest Du Dir die REST API von openHAB anschauen. Mach das nicht über Low Level TCP, sondern einfach über einen curl Aufruf aus Deinem php Script, viel einfacher geht es ja nicht mehr, wo Du eh schon die Daten in der Hand hast...
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Antworten