Hallo Leute,
vorab, ich bin ein blutiger Anfänger was diese Art Thema betrifft, also
bitte ich um Nachsicht, falls derlei Themen bereits existieren.
Zur Problemstellung. Ich habe ein Relais, wenn es betätigt wird, soll
eine URL aufgerufen werden, welche einen Alarm auslöst und das soll 24/7
365 Tage im Jahr laufen. Es sollte ein kostengünstiger Ersatz für eine
SPS sein, da diese etwas überdimensioniert wäre. Ich nehme an, dass
besagter Alarm über URL zuvor immer manuell ausgelöst worden ist, da
würde also die Automatisierung per µC nur eine Bequemlichkeit
darstellen, falls es zuverlässig realisierbar wäre. Falls nicht, würde
es halt einfach weiterhin manuell gemacht werden, da SPS dafür dann zu
teuer wäre.
1. Ansatz war Raspberry Pi an Relais und per gpio.add_event_detect habe
ich einen callback auf eine Funktion gemacht, welche mir die url öffnet
und nach einer verstrichenen Zeit den Browser wieder schließt. Außerdem
habe ich es als Autostart Skript eingestellt, falls mal die Versorgung
verloren geht, doch hier liegt das Problem dieser Methode, denn der
Raspberry Pi läuft über Flash Speicher, dieser soll laut meiner Suche
das schwächste Glied sein bei Versorgungsverlust.
2. Ansatz mit Arduino nano. Relais an Arduino und Überprüfung auf
Flanke, bei Flankenerkennung wird das Signal seriell über USB an den
Computer übertragen, damit dieser per Python Skript die Url öffnet. Dort
sollte ja zumindest der EEPROM zuverlässiger sein als der Flash Speicher
beim Raspberry.
Eigentlich kenne ich den Arduino nur als Lern- oder Prototypenplattform,
weiß daher ebenso nicht ob dieser zuverlässig ist. Wäre da ein Arduino
Industrial zuverlässiger?
Die andere Frage bezieht sich auf die Programmierung, statt Polling auf
positive Flanke würde ich es gerne wie beim Raspberry in Python über
gpio.add_event_detect machen, damit ich die Flanke nicht verpassen kann.
Wie nennt sich diese Funktion in anderen Programmiersprachen, wenn ich
wissen möchte wie man das in c/c++ umsetzen würde? Einfach nur Event?
3. Ansatz mit Numato GPIO zu Usb Modul. Das Relais kommt über das GPIO
Modul per USB direkt an den PC. Dort wird mit einem Python Programm in
einer while Schleife duchgehend der Zustand des GPIO Pins seriell
abgefragt und per Polling auf Flanke geprüft. Aber hier laufe ich wieder
Gefahr, dass man eine Flanke verpassen könnte nicht? Könnte das
verhindert werden, indem ich es anders programmiere? Damit ich es nicht
verpasse, müsste das Programm durchgehend den seriellen Eingang
überwachen und gleichzeitig nach der Flanke suchen, aber bei mir mit der
While Schleife macht er das zyklisch hintereinander, dabei könnte er ja
eben mal eine Flanke verpassen nicht? Und zur Zuverlässigkeit kann ich
bei dem Teil auch nicht viel sagen, wobei es immerhin weniger Bauteile
haben müsste als Arduino und Raspberry und folglich weniger Komponenten
hätte, die Problem verursachen könnten?
4. Bisherige Ansätze waren alle denke ich zu umständlich oder
überdimensioniert. Laut meiner Recherche sollte irgendein nackter µC
vollkommen ausreichen für so eine Aufgabe und dabei auch zuverlässiger
sein, eine Sps ist ja im Inneren auch ein µC, nur mit Redundanz,
besserer Verfügbarkeit etc.. Nur habe ich noch nie irgendwas ausserhalb
Arduino/Raspberry verwendet und keine Ahnung nach welchen Kriterien ich
einen solchen µC aussuchen könnte, wie man diesen in Betrieb nimmt,
programmiert oder weitere Funktionalitäten wie Ethernet hinzufügt.
5. Ich habe USB Relaiskarten gefunden, nach meine Verständnis kommen die
je nach Hersteller alle mit einer eigenen Software, mit der die Karten
geschaltet werden können, da sehe ich aber nicht, wie ich dann den
Zustand auslesen soll um eine URL zu öffnen.
Falls ich etwas falsch verstanden haben soll, gerne darauf hinweisen.
Denn wie erwähnt habe ich noch eine Menge zu lernen. Außerdem soll dies
natürlich auch keine Aufforderung an euch sein, meine Arbeit zu
übernehmen, ich komme einfach nur wegen meiner begrenzten Kenntnisse
nicht wirklich weiter.
Ich bedanke mich vielmals für euer Verständnis.
Moin,
das ganze Konzept scheint etwas fragwürdig. Bei Alarm eine URL
aufzurufen, setzt voraus, daß sämtliche Komponenten
(PC/Router/Switches/Server) einsatzbereit sind, was i.a. nicht
garantiert werden kann, schon gar nicht 24/7.
Die url ist von einer fertigen Software, welche als Alarm sms
verschickt, da eben beim Alarm bestimmte Personen benachrichtigt werden
sollten. Und irgendwie steht das auslösen des Alarms im Zusammenhang mit
dem Relais, weiter Details sind mir leider auch nicht bekannt.
Auf den Rest(PC/Router/Switches/Server) hätte ich sowieso keinen
Einfluss, da dies bereits bestehende Systeme sind, die sich scheinbar
bewährt haben.
Eine SPS kocht auch nur mit Wasser.
Deren Flash/EEPROM schreibt man genau so schnell kaputt.
Womit überhaupt..?
Mir scheint, für die Aufgabe reicht ein ESP8266-01 vollkommen aus.
Wenn denn WLAN zur Verfügung steht.
Die Schwarzen Boards haben 1 MByte Flash, wovon man die Hälfte als
SPIFFS nutzen kann.
svensson schrieb:> das ganze Konzept scheint etwas fragwürdig.
Das sehe ich auch so. Seit wann ist ein URL Aufruf eine garantierte
Transaktion ? Die versackt doch ggf. an hundert Knotenpunkten.
Es muss sich um einen Internetgläubigen handeln, der bei jeder
Internet-Fehlfunktion geflissentlich beide Augen zudrückt.
Womöglich dann noch per WLAN.
Wobei zugegeben seit der Abschaffung der Analogtelefonie mit VoIP auch
kein zuverlässiger Alarm-Meldeweg mehr bereit steht.
Wenigstens müsste der URL Aufrufer die Rückmeldung auswerten, und
überprüfen ob der nicht aus irgendeinem cache stammt, und die Aktion so
lange wiederholen bis was aktuelles zurückkommt.
Daher würde ich im Idealfall natürlich auf Ethernet setzen wollen.
Heisst ich müsste Softwaremäßig in meinem Python oder was auch immer
Skript überprüfen, ob besagte URL tatsächlich erreichbar ist oder ob er
diese nur aus dem Cache aufruft. Bei der Alarmsoftware handelt es sich
übrigens um Poweralarm.
Ich könnte in der Schleife einbauen, dass periodisch geprüft wird, ob
das Gerät ins Internet kommt und sonst gibt es eine Fehlermeldung aus?
Eine andere Möglichkeit die ich für vorstellbar halte wäre, den µC mit
in die Alarmliste aufzunehmen, also nach Aufruf wird auch der µC per sms
oder mail benachrichtigt, was halt eben einfacher ist, erfolgt die
Rückmeldung per sms oder Mail nicht, so würde auch ein Fehler ausgegeben
werden. Was in beiden Fällen wieder nicht optimal wäre, da ich entweder
Sim Modul und Simkarte bräuchte oder ein email Account nur für den µC?
Wie gesagt, ich habe auch in Sachen Programmierung bin ich noch viel am
lernen, weiß daher nicht was für Möglichkeiten ich noch hätte.
Ok, tut mir Leid, ich bin mit viel Halbwissen unterwegs und entschuldige
mich, da einiges auch sehr schwammig/falsch formuliert ist. Ich weiß
auch nicht ob ich die anderen Beiträge richtig verstanden habe.
Aber ich glaube MaWin wollte mir mitteilen, dass der Aufruf einer Url um
einen SMS Alarm auszulösen ein fragwürdiges Konzept sei, da man nicht
sicherstellen kann ob mit dem Url Aufruf der Alarm wirklich ausgelöst
wurde.
Also dachte ich müsste ich softwarteseitig in meinem Skript was ändern.
Ausser ich habe da schon wieder etwas was falsch verstanden.
Und wie gesagt, noch einmal kurz zusammengefasst, da ich das oben
unschön dargestellt habe.
Relais wird betätigt->
Signal wird irgendwie ausgelesen->
Url der Poweralarmsoftware wird aufgerufen->
Poweralarm schickt sms an vorkonfigurierte Nummer aka Alarm ausgelöst
Meine Aufgabe beschränkt sich ausschließlich auf das Signal auslesen und
anschließende Url aufrufen. Was natürlich die Auswahl der passenden
Hardware und die zugehörige Programmierung einschließt.
Wenn es nur um die endgültige Meldung per SMS geht, dann könnte auch ein
Gerät wie das Conrad GX-110 verwendet werden, das direkt eine SMS über
Mobilfunk versendet.
> Was natürlich die Auswahl der passenden Hardware ..
Suchst du sowas, ebay: 272432787707 ?
Durfte so mit die einfachste und billigste Methode sein, Daten ins
Ethernet zu bekommen.....
Also ich habe mich gerade noch mal mit dem Zuständigen abgesprochen und
siehe da, ich habe meine Aufgabenstellung einfach falsch aufgefasst.
Es ist doch nicht so schlimm, wenn es mal nicht gehen sollte, denn eben
habe ich erfahren, dass auch andere Alarme anderweitig ausgelöst werden
und der Alarm den ich einrichten soll per SMS dient nur als Ergänzung,
Redundanz, falls die anderen nicht eingehen sollten.
Ich bin die ganze Zeit davon ausgegangen, ich müsste sicherstellen, dass
da auf keinen Fall irgendetwas ausfällt. Aber wie mehrfach zuvor
erwähnt, spätestens wenn (PC/Router/Switches/Server) ausfällt geht
nichts mehr.. In dem Sinne finde ich dass sich meine Aufgabenstellung
jetzt enorm vereinfacht hat, weil ich dachte ich bräuchte etwas mit der
Zuverlässigkeit einer Sps aber zum Preis eines µC.
Das heißt es bleibt eigentlich nur die Frage, welche der Optionen
zuverlässiger ist. Arduino oder Raspberry, aber das kann ich dann auch
selber guggeln, brauch ich euch nicht weiter stören/verwirren.
ESP8266 wären dafür sehr einfach, haben allerdings einen gemischen Ruf,
was die Zuverlässigkeit angeht. Ich habe einen (in Arduino programmiert)
seit 2 Jahren in 24h Betrieb - ohne Ausfall.
Ansonsten ist vielleicht das folgende Projekt interessant, vor allem
wenn du ROHS und CE konforme Hardware brauchst:
http://stefanfrings.de/net_io/index.html
Diese Firmware verschickt Emails, das kannst du sicher mit geringem
Aufwand auf einen HTTP Request umbauen.
> der Alarm den ich einrichten soll per SMS dient nur als Ergänzung,
Dafür wiederum gibt es Fertiggeräte für Alarmanlagen, zum Beispiel beim
ELV Versand für ca 100 Euro.
https://www.elv.de/gsm-telefonwaehlgeraet-gtw-20.html
'Wobei zugegeben seit der Abschaffung der Analogtelefonie mit VoIP auch
kein zuverlässiger Alarm-Meldeweg mehr bereit steht.'
Man kann analoge Anschlüsse für bestimmte Sonderdienste noch schalten
lassen, allerdings werden die dann im Amt auch in die IP-Wolke
umgesetzt.
So stabil wie früher wird es in der Tat nicht mehr.
DerTomate schrieb:> Ich könnte in der Schleife einbauen, dass periodisch geprüft wird, ob> das Gerät ins Internet kommt und sonst gibt es eine Fehlermeldung aus?
Vielleicht am besten gleich an eine URL ...
DerTomate schrieb:> ich habe meine Aufgabenstellung einfach falsch aufgefasst.>> Es ist doch nicht so schlimm, wenn es mal nicht gehen sollte,
Na dann.
DerTomate schrieb:> Das heißt es bleibt eigentlich nur die Frage, welche der Optionen> zuverlässiger ist. Arduino oder Raspberry
Irrelevant, dein Router, Netzteil, oder Internet ist viel
unzuverlässiger als dein uC.
Ist dir schon mal dein Thermometer, Wecker, Armbanduhr abgestürzt (so
lange die Batterie ok war) ? Da läuft schliesslich Software von
Ingenieuren, nicht von Programmierhanseln drauf.
Ein rPi zur Relaisüberwachung klingt mrgaunzuverlässig da läuft ja
megabyteweise nutzlose Software drauf die nur Unfug anstellt.
MaWin schrieb:> Ist dir schon mal dein Thermometer, Wecker, Armbanduhr abgestürzt (so> lange die Batterie ok war) ?
Ja, mehrfach.
> Da läuft schliesslich Software von> Ingenieuren, nicht von Programmierhanseln drauf.
Damals in den 80er Jahren war das wohl noch so. Heute nicht mehr. Da
kann man sich leider nicht mehr darauf verlassen, dass der Wecker weckt.
Ich stimme allerdings mit Dir überein, dass alle Mikrocontroller bei
sauberer Programmierung und Beschaltung zuverlässig laufen.
Was als zuverlässige, nicht allzu teure Komponente erhältlich ist wäre
ein SMS Relais. So ein Ding hat zB 8 eingaenge, welche Konfiguriert
werden können, und SMS bei Eintreffen eines Zustandes versenden. Wir
haben solche schon seit Jahren als Fehlermelder im Einsatz. Die hapen
eine prepay SIM drin und laufen an 12 V mit wenig Strom.
Stefanus F. schrieb:>> Ich stimme allerdings mit Dir überein, dass alle Mikrocontroller bei> sauberer Programmierung und Beschaltung zuverlässig laufen.
Js, ist richtig ungewohnt :-)
Stefanus F. schrieb:> dass alle Mikrocontroller bei> sauberer Programmierung und Beschaltung zuverlässig laufen.
Ja, hier läuft ein ProMini-328 seit über zwei Jahren vor sich hin.
Was ich über einen längeren Zeitraum keinesfalls einsetzen würde, ist
eine USB-Anbindung zum PC. Wenn das unbedingt sein muß, gehört ein
zyklischer Test drauf und die Software so programmiert, dss sie einen
Ausfall der USB-Anbindung meldet.
michael_ schrieb:> svensson schrieb:>> Wenn es nur um die endgültige Meldung per SMS geht, dann könnte auch ein>> Gerät wie das Conrad GX-110 verwendet werden, das direkt eine SMS über>> Mobilfunk versendet.>> Für 1/10 des Preises kriegt man so eine Alarmanlage:
Scheint tatsächlich teurer geworden zu sein. Aber egal, 250 Euro sind
nicht zuviel dafür, denn die funktioniert tatsächlich seit Jahren(!) in
mehreren Exemplaren zuverlässig. Was man von einer mehrere 1000 Euro
teuren "Profi"-Lösung leider nicht behaupten kann. :-((
Das Ding kann auch für jeden Eingang bis zu 10 SMS versenden, teilweise
können auch Bedingungen definiert werden.
svensson schrieb:>> Für 1/10 des Preises kriegt man so eine Alarmanlage:>> Scheint tatsächlich teurer geworden zu sein. Aber egal, 250 Euro sind> nicht zuviel dafür,
Doch.
Was man für Funktionen bei dem Chinateil für 35EUR kriegt, überzeugt
vollkommen. Nur die CH -- Engl. Beschreibung ist kompliziert.
Dazu noch die Anbindung von Funk-Sensoren.
In D wird es für 130EUR verkauft.
Die Weterentwicklung macht zu ähnlichen Preis auch die Anbindung zum
Smartfone.
michael_ schrieb:> Was man für Funktionen bei dem Chinateil für 35EUR kriegt, überzeugt> vollkommen.
Funktionsumfang ist nicht alles. Meine Berührungspunkte mit chinesischer
Software sind allesamt vorsichtig formuliert enttäuschend. Sobald etwas
verkaufbar ist, geht es scheinbar raus und wird danach jahrelang weiter
so produziert und nicht mehr nachgebessert.
OT: Für die ganze Billigheimerei habe ich kein Verständnis mehr. 250
Euro für eine Lösung, die nachweisbar und zuverlässig funktioniert, ist
nicht viel, wenn die zu überwachende Technik das Tausendfache kostet.
Einerseits verdienen hier im Forum angeblich alle 100k/Jahr oder mehr
und beklagen sich darüber, daß die Firmen alle nur noch billig, billig
produzieren wollen. Andererseits scheint Geiz eben doch geil zu sein.