Ankündigung

Einklappen
Keine Ankündigung bisher.

Edomi im Docker-Container - revised

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • starwarsfan
    antwortet
    Hoi Hardy,

    coole Sache, danke für die Rückmeldung. Was nun the-way-to-go ist, kann ich so aus dem Stehgreif gar nicht sagen. Ist schon länger her, da muss ich mich erstmal wieder reindenken...

    Einen Kommentar schreiben:


  • harry7922
    antwortet
    Hallo zusammen,

    EDOMI läuft bei mir nun im Docker auf einer Synology (allerdings habe ich nun lediglich das Backup-Verzeichnis als Volume gemountet).
    Folgendes habe ich dabei festgestellt:
    Die Umgebungsvariable HOSTIP musste ich mit meiner IP der Synology belegen (wie der Name ja auch besagt), andernfalls funktioniert die Verbindung zum KNX-Interface nicht.
    Allerdings hatte ich das Problem bei LBSe mit einer Socket-Verbindung (in meinem Beispiel Denon HEOS 19001190) sobald die HOSTIP entsprechend gesetzt war. Hier gab es dann die Fehlermeldung:
    socket_bind(): unable to bind address [99]: Cannot assign requested address
    In dem LBS wird als bind address die global_serverIP verwendet. Ich habe den LBS bei mir nun dahingehend abgeändert, dass er als bind address die global_visuIP (Docker-interne IP 172.17.0.X ) verwendet und NICHT die global_serverIP.
    Erst dadurch kann ein sauberer socket-bind erfolgen.

    Vielleicht hilft es jemand.
    Ist nun die Frage, ob eine Empfehlung Sinn macht dass alle LBS mit Sockets fürs binding die global_visuIP sollten (das sollte für Standalone als auch für Docker Server passen?).

    Grüße
    Hardy

    starwarsfan : Danke für Deine Zeit und Mühe die in die Docker-Images fließen!!!

    EDIT: Oder würde es funktionieren die global_serverIP in Docker auf die Docker-IP zu setzten. Die global_knxIP würde dann im start-Skript auf der HOSTIP bleiben und sollte für die KNX-Verbindung reichen?
    Zuletzt geändert von harry7922; 17.10.2020, 18:53.

    Einen Kommentar schreiben:


  • harry7922
    antwortet
    Zitat von starwarsfan Beitrag anzeigen
    An Edomi selbst hat sich nichts geändert. Hinzugekommen sind die folgenden Pakete bzw. Installationen:[LIST][*]net-snmp-utils[*]php-snmp
    SNMP funktioniert bei mir mit diesem Image!
    Vielen Dank dafür!

    Gruß
    Hardy

    Einen Kommentar schreiben:


  • starwarsfan
    antwortet
    Hallo miteinander,

    auf DockerHub gibt es neue Latest-Versionen als potentielle Kandidaten für einen nächsten Release:. An Edomi selbst hat sich nichts geändert. Hinzugekommen sind die folgenden Pakete bzw. Installationen:Beide Images sind einfach nur gebaut und ungetestet. Wer mag, kann gern damit herumspielen. Bitte immer her mit dem Feedback!

    Einen Kommentar schreiben:


  • harry7922
    antwortet
    Hallo zusammen,

    wer von euch hat EDOMI im Docker auf einer Synology am Laufen und nutzt auch das Volume-Mapping?
    Könnt ihr mir in diesem Fall sagen, wie ihr die Rechte auf den Mount-Pfad in der Synology vergeben habt?
    Wenn ich nicht "everyone" Schreib- und Leserechte auf den Pfad gebe, startet der Container bei mir nicht. Ich hätte die Hoffnung, dass ich die Rechte entsprechend eingrenzen kann.

    Vielen Dank fürs Augen öffnen!

    Grüße
    Hardy

    Einen Kommentar schreiben:


  • harry7922
    antwortet
    Ich bin dem Problem nun nochmal nachgegangen. Leider ohne eine Erkenntnis, dass ich hier Mist gebaut habe.
    Alle angemerkten "Fehler" beziehen sich auf Verzögerungsbausteine, die in dem LBS in E2 (Verzögerung in ms) mein iKO 2070 verwendet.
    Schaue ich mir das iKO an, so kann ich kein ungültiges Zeichen, Zeilenumbruch o.ä. feststellen.
    Wenn ich direkt in die Datenbank schaue, sieht es ebenfalls korrekt aus:

    Da ich mit dem Projekt noch nicht Live bin (und ich daher auch KNXACTIVE noch nicht aktiviert habe), kann ich gerade nicht sagen ob es im laufenden Betrieb Probleme verursachen würde.
    iKO_2070.JPG

    Kämpfe aktuell mit den nächsten Fehlermeldungen die für mich noch nebulös sind - u.a. HEOS LBS:
    /usr/local/edomi/www/data/liveproject/lbs/LBS19001190.php | Fehlercode: 2 | Zeile: 117 | msg_send(): msgsnd failed: Permission denied
    und
    /usr/local/edomi/www/data/liveproject/lbs/LBS19001054.php | Fehlercode: 2 | Zeile: 95 | msg_send(): msgsnd failed: Permission denied

    Das Problem wurde in diesem Thread schon mal berichtet, doch leider konnte ich keine Antwort für mich herauslesen -außer dass es bei anderen Usern keine Probleme gab

    Werde morgen weiter machen. Vielleicht kommen mir ja noch ein paar Ideen.

    Danke und Grüße
    Hardy



    ​​​

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Zitat von harry7922 Beitrag anzeigen
    Ich wäre mir aktuell keiner Schuld bewusst, lasse mich aber gerne eines besseren belehren!
    Ich bin fast sicher, dass es du entweder einen Zeilenumbruch oder ein Leerzeichen in der Zahl an E2 hast.
    Bei mir gibt es grundsätzlich keinen Fehler bei einer Verzögerung. Aber mit mit non-numeric Zeichen, lässt sich genau dein Fehler provozieren.
    Könnte auch noch sein, dass die Verzögerung getriggert wird, bevor E2 gesetzt ist (sofern es per iKO gesetzt wird)

    Einen Kommentar schreiben:


  • harry7922
    antwortet
    starwarsfan ;
    jonofe

    Danke für eure schnellen Antworten. Es klappt nun.
    Ich vermute ich habe trotz fleißigem Lesen noch nicht kapiert, wann die Umgebungsvariable HOSTIP (und mit welcher IP) zu setzen ist.
    Wenn die HOSTIP einmal gesetzt ist und das Docker-Script einmal durchlaufen wurde, bringt es nichts die HOSTIP wieder raus zu nehmen, da die Werte in der edomi.ini und httpd.conf von dem Script nicht mehr "geleert/gedefaulted" werden, richtig?
    Musste jedenfalls den Container nochmal neu erstellen und hab nun die HOSTIP und wie ihr geschrieben habt das Portmapping für 1255 weggelassen. Seit dem baut sich die Socket-Verbindung auf.

    Kann einer bitte nur nochmal testen, dass der LBS "Verzögerung LBS16000112" nicht nur bei mir nicht tut?

    Danke für alles! und Grüße,
    Hardy

    EDIT: Kurzer Nachtrag bezüglich LBS16000112. Die Meldung bekomme ich lediglich beim Start von EDOMI (nicht beim tatsächlichen triggern). Ich habe als Fixwert in den Instanzen lediglich die Zahl in MS eingetragen (bspw. 5000) oder ein iKO vom Typ Variant mit der entsprechenden Zahl übergeben. Ich wäre mir aktuell keiner Schuld bewusst, lasse mich aber gerne eines besseren belehren!
    Zuletzt geändert von harry7922; 11.10.2020, 16:33.

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Zitat von starwarsfan Beitrag anzeigen
    Nur auf die Schnelle
    okay, das war wirklich schneller

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Zitat von harry7922 Beitrag anzeigen
    Zum einen scheint der LBS "Verzögerung LBS16000112" noch nicht für centos7 ausgelegt zu sein?
    Das kann ich mir kaum vorstellen. Kann es sein, dass mit deinem Input an diesem LBS etwas nicht stimmt?

    Zitat von harry7922 Beitrag anzeigen
    Des Weiteren nutze ich den LBS HEOS-Bridge 19001190 der eine Socket-Verbindung mit dem HEOS-Gerät aufzubauen versucht. Dafür habe ich den Port 1255 im Port-Mapping an Docker übergeben. Allerdings kann er den Socket nicht an die IP binden. Folgende Zeile schlägt fehl:
    $bind = socket_bind($sock, global_serverIP);
    Hier wird eine Socket Verbindung über die EDOMI IP mit Port 1255 aufgebaut. Ich bin zwar kein Docker Experte, aber es ist ja eine ausgehende Verbindung, d.h. eine Portweiterleitung sollte nicht nötig sein, bzw. blockiert den Port im Container. Einfach mal die Weiterleitung weglassen, denn die Verbindung wird ja vom Container aufgebaut und nicht vom Heos Gerät. Docker sollte doch dann das Mapping der Antwortpakete übernehmen. Würde ich zumindest erwarten.

    Einen Kommentar schreiben:


  • starwarsfan
    antwortet
    Hi

    Nur auf die Schnelle, bin unterwegs:
    • Das netsnmp Paket wird in der nächsten Version enthalten sein
    • Portmappings braucht man nur bei eingehenden Verbindungen. Wird die Verbindung aus dem Container heraus aufgebaut, also ausgehend, funktioniert das auch so.

    Einen Kommentar schreiben:


  • harry7922
    antwortet
    Hallo zusammen,

    ich bin gerade mit dem Versuch beschäftigt von einem dedizierten Server auf EDOMI in Docker auf einer Synology umzusteigen. Dabei habe ich aktuell zwei "Probleme"(neben dem, dass mein aktuelles Projekt das Paket noch php-snmp benötigen würde) wobei ich mich über Eure Expertenmeinung freuen würde.

    Zum einen scheint der LBS "Verzögerung LBS16000112" noch nicht für centos7 ausgelegt zu sein? Ich erhalte folgenden Eintrag im Fehler-Log :
    Datei: /usr/local/edomi/www/data/liveproject/lbs/LBS16000112.php | Fehlercode: 8 | Zeile: 6 | A non well formed numeric value encountered ERROR

    Des Weiteren nutze ich den LBS HEOS-Bridge 19001190 der eine Socket-Verbindung mit dem HEOS-Gerät aufzubauen versucht. Dafür habe ich den Port 1255 im Port-Mapping an Docker übergeben. Allerdings kann er den Socket nicht an die IP binden. Folgende Zeile schlägt fehl:
    $bind = socket_bind($sock, global_serverIP);
    Ich kann zwar Code lesen und nach meinen Bedürfnissen modifizieren, doch leider kenne ich mich bei Sockets etc. nicht aus. Daher stelle ich mir die Frage welche IP bei Docker als "global_serverIP" genommen wird und hier der LBS modifiziert werden müsste - oder ob ich den Container mit anderen Parametern starten müsste.
    Anbei ein Screenshot meiner aktuellen Einstellungen.

    docker-settings.JPG
    Danke für Euer Feedback!

    Grüße
    Hardy

    Einen Kommentar schreiben:


  • harry7922
    antwortet
    starwarsfan
    Hallo Yves,

    das Paket "net-snmp-utils" und "php-snmp" würde ich mir auch gerne wünschen wenn bald Weihnachten ist
    Zitat von givemeone Beitrag anzeigen
    Dürfte ich mir noch das Paket "net-snmp-utils" wünschen, denn ich benötige snmp-walk zum durchsuchen externer geräte.
    Danke und Gruß
    Hardy

    EDIT: Laut diesem Post https://knx-user-forum.de/forum/proj...18#post1328218 müsste php-snmp bereits vorhanden sein - scheint aber inzwischen (zumindest in Version 2.02) wieder rausgeflogen zu sein. Gibt es dafür einen Grund?

    Danke! Gruß
    Hardy
    Zuletzt geändert von harry7922; 11.10.2020, 08:55. Grund: php-snmp mit SSH nicht gefunden!?

    Einen Kommentar schreiben:


  • starwarsfan
    antwortet
    Hi

    Zitat von kamikazen Beitrag anzeigen
    wenn ich den amd64-latest lade und starte, mach der das bild wie es oben zu sehen ist.
    Dann solltest Du vielleicht mal lesen, wie der Container zu starten ist? Das ist nicht umsonst ausführlich beschrieben. Der Output da oben ist jedenfalls korrekt, da gibt's nichts auszusetzen.

    Einen Kommentar schreiben:


  • kamikazen
    antwortet
    wenn ich den amd64-latest lade und starte, mach der das bild wie es oben zu sehen ist.

    Einen Kommentar schreiben:

Lädt...
X