Weiter zum Inhalt

Entwicklung

1.3k Themen 31.9k Beiträge

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

NEWS

  • Adapter Update

    Verschoben
    9
    0 Stimmen
    9 Beiträge
    2k Aufrufe
    S
    Aaah, das war's :) Danke Dir für Deine Hilfe!
  • 0 Stimmen
    8 Beiträge
    3k Aufrufe
    Rene_HMR
    @Bluefox: Mache einen offiziellen Widget Set und der taucht dann in der neue App Version auf. ` Ich habe die beiden Adapter "DasWetter" und "vis-weather" auf NPM hochgeladen. Das war es, was du mit "mach ein offizielles widget set" gemeint hattest, oder?
  • Eigenen Adapter Entwickeln

    Verschoben
    2
    0 Stimmen
    2 Beiträge
    1k Aufrufe
    apollon77A
    Da die Adapter in JavaScript geschrieben sind ist JavaScript natürlich das Mittel der Wahl. :-)
  • Ankündigung Motion - Adapter

    Verschoben
    23
    2
    0 Stimmen
    23 Beiträge
    11k Aufrufe
    S
    Ah…ok...hatte ich nicht auf dem Schirm....Danke für den Hinweis!
  • [Aufruf] Glossar alle zusammen schreiben!

    Verschoben
    35
    0 Stimmen
    35 Beiträge
    6k Aufrufe
    HomoranH
    Any native speakers here? Bluefox hat die englische Seite zum Abschuss, äähh Kontrollesen freigegeben ;-) Gruß Rainer
  • Wemos Schaltaktor/Relai wie aus dem IOBroker heraus betätigen?

    Verschoben
    17
    0 Stimmen
    17 Beiträge
    4k Aufrufe
    K
    Danke für Deine Bemühungen…. Ich konnte es mittels eines Adapters Hm-rpc.1 mit Hilfe von Hormoran und dem Kollegen Klassisch den Wemo in den IOBroker einzubinden. Jetzt wo es unter IOBroker unter Objekte aufgetaucht ist, lässt sich das Teil mit einem Widget ansteuern und sogar mit der Zustandsanzeige... Jetzt versuche ich es im Cloud vom Alexa einzubinden. Das ist aber eine andere Baustelle... danke Dir und dem Paul für die Hilfe! 1526_unbenannt16.png
  • Wetterstation mit ESP8266 Regenvorhersage

    Verschoben
    8
    0 Stimmen
    8 Beiträge
    4k Aufrufe
    K
    ich habe eine Wetterstation nachgebaut. Die Station überträgt die Temperatur, Feuchte, Luftdruck (relativ und absolut) und übeträgt über die WLan die Akkuspannung der Lion Zelle an die CCU als Variable… Geht auch für 30 min. in DeepSleep um Akku zu sparren. Die Daten werden alle 30 min. aktualisiert. Die Regenmenge würde ich dem weatherunderground Adapter entnehmen. @Apollon77, hast Du dein Bewässerungsskript fertig? 1526_1.jpg 1526_img_20170429_105621.jpg 1526_unbenannt1.png
  • Kennt sich wer mit Python aus?

    Verschoben
    10
    0 Stimmen
    10 Beiträge
    2k Aufrufe
    arteckA
    @kmxak: selbst wenn ich es so mache kommt die wartezeit erst wenn ich das script mit strg c abbreche: import MFRC522 import signal import time import urllib continue_reading = True MIFAREReader = MFRC522.MFRC522() # Karten konfigurieren karte1 = [1111111111] karte2 = [1111111111] def end_read(signal, frame): global continue_reading continue_reading = False print "Ctrl+C captured, ending read." MIFAREReader.GPIO_CLEEN() signal.signal(signal.SIGINT, end_read) # Script starten print "\x1b[2J" # Terminal leeren print "RFID Card Reader ioBroker Script" print "Zum Abbrechen des Skripts STRG-C druecken." while continue_reading: (status,TagType) = MIFAREReader.MFRC522_Request(MIFAREReader.PICC_REQIDL) if status == MIFAREReader.MI_OK: print "Card detected" (status,backData) = MIFAREReader.MFRC522_Anticoll() if status == MIFAREReader.MI_OK: print "Card read UID: "+str(backData[0])+","+str(backData[1])+","+str(backData[2])+","+str(backData[3])+","+str(backData[4]) # Hier werden die Karten abgefragt if backData == karte1: urllib.urlretrieve('http://ip/set/Test?value=true') # ioBroker URL print "Status True gesetzt! - Karte 1" elif backData == karte2: print "Karte 2" else: print "wrong Card" time.sleep(5) print "wartezeit" verstehe das einfach nicht. Scanne eine "falsche karte" nach meinem verständnis müsste nun wrong card kommen und nach 5 sec wartezeit. das tut es aber nicht. es kommt immer wieder im millisekundentakt wrong card und das wartezeit erst mit strg c ` wie währe es wenn du dich mit python ein wenig auseinander setzt.. wiki Python_(Programmiersprache) vor allem der Absatz #Syntax das while continue_reading: (status,TagType) = MIFAREReader.MFRC522_Request(MIFAREReader.PICC_REQIDL) if status == MIFAREReader.MI_OK: print "Card detected" (status,backData) = MIFAREReader.MFRC522_Anticoll() if status == MIFAREReader.MI_OK: print "Card read UID: "+str(backData[0])+","+str(backData[1])+","+str(backData[2])+","+str(backData[3])+","+str(backData[4]) # Hier werden die Karten abgefragt if backData == karte1: urllib.urlretrieve('http://ip/set/Test?value=true') # ioBroker URL print "Status True gesetzt! - Karte 1" elif backData == karte2: print "Karte 2" else: print "wrong Card" time.sleep(5) print "wartezeit" ist was andereas als das while continue_reading: (status,TagType) = MIFAREReader.MFRC522_Request(MIFAREReader.PICC_REQIDL) if status == MIFAREReader.MI_OK: print "Card detected" (status,backData) = MIFAREReader.MFRC522_Anticoll() if status == MIFAREReader.MI_OK: print "Card read UID: "+str(backData[0])+","+str(backData[1])+","+str(backData[2])+","+str(backData[3])+","+str(backData[4]) # Hier werden die Karten abgefragt if backData == karte1: urllib.urlretrieve('http://ip/set/Test?value=true') # ioBroker URL print "Status True gesetzt! - Karte 1" elif backData == karte2: print "Karte 2" else: print "wrong Card" time.sleep(5) print "wartezeit" aus die Einrückung kommt es an wann was ausgeführt wird zumidest Grundinformationen habe ich erwartet
  • Javascript Synchron

    Verschoben
    17
    0 Stimmen
    17 Beiträge
    3k Aufrufe
    AlCalzoneA
    Ahhh… Na dann ist der Name xxxSync erst recht passend. Find ich super!
  • Adapter: alle Objekte/States eines Adapters löschen

    Verschoben
    27
    0 Stimmen
    27 Beiträge
    10k Aufrufe
    MeistertrM
    [quote="Bluefox" - Device +---Channel 1 +------- State 1 +------- State 2 +------- State 3 +---Channel 2 +------- State 4 +------- State 5 +------- State 6 +------- State 7 Falls es so ist, dann kannst du es mit``` <code>adapter.getDevices(function (err, devices) { for(var d = 0; d < devices.length, d++) { adapter.deleteDevice(devices[d]._id); } }); ich habe die objekte nach dem schema aufgebaut, und mit der Funtion versucht zu löschen, alles ohne fehler, das device wird danach im adapter auch nciht mehr gefunden, jedoch die channels und states, und die states unter objekte sind auch noch vorhanden, weiß einer wo mein Fehler liegt? mit freundlichen Grüßen Tobi</code>
  • [gelöst] Taster für IR-Signal

    Verschoben
    8
    0 Stimmen
    8 Beiträge
    2k Aufrufe
    R
    Hallo, scheint so dass es jetzt funzt. Das Problem sind offensichtlich wirklich die nicht definierten Zustände der Broadlink Objekte. Ich habe Sie nun alle auf falsch gesetzt. Das Zeichen ist aber erst verschwunden als ich das Objekt im Widget gelöscht und neu eingebunden habe. Wäre vielleicht für die Zukunft ein Verbesserungsvorschlag, nur Objekte zuzulassen, die definiert sind. ICh werde parallel auch noch den Entwickler des Broadlink Adapters informieren
  • Profis gefragt - Entwicklungsumgebung

    Verschoben
    8
    0 Stimmen
    8 Beiträge
    5k Aufrufe
    AlCalzoneA
    Ich arbeite mit VS 2017 Community-Edition (vormals VS 2015 Enterprise (?) ) Funktioniert einwandfrei, inklusive Gulp-Tasks zur Transpilierung, Remote-Debugging aufm Raspi, Git-Anbindung, etc…
  • 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
    1k 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
    1k 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
    5k 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
    1k 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

258

Online

33.0k

Benutzer

83.5k

Themen

1.3m

Beiträge