Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature Request : MQTT neuer Topic „comm_disabled“ #529

Closed
knickohr opened this issue Dec 29, 2022 · 10 comments
Closed

Feature Request : MQTT neuer Topic „comm_disabled“ #529

knickohr opened this issue Dec 29, 2022 · 10 comments
Labels
enhancement New feature or request fixed dev fixed

Comments

@knickohr
Copy link

knickohr commented Dec 29, 2022

Jajaa, ich weiß, wieder MQTT und kein Ende 🤪

Beim Node-Red puzzeln ist mir aufgefallen das ich nichts über den Status der Kommunikation zum NRF-Mudul bzw. den Invertern in Erfahrung bringen kann.

Ich vermisse einen Topic /comm_disabled true/false

Damit meine ich jetzt nicht das Setzen des Häkchens bei „disable night communication“, das hat ja einen eigenen Topic, sondern den wirklichen Status ob die DTU gerade kommuniziert oder nicht. Der Status sollte gesetzt sein (true) wenn einerseits der obige Fall eintritt (Nachts) oder andererseits wenn man bei den Invertern die Kommunikation manuell deaktiviert. Also quasi immer wenn keine Kommunikation statt findet, oder unterbricht. Oder salopp gesagt, wenn nicht gepollt wird.

@DukeWolle
Copy link

Glaub mir du merkst wenn nichts mehr kommt. Also mir reichen aktuell Status und available..

@knickohr
Copy link
Author

Darum geht’s nicht 😅

Ich würde gerne eine Rückmeldung haben was die DTU treibt oder eben nicht 🤓

@DukeWolle
Copy link

Stable Release ist mE erst mal wichtiger wie schnick schnack. 😀

@beegee3
Copy link
Contributor

beegee3 commented Dec 30, 2022

Ich vermisse einen Topic /comm_disabled true/false

Evtl. noch ein /comm_dis_ts', für den Zeitpunkt der letzten Anpassung. Dazu braucht man nur
in pubMqtt.h

        void tickerComm(bool disabled) {
            publish("comm_disabled", ((disabled) ? "true" : "false"), true);
            publish("comm_dis_ts", String(*mUtcTimestamp).c_str(), true);
        }

und eine Anpassung in app.cpp

void app::tickIVCommunication(void) {
    mIVCommunicationOn = !mConfig->sun.disNightCom; // if sun.disNightCom is false, communication is always on
    if (!mIVCommunicationOn) {  // inverter communication only during the day
        ...
            if (mTimestamp > (mSunset + mConfig->sun.offsetSec)) { // current time is past communication stop, nothing to do. Next update will be done by tickCalcSunrise
                nxtTrig = 0;
        ...
        if (nxtTrig > 0)
            onceAt(std::bind(&app::tickIVCommunication, this), nxtTrig);
    }
    if (mConfig->mqtt.broker[0] > 0) {
        mMqtt.tickerComm(mIVCommunicationOn);
    }
}

@knickohr
Copy link
Author

knickohr commented Dec 30, 2022

@beegee3
Ich verstehe C(++) nur zum Teil, da ist klingonisch für mich einfacher. Ist auch der Grund warum ich mich da so schlecht einbringen kann. Ansonsten wäre da schon längst ein ePaper Display an der DTU 😉

Flag müßte eigentlich doch schon vorhanden sein, ansonsten wüßte die DTU doch gar nicht ob sie senden soll oder nicht. Muß doch salopp gesagt nur noch ein publish zum Broker gemacht werden.

Qapla‘

@beegee3
Copy link
Contributor

beegee3 commented Dec 30, 2022

@knickohr nuqneH
Der Code ist mehr als Anregung für @lumapu gedacht. Der wird zur Zeit nicht nur von mir mit jeder Menge anderer Anfragen genervt 😒 und muss ja nicht alles allein machen 😏.

Flag müßte eigentlich doch schon vorhanden sein

ngem Sarghmey tlha'laH, to'waQ vIyIvtaH (tlhIngan Soj 'oH -- not bIyaj 😁):

mIVCommunicationOn ist die Flag, in tickIVCommunication wird sie gesetzt. Im Code oben ist die neue Funktion tickerComm, die den publish macht und (auch neu) am Ende von tickIVCommunication aufgerufen wird. Dazu noch eine kleine Korrektur, damit der Aufruf auch immer gemacht wird (vorher wurde die Funktion im Fall von 'current time is past communication stop' sofort beendet).

In diesem Sinne
Qapla‘

@knickohr
Copy link
Author

knickohr commented Jan 6, 2023

Die Stable ist da 😎 Wie geht’s weiter ? drängel quängel 😅

lumapu added a commit that referenced this issue Jan 7, 2023
added SH1106 to automatic build
added IP address to MQTT (version, device and IP are retained and only transmitted once after boot) #556
added `set_power_limit` acknowledge MQTT publish #553
changed: version, device name are only published via MQTT once after boot
added `Login` to menu if admin password is set #554
added `development` to second changelog link in `index.html` #543
added interval for MQTT (as option). With this settings MQTT live data is published in a fixed timing (only if inverter is available) #542, #523
added MQTT `comm_disabled` #529
@knickohr
Copy link
Author

knickohr commented Jan 7, 2023

Das comm_disabled ist verkehrt herum 😲

Also entweder umbenennen in comm_enabled oder true/false tauschen 😅

@lumapu
Copy link
Owner

lumapu commented Jan 7, 2023

ok, ich drehe es um, der Wahnsinn geht weiter 😊
Danke fürs testen!

lumapu added a commit that referenced this issue Jan 7, 2023
corrected MQTT `comm_disabled` #529
@knickohr
Copy link
Author

knickohr commented Jan 7, 2023

Danke 😎😘

Jetzt funktionieren alle 5 Stati out of the box 👍

  • online (alle Inverter online und produzieren)
  • partial (min. ein Inverter produziert nicht)
  • missing (min. ein Inverter fehlt unter Tags)
  • offline (alle Inverter sind offline)
  • communication disabled (es ist Nacht 🤪)

🥳

@knickohr knickohr closed this as completed Jan 7, 2023
lumapu added a commit that referenced this issue Jan 8, 2023
fix Prometheus and JSON endpoints (`config_override.h`) #561
publish MQTT with fixed interval even if inverter is not available #542
added JSON settings upload. NOTE: settings JSON download changed, so only settings should be uploaded starting from version `0.5.70` #551
MQTT topic and inverter name have more allowed characters: `[A-Za-z0-9./#$%&=+_-]+`, thx: @mo Demman
improved potential issue with `checkTicker`, thx @cbscpe
MQTT option for reset values on midnight / not avail / communication stop #539
small fix in `tickIVCommunication` #534
add `YieldTotal` correction, eg. to have the option to zero at year start #512
@stefan123t stefan123t added enhancement New feature or request fixed dev fixed labels Jan 12, 2023
modem-man-gmx pushed a commit to modem-man-gmx/ahoy that referenced this issue Jan 15, 2023
fix Prometheus and JSON endpoints (`config_override.h`) lumapu#561
publish MQTT with fixed interval even if inverter is not available lumapu#542
added JSON settings upload. NOTE: settings JSON download changed, so only settings should be uploaded starting from version `0.5.70` lumapu#551
MQTT topic and inverter name have more allowed characters: `[A-Za-z0-9./#$%&=+_-]+`, thx: @mo Demman
improved potential issue with `checkTicker`, thx @cbscpe
MQTT option for reset values on midnight / not avail / communication stop lumapu#539
small fix in `tickIVCommunication` lumapu#534
add `YieldTotal` correction, eg. to have the option to zero at year start lumapu#512
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request fixed dev fixed
Projects
None yet
Development

No branches or pull requests

5 participants