Integration von Nibe Wärmepumpen per RS485

Begonnen von matzefisi, 30 Juli 2014, 00:10:44

Vorheriges Thema - Nächstes Thema

SirUli

Zitat von: Sonnenschein am 10 März 2019, 14:08:02NibeGW in Verbindung eines Wemos D1 läuft einigermaßen stabil.

Hi Sonnenschein,

hast du da evtl. schon was, was man bei uns einsetzen könnte? Ich habe großes Interesse daran, den direkten RPI loszuwerden ;)

Viele Grüße,
Uli

Sonnenschein

Hallo Uli,

Entschuldige bitte, habe deine Frage gar nicht mitbekommen. Hatte aber gerafe viel um die Ohren.

Also bei mir läuft es mit dem ESP 01 super.
Der Fehler ist die Spannungsversorgung gewesen.
Bin aber immer noch nicht direkt an den 12V von Nibe.
Keine Kommunikationsfehler, schreiben funktiiniert.

Bisher bin ich sehr zufrieden.
Werde mal die Tage Bilder hochladen.

Grüße Sonnenschein



SirUli

Hi Sonnenschein,
Das hört sich super an - es wäre super wenn du deine Software und den Aufbau mit uns teilen könntest? Ich würde gerne vom RPI wegkommen - sofern irgendwie möglich ;)

Danke im Voraus!

Sonnenschein

Hier schon einmal der INO Code für einen ESP8266!
Den Rest habe ich so gelassen:
https://github.com/paulianttila/openhab2-addons/tree/nibe2-final/addons/binding/org.openhab.binding.nibeheatpump/NibeGW/Arduino/NibeGW

SSID bitte nachpflegen.



/*
   Copyright (c) 2014-2018 by the respective copyright holders.
   All rights reserved. This program and the accompanying materials
   are made available under the terms of the Eclipse Public License v1.0
   which accompanies this distribution, and is available at
   http://www.eclipse.org/legal/epl-v10.html
   ----------------------------------------------------------------------------
    Author: pauli.anttila@gmail.com
    2.11.2013   v1.00   Initial version.
    3.11.2013   v1.01
    27.6.2014   v1.02   Fixed compile error and added Ethernet initialization delay.
    29.6.2015   v2.00   Bidirectional support.
    18.2.2017   v3.00   Redesigned.
    13.03.2019 Design for ESP8266 01
   
*/

// ######### CONFIGURATION #######################


// Used serial port and direction change pin for RS-485 port
#define RS485_PORT              Serial
#define RS485_DIRECTION_PIN     2

#define ACK_MODBUS40            true
#define ACK_SMS40               false
#define ACK_RMU40               false
#define SEND_ACK                true

// ######### INCLUDES #######################
#include <ESP8266WiFi.h>
#include <WiFiUdp.h>
#include "NibeGw.h"


//#include <avr/wdt.h>

// ######### VARIABLES #######################
IPAddress remoteIP(192,168,178,30);

unsigned int TARGET_PORT = 9999;
unsigned int INCOMING_PORT_READCMDS = 10000;
unsigned int INCOMING_PORT_WRITECMDS = 10001;

boolean wlanInitialized = false;
WiFiUDP udp;
WiFiUDP udp4writeCmnds;

// SSID parameters
const char* ssid = "Your SSID";
const char* password = "Your SSID PASSWORD";

NibeGw nibegw(&RS485_PORT, RS485_DIRECTION_PIN);

// ######### SETUP #######################

void setup()
{
  // Start watchdog
//  wdt_enable (WDTO_2S);

  nibegw.setCallback(nibeCallbackMsgReceived, nibeCallbackTokenReceived);
  nibegw.setAckModbus40Address(ACK_MODBUS40);
  nibegw.setAckSms40Address(ACK_SMS40);
  nibegw.setAckRmu40Address(ACK_RMU40);
  nibegw.setSendAcknowledge(SEND_ACK);

  WiFi.persistent(false);
  WiFi.mode(WIFI_OFF);
  WiFi.mode(WIFI_STA);
  WiFi.disconnect();
  IPAddress ip(192, 168, 178, 32);
  IPAddress gateway(192, 168, 178, 1);
  IPAddress subnet(255, 255, 255, 0);
  IPAddress dns(192, 168, 178, 1);
  // WiFi.config(ip, dns, gateway, subnet);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    pinMode(1, LOW);
    delay(1000);
    pinMode(1, HIGH);
    delay(1000);

  }
 
//  udp.beginPacket(remoteIP, TARGET_PORT);
//  udp.write("WLAN", 4);
//  udp.endPacket();
     pinMode(1, LOW);
}

// ######### MAIN LOOP #######################

void loop()
{

// wdt_reset();

  if (!nibegw.connected())
  {
    nibegw.connect();
  }
  else
  {
    do
    {
      nibegw.loop();
    } while (nibegw.messageStillOnProgress());
  }

  if (!wlanInitialized)
  {
      initializeWlan();   
  }
}

// ######### FUNCTIONS #######################

void initializeWlan()
{
  wlanInitialized = true;
  udp.begin(INCOMING_PORT_READCMDS);
  udp4writeCmnds.begin(INCOMING_PORT_WRITECMDS);
}

void nibeCallbackMsgReceived(const byte* const data, int len)
{
  if (wlanInitialized)
  {
    sendUdpPacket(data, len);
  }
}


int nibeCallbackTokenReceived(eTokenType token, byte* data)
{
  if (wlanInitialized)
  {
    if (token == READ_TOKEN)
    {
      int packetSize = udp.parsePacket();
      if (packetSize)
        return udp.read(data, packetSize);
    }
    else if (token == WRITE_TOKEN)
    {
      int packetSize = udp4writeCmnds.parsePacket();
      if (packetSize)
              return udp4writeCmnds.read(data, packetSize);
    }
  }
  return 0;
}


void sendUdpPacket(const byte * const data, int len)
{
  udp.beginPacket(remoteIP, TARGET_PORT);
  udp.write(data, len);
  udp.endPacket();
}


Wenn unklar bitte melden.
Sorry Fotos muss ich noch einmal machen wegen dem Kondensator.

Grüße
Sonnenschein

Sonnenschein

Hallo,

anbei die Bilder von der Platine.

Anlüsse von oben
1. VCC
2. GND
3. B-
4. A+

Bauteile
1x ESP-01
1x RS485 Converter
1x Stepdown Regler
1x 100nF
1x 47µF niedrige Bauform
1x 4pol Schraubklemme
1x 2x5pol Buchsenleiste

Die folgenden Links, sind nur ein Anhaltspunkt keine Kaufempfehlung.
https://www.ebay.de/itm/ESP8266-ESP-01S-Serial-WIFI-Wireless-Transceiver-Module-Send-Receive-AP-STA-S/162755777481?hash=item25e50013c9:g:TKwAAOSw3v1Z5HD4:rk:6:pf:0
https://www.ebay.de/itm/LM2596S-DC-Spannung-Step-Down-Schaltregler-Netzteil-Modul-Wandler-Konverter/163212684819?hash=item26003bee13:g:7AAAAOSwe09Z-8hE:rk:2:pf:1&frcectupt=true
https://www.ebay.de/itm/New-3-3V-UART-serial-to-RS485-SP3485-Transceiver-Converter-Communication-SP3485/162722492852?hash=item25e30431b4:g:VVMAAOSwPpZZ7VEt:rk:1:pf:1&frcectupt=true

Natürlich alles ohne Haftung oder Garantie.

Sollte jetzt alles komplett sein.
Bei Fragen bitte melden.



Liebe Grüße
Sonnenschein

SirUli

Hi Sonnenschein,

vielen Dank! Für was hattest du die zwei Kondensatoren "1x 100nF" & "1x 47µF niedrige Bauform" benötigt? Spannungsstabilisierung? Oder hast du dich auf einen bestimmten Bauplan bezogen?
Vielen Dank im Voraus!
Viele Grüße,
Uli

AlexGfX

Mal frage
Gibt es mittlerweile Möglichkeit per ip mit Uplink zu verbinden ?

Grüße
Alex

SirUli

Hi Alex,

die Verbindung mit Uplink ist nicht teil dieses Threads, hier ist nur via RS485 besprochen. Uplink ist beispielsweise in homeassistant enthalten - könnte man via MQTT in FHEM rüberbringen.

Viele Grüße,
Uli

lammy

Hi Jungs,

ich habe die Kommunikation zum laufen bekommen. Jedoch gibt die Nibe Fighter 370 aktuell nur Typ und Seriennummer zurück. Kommunikation läuft daher.

Wenn ich mir meine Log anschaue bekomme ich viele von denen hier. Kann mir jemand sagen wo ich anfangen soll mit der Fehlersuche :)

2019.10.01 18:46:03 3: Nibe: Register 40014 not defined
2019.10.01 18:46:03 3: Nibe: Register 574 not defined
2019.10.01 18:46:03 3: Nibe: Register 40013 not defined
2019.10.01 18:46:03 3: Nibe: Register 540 not defined
2019.10.01 18:46:03 3: Nibe: Register 40147 not defined
2019.10.01 18:46:03 3: Nibe: Register 0 not defined
2019.10.01 18:46:03 3: Nibe: Register 40152 not defined
2019.10.01 18:46:03 3: Nibe: Register 0 not defined
2019.10.01 18:46:03 3: Nibe: Register 43108 not defined
2019.10.01 18:46:03 3: Nibe: Register 0 not defined


SET.LOG
NIBL;20191001;8310]
Divisors 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1
Date Time BT1 Outdoor Temperature [°C] BT2 Supply temp S1 [°C] BT20 Exhaust air temp. 1 [°C] BT21 Vented air temp. 1 [°C] BT22 Supply air temp. [°C] BT25 Ext. Supply [°C] BT50 Room Temp S1 [°C] BT53 Solar Panel Temp [°C] BT54 Solar Load Temp [°C] BT6 HW Load [°C] BT64 Average [°C] BT7 HW Top [°C] BT70 HW Comfort Supply Temp. [°C] BT71 Ext. Return Temp [°C] BT82 HW Comfort Return Temp [°C] BT83 HW Comfort Cylinder Temp [°C] Fan speed current [%]
40004
40008
40025
40026
42138
40071
40033
40043
40044
40014
40889
40013
40147
40152
40625
40626
43108

vuffiraa

Moin,

kannst du mal ein list Nibe probieren. Gibt es dort einen Abschnitt register?

Ich tippe, dass du die Voraussetzungen für das Modul überlesen hast  ;)

ZitatPrerequisite

Export from NIBE ModbusManager
- Select model in menu Models
- Goto File / Export to file
- Put the file into the directory defined in device "global" attribute "modpath" or use attribute "modbusFile" in the logical module at FHEM master
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

AlexGfX

Hat jemand von euch die schon mal gute Ergebnisse haben mal Lust Sketches Baupläne/Verdrahtungen zur Verfügung zu stellen? eventuell als eine Art Tutorial? damit man auch mal nachvollziehen kann wie aufgebaut wurde ( Google hilft zwar auch aber es gibt mittlerweile mehrere nibeGW Projekte)
Für mich wäre auch interessant wenn jemand mit Arduino UNO gearbeitet hat ob man das quasi direkt an die 12v Spannung anschließen kann für Stromversorgung (nibe AA3-X4 kontakt 12 mit 12v Spannung bei nibe f730/750 eventuell auch andere modele )

Grüße
Alex

RaTe

Falls hier noch jemand ans Nachbauen denkt:

Habe das als simple Steckbrett-Variante für die Nibe F1255-6 mit nem NodeMCU an einem USB-Netzteil und einem TTL zu RS485 (wie z.B. https://www.ebay.de/itm/SCM-TTL-to-RS485-Adapter-485-to-UART-Serial-Port-3-3V-5V-Level-Converter-Module/152232036253?hash=item2371bc879d:g:vH8AAOSwvMFa2AD3) und dem Code von Sonnenschein erfolgreich zum laufen bekommen (nur kurzer Test für 5 Minuten, nur lesen. Die ganzen offenen Kontakte im Hauswirtschaftsraum auf der Waschmaschine sind für den Dauerbetrieb nicht optimal).
Wenn der Stepdown-Wandler im Briefkasten liegt werde ich es mal mit einer Dauervariante an den 12V der Nibe versuchen.


Sonnenschein

Hallo Ihr Liebe,

da ich an einer anderen Baustelle gearbeitet habe wurde mir bewusst, dass meine Regelung zur Lüftung für den Eeprom der NIBE Pumpe gefährlich sein könnte. Nach einiger Suche konnte ich nur erfahren, dass ich der Tat kritisch sein könnte permanent Wert zu schreiben.
Einzig scheint der Wert GRADMINUTEN unkritisch zu sein, weil der nicht gespeichert wird.

Bei meiner Regelung hatte ich den Lüftungsstrom in Abhängig des Leistungsbedarfes (indirekt über Ablufttemperatur) eingestellt. Es war eigentlich für mich perfekt, sehr schade darum. Habe endlich die Regelung in eine Steuerung über die Relais geändert. Sprich der Lüfter wird nicht mehr stufenlos geregelt sondern über zwei zusätliche Lüfterstufen gesteuert.

Hat jemand von Euch Informationen zum EEPROM?



RaTe

Das wird hier durchdiskutiert (falls Du das nicht schon selbst gefunden hast):
https://www.energiesparhaus.at/forum-nibe-wp-wie-oft-kann-man-parameter-veraendern-flash-lebensdauer/55835

Offizielle Antwort von Nibe ist offenbar diese (aus obigem Thread):
ZitatNIBE schrieb: The EEPROM settings are stored has, according to the datasheet, a limit of 1 million writes per position. That may of course sound a lot but if you write every second that means only 11.5 days until the EEPROM position dies. So to answer the question, when calculating with 15 years of life the maximum would be 182 writes per day per setting.

RaTe

Habe jetzt die gelötete Version (ESP-01, Step-Down-Spannungswandler, TTL zu RS485 Adapter) seit 2 Tagen an den 12V der Nibe ohne erkennbare Probleme. Schaltung analog zur Abbildung von Sonnenschein abzüglich der Kondensatoren (so wie ich das als Elektronik-DAU verstehe sind die ja schon auf dem Step-Down-Wandler vorhanden).
Wenn das weiter ohne Probleme läuft ist das ne echt günstige Sache (Materialkosten ca. 5 Euro, geringer Stromverbrauch).