Ankündigung

Einklappen
Keine Ankündigung bisher.

Featurewunsch: EnOcean plugin

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

    Hallo Alex,

    im enocean plugin gibt es ja ne methode für den Aktor FSB61/FSB71.

    Leider lässt sich der Aktor aktuell nur mit reinen Fahrzeiten steuern.
    ich würde gerne die Methode erweitern so dass man auch direkt Positionen ( 50% 20% etc.) anfahren kann.
    Würde dann bei funktionierender Umsetzung ein PR stellen.

    Ich denke mit Positionen kommt man im Alltag besser klar wie mit reinen Fahrzeiten, oder wer kennt schon für jeden seiner Rolladen die Zeit für 50%.

    Gibts schon Ideen dazu, oder Gedanken?

    Grüße

    Kommentar


      Gerne. Ich habe keinen Aktor zum Testen hier, würde kurz über den Code schauen und dann annehmen. Wie schon besprochen bitte kurze Pullrequests zu nur einem Feature stellen. Viele Grüße zurück

      Kommentar


        Hi,

        prima.
        Ich habe die Methode ja damals selbs umgesetzt, allerdings war mir nicht bewusst wie groß der Vorteil ist wenn man über Position steuert.
        Also Aktor habe ich, den nutze ich bereits seid Monaten im Prodiktivbetrieb.

        Dauert allerdings noch ein paar Tage. Bin im aktuell noch im Urlaub.

        Grüße
        Zuletzt geändert von Hasenradball; 03.06.2019, 16:06.

        Kommentar


          Hi

          Da mein Weinzierl Enocean Gateway spinnt habe ich mir mal so einen USB Stick mit TCM310 besorgt.

          dmesg sagt:

          Code:
          [264007.833335] usb 2-4: new full-speed USB device number 2 using xhci_hcd
          [264007.987228] usb 2-4: New USB device found, idVendor=0403, idProduct=6001, bcdDevice= 6.00
          [264007.987233] usb 2-4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
          [264007.987236] usb 2-4: Product: FT232R USB UART
          [264007.987238] usb 2-4: Manufacturer: FTDI
          [264007.987241] usb 2-4: SerialNumber: AU00T7XP
          [264008.003725] usbcore: registered new interface driver usbserial_generic
          [264008.003732] usbserial: USB Serial support registered for generic
          [264008.008690] usbcore: registered new interface driver ftdi_sio
          [264008.008699] usbserial: USB Serial support registered for FTDI USB Serial Device
          [264008.008735] ftdi_sio 2-4:1.0: FTDI USB Serial Device converter detected
          [264008.008759] usb 2-4: Detected FT232RL
          [264008.008927] usb 2-4: FTDI USB Serial Device converter now attached to ttyUSB0
          Also habe ich /dev/ttyUSB0 unter serialport für das enocean plugin eingetragen.
          Es gibt ja nur einen weiteren Parameter und das ist die tx_id. Laut Anleitung auf Git sollte das die Base-ID sein. Da es ein Pflichtparameter ist muss ich an dieser Stelle schon mal etwas eintragen. Da ich noch nicht weiß, was in meinem Fall die Base-ID des Adapters ist, habe ich FFFF4680 eingetragen.

          SHNG neu gestartet und das plugin ist aktiv.
          Weiter steht in der Anleitung, dass man die Base-ID herausfinden kann, indem man das Webinterface öffnet und dort steht sie unter ChipBaseID.
          Allerdings ist der Wert dort doch nur einfach das, was in der plugin.yaml steht (zumindest hat ein Versuch das gezeigt, als ich den Wert in der plugin.yaml geändert habe)? Woher weiß ich denn, dass die richtig ist?

          Als zweite Methode wird beschrieben, dass man bei Neustart von SHNG im Log nach enocean: Base ID = 0xYYYYZZZZ suchen soll. In den standard Logs steht nichts.
          Was muss ich wie genau aktivieren, damit ich das sehe? Oder ist das auch nur das, was in der plugin.yaml steht?

          Die Base-ID dieser Chips ist doch nicht immer FFFF4680?

          Bin grad ein wenig verwirrt und für jede Hilfe dankbar.

          SHNG Version ist 1.7.1.master und enocean plugin ist 1.3.4

          plugin.yaml ist trivial:

          Code:
          enocean:
              plugin_name: enocean
              serialport: /dev/ttyUSB0
              tx_id: FFFF4680

          Kommentar


            Hallo @Sipple,

            Wenn du in der plugin.yaml für die tx id = 0 angibst, wird diese beim Start automatisch ausgelesen und als Info ins logfile geschrieben. Zusätzlich kannst du sie im Webinterface sehen. Für das Logfile musst du in der logger.yaml für das Enocean plugin das Loglevel Info konfigurieren.

            Viele Grüße

            Kommentar


              Guten Abend

              aschwith

              Ach so einfach Danke für den Tipp, wäre prima wenn das noch in die Anleitung käme.

              Gruß, Martin

              Kommentar


                Sipple , done. Ich habe die Doku im Develop etwas erweitert.

                Viele Grüße

                Kommentar


                  Kommentar


                    Hallo Alex,

                    ich würde gerne im enocean plugin den bereits vorhandenen Rolladenaktor erweitern, so dass er auch die Position zurückmeldet.
                    Dazu muss man aber unterscheiden, ob der Rolladen komplett oder nur in eine Teilstellung gefahren wurde.

                    Wie Du unten (Bild) siehst benötige ich für dieses Item dann zwei eep Profile.
                    Das erste org = 0x05 gibts ja bereits.
                    Das zweite eep Profil anzulegen wäre im Prinzip auch keine Problem.
                    Jedoch stellt sich die Frage
                    Wie gehe ich in einem Item mit zwei eep's um?

                    Kann ich in einem Item auch zwei <enocean_rx_eep> verwenden?

                    Folgende Punkte würde ich gerne umsetzen:
                    1.) ermitteln der Position --> dazu brauche ich die Rückmeldung aus 2 eep's
                    2.) im nächsten Schritt würde ich dann auch umsetzen, dass ich dierekt die Position vorgeben kann.


                    Kannst Du da weiterhelfen?

                    Grüße
                    Frank


                    Das item sieht derzeit so aus:
                    shutter:
                    remark: Eltako FSB14, FSB61, FSB71 - actor for Shutter
                    type: str
                    enocean_rx_id: 1A869C3
                    enocean_rx_eep: F6_02_03_01
                    enocean_rx_key: STATUS
                    move:
                    type: num
                    enocean_tx_eep: A5_3F_7F
                    enocean_tx_id_offset: 0
                    enocean_rx_key: B
                    # runtime Range [0 - 255] s
                    enocean_rtime: 60
                    # block actuator
                    block_switch: 'True'
                    enforce_updates: 'True'
                    cache: 'True'
                    visu_acl: rw
                    struct: uzsu.child

                    Unbenannt.PNG
                    Angehängte Dateien

                    Kommentar


                      Hallo Frank,

                      das Enocean plugin macht immer ein Mapping eines Items zu genau einer EEP. Oder genauer: zu einem Signal in einer EEP. Das sollten wir so auch beibehalten. Genau das und nicht mehr definiert auch der Enocean Standard.

                      Wenn Du Dir Informationen aus mehrerern EEPs zusammen bauen willst - was ja durchaus auch Sinn macht - schlage ich vor, dies über benutzerdefinierte Hilfsitems (per eval) oder aber einer Logik zu machen. Damit lässt sich Deine Fragestellung ja lösen.

                      Viele Grüße
                      Alex

                      Kommentar


                        Hallo Alex,

                        vielen dank für Deine schnelle Antwort.
                        Passt für mich.
                        gehtst Du mit wenn ich den obigen RolladenAktor für den Fall 2 unter der EEP A5-11-03 anlege?

                        Grüße
                        Frank

                        Kommentar


                          eine Frage noch...
                          wo werden die folgenden dateien generiert?
                          Code:
                          item.conf
                          eep_item.conf
                          id_item.conf

                          Kommentar


                            Hallo Fank,

                            was ist den bei Dir Fall 2? Das ist mir nicht klar.

                            EEP A5-11-03 ist ein offizielles Enocean EEP. Das sieht mir nicht passend aus. Es sieht so aus, als würde sich Eltako mal wieder ein eigenes pseudo EEP zusammenbauen. Ich finde auf die Schnelle auch kein Enocean EEP, welches die Fahrzeit etc. wie oben angegeben enthält.

                            Falls wir kein passendes offizielles Enocean EEP finden, welches zu den Eltako Signalen passt, sollten wir in einem neuen Wertebereich Custom EEP Anlegen und die so auch dokumentieren. Vorschlag, z.B. XX-01-01

                            VG
                            Alex

                            Kommentar


                              Hallo Alex,

                              also Fall 1 wäre:
                              der Aktor wird getriggert, dre liefert wie oben angegeben die Daten unter ORG = 05 zurück (Endlage oben/unten, Fahrtrichtung). Die Endlage kommt jedoch nur wenn der Aktor bis zur angegebenen Zeit fährt.


                              der Fall 2:
                              ist die Rückmeldung wenn der Aktor während der Fahrt gestoppt wird. Dann wird unter ORG = 07 => anderes EEP LEIDER!!! die Fahrzeit in 100 ms zurückgemeldet und in welche Richtung der Rolladen gefahren ist. (siehe obiges Bild Beitrag 189).

                              Den Fall 1 habe ich bisher unter EEP F6_02_03_01 angelegt, aber wie Du sagst wäre es sinnvoll beide EEPs in diesem Fall als Custom EEP anzulegen, denn wenn man die Position sinnvoll ermitteln will müsste man die Infos aus beiden EEPs verheiraten.

                              Wir können gerne das F6_02_03_01 umbenennen und zwei Customs anlegen. Oder gibt es die Möglichkeit dass bei ORG = 05 und ORG =07 jedesmal das gleiche EEP aufgerufen wird?

                              Grüße
                              Frank

                              Kommentar


                                Wie bereits gesagt, das "verheiraten" zweier EEPs ist nicht Aufgabe der Plugins sondern muss von Dir separat (in einer Logik o.Ä.) gelöst werden.

                                Du musst zwei separate EEPs implementieren, die vom Plugin anhand ihres ORGs (oder auch choice) genannt, identifiziert werden.

                                Org = 0x05 steht für EEPs beginnent mit F6_XX_YY.

                                Org = 0x07 steht für EEPs beginnent mit A5_XX__YY.

                                Bei der Wahl von XX_YY bitte an die offizielle Enocean EEP halten, sofern die Nachrichteninhalte passen. Falls Eltako dort wieder ein "eigenes" Ding durchzieht, definierst Du hier einfach eine benutzerdefinierte EEP. Dann muss der Funktionswert (2. Wert) größer als 0xFF sein. Also z.B. A5_GG_01.

                                Grüße

                                Kommentar

                                Lädt...
                                X