Firmata+Arduino+1wireDS2482

Begonnen von Tobias, 22 Mai 2014, 11:35:52

Vorheriges Thema - Nächstes Thema

Tobias

Ich bin gerade dabei ein 2TE HutschienenModul für einen 1wire Arduino Busmaster zu erstellen. Incl. StrongPullup, Aktivitätsanzeige, eindeutiger ID und Spannung/Stromüberwachung.

Folgende Fragen die ich an Norbert habe:
1. mit welcher i2c-ID sprichst du den DS2482 an? Z.z. habe ich AD0 und AD1 des DS2482 mit GND verbunden.
2. Nutzt du den PCTLZ Ausgang des DS2482? Damit wird der StrongPullup aktiviert.
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

ntruchsess

sowohl I2C-addresse als auch Strong-pullup können in der DS2482Firmata über das 1-Wire-config-kommando dynamisch konfiguriert werden. Eventuell könnte man die Platine ja so gestalten, dass man ggf. einfach mehrere DS2482-100 (mit unterschiedlichen per DIP-schalter oder Lötbrücke wählbaren) I2C-addressen an einem Arduino anschließen könnte indem man die Platinen einfach übereinander steckt?
while (!asleep()) {sheep++};

Tobias

#2
Hallo Norbert,
Gibt es zur i2c Adressauswahl im FRM Modul ein Attribut? Was ist default im Sketch? Ich möchte das Ganze gerne Plug'n'Play haben.
Im ersten Prototyentwurf sehe ich keine mehrfach Busmaster vor.
Ziel ist es ja einen einfachen und kostengünstigen Busmaster zu erhalten den man mit schmalem Budget einfach mehrfach nebeneinanderstecken kann. Ist schon kompliziert genug in dem kleinen Gehäuse den Arduino und den relativ großen Ethernetadapter unterzubringen ;

Grob abgeschätzt müsste einer später um die 15€ liegen...
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

ntruchsess

kann man im Moment noch nicht per Attribut konfigurieren (möglich wären Werte von 0-3), Default im Sketch is 0 (d.h. die tatsächliche I2C-Addresse ist dann 0x30, die Bits 4 und 5 setzt die DS2482-library selbst). Aktuell unterstützt der Sketch auch nur einen einzelnen DS2482.

15 EUR für einen Netzwerkfähigen 1-Wire Busmaster im Hutschienengehäuseformat wäre aber echt eine Ansage!
while (!asleep()) {sheep++};

Tobias

Alles klar.... also AD0/AD1  mit logisch 0 initialisieren, bedeutet beides auf GND legen :)
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

Tobias

Hi norbert,
habe es jetzt endlich geschafft alles auf dem Breadboard zum laufen zu bringen. Funktioniert mit OWX als auch mit OWX_ASYNC.
Nur habe ich auch  mit dem DS2482 sehr oft 1-2sek freezes im Log. Egal ob OWX oder OWX_ASYNC. Ist das nur bei mir so? Noch ist das AbfrageIntervall durchgängig auf 300sek....
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

ntruchsess

Zitat von: Tobias am 29 Mai 2014, 13:51:28
Hi norbert,
habe es jetzt endlich geschafft alles auf dem Breadboard zum laufen zu bringen. Funktioniert mit OWX als auch mit OWX_ASYNC.
Nur habe ich auch  mit dem DS2482 sehr oft 1-2sek freezes im Log. Egal ob OWX oder OWX_ASYNC. Ist das nur bei mir so? Noch ist das AbfrageIntervall durchgängig auf 300sek....

Das ist bei mir leider auch so. Da steht noch Nachbesserung an. Ich komme wegen (realer) Baustelle vor dem Haus im Augenblick nur leider fast nicht zum programmieren.
Aber schön, dass die Hardware schon mal steht und es mit dem DS2482 auf Basis der existierenden Software schon mal grundsächlich läuft.

Gruß,

Norbert
while (!asleep()) {sheep++};

Tobias

Hi Norbert,
so bald du wieder zeit hast mach auch ich mit den Tests weiter. Habe das fertig aufgebaute breadboard erstmal im Schrank verstaut. Dann kann ich auch das platinenlayout weiter machen. Viel Erfolg beim Häuslebauen.

Gesendet von meinem ALCATEL ONE TOUCH 997D mit Tapatalk

Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

ntruchsess

Zitat von: Tobias am 10 Juli 2014, 06:28:09
Viel Erfolg beim Häuslebauen.

danke :-). Ist eine Altbausanierung... Die Perimeterdämmung bis zur Kellersohle ist jetzt drin, die Grube wieder zu. Die verbleibenden Arbeiten über der Erde sind hoffendlich weniger schweißtreibend.

Mit der OWX_ASYNC-implementierung geht's übrigens bald weiter. Ich habe da in der letzten Woche noch einiges im code bereinigt. Die eher schwierig zu beherschenden asynchronen callback-interfaces sind durch das Protothreads-basierte Refactoring obsolet geworden und entfallen mit der nächsten Version ersatzlos. Jetzt ist ausnahmslos alles, was nicht per 'get'-befehl aus dem Web-frontend abgerufen wird, asynchron implementiert. Sieht im Test schon recht gut aus, bei mir gibt's nach der Initialisierung keine weiteren Freezes mehr. Werde ich in Kürze ins FHEM-SVN commiten.

Gruß,

Norbert
while (!asleep()) {sheep++};

Tobias

Hatte ich eigentlich schon gefragt ob die aktuellen hier beschriebenen Probleme mit arduino, ds2482 mit der neuen Version beseitigt sind?

Gesendet von meinem ALCATEL ONE TOUCH 997D mit Tapatalk

Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

ntruchsess

Hallo Tobias,

Die von Dir beobachteten Probleme im Zusammenspiel von OWX_ASYNC und FRM waren ja unabhängig von der OneWireFirmata-implementierung auf dem Arduino. Ich habe es noch nicht testen können, aber das sollte mit der DS2482-Firmata jetzt auch besser laufen.

Gruß,

Norbert
while (!asleep()) {sheep++};

Tobias

Hallo Norbert,
sobald ich aus dem Urlaub zurück bin teste ich nochmal...
Allerdings hatte ich die beschrieben Hänger auch mit dem Standard OWX. Nicht ganz so schnell wie mit OWX_ASYNC aber für ein produktives System noch nicht einsetzbar.

Ich habe es noch nicht ganz verstanden, sind jetzt auch Änderungen in die Firmware eingeflossen? D.h. muss ich nocheinmal eine neue Firmware für den Arduino bauen?

Grüsse aus Benediktbeuern/Oberbayern.....
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

Syntaxterror

#12
Hallo,

ich hab den DS2482 am mega328 auf dem Gertboard mit der 1-W Firmata.
Statt über USB kommuniziere ich über UART zw. Raspi und mega328 (als Arduino).
Soweit läuft alles prima. Der DS2482 wird nach Rreset auch initialisiert und als active angezeigt.
Einmal hatte ich auch Temperaturdaten.
Nun disconnectet er beim Abfragen der Temperaturen jedes Mal.
Nach reset wieder active, Abffrage wieder disconnectet....
Was mag das denn sein?

2014.10.12 13:58:12 1: PERL WARNING: Use of uninitialized value in sprintf at ./FHEM/OWX_FRM.pm line 155.
2014.10.12 13:58:12 1: PERL WARNING: Use of uninitialized value in sprintf at ./FHEM/OWX_FRM.pm line 155.
2014.10.12 13:58:12 1: PERL WARNING: Use of uninitialized value in sprintf at ./FHEM/OWX_FRM.pm line 155.
2014.10.12 13:58:12 1: PERL WARNING: Use of uninitialized value in sprintf at ./FHEM/OWX_FRM.pm line 155.
2014.10.12 13:58:12 1: PERL WARNING: Use of uninitialized value in sprintf at ./FHEM/OWX_FRM.pm line 155.
2014.10.12 13:58:12 3: received String_data: Unhandled sysex command
2014.10.12 13:58:21 3: received String_data: Unhandled sysex command
2014.10.12 13:58:21 3: received String_data: Unhandled sysex command
2014.10.12 13:58:23 3: received String_data: Unhandled sysex command
2014.10.12 13:58:25 3: received String_data: Unhandled sysex command
2014.10.12 13:58:27 3: received String_data: Unhandled sysex command
2014.10.12 13:58:27 3: received String_data: Unhandled sysex command
2014.10.12 13:58:29 3: OWX_ASYNC_RunTasks: onewire maximum number of timeouts exceedet (6), trying to reconnect
2014.10.12 13:58:29 3: OWX_ASYNC_Disconnect


Grüße an alle
FHEM5.7produktiv Pi3+Pi2,CUL868,CUL433,ser2net,DS2482 mit ca.30Sensoren/Aktoren, ca.100xHomematic,Gertboard+GPIO, 10xLaCrosse

Maista

Hallo zusammen

Bin ich hier Richtig ?

Ich habe nun mehrere Stunden versucht ein DS2482-100 via Firmata anzusprechen.

Als Server nutze ich ein Raspberry mit FHEM 5.6.
Auf dem Arduino (Original Arduino Mega mit W5100 (LAN)) läuft ConfigurableFirmata mittlerweile mit DS2482-Support.

Am Arduino selbst sind über Pin 3 schon diverse 1-Wire-Module (DS18B20 inkl. einem Aussensensor via CAT5e, DS2423, DS2438)
angeschlossen, welche funktionieren und Daten sammeln.

Ziel ist es aber den 1-Wire-Bus vom Arduino weg zu bekommen. Er kostet doch etwas mehr als der DS2482-100.

Nach dem ich in der fhem.cfg den I2C-Bus definiert bekommen habe
wird der DS2482-100 gefunden und angezeigt.

Der Wiki-Eintrag http://www.fhemwiki.de/wiki/Arduino_mit_OneWireFirmata scheint hier nicht (mehr) korrekt zu sein.
Dort steht am Schluss der Seite :

define OWX 18

Dies erzeugt eine Fehlermeldung.

In der fhem.cfg habe ich das darum wie folgt definiert :


#Firmata aktivieren
define FIRMATA FRM 3030 global
attr FIRMATA room System

#I2C-Bus definieren, Pin 20/21
define OWI2C OWX 20
attr OWI2C IODev FIRMATA

#DS18B20 am DS2482-100
define OWX_28_FF143D4E0400 OWTHERM DS18B20 FF143D4E0400
attr OWX_28_FF143D4E0400 IODev OWI2C


Im Logfile steht dann dies hier:

2015.01.10 18:59:00 1: OWX: 1-Wire bus OWI2C: interface Firmata detected in FIRMATA
2015.01.10 18:59:24 1: OWX: 1-Wire devices found on bus OWI2C ()

Nach dem speichern der fhem.cfg kommt als Meldung "Error: 0 0" ?

Mit dem Oszi konnte ich am I2C-Bus Daten sehen, am 1-Wire des DS2482 tut sich nichts, ausser das er immer
High bleibt : :(

Hatte gedacht ich finde irgend wo in irgend einem Threat/Wiki im dem genau beschrieben wird wie ich den DS2482
via Firmata ansprechen soll. Aber entweder gibt es nichts oder ich sehe es nicht ;)

Danke schon mal für die Antworten.

Und Nachsicht falls irgend etwas an meinem Eintrag nicht wie erwartend ist.
Das ist mein erster Eintrag.

Gruss Gerd

Tobias

Der ds2482-100 kannst du nur an einem arduino anschließen. Ohne gehts nicht

Gesendet von meinem ALCATEL ONE TOUCH 997D mit Tapatalk

Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter