NEWS
Test Adapter EnOcean v0.3.x
-
@Jey Cee:Du weist aber das Holz eine höhere Dämpfung bei Funksignalen hat als Stein.
Was sagt den der Rssi wert der Kontakte?
Gesendet von meinem m8 mit Tapatalk `
Leider klappt es aber auch nicht, wenn die Kontakte neben dem Respi liegen (RSSI 89 bzw. 80 !)
Die "Geschlossen=0"-Befehle werden recht zuverlässig gesendet, aber nicht die "Offen=3"-Befehle (Modus 3)
Auch das Senden der Befehle im Modus 1 oder 2 funktioniert nur "ab und zu" trotz exakter Ausrichtung der Magneten.
-
Die Werte sind zwar nicht ganz optimal, aber wären ok. Stell das log level des Adapters auf debug und schau ob jede Änderung ankommt.
Wenn ja liegt am Empfangsmodul.
Gesendet von meinem m8 mit Tapatalk
Edit: Ich meinte Natürlich wenn nicht alle Änderungen ankommen. Du solltest bei jeder Änderung ein Telegramm im Log sehen.
-
@Jey Cee:Ich meinte Natürlich wenn nicht alle Änderungen ankommen. Du solltest bei jeder Änderung ein Telegramm im Log sehen. `
Nach mehreren Tagen vergeblicher Arbeit habe ich aufgegeben:
Eine zuverlässige Verbindung der Fensterkontakte war nicht herzustellen. Beim "Trockenversuch" direkt neben dem Empfängermodul hat der Raspi einigermaßen zuverlässig die Signale empfangen (ca. 80% !), Nach dem Einbau in den Fensterrahmen kamen nur ca. 20% der Befehle an- für die Praxis untauglich.
Der Empfänger liegt nur 1 Holzdecke entfernt (Signalstärke 80 !), vielleicht liegt es ja am Metallkern im Kunststofffenster `
Ich habe jetzt - um nicht noch mehr Zeit zu investieren, die Reißleine gezogen und haben mir kabelgebundene Magnetkontakte bestellt nach dem Motto: Lieber einige Meter KNX-Kabel verlegen als keine zuverlässige Verbindung.
Eigentlich schade !
Vielen dank noch einmal an Dich Jey für Deine Hilfe !!!
-
Hi,
die möglichkeiten EnOcean find ich sehr Interessant, hat schon einer den FSR61NP-230V Schaltaktor mit ein Funkschalter eingebunden um z.B. eine Steckdose per Lichtschalter zu bedienen oder per ioBroker.
-
Wahrscheinlich nicht. Ich hab zwar schon angefangen das senden von befehlen ein zu bauen, aber das ist noch nicht fertig.
Gesendet von meinem HTC U11 mit Tapatalk
-
Hallo Zusammen,
in meinen neubau bekomme ich zwei Lunos Steuerungen, diese können per Funkmodul eingebunden werden:
Die Technischen Daten:
Technische Daten UNI-EO
Betriebsspannung: 3,3V DC
Leistungsaufnahme (Modul) : < 1W
Funkfrequenz: 868 MHz
Reichweite: bis zu 40 Meter (Freifeld)
Betriebstemperatur: 0°C / 40°C
EPP Profil: D2-50 (bei Kopplung mit Funkzentrale)
Wir das Epp Profil von dem Adapter unterstützt?
-
Da muss ich dich enttäuschen.
-
Hallo Jey Cee,
erstmal herzlichen Dank für deine bisherige Arbeit. Ich selbst versuche mich gerade mit ioBroker da ich meine vorhandene FHEM Lösung ersetzen will. Die Gründe sind einfach dass ich mit NodeJS und Javascript besser zurechtkomme als mit Perl.
Ich habe aktuell folgende Sensoren und Aktoren von Eltako:
12 x FT55-wg (das sind Piezo Taster)
12 x FSB61NP-230V (das sind Rolladenaktoren)
Ich will meine Ausstattung auf Smarte Rauchmelder, Fenstergriff Sensoren und Heizungsaktoren erweitern. Nur Eltako wird mir auf die Dauer einfach zu teuer. Um verschiedene Hersteller und Standard zu unterstützen will ich nun auf ioBroker wechseln. Es sollen mittelfristig günstigere Anbieter wie Homematic ergänzt werden. Aber zunächst will ich meine vorhandenen Devices übernehmen.
Wie alles begann.
Meine ursprüngliche Lösung war rein Eltako (komplett gekauft), so habe ich auch den Shuttle Wand PC mit der Eltako Software. Da diese aber nur Eltako unterstützt wurde diese von mir dann durch FHEM ersetzt und das habe ich so nun auf dem Shuttle seit knapp 1 Jahr am laufen. Ich wollte das nur erwähnen um darzustellen dass ich keinen Raspberry nutze. (Es wird ja oft auf den PI verwiesen im Zusammenhang mit ioBroker.
So sieht FHEM aktuell bei mir aus (ohne Dashboard):
~~![](</s><URL url=)https://snag.gy/RqvlFJ.jpg" />
Man sieht die Aktoren, Taster und die zwei Timer für Morgens und Abends. Ist also alles noch ganz simple.
Ich bin ein Anfänger also entschuldigt wenn ich die Begrifflichkeiten noch nicht so draufhabe, ich bin noch am lernen.
Kommuniziert wird über einen USB300 Gateway Stick:
~~![](</s><URL url=)https://snag.gy/ZVWHyG.jpg" />
Nun habe ich auf dem Shuttle zusätzlich ioBroker installiert und auch deinen Adapter zum laufen bekommen:
~~![](</s><URL url=)https://snag.gy/k3YDNz.jpg" />
Ich glaube dass auch der Connect zu dem USB Stick erfolgreich ist:
~~![](</s><URL url=)https://snag.gy/5ar2x6.jpg" />
~~![](</s><URL url=)https://snag.gy/IYxRh0.jpg" />
Nun würde es ans einlernen gehen.
Bevor ich jedoch nun versuche einzulernen habe ich mir mal die unterstützen Hersteller angesehen und festgestellt dass meine Aktoren und Taster noch nicht in der Liste sind, wobei der FRW komischerweise die Taster EEP in eurer Liste aufweist, müsste es nicht eigentlich 'F6-05-01 sein anstelle von F6-02-01 ? (https://www.enocean-alliance.org/wp-con … public.pdf
https://github.com/Jey-Cee/ioBroker.eno ... er_list.js
https://github.com/Jey-Cee/ioBroker.eno ... vices.json
Die Details meiner zwei Devices sind...
FSB61NP:
EEP: A5-3F-7F
manufID: 00D
model: FSB61
FT55:
EEP: F6-02-01
manufID: 7FF
Ich kenne mich wie gesagt nicht so dolle aus und weiß nicht ob das wissenswert ist. Hier habe ich weitere EEP Details die ich damals für FHEM verwendet habe um meine Devices einzulernen: https://www.enocean-alliance.org/wp-con ... public.pdf
So und nun zum eigentlichen Kern meiner Anfrage
Ich würde hier gerne soweit ich kann unterstützen und es wäre toll wenn ihr mir sagen könntet wie ich beginnen könnte um diese zwei Devices in euer Coding aufzunehmen? Ich habe ein wenig Bastelerfahrung mit NodeJS und daher ein wenig JS coden. Hatte mal ein kleinesTool geschrieben für ein Computerspiel mit MongoDB, es war ein kleines Gildenportal mit Schnittstellen zu einer REST-API. Aber Vorsicht, ich bin kein Profi und meine Kenntnisse reichen nur für Spaghetti-Code. Aber vielleicht kann ich ja damit den Stein ins Rollen bringen und ein Experte schaut dann drüber und macht es hübsch
Ich bräuchte aber einen Tipp wo ich im Code einsteigen könnte und wie das Project aufgebaut ist. Es reicht vermutlich nicht einfach eine A5-3F-7F.js im eep Ordner anzulegen. Kann mir jemand bei diesem Einstieg helfen bevor ich über Stunden hinweg den ganzen Code lesen und verstehen muss. Mir würde reichen wenn mir einer erklären könnte welche Code-Files alle zu chekcen wären für ein Device, dann würde ich mir die vorhanden mal anschauen.
Weiterhin habe eine Frage zur Übernahme der Daten von FHEM:
FHEM und ioBroker laufen ja auf der gleichen Maschine und nutzen das gleiche Gateway. Meine naive Vorstellung ist nun dass die Aktoren und Taster im Gateway eingelernt sind (die müssen sich gegenseitig kennen?). Sprich, ich müsste doch für ioBroker nicht mehr alles neu einlernen oder, das Gateway und die Aktoren reden ja schon miteinander?
Ich will mir das ersparen da vor allem in den Bädern/WC die Aktoren 'hinter' den Steckdosen sitzen damit wir die Fliesen nicht beschädigen mussten. Daher ist ein erneutes Einlernen wirklich mit etwas Arbeit verbunden, die Steckdosen müssen raus und ein Kabelgefummel in der kleinen Öffnung bis ich an die Drehregler des Aktors rankomme um das Einlernen zu aktivieren. Ich hoffe daher dass ich irgendwie über ein manuelles einfügen der Devices (ohne einlernen) einfach die vorhandene Konfiguration nutzen könnte. Wäre das aus eurer Sicht möglich ?
Wäre es möglich wenn man die Stellen in FHEM kennt eine Art Migrationstool zu bauen der einem die Devices ausliest und in ioBroker überträgt. Ich frage jetzt nicht an ob ihr das bauen könnt sondern ob es realistisch wäre und ich würde mich da versuchen einzuarbeiten. Wenn ihr aber aus eurer Erfahrung sagt, dass es technisch nicht möglich ist dann spare ich mich das suchen
Grüße, Michael~~~~~~~~~~
-
Also ich ich habe mal Testweise einen Taster im Büro mit Auto Detect eingelernt:
~~![](</s><URL url=)https://snag.gy/lhdX0y.jpg" />
und die Werte kommen an:
~~![](</s><URL url=)https://snag.gy/F95g8j.jpg" />
nun werde ich mal versuchen anhand der IDs in FHEM einen anderen Taster manuell zu übernehmen ohne einzulernen.~~~~
-
das manuelle eintragen funktioniert nur halb.
Hier wie der zweite Taster aussieht den ich manuell ergänzt habe:
~~![](</s><URL url=)https://snag.gy/95DSUM.jpg" />
Oben ist der erkannte und unten der manuell eingefügte.
~~![](</s><URL url=)https://snag.gy/057spN.jpg" />
Im Log sieht man den Unterschied, der automatisch erkannte sende Werte. Der manuelle scheinbar nicht.
Anbei auch ein Bild der Objekte:
~~![](</s><URL url=)https://snag.gy/FSOsyP.jpg" />
Interessant ist, dass zwar die Werte der Tasten leer sind aber der rssi Wert gesetzt wird. Ich glaube das war die Signalstärke.
Grüße, Michael~~~~~~
-
Hallo Michael,
es freut mich das du hier Unterstützen willst.
wobei der FRW komischerweise die Taster EEP in eurer Liste aufweist, müsste es nicht eigentlich 'F6-05-01 sein anstelle von F6-02-01 ? ` Ne die EEP passt schon, das hat der Hersteller so festgelegt. Keine Ahnung warum die nicht F6-05-01 verwenden, eventuell verwenden die ein fertiges Modul mit F6-02-01 und haben den FRW drum rum gebaut.
Der FT55 ist eigentlich ein PTM2xx Modul und wird als generisches Gerät unterstützt, wie du schon herausgefunden hast.
Beim FSB61NP ist das ganze nicht ganz so einfach, bisher geht eigentlich nur daten Empfangen. Daten senden hab ich zwar Grundlegend eingebaut, aber da fehlt noch etwas an Logik für die Geräte. Das heisst hier gibt es noch keine Referenz wie das funktioniert.
Es reicht vermutlich nicht einfach eine A5-3F-7F.js im eep Ordner anzulegen. ` Doch fast. Ich versuch es mal zu erklären:
-EEP2IOB.json definiert die Objekte die für ein Profil angelegt werden
-z.B. "A5-3F-7F.js" hier werden die Funktionen hinterlegt für das Auswerten der Daten und den Bau der Datentelegramme die gesendet werden sollen
-devices.json hier sind die Geräte mit Infos wie Hersteller, Model, EEP(s) und Type hinterlegt.
-eepInclude.js fast alle EEP files zusammen und stellt sie im Adapter zur Verfügung
Meine naive Vorstellung ist nun dass die Aktoren und Taster im Gateway eingelernt sind (die müssen sich gegenseitig kennen?). Sprich, ich müsste doch für ioBroker nicht mehr alles neu einlernen oder, das Gateway und die Aktoren reden ja schon miteinander? ` Nein dafür ist die Software verantwortlich, FHEM oder eben enOcean Adapter. Manuelles Anlernen ist kein Problem, hast du ja schon gefunden.
Wäre es möglich wenn man die Stellen in FHEM kennt eine Art Migrationstool zu bauen der einem die Devices ausliest und in ioBroker überträgt. Ich frage jetzt nicht an ob ihr das bauen könnt sondern ob es realistisch wäre und ich würde mich da versuchen einzuarbeiten. Wenn ihr aber aus eurer Erfahrung sagt, dass es technisch nicht möglich ist dann spare ich mich das suchen `
Das sollte schon machbar sein, aber ob sich der Aufwand lohnt kann ich nicht abschätzen.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.
-
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
-
@Jey Cee: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
-
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~~~~~~~~~~~~~~~~~~
-
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
-
Der zweite Teil der Zeile macht mir noch mehr Probleme, '===' kenne ich eigentlich als Typenvergleich, was bedeutet das hier? ` Es handelt sich tatsächlich um einen Typen vergleich, das Ergebnis ist dann true oder false.
Ebenfalls '>>', das ist bitweises verschieden oder? ` Ja, das ist eine Bitwise operation. Es werden von links so viele Nullen nach geschoben wie rechts von '>>' angegeben.
Ich nehme an, dass hinter dem & die Bit-Position im Byte steht dass dich interessiert, oder (dataField & 0x0E für bit 1-3)? ` Es ist so das du ein Byte nicht weiter aufteilen kannst, wenn du jetzt ein bestimmtes Bit brauchst musst du alle anderen Bits Nullen. Dafür wird das '& 0x0E' hier verwendet.
Ich finde deine Erklärung für die Daten Telegramme sehr gut.
-
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~~
-
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
-
Einen Tipp brauch ich noch: Eigentlich wollte ich die Felder im ioBroker wie folgt konfigurieren: ` Ich bin mir sicher darauf schon geantwortet zu haben, aber der Post ist weg. Deswegen nochmal, bitte bau beide Varianten ein und orientier dich an dem Smokedetector.
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 ` Ist mir jetzt noch nicht aufgefallen.
Aber console.log ergibt keine Ausgabe in den Entwicklertools vom Chrome. ` Das wird es nie der Teil vom Code läuft im Backend und du bekommst damit nur in deiner IDE/Editor eine Ausgabe.
https://github.com/ioBroker/ioBroker/wiki/Installation,-setup-and-first-steps-with-an-ioBroker-Development-Environment mal exemplarisch die Einrichtung von Webstorm um zu Debuggen.
Kann ich das auch so verwenden? ` Eher nicht 'adapter' kann nur in der main.js aufgerufen werden.
Es könnte auch sein das mein Verweis in der eepInclude.js nicht vernünftig ist, ` Ja, das ist auch so.
a5_3f_7f_FSB61NP:
Muss so aussehen wenn es ein native ist:
a5_3f_7f_native:
Das native gibt type wieder welches in devices.json zum Gerät angegeben ist.
Um Speziell den FSB61NP zu verwenden, hier werden dann Speziefisch die Objekte und Funktionen bereit gestellt, ist diene Version richtig. Bitte Orientiere dich an Smokedetector.
Kurz zur Erklärung:
Der Smokedetector verwendet die EEP f6-02-01, stellt aber andere Objekte in ioBroker zur Verfügung, dazu braucht es auch eigene Funktionen. Deshalb gibt es eine eigene js Datei und ein Untertyp für f6-02-01 in EEP2IOB.json.
Das ist notwendig weil die EEP ja in den Telegrammen codiert ist. Anhand der ID wird dann ermittelt wie mit dem Telegramm verfahren wird. Bei der Automatischen Erkennung wird immer der Type native verwendet, Geräte die nicht native sind müssen von Hand angelegt werden.
Sorry für die vielen Anfängerfragen aber für einen Neuling in einen vorhandenen Adapter einzusteigen ist schwierig. ` Hast dir auch den einfachsten dafür ausgesucht Das passt schon, wenn die Hürden hoch sind ist die Lernkurve meist steiler.
-
Hallo liebe Gemeinde,
Bei mir läuft der Adapter rund. Ich wollte nur fragen ob du schon oder noch dabei bist Befehle zu senden.
Also ich habe einen einfachen Aktor mit einem Kanal.
Wenn du mehr Infos brauchst kann ich dir gerne welche geben.
Gesendet von iPhone mit Tapatalk