Arduino Mega slimme meter uitlezen met Solarmeter Harold65

Arduino specifieke Software
Gebruikers-avatar
Berichten: 117
Geregistreerd: 10 Jun 2019, 12:16
Woonplaats: Amsterdam

Re: Arduino Mega slimme meter uitlezen met Solarmeter Harold

Berichtdoor master64nl » 03 Jul 2020, 21:01

Koepel schreef:De smtp.t-mobilethuis.nl is correct, maar daar hoort wel een bestaand email adres bij van t-mobilethuis voor de MAIL_FROM. Een "arduino@meterkast.nl" die t-mobilethuis niet kent (en trouwens niet eens bestaat) zal niet lukken denk ik.
Voor zover ik weet zijn de poorten 25, 465, 587, 2525 zijn beschikbaar, afhankelijk van de gekozen beveiliging.
Poort 25 kan met en zonder wachtwoord.
Poort 2525 is speciaal voor IoT dingen, zonder authenticatie met maximaal 50 mails per dag.

Hier: https://www.t-mobile.nl/klantenservice/thuis/internet-wifi/email-instellingen.
Scroll naar beneden, naar het grijze gedeelte "IMAP en POP3" en open het gedeelte "Versturen van e-mail (SMTP)".

Maak dus even een mail aan via de website van t-mobilethuis. Bij "instellingen" kun je een nieuwe email-account aanmaken, maar je kunt ook een mail als alias aan een bestaande mail toevoegen.

In linux kun je het mailen zelf testen met: telnet smtp.t-mobilethuis.nl 2525

P.S.: Misschien kun je de berichten waarin je email staat maar beter verwijderen van dit forum.


Het heeft met smtp.kpn altijd gewerkt. Ik heb het alleen veranderd voor t-mobile. Moet ik het voor gmail veranderen dan?

Advertisement

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Arduino Mega slimme meter uitlezen met Solarmeter Harold

Berichtdoor Koepel » 03 Jul 2020, 22:50

Waarschijnlijk niet. Volgens mij gaat het er om dat de SMTP server van t-mobilethuis het accepteerd.
Dat je een email kunt versturen met een verzonnen "Van:" adres, dat heb ik nog niet meegemaakt. Waarschijnlijk was kpn daar heel gemakkelijk mee.

Gebruikers-avatar
Berichten: 117
Geregistreerd: 10 Jun 2019, 12:16
Woonplaats: Amsterdam

Re: Arduino Mega slimme meter uitlezen met Solarmeter Harold

Berichtdoor master64nl » 04 Jul 2020, 07:29

Mijn gas standen worden ook niet naar mindergas.nl gestuurd dus het heeft echt met de andere internet provider te maken. Wel raar want voor KPN had ik Tele2 en daar werkte het ook mee. Arduino zegt dat het allemaal verstuurd is maar het komt niet aan, zie hier onder:

Last PvOutput fail=No connection @ 02.07.20 16:55:15
DNS status=1
Last NTP update=04.07.20 02:00:03 (in 1x)
mgUpload=04.07.20 00:03:00
MgResponse=307

WD ctr=167
WD val=5
Reset Day=4
Free=6065


Ik kreeg echt mail van het verzonnen mail adres, zie laatste mail header:

van: arduino@meterkast.nl via kpnmail.nl
aan:
datum: 24 jun. 2020 21:59
onderwerp: SolarMeter 24
ondertekend door: kpnmail.nl
beveiliging: Standaardversleuteling (TLS) Meer informatie
: Belangrijk volgens de magische formules van Google.

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Arduino Mega slimme meter uitlezen met Solarmeter Harold

Berichtdoor Koepel » 04 Jul 2020, 15:19

Dan zul je eerst moeten nagaan of je verbinding hebt met de wifi router (dat kun je in de router zien).
Daarna kijken of je verbinding hebt met internet.
Daarna stuk voor stuk de problemen oplossen om verbinding met sites te maken.

Error 307 is een tijdelijke redirect. Ik weet niet precies waarneer er zo'n foutmelding ontstaat.

Gebruikers-avatar
Berichten: 117
Geregistreerd: 10 Jun 2019, 12:16
Woonplaats: Amsterdam

Re: Arduino Mega slimme meter uitlezen met Solarmeter Harold

Berichtdoor master64nl » 05 Jul 2020, 07:22

Koepel schreef:Dan zul je eerst moeten nagaan of je verbinding hebt met de wifi router (dat kun je in de router zien).
Daarna kijken of je verbinding hebt met internet.
Daarna stuk voor stuk de problemen oplossen om verbinding met sites te maken.

Error 307 is een tijdelijke redirect. Ik weet niet precies wanneer er zo'n foutmelding ontstaat.


Dit is een goede melding via de mail:
last PvOutput fail= @ Never
DNS status=1
Last NTP update=24.06.20 14:00:03 (in 1x)
mgUpload=24.06.20 00:24:00
MgResponse=307
ExResponse=409
WD ctr=167
WD val=5
Reset Day=24
Free=6016

Ik heb verbinding met mijn router want ik zie de webbrowser van het programma Solarmeter. Ik zie het via dyndns op afstand dus internet is ook goed.

Btw, mijn Raspi3 met Pi-Hole er op die stuurt wel netjes een mail met dat er geen updates zijn dus die doet het wel maar is natuurlijk wel een ander programma dat er op draait.

Gebruikers-avatar
Berichten: 117
Geregistreerd: 10 Jun 2019, 12:16
Woonplaats: Amsterdam

Re: Arduino Mega slimme meter uitlezen met Solarmeter Harold

Berichtdoor master64nl » 05 Jul 2020, 08:13

Ik ga dit eens proberen van deze site https://support.google.com/a/answer/176600?hl=nl:
Vereisten voor de beperkte Gmail SMTP-server
Hiermee kunt u alleen berichten verzenden naar Gmail- of G Suite-gebruikers. Voor deze optie hoeft u niet te verifiëren.

Vereisten
Verzendlimieten Er gelden limieten per gebruiker. Met deze optie kunnen alleen berichten worden verzonden naar Gmail- of G Suite-gebruikers.

Anti-spamfilters Verdachte e-mails kunnen eruit worden gefilterd of worden geweigerd.

Volledig gekwalificeerde domeinnaam van de SMTP-service aspmx.l.google.com

Configuratieopties Poort 25

TLS niet vereist

Dynamische IP's toegestaan

Kan alleen verzenden naar Gmail- of G Suite-gebruikers

Verificatievereisten Geen

Btw, mijn NAS stuurt ook gewoon mailtjes dus het is alleen Arduino die het niet doet. Heb ik weer.

Gebruikers-avatar
Berichten: 117
Geregistreerd: 10 Jun 2019, 12:16
Woonplaats: Amsterdam

Re: Arduino Mega slimme meter uitlezen met Solarmeter Harold

Berichtdoor master64nl » 06 Jul 2020, 06:35

Dat werkt ook niet helaas. De gas standen komen ook nog niet aan. Waarom die nu ook niet aankomen vind ik vreemd. Dat staat toch los van die mail versturen?
De overgang naar van KPN naar T-Mobile internet provider is de oorzaak. Alleen smtp.kpn.nl veranderen naar smtp.t-mobilethuis.nl of aspmx.l.google.com of smtp.gmail.com in de userdefs.h werkt niet.

Mijn NAS en RasPi3 versturen wel mail maar dat gaat via poort 587 met TLS met inlognaam en wachtwoord van gmail. Solarmeter gebruikt voor mail poort 25 zonder inlognaam en wachtwoord.

In de config files voor mindergas waar de gas stand naar toe geschreven word gebruikt Solarmeter poort 80. Dat zou gewoon goed moeten gaan dus waarom dit nu niet werkt?
Code: Alles selecteren
#ifdef USE_MINDERGAS

unsigned long mgUploadTime;
byte GasCountdown;
long TotalGas;
int mgResponse;

// this function is called at midnight
// the actual total-gas value is saved and the countdown is started
void UpdateGas()
{
    // select a number between 1 and 59
    // this will be the minutes to wait before uploading
    GasCountdown = random(1,60);
}

// next function is called at midnight, just before the day counters are reset
void SendToMinderGas()
{
    // If the countdown is running, the value is > 0
    if(GasCountdown>0)
    {
        GasCountdown--;
        if(GasCountdown==0)
        {
            // start the upload when the counter reaches 0
            EthernetClient mgClient;
            time_t t = now() - SECS_PER_DAY; // we want to upload the gas usage of yesterday so rewind the clock for 1 day
            // try to connect to minderGas
            int res = mgClient.connect((char*)"mindergas.nl",80);
            if (res == 1)
            {
                // create a string with the date and the meter value
                char dataString[80];
                sprintf(dataString,"{\"date\":\"%04d-%02d-%02d\",\"reading_l\":\"%ld\"}", year(t),month(t),day(t),MG_SENSOR.Midnight);
                // send headers
                mgClient << F("POST /you_less/gas_meter_readings?auth_token=" MG_KEY " HTTP/1.1") << endl;
                mgClient << F("Host: mindergas.nl") << endl;
                mgClient << F("User-Agent: Arduino") << endl;
                mgClient << F("Content-Type: application/json") << endl;
                mgClient << F("Accept: application/json") << endl;
                mgClient << F("Content-Length: ") << strlen(dataString) << endl << endl;
                // send the data
                mgClient << dataString << endl;
                mgUploadTime = now();
                mgClient.find((char*)" ");
                mgResponse = mgClient.parseInt();
                // close connection
                mgClient.stop();
            }
            else
            {
                // no response :-(
                mgResponse = res;
            }
        }
    }
}

#endif


In de config files voor mail word poort 25 gebruikt dus dat is zonder inlognaam en wachtwoord.
Code: Alles selecteren
#ifdef USE_MAIL
EthernetClient mailClient;

void SendMail()
{
    if(mailClient.connect(MAIL_SERVER,25))
    {
        if(CheckResponse())
        {
            mailClient << F("HELO Arduino") << endl; // say hello
            if(CheckResponse())
            {
                mailClient << F("MAIL FROM:" MAIL_FROM) << endl; // identify sender
                if(CheckResponse())
                {
                   mailClient << F("RCPT TO:" MAIL_TO) << endl; // identify recipient
                    if(CheckResponse())
                    {
                        mailClient << F("DATA") << endl;
                        if(CheckResponse())
                        {
                            mailClient << F("Subject:SolarMeter ") << day() << endl; // insert subject
                            mailClient << F("Content-type: text/html;") << endl << endl;

                            ShowStatus(mailClient);

                            mailClient << endl << F(".") << endl; // end of mail

                  if(CheckResponse())
                            {
                                mailClient << F("QUIT") << endl; // terminate connection
                            }
                        }
                    }
                }
            }
        }
        mailClient.stop();
    }
}

boolean CheckResponse()
{
  return mailClient.find((char*)"\n");
 
//    long timer = millis();
 //   while(millis() - timer < 5000)
  //  {
   //     if(mailClient.available())
    //    {
     //       char c = mailClient.read();
      //      if(c=='\n') return true;
       // }
   // }
   // return false;
}


#endif

Gebruikers-avatar
Berichten: 117
Geregistreerd: 10 Jun 2019, 12:16
Woonplaats: Amsterdam

Re: Arduino Mega slimme meter uitlezen met Solarmeter Harold

Berichtdoor master64nl » 07 Jul 2020, 06:13

Koepel, je hebt mij al eerder goed geholpen. Zie jij iets in die code staan wat niet goed is? Ik zelf denk dat T-Mobile anders werkt dan KPN, zoals je zei, ze gaan er makkelijker mee om.

Gebruikers-avatar
Berichten: 117
Geregistreerd: 10 Jun 2019, 12:16
Woonplaats: Amsterdam

Re: Arduino Mega slimme meter uitlezen met Solarmeter Harold

Berichtdoor master64nl » 07 Jul 2020, 20:44

Ik heb nu een gedefinieerd alias t-mobile mailadres gebruikt en smtp.t-mobilethuis.nl en dan verzenden naar mijn mailadres. Kijken of dit werkt.

Ik heb ook al geprobeerd met de firewall helemaal uit van het modem en dan de gas standen verzenden maar dan krijg ik elke keer
mgUpload=07.07.20 20:47:00
MgResponse=307
En niets terug en er word niet geschreven naar mindergas.nl

Gebruikers-avatar
Berichten: 117
Geregistreerd: 10 Jun 2019, 12:16
Woonplaats: Amsterdam

Re: Arduino Mega slimme meter uitlezen met Solarmeter Harold

Berichtdoor master64nl » 08 Jul 2020, 06:27

master64nl schreef:Ik heb nu een gedefinieerd alias t-mobile mailadres gebruikt en smtp.t-mobilethuis.nl en dan verzenden naar mijn mailadres. Kijken of dit werkt.

Ik heb ook al geprobeerd met de firewall helemaal uit van het modem en dan de gas standen verzenden maar dan krijg ik elke keer
mgUpload=07.07.20 20:47:00
MgResponse=307
En niets terug en er word niet geschreven naar mindergas.nl


Werkt ook niet. Geen mail ontvangen.

Ik heb mindergas.nl een mail gestuurd, misschien dat zij iets aan hun kant kunnen zien.

Ik heb ook contact gehad met Harold, de vader van het programma Solarmeter maar die ziet ook geen fouten in de code of mijn instellingen.

Iemand anders nog suggesties?

VorigeVolgende

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: Google [Bot] en 12 gasten