NEWS
Test Adapter DS18B20 v1.1.x
-
@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 -
@altersrentner Eine fertige Platine ist mir hier nicht bekannt und wird eigentlich auch nicht benötigt, da du nur mit den drei Kabeln an die GPIOs musst. Entweder gehst du direkt mit Jumper-Kabeln auf die Pins, oder nutzt Pfostenstecker etc.
Mit der aktuellen Version vom Adapter brauchst du nicht zwangsläufig einen ioBroker Slave.
Der Adapter kann auf deinem normalen ioBroker Host laufen und auf dem Pi 3 installierst du dann einfach nur Node.js und den Remote-Client vom Adapter und aktivierst die Option "Entfernte Sensoren aktivieren" in den Adaptereinstellungen. Alles nötige dazu ist bei den Adaptereinstellungen erklärt. -
@crycode Hallo,
Danke für Deine Antwort.
Die Temperaturen werden aber an den Pi 3 angeschlossen?
Mit freundlichen Grüßen
Michael -
@altersrentner sagte in Test Adapter DS18B20 v1.1.x:
Die Temperaturen werden aber an den Pi 3 angeschlossen?
Die Sensoren, ja.
-
@crycode Danke!
MfG Michael -
Hallo,
ich habe an meinen Raspberry über 2 GIPOS mehrere DS18B20 angeschlossen. Nur leider findet das dein Programm nicht.
Was mache ich falsch?Vielen Dank schonmal
-
@sandra1234
Die Doku hier gelesen? -
@fredf Ich habe auch das Problem mit vielen (derzeit 12) ds18b20.
Diese sollen/können an verschiedene GPIO angeschlossen werden. Wie genau sieht das aus? braucht lediglich die Daten-Leitung an unterschiedliche GPIO-Pins angeschlossen werden - jeweils mit einem 4,7 kOhm Widerstand gegen 3,3V? Oder muss jeder Strang auch an eine andere Stromversorgung angeschlossen werden?Was bedeuten die dann mehrfachen w1_bus_masterX in der Praxis? Mit der Standardeinstellung /sys/bus/w1/devices müssten doch alle ohne weitere EInstellungen gefunden werden, oder?
Dank im Voraus
Dank im Voraus
-
@wrod sagte in Test Adapter DS18B20 v1.1.x:
braucht lediglich die Daten-Leitung an unterschiedliche GPIO-Pins angeschlossen werden - jeweils mit einem 4,7 kOhm Widerstand gegen 3,3V?
Genau so. Für jede Gruppe eine eigene Datenleitung mit eigenem PullUp Widerstand gegen +3,3 V. Die Spannungsversorgung kann für alle Sensoren gemeinsam sein.
@wrod sagte in Test Adapter DS18B20 v1.1.x:
Mit der Standardeinstellung /sys/bus/w1/devices müssten doch alle ohne weitere EInstellungen gefunden werden, oder?
Genau, damit werden alle Sensoren gefunden, die im System bekannt sind.