Heizungssteuerung mithilfe Fhem und Arduino steuern

Begonnen von butaluk, 05 Dezember 2017, 15:54:23

Vorheriges Thema - Nächstes Thema

butaluk

Hallo,
ich habe vor die Stellantriebe meiner Fußbodenheizung mit Fhem zu steuern.
Die Ansteuerung soll folgendermaßen ablaufen:

Raspberry Pi wird mit dem Arduino verbunden. (Welche Schnittstelle ist dafür besser geeignet?)
Der Arduino wird per BUS Leitung (sind ca. 20 bis 30 Meter) mithilfe MAX485 Modul mit einem weiteren Arduino verbunden der die Aktoren ansteuert.
Der Status der Aktoren soll im Fhem dargestellt werden.

So eine Konstellation habe ich im NET bis lang nicht gefunden.
Mit welchem Modul ist sowas besser zu realisieren,  ECMD oder Firmata?

Bin sehr für Eure Unterstützung dankbar!

Beta-User

Die Konstruktion klingt eher nach MySensors@RS485 oder eventuell HomeBrewWired (Tutorial von T. Pferdekaemper).

Die MAX487-Module sind übrigens - jedenfalls vom Hörensagen her - besser ;) .

Gruß, Beta-User
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

abc2006

Hi,
ich habe das ganze über LAN versucht (Nano + W5100 + Relaiskarte). Leider überhaupt gar nicht zufriedenstellend, der Arduino hat irgendwann nicht mehr geantwortet. Ich habe leider nicht herausgefunden, woran es liegt, mein 1W-Busmaster auf Basis Arduino Nano und W5100 funktioniert seit der Entwicklung fehlerfrei.

Dafür hatte ich mir dann selbst nonBlocking-Sende und Empfangsroutinen geschrieben, über die ich eine Art set-Befehl schicken konnte.

War jetzt wahtscheinlich nicht so hilfreich, sollte vllt eher ein Erfahrungsbericht sein.
Grüße,
Stephan
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

Morgennebel

Zitat von: butaluk am 05 Dezember 2017, 15:54:23
ich habe vor die Stellantriebe meiner Fußbodenheizung mit Fhem zu steuern.
[...]
Der Arduino wird per BUS Leitung (sind ca. 20 bis 30 Meter) mithilfe MAX485 Modul mit einem weiteren Arduino verbunden der die Aktoren ansteuert.

Stellantriebe - Nur AN/AUS mit PWM/PWMR oder prozentual? Woher kommen die IST/SOLL-Werte der einzelnen Kreise?

Für mich schreit das ganze nach 1-Wire. Den Bus für 1-Wire, am Ziel (FB-Verteiler) eine Hutschiene und ein 1-Wire Relaismodul (8fach), ein USB-Stecker für den Pi. Keine Arduinos. Viel einfacher, schneller und billiger...

Ciao, -MN
Einziger Spender an FHEM e.V. mit Dauerauftrag seit >= 24 Monaten

FHEM: MacMini/ESXi, 2-3 FHEM Instanzen produktiv
In-Use: STELLMOTOR, VALVES, PWM-PWMR, Xiaomi, Allergy, Proplanta, UWZ, MQTT,  Homematic, Luftsensor.info, ESP8266, ESERA

butaluk

ZitatStellantriebe - Nur AN/AUS mit PWM/PWMR oder prozentual? Woher kommen die IST/SOLL-Werte der einzelnen Kreise?

Das sind Digitale 230V Stellantriebe (AN/AUS). Die Fhem misst die Temperatur in den einzelnen Zimmern und je nach IST/SOLL zustand soll Fhem die Stellantriebe ansteuern.

Werde das ganze probieren mit "HomeBrewWired" realisieren. Habe mir schon den USB/RS484 Adapter für Arduino bestellt.

Morgennebel

Ehrlich gesagt bleibe ich bei meiner 1-Wire-Empfehlung.

Sowas: http://www.ebay.de/itm/1-Wire-Relais-Karte-8-Relais-relays-220V-mit-DS2408-chipset-DIN-Rail-BOX/171711545773
und einen Haufen WAGO-Verbindungsklemmen auf eine Hutschiene, das vorhandene Kabel zum Pi nutzen.

Es geht um Heizung, d.h. eine Fehlfunktion kostet Geld. Mach es einfach (keine handgebauten Arduinio-Lösungen), damit Du im Fehlerfall schnell Probleme lösen kannst oder Hardware tauschen kannst. Fang nicht kompliziert an.

Wenn Du dann in einem Jahr FHEM, PWM/PWMR und TabletUI verstanden hast, kannst Du das immer noch in Arduinios machen.

Ciao, -MN
Einziger Spender an FHEM e.V. mit Dauerauftrag seit >= 24 Monaten

FHEM: MacMini/ESXi, 2-3 FHEM Instanzen produktiv
In-Use: STELLMOTOR, VALVES, PWM-PWMR, Xiaomi, Allergy, Proplanta, UWZ, MQTT,  Homematic, Luftsensor.info, ESP8266, ESERA

Thorsten Pferdekaemper

Zitat von: butaluk am 08 Dezember 2017, 10:53:57Werde das ganze probieren mit "HomeBrewWired" realisieren. Habe mir schon den USB/RS484 Adapter für Arduino bestellt.
Warum denn das? Die USB-Seite (am besten das Digitus-Ding aus dem Wiki) kommt an den RasPi und für den Arduino brauchst Du nur einen MAX487. Damit sparst Du Dir auch den zweiten Arduino und ziemlich viel Aufwand.
Siehe auch hier:
https://forum.fhem.de/index.php/topic,61780.0.html

Ich würde mir ehrlich gesagt aber gar nicht so viel Aufwand machen. Einfach ein HMW-IO-12-Sw7-DR rein und gut ist.

Gruß,
   Thorsten
FUIP

butaluk

Zitat
ZitatZitat von: butaluk am Heute um 10:53:57

    Werde das ganze probieren mit "HomeBrewWired" realisieren. Habe mir schon den USB/RS484 Adapter für Arduino bestellt.

Warum denn das? Die USB-Seite (am besten das Digitus-Ding aus dem Wiki) kommt an den RasPi

Ich meite eigentlich für RasPi :)

Bezüglich "Max487": Was ist mit Max 485? Habe 5 fertige Module schon in der Schublade liegen.
Bezüglich "HMW-IO-12-Sw7-DR": Habe eigene Triac Aktoren "Eigenbau".

Thorsten Pferdekaemper

Zitat von: butaluk am 08 Dezember 2017, 12:14:35Bezüglich "Max487": Was ist mit Max 485? Habe 5 fertige Module schon in der Schublade liegen.
MAX485 geht natürlich auch, erlaubt aber nur 32 Geräte am Bus. Mit MAX487 gehen bis zu 128.

Zitat
Bezüglich "HMW-IO-12-Sw7-DR": Habe eigene Triac Aktoren "Eigenbau".
Na dann sollte es für Dich nicht sooo schwierig sein, diese Teile mit Hilfe des Tutorials an den HMW-Bus zu bringen.

Gruß,
    Thorsten
FUIP

butaluk

Hallo miteinander.

Es ist etwas hier als das Thema hier eröffnet habe. Hatte leider nicht die Zeit gehabt meinen Vorhaben umzusetzen. Jetzt aber... :)
Habe mir eine Testschaltung so aufgebaut, wie in dem Tutorial dargestellt ist. Allerdings anstatt dem MAX487 verwende ich fertiges Modul TTL-RS 485 https://www.ebay.de/itm/TTL-RS-485-Konverter-Modul-Max485-Adapter-Bus-Modbus-Arduino-Raspberry-Pi/252712534559?hash=item3ad6d7421f:g:FQwAAOSw1cNaD3It

Den Sketch auf die Arduino aufzuspielen hat ohne Probleme Geklappt. Die HomeMatic Wired Installation hat auch keine Probleme bereitet.

Wenn das Testaufbau gestartet wird, im Serial Monitor sehe ich das die Arduino etwas raus schickt. Das wars aber auch. Vom FHEM bekomme ich keinen Antwort.

Mane Frage ist, benötigt man die 24V Versorgung?  In seinem Tutorial schrieb Thorsten dass wenn der DIGIDUS Dongel verwendet wird, benötigt man die 24V Versorgung nicht.

Thorsten Pferdekaemper

Hi,

die 24V-Versorgung brauchst Du für HBW nicht. (Wo würdest Du die überhaupt anschließen wollen?)
Das, was Du da beschreibst, kann ziemlich viele Ursachen haben. Da ist ja noch der TTL-RS 485-Umsetzer dazwischen, das Kabel der Digitus-Stick, der USB-Port am RasPi, der hm485d in FHEM, die FHEM-Konfig etc. Der serielle Monitor sagt Dir ja nur, dass etwas auf der seriellen Schnittstelle des Arduino rausgeschickt wird.
Jetzt muss man mal Stück für Stück sehen, wo es hängt. 

Als erstes würde ich mal empfehlen, ein Standard-HMW-Gerät dranzuhängen (das braucht dann natürlich 24V), um auszuschließen, dass es an der HBW-Hardware hängt.
Falls das nicht geht, dann bitte folgendes hier reinstellen:
1. Den Sketch, der auf dem Arduino läuft
2. Ein Foto der Verkabelung
3. Ein "list" des IO-Device (also des HM485_LAN).
4. Ein Level-5-Log des IO-Device in FHEM während Du die "Kontaktaufnahme" versuchst.
Gruß,
   Thorsten
FUIP

butaluk

Hallo Thorsten.

Danke dass du mich unterstützt!

ZitatAls erstes würde ich mal empfehlen, ein Standard-HMW-Gerät dranzuhängen (das braucht dann natürlich 24V), um auszuschließen, dass es an der HBW-Hardware hängt.
Falls das nicht geht, dann bitte folgendes hier reinstellen:
Einen Standard-HMW-Gerät habe ich leider nicht.

Zitat1. Den Sketch, der auf dem Arduino läuft

Ich habe den Mini-Sketch aus deinen Tutorial eins zu eins kopiert und in die Arduino Nano aufgespielt:
#define HMW_DEVICETYPE 0xAB

#define HARDWARE_VERSION 0x01
#define FIRMWARE_VERSION 0x0100

#include "HBWSoftwareSerial.h"
#include "HBWired.h"

#define RS485_RXD 4   // Receive-Pin
#define RS485_TXD 2   // Transmit-Pin
#define RS485_TXEN 3  // Transmit-Enable

struct hbw_config {
  uint8_t  logging_time;     // 0x0001
  uint32_t central_address;  // 0x0002 - 0x0005
} config;


HBWSoftwareSerial rs485(RS485_RXD, RS485_TXD);
HBWDevice* device = NULL;

void setup()
{
  Serial.begin(19200);
  rs485.begin();

  device = new HBWDevice(HMW_DEVICETYPE, HARDWARE_VERSION, FIRMWARE_VERSION,
                         &rs485,RS485_TXEN,sizeof(config),&config,0,NULL,&Serial,
                         NULL, NULL);
  hbwdebug(F("B: 2A\n"));
}

void loop()
{
  // call the HBW loop
  device->loop();
};


Zitat2. Ein Foto der Verkabelung
Bild im Anhang.

Zitat3. Ein "list" des IO-Device (also des HM485_LAN).
In Fhem habe ich nur das HomeMatic Wired nach deinem Tutorial installiert. Habe sonst nichts definiert. Aus deinem Tutorial ist nicht ersichtlich was man Genau in FHEM machen muß. Oder ich habe etwas übesehen. :)

Zitat4. Ein Level-5-Log des IO-Device in FHEM während Du die "Kontaktaufnahme" versuchst.
Beim hochfahren vom RaspPi mit eingestecktem DIGITUS Dongel wird folgendes in die Logfile eingetragen:
2018.02.18 11:16:20 1: usb create starting
2018.02.18 11:16:20 3: Probing CUL device /dev/ttyAMA0
2018.02.18 11:16:20 3: Probing TCM_ESP3 device /dev/ttyAMA0
2018.02.18 11:16:21 3: Probing ZWDongle device /dev/ttyAMA0
2018.02.18 11:16:21 3: Probing FRM device /dev/ttyAMA0
2018.02.18 11:16:26 3: Probing TCM_ESP3 device /dev/ttyUSB0
2018.02.18 11:16:26 3: Probing TCM_ESP2 device /dev/ttyUSB0
2018.02.18 11:16:26 3: Probing FHZ device /dev/ttyUSB0
2018.02.18 11:16:27 3: Probing TRX device /dev/ttyUSB0
2018.02.18 11:16:27 3: Probing ZWDongle device /dev/ttyUSB0
2018.02.18 11:16:28 3: Probing FRM device /dev/ttyUSB0
2018.02.18 11:16:33 1: usb create end

Wenn der RaspPi läuft und der Arduino gestartet wird, sind keine Einträge in dem "Event Monitor" zu sehen.

Gruß,
  Vitalij

Thorsten Pferdekaemper

Hi,
Bei dem Tutorial geht's um HomebrewWired, also ist nicht jedes Detail der Einrichtung von HM485 beschrieben.
Aber: Im ersten Beitrag des Tutorials dem ersten Link folgen und dann dort entsprechend Deiner Hardware weitermachen, also das hier:
https://wiki.fhem.de/wiki/Serial/Netzwerk-RS485-Adapter
Dort v.A. "Einbindung in FHEM". Du müsstest dann ein HM485_LAN Device haben. Falls das nicht der Fall ist, dann mach das erstmal.
Gruß,
   Thorsten

FUIP

butaluk

Hallo Thorsten,

HM485_LAN Device habe ich angelegt. (sehe Anhang)
Nun wenn ich die Discovery Funktion ausführe, findet FHEM keine Geräte:
hm485: Discovery - canceled. No results found within 10 seconds!


Gruß.

Thorsten Pferdekaemper

Hi,
discovery ist bei den HBW-Teilen nicht implementiert. Du musst den Arduino mal kurz durchstarten, also z.B. vom Strom trennen und wieder anschließen.
Gruß,
   Thorsten
FUIP