Autor Thema: FHEMCocktail  (Gelesen 3860 mal)

SpenZerX

  • Gast
Antw:FHEMCocktail
« Antwort #15 am: 28 Juli 2016, 15:38:07 »
Genau das habe ich ja gemeint. Werde ich mit den Säften auch so machen :)


Also willst du eine Peristaltic Pump einsetzen? Die kosten ohne Schrittmotor 8-12 Euro. Mit Schrittmotor wirds aber wohl erst interessant. Und dann wird es teuer. Oder selber bauen.
 
Für die Ansteuerung kannst du dann vielleicht auf Boards von 3D Druckern zurückgreifen. RAMPS oder so.

Naja ich denke zu viel Aufwand für zu Hause - aber mit dem entsprechenden Durchsatz für Partys genau das richtige.  Dann macht serielle Befüllung der Zutaten auch wieder mehr Sinn.


Offline 2P4u

  • Full Member
  • ***
  • Beiträge: 124
Antw:FHEMCocktail
« Antwort #16 am: 28 Juli 2016, 16:15:45 »
Hallo,

habe hier mal schnell meine Bewässerungssteuerung gepostet. Die arbeitet mit Rezepten und einer SPS- ähnlichen Ablaufsteuerung.  Ventil- und Rezeptzahl lässt sich beliebig erweitern. Die Pumpenrückmeldung könnte das Signal "Flaschenrevolver in Pos." werden. Vielleicht kannst du es ja gebrauchen und Weiterentwickeln. Es fehlt noch der Dummy mit den Merker- Readings. Den liefere ich noch nach...

Gruß

Frank

Das finde ich ne coole Idee. Ich selber bin Automatisierungstechniker, daher kenne ich mich mit SPS ganz gut aus. Ich möchte Theoretisch eine S7-400 CPU mit Siemens BATCH System nachbauen. Allerding nicht so krass aber vom Prinzip ist das das was du da gemacht hast.

Das werde ich mir auf jeden Fall anschauen.

An alle: Gibt es den ausser Firmata eine Möglichkeit den Arduino zu steuern?

Grüsse Daniel
1x Ubuntu Server
1x LaCrosse Gateway für PCA301 /1x HMLAN /1x HMLGW
2x HueBridge mit Devices/ 1x Logitech Harmony Ultimate

Offline 2P4u

  • Full Member
  • ***
  • Beiträge: 124
Antw:FHEMCocktail
« Antwort #17 am: 28 Juli 2016, 18:10:18 »
So ich teste jetzt mal die Schrittmotoren mit Firmata.
Ich habe folgendes Problem:
Zitat
define n3 notify Test1.* set stepper1 position 10000 2000;;sleep 5;;set stepper1 position 0 5000
Bei dem Code fährt stepper1 auf position 10000 mit einer Geschwindigkeit von 2000.
Jetzt sollen 5 Sekunden gewartet werden... Ja aber leider beginnt der Sleep mit 5 Sekunden schon mein Aufruf des Notify und nicht erst nachdem der stepper1 bei 10000 angelangt ist.

Gibts denn keinen besseren Ablauf? Muss ich da ne If einbauen, wenn der stepper1 bei 10000 angekommen ist erst weiter machen?
1x Ubuntu Server
1x LaCrosse Gateway für PCA301 /1x HMLAN /1x HMLGW
2x HueBridge mit Devices/ 1x Logitech Harmony Ultimate

Offline fiedel

  • Hero Member
  • *****
  • Beiträge: 1690
Antw:FHEMCocktail
« Antwort #18 am: 28 Juli 2016, 18:18:10 »
Ich selber bin Automatisierungstechniker, daher kenne ich mich mit SPS ganz gut aus.
Damit verdiene ich auch meine Brötchen.  ;) Daher kam auch die Idee mit den Rezepten und den Fehlertimern. An dem Programm muss ich noch etwas feilen, aber größtenteils läuft es wie gewünscht. Es gibt mit dem DOIF Modul auch die Möglichkeit eine "State Machine" zu bauen und justme1968 tüftelt ebenfalls an Solchem. Ich wollte aber einfach mal testen, wie viel Perl ich schon verstanden habe...  8)
FHEM 5.7 FeatureLevel: 5.7 auf Dreamplug/Deb. 7; Perl: v5.14.2
HM: HM-CFG-USB-2 + hmland | SlowRF: CUNO V2.1/CULFW V 1.43 868
OWServer:LinkUSBi | OWDevice:DS18S20|DS2401|DS2406|DS2423

Offline tante ju

  • Full Member
  • ***
  • Beiträge: 423
Antw:FHEMCocktail
« Antwort #19 am: 28 Juli 2016, 22:53:41 »
An alle: Gibt es den ausser Firmata eine Möglichkeit den Arduino zu steuern?

Klar. Was immer Du möchtest. MySensors, RS485, Ethernet, Infrarot, I2C (alles, außer Infrarot, habe ich hier im Einsatz) usw.

Der ATMEGA hat ja EEPROM-Zellen und eine Erweiterung mit einem I2C-EEPROM ist auch easy. Da kannst Du ja die "Bestückung" hinterlegen und per Protokoll konfigurierbar machen. Von FHEM kommt nur das Rezept, also eine Liste der Zutaten und Mengen in bestimmter Reihenfolge (der Optik wegen) und den Rest macht der Controller. So bist Du richtig dynamisch und alles Echtzeit macht der Controller.


Offline 2P4u

  • Full Member
  • ***
  • Beiträge: 124
Antw:FHEMCocktail
« Antwort #20 am: 29 Juli 2016, 07:50:18 »
Klar. Was immer Du möchtest. MySensors, RS485, Ethernet, Infrarot, I2C (alles, außer Infrarot, habe ich hier im Einsatz) usw.

Der ATMEGA hat ja EEPROM-Zellen und eine Erweiterung mit einem I2C-EEPROM ist auch easy. Da kannst Du ja die "Bestückung" hinterlegen und per Protokoll konfigurierbar machen. Von FHEM kommt nur das Rezept, also eine Liste der Zutaten und Mengen in bestimmter Reihenfolge (der Optik wegen) und den Rest macht der Controller. So bist Du richtig dynamisch und alles Echtzeit macht der Controller.
So habe ich das auch gedacht.
Bis jetzt habe ich auf dem Ardu nur die Firmata Software.
Wenn ich diese aber durch meine "Steuersoftware" die von aussen Arrays mit Rezeptinfos bekommt ersetzte, weiss ich nicht wie ich den Ardu und FHEM miteinander verbinde.
Über USB würde ich das über einer Serielle Verbindung aufbauen. Ich würde das ganze aber gerne per Ethernet machen, so wie jetzt auch mit Firmata.
Hast du mir da vielleicht mal ein Beispiel wie du FHEM und den Ardu verbunden hast?
Konkret meine ich das hier bei Firmata:
/*==============================================================================
 * Network configuration for Network Firmata
 *============================================================================*/
#define NETWORK_FIRMATA
//replace with ip of server you want to connect to, comment out if using 'remote_host'
#define remote_ip IPAddress(192,168,178,68)
//replace with hostname of server you want to connect to, comment out if using 'remote_ip'
//#define remote_host "server.local"
//replace with the port that your server is listening on
#define remote_port 3030
//replace with arduinos ip-address. Comment out if Ethernet-startup should use dhcp. Is ignored on Yun
//#define local_ip IPAddress(192,168,178,99)
//replace with ethernet shield mac. It's mandatory every device is assigned a unique mac. Is ignored on Yun
const byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
#endif

Grüsse Daniel
1x Ubuntu Server
1x LaCrosse Gateway für PCA301 /1x HMLAN /1x HMLGW
2x HueBridge mit Devices/ 1x Logitech Harmony Ultimate

Offline 2P4u

  • Full Member
  • ***
  • Beiträge: 124
Antw:FHEMCocktail
« Antwort #21 am: 29 Juli 2016, 07:53:51 »

Also willst du eine Peristaltic Pump einsetzen? Die kosten ohne Schrittmotor 8-12 Euro. Mit Schrittmotor wirds aber wohl erst interessant. Und dann wird es teuer. Oder selber bauen.
 
Für die Ansteuerung kannst du dann vielleicht auf Boards von 3D Druckern zurückgreifen. RAMPS oder so.

Naja ich denke zu viel Aufwand für zu Hause - aber mit dem entsprechenden Durchsatz für Partys genau das richtige.  Dann macht serielle Befüllung der Zutaten auch wieder mehr Sinn.

Ja, die Pumpen möchte ich selber bauen.
Die sollen mit Gleichstrommotoren nur Zeitweise angesteuert werden und ist genau genug.
Die Pumpen will ich aus PETG mit meinem 3D Drucker drucken.
Ich habe mir gestern ein eigenes "Ramps" gebaut, davon brauche ich ja erstmal nur die Treiber.
Das läuft auch schon alles, aber eben nur mit Firmata.
1x Ubuntu Server
1x LaCrosse Gateway für PCA301 /1x HMLAN /1x HMLGW
2x HueBridge mit Devices/ 1x Logitech Harmony Ultimate

Offline tante ju

  • Full Member
  • ***
  • Beiträge: 423
Antw:FHEMCocktail
« Antwort #22 am: 29 Juli 2016, 22:51:56 »
So habe ich das auch gedacht.
Bis jetzt habe ich auf dem Ardu nur die Firmata Software.
Wenn ich diese aber durch meine "Steuersoftware" die von aussen Arrays mit Rezeptinfos bekommt ersetzte, weiss ich nicht wie ich den Ardu und FHEM miteinander verbinde.
Über USB würde ich das über einer Serielle Verbindung aufbauen. Ich würde das ganze aber gerne per Ethernet machen, so wie jetzt auch mit Firmata.
Hast du mir da vielleicht mal ein Beispiel wie du FHEM und den Ardu verbunden hast?
Konkret meine ich das hier bei Firmata:
/*==============================================================================
 * Network configuration for Network Firmata
 *============================================================================*/
#define NETWORK_FIRMATA
//replace with ip of server you want to connect to, comment out if using 'remote_host'
#define remote_ip IPAddress(192,168,178,68)
//replace with hostname of server you want to connect to, comment out if using 'remote_ip'
//#define remote_host "server.local"
//replace with the port that your server is listening on
#define remote_port 3030
//replace with arduinos ip-address. Comment out if Ethernet-startup should use dhcp. Is ignored on Yun
//#define local_ip IPAddress(192,168,178,99)
//replace with ethernet shield mac. It's mandatory every device is assigned a unique mac. Is ignored on Yun
const byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
#endif

Ethernet beim Arduino ist ja normalerweise mit TCP/IP, das sind dann die unteren 3-4 Schichten (je nach Zählweise). Darauf mußt Du jetzt noch dein Anwendungsprotokoll bauen. Da gibt es viele Möglichkeiten.

Was in FHEM bereits als Modul vorhanden ist:
nativ HTTP, z.B. über SOAP.
Oder Modbus über Ethernet
oder MQTT

Für deinen Anwendungsfall wäre Modbus vielleicht nicht so das richtige, bleibt Web oder MQTT. Ich persönlich würde die PubSub-Library im Arduino nehmen und auf dem RPi Mosquitto als MQTT Broker installieren. Das ist ziemlich flexibel, erlaubt auch Übertragung längerer Daten und es gibt schon das Modul in FHEM.
Wenn Du über telnet oder web das machen möchtest, ist das auch möglich, aber erfordert auch in FHEM ziemlich viel Konfiguration (nicht, daß MQTT jetzt super simpel wäre).

Solltest Dir vielleicht ein paar Gedanken über die auszutauschenden Daten machen, dann kann man da ein wenig mehr ins Detail gehen. Denn ein Beispiel um einen I/O-Port anzusteuern ist die eine Sache, einen Textstrang bestimmter Länge zu übertragen und auszuwerten ist eine andere.

 

decade-submarginal