NEWS
Test Adapter DS18B20 v1.1.x
-
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
-
@wrod Nun habe ich das Problem wieder. Wohl wegen zu knappen Speichers ist mein Raspi immer abgestürzt. Versuche nun, das in der Synology unter Docker nachzubilden. Ich habe das genau so gemacht. Der Adapter findet aber das "entfernte System" nicht.
Kann das daran liegen , dass iobroker unter synology/Docker einen anderen Port benutzt (7234 bei meiner Installation). D.H. mit welchem Port versucht denn das entfernte System den Host zu erreichen? In der .env-Datei ist ja nur die IP eingetragen, kein Port.
Dank im Voraus
-
@wrod Den Port kannst du in der Adapterinstanz als "Server Port" und beim Remote Client in der
.env
Datei alsADAPTER_PORT
einstellen. Standardmäßig ist beides auf Port 1820 (TCP) gesetzt.
Bei Docker musst du wahrscheinlich den Port zusätzlich in den Container durchreichen. -
@crycode OK, danke. Nachdem ein anderer Adapter (BLE) unter Docker nicht funktioniert, habe ich einen neuen Raspi aufgesetzt und ein Backup eingespielt. Es geht auch wieder, wenn ich auf dem remote den client manuell starte, nicht aber, wenn ich den daemon einzurichten versuche.
Wenn ich den client auf dem Remote manuell starte, gibt er Meldungen aus "sending client into adapter" etc (siehe Abbildung). Er beendet dann die Bearbeitung aber nicht, d.h. ich bekomme keine Kommandozeile mehr.
Und wenn ich mich neu mit dem remote verbinde, ist der Client beendet. Er wird dann im Adapter auch wieder nicht mehr angezeigt.
Auch ein CRTL-C im remote führt zu einem "socket closed".Woran kann das liegen?
-
@wrod sagte in Test Adapter DS18B20 v1.1.x:
Wenn ich den client auf dem Remote manuell starte, gibt er Meldungen aus "sending client into adapter" etc (siehe Abbildung). Er beendet dann die Bearbeitung aber nicht, d.h. ich bekomme keine Kommandozeile mehr.
Das ist normal, da der Client dann auf Befehle vom Server wartet.
Und wenn ich mich neu mit dem remote verbinde, ist der Client beendet. Er wird dann im Adapter auch wieder nicht mehr angezeigt.
Auch ein CRTL-C im remote führt zu einem "socket closed".Ist auch normal. Wenn du ein Terminal schließt, dann werden auch alle Prozesse, die an diesem Terminal hängen, beendet.
Um den Client als Daemon laufen zu lassen, musst du den SystemD Service einrichten, wie es beim Client-Setup angezeigt wird:
sudo cp iobroker-ds18b20-remote.service /etc/systemd/system/iobroker-ds18b20-remote.service sudo systemctl daemon-reload sudo systemctl enable iobroker-ds18b20-remote.service sudo systemctl start iobroker-ds18b20-remote.service
Die ersten beiden Zeilen registrieren den SystemD Service.
Zeile 3 aktiviert den automatischen Start beim Systemstart.
Zeile 4 startet den Service (Daemon).Status anzeigen kannst du dann mit
sudo systemctl status iobroker-ds18b20-remote.service
.
Log ansehen mitsudo journalctl -u iobroker-ds18b20-remote.service
. -
@crycode Danke. Ich habe das alles vorher auch so gemacht. Nach dem 4. reboot hat er dann den daemon sauber gestartet. Ursache noch immer unklar. Mal sehen, ob das die Tage so durchhält.
-
@crycode sagte in Test Adapter DS18B20 v1.1.x:
Die einfachste Lösung wäre auf dem separaten Pi auch ioBroker zu installieren und diesen als Slave in ein Multihostsystem einzubinden. Auf dem Slave ioBroker kannst du dann den Adapter installieren und damit den Sensor auslesen.
Hallo,
Ich beschäftige mich seit einiger Zeit mit der Planung einer Luft Wasser Wärmepupe für unser Eigenheim.
Da die Steuerplatine keine freiprogrammierbare Schnittstellen hat, ich aber zusätzliche Temperaturen für Umschaltungen benötige bin ich auf die Idee gekommen, es wie oben vorgeschlagen zu realisieren.
Ein alter Pi 3 ist vorhanden. Dort werde ich den ioBroker installieren. Gibt es für die Installation der One Wire Temperaturen eine Platine die ich zusätzlich installieren sollte oder kann ich direkt an die GPIO Pins gehen.
Die nächste Frage ist, wie deklariere ich den Pi 3 als Slave und verbinde ihn dann mit dem Pi 4 auf dem die Haussteuerung läuft.
Danke
Mit freundlichen Grüßen
Michael