softwarecrash / Victron2MQTT

Little Program for ESP82XX to get the Victron data to web and MQTT
Other
49 stars 9 forks source link

[FEATURE] Remote Control an IO PIN senden? #21

Closed Jens869 closed 2 months ago

Jens869 commented 2 months ago

Is your feature request related to a problem? Please describe

Ich habe den Victron2MQTT an einen Victron SmartShunt. Dieser hat nicht die Möglichkeit einen Ausgang oder das Laden abzuschalten. Auch die beiden Eingänge des Shunts sind nur Eingänge für Spannung messen oder ein Temp-Sensor. - Trotzdem habe ich den Schalter Remote Control. - Ist es möglich das ein- und aus-schalten auf einen freien IO-Pin des WEMOS zu legen? Dann ließe sich damit ein Relay steuern.

Describe the solution you'd like

Mit Schalter Remote Control das Serial senden und gleichzeitig IO Pin des WEMOS schalten.

Describe alternatives you've considered

Alternativ weiteren WEMOS mit Tasmota nutzen.

Additional context

No response

Jens869 commented 2 months ago

main.h: #define RL_PIN 15 // D8 main.ccp: void setup() { pinMode(RL_PIN, OUTPUT); } status-LED.h: digitalWrite(RL_PIN,remoteControlState); nicht getestet

softwarecrash commented 2 months ago

Pin 15 geht normalerweise an victron-rx diesen Pin kannst du frei verwenden wenn dein Gerät eh keinen Anschluss dafür hat

Jens869 commented 2 months ago

in main.h sind belegt:

define MYPORT_TX 12 // D6

define MYPORT_RX 13 // D7

define LED_PIN 02 // D4

deshalb

define RL_PIN 15 // D8

die globale Bool "remoteControlState" wird vom Programm dafür verwendet. wenn ich Zeit finde muss ich es mal compilieren und testen

softwarecrash commented 2 months ago

du musst garnichts kompilieren, du musst nur D6 nicht mit dem shunt verbinden, und stattdessen an D6 ein relais hängen

Jens869 commented 2 months ago

Prima! habe des ergänzte Programm kompilieren. Ich kann jetzt mit den drei zusätzlichen Zeilen eine LED ein- und ausschalten, an PIN D8

D6 und D7 als serielle Schnittstelle zum SmartShunt

In meinen 2. Post stehen die Änderungen. Nur drei Zeilen

Jens869 commented 2 months ago

fürs Relay muss ich noch einen Transistor auf eine Platine löten und Kabel ändern, aber wenn ich eine LED schalten kann, kein Problem.

softwarecrash commented 2 months ago

Prima! habe des ergänzte Programm kompilieren. Ich kann jetzt mit den drei zusätzlichen Zeilen eine LED ein- und ausschalten, an PIN D8

D6 und D7 als serielle Schnittstelle zum SmartShunt

In meinen 2. Post stehen die Änderungen. Nur drei Zeilen

das ist keine serielle kommunikation, die ist einseitig, daher wird rx(victron) als schaltsignal benutzt, das kannst du vom shunt abmachen und als signal für dein relais benutzen, macht victron exakt so, du musst im code nichts ändern.

Jens869 commented 2 months ago

Beim Victron SmartShunt 500A gibt es zwei Klemmen. Die sind aber nur zum Spannungsmessen oder Temperatur messen. Wenn ich RX unterbreche, dann kann ich nix an den Shunt senden.

Ein extra PIN D8 ist mir lieber um die bool remoteControlState nach außen zu leiten.

Sonst müsste ich den RX in einen Arduino schicken und dort serial auf ein/aus ändern

softwarecrash commented 2 months ago

Beim Victron SmartShunt 500A gibt es zwei Klemmen. Die sind aber nur zum Spannungsmessen oder Temperatur messen. Wenn ich RX unterbreche, dann kann ich nix an den Shunt senden.

Ein extra PIN D8 ist mir lieber um die bool remoteControlState nach außen zu leiten.

Sonst müsste ich den RX in einen Arduino schicken und dort serial auf ein/aus ändern

was sendest du den über den wemos an den shunt das D6 belegt ist?

Nochmal, D6 ist NICHT serial, das ist ein schaltsignal, das kannst du direkt verweden

Jens869 commented 2 months ago

D6 und D7 als serielle Schnittstelle zum SmartShunt D8 der Inhalt der Variable remoteControlState

was sonst?

softwarecrash commented 2 months ago

D6 und D7 als serielle Schnittstelle zum SmartShunt D8 der Inhalt der Variable remoteControlState

was sonst?

ok nochmal.... die victron senden ungefragt daten, entsprechend ist: D7 ist RX(ESP) er empfängt daten und verarbeitet sie die victron empfangen auf rx(victron) nur ein schaltsignal mit dem man den load steuert.

entsprechend kannst du D6 einfach vom shunt trennen wenn dieser keine schaltfunktion hat und mit dem signal selber eine realisieren

Jens869 commented 2 months ago

OK digitalWrite(MYPORT_TX, remoteControlState); digitalWrite(RL_PIN, remoteControlState);

ist das Gleiche auf zwei unterschiedlichen Pins ...

jetzt hab ich das Rad doch erneut erfunden ;-)

softwarecrash commented 2 months ago

OK digitalWrite(MYPORT_TX, remoteControlState); digitalWrite(RL_PIN, remoteControlState);

ist das Gleiche auf zwei unterschiedlichen Pins ...

jetzt hab ich das Rad doch erneut erfunden ;-)

deswegen sagte ich ja, du musst am code garnichts ändern, nur dein eines kabel vom shunt trennen und da led/transistor/arduino relais platine oder was auch immer dran tüddeln

Jens869 commented 2 months ago

Jetzt hab ich eine Forke mir gebaut, wo zwei PINs die gleiche Funktion haben. Gut das wir mal darüber geredet haben. Immerhin hab ich noch mal VisualStudio angeworfen und es hin bekommen, auch wenn es für die Katz war

Jens869 commented 2 months ago

Done