Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. syryna

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    S
    • Profile
    • Following 0
    • Followers 0
    • Topics 0
    • Posts 13
    • Best 0
    • Groups 1

    syryna

    @syryna

    0
    Reputation
    6
    Profile views
    13
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    syryna Follow
    Starter

    Latest posts made by syryna

    • RE: Material Design Widgets: Calendar Widget

      @Scrounger

      Erstmal vielen Dank für deine Tollen UI Widgets. Durch dich ist sogar ein Laie wie ich fähig ein UI zusammenzubsateln. Tolle Arbeit !

      Ich hätte jedoch noch 2 Wünsche:

      calendar_widget.png

      1. Der Rot markierte Bereich läßt sich nicht färben. Vermutlich geht es über CSS aber da wäre ebenfalls eine Einstellung gut. ich nehme an es ist follende Klasse: class="v-calendar-daily__scroll-area".
        -> Korrektur: die Klasse alleine reicht nicht aus. dann wird der untere Teil schwarz, nicht aber die Scrolbar und ebenfalls nicht der schmale Balken oberhalb der Scrollbar. Ich schätze mal am besten wäre das Scrollen zu deaktivieren. Bei mir gäbe es nichts zu scrollen.

      2. Wäre es möglich parallele Termine nicht überlappend anzuzeigen sondern nebeneinander?
        -> Korrektur: Das geht schon mit Modusüberlappung : Column

      Grüße, Micha

      posted in Visualisierung
      S
      syryna
    • RE: Test Adapter EnOcean v0.3.x

      Hi Jey Cee,

      die neue EEP mit der Variante for den FSB61NP sind fertig. Ich habe einen pull-request gestellt. Ich habe nun doch mal in der main.js Zeile 252 das entfernt:

      .toString(16)
      

      vom lastCMD.

      So sieht das Ergebnis aus:

      ~~![](</s><URL url=)https://snag.gy/tEb07u.jpg" />

      Umd so die Werte:

      ~~![](</s><URL url=)https://snag.gy/Gx6s90.jpg" />

      Und so das log:

      ~~![](</s><URL url=)https://snag.gy/Mbavc2.jpg" />

      ABER, ganz wichtig da musst du nochmal schauen.

      Die 'A5' Messages sind ja BS4 und da greift meine Logik, sie werden verwendet um die Aktion des Aktors zurückzugeben (Responses):

      • Laufzeit MSB ->>>> Y x 100ms

      • Laufzeit LSB ->>>> Z x 100ms

      • letzte Aktion: 1/2 für nach oben und nach unten

      • lock: 10/14 für nicht blockiert / blockiert

      Die 'F6' Messages sind ja RPS und zeigen dem Status des Aktors an, zum Beispiel wenn er den Befehl bekommen hat nach oben oder unten zu fahren:

      • Status: fahre hoch / fahre runter / Endposition Oben erreicht / Endposition unten erreicht.

      Leider sind die 'lila' markierten Bereiche in den Screenshots nicht funktionafähig. Das betrifft genau diese Type 1 Messages (RPS / F6). Scheinbar werden da unserer xx-xx-xx.js Files nicht gerufen.

      Kannst du mal nachsehen? Ich kann das nach einem Fix natürlich testen.

      Habe die Logik dafür eigentlich drin:

      case 'f6': // RPS Message - command to Actor
            retValue = {
              "status": DataPayLoad["byte0"]
            };
            break;
      

      Der Aufbau ist wie folgt:

      enocean.0 2019-01-04 17:22:49.052 debug Message for ID 0183e523 has been received.

      enocean.0 2019-01-04 17:22:49.052 debug Packet type: 1

      enocean.0 2019-01-04 17:22:49.051 debug Received raw message: 55000707017af6700183e5233003ffffffff5500

      enocean.0 2019-01-04 17:21:48.760 debug Message for ID 0183e523 has been received.

      enocean.0 2019-01-04 17:21:48.760 debug Packet type: 1

      enocean.0 2019-01-04 17:21:48.759 debug Received raw message: 55000707017af6010183e5233003ffffffff5200

      Von unten:

      1.) es kommt eine message die besagt 'hochfahren' (01): 55000707017af6010183e5233003ffffffff5200

      2.) nach einer im Aktor eingestellten Zeit (bei mir 1 min) schick tder Aktor eine Nachricht 'endposition oben erreicht' (70): 55000707017af6700183e5233003ffffffff5500

      -> die will ich noch auswerten können, verstehe aber nicht warum das nicht bei mir ankommt im Script. Es ist do wie die anderen Messages eine Type 1?

      Grüße, Michael~~~~~~

      posted in Tester
      S
      syryna
    • RE: Test Adapter EnOcean v0.3.x

      da fällt mir gerade ein, das könnte doch ein Grund sein für meine Nachrichten die scheinbar nicht ankommen.

      Wäre es möglich dass durch eine solche Nachricht mit dem 'undefined' Wert der Adapter abstürtzt und neu gestartet wird durch ioBroker? Wenn dem so wäre dann ist das genau der Zeitraum zwischen der Exception und dem hochfahren des Adapters wo natürlich keine Nachrichten mitgeloggt werden können.

      Grüße, Michael

      posted in Tester
      S
      syryna
    • RE: Test Adapter EnOcean v0.3.x

      Hallo Jey Cee,

      komme mir echt etwas doof vor wenn ich laufend frage. Aber es geht immerhin langsam voran und ich will nicht aufgeben sondern hoffe wenn ich endlich mal Debugausgaben hinbekomme dass ich auch einen Mehrwert zurückgeben kann.

      Ich habe mit nun Webstorm installiert auf dem Rechner auf dem auch der USB300 angeschlossen ist, denn nur dort kann ich ja testen. Es macht also keinen Sinn auf meinem Windows Rechner eine Testinstallation von ioBroker zu installieren.

      Daher habe ich schon mal das Problem dass meine 'Entwicklungs'-Version vom iobroker.enocean auf meinem Windows PC liegt mit Verbindung zu Git, aber nach jeder kleinen Änderung muss ich das ins Git hochladen damit ich dann auf dem Linux Rechner das Git Archive runterladen und starten kann.

      -> Etwas kompliziert, habe aber keine bessere Lösung gefunden. Schöner wäre ich könnte das Git Repo direkt in die ioBroker installation einbinden weiß aber nicht wie das geht.

      Aber neben dem umständlichen Entwicklungsumgebung mit der ich noch leben kann komme ich aber mit dem Debugger nicht zu recht und mache alles über die Konsolenausgabe.

      Ich habe den Adapter per default im ioBroker deaktiviert, so dass ich ihn manuell im WebStorm starte kann. Ich kann dann in der IDE den Adapter enterweder starten per 'RUN' oder im Debugger starten per 'Debug enocean'.

      Wenn ich nur mittels 'run' den modifizierten Adapter starte bekomme ich nun die Konsolen Ausgabe zu Gesicht, ein erster Erfolg :-P:

      ~~![](</s><URL url=)https://snag.gy/mfAJBu.jpg" />

      Wie du siehst habe ich zwei Konsole Ausgaben und je zwei Dateien.

      1.) in deiner Original datei F6-02-01 in header bei den Konstanten:````
      console.log("original file");

      2.) in deiner Original datei F6-02-01 im module.export block:````
      console.log("RORG: '" + telegram.type + "'" + " datafield: '" + dataField  +"'");
      

      3.) in meiner datei A5-3F-7F in header bei den Konstanten:````
      console.log("michas file");

      4.) in meiner datei A5-3F-7F im module.export block:````
      console.log("RORG_HEX: '" + RORG + "'" + " RORG: '" + telegram.type + "'");
      

      im Bild oben sieht man dass sowohl meine als auch deine datei beim starten durchlaufen wird und die Kommentare "original file" und "michas file" ausgegeben werden.

      Wenn ich jetzt einen deiner Taster betätige und damit dein file greift passiert folgendes:

      RORG: '246' datafield: '0'
      RORG: '246' datafield: '112'
      RORG: '246' datafield: '0'
      

      Das heisst ist komme ich einen module.export block und die Ausgabe erfolgt.

      Die Log Ausgabe im ioBroker dazu sehen so aus:

      enocean.0	2019-01-04 12:00:16.734	debug	else: B0
      enocean.0	2019-01-04 12:00:16.733	debug	else: BI
      enocean.0	2019-01-04 12:00:16.733	debug	else: A0
      enocean.0	2019-01-04 12:00:16.733	debug	else: AI
      enocean.0	2019-01-04 12:00:16.733	debug	variables to set : {"AI":false,"A0":false,"BI":false,"B0":false}
      enocean.0	2019-01-04 12:00:16.733	debug	Message for ID feff5e0c has been received.
      enocean.0	2019-01-04 12:00:16.732	debug	Packet type: 1
      enocean.0	2019-01-04 12:00:16.731	debug	Received raw message: 55000707017af600feff5e0c2003ffffffff4f00
      enocean.0	2019-01-04 12:00:16.508	debug	else: B0
      enocean.0	2019-01-04 12:00:16.508	debug	variables to set : {"B0":true}
      enocean.0	2019-01-04 12:00:16.507	debug	Message for ID feff5e0c has been received.
      enocean.0	2019-01-04 12:00:16.507	debug	Packet type: 1
      enocean.0	2019-01-04 12:00:16.506	debug	Received raw message: 55000707017af670feff5e0c3003ffffffff5200
      enocean.0	2019-01-04 12:00:04.581	debug	else: B0
      enocean.0	2019-01-04 12:00:04.581	debug	else: BI
      enocean.0	2019-01-04 12:00:04.581	debug	else: A0
      enocean.0	2019-01-04 12:00:04.580	debug	else: AI
      enocean.0	2019-01-04 12:00:04.580	debug	variables to set : {"AI":false,"A0":false,"BI":false,"B0":false}
      enocean.0	2019-01-04 12:00:04.580	debug	Message for ID feff5e0c has been received.
      enocean.0	2019-01-04 12:00:04.580	debug	Packet type: 1
      enocean.0	2019-01-04 12:00:04.579	debug	Received raw message: 55000707017af600feff5e0c2003ffffffff4400
      

      Jetzt betätige ich meinen Aktor und damit sollte meine Datei und meine Debug Ausgabe erfolgen, aber es passiert folgendes:

      1 0
      Data length: 1 Optional length:0
      1 0
      Data length: 1 Optional length:0
      RORG: '165' datafield: '0'
      1 0
      Data length: 1 Optional length:0
      1 0
      (node:345) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'toString' of undefined
          at handleType2Message (/opt/iobroker/node_modules/iobroker.enocean/main.js:252:84)
          at parseMessage (/opt/iobroker/node_modules/iobroker.enocean/main.js:367:13)
          at esp3parser. <anonymous>(/opt/iobroker/node_modules/iobroker.enocean/main.js:544:13)
          at emitOne (events.js:116:13)
          at esp3parser.emit (events.js:211:7)
          at addChunk (_stream_readable.js:263:12)
          at readableAddChunk (_stream_readable.js:250:11)
          at esp3parser.Readable.push (_stream_readable.js:208:10)
          at esp3parser.Transform.push (_stream_transform.js:147:32)
          at esp3parser._transform (/opt/iobroker/node_modules/iobroker.enocean/parser/parser.js:35:20)
      (node:345) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
      (node:345) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.</anonymous> 
      

      Die Log Ausgabe im ioBroker sieht dazu so aus:

      enocean.0	2019-01-04 12:06:37.745	debug	Packet type: 2
      enocean.0	2019-01-04 12:06:37.744	debug	Received raw message: 55000100026500
      enocean.0	2019-01-04 12:06:36.542	debug	Message for ID 0183e523 has been received.
      enocean.0	2019-01-04 12:06:36.541	debug	Packet type: 1
      enocean.0	2019-01-04 12:06:36.540	debug	Received raw message: 55000707017af6020183e5233003ffffffff5500
      enocean.0	2019-01-04 12:06:36.056	debug	Response for command CO_WR_SECUREDEVICE_ADD return code: RET_OK
      enocean.0	2019-01-04 12:06:36.056	debug	Packet type: 2
      enocean.0	2019-01-04 12:06:36.055	debug	Received raw message: 55000100026500
      enocean.0	2019-01-04 12:06:30.286	debug	variables to set : {}
      enocean.0	2019-01-04 12:06:30.285	debug	Message for ID 0183e523 has been received.
      enocean.0	2019-01-04 12:06:30.285	debug	Packet type: 1
      enocean.0	2019-01-04 12:06:30.284	debug	Received raw message: 55000a0701eba50010010a0183e5230003ffffffff5300
      enocean.0	2019-01-04 12:06:29.914	debug	Response for command undefined return code: RET_OK
      enocean.0	2019-01-04 12:06:29.914	debug	Packet type: 2
      enocean.0	2019-01-04 12:06:29.913	debug	Received raw message: 55000100026500
      enocean.0	2019-01-04 12:06:28.779	debug	Message for ID 0183e523 has been received.
      enocean.0	2019-01-04 12:06:28.779	debug	Packet type: 1
      enocean.0	2019-01-04 12:06:28.778	debug	Received raw message: 55000707017af6010183e5233003ffffffff5200
      

      Das eine Signal zum hochfahren und stop kam an daher auch die Ausgabe: RORG: '165' datafield: '0'

      Runterfahren und Stop führt aber zu einem Dump. Zeile 245ff in main.js

      function handleType2Message(espPacket) {
          const telegram = new ResponseTelegram(espPacket);
          let retCode = telegram.data[0];
          let resp = telegram.dataLength + ' ' + telegram.optionalLength;
          console.log(resp);
          switch(resp){
              case '1 0':          //Standard Response
                  adapter.log.debug('Response for command ' + returnCommonCMD(lastCMD[0].[color]toString(16)[/color]) + ' return code: ' + returnResponse(retCode.toString(16)));
                  lastCMD.splice(0, 1);
      

      Ich glaube es liegt an diesen Responses:

      enocean.0 2019-01-04 12:06:29.914 debug Response for command undefined return code: RET_OK

      enocean.0 2019-01-04 12:06:29.914 debug Packet type: 2

      enocean.0 2019-01-04 12:06:29.913 debug Received raw message: 55000100026500

      Warum es in manchen Fällen geht und in manchen nicht verstehe ich ehrlich gesagt nicht. Ich habe mal testweise die HEX-Konvertierung bei mir rausgenommen:

      adapter.log.debug('Response for command ' + returnCommonCMD(lastCMD[0]) + ' return code: ' + returnResponse(retCode));
      

      Dann scheint es zu gehen:

      Data length: 1 Optional length:0
      RORG: '165' datafield0: '0' datafield1: '16' datafield2: '2' datafield3: '10'
      1 0
      Data length: 1 Optional length:0
      1 0
      Data length: 1 Optional length:0
      RORG: '165' datafield0: '0' datafield1: '18' datafield2: '1' datafield3: '10'
      1 0
      Data length: 1 Optional length:0
      1 0
      Data length: 1 Optional length:0
      RORG: '165' datafield0: '0' datafield1: '20' datafield2: '2' datafield3: '10'
      

      -> ich glaube das musst du bei dir ändern, will nicht an deinem Haupt-Coding rumspielen.

      Was den Debugger angeht so kann ich breakpoint setzen 'vor' dem module.export Blöcken und bekomme dann auch im Debuffer schöne Ausgabe der Variablen, sobald ich aber innerhalb der module.exports Block einen Breakpoint setze (was ja das interessante wäre da da die Logik drin ist) bekomme ich im Debugger folgende meldung:

      (node:1032) [INSPECTOR_ASYNC_STACK_TRACES_NOT_AVAILABLE] Warning: Warning: Async stack traces in debugger are not available on 32bit platforms. The feature is disabled.
      

      Ich verstehe nicht warum, wenn du einen Tipp hast wäre ich dankbar ansonsten mache ich weiter mit Konsolenausgaben.

      Grüße, Michael~~

      posted in Tester
      S
      syryna
    • RE: Test Adapter EnOcean v0.3.x

      Hallo Jey Cee,

      ich hab mich da voll verrannt, Die Ausgabe im Log ist gar nicht von mir sondern von dir aus der main.js

      Sprich ich weiß aktuell gar nicht ob meine a5-3f-7f.js aufgerufen wird.

      Zu Testzwecken habe will ich Debug Ausgabe einbauen und mir die Werte im Log vom iobroker anzeigen lassen. Aber console.log ergibt keine Ausgabe in den Entwicklertools vom Chrome. Also entweder kann ich console.log hier nicht nehmen oder ich mach was grundlegend falsch. Eventuell komme ich ja nichtmal bis zu meiner JS und daher auch keine Ausgabe.

      In der Main.js sehe ich die machst deine Ausgabe so damit sie im ioBroker Log zu finden ist:

      adapter.log.debug('variable to set: ' + key);
      

      Kann ich das auch so verwenden?

      Ich will also erstmal sehen ob ich überhaupt in meinm JS file lande und dann nach und nach die Werte der Bytes und des Typs und Status ausgeben. Soweit komme ich jedoch nicht.

      Es könnte auch sein das mein Verweis in der eepInclude.js nicht vernünftig ist, daher wollte ich mal sehen wo der eepInclude.js Verwendung findet, aber konnte das auch bislang nicht finden, hätte vermutet die main.js oder eben die esp3Packet.js wurde darauf verweisen.

      Sorry für die vielen Anfängerfragen aber für einen Neuling in einen vorhandenen Adapter einzusteigen ist schwierig. Vielleicht hätte ich erstmal einen kleinen Adapter selbst schreiben sollen um den Aufbau besser zu verstehen.

      Grüße, Michael

      posted in Tester
      S
      syryna
    • RE: Test Adapter EnOcean v0.3.x

      Hallo Jey Cee,

      ich habe nun angefangen die Logik für den Aktor zu bauen, aktuell nur mit Testausgabe der Daten:

      https://github.com/syryna/ioBroker.enoc … master/eep

      bzw.

      https://github.com/syryna/ioBroker.enoc ... 5-3f-7f.js

      habe ebenfalls die anderen Files angepasst:

      EEP2IOB.json

      devices.json

      eepInclude.js

      Das Objekt ist drin und hat ein Empfangssignal:

      ~~![](</s><URL url=)https://snag.gy/Fg2EkJ.jpg" />

      Auch die Testausgabe im LOG scheint zu gehen, woher die else Zeilen kommen muss ich noch rausfinden.

      enocean.0 2019-01-02 00:03:02.126 debug else: status

      enocean.0 2019-01-02 00:03:02.125 debug else: data

      enocean.0 2019-01-02 00:03:02.125 debug else: type

      enocean.0 2019-01-02 00:03:02.125 debug variables to set : {"type":165,"data":{"type":"Buffer","data":[0,6,1,10]},"status":0}

      enocean.0 2019-01-02 00:03:02.125 debug Message for ID 0183e523 has been received.

      enocean.0 2019-01-02 00:03:02.125 debug Packet type: 1

      enocean.0 2019-01-02 00:03:02.114 debug Received raw message: 55000a0701eba50006010a0183e5230003ffffffff4f00

      Ich muss nur aufhören die Frau nervt schon weil die Rollos immer hoch und runter fahren, ich mach morgen weiter und versuche die Daten entsprechend in die Felder zu schreiben.

      Einen Tipp brauch ich noch: Eigentlich wollte ich die Felder im ioBroker wie folgt konfigurieren:

      "FSB61NP": {
              "devName": "Universal",
              "iobObjects": [
                {"id": "data1","common.name": "runtime MSB","common.type": "number","common.min": "0","common.max": "16777215","common.def": "0",
                  "common.role": "value", "common.states" : "", "common.read": "true", "common.write": "false", "common.unit": "100ms"},
                {"id": "data1","common.name": "runtime LSB","common.type": "number","common.min": "0","common.max": "16777215","common.def": "0",
                  "common.role": "value", "common.states" : "", "common.read": "true", "common.write": "false", "common.unit": "100ms"},
                {"id": "data1","common.name": "direction","common.type": "number",
                  "common.role": "value", "common.states" : "1:moving up;2:moving down", "common.read": "true", "common.write": "false"},
                {"id": "data1","common.name": "locked","common.type": "number",
                  "common.role": "value", "common.states" : "10:not locked;14:locked", "common.read": "true", "common.write": "false"}
              ]
      

      Da die EEP aber universell ist und vermutlich viele Hersteller diese nutzen denke ich aktuell als ein generisches Format:

      "native": {
              "devName": "Universal",
              "iobObjects": [
                {"id": "data1","common.name": "Universal Data 1","common.type": "number","common.min": "0","common.max": "16777215","common.def": "0",
                  "common.role": "value", "common.states" : "", "common.read": "true", "common.write": "false"},
                {"id": "data2","common.name": "Universal Data 2","common.type": "number","common.min": "0","common.max": "16777215","common.def": "0",
                  "common.role": "value", "common.states" : "", "common.read": "true", "common.write": "false"},
                {"id": "data3","common.name": "Universal Data 3","common.type": "number","common.min": "0","common.max": "16777215","common.def": "0",
                  "common.role": "value", "common.states" : "", "common.read": "true", "common.write": "false"},
                {"id": "data4","common.name": "Universal Data 4","common.type": "number","common.min": "0","common.max": "16777215","common.def": "0",
                  "common.role": "value", "common.states" : "", "common.read": "true", "common.write": "false"}
              ]
      

      Was ist deine Meinung dazu ? Generisch ist zwar gut aber dann muss der ioBroker nutzer jedesmal selbst ergründen was in den 4 bytes eigentlich für Daten stehen.

      Weiter, ist dir ein Problem bekannt dass nach einer gewissen Zeit einfach keine Messages im LOG erscheinen. Dafür stehen solche Dinge drin:

      enocean.0 2019-01-01 23:50:54.798 debug system.adapter.admin.0: logging true

      enocean.0 2019-01-01 23:49:34.966 debug system.adapter.admin.0: logging false

      Ich konnte noch kein Muster erkennen. Wenn du einen Tips hast wie ich das besser eingrenzen kann, sag bescheid.

      Grüße, Michael~~

      posted in Tester
      S
      syryna
    • RE: Test Adapter EnOcean v0.3.x

      ich will als nächstens nun mal die Status Messages für den FSB61NP auswerten, das Senden geht ja noch nicht und dazu habe ich in deinem Coding folgende Zeilen gefunden. Dazu will ich die f6-01-01.js nehmen und auf den Aktor anpassen. Aber leider verstehe ich eine von dir genutzte Schreibweise nicht.

      const T21 = (telegram.status & T21_FLAG) === T21_FLAG;
      const NU = (telegram.status & NU_FLAG) === NU_FLAG;
      

      ….

      const R1 = (dataField & 0xE0) >> 5;
      const R2 = (dataField & 0x0E) >> 1;
      const EB = ((dataField & 0x10) === 0x10);
      

      Ich verstehe diese Schreibweise leider nicht.

      Ich nehme an, dass hinter dem & die Bit-Position im Byte steht dass dich interessiert, oder (dataField & 0x0E für bit 1-3)?

      Der zweite Teil der Zeile macht mir noch mehr Probleme, '===' kenne ich eigentlich als Typenvergleich, was bedeutet das hier?

      Ebenfalls '>>', das ist bitweises verschieden oder?

      Grüße, Michael

      posted in Tester
      S
      syryna
    • RE: Test Adapter EnOcean v0.3.x

      Hi Jey Cee,

      ich habe mich mal mit dem Protokoll beschäftigt und anhand des vorhandenen Codes für den PTM200 Taster in f6-02-01.js und dem Internet Versucht das Protokoll zu verstehen.

      Bitte schau mal ob das alles so richtig ist, ich poste es hier mal als Referenz dass nicht jeder der seinen Aktor integrieren will so viel suchen muss. Wenn es zu viel ist, bescheid geben dann lösche ich es.

      Aufbau der EEP Profile:

      https://blog.protocolbench.org/2016/05/ … -telegram/

      und

      https://www.enocean-alliance.org/wp-con ... public.pdf

      Hier mal grafisch dargestellt:

      ~~![](</s><URL url=)https://snag.gy/zu9lgO.jpg" />

      -> der interessante Teil ist blau und Lila

      Schauen wir uns den Blauen Teil genauer an.

      Wie oben im Link beschrieben unterteilt man die Daten in Telegramm Typen, sogenannte RORG. Siehe dazu im Link Kapitel 1.4. Im ersten Databyte wird der Telegramtyp festgelegt. es gibt diese hier:

      Typ	RORG	ORG	COMMENT	
      RPS	f6	05	Repeated Switch Com.	
      1BS	d5		1 Byte Communication	
      4BS	a5	07	4 Byte Comminucation	
      VLD	d2		Variable Length Data	
      MSC	d1		Manufacture Specific C.	
      ...	...	...	...	
      

      -> wir werden sehen wir benötigen nur RPS und 4BS für die Taster (FT55) und den Aktor (FSB61NP)

      Im Kaptiel 1.6.1 und 1.6.2 finden wir die Details zu den Telegramm Typen

      ~~![](</s><URL url=)https://snag.gy/NGnZoS.jpg" />

      <size size="150">Beispiel 1: Taster nach unten gedrückt: 55000707017af610feff5e0c3003ffffffff3d00</size>

      ~~![](</s><URL url=)https://snag.gy/O6gymX.jpg" />

      Der interessante Teil ist nun der Status und der Data Payload des blauen Bereiches.

      Wiederum entnehmen wir dem EnOcean PDF in Kapitel 2 beim Taster F6-02 die Deatils wie sich die Daten aufbauen

      Der Taster scheint zwei Message Arten zu haben die durch das Statusfeld unterschieden werden. Es gibt eine Message wenn T21 und NU gleich '1' sind und eine andere Message wenn T21 zwar '1' ist aber NU gleich '0'

      Im Feld Status sehen wir in der Binäransicht dass Bit 4 und 5 eine '1' haben daher schauen wir uns dazu das Format der Daten an.

      Der Aufbau ist wie folgt (für Status 30 also T21 = 1 und NU = 1):

      ~~![](</s><URL url=)https://snag.gy/gfJNrv.jpg" />

      AI pressed 	 ->	0x10
      A0 pressed	 -> 	0x30
      BI pressed 	 -> 	0x50
      B0 pressed	 ->	0x70
      

      Second Action habe ich leider nicht verstanden, eventuell haben die meine Taster nicht

      <size size="150">Beispiel 2: Taster losgelassen: 55000707017af600feff5e0c2003ffffffff3c00</size>

      ~~![](</s><URL url=)https://snag.gy/wSkAmD.jpg" />

      Der Unterschied zum ersten Beispiel ist nun der Status 20 und dass die Daten 00 sind. Damit ist das der zweite Message Typ und den schauen wir uns nun an.

      Der Aufbau ist wie folgt (für Status 20 also T21 = 1 und NU = 0):

      ~~![](</s><URL url=)https://snag.gy/y3OJAK.jpg" />

      -> in unserem Fall also no button (0x00)

      -> Vermutung hier werden sozusagen alle 4 Taster auf den Initialwert '0' gesetzt ?

      <size size="150">Beispiel 3: Aktor reagiert: 55000a0701eba5000e010a0183e5230003ffffffff5300</size>

      ~~![](</s><URL url=)https://snag.gy/Me9OvA.jpg" />

      Die erste Auffälligkeit die Data Länge ist nun von 7 auf 10 angewachsen.

      Die zweite Auffälligkeit RORG ist nicht mehr RPS sonder BS4 und hat daher 4 Datenbytes (also daher die 3 neuen Felder)

      Um uns den Datenanteil anzuschauen gibt es nun ein Problem unser EEP ist hier A5-3F-7F und das ist ein Universal Typ, sprich es gibt im EnOcean Profiles PDF von oben keine genauen Daten. Jeder Hersteller kann hier machen was er will.

      Daher nehmen wir uns die Eltako Spec zu Hand: https://www.eltako.com/fileadmin/downlo … ow_res.pdf

      Auf Kapitel T-13 finden wir die Spec.

      ~~![](</s><URL url=)https://snag.gy/hmJion.jpg" />

      -> der Aktor fuhr also 1,4 sec nach oben und erreichte nicht seine Endposition

      <size size="150">Beispiel 4: Message an Aktor zum hochfahren: 55000707017af6010183e5233003ffffffff5500</size>

      ~~![](</s><URL url=)https://snag.gy/WZLQ9o.jpg" />

      Schauen wir uns die Daten an:

      -> 0x01

      Kaptiel T-13

      https://www.eltako.com/fileadmin/downlo … ow_res.pdf

      Data_byte3 = 0x70 = Endlage Oben, 0x50 = Endlage unten, 0x01 = Start auf, 0x02 = Start ab

      -> es war also das Signal zum hochfahren das passt: 0x01

      Das wars erstmal.

      Grüße, Michael~~~~~~~~~~~~~~~~~~

      posted in Tester
      S
      syryna
    • RE: Test Adapter EnOcean v0.3.x

      @Jey Cee:

      @syryna:

      das manuelle eintragen funktioniert nur halb. Da scheint ein Bug zu sein. Als Workaround, wähle bei Hersteller Enocean GmbH und als device PTM200, dann gehts.

      Stimmt, mit dem PTM 200 funktioniert es.

      Grüße, Michael

      posted in Tester
      S
      syryna
    • RE: Test Adapter EnOcean v0.3.x

      Vielen Dank Jey Cee,

      ich werde mich mal die Tage damit befassen und mal schauen ob ich den FSB61NP zunächst mal auslesen kann. Muss mich aber erstmal in das Protokoll einlesen und schauen ob ich bei mir lokal ändern kann.

      Dein Adapter liegt hier schätze ich bei mir auf der Installation:

      /opt/iobroker/node_modules/iobroker.enocean $ ls -l
      insgesamt 252
      drwxr-xr-x   4 iobroker iobroker   4096 Dez 30 17:48 admin
      -rw-r--r--   1 iobroker iobroker    664 Dez 21 09:42 appveyor.yml
      drwxr-xr-x   5 iobroker iobroker   4096 Dez 30 17:48 docs
      drwxr-xr-x   2 iobroker iobroker   4096 Dez 30 17:48 eep
      -rw-r--r--   1 iobroker iobroker  16013 Dez 21 09:42 gulpfile.js
      -rw-r--r--   1 iobroker iobroker  15066 Dez 21 09:42 io-package.json
      drwxr-xr-x   2 iobroker iobroker   4096 Dez 30 17:48 lib
      -rw-r--r--   1 iobroker iobroker   1093 Dez 21 09:42 LICENSE
      -rwxr-xr-x   1 iobroker iobroker  33728 Dez 21 09:42 main.js
      drwxr-xr-x 153 iobroker iobroker   4096 Dez 30 17:50 node_modules
      -rw-r--r--   1 iobroker iobroker   1924 Dez 30 17:48 package.json
      -rw-r--r--   1 iobroker iobroker 135122 Dez 30 17:50 package-lock.json
      drwxr-xr-x   2 iobroker iobroker   4096 Dez 30 17:48 parser
      -rw-r--r--   1 iobroker iobroker   2537 Dez 21 09:42 README.md
      drwxr-xr-x   3 iobroker iobroker   4096 Dez 30 17:48 test
      -rw-r--r--   1 iobroker iobroker   4776 Dez 21 09:42 tsconfig.json
      

      Ich bin jetzt auch kein GIT Benutzer und werde mal schauen ob es das zunächst einfach mal lokal ändern kann (natürlich mit Sicherheitskopie). In GIT muss ich mich dann einlesen.

      Grüße, Michael

      posted in Tester
      S
      syryna
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo