Hauptmenü

Firmata+Arduino

Begonnen von Rohan, 31 Januar 2013, 14:31:12

Vorheriges Thema - Nächstes Thema

ntruchsess

ach so: Antworten zu den OWX-Änderungen bitte besser in diesem Thread
while (!asleep()) {sheep++};

kaizo

#181
Hallo Norbert,

nach einigen Tagen des Testbetriebs muß ich sagen, einschl. neuer Firmata auf der Arduino, ist wirklich die beste Version bis jetzt. Mit Reconnect und allen weiteren Umständen beim Neustart brauche bis jetzt keinen Reset mehr machen.
Allerdings werden meine DS2423-Nachbauten nicht mehr erkannt. Sobald der 1Wire angeschlossen wird erkennt fhem/frm/ardunio keinen Sensor mehr, d.h. auch die DS1820 sind weg.
Ist noch ein Fehler in der Soft?

Da ich zwei der Nachbauten habe und beide nicht mehr erkannt werden vermute ich dieses so, da diese bis letzte Woche noch munter gezählt haben.


Weil ich vermute, das es nicht an den OWxxx sondern am FRM/Arduino liegt hab ich es auch hier gepostet.

Gruß
Kai
FHEM 6.x  auf i3
1x Maplecun FS20, HM, 1x CUL f. WMbus
1x Arduino Nano für Lacrosse, 1x für Empfang WH1080,
1x Arduino Uno+Ethernet-Shield & Firmata für 1Wire
1x Raspberry Pi für Einbindung Junkers-Heizgerät mit HT3-Schnittstelle, div. Sonoff+EspEasy+Tasmota über MQTT

ntruchsess

freut mich, dass die Firmata jetzt stabil läuft.
Mach wegen dem OWX doch bitte ein FHEM-Update - ich hab gestern ein paar Fixes hochgeladen, bei irgendeiner Zwischenversion vor 8 Tagen ging OWX mit FRM praktisch gar nicht.

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

kaizo

Habe das Update durchgeführt, keine Regung mit dem ds2423. Probiere jetzt den Zähler mal ohne frm an einem Arduino, mal sehen, ob der sich mit den Arduino-Standard-Sketch meldet.

Gruß
Kai
FHEM 6.x  auf i3
1x Maplecun FS20, HM, 1x CUL f. WMbus
1x Arduino Nano für Lacrosse, 1x für Empfang WH1080,
1x Arduino Uno+Ethernet-Shield & Firmata für 1Wire
1x Raspberry Pi für Einbindung Junkers-Heizgerät mit HT3-Schnittstelle, div. Sonoff+EspEasy+Tasmota über MQTT

ntruchsess

Zitat von: kaizo am 12 November 2013, 16:41:43
Habe das Update durchgeführt, keine Regung mit dem ds2423. Probiere jetzt den Zähler mal ohne frm an einem Arduino, mal sehen, ob der sich mit den Arduino-Standard-Sketch meldet.

Gruß
Kai
Verstehe ich Dich richtig: 1-Wire geht solange die DS2423 nicht angeschlossen sind? Merkwürdig...
Ich meine zwar, dass das bei mir letzte Woche auch in Kombination funktioniert hat (hab keine Counter produktiv, sondern nur im Testaufbau), komme aber vorraussichtlich erst morgen abend dazu, das noch mal selber nachzutesten.

Gruß,

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

kaizo

Richtig verstanden.

Teste jetzt mal dem Nachbau-2423 von Ralf, ich habe aber auch noch original Ds2423 hier. Wenns mit dem Nachbau nicht geht werde ich mal die Originalteile anklemmen und dann berichten. Vor Donnerstag wird das bei mir auch nix.

Gruß
Kai
FHEM 6.x  auf i3
1x Maplecun FS20, HM, 1x CUL f. WMbus
1x Arduino Nano für Lacrosse, 1x für Empfang WH1080,
1x Arduino Uno+Ethernet-Shield & Firmata für 1Wire
1x Raspberry Pi für Einbindung Junkers-Heizgerät mit HT3-Schnittstelle, div. Sonoff+EspEasy+Tasmota über MQTT

kaizo

So, nun getestet, und Fehler gefunden.
Liegt nicht an der Software, sondern an einem mechanischen Defekt meines DS2423-Nachbaus im Bereich der Anschlußklemmen. Dadurch kam es scheinbar zu einer Belastung auf dem 1-Wire-Bus.
Scheinbar waren die Klemmen von Versandhaus nicht die Besten, aber nun werden die Zähler wieder 1A erkannt und sind schon eifrig am Zählen.

Gruß
Kai
FHEM 6.x  auf i3
1x Maplecun FS20, HM, 1x CUL f. WMbus
1x Arduino Nano für Lacrosse, 1x für Empfang WH1080,
1x Arduino Uno+Ethernet-Shield & Firmata für 1Wire
1x Raspberry Pi für Einbindung Junkers-Heizgerät mit HT3-Schnittstelle, div. Sonoff+EspEasy+Tasmota über MQTT

ntruchsess

top, freut mich, dass Du den Fehler gefunden hast  :)
while (!asleep()) {sheep++};

Wzut

#188
Ich möchte gerne nochmal das Thema Firmata und 433MHz Baumarkt ( Intertechno ) Funksteckdosen aufgreifen ( Seite 8 & 9 hier vom 17 und 18 Mai 2013).
Ich wollte auch eine Steckdose mit einem Arduino + Firmata steuern und habe versucht Norberts Vorschlag mit der RCSwitch Lib in Firmata einzubauen.
Leider musste ich feststellen das meine C Kentnisse doch recht bescheiden für dieses Vorhaben sind ... ich habe mir daher eine der kleinstenn Firmata Libs als Grundlage genommen, die Servo Firmata , passte soweit ganz gut da ich sie selbst nicht brauche und das FHEM Modul 20_FRM_SERVO mit nur einem SET Kommando auch ganz gut (miss)brauchbar erschien.
Verwendete Hardware :
mehre Baumarkt Funksteckdosen (bsp ELRO) mit den 10 DIP Schaltern ( 5 Schalter Hauscode + 5 Schalter Geräteadresse )
433 MHZ Sendemodul für 3,50  €  ->  http://www.watterott.com/de/RF-Link-Sender-434MHz

Software :
RCSwitch Lib für Arduino -> http://code.google.com/p/rc-switch/
Firmata von Norbert V2.05

Nachdem die RCSwitch Lib installiert ist und das Modul am Arduino hängt sollte man zuerst mal mit der beiligende SendDemo versuchen seine Steckdosen zu schalten.
War das erfolgreich kann nun Firmata neu komiliert werden, hierzu die beiden Dateien von Norbert durch meine Version ersetzen und in der ino Datei beim Abschnitt Servo noch die RCSwitch.h mit aufnehmen :
#include <Servo.h> //wouldn't load from ServoFirmata.h in Arduino1.0.3
#include <RCSwitch.h>
#include <utility/ServoFirmata.h>
ServoFirmata servo;

Config in FHEM :
define Funkschalter FRM_SERVO <PIN Nr des 433MHZ Moduls>

Nach einem  Neustart von FHEM sollte nun im Webinterface der Funkschalter mit dem Status Initialized auftauchen
Ein und Ausgeschaltet wird mit dem Kommando Set Funkschalter angle <WERT>
Die Berechnung von WERT  ( wir benötigen 12 Bit ):
Bsp HouseCode = 10001
Bsp Geräteadresse = 01000
Aus = 01  , Ein = 10
würde Binar den Code 100010100010 ->  dezimal  = 2210  für EIN und 100010100001 ->  dezimal  = 2209 für AUS ergeben
( wer Probleme hat die 12 Bit Binär in Dezimal umzurechen -> http://www.jetzt-rechnen.de/Informatik/Binaer-Dezimal-Umrechner.html )

Wie bereits oben geschrieben ist das alles andere als schön und sauber, aber mehr war für mich z.Z. nicht möglich , vllt erbarmt sich ja doch jemand das ganze in eine Form zu bringen die Norbert in sein Paket aufnehmen kann ( inkl. einem neuen FHEM Modul) Ich hätte auch gerne noch die Servo.h ganz aus dem Code herausgenommen, doch leider bin ich an den PIN Modes gescheitert.

Viel Spass beim testen ;)






Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

kaizo

Hallo Wzut,

Nicht schlecht, ich habe da auch mehrere Steckdosen im Einsatz, bei 9.95€ für 3 Stück konnte ich nicht widerstehen und kann dann auch auf eine Rückmeldung ala Homematic verzichten.
Allerdings nutze ich da das IT-Modul von fhem, finde ich auch eine gute Lösung.

Der Arduino hat sicher noch viel Potential, was für fhem zusätzlich genutzt werden kann.

Gruß
Kai
FHEM 6.x  auf i3
1x Maplecun FS20, HM, 1x CUL f. WMbus
1x Arduino Nano für Lacrosse, 1x für Empfang WH1080,
1x Arduino Uno+Ethernet-Shield & Firmata für 1Wire
1x Raspberry Pi für Einbindung Junkers-Heizgerät mit HT3-Schnittstelle, div. Sonoff+EspEasy+Tasmota über MQTT

ntruchsess

hallo WZut,

finde ich cool, dass Du dich da dran gewagt hast   :)
Schau ich mir gerne näher an und mach gerne was 'vernünftiges' (d.h. ein darauf angepasstes Modul) draus. Braucht nur ein paar Tage, hab (wie immer) zu viele offene Baustellen ;-)

Gruß,

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

Wzut

@Norbert, nur kene Eile ... du brauchst bestimmt nur etwas "suchen & ersetzen" um aus Servo RCSwitch zu machen ;)

@Kai , ja das IT Modul war auch mein erser Gedanke. Es gibt hier im Forum einen Beitrag wo jemand einen CUL mit dem Arduino emuliert. Das hatte ich zuerst von Seriell auf Ethernet umgeschrieben und lief gut mit dem IT Modul. Allerdings habe ich den Arduino der die Steckdose steuern soll nun schon seit sechs Monaten mit Firmata aktiv am laufen ( Seriell mit Digital IO und 1-Wire) Ich häte gerne das IT Modul genommen habe es allerdings nicht geschafft ihm als IODevice Firmata beizubringen. Sollte das jemand schaffen wäre auf der FHEM Seite kein neues Modul für Firmata nötig.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

ThomasL

Hallo Nobert,

ich habe etwas den Überblick verloren.
Ich hab seit Mai einen Ardiuno Mega 256 über Ethernet an FHEM angeschlossen.
Läuft auch sehr stabil.
In den letzten Wochen hatte ich aber ein paar Fehler,
weil die Verbindung nicht wiederhergestellt wurde.
Jetzt hab ich gelesen,
dass Du da ja einiges verbessert hast.
Ich habe diesen Sketch aufgespielt:
https://github.com/firmata/arduino/tree/configurable/examples/ConfigurableFirmata
(vorher natürlich angepasst)
Jetzt wird keine Verbindung mehr hergestellt.

Ich vermisse in dem Sketch auch folgende Funktion:
void setupEthernetClient()
{
  Ethernet.begin(mac,ipClient);  //start ethernet
  delay(1000); // wait 1 second before connecting
  client.connect(ip,port);
  Firmata.begin(client);
  systemResetCallback();  // reset to default config
}
Die wurde im alten Sketch aufgerufen beim Start.

Muss ich auf der FHEM-Seite auch noch was für den neuen Sketch anpassen?

Danke
Thomas

ntruchsess

#193
Hast Du nur den Sketch oder den ganzen Branch genommen?

Die Verbindung zum EthernetServer wird im aktuellen Sketch in der Klasse EthernetClientStream.cpp gekapselt, damit entfällt die setUpEthernetClient-methode auf Sketch-ebene.

Konfiguration in FHEM sollte unverändert sein ('define <name> FRM <port> global')

nicht vergessen im Sketch oben '#include <SPI.h> und #include <Ethernet.h> (bzw. '#include UIPEthernet.h' falls Du ein ENC28J60-basiertes Board hast) durch Entfernen des Kommentars zu aktivieren

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

ThomasL

Danke Norbert,
jetzt klappt es!