Ankündigung

Einklappen
Keine Ankündigung bisher.

eibd(war bcusdk) Fork -> knxd

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

  • mumpf
    antwortet
    Hi,

    ich hab es mal mit dem eibd versucht, da klappt das problemlos. Mein knxd-Rechner streikt zur Zeit, deswegen kann ich es da nicht testen. Aber gut zu wissen, dass es prinzipiell geht. Mir reicht für den Moment auch der eibd...

    Gruß, Waldemar

    Einen Kommentar schreiben:


  • MikeR
    antwortet
    Hallo zusammen,

    hab's probiert
    Code:
    knxtool mrestart ip:localhost 1.1.77
    bekomme aber ein
    Code:
    Read failed: Connection reset by peer
    Laufen tut der knxd bei mir auf einen Raspi. Evtl. ist auch beim Daemon-Start ein Parameter noch falsch und deswegen nimmt er die Befehöe nicht an
    Code:
    /usr/bin/knxd --Tunnelling --eibaddr=1.1.254 --client-addrs=1.1.230:24 --Name=MasterKNXD --Server=239.1.2.3:3671 --layer2=tpuarts:/dev/ttyKNX1
    Ich bekomme bei den meisten Kommandos für das knxtool (z.B. mprogmodestatus, maskver,...) die gleiche Fehlermeldung, vbusmonitor1 und ähnliche funktionieren aber.

    Habe neben dem Raspi mit knxd auch noch einen "echten" IP-KNX-Router. Allerdings läuft der Raspi-knxd ja auf einer anderen Multicast-Adresse (239.1.2.3), als der Standard.(224.0.23.12). Vielleicht hat es aber trotzdem damit was zu tun?

    LG
    Mike

    Einen Kommentar schreiben:


  • mumpf
    antwortet
    Cool, probiere ich heute Abend gleich aus!

    Danke für den Tipp!

    Gruß, Waldemar

    Einen Kommentar schreiben:


  • smai
    antwortet
    In eibd gab es dafür mrestart.
    Wenn ich den Wiki-Eintrag zu KnxTool richtig verstehe, gibt es das als Teil von knxtool immer noch.
    Der Aufruf müsste dann wohl in folgender Art sein:
    Code:
    knxtool mrestart ip:192.168.178.103 1.1.5

    Einen Kommentar schreiben:


  • mumpf
    antwortet
    Zitat von MikeR Beitrag anzeigen
    Kann ich (z.B. über das KNXTool) den Geräte-Neustart irgendwie programmgesteuert machen? Ohne händisch die ETS benutzen zu müssen? Ich habe nix gefunden, bin aber ja evtl. "betriebsblind".
    Das würde mich auch interessieren!

    Gruß, Waldemar

    Einen Kommentar schreiben:


  • wolder
    antwortet
    Hey Leute,

    Hat mal jemand probiert den KNXD auf einer Enigma2-Box zu installieren?
    Die "neuen" Vu+ 4K-Boxen basieren ja auf einen Arm-Prozessor und da sollte es doch eventuell möglich sein den knxd drauf zu installieren und zusätzlich noch die Smartvisu. Ne Weboberfläche/Webserver hat die Box ja bereits.

    Einen Kommentar schreiben:


  • MikeR
    antwortet
    Hi zusammen,

    mal eine "blöde" Frage: Ich habe einen Heizungsventilaktor, der manchmal irgendwie hängt. Sprich, nicht mehr auf Set-Telegramme zu reagieren scheint, und auch keinen Stellwert mehr schickt. Es geht dabei um das Zulaufventil meiner Fußbodenheizung. Passiert nur zwei- bis dreimal im Jahr, ist aber nervig. Ich helfe mir dann dadurch, das ich in der ETS das Gerät neu starte.
    Soweit das "Vorspiel", nun die Frage:

    Kann ich (z.B. über das KNXTool) den Geräte-Neustart irgendwie programmgesteuert machen? Ohne händisch die ETS benutzen zu müssen? Ich habe nix gefunden, bin aber ja evtl. "betriebsblind".

    Grüße aus Wiesbaden
    Mike

    Einen Kommentar schreiben:


  • Smurf
    antwortet
    Gar nicht.

    Im Zweifelsfall ist es für alle Beteiligten günstiger, wenn du dir ein neues Interface kaufst.

    Einen Kommentar schreiben:


  • Fromke
    antwortet
    Hallo,

    weiß jemand, wie man den EIBD auf einem Linux kernel 4.12 (Open suse 15) zum laufen bekommt. Den EIB habe ich übersetzt bekommen, jedoch habe ich die Kernelmodule nicht laden können. Version bcusdk 0.0.5 und bcu1driver-0.2.6.6.2.
    Leider funktioniert meine schnittstelle zum Powernet von Busch Jaeger nur über BCU1.

    Einen Kommentar schreiben:


  • Smurf
    antwortet
    Ja, die Datapoints muss man selber umrechnen, in KNX gibt es (noch; ist für 0.16 in Planung) keinen Code dafür.

    FHEM macht das so:

    Code:
                   my $sign = ($value <0 ? 0x8000 : 0);
                   my $exp  = 0;
                   my $mant = 0;
    
                   $mant = int($value * 100.0);
                   while (abs($mant) > 0x7FF)  
                   {
                           $mant /= 2;
                           $exp++;
                   }
                   $numval = $sign | ($exp << 11) | ($mant & 0x07ff);
    bzw. zurück
    Code:
                   $numval = hex($value);
                   my $sign = 1;
                   $sign = -1 if(($numval & 0x8000) > 0);
                   my $exp = ($numval & 0x7800) >> 11;
                   my $mant = ($numval & 0x07FF);
                   $mant = -(~($mant-1) & 0x07FF) if($sign == -1);
                   $numval = (1 << $exp) * 0.01 * $mant;
    9.008 kodiert ppm ("parts per million"), also 1200. Werte unter 0.01 kannst du mit dpt9 nicht speichern.

    Einen Kommentar schreiben:


  • rdorsch
    antwortet
    Hexcodierung tut und der ETS5 Gruppenmonitor zeigt die dekodierte Zahl an, damit komme ich zurecht.

    Leider "ignoriert" die Zehnder die Operation, aber dafür kann knxd vermutich nichts.

    Einen Kommentar schreiben:


  • rdorsch
    antwortet
    Wow...Antwort mit Lichtgeschwindigkeit, danke :-)

    Sieht für mich so aus, als müsste ich die float in hex-Werte von Hand umrechnen:

    else if (strcmp (prog, "groupwrite") == 0)
    {
    uchar lbuf[255] = { 0x0, 0x80 };

    if (ac < 4)
    die ("usage: %s url eibaddr val val ...", prog);
    con = open_con(ag[1]);
    dest = readgaddr (ag[2]);
    len = readBlock (lbuf + 2, sizeof (lbuf) - 2, ac - 3, ag + 3);
    if (len < 0)
    die ("Invalid hex bytes");

    if (EIBOpenT_Group (con, dest, 1) == -1)
    die ("Connect failed");

    len = EIBSendAPDU (con, 2 + len, lbuf);
    if (len == -1)
    die ("Request failed");
    printf ("Send request\n");

    }

    Muss ich das von Hand umrechnen (z.B. 800 ppm bei 9.008) oder gibt es da eine elegantere Methode? Kodiert der 2-Octet Float Value in dem Beispiel 1200 oder 0,0012 ?

    Danke und Gruß
    Rainer

    Einen Kommentar schreiben:


  • itarch
    antwortet
    statt groupSwrite, groupewrite anwenden ?!?

    Einen Kommentar schreiben:


  • rdorsch
    antwortet
    Hallo,

    ich habe hier

    rd@mohot:~$ knxd --version
    knxd 0.11.18
    rd@mohot:~$

    und ich kann zuverlässig auf den Bus schreiben

    rd@mohot:~$ knxtool groupswrite ip:127.0.0.1 2/1/0 0
    Send request
    rd@mohot:~$ knxtool groupswrite ip:127.0.0.1 2/1/0 1
    Send request
    rd@mohot:~$

    Das geht gut, solange die Gruppenadresse vom Typ 1.001 (bool) ist.

    Ich vermute, ich muss knxtool aber mitteilen, ob meine Gruppenadresse von einem anderen Typ, z.B. 9.008 (float) ist (in diesem Fall CO2-Sensor der Zehnder Lüftungsanlage: http://www.zehnder-systems.de/download/133748/47371.pdf ) (wohersoll knxtool das auch wissen?).

    Kann mir hier jemand sagen, was ich tun muss oder wo ich schauen muss?

    Im Code (knxtool.c) kann ich leider nicht viel finden:

    else if (strcmp (prog, "groupswrite") == 0)
    {
    uchar lbuf[3] = { 0x0, 0x80 };

    if (ac != 4)
    die ("usage: %s url eibaddr val", prog);
    con = open_con(ag[1]);
    dest = readgaddr (ag[2]);
    lbuf[1] |= readHex (ag[3]) & 0x3f;

    if (EIBOpenT_Group (con, dest, 1) == -1)
    die ("Connect failed");

    len = EIBSendAPDU (con, 2, lbuf);
    if (len == -1)
    die ("Request failed");
    printf ("Send request\n");
    }



    Danke und Gruß
    Rainer

    Einen Kommentar schreiben:


  • fuxl66
    antwortet
    Hallo,

    Ich bin zwar nicht sicher aber ich denke ich habe Probleme mit KNXD. Siehe Thread im Smarthome.py Bereich. Vielleicht hat jemand eine Idee dazu.

    Einen Kommentar schreiben:

Lädt...
X