NEWS
Test Adapter DS18B20 v1.1.x
-
@crycode Hab jetzt mal ein CAT7 Kabel angeschlossen. Der reine Kabeltausch hat leider nichts bewirkt.
Zum Verständnis... Für was ist der Widerstand genau? Kann ich evtl. irgendwo per Multimeter was messen, sodass ich den optimalen Widerstand einsetze?
-
Juhu... Hatte zufällig noch nen 1,8K Widerstand rum liegen. Jetzt funktioniert es auch. Dennoch... Welcher Widerstand ist optimal und wie kann ich den ermitteln? Und warum brauch ich ihn überhaupt...
-
@xxx_turbo_xxx Der Pullup-Widerstand ist dafür da, die Datenleitung auf ein High-Level zu ziehen. Heißt wenn keine Kommunikation stattfindet sorgt er dafür, dass +3,3 V auf der Datenleitung sind. Jeder Busteilnehmer, der dann Daten übertragen will (Raspi oder die Sensoren) zieht dieses High-Signal dann je nach zu sendendem Bit für kürzere oder längere Zeit (im Bereich von μs) auf Masse (GND). Durch das Zusammenspiel des Pullup-Widerstands und des Pulldowns der Busteilnehmer ergeben sich dann einzelnen Datenbits.
Je kleiner der Widerstand ist, desto stärker wird das High-Signal auf der Datenleitung. Außerdem werden die Flanken der einzelnen Umschaltungen zwischen High und Low steiler, was sich positiv auf die Auswertung der Signale auswirkt.
Wählt man den Widerstand zu klein, dann fließt ein zu hoher Strom und die Busteilnehmer schaffen es nicht mehr das Signal zur Datenübertragung auf Masse zu ziehen. Weiterhin können im schlimmsten Fall die Busteilnehmer beschädigt werden.Ob man den Widerstand genau ermitteln kann, kann ich dir leider nicht beantworten. Mit viel Aufwand und genauem Lesen der Datenblätter aller Busteilnehmer wäre das vlt. möglich.
Normal nimmt man je nach Anwendungsfall immer irgendwas zwischen 1 kΩ und 10 kΩ. Meistens halt 4,7 kΩ weil der etwa in der Mitte liegt und einen Kompromiss zwischen Stromfluss und Signalqualität darstellt. Bei mehreren Busteilnehmern, wie bei dir, muss dann ggf. auf einen kleineren Widerstand zurückgegriffen werden. -
@crycode Danke für die ausführliche Erklärung.
Dann müsste es aber irgendwo einen kritischen Widerstand geben, den es nicht zu unterschreiten gilt, um Beschädigungen an Sensoren oder GPIO zu vermeiden. Dieser kritische Widerstand wär natürlich interessant.
Jetzt hab ich versuchsweise auch meine restlichen DS18B20 mit dran gehängt (insgesamt 10) und mit 1,8K läuft aktuell alles stabil. Mal sehen, ob es so bleibt.
Wenn ich allerdings nach dem Versuchsaufbau die Verkabelung akkurat machen will, werde ich meine Leitungslängen um einiges kürzen. Ich hoffe dass dann alles noch läuft und dann eben der Wiederstand nicht zu gering ist und ich mir was zerschieße. Oder denkst du, dass ich mit 1,8 so oder so im sicheren Bereich bin? Sonst mach ich vielleicht wieder den 4,7 rein und taste mich langsam an niedrigere Widerstände heran!?
-
@xxx_turbo_xxx Alles ab 1 kΩ ist auf jeden Fall ok. 1 kΩ bei 3,3 V macht einen Strom von 3,3 mA.
Widerstände unter 1 kΩ werden sicherlich auch noch nichts direkt beschädigen, das war eher auf sehr kleine Widerstände bezogen.
-
@crycode Tip top... Danke nochmal für deinen Support!!!
-
Vielen Dank für den super Adapter, logge hier auch meine Temperaturen vom Rücklauf der Fußbodenheizung. Sind jetzt mittlerweile 15 Fühler dran. Habe eure Tipps auch befolgt, hatte anfangs Probleme mit der Stabilität. Widerstand jetzt 3x der 4,7 kOhm parallel dran, hatte ich jetzt erstmal zum Testen genommen. Danach ging es auch wesentlich stabiler. Dachte anfangs das Problem sei gelöst, Fühler sind jetzt aber meistens nach ca. 3 Tagen ohne Werte. Sobald die Zuleitung kurz unterbreche und wieder anschließe sind sie wieder alle da.
Hab ein Cat7 Kabel verwendet, Leitungslänge im KG ca. 3 m und von hier aus nochmal ca. 5 m ins 1.OG.
Noch eine Idee was ich tun könnte?Vielen Dank.
Gruß Willi
-
@willi-wunder Hi Willi, hab schon öfters gelesen, dass viele Sensoren an einer Datenleitung Probleme machen.
Du kannst die Sensoren auch auf mehrere Pins am RasPi aufteilen, dass z.B. nicht mehr als 10 Sensoren an einem Strang hängen.Dazu einfach in der Datei
/boot/config.txt
folgendes eintagen/anpassen:dtoverlay=w1-gpio,gpiopin=4 dtoverlay=w1-gpio,gpiopin=17
Damit hättest du dann je einen 1-Wire Bus an GPIO 4 und 17. Bei Bedarf kannst du das natürlich auch noch erweitern.
Unter
/sys/bus/w1/devices/
sollten dann (nach einem Reboot)w1_bus_master1
undw1_bus_master2
zu finden sein.
Die Sensoren erkennt der Adapter dann unabhängig davon, an welchem Bus sie hängen, da das System die Symlinks automatisch richtig anlegt. -
@crycode
Vielen Dank für deine schnelle Hilfe. Da die 3m und 5 m Leitung in Reihe sind, werde ich erstmal die 5 m abklemmen und schauen ob diese Sensoren dann stabil laufen. Werde auf jedenfall berichten -
@crycode Gleiches Bild bei mir. Habe nun den Widerstand mehrfach neu aufgesetzt. Auch von GPIO4 auf GPIO17 gewechselt, um zu sehen, ob die 4 ggf. beschädigt ist. Kann man irgendwie anderweitig prüfen, ob die GPIO in Ordnung sind und überhaupt Daten erhalten?
-
@wrod .. und kann man den bus master irgendwie zurücksetzen, so dass er die devices neu anlegt?
-
@wrod Kommt es bei dir zu Fehlern beim Auslesen, oder werden gar keine Sensoren erkannt?
Wenn Sensoren erkannt werden, dann ist zumindest der GPIO in Ordnung.
Wenn du längere Kabel dran hast, dann kannst du zum Test auch mal einen Sensor einzeln mit möglichst kurzen Kabeln dran hängen.@wrod sagte in Test Adapter DS18B20 v1.1.x:
kann man den bus master irgendwie zurücksetzen, so dass er die devices neu anlegt?
Gute Frage... mir fällt spontan als einfachste Lösung ein Reboot ein.
Alternativ müsstest du über das w1 master sysfs interface auch einzelne slaves aktiv löschen und hinzufügen können. -
@crycode Danke! Nun bin ich einen Schritt weiter (es war in der Tat ein gebrochenes Jumper-Kabel; kommt wohl doch immer mal Ausschuss vor).
Nun versuche ich gerade wget -O remote-client-setup.js https://192.168.220.41:8081/adapter/ds18b20/remote-client-setup.js zu installieren, um die Sensoren, die an einem remote-Raspi hängen zu aktivieren, und bekomme immer
FEHLER: Dem Zertifikat von ▒192.168.220.41▒ wird nicht vertraut.
FEHLER: Das Zertifikat von ▒▒192.168.220.41▒▒ hat keinen bekannten Austeller.
Der Zertifikat-Eigent▒mer passt nicht zum Hostname ▒192.168.220.41▒.wie gehe ich damit um?
Ergänzung: Wenn ich im Aufruf aus "https://" ein "http://" mache, ist der Fehler fort, der andere Raspi auf der 41 antwortet dann aber nicht.
Dank im Voraus
-
@wrod ach ja: und: Ist ein Slave-System mit eigenem nodejs. wirklich nötig? Könnte man die Sensoren nicht so auslesen wie beim Wemos D1 Mini über eien api (so wie hier: https://github.com/100prznt/Temp2IoT#readme)?
-
@wrod sagte in Test Adapter DS18B20 v1.1.x:
FEHLER: Das Zertifikat von ▒▒192.168.220.41▒▒ hat keinen bekannten Austeller.
Demnach nutzt ein sein selbst signiertes Zertifikat. Da musst du beim
wget
noch den Parameter--no-check-certificate
mit angeben:
wget --no-check-certificate -O remote-client-setup.js https://192.168.220.41:8081/adapter/ds18b20/remote-client-setup.js
@wrod sagte in Test Adapter DS18B20 v1.1.x:
Ist ein Slave-System mit eigenem nodejs. wirklich nötig? Könnte man die Sensoren nicht so auslesen wie beim Wemos D1 Mini über eien api (so wie hier: https://github.com/100prznt/Temp2IoT#readme)?
Der ds18b20-Adapter ist auf das Auswerten der Daten eines DS18B20 Sensors ausgelegt. Das von dir beschriebene System macht ja bereits die Auswertung und stellt den "fertigen" Wert per REST-API zur Verfügung, was dann mit dem eigentlichen Sensor nicht mehr viel zu tun hat. Um sowas auszuwerten reicht ein einfaches JavaScript, oder evtl. auch der parser-Adapter.
-
@crycode said in Test Adapter DS18B20 v1.1.x:
wget --no-check-certificate -O remote-client-setup.js https://192.168.220.41:8081/adapter/ds18b20/remote-client-setup.js
Danke. Beim ersten Mal beklagte es sich über keine Berechtigung, dann scheint es geklappt zu haben. Der folgende Befehl "node remote-client-setup.js" bricht aber mit einem Syntaxfehler ab:
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="./favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no"/><meta name="theme-color" content="#000000"/><meta name="description" content="admin - ioBroker"/><link rel="apple-touch-icon" href="./logo192.png"/><link rel="stylesheet" href="./css/leaflet.css"/><link rel="manifest" href="./manifest.json"/><script type="text/javascript" onerror="setTimeout(function(){window.location.reload()}, 5000)" src="./lib/js/socket.io.js"></script><script type="text/javascript" src="./lib/js/sparkline.js"></script><title>Admin</title><script>window.loginHideLogo="false",window.loginMotto="",window.login="true",window.loginLogo="",window.loginLink="",window.loginTitle="",window.vendorPrefix="",window.loginBackgroundColor="",window.disableDataReporting="@@disableDataReporting@@"</script><style>body{background-color:;background-image:url();background-size:cover}.root{background-color:rgba(255,255,255,.87);border-radius:10px}.unsupported{width:200px;background-color:#aaa;margin:auto;margin-top:3rem;padding:10px;line-height:25px;border-radius:4px;text-align:center}.leaflet-container{height:400px;width:100%}</style><script>window.addEventListener("load",(function e(n){window.removeEventListener("load",e,!1);if(window.navigator.userAgent.indexOf("MSIE ")>0||navigator.userAgent.match(/Trident.*rv\:11\./)){const e=document.getElementById("root");e.classList.add("unsupported"),e.innerHTML="Browser is not supported. Please use Firefox or Chrome."}}),!1)</script><link href="./static/css/5.66aabfbf.chunk.css" rel="stylesheet"><link href="./static/css/main.950070b4.chunk.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>!function(e){function t(t){for(var n,o,u=t[0],f=t[1],i=t[2],l=0,d=[];l<u.length;l++)o=u[l],Object.prototype.hasOwnProperty.call(a,o)&&a[o]&&d.push(a[o][0]),a[o]=0;for(n in f)Object.prototype.hasOwnProperty.call(f,n)&&(e[n]=f[n]);for(s&&s(t);d.length;)d.shift()();return c.push.apply(c,i||[]),r()}function r(){for(var e,t=0;t<c.length;t++){for(var r=c[t],n=!0,o=1;o<r.length;o++){var f=r[o];0!==a[f]&&(n=!1)}n&&(c.splice(t--,1),e=u(u.s=r[0]))}return e}var n={},o={4:0},a={4:0},c=[];function u(t){if(n[t])return n[t].exports;var r=n[t]={i:t,l:!1,exports:{}};return e[t].call(r.exports,r,r.exports,u),r.l=!0,r.exports}u.e=function(e){var t=[];o[e]?t.push(o[e]):0!==o[e]&&{6:1}[e]&&t.push(o[e]=new Promise((function(t,r){for(var n="static/css/"+({}[e]||e)+"."+{0:"31d6cfe0",1:"31d6cfe0",2:"31d6cfe0",6:"41d5431a",7:"31d6cfe0",8:"31d6cfe0",9:"31d6cfe0",10:"31d6cfe0",11:"31d6cfe0",12:"31d6cfe0",13:"31d6cfe0",14:"31d6cfe0",15:"31d6cfe0",16:"31d6cfe0"}[e]+".chunk.css",a=u.p+n,c=document.getElementsByTagName("link"),f=0;f<c.length;f++){var i=(s=c[f]).getAttribute("data-href")||s.getAttribute("href");if("stylesheet"===s.rel&&(i===n||i===a))return t()}var l=document.getElementsByTagName("style");for(f=0;f<l.length;f++){var s;if((i=(s=l[f]).getAttribute("data-href"))===n||i===a)return t()}var d=document.createElement("link");d.rel="stylesheet",d.type="text/css",d.onload=t,d.onerror=function(t){var n=t&&t.target&&t.target.src||a,c=new Error("Loading CSS chunk "+e+" failed.\n("+n+")");c.code="CSS_CHUNK_LOAD_FAILED",c.request=n,delete o[e],d.parentNode.removeChild(d),r(c)},d.href=a,document.getElementsByTagName("head")[0].appendChild(d)})).then((function(){o[e]=0})));var r=a[e];if(0!==r)if(r)t.push(r[2]);else{var n=new Promise((function(t,n){r=a[e]=[t,n]}));t.push(r[2]=n);var c,f=document.createElement("script");f.charset="utf-8",f.timeout=120,u.nc&&f.setAttribute("nonce",u.nc),f.src=function(e){return u.p+"static/js/"+({}[e]||e)+"."+{0:"0349f77e",1:"961894c5",2:"3d1b50fc",6:"630fb469",7:"34479e94",8:"d988ca16",9:"992f72fe",10:"c6cfac01",11:"5d187238",12:"490971aa",13:"7d21ae26",14:"f5e1a630",15:"1f242916",16:"bbbe6952"}[e]+".chunk.js"}(e);var i=new Error;c=function(t){f.onerror=f.onload=null,clearTimeout(l);var r=a[e];if(0!==r){if(r){var n=t&&("load"===t.type?"missing":t.type),o=t&&t.target&&t.target.src;i.message="Loading chunk "+e+" failed.\n("+n+": "+o+")",i.name="ChunkLoadError",i.type=n,i.request=o,r[1](i)}a[e]=void 0}};var l=setTimeout((function(){c({type:"timeout",target:f})}),12e4);f.onerror=f.onload=c,document.head.appendChild(f)}return Promise.all(t)},u.m=e,u.c=n,u.d=function(e,t,r){u.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},u.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},u.t=function(e,t){if(1&t&&(e=u(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(u.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)u.d(r,n,function(t){return e[t]}.bind(null,n));return r},u.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return u.d(t,"a",t),t},u.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},u.p="./",u.oe=function(e){throw console.error(e),e};var f=this["webpackJsonpsrc-rx"]=this["webpackJsonpsrc-rx"]||[],i=f.push.bind(f);f.push=t,f=f.slice();for(var l=0;l<f.length;l++)t(f[l]);var s=i;r()}([])</script><script src="./static/js/5.bde6ca2f.chunk.js"></script><script src="./static/js/main.1892293b.chunk.js"></script></body></html> ^ SyntaxError: Unexpected token '<' at wrapSafe (internal/modules/cjs/loader.js:915:16) at Module._compile (internal/modules/cjs/loader.js:963:27) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10) at Module.load (internal/modules/cjs/loader.js:863:32) at Function.Module._load (internal/modules/cjs/loader.js:708:14) at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:60:12) at internal/main/run_main_module.js:17:47
Ich finde da auch keine .env-Datei.
-
@wrod Huch... da er hat ja eine komplett falsche Datei geladen. Das sieht mir aus wie die Index-Datei vom Admininterface.
Dann lad das Setup für den Client direkt von GitHub:
wget -O remote-client-setup.js https://raw.githubusercontent.com/crycode-de/ioBroker.ds18b20/master/admin/remote-client-setup.js
-
@crycode said in Test Adapter DS18B20 v1.1.x:
wget -O remote-client-setup.js https://raw.githubusercontent.com/crycode-de/ioBroker.ds18b20/master/admin/remote-client-setup.js
Danke. Nun habe ich auch eine .env.
Ich schaue mal rein.
-
@wrod
Es ist ein ganzes Stück weiter.
Allerdings erhält das entsprechende Objekt "(null)"-Werte. -
@wrod Sorry, zu eilig. Nun geht es