Ankündigung

Einklappen
Keine Ankündigung bisher.

Nachhilfe in Xtend --> HexString zu String

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

    Nachhilfe in Xtend --> HexString zu String

    Um meine KWL zu steuern muss ich quasi binär per serieller Schnittstelle schreiben. Die Befehle habe ich als HexString vorliegen.

    Allerdings bekomme ich es nicht hin, sie richtig zu senden, da xtend bockig ist

    Code:
    	var commandHex = ""
    	var commandString = ""
    	
    	if(kwlOnOff.state == ON) {
    		commandHex = "012020a38165012010a38155012011a3815656"
    	} else {
    		commandHex = "012020a38064012010a38054012011a3805555"
    	}
    	
    	var i = 0;
    	
    	while(i < commandHex.length()) {
            val str = commandHex.substring(i, i+2);
            commandString = commandString + (Integer::parseInt(str,16).intValue() as char)
            i = i+2
        }
        
    	
    	logDebug("kwl", commandString);
    	kwl.sendCommand(commandString)
    Das Casten von int zu char schlägt fehl: Cannot cast java.lang.Integer to char
    Hat jemand Tipps hierzu parat?

    Leider gibt es m. E. keinen anderen Weg zur Umwandlung. Byte::ParseByte will nicht funktionieren, da es nur signed Werte erwartet. Von Hand umzurechnen auf diese Darstellung habe ich keine Lust

    Am liebsten wäre es mir, wenn das SerialBinding auch binär arbeiten könnte und man ByteArray bekommen würde. Ich weiß aber nicht ob ByteArray überhaupt ein möglicher Typ in Openhab ist.


    Danke,

    Christoph

    #2
    Hallo.

    Wenn ich das richtig verstehe, möchtest Du bei
    Code:
    commandHex = "414243"
    die Ascii-Zeichen 'A', 'B' und 'C' an die Schnittstelle senden.

    Mit Xtend kann ich Dir leider nicht weiterhelfen, aber es gibt eine "Java-Only"-Variante, mit der man das erreichen kann. Nicht schön, aber es tut:

    Code:
        var commandHex = "414243"
        var command = ""
    
        var i = 0
        while (i < commandHex.length) {
            val hexSubstring = commandHex.substring(i, i+2)
            val intValue = Integer::parseInt(hexSubstring, 16)
            val strValue = String::valueOf(Character::toChars(intValue))
            command = command + strValue
            i = i+2
        }
    
        logInfo("test", command)
    Gruß,
    Martin

    Kommentar


      #3
      Danke für deine Hilfe.

      Allerdings habe ich mir inzwischen ein heliosbinding geschrieben. Die nächsten beiden Wochen habe ich Urlaub, dann werde ich es fertigstellen und einchecken, damit alle etwas davon haben.


      Grüße,

      Christoph

      Kommentar


        #4
        Zitat von Quallo Beitrag anzeigen
        Allerdings habe ich mir inzwischen ein heliosbinding geschrieben. Die nächsten beiden Wochen habe ich Urlaub, dann werde ich es fertigstellen und einchecken, damit alle etwas davon haben.
        prima :-)

        Solltest Du noch weitere Unterstützung brauchen, melde Dich (am besten auf der Google-Group).

        Gruß,

        Thomas E.-E.
        Visualisierung, Rule/Logic-Engine, Integrationsplattform mit openhab (Supportforum)

        Kommentar


          #5
          Das Ganze läuft soweit gut im Test.

          Ich werde allerdings versuchen noch Unterstützung für den Sommer- / Winterbypass und evtl. noch ein paar Funktiönchen extra einzubauen. Habe auch schon überlegt den Helios-RS232 Teil in eine extra Bibliothek (Jar) auszulagern, damit ggf andere Projekte auch davon profitieren können.

          Vielleicht kommt es noch pünktlich zur 1.4. Für wann ist das Release geplant?

          Kommentar


            #6
            Hi,

            Zitat von Quallo Beitrag anzeigen
            Habe auch schon überlegt den Helios-RS232 Teil in eine extra Bibliothek (Jar) auszulagern, damit ggf andere Projekte auch davon profitieren können.
            jo, dass kann sich lohnen. Ein Github-Repo ist immer schnell angelegt :-)

            Zitat von Quallo Beitrag anzeigen
            Vielleicht kommt es noch pünktlich zur 1.4. Für wann ist das Release geplant?
            es gibt noch keine konkrete Planung, da wir aktuell mit der Initialisierung des Eclipse SmartHome Projekts beschäftigt sind. ESH soll Anfang des kommenden Jahres erscheinen. Sobald es konkrete Termine für openHAB gibt, werden wir die auch verbreiten (Email, Twitter, G+).

            Gruß,

            Thomas E.-E.
            Visualisierung, Rule/Logic-Engine, Integrationsplattform mit openhab (Supportforum)

            Kommentar


              #7
              Hallo Christoph,

              wie ist denn der stand des Helios Bindings? Ich habe mir die 1.4 Binding Liste angeschaut - leider ohne Erfolg.

              Wäre daran interessiert meine Helios KWL EC 500 an OH anzuschliessen. Wie hast du denn den connect zu OH realisiert? Mit welcher HW? Gibts dazu ein Wiki?

              Danke und Grüsse
              Karsten

              Kommentar


                #8
                Hallo Karsten,

                leider habe ich es nicht mehr geschafft das in den 1.4 Stand einzubringen.

                Ich habe einen RS232 zu RS485 Konverter an meinem Raspberry mit ComPi Erweiterung.

                Es sollte aber auch mit jedem anderen Rechner mit RS232 klappen (Basis war das RS232 Binding). Wenn Du im programmieren halbwegs fit bist kann ich Dir gerne den Code zukommen lassen, so dass Du ihn in die 1.4 integrieren kannst.
                Als Zwischenziel hatte ich mir noch vorgenommen den Helios Part herauszuziehen und als kleines Projekt auf GitHub zu schmeissen so dass auch andere (Java-)basierte Projekte einen Nutzen davon haben.
                Ich werde vor Mitte des Jahres wohl nicht mehr dazu kommen...

                Erstmal solltest Du aber herausfinden, ob die Helios 500 genauso angesteuert wird wie die 300. Davon würde ich aber erstmal ausgehen, aber man weiß ja nie...

                Kurze rechtliche Frage: darf ich einfach so Code weitergeben, der auf openhab basiert oder muss ich das aus Lizenzgründen über das offizielle RePo laufen lassen?


                Grüße,

                Christoph

                Kommentar


                  #9
                  Hallo Christoph,

                  was ich in den Foren gelesen habe sieht es gut aus was die Nutzung mit der Helios 500 angeht.

                  Ich habe mir die ComPi Erweiterung mal bestellt. Bin mir aber noch nicht ganz im klaren über den RS232/ RS485 Konverter. da ich den gerne auf die Hutschiene packen würde (wie z.B. http://www.amazon.de/ROLINE-Konverte.../dp/B008L91W5O). Aber zum testen einfach zu teuer - deswegen erst mal ein billiger vom kollegen ebay.

                  Was muss ich denn an programierkenntnissen haben? Ich habe zumindestens keine Java/ Maven entwicklungsumgebung am laufen.

                  Danke und Grüsse
                  Karsten

                  Kommentar


                    #10
                    Für 232 --> 485 habe ich ein einfaches China Gerät genommen. Ist aber auch nicht im Schaltschrank sondern im Multimediaschrank...

                    Ich habe meinen derzeitigen (noch sehr dürftigen aber für mich funktionierenden) Stand mal als zip angehängt.
                    Wie gesagt, dass muss evtl. noch auf 1.4 bzw. 1.5 angepasst werden und der Helios Teil sollte rausgezogen werden.
                    Lizenzen und Kai Kreuzer als Autor habe ich mal drin gelassen, da wie gesagt noch ein paar Codezeilen auf dem Serial Binding basieren.

                    Es gibt glaube ich ein Tutorial How To Implement a Binding. Vielleicht kann das ein Startpunkt für dich sein.


                    Grüße,

                    Christoph

                    P.S.:
                    Code:
                    ############################### Helios Binding #######################################
                    # Helios KWL serial port
                    helios:port=/dev/ttyAMA0
                     
                    # Helios KWL remote adress
                    helios:remoteaddress=32
                    Angehängte Dateien

                    Kommentar


                      #11
                      Hallo Christoph,

                      ok - ich habe nun alle HW bestellt und auch mal einen request ins englische OH Forum gepostet ob da interesse besteht an so einem binding - und eventuell jemand unterstützen kann in der Fertigstellung.

                      Hast du die Doku welche Funktionen über RS484 angestossen/ bzw welche Werte abgefragt werden können? Dann könnte das evtl komplett gemacht werden.

                      Im POM.XML habe ich gesehen das du das binding für 1.3.1 geschrieben hast - kannst du evtl mit das JAR file für den addon folder zukommen lassen?

                      Danke
                      Karsten

                      Kommentar

                      Lädt...
                      X