NEWS
[Hilfe] Adpaterentwicklung / newbie
-
Hallo,
ich schreibe gerade meinen ersten Adapter. Das Javascript extrem neu ist (komme aus der SAP Entwicklung), bin ich mir nicht sicher, ob ich alles richtig gemacht habe. Über Tipps würde ich mich freuen!
<u>Aufgabe des Apapters:</u>
Alarmanlagen wie z.B. die Lupusec XT1/XT2 und XT3 können mit dem Contact ID Protokoll über IP alle Zustände und Informationen der Alarmanlage detailliert übertragen. Sicherheitsdienste nutzen das Protokoll um Alarmmeldungen zu empfangen.
Leider gibt es kleine Unterschiede bei der Umsetzung des Protokolls. So will die Lupusec XT1 als Rückmeldung (Acknowledge) ein 0x6 und die Lupusec XT2die gesendete Meldung zurück.
https://github.com/schmupu/ioBroker.contactid
VG
Stübi
-
Super, schaue heute Abend rein. Allererstes Feedback: github repo muss es „ioBroker.deinname“ sein. Das B
Am besten schnell umbenennen und alle Links in der io-Package korrigieren.
Nur das npm Paket hate in kleines „b“
-
In der package.json musst du noch die n Namen der JS Datei ändern, Main.JS in contactid.JS.
Gesendet von meinem m8 mit Tapatalk
-
Super, schaue heute Abend rein. Allererstes Feedback: github repo muss es „ioBroker.deinname“ sein. Das B
Am besten schnell umbenennen und alle Links in der io-Package korrigieren.
Nur das npm Paket hate in kleines „b“ `
super danke! ich habe das Paket umbenannt! Jetzt muss ich mich noch mit npm beschäftigen um den Adapter dort hochzuladen. Oder kann man dieses von Github importieren?
https://github.com/schmupu/ioBroker.contactid
-
@Jey Cee:In der package.json musst du noch die n Namen der JS Datei ändern, Main.JS in contactid.JS.
Gesendet von meinem m8 mit Tapatalk `
danke, ich habe in der package.json, die Datei umbenannt. -
Du kennst das schon: http://forum.iobroker.net/viewtopic.php?f=24&t=6383 ?!
Da ist ein Link zu npm howto drin. Sehr simpel.
-
Gleich zwei Fragen.
Ich lege im Adapter, channels an. Die Namen der Channels sind in der Konfiguration als Subscriber hinterlegt. Ändert oder löscht man nun den Subscribernamen, müsste ich den Channel und die dazugehörigen Statuts (ist das die Mehrzahl von Status?) ändern bzw. löschen.
Gibt es einen einfachen Weg dieses zu tun?
Beim einrichten einer Instanz, wird die Instanz schon gestartet, obwohl man noch in der Konfiguration des Adapters steckt. Wie kann man das Verhalten ändern?
Danke für die Hilfe!
VG
Stübi
-
Du kennst das schon: http://forum.iobroker.net/viewtopic.php?f=24&t=6383 ?!
Da ist ein Link zu npm howto drin. Sehr simpel. `
klasse, die Anleitung hat geholfen. Ich hoffe ich habe alles richtig gemacht!
-
@tstueben:Ich lege im Adapter, channels an. Die Namen der Channels sind in der Konfiguration als Subscriber hinterlegt. Ändert oder löscht man nun den Subscribernamen, müsste ich den Channel und die dazugehörigen Statuts (ist das die Mehrzahl von Status?) ändern bzw. löschen.
Gibt es einen einfachen Weg dieses zu tun? `
Einfach nicht wirklich.Was du machen müsstest zum Start des Adapters wäre alle Channels in deinem Adapter-Namespace abzufragen und mit deiner Konfig zu vergleichen und entsprechend zu löschen oder anzulegen.
Es gibt Adapter die machen das so … muss ich heute abend mal raussuchen.
Vllt hilft die Funktion getAdapterObjects() weiter ... (https://github.com/ioBroker/ioBroker.js ... r.js#L1041)
@tstueben:Beim einrichten einer Instanz, wird die Instanz schon gestartet, obwohl man noch in der Konfiguration des Adapters steckt. Wie kann man das Verhalten ändern? `
Das ist normal weil es Adapter gibt die bei der Konfiguration benötigt werden um Daten abzufragen (z.B. Liste der Seriellen Ports oder sowas). Kannst einfach per adapter.log.error einen Fehler ausgeben und nichts weiter machen. Wenn Du es gar nicht willst kannst du in der io-package.json common.enabled einfach auf "false" setzen, dann wird die neue Instanz nicht aktiviert und startet daher nicht. User muss also nach der ersten Konfig die Instanz manuell starten. Die beiden optionen hast Du aktuell.Nach speichern der Konfiguration gibts automatisch einen Neustart.
-
Also ich habe mal durchgeschaut.
- .travis.yml fehlt (denke dir sind die "." files durch die Lappen gegangen)
'* Testing aktivieren. Dazu bei travis-ci.org und appveyor.com mit dem GitHub Account registrieren und dann löst jeder commit tests aus
-
io-package: ich denke du brauchst keinen vis restart bei Install oder ?!
-
am besten schmeiss noch das raus was du nicht brauchst (onObjectChange, onMessage und so)
Rest sieht soweit gut aus …
Super arbeit!
Ingo
-
Also ich habe mal durchgeschaut.
- .travis.yml fehlt (denke dir sind die "." files durch die Lappen gegangen)
'* Testing aktivieren. Dazu bei travis-ci.org und appveyor.com mit dem GitHub Account registrieren und dann löst jeder commit tests aus
-
io-package: ich denke du brauchst keinen vis restart bei Install oder ?!
-
am besten schmeiss noch das raus was du nicht brauchst (onObjectChange, onMessage und so)
Rest sieht soweit gut aus …
Super arbeit!
Ingo `
Ich habe die fehlenden Files in GitHub eingebunden und mich bei travis-ci.org und appveyor.com registriert. Wobei ich nicht genau weiß, was ich dort einstellen muss und wofür das Beides da ist.
Ist komplizierter als ich gedacht habe.
-
@tstueben:Ich lege im Adapter, channels an. Die Namen der Channels sind in der Konfiguration als Subscriber hinterlegt. Ändert oder löscht man nun den Subscribernamen, müsste ich den Channel und die dazugehörigen Statuts (ist das die Mehrzahl von Status?) ändern bzw. löschen.
Gibt es einen einfachen Weg dieses zu tun? `
Einfach nicht wirklich.Was du machen müsstest zum Start des Adapters wäre alle Channels in deinem Adapter-Namespace abzufragen und mit deiner Konfig zu vergleichen und entsprechend zu löschen oder anzulegen.
Es gibt Adapter die machen das so … muss ich heute abend mal raussuchen.
Vllt hilft die Funktion getAdapterObjects() weiter ... (https://github.com/ioBroker/ioBroker.js ... r.js#L1041) `
Guter Tipp mit der Funktion getAdapterObjects() . Damit habe ich es umgesetzt.@tstueben:Beim einrichten einer Instanz, wird die Instanz schon gestartet, obwohl man noch in der Konfiguration des Adapters steckt. Wie kann man das Verhalten ändern? `
Das ist normal weil es Adapter gibt die bei der Konfiguration benötigt werden um Daten abzufragen (z.B. Liste der Seriellen Ports oder sowas). Kannst einfach per adapter.log.error einen Fehler ausgeben und nichts weiter machen. Wenn Du es gar nicht willst kannst du in der io-package.json common.enabled einfach auf "false" setzen, dann wird die neue Instanz nicht aktiviert und startet daher nicht. User muss also nach der ersten Konfig die Instanz manuell starten. Die beiden optionen hast Du aktuell.Nach speichern der Konfiguration gibts automatisch einen Neustart. `
-
@tstueben:Ich habe die fehlenden Files in GitHub eingebunden und mich bei travis-ci.org und appveyor.com registriert. Wobei ich nicht genau weiß, was ich dort einstellen muss und wofür das Beides da ist.
Ist komplizierter als ich gedacht habe.
Vllt hilft viewtopic.php?t=4334 … wir wollen so sicherstellen das die Adapter sich installieren lassen und haben so eine Option wirklich Adapter auch logisch und auf Funktion zu Testen (optional)Vor allem aber geht es auch darum den Entwicklern die Option zu bieten Sicherheit bei Updates zu haben das es grundsätzlich noch alles tut.