Weiter zum Inhalt

ioBroker Allgemein

29.7k Themen 437.6k Beiträge
Integrationtsplattform für IoT

NEWS

  • TINT mit IOBROKER und originalen FB koppeln

    tint zigbee fernbedienung
    3
    0 Stimmen
    3 Beiträge
    772 Aufrufe
    Karsten ThiemannK
    Moin Moin, wie hast Du es denn geschafft, die Leuchtmittel anzulernen? Irgendwie funzt das bei mir nicht so wirklich.....oder eher gar nicht...
  • javascript fehler nach update

    velux-klf200-api js controller
    3
    0 Stimmen
    3 Beiträge
    430 Aufrufe
    Z
    @arteck said in javascript fehler nach update: @Zeiss sagte in javascript fehler nach update: velux-klf-api zeigmal das script 'use strict' ; // Netzwerk const Ip = '192.168.2.89' const Passwort = '*************italicised text*' // WLAN Passwort const baseObjectPath = 'javascript.0.Velux.' const harmony = '1' const Rollos = { RolladenBuero: 0, RolladenWohnzimmer: 1, RolladenKueche: 2, RolladenEsszimmer: 3, RolladenSchlafzimmer: 4, RolladenGaestezimmer: 5, RolladenJulian: 6 } // Gruppen. All, SZ, .. are then names of states. Add new properties for more groups const groups = { All : Object.values(Rollos), // all IDs of shutters hinten: [Rollos.RolladenBuero, Rollos.RolladenKueche, Rollos.RolladenEsszimmer, Rollos.RolladenSchlafzimmer], // Hofseite vorne : [Rollos.RolladenWohnzimmer, Rollos.RolladenGaestezimmer], // Strasse } const All = Object.keys(Rollos) for(let shutter of All) { createState(baseObjectPath + 'shutter.' + shutter, 0, { name: 'shutter ' + shutter, type: 'number', min: 0, max: 100, unit: '%'}) } for(let key of Object.keys(groups)) { createState(baseObjectPath + 'groups.' + key, 0, { name: 'group ' + key, type: 'number', min: 0, max: 100, unit: '%'}) } const MaxNodeIdx = All.length; // 5 Rollos.. const Up = 0 // Rollo oben const Down = 0xc800 // Rollo unten const Stop = 0xD200 // Stopkommando // Variable var velux = require('velux-klf200-api') var Connected = false let Commands = {} var SessionId = 0 // Zustand der Rollos holen function GetState(shutters, sessionId) { if (Connected) { shutters = shutters || All log('checking shutters ' + JSON.stringify(shutters), 'debug') velux.sendCommand({ api: velux.API.GW_STATUS_REQUEST_REQ, sessionID: sessionId || 0, indexArrayCount: shutters.length, indexArray : shutters, statusType : 3 // Main Info }) } } // Callback fuer Positionsrueckmeldung velux.on('GW_STATUS_REQUEST_NTF', Status); function Status(data) { var Target = Math.round(100 - data.targetPosition.value) var Current = Math.round(100 - data.currentPosition.value) // aktuelle Position var Time = data.remainingTime // Restlaufzeit var Index = data.index // Node index var StatusType = data.statusType // Status Typ "Main Info" = 3 erwartet //console.log(JSON.stringify(data)) //console.log(Z[data.index] + ': Ziel ' + Target + ' Aktuell: ' + Current + ' Restlaufzeit :' + Time) if ( (StatusType === 3) && (Index >= 0) && (Index < MaxNodeIdx)) { var IdStrIst = baseObjectPath + 'shutter.' + Z[data.index] setState(IdStrIst, Current, true) } } // Callback Ende Job velux.on('GW_SESSION_FINISHED_NTF', JobFinished); function JobFinished(data) { log("EndCmd (" + data.sessionID+')', 'debug') let sessionKey = 'session_' + data.sessionID if (typeof Commands[sessionKey] !== 'undefined') { let shutters = Commands[sessionKey].shutters // get state after job finished GetState(shutters, data.sessionID) delete Commands[sessionKey] } } // Verbindung aufbauen function ConnectKlf() { if (! Connected) { Connected = true; velux.connect( Ip, {} ).then(()=>{ velux.login( Passwort ).then(()=>{ log("Klf connected!", 'info') Connected = true GetState(); }) }) .catch((err)=>{ log('connect error ' + JSON.stringify(err), 'error') Connected = false velux.end() }) } } function Rollo( Rollos, Val) { if ( Connected ) { return velux.sendCommand({ api: velux.API.GW_COMMAND_SEND_REQ, sessionID : ++SessionId, commandOriginator: 1, priorityLevel: 2, parameterActive: 1, functionalParameterMP: {rawValue : Val}, indexArrayCount: Rollos.length, indexArray : Rollos, priorityLevelLock: false, }).then((data)=>{ log("StartCmd (" + data.sessionID+')', 'debug') Commands['session_' + data.sessionID] = { shutters: Rollos } }) .catch((err)=>{ log(err, 'error') }) } } // Restart einmal pro Tag um 22 Uhr schedule('5 20 * * *', function () { velux.sendCommand({ api: velux.API.GW_REBOOT_REQ}) Connected = false }); // zyklisches Senden Idle Telegramm und Rolladenstatus holen schedule('*/1 * * * *', function () { velux.sendCommand({ api: velux.API.GW_GET_STATE_REQ}) .then((data) => { //Connected = true GetState() // Rolladenpostionen holen }) .catch((err) => { Connected = false log('Connection lost...' +JSON.stringify(err), 'error') ConnectKlf() }) }); // Verbinden zu klf200 ConnectKlf() // Verbindung abbauen und aufraeumen bei Stop onStop(() => { Connected = false log("Disconnect", 'info') velux.off('GW_STATUS_REQUEST_NTF', Status) velux.off('GW_SESSION_FINISHED_NTF', JobFinished) velux.end() }); on({id: new RegExp(baseObjectPath.replace('.', '\.') + 'shutter\..*'), change:'any', ack: false}, function (obj) { let State = Down - Down / 100 * obj.state.val let shutterName = obj.id.split('.').slice(-1)[0] let shutterId = Rollos[shutterName] log('Moving shutter ' + shutterName + '(' + shutterId + ')' + ' to ' + obj.state.val + '%', 'info') Rollo([shutterId], State) }); on({id: new RegExp(baseObjectPath.replace('.', '\.') + 'groups\..*'), change:'any', ack: false}, function (obj) { let State = Down - Down / 100 * obj.state.val let shutterName = obj.id.split('.').slice(-1)[0] let shutters = groups[shutterName] || [] if (shutters.length > 0) { log('Moving shutter group ' + shutterName + ' to ' + obj.state.val + '%', 'info') Rollo(shutters, State) } }); //******************************************************************************* // Mapping fuer Logitech Harmony //******************************************************************************* // Dach zu subscribe({id: 'fakeroku.0.ioBroker.keys.Up', val : true, ack :true}, function (obj) { Rollo(harmony, Up) }); // Dach auf subscribe({id: 'fakeroku.0.ioBroker.keys.Down', val : true, ack :true}, function (obj) { Rollo(harmony, Down) }); // Dach Stop subscribe({id: 'fakeroku.0.ioBroker.keys.Select', val : true, ack :true}, function (obj) { Rollo(harmony, Stop) });
  • (gelöst)ioBroker mit jeder IR-Fernbedienung (Arduino-USB)

    arduino mysensors usb seriell
    3
    0 Stimmen
    3 Beiträge
    661 Aufrufe
    E
    Noch ein kleiner Tipp Die Empfangsleistung kann man deutlich verbessern indem man zwei IR-Receiver parallel schaltet (bei mir beide Eingänge auf Pin11) Hier noch ein Bild von den IR-Receivern (KY-022) [image: 1591788390278-ky-022.png]
  • [gelöst]zu hohe CPU Auslastung

    cpu last proxmox
    16
    0 Stimmen
    16 Beiträge
    1k Aufrufe
    NashraN
    @Dominik-F sagte in [gelöst]zu hohe CPU Auslastung: @Nashra Vielleicht liegts ja bei dir wie bei mir an einem Skript Da habe ich nichts besonderes laufen. Aber trotzdem mal alle deaktiviert gehabt und geschaut was passiert. Wurde ein bischen weniger, also kann es an denen nicht liegen. Schaun wir mal...
  • ioBroker | Alexa | HmIP Rollos

    alexa rollos
    2
    0 Stimmen
    2 Beiträge
    129 Aufrufe
    O
    Hat zwar nichts mit iobroker zu tun, aber: Alexa, "Name der Beschattungsgruppe" 0% bis 100% Wobei 0% = keine Beschattung und 100% = komplett beschattet
  • Warum haben viele Adapter eigene MQTT-Broker?

    mqtt broker tasmota shelly
    18
    0 Stimmen
    18 Beiträge
    1k Aufrufe
    M
    Meine Erfahrung vor 1,5 Jahren mit dem MQTT Broker waren durchwachsen. Der Adapter war nicht besonders stabil, so dass ich den sonoff Adapter genommen haben, der dann funktionierte. Aber vielleicht ist das ja besser geworden.
  • Zigbee Verschiedenes - u.a. Xiaomi Aquara Smart Home Detector

    Verschoben
    2
    0 Stimmen
    2 Beiträge
    429 Aufrufe
    A
    Ich weiß gar nicht, warum hier noch nicht geantwortet wurde... Ja, du kannst die Tradfri-Lampe über das Zigbee-Protokoll auch ohne Tradfri-Hub steuern. Allerdings hatte ich mit dem Zigbee-Adapter (wenn du die günstige USB-Variante meinst) Signalstärke-Probleme. Ich nutze jetzt den RaspBee-Adapter und bin sehr zufrieden damit. Wenn du mit "Adapter" den Software-Teil im ioBroker meinst: Ja, geht. Die Lampe anschalten bei bewegung, geht natürlich auch. Dabei sollte die Marke des bewegungsmelders eigentlich egal sein. Mit entsprechendem Skripting kannst du dir die Logik dafür bauen. Ich verwende als Bewegungsmeldet noch den von Sonoff. Und Meine Badezimmer-Spiegelbeleuchtung schaltet sich bei gewegung für 30 Sekunden ein. Danach geht er von selbst wieder aus. Natürlich kann ich über einen eingebundenen Schalter oder über Alexa-Kommando auch individuell ein- oder ausgeschaltet werden. Dann bleibt er beispielsweise dauerhaft an. Realisiert habe ich das über ein Skript in NodeRed
  • iot - simulierter Tastendruck

    bmw iot iot adapter iot adapter button iot alexa devices
    1
    0 Stimmen
    1 Beiträge
    162 Aufrufe
    Niemand hat geantwortet
  • Wechsel Zigbee Stick -> Zigbee Lampe link_quality weg

    zigbee 2538 gledopto e27 gl-b-008z
    6
    1
    0 Stimmen
    6 Beiträge
    458 Aufrufe
    R
    @arteck Ja, lassen wirs mal laufen ...
  • Skript per Alexa stoppen

    skript szene alexa
    2
    0 Stimmen
    2 Beiträge
    123 Aufrufe
    A
    @lustig29 Hi welches Skript`? mit Alexa nen State setzten Bewegungsmelder Inaktiv z.B. und dies im Skript abfragen müsste doch schon gehen. Skripte Stoppen tut man nicht...
  • TR-064 Problem

    234
    24
    0 Stimmen
    24 Beiträge
    3k Aufrufe
    Z
    @TorstenU Mal das blaue Zahnrad links oben probiert?
  • Xiaomi Aquara Doppeltaster Frage

    xiaomi doppeltaster
    9
    0 Stimmen
    9 Beiträge
    339 Aufrufe
    lemonbiterL
    @crunchip Ah... OKAY... Danke... :-)
  • Master / Slave System Tinkerboard defekt

    tinkerboard s master slave
    1
    0 Stimmen
    1 Beiträge
    250 Aufrufe
    Niemand hat geantwortet
  • Adapter "Fritzbox CheckPresence" - Konfiguration?

    fritzbox checkpresence
    5
    2
    0 Stimmen
    5 Beiträge
    917 Aufrufe
    F
    @sigi234 Hi, vielen Dank. Das war mir nicht klar. Bei pdetect auf der ccu musste man auch keinen User angeben, deswegen bin ich da schlicht drüber weg gegangen. Grüße...
  • Migration Daten von History zuSQL/InfluxDB?

    Verschoben
    9
    0 Stimmen
    9 Beiträge
    2k Aufrufe
    FredFF
    @ilovegym Danke für die
  • modbus Adapter startet nicht

    modbus adapter
    2
    0 Stimmen
    2 Beiträge
    354 Aufrufe
    H
    Hallo zusammen, Problem ist dank diesem Posting gelöst: https://forum.iobroker.net/topic/11317/script-zum-auslesen-eines-c-m-i-von-ta-uvr1611 Danke
  • js-controller update auf 3.0/3.1 geht nicht

    js-controller
    5
    1
    0 Stimmen
    5 Beiträge
    844 Aufrufe
    S
    @Mirtl Der Datenordner ist halt meist nicht einfach so austauschbar, und im Moment weiß noch niemand so recht warum. Aber der Versuch macht bekanntlich klug.
  • Broadlink rm pro plus der Stress verursacht ....

    broadlink
    12
    0 Stimmen
    12 Beiträge
    2k Aufrufe
    A
    na klar. machen wir
  • [gelöst] Zwei Uhren unterschiedliche Zeitzonen

    uhrzeit zeitzone
    12
    0 Stimmen
    12 Beiträge
    760 Aufrufe
    Tom SonT
    @paul53 Die mit dem NPM Modul habe ich jetzt bei mir laufen.
  • js-controller update Windows 10

    js-controler 3.0x
    5
    0 Stimmen
    5 Beiträge
    424 Aufrufe
    J
    Version node.js 10.17

281

Online

32.8k

Benutzer

82.9k

Themen

1.3m

Beiträge