Relais schalten bei Arduino Neustart alle durch...

Begonnen von Skusi, 15 Januar 2016, 19:28:26

Vorheriges Thema - Nächstes Thema

hugo.crank

Das low schreiben funktionierte bei mir nicht. Wurde immer wieder Durch die firmatalogik überschrieben. Ich verweise nochmal auf meinen posthum uln2003. Das ist sie sicherste Variante und funktioniert bei mir perfekt.

hugo.crank

I'm übrigen ist es ja schön wenn der arduino es doch schaffen sollte ;-) mit etwas Glück überschreibt dann als nächstes das frm_out Modul nochmal den ganzen Quark und erzeugt wieder ein anziehen und abfallen der Relais.

Thorsten Pferdekaemper

Hi,
ich wollte nur auf ein prinzipielles "Problem" mit dem Arduino und ueblichen Relaiskarten eingehen. Mit Firmata kenne ich mich nicht aus. Bisher habe ich solche Sachen nur direkt programmiert.
Gruss,
   Thorsten
FUIP

Wzut

@Thorsten P , Norbert hat im Anfängerforum versucht es hugo.crank zu erklären -> http://forum.fhem.de/index.php/topic,48293.msg400017.html#msg400017
Richtet man sich nach deinem Tipp auf der vorherigen Seite dann hat Norbert das vertauscht, da er zuerst den Output definiert und dann high nachschiebt.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Skusi

@cs-online

Den Wasserzähler taste ich mit einer IR Lichschranke ab. Die hab ich nach dieser Anleitung zusammengelötet:

http://www.hobbyheizer.de/index.php/haussteuerung/stromzaehler

Den Gaszähler hab ich mit einem Reed Kontakt von Reichelt ausgerüstet.
RPI3B, SIGNALduino, NanoCul868 (a-culfw), JeeLink Clone (LaCrosse), Firmata  für FB Heizung,Wasser+Gas+Klingel+Lux, Somfy Rolladen, Pollin Steckd.,TX29DTH,ESPEasy an S0 Stromz., MAX Fensterkontakte, IButton, SonOff Tasmota, ESP LED Controler

cs-online

@Skusi:
Die Sensorik ist schon vorhanden, Gaszähler wie bei Dir mit Reedkontakt von Reichelt, unser Wasserzähler ging nicht mit der Reflexschranke, weil das Zählwerk zu tief im Gehäuse war, aber ich habe bei Ebay günstig einen geeichten Wasserzähler mit Reedausgang bekommen, der ist nun hinter dem vom Versorger. Aber an den GPIOs vom Raspi werden nicht alle Impule gezählt. Deshalb der Gedanke, das mit dem Arduino zu realisieren. Kann ich die Reedkontakte da direkt an die Eingänge legen ? Dann das andere Ende gegen Masse oder gegen Plus ?

Grüße

Christian
FHEM auf RPI 4 4GB, HM-WLAN-Gateway, einige HM-Aktoren,2x EBUSD an Heizung+Solar, ESP8266 am Strom-,Gas-,Wasserzähler, in WLAN-Steckdosen und Relaisleisten, Sonoff S20, Shelly1,2 und 2.5,Lacrosse-Gateway und Sensoren,Sduino,Alexa-Fhem,Huawei PV mit Speicher, alles auf einem RPI und da geht noch mehr

Thorsten Pferdekaemper

Zitat von: Wzut am 10 Februar 2016, 20:17:15
@Thorsten P , Norbert hat im Anfängerforum versucht es hugo.crank zu erklären -> http://forum.fhem.de/index.php/topic,48293.msg400017.html#msg400017
Richtet man sich nach deinem Tipp auf der vorherigen Seite dann hat Norbert das vertauscht, da er zuerst den Output definiert und dann high nachschiebt.
Ja, das würde ich auch so sehen. Es kommt noch ein bisschen darauf an, wie viel Zeit zwischen dem pinMode und dem wieder auf HIGH setzen vergeht, aber sicherer ist bestimmt, zuerst auf HIGH zu setzen und dann den pinMode.
Gruß,
    Thorsten
FUIP

Skusi

Zitat von: cs-online am 10 Februar 2016, 21:24:12
Kann ich die Reedkontakte da direkt an die Eingänge legen ? Dann das andere Ende gegen Masse oder gegen Plus ?

Das kannst Du dir aussuchen. Entweder schaltest Du 5V auf die Eingänge und legst einen 10kOhm Pullup Widerstand von Eingang auf GND, oder Du verbindest des Reedkontakt mit GND und Eingang, schaltest dann den Pullup von Eingang zu 5V.

In Fhem kannst Du dann im FRM_IN Modul konfigurieren ob er bei High oder LOW aktiv sein soll. Man kann auch die Pullups weg lassen und in FRM_OUT den eingebauten Pullup aktivieren, aber da hab ich schlechte Erfahrungen mit gemacht. Besse ist ein externer Widerstand, dann den internen ausschalten, bzw nicht aktivieren.
RPI3B, SIGNALduino, NanoCul868 (a-culfw), JeeLink Clone (LaCrosse), Firmata  für FB Heizung,Wasser+Gas+Klingel+Lux, Somfy Rolladen, Pollin Steckd.,TX29DTH,ESPEasy an S0 Stromz., MAX Fensterkontakte, IButton, SonOff Tasmota, ESP LED Controler

kaizo

Mal auf dein Problem mit dem Durchschalten zurückzukommen, leg doch die Steuerspannung der Antriebe auch über ein Relais, welches ausgeschaltet werden muß, um die Spannung an die anderen Relais zu geben. Dann ist es kein Problem mehr....

Einfach über einen Öffnerkontakt legen.

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

Skusi

Keine schlechte Idee,
leider hab ich nicht alle Relais Kontakte über die selbe Phase versorgt. Eines der Relais schaltet mir die Pumpe und den Kessel bedarfsweise ein. Dieses Relais schaltet eine Spannung die aus dem Kessel kommt. Aner das könnte man auch mit einem weitenen Relais umsetzten.

Ich hab nur gehofft das es eine schickere Software basierte Lösung gibt. Aber scheinbar muß ich das auf Hardwareseite lösen.

...Skusi
RPI3B, SIGNALduino, NanoCul868 (a-culfw), JeeLink Clone (LaCrosse), Firmata  für FB Heizung,Wasser+Gas+Klingel+Lux, Somfy Rolladen, Pollin Steckd.,TX29DTH,ESPEasy an S0 Stromz., MAX Fensterkontakte, IButton, SonOff Tasmota, ESP LED Controler

cs-online

Ähm...

Das lass man keinen Elektriker sehen, dass Du da mehrere Phasen auf einer Relaiskarte hast !!!!! Dann hast Du 400V innerhalb einer Verteilung und das ist aus gutem Grund strengstens verboten !!! Wenn z.b. eine Sicherung raus haut und einer nachsehen will sind da immer noch 230V und wenn da einer rein packt wird es gefährlich...

Nur mal so angemerkt... nicht zum Nachmachen empfohlen :-)

Grüsse Christian
FHEM auf RPI 4 4GB, HM-WLAN-Gateway, einige HM-Aktoren,2x EBUSD an Heizung+Solar, ESP8266 am Strom-,Gas-,Wasserzähler, in WLAN-Steckdosen und Relaisleisten, Sonoff S20, Shelly1,2 und 2.5,Lacrosse-Gateway und Sensoren,Sduino,Alexa-Fhem,Huawei PV mit Speicher, alles auf einem RPI und da geht noch mehr

Skusi

@ cs-online

Ähmm, ich bin zufälligerweise Elektriker von Beruf, und ja Du hast Recht. Aber ich hab mich da wohl falsch ausgedrückt, ich habe nicht 2 verschiedene Aussenleiter (Phasen) auf der Platine, sondern zweimal dieselbe Phase. Einmal aus der Steckdose an der die Schaltung angeschlossen ist für die Ventil Relais, und das Relais für den Kessel/Pumpe kommt quasi aus der Steckdose (selber Raum) an der der Kessel angeschlossen ist.

Kann man schöner machen, aber ich war bis heute zu faul das zu ändern.

Außerdem ist das nicht so selten und auch nicht verboten das Fremdspannung über einen Potentialfreien Kontakt einer Steuerung geschaltet wird. Eine Handelsübliche Zonenregelung hat fast immer einen Kontakt über den eine Pumpe geschaltet werden kann. Und die Spannung kommt fast nie direkt aus der Steuerung.

Wer mit 230V hantiert sollte sich aber schon damit auskennen. Da gebe ich Dir Recht. Und bei Elektrikern zu Hause werden noch viel schlimmere Sachen verknuspelt. :-)  Wenn man vom Fach ist, kann man die Risiken schon gut einschätzen.

... Skusi
RPI3B, SIGNALduino, NanoCul868 (a-culfw), JeeLink Clone (LaCrosse), Firmata  für FB Heizung,Wasser+Gas+Klingel+Lux, Somfy Rolladen, Pollin Steckd.,TX29DTH,ESPEasy an S0 Stromz., MAX Fensterkontakte, IButton, SonOff Tasmota, ESP LED Controler

cs-online

...alles gut, wollte nur auf die Gefahren hinweisen, falls das mal ein Laie mitliest und nachbaut und zwischen den Phasen mit 400V wirds dann zu gefährlich ;-)

grüsse Christian
FHEM auf RPI 4 4GB, HM-WLAN-Gateway, einige HM-Aktoren,2x EBUSD an Heizung+Solar, ESP8266 am Strom-,Gas-,Wasserzähler, in WLAN-Steckdosen und Relaisleisten, Sonoff S20, Shelly1,2 und 2.5,Lacrosse-Gateway und Sensoren,Sduino,Alexa-Fhem,Huawei PV mit Speicher, alles auf einem RPI und da geht noch mehr

dbox2user

Hallo!

Gibt es mittlerweile neue Erkenntnisse, wie man das kurze Einschalten der Relais beim Neustart softwareseitig verhindern kann?
Eine Änderung der Hardware auf Hight-aktiv möchte ich eigentlich vermeiden.

Ich habe mittlerweile auch ein Low-aktives 8fach Relaismodul an einem Arduino Uno per configurable Firmata per Ethernet (V2.06)  laufen und das kurze Einschalten der Relais bei einem Neustart ist schon nicht so schön.

Die Beschreinung von Norbert klappt bei mir nicht.

Das beste Ergebnis habe ich mit folgender Anpassung des firmata Codes erreicht:

#ifdef DigitalOutputFirmata_h
      // sets the output to 0, configures portConfigInputs
      digitalWrite(i,HIGH);
      Firmata.setPinMode(i, OUTPUT);


So schalten die Relais beim Neustart nur noch für ca eine halbe Sekunde.
Aber auch die halbe Sekunde ist noch nicht zufrieden stellend.

Hat irgendjemand noch eine Idee ???

Gruß,
Chris
Fhem 5.8 auf Raspberry Pi2; 1 Wire OWSERVER mit DS9490R und OWX DS2480;AVR-NET-IO mit 1Wire;  LOGO8; Kostalpiko; Selbstbau CUL; Arduino mit cFirmata; Denon AVR; Samsung TV; Fritzbox;

Henno

Sollte es noch jemand interessieren, ich habe eine Lösung.
Nicht die beste aber es geht.


Die Änderung des Sketch wie von @dbox2user beschrieben.

Zusätzlich den Vcc Kontakt des Relai Shields an einen Digitalpin des Arduinos.
Diesen dann bei bedarf anschalten.