NEWS
Installation "node-red-contrib-1wire" / "npm install -g ."
-
Hallo Markus,
das von Dir vorgeschlagene Modul "node-red-contrib-ds18b20-sensor" habe ich unter Instanzen im Node-Red Adapter eingefügt und iobroker neu gestartet.
Hat alles auf Anhieb geklappt. Vielen Dank.
Den OWFS-Adapter habe ich nicht eingesetzt, da ich hierfür einen USB-Adapter benötige.
Gruß Miggi20000
-
Ja, der vorgeschlagene Weg ist sehr gut
Habe nun beide varianten laufen
Flow:
! [{"id":"3e8af675.e358c2","type":"ds18b20","z":"e488d4df.07337","name":"Sensor 1","sensorid":"28-00000697a7d3","timer":"1","x":104,"y":503,"wires":[["eadfb57d.cb07b","54c5608e.28587"]]},{"id":"eadfb57d.cb07b","type":"debug","z":"e488d4df.07337","name":"Temperatur vom Sensor","active":true,"console":"false","complete":"payload","x":543,"y":571,"wires":[]},{"id":"be569204.33cb98","type":"ds18b20","z":"e488d4df.07337","name":"Sensor 2","sensorid":"28-0000069797b5","timer":"1","x":100,"y":458,"wires":[["89c5d1ca.97bf78","eadfb57d.cb07b"]]},{"id":"54c5608e.28587","type":"ioBroker out","z":"e488d4df.07337","name":"","topic":"node-red.0.DS18B20.Sensor.1","ack":"true","autoCreate":"true","x":555,"y":510,"wires":[]},{"id":"89c5d1ca.97bf78","type":"ioBroker out","z":"e488d4df.07337","name":"","topic":"node-red.0.DS18B20.Sensor.2","ack":"true","autoCreate":"true","x":556,"y":461,"wires":[]},{"id":"1d6a3553.679dcb","type":"ioBroker out","z":"e488d4df.07337","name":"","topic":"node-red.0.DS18B20.Sensor.10","ack":"true","autoCreate":"true","x":557,"y":620,"wires":[]},{"id":"6beb8e7c.ba47f","type":"rpi-ds18b20","z":"e488d4df.07337","topic":"","array":true,"name":"","x":300,"y":614,"wires":[["eadfb57d.cb07b","1d6a3553.679dcb"]]},{"id":"fad0d4e.c245f28","type":"inject","z":"e488d4df.07337","name":"alle 30 sec.","topic":"","payload":"","payloadType":"date","repeat":"30","crontab":"","once":true,"x":119,"y":614.5,"wires":[["6beb8e7c.ba47f"]]}]
Nun muss man bei "node-red-contrib-ds18b20-sensor" noch die Temperatur vom Payload heraus filtern.
Gruß
Jürgen
-
Hi nobody
Ich wollte auch nicht sagen, dass die Lösung besser oder schlechter ist. Ich bin genau deiner Meinung. Beide Systeme haben ihre Berechtigung. Man muss eben noch abwägen, welche Funktionen man braucht und sich dann entscheiden. Ich nutze die OWFS Lösung über TCP. Sicher geht das auch mit Multihost.
Ich wollte auch nur eine Alternative aufzeigen.
Und dank iobroker ist man da ja sehr flexibel.
Gruß Eisbaeeer
Gesendet von meinem SM-G920F mit Tapatalk
-
> For each sensor found, it returns the msg object where the topic is set to the sensor ID and the payload is
Das scheint nicht zu stimmen. Oder ich mache etwas falsch
als Wert wird nun
[object Object],[object Object]
übermittelt.
irgend etwas fehlt mir da noch :roll:
Debug siht so aus:
{ "family": "28", "id": "D3A797060000", "file": "28-00000697a7d3", "temp": 22.25 }, { "family": "28", "id": "B59797060000", "file": "28-0000069797b5", "temp": 22.187 }, { "family": "28", "id": "59AF96060000", "file": "28-00000696af59", "temp": 85 }, { "family": "28", "id": "1D3B96060000", "file": "28-000006963b1d", "temp": 22.187 } ]
-
Die Beschreibung ist nicht so ganz auf dem aktuellen Stand.
Wenn man nur einen Sensor hat, wird die Checkbox Array ausgewertet. Wenn diese nicht gesetzt ist, befindet sich in der payload direkt die Temperatur.
Wenn mehr als ein Sensor vorhanden ist, wird generell ein Array zurückgegeben.
Hier mal ein kleiner Flow, der alle gefundenen Sensoren und dessen Wert als State unter node-red.0 ablegt
`[{"id":"c9619a18.2454d8","type":"inject","z":"fd87934b.2cb37","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":97,"y":480,"wires":[["e33ff961.1daa58"]]},{"id":"e33ff961.1daa58","type":"rpi-ds18b20","z":"fd87934b.2cb37","topic":"","array":true,"name":"","x":333,"y":466,"wires":[["20952379.b557ec"]]},{"id":"502fd11d.1162a","type":"debug","z":"fd87934b.2cb37","name":"","active":true,"console":"false","complete":"true","x":668,"y":480,"wires":[]},{"id":"20952379.b557ec","type":"function","z":"fd87934b.2cb37","name":"","func":"var msg1={topic:\"\",payload:\"\"};\nfor(var i in msg.payload){\n msg1.topic=\"node-red.0.\" + msg.payload[i].id;\n msg1.payload=msg.payload[i].temp;\n node.send (msg1);\n }\nreturn null;","outputs":1,"noerr":0,"x":485,"y":463,"wires":[["502fd11d.1162a","472ec0e.d1a964"]]},{"id":"472ec0e.d1a964","type":"ioBroker out","z":"fd87934b.2cb37","name":"","topic":"","ack":"true","autoCreate":"true","x":676,"y":414,"wires":[]}]` [/i]
-
so, nun läuft die Messung seit einigen Tagen.
Leider habe ich immer wieder "ausreißer" in den Werten
- 22.875 true node-red.0 2016-05-08 16:00:38
85 true node-red.0 2016-05-08 15:59:44 85 true node-red.0 2016-05-08 15:58:37 22.875 true node-red.0 2016-05-08 15:57:37 22.875 true node-red.0 2016-05-08 15:56:43 22.875 true node-red.0 2016-05-08 15:55:37 22.875 true node-red.0 2016-05-08 15:54:37 22.875 true node-red.0 2016-05-08 15:53:43 22.875 true node-red.0 2016-05-08 15:52:35 22.875 true node-red.0 2016-05-08 15:51:32 22.8125 true node-red.0 2016-05-08 15:50:32 22.8125 true node-red.0 2016-05-08 15:49:38 22.8125 true node-red.0 2016-05-08 15:48:31 85 true node-red.0 2016-05-08 15:47:33 22.8125
kann ich die Werte bereinigen?Hat noch jemand das Thema?
-
Hallo derAuge,
Ich hab ab meinen pi nur zwei ds18b20, aber bei denen gibt es keine extremen Ausreißer.
Mit welchem Intervall werden die den ausgelesen?
Vielleicht liegt es auch an der Verkabelung oder dem Widerstand.
Natürlich kann man Werte, die extrem vom erwarteten Bereich abweichen einfach nicht speichern. Aber eine richtige Lösung wäre das wohl eher nicht.
Gesendet von meinem GT-N8000 mit Tapatalk
-
bei mir sind zur Zeit 4 Sensoren angeschlossen.
Sie liegen alle im Büro beim Testaufbau.
Anschaltung :
Erste Abfrage:
Zweite Abfrage:
Und der JS
schedule('*/1 * * * *', tempWerteAuslesen);
Auch die unterschiedliche Auswertung ist intereannt:
Die Frage nach der Anschaltung habe ich auch schon übelegt. Vielleuicht sollte ich alles umbauen auf "Drei-Draht"
Gruß
Jürgen
-
so, nun läuft die Messung seit einigen Tagen.
Leider habe ich immer wieder "ausreißer" in den Werten
- 22.875 true node-red.0 2016-05-08 16:00:38
85 true node-red.0 2016-05-08 15:59:44 85 true node-red.0 2016-05-08 15:58:37 22.875 true node-red.0 2016-05-08 15:57:37 22.875 true node-red.0 2016-05-08 15:56:43 22.875 true node-red.0 2016-05-08 15:55:37 22.875 true node-red.0 2016-05-08 15:54:37 22.875 true node-red.0 2016-05-08 15:53:43 22.875 true node-red.0 2016-05-08 15:52:35 22.875 true node-red.0 2016-05-08 15:51:32 22.8125 true node-red.0 2016-05-08 15:50:32 22.8125 true node-red.0 2016-05-08 15:49:38 22.8125 true node-red.0 2016-05-08 15:48:31 85 true node-red.0 2016-05-08 15:47:33 22.8125
filename="Werte_last_h.png" index="0">~~
kann ich die Werte bereinigen?Hat noch jemand das Thema? `
Wenn du als Ausreißer die Werte mit 85 grad meinst, dann sind das Fehllesungen, welches auf ein falsches Timing am GPIO hinweist. Imho kann man die Checksumme im DS18S20 auswerten und dann entscheiden, ob der Wert richtig übertragen wurde oder nicht. Ich habe diese Fehler erst mit einem 1wire Busbaustein weg bekommen. Dieser wird aber über SPI angesprochen.Der Fehler ist aber auf jeden Fall auf die Software 1wire Schnittstelle zurückzuführen.
Gruß Eisbaeeer
Gesendet von meinem SM-G920F mit Tapatalk
-
Keine Ahnung, ob dies eine Auswirkung hat, aber bei der Beschreibung für den pi, nach der ich die Verkabelung gemacht habe, wird der Widerstand mit 3.3 Volt statt 5 Volt verbunden.
Gesendet von meinem GT-N8000 mit Tapatalk
-
Hallo derAuge,
die 85°C-Werte sind eindeutig Fehlmessungen seitens der Sensoren. Speziell wenn Du die oben abgebildeten, vergossenen Sensoren (aus China) hast würde ich dir sehr empfehlen auf 3-Draht-Technik umzurüsten. Ich hatte mit diesen Sensoren im parasitären Mode auch nur Probleme wo andere (unverdrahtete vom großen C) einwandfrei funktioniert haben.
Gruß Thilo