NEWS
Einstieg in die Adapterentwicklung
-
Hallo zusammen,
ich habe mir, da ich im Ping Adapter eine Funktion vermisse die ich gerne hätte dazu entschlossen die Erweiterung selbst einzufügen. Ich bin bereits mehrjähriger PHP Entwickler und habe auch schon mit Javascript gearbeitet. Jedoch muss ich sagen, das für mich NPM und vorallem Javascript Backend Entwicklung absolutes Neuland ist.
Habe mich auch eigentlich sofort in der Struktur des Codes von Github (https://github.com/ioBroker/ioBroker.ping) zurecht gefunden und soweit meine Änderungen eingefügt. Jetzt möchte ich das natürlich auch mal testen und in meinem iobroker installieren. Dazu habe ich den Inhalt des Ordners als .tar.gz gepackt und über die "von URL importieren" Funktion versucht die Sache einzufügen.
Ich habe versucht die Sache als tar.gz und zip über die "von URL importieren" Funktion den Adapter zu importieren, leider ohne Erfolg. Als Ausgabe bekomme ich (mit Debug an) immer diese Ausgabe:
$ iobroker url https://node1.***********.de:8081/iobroker.ping.tar.gz --host iobroker --debug install https://node1.************.de:8081/iobroker.ping.tar.gz NPM version: 6.14.15npm install https://node1.*******.de:8081/iobroker.ping.tar.gz --prefix "/opt/iobroker" (System call) npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.3.2 (node_modules/fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.3.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"}) npm WARN optional SKIPPING OPTIONAL DEPENDENCY: osx-temperature-sensor@1.0.7 (node_modules/osx-temperature-sensor): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for osx-temperature-sensor@1.0.7: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"}) + iobroker.ping@1.5.1updated 1 package in 5.275s 73 packages are looking for funding run `npm fund` for details host.iobroker Cannot install https://node1.********.de:8081/iobroker.ping.tar.gz: 0 ERROR: Process exited with code 25
Wenn hier Logs oder Sachen fehlen die euch Helfen könnten bitte ich das zu entschuldigen, aber ich hab wirklich mein bestes versucht
Grüße basti
iobroker.ping.tar.gz -
@basti4557 warum so kompliziert.. kopier doch einfach nur den source direkt unter
/opt/iobroker/node_modules/iobroker.ping
rein
mach ein updload und fertig ..oder forke den ping mach die änderung auf GIT und installiere es von da ..aus deinem fork
-
@basti4557 Die ganz einfache Lösung ist https://github.com/ioBroker/dev-server
Damit kannst du in deinem Adapter-Dev-Verzeichnis einfach eine frische ioBroker-Instanz starten, in der nur der aktuell entwickelte Adapter ist. Änderungen werden synchronisiert, etc.
-
@arteck so gehts natürlich bedeutend einfacher
Nur zum Verständnis:
wenn ich "iob upload ping" ausführe, was genau passiert dann ? Soweit ich das jetzt interpretieren würde wird dann kompiliert und die Abhängigkeiten geladen oder ?
-
@alcalzone Danke dir, das ist natürlich die eleganteste Lösung Werd ich mal bei Zeiten aufsetzen, jetzt am Anfang werd ich erstmal die direkte Methode mit SSH Upload und iob upload benutzen
-
@basti4557 nein bei uload werden nur der admin ordner aktualisiert..wenn du an den Admin Einstellungen nix gemacht hast..dann brauchst das auch nicht machen..
-
@basti4557 sagte: wird dann kompiliert
Kompiliert wird bei Instanz-Start.
-
@basti4557 sagte in Einstieg in die Adapterentwicklung:
, da ich im Ping Adapter eine Funktion vermisse die
Welche Funktion hast du den vermisst?
-
@jey-cee Meine Steuerung ist so gebaut das sobald mein Handy das Haus verlässt das dann alles abgeschalten wird. Leider geht ab und zu mal ein ping Request verloren an das Android Handy, wodurch dann immer fälschlicher Weise alles abgeschalten wurde. Ich habe im Hintergrund das momentan so das einfach als Javascript ein Counter hochzählt und sobald das Handy 5 mal nicht erreicht wird abgeschalten wird. Jetzt bin ich gerade dabei den Adapter so zu erweitern das sobald ein Request fehlschlägt erneut eine Einstellbare Anzahl an Neuversuchen gestartet wird bis der Ping Adapter das Gerät als Offline feststellt.
Funktioniert soweit jetzt auch schon so halbwegs, werde das dann auch sobald ich das mal etwas getestet habe und es funktioniert hast als Merge Request reinstellen
-
@basti4557 ich freue mich auf deine Erweiterung!
-
@brainbug Kannst es theoretisch schon testen https://github.com/basti4557/ioBroker.ping
-
@jey-cee sagte in Einstieg in die Adapterentwicklung:
@basti4557 sagte in Einstieg in die Adapterentwicklung:
, da ich im Ping Adapter eine Funktion vermisse die
Welche Funktion hast du den vermisst?
das wäre gut noch in den ping oder radar adapter zu integrieren.
aufruf von hping3, falls es vorhanden ist.https://forum.iobroker.net/topic/49880/iphone-verliert-immer-das-wlan/6?_=1639851614917
das verbessert die anwesenheitserkennung bei bestimmten iphone modellen, bei denen die normale methode nicht funktioniert. ein muster konnte da noch nicht erkannt werden, aber bei manchen funktioniert der normale mechanismus nicht zuverlässig. dann hilft hping3
-
@basti4557 hab es mal installiert, mal schauen ob meine ebenfalls verlorenen Pings damit verbessert werden.
-
@brainbug musst das aber auch in den Einstellungen hochstellen. Momentan ist der default auf 1 gestellt, also gleiches verhalten wie vorher
-
@basti4557 hab ich, das hab ich gesehen
-
@basti4557 aktuell bin ich mit 3 unterwegs und momentan gibt es keine Probleme mit Pings die verloren gehen. Ich warte noch einige Tage und gehe dann auf 2 und beobachte.
-
@brainbug Also ich habs auf 2 und hab bis jetzt keine Probleme gehabt. Wenn das Gerät erreichbar ist wird ja sowieso immer nur ein Ping gesendet, die Anzahl der Versuche wird wirklich nur bei Nchterreichbarkeit ausgereizt. Was man jetzt noch überlegen könnte abzufragen ob das Gerät als letztes als online gekenzeichnet wurde und nur dann die Anzahl der Versuche auszureizen. Momentan ist es ja so das immer, egal ob das Gerät online oder offline ist, die Anzahl der Versuche ausgereizt wird.