Skip to content

Entwicklung

Diskussionen und Hilfe für die Entwicklung von ioBroker und Adaptern.

1.3k Topics 31.6k Posts

NEWS

  • 0 Votes
    2 Posts
    541 Views
    MicM
    Hier noch eine Ergänzung. @AggroRalf sagte hier: Ich hatte ja vor kurzem eine Diskussion mit Klassen angestoßen. Der Ansatz würde damit auch nicht direkt funktionieren. Das Problem ist ein bischen, dass die Adapter-Klasse die Ableitung von utils.Adapter hat, dadurch müsste man bei dem Ansatz die anderen Klassen dann auch ableiten (und im constructor super verwenden), was glaub blöd war. Ich fänds gut, wenn die Adapter-Klasse einfach nur Basics enthält und man seinen "Kram" dann in eigene Klassen auslagert, aber z.B. über eine vorgegebene Helferklasse oder so Zugriff auf die Objekte in der Adapter-Klasse (Config, Log) hätte Damit wären Updates in der ADapter-Klasse einfach und man könnte die Helfer-Klasse vlt. auch zentral bereitstellen, z.B. mit Error-Handling, Sentry, ... Könnte man natürlich auch direkt in utils.Adapter oder so packen Antwort von @AlCalzone : Ein klassisches Beispiel wie man sowas konventionell macht wären z.B. factory-Methoden: // mein-modul.js module.exports = function (adapter) { return { methode1() { adapter.log("1"); }, // ... } } // ------- // main.js let meinModul; class Adapter extends ... { constructor() { meinModul = require("mein-modul.js")(this); // oder alternativ als Instanz-Variable speichern } } Die Vererbung zu missbrauchen, nur um Zugriff auf die Instanz zu haben ist nicht so ganz der JavaScript-Style. @Mic schreibt: Spricht was dagegen, stattdessen mit ner Klasse zu arbeiten? Oder ist das nur Geschmackssache? Ergebnis hier im Beispiel ja das gleiche. Oder bläht eine Klasse hier unnötig was auf? // mein-modul.js class MeineKlasse { constructor(adapter) { this.adapter = adapter; } methode1() { this.adapter.log.info('1'); } // ... } module.exports = MeineKlasse; // ------- // main.js const MeinModul = require('./lib/mein-modul.js'); class Adapter extends ... { constructor() { meinModul = new MeinModul(this); } } @AlCalzone schreibt: Geht auch Ist ein bisschen Geschmackssache, bzw. Gewohnheit von Programmiersprachen, wo halt alles in Klassen sein muss. In meinem Gedankenmodell sind Klassen für Dinge... von denen es mehrere Instanzen geben wird oder wo die Vererbung gewinnbringend eingesetzt wird oder die ich als "Dinge" verstehe Für Helfer (insbesondere bunt zusammengewürfelte) passt es nicht so in mein Gedankenmodell, weil in der Node.js-Runtime auch (fast) alle Methoden alleinstehend importiert werden. Im Endeffekt sind Klassen aber auch nur Funktionen, die hinter etwas Syntax versteckt sind
  • WhatsApp Bot Adapter

    whats app
    5
    0 Votes
    5 Posts
    1k Views
    B
    Wurde gebannt weil es zu viele Messanges waren.....hier die Antwort,was heisst ab 20 ist der account zu Bitte korrigieren Sie zuerst das Skript / den Trigger. Lassen Sie mich wissen, sobald dies erledigt ist, damit ich die Einschränkung aufheben kann. Ich würde durchschnittlich 20 Nachrichten (maximal) pro Tag für Domotics-Benachrichtigungen erwarten. Danke und Entschuldigung, dass ich Sie nicht im Voraus informieren konnte. Mit freundlichen Grüßen,
  • Alternative Verwahrorte voreinstellen

    installer
    2
    1
    0 Votes
    2 Posts
    126 Views
    HomoranH
    @Thomas-Braun sagte in Alternative Verwahrorte voreinstellen: Könnte man in einer frischen Installation nicht gleich die alternativen Repos schon direkt eintragen? So wie hier: man könnte ;-) aber damit man dies nicht muss wird die (ehemalige) offizielle Adresse auf die aktuelle Adresse umgeleitet, wenn das Repo mal umziehen sollte, damit eben nichts geändert werden muss. Aus irgendeinem Grund kommt es trotz korrekter Umleitung (der Aufruf im Browser funktioniert ja seltsamerweise zu 99% der Fälle) trotzdem zu den nicht nachvollziehbaren Aussetzern :-(
  • 0 Votes
    5 Posts
    617 Views
    apollon77A
    @AggroRalf ... wenigstens ein grobes ...
  • Erweiterung des Sonoff Adapters

    sonoff tasmota mqtt
    1
    0 Votes
    1 Posts
    212 Views
    No one has replied
  • dauernde Fehlermeldung beim RE-CHECK!

    latest repo travis
    3
    1
    0 Votes
    3 Posts
    290 Views
    apollon77A
    @EdgarM der checker hat scheinbar manchmal false positive Meldungen. Also ok.
  • objekt mit Bild Url auflösen

    widget javascript
    4
    0 Votes
    4 Posts
    334 Views
    EdgarME
    @harrym said in objekt mit Bild Url auflösen: @EdgarM sagte in objekt mit Bild Url auflösen: <img src="{bosesoundtouch.0.presets.1.iconUrl}"> Nein, leider nicht. Das widget wird dann gar nicht erst gerendert. Error: can't render tplMaListRadio w00004 on "main": conn.js:1167:17 Error: 0 - SyntaxError: missing : after property idmyEval@http://sm:8082/vis/lib/js/can.custom.min.js:64:548 conn.js:1167:17 Error: 1 - scan@http://sm:8082/vis/lib/js/can.custom.min.js:64:5958 conn.js:1167:17 Error: 2 - n@http://sm:8082/vis/lib/js/can.custom.min.js:76:366 conn.js:1167:17 Error: 3 - n@http://sm:8082/vis/lib/js/can.custom.min.js:76:217 conn.js:1167:17 Error: 4 - renderer@http://sm:8082/vis/lib/js/can.custom.min.js:76:1876 conn.js:1167:17 Error: 5 - registerView@http://sm:8082/vis/lib/js/can.custom.min.js:58:3843 conn.js:1167:17 Error: 6 - o@http://sm:8082/vis/lib/js/can.custom.min.js:58:839 conn.js:1167:17
  • Proxy für Objekte des Modbus-Adapters

    modbus adapter alias
    3
    0 Votes
    3 Posts
    529 Views
    prog42P
    @paul53 said in Proxy für Objekte des Modbus-Adapters: Man kann mit dem $Selector alle Modbus-Datenpunkte erfassen. Ist die Eigenschaft common.read im Modbus-Adapter korrekt gesetzt ? Dann kann man die zu lesenden Datenpunkte zum Spiegeln auf eigene Datenpunkte filtern. Der $Selector sieht sehr gut aus. Dann scheint sich dass ja wirklich sehr einfach als Script umsetzen zu lassen. Vielen Dank für den Tipp! common.read wird bei mir vom Modbus-Adapter für holdingRegisters und inputRegisters auf true gesetzt. Das ist korrekt.
  • 0 Votes
    3 Posts
    269 Views
    N
    @AlCalzone Ok, danke für die Info. Vielleicht schaffe ich es ja mal mich auch etwas für die Allgemeinheit einzubringen. Aktuell bin ich aber noch zu sehr damit beschäftigt, mein eigenes System aufzubauen.
  • 0 Votes
    10 Posts
    924 Views
    apollon77A
    @AlCalzone man müsste mal versuchen ob’s jetzt schon tut. Also mal einen Pr gegen Repo mit einer der anderen URLs. Ggf mir hard coded Version aber ist ja erstmal egal.
  • Hilfe bei Adapter Transport von GitHub -> nach NPM

    Moved enigma2 enigma2 adapter
    20
    1
    0 Votes
    20 Posts
    2k Views
    Matten MattenM
    @AlCalzone OK, verstanden.:male-astronaut: vielen Dank!:+1:
  • 0 Votes
    3 Posts
    293 Views
    DomepD
    @Jey-Cee Vielen Dank!
  • 0 Votes
    1 Posts
    142 Views
    No one has replied
  • 0 Votes
    26 Posts
    2k Views
    paul53P
    @HausBusDe sagte: Dann ist der String mit Komma doch besser oder? Ja.
  • 0 Votes
    3 Posts
    415 Views
    MicM
    @Jey-Cee Danke. Der info.connection war für mich noch Neuland. Ich musste den noch in der io-package.json erst mal überhaupt hinzufügen. "instanceObjects": [{ "_id": "info.connection", "type": "state", "common": { "role": "indicator.connected", "name": "If adapter configuration successfully validated", "type": "boolean", "read": true, "write": false, "def": false }, "native": {} }] Nun geht es mit: this.setState('info.connection', true, true); // change to green this.setState('info.connection', false, true); // change to yellow
  • Anfängerfrage: setState nur bei Änderung?

    adapterentwicklung
    7
    0 Votes
    7 Posts
    400 Views
    H
    @paul53 danke! Ich glaube, dann mache ich das auch so. Wir haben klicked, double klicked und hold start und hold end
  • Broadlink - Gerät regiert nicht mehr auf Befehl

    broadlink 2 adapter
    1
    0 Votes
    1 Posts
    185 Views
    No one has replied
  • Flot / VIS access only to view and to link in web-pages

    flot vis view
    3
    0 Votes
    3 Posts
    335 Views
    M
    @Homoran ups, sorry, hab ich im Büro geschrieben und gar nicht gemerkt, dass das hier ja ziemlich doof ist :)
  • Neue Adapter (Developper Hilfe) Problem gelöst!

    zwei scrollbalken
    11
    1
    0 Votes
    11 Posts
    905 Views
    wawyoW
    @Jey-Cee Danke für Dein Feedback! Bisher habe ich alles gelöst bekommen, ich habe nun folgenden Code verwendet: body,html {padding:0;margin:3;height:auto;} html {overflow:auto} [image: 1597052240270-unbenannt.png] Danke ;)
  • ZigBee neue/unbekannte Geräte - ab 1.0.0

    Locked zigbee zigbee 3.x neuer converter
    402
    1
    0 Votes
    402 Posts
    94k Views
    arteckA
    @hukio schau geneuer hin.. der ist da

281

Online

32.7k

Users

82.5k

Topics

1.3m

Posts