Skip to content

Entwicklung

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

1.3k Themen 31.5k Beiträge

NEWS

  • Neuer Adapter: wie sinnvoll konfigurieren?

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    1k Aufrufe
    apollon77A
    Hi Rene, genau so wäre auch meine Empfehlung gewesen :-) Das ist der Weg der die größte Flexibilität für die Nutzer bietet. Im Adapter aufpassen das Du für die "Schreibaktionen" nur die mit "ack=false" beachtest und dann nach dem senden mit "ack=true" quasi bestätigst. Das ist Teil des Grundkonzepts: Finale Werte werden mit "ack=true" geschrieben. Eine "Aktion" die ein Adapter ausführen soll wird immer mit "ack=false" an den Adapter gesendet und wenn dieser Sie verarbeitet hat beschreibt er den Datenpunkt dann mit dem aktuellen Wert (im Zweifel bei Dir wohl eher der gleiche Wert) und "ack=true" um es zu bestätigen. Eine Frage noch: Das sieht mir ein bissl nach "eigenen" Arduino-basierten Geräten aus … stellst Du die Anleitungen wie man die baut mit zur Verfügung? Weil sonst ist das ein Adapter für etwas was nur Du hast ... :-) Oder was genau sind das für Geräte und was braucht man? Für alle Deine Adapter habe ich noch eine Bitte: Baue bitte noch mindestens das Basis-Adapter-Testing mit Travis-CI und Appveyor ein. Infos unter http://forum.iobroker.net/viewtopic.php ... ead#unread . Bei Fragen gern an mich. Als Referenz kannst DU viele Adapter ansehen. Mein "nut"-Adapter iobroker.nur z.B. (wobei Du da den Adapter-Spezifischen test-code rausnehmen musst). Auch in den Adapter-Templates ist das drin. Dann kurz mit dem Github-Account bei Travis-CI und Appveyor anmelden, Projekte da aktivieren und fertig :-)
  • Adapterentwicklung: Bug bei Anlage von states???

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    970 Aufrufe
    carsten04C
    super, vielen Dank Bluefox. Ich habe jetzt gerade mal in adapter.js nachgesehen. Ich vermute mal hier muss gefixt werden: alt: if (common.def !== undefined) { that.setState(id, common.def, options); } else { that.setState(id, null, false, options); } neu: if (common.def !== undefined) { that.setState(id, common.def, options); } else { that.setState(id, null, true, options); } Bin mir aber nicht 100% sicher, ob das die richtige Stelle ist. Grüße Carsten
  • [Frage] Yongse Smart Steckdose

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    2k Aufrufe
    ostseereiterO
    Viel gibt es nicht dazu. Frei IOS App und Android App, unterstützt Apple IOS und Android Smartphones und Tablets, App unterstützt alle Mobilfunknetz(GPRS, UMTS, LTE usw.) und WLAN Netzwerk 2,4GHz.
  • Entwicklung eines Adapters um eine HUE Bridge zu emulieren

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    3k Aufrufe
    B
    Hi, Habe ich mir gerade installiert, da ich eine Harmony habe. Aber wie kann ich damit meinen WeMo Schalter bedienen wenn er in IoBroker gar nicht drin ist. Und eigentlich wollte ich den Schalter in eine Regel einbinden. @eastcoast: Schau Dir das mal an: http://forum.iobroker.net/viewtopic.php?t=5108 ` Danke Gesendet von iPhone mit Tapatalk
  • Kleiner Fehler in adapter-settings.js

    Verschoben
    2
    0 Stimmen
    2 Beiträge
    940 Aufrufe
    apollon77A
    Ich habs im Github mal geändert …kannst also gern mit der Version mal testen ... aber Bluefox sollte dazu noch was sagen https://github.com/ioBroker/ioBroker.ad ... 98442f7eec
  • SetState() nur bei Änderung von Werten?!?

    Verschoben
    17
    0 Stimmen
    17 Beiträge
    4k Aufrufe
    AlCalzoneA
    @jens.maus: Es geht hier natürlich um die Entwicklung eines eigenen Adapters, dort gibt es nicht setState() sondern eben "adapter.setState()" genauso wie "adapter.getState()" und das verhält sich leider auch etwas anders, denn es ist immer asynchron sodass sowas z.B. nicht zu funktionieren scheint: for(var i=0; i < 100; i++) { var newval = i; var stateName = "test." + i; adapter.getState(stateName, function(err, state) { if(state.val != newval) adapter.setState(stateName, {ack: true, val: newval); }); } Das Problem hierbei ist, wie gesagt, das adapter.getState() asynchron ist und somit "newval" und "stateName" innerhalb der anyonmen Funktion die an adapter.getState() übergeben wird zur Ausführungszeit leider die falschen werte hat. Zumindest ist das hier gerade der Fall. ` Bin ein bisschen spät mit der Antwort, aber vielleicht hilft es ja noch zum Verständnis. Bluefox hat dir eine recht elegante Version geschrieben, die sequentiell abläuft. Man kann das Problem aber auch lösen, indem man innerhalb der Schleife eine Funktion definiert, die die Schleifenvariable kapselt -> Stichwort Closure. for(var i=0; i < 100; i++) { // Hier beginnt die umhüllende Funktion (function(i) { // Der Wert von i ändert sich innerhalb dieser Funktion nicht mehr, er ist gekapselt var newval = i; var stateName = "test." + i; adapter.getState(stateName, function(err, state) { if(state.val != newval) adapter.setState(stateName, {ack: true, val: newval); }); // und hier wird die Funktion aufgerufen und der aktuelle Wert der Schleifenvariable übergeben })(i); } Der Code ist ungetestet, sollte aber laufen. Ich hoffe, ich habe mich jetzt nicht vertippt.
  • MyDlink Smart Plug D-Link DSP-W215

    Verschoben
    2
    0 Stimmen
    2 Beiträge
    991 Aufrufe
    F
    Ich hab's mal in ioBroker Skripte verschoben, da es vermehrt um JS geht. Fitti
  • Adapterwunsch - Broadlink

    Verschoben
    9
    0 Stimmen
    9 Beiträge
    8k Aufrufe
    H
    Hallo, ich habe einen Broadlink Adapter geschrieben. Schaut dazu hier vorbei: http://forum.iobroker.net/viewtopic.php?f=24&t=5461 Gruß Reinhard
  • Configuration Dialog - Tooltips

    Verschoben
    21
    3
    0 Stimmen
    21 Beiträge
    4k Aufrufe
    apollon77A
    Ich habe das Themaüber den Smartmeter-Adapter mal ein bissl angestossen weil ich hier das Problem hatte das zu wenig "Zusatzinfos" in den normalen Adapter-Konfigs untergebracht werden können. So kam ich auf die Idee mit den Böbbels mit Mouseover und teilweise sogar Links zur Github-Seite. Das ganze kam auch aus Feedback zu den History-Adaptern das ein bissl unklar ist wie die ganzen Funktionen genau ticket ud was man wie einstellen kann/soll/muss. Bluefox fand die Idee gut und daher sind wir jetzt hier. Wie oben geschrieben wäre ich inzwischen für Vorschlag 3 … passt immer noch weil es nah am Feld ist
  • IoBroker.js-controller 1.0.0 ??? Reif?

    Verschoben
    11
    0 Stimmen
    11 Beiträge
    2k Aufrufe
    ldittmarL
    Hallo Leute, ich würde mich in der Liste mit formatDate anfangen und mich nach oben erarbeiten, wenn es ok ist. Bin ja noch neu hier und möchte nicht gleich mit den komplexen Tests anfangen ;-) Also würde ich dann in der Zeile 336 anfangen… Grüße, ldittmar
  • Hilfe bei der Übersetzung

    Verschoben
    7
    0 Stimmen
    7 Beiträge
    1k Aufrufe
    BluefoxB
    Wow… Das war schnell... Ich habe mit einer Woche gerechnet :)) Vielen Dank. :)
  • Neue Adapter: lifx, milight, fritzdect, jeelink

    Gesperrt Verschoben
    3
    0 Stimmen
    3 Beiträge
    1k Aufrufe
    eric2905E
    So, habe das Thema nun in 4 neue Themen separiert und dort die jeweils nicht mehr zutreffenden Postings gelöscht. Da dies der ursprünglich Original-Thread ist, lasse ich ihn bestehen, sperre ihn aber - so kann dort nicht mehr gepostet werden. Gruß, Eric
  • Cloudadapter unterstützte/benötigte Rollen

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    1k Aufrufe
    P
    Danke für die Liste, diese kannte ich zwar, wusste aber noch nicht, das value generell als readonly interpretiert wird! Ich habe die common jetzt wie folgt geändert: "common": { "name": "Rollladen", "type": "number", "role": "level.blind", "write": true, "unit": "%", "smartName": "Rollladen", "min": 0, "max": 100 } Erhalte jetzt aber folgende anzeige im Adapter [image: 1142_rollo.png] Soll das so sein? PS. Sehe gerade, das das in deinem Screenshot auch so vermerkt ist! Ok, dann sollte das wohl so richtig sein ;)
  • AlexaPi und Einbindung in IO Broker

    Verschoben
    6
    0 Stimmen
    6 Beiträge
    2k Aufrufe
    T
    Hallo zusammen, es macht den Anscheid das AlexaPi auch in Deutschland nicht funktioniert. Zumindest bekomme ich keinen Token und weiß auch nicht warum. Hat hier schon jemand Anlauf genommen? Oder weiß wo schon jemand einen funktionierenden AlexaPi in Deutschland aufgebaut hat? Grüße, Torsten EDIT: Ich habe es jetzt geschafft dem Pi ein paar Töne von Alexa zu entlocken aber es ist meiner Meinung nach keine Alternative. Ist auf english und eine Umstellung auf deutsch ist mir nicht bekannt. Da der Sound am RPI nicht so gut ist, habe ich eine Soundkarte gekauft. Es wird aber nicht wesentlich besser. Nicht einmal zum rumspielen ist es eine Alternative, da die Wake Word Engine abstürtzt oder garnicht erst startet. Der Token geht verloren so das man sich ständig neu einloggen muß. Ich werde noch ein bischen testen aber ich denke das ist nichts genaues! Grüße, Torsen
  • Adapter Socket Probleme

    Verschoben
    8
    0 Stimmen
    8 Beiträge
    1k Aufrufe
    BluefoxB
    @PArt: Vielleicht macht sich ein Wiki besser ` Natürlich WIKI ist besser, aber ich lasse die Doku momentan per JSDoc generieren. Man kann dann ins Wiki kopieren.
  • Alexa: Heizungssteuerung

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    1k Aufrufe
    BluefoxB
    In der letzten Version habe ich Modus rausgenommen und es funktioniert. Also kein Modus mehr, weil kein Sinn bringt.
  • Cloud-Adapter v0.3.2

    Verschoben
    3
    1
    0 Stimmen
    3 Beiträge
    786 Aufrufe
    eric2905E
    Jepp.
  • Übernahme/Einlesen "scriptgui ccu.io" nach "scriptgui iobroker"

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    923 Aufrufe
    bahnuhrB
    Na, dann warten wir mal ab. Bis dahin. Schöne Weihnachten allen. mfg
  • Objekte nach Wert durchsuchen

    Verschoben
    16
    0 Stimmen
    16 Beiträge
    3k Aufrufe
    blauholstenB
    @Bluefox: Ich sehe dein Kode nicht und auf dem git ist nicht das was du testest. ` Das stimmt wohl… @Bluefox: var toDelete = 'ERR: no signal'; Ist natürlich falsch. ` Ich gehe davon aus das du bluefox seinen gesendeten Code, mit folgenden Abschnitt meinst…. if (!states[id].val) toDelete.push(id); der sollte ggf für dich wie folgt geändert werden… if (!states[id].val || (states[id].val === 'ERR: no signal')) toDelete.push(id);
  • Require(x) in index.html benutzen

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    970 Aufrufe
    blauholstenB
    @Bluefox: Require ist nur in Node. Js und nicht im Browser möglich. Es gibt natürlich Bibliotheken die das möglich machen. Aber ich denke es ist nicht das was du willst. Und fs giebt es sowieso nicht. Dann konnte jede Seite deine Festplatte lesen. ` Danke für deine Erklärung, jetzt bin ich wieder ein Stück schlauer.

827

Online

32.5k

Benutzer

81.6k

Themen

1.3m

Beiträge