NEWS
Probleme mit rtl_433 Adapter
-
Systemdata Bitte Ausfüllen Hardwaresystem: Rasp 4 Arbeitsspeicher: 4GB Festplattenart: SSD Betriebssystem: Linux Node-Version: 4.01 Nodejs-Version: 16.18.0 NPM-Version: 8.19.2 Installationsart: Manuell Image genutzt: Nein Adapter: https://github.com/phillipssc/ioBroker.rtl_433
Problem:
Wenn ein neuer Temperatursensor (Bresser tempreture sensors) auftaucht, dann wird folgende Meldung im Log ausgegeben: Error: Parameter "parentChannel" needs to be of type "string" but type "undefined" has been passed. Es werden beim Sensorobjekt nur die Info und Meta Daten auf, nicht aber die Temperaturdaten, Luftfeuchtigkeit usw. Schon vorhandene Sensoren funktionieren ohne Probleme.Vermutlich fligt er im script (iobrokerinterface.js) an dieser Try - catch raus, bin mir aber 1. nicht sicher, und 2. habe ich keine Idee was da anders sein müsste, da ich ich Js nicht wirklich kenne sondern eher VB und C.// Create and populate a new device try { this.createDevice(dObj, (devAddr) => { this.createChannel(dObj, this.aAdj(devAddr), 'INFO', () => { this.createChannel(dObj, this.aAdj(devAddr), 'META', () => { const defaultTypeData = { type: 'string', role: 'value', read: true, write: false }; Object.keys(dObj).forEach((key) => { this.createState( this.aAdj(devAddr), datapoints[key] ? datapoints[key].channel : undefined, key, datapoints[key] || defaultTypeData, (stateAddr) => { // populate them // const state = datapoints[key] && datapoints[key].type === 'number' ? parseFloat(dObj[key]) : dObj[key]; this.adapter.setState(this.aAdj(stateAddr), dObj[key], true); } ); }); this.createState( this.aAdj(devAddr), 'META', 'discovered', {type: 'string', role: 'info', read: true, write: false}, (stateAddr) => { this.adapter.setState(this.aAdj(stateAddr), dObj['time'], true); } ); // add an uptime state this.createState( this.aAdj(devAddr), 'META', 'uptime', {type: 'string', role: 'info', read: true, write: false}, (stateAddr) => { this.adapter.setState(this.aAdj(stateAddr), '0 seconds', true); } ); // add an alive state this.createState( this.aAdj(devAddr), 'META', 'alive', {type: 'boolean', role: 'switch', read: true, write: false}, (stateAddr) => { this.adapter.setState(this.aAdj(stateAddr), true, true); } ); }); }); }); } catch(err) { this.adapter.log.error(err); }- Liege ich eventuell da richtig?
- Was müsste geändert werden?
Der Adapter scheint schon länger nicht mehr gepflegt zu werden.
-
Systemdata Bitte Ausfüllen Hardwaresystem: Rasp 4 Arbeitsspeicher: 4GB Festplattenart: SSD Betriebssystem: Linux Node-Version: 4.01 Nodejs-Version: 16.18.0 NPM-Version: 8.19.2 Installationsart: Manuell Image genutzt: Nein Adapter: https://github.com/phillipssc/ioBroker.rtl_433
Problem:
Wenn ein neuer Temperatursensor (Bresser tempreture sensors) auftaucht, dann wird folgende Meldung im Log ausgegeben: Error: Parameter "parentChannel" needs to be of type "string" but type "undefined" has been passed. Es werden beim Sensorobjekt nur die Info und Meta Daten auf, nicht aber die Temperaturdaten, Luftfeuchtigkeit usw. Schon vorhandene Sensoren funktionieren ohne Probleme.Vermutlich fligt er im script (iobrokerinterface.js) an dieser Try - catch raus, bin mir aber 1. nicht sicher, und 2. habe ich keine Idee was da anders sein müsste, da ich ich Js nicht wirklich kenne sondern eher VB und C.// Create and populate a new device try { this.createDevice(dObj, (devAddr) => { this.createChannel(dObj, this.aAdj(devAddr), 'INFO', () => { this.createChannel(dObj, this.aAdj(devAddr), 'META', () => { const defaultTypeData = { type: 'string', role: 'value', read: true, write: false }; Object.keys(dObj).forEach((key) => { this.createState( this.aAdj(devAddr), datapoints[key] ? datapoints[key].channel : undefined, key, datapoints[key] || defaultTypeData, (stateAddr) => { // populate them // const state = datapoints[key] && datapoints[key].type === 'number' ? parseFloat(dObj[key]) : dObj[key]; this.adapter.setState(this.aAdj(stateAddr), dObj[key], true); } ); }); this.createState( this.aAdj(devAddr), 'META', 'discovered', {type: 'string', role: 'info', read: true, write: false}, (stateAddr) => { this.adapter.setState(this.aAdj(stateAddr), dObj['time'], true); } ); // add an uptime state this.createState( this.aAdj(devAddr), 'META', 'uptime', {type: 'string', role: 'info', read: true, write: false}, (stateAddr) => { this.adapter.setState(this.aAdj(stateAddr), '0 seconds', true); } ); // add an alive state this.createState( this.aAdj(devAddr), 'META', 'alive', {type: 'boolean', role: 'switch', read: true, write: false}, (stateAddr) => { this.adapter.setState(this.aAdj(stateAddr), true, true); } ); }); }); }); } catch(err) { this.adapter.log.error(err); }- Liege ich eventuell da richtig?
- Was müsste geändert werden?
Der Adapter scheint schon länger nicht mehr gepflegt zu werden.
@vetinari77 Bist du einer Lösung des Problems näher gekommen? Ich habe gestern die Batterien an meinem Regenmesser gewechselt und seit dem das gleiche Problem. Der Regenmesser bekommt jedesmal beim Batteriewechsel eine neue Nummer und der Adapter kann jetzt den Objektbaum nicht mehr aufbauen.
Ich habe die Frage gerade mal an den Entwickler des Adapters gestellt. Siehe Link Text .
Ich hoffe, ggf. dort eine Antwort zu bekommen. -
@vetinari77 Bist du einer Lösung des Problems näher gekommen? Ich habe gestern die Batterien an meinem Regenmesser gewechselt und seit dem das gleiche Problem. Der Regenmesser bekommt jedesmal beim Batteriewechsel eine neue Nummer und der Adapter kann jetzt den Objektbaum nicht mehr aufbauen.
Ich habe die Frage gerade mal an den Entwickler des Adapters gestellt. Siehe Link Text .
Ich hoffe, ggf. dort eine Antwort zu bekommen. -
Bitte bei Problemen ein Issue im Adapter Repository anlegen. Hier geht sowas unter.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden