Smartmeter auslesen - Verschlüsselung

Hallo

Habe heute das Update IPS 5.0 gestartet von 4.4 nun funktioniert mein Smart Meter Skript nicht mehr das hier aus dem Forum. Es wird mit einem Roten Rufzeichen beim Skript angezeigt und startet alle Sekunden neu.

Kann das wer bestätigen bzw. gibt es eine Lösung

Danke

:):confused: Alex

Hallo Alex,

was steht ggf im Meldungsfenster und in der Logdatei?

Grüße, Gerhard

Im Meldungsfenster steht auch das die Daten entschlüsselt werden. aber halt alle Sekunden neu was bei V4.4 nur alle 1min passiert.

Beim Skript selbst steht kein Fehler nach dem Ausführen nur das rote Rufzeichen und die Variable wird halt nich aktualisiert.

Hast du es bei V5 laufen?

Danke Alex

Hallo Alex,

gibt es eine Fehlermeldung in der Log-Datei?

Grüße, Gerhard

Habe mal das log rausgesucht, da steht einiges jedoch hab ich davon zuwenig Ahnung Skript Nr:59604

10.08.2018 17:39:56 | 00000 | DEBUG | ScriptEngine | Executed Text (Length: 0) ~ Sender: TimerEvent ~ Duration: 691 ms
10.08.2018 17:39:56 | 59604 | DEBUG | ScriptEngine | Skriptausführung: 59604 ~ Absender: RegisterVariable
10.08.2018 17:39:56 | 59604 | DEBUG | ScriptEngine | Executed Script 59604 ~ Sender: RegisterVariable ~ Duration: 20 ms
10.08.2018 17:39:56 | 59604 | DEBUG | ScriptEngine | Skriptausführung: 59604 ~ Absender: RegisterVariable
10.08.2018 17:39:56 | 59604 | DEBUG | ScriptEngine | Executed Script 59604 ~ Sender: RegisterVariable ~ Duration: 48 ms
10.08.2018 17:39:57 | 59604 | DEBUG | ScriptEngine | Skriptausführung: 59604 ~ Absender: RegisterVariable
10.08.2018 17:39:57 | 59604 | DEBUG | ScriptEngine | Executed Script 59604 ~ Sender: RegisterVariable ~ Duration: 29 ms
10.08.2018 17:39:57 | 59604 | DEBUG | ScriptEngine | Skriptausführung: 59604 ~ Absender: RegisterVariable
10.08.2018 17:39:57 | 59604 | DEBUG | ScriptEngine | Executed Script 59604 ~ Sender: RegisterVariable ~ Duration: 79 ms
10.08.2018 17:39:57 | 59604 | DEBUG | ScriptEngine | Skriptausführung: 59604 ~ Absender: RegisterVariable
10.08.2018 17:39:57 | 59604 | DEBUG | ScriptEngine | Executed Script 59604 ~ Sender: RegisterVariable ~ Duration: 31 ms
10.08.2018 17:39:57 | 59604 | DEBUG | ScriptEngine | Skriptausführung: 59604 ~ Absender: RegisterVariable
10.08.2018 17:39:57 | 59604 | DEBUG | ScriptEngine | Executed Script 59604 ~ Sender: RegisterVariable ~ Duration: 38 ms
10.08.2018 17:39:57 | 59604 | DEBUG | ScriptEngine | Skriptausführung: 59604 ~ Absender: RegisterVariable
10.08.2018 17:39:57 | 59604 | DEBUG | ScriptEngine | Executed Script 59604 ~ Sender: RegisterVariable ~ Duration: 23 ms
10.08.2018 17:39:57 | 59604 | DEBUG | ScriptEngine | Skriptausführung: 59604 ~ Absender: RegisterVariable
10.08.2018 17:39:57 | 59604 | DEBUG | ScriptEngine | Executed Script 59604 ~ Sender: RegisterVariable ~ Duration: 35 ms
10.08.2018 17:39:57 | 59604 | DEBUG | ScriptEngine | Skriptausführung: 59604 ~ Absender: RegisterVariable
10.08.2018 17:39:57 | 59604 | DEBUG | ScriptEngine | Executed Script 59604 ~ Sender: RegisterVariable ~ Duration: 35 ms
10.08.2018 17:39:57 | 59604 | DEBUG | ScriptEngine | Skriptausführung: 59604 ~ Absender: RegisterVariable
10.08.2018 17:39:57 | 59604 | DEBUG | ScriptEngine | Executed Script 59604 ~ Sender: RegisterVariable ~ Duration: 27 ms
10.08.2018 17:39:57 | 20211 | WARNING | Register Variable | Daten zum Entschlüsseln:
0 : 96 7a 17 95 00 2f 92 51 81 d2 8d 25 6b ef 6d a8 [.z…/.Q…%k.m.]
10 : 34 cc 54 e4 b1 0a b5 58 41 22 b7 cd 37 17 f8 0b [4.T…XA"…7…]
20 : 1f 1a 9f 4a fa 6c 9b ad 77 35 ab 5d cc b5 18 07 […J.l…w5.]…]
30 : 47 47 14 37 e3 90 da b3 41 ff fe d7 aa 02 59 58 [GG.7…A…YX]
40 : d3 49 fd f1 de 02 54 ea d6 00 84 8a 98 19 61 94 [.I…T…a.]
<br />
<b>Fatal error</b>: Uncaught Error: Call to undefined function mcrypt_module_open() in C:\IP-Symcon\scripts\59604.ips.php:133
Stack trace:
#0 {main}
thrown in <b>C:\IP-Symcon\scripts\59604.ips.php</b> on line <b>133</b><br />
<br />
<b>Warning</b>: Use of undefined constant c_lf - assumed ‚c_lf‘ (this will throw an Error in a future version of PHP) in <b>C:\IP-Symcon\scripts\IPSLibrary\app\core\IPSLogger\IPSLogger_PhpErrorHandler.inc.php</b> on line <b>29</b><br />
<br />
<b>Fatal error</b>: Uncaught Error: Call to undefined function IPSLogger_Out() in C:\IP-Symcon\scripts\IPSLibrary\app\core\IPSLogger\IPSLogger.inc.php:133
Stack trace:
#0 C:\IP-Symcon\scripts\IPSLibrary\app\core\IPSLogger\IPSLogger_PhpErrorHandler.inc.php(37): IPSLogger_Err(‚PHP‘, ‚Warning: includ…‘)
#1 C:\IP-Symcon\scripts\IPSLibrary\app\core\IPSLogger\IPSLogger_Constants.inc.php(14): IPSLogger_PhpErrorHandler(2, ‚include_once(\…‘, ‚C:\IP-Symcon\sc…‘, 14, Array)
#2 C:\IP-Symcon\scripts\IPSLibrary\app\core\IPSLogger\IPSLogger_Constants.inc.php(14): include_once()
#3 C:\IP-Symcon\scripts\IPSLibrary\app\core\IPSLogger\IPSLogger.inc.php(112): include_once(‚C:\IP-Symcon\sc…‘)
#4 C:\IP-Symcon\scripts\IPSLibrary\app\core\IPSLogger\IPSLogger_PhpErrorHandler.inc.php(27): require_once(‚C:\IP-Symcon\sc…‘)
#5 C:\IP-Symcon\scripts\IPSLibrary\app\core\IPSLogger\IPSLogger_PhpErrorHandler.inc.php(120): IPSLogger_PhpErrorHandler(1, ‚Uncaught Error:…‘, ‚C:\IP-Symcon\sc…‘, 133, NULL)
#6 [internal function]: IPSLogger_PhpFa in <b>C:\IP-Symcon\scripts\IPSLibrary\app\core\IPSLogger\IPSLogger.inc.php</b> on line <b>133</b><br />

10.08.2018 17:39:58 | 59604 | DEBUG | ScriptEngine | Skriptausführung: 59604 ~ Absender: RegisterVariable
10.08.2018 17:39:58 | 59604 | DEBUG | ScriptEngine | Executed Script 59604 ~ Sender: RegisterVariable ~ Duration: 128 ms
10.08.2018 17:39:58 | 59604 | DEBUG | ScriptEngine | Skriptausführung: 59604 ~ Absender: RegisterVariable
10.08.2018 17:39:58 | 59604 | DEBUG | ScriptEngine | Executed Script 59604 ~ Sender: RegisterVariable ~ Duration: 50 ms
10.08.2018 17:39:58 | 59604 | DEBUG | ScriptEngine | Skriptausführung: 59604 ~ Absender: RegisterVariable
10.08.2018 17:39:58 | 59604 | DEBUG | ScriptEngine | Executed Script 59604 ~ Sender: RegisterVariable ~ Duration: 21 ms
10.08.2018 17:39:58 | 59604 | DEBUG | ScriptEngine | Skriptausführung: 59604 ~ Absender: RegisterVariable
10.08.2018 17:39:58 | 59604 | DEBUG | ScriptEngine | Executed Script 59604 ~ Sender: RegisterVariable ~ Duration: 27 ms
10.08.2018 17:39:58 | 59604 | DEBUG | ScriptEngine | Skriptausführung: 59604 ~ Absender: RegisterVariable
10.08.2018 17:39:58 | 59604 | DEBUG | ScriptEngine | Executed Script 59604 ~ Sender: RegisterVariable ~ Duration: 22 ms
10.08.2018 17:39:58 | 59604 | DEBUG | ScriptEngine | Skriptausführung: 59604 ~ Absender: RegisterVariable
10.08.2018 17:39:58 | 59604 | DEBUG | ScriptEngine | Executed Script 59604 ~ Sender: RegisterVariable ~ Duration: 15 ms
10.08.2018 17:39:58 | 59604 | DEBUG | ScriptEngine | Skriptausführung: 59604 ~ Absender: RegisterVariable
10.08.2018 17:39:58 | 59604 | DEBUG | ScriptEngine | Executed Script 59604 ~ Sender: RegisterVariable ~ Duration: 21 ms
10.08.2018 17:39:58 | 59604 | DEBUG | ScriptEngine | Skriptausführung: 59604 ~ Absender: RegisterVariable
10.08.2018 17:39:58 | 59604 | DEBUG | ScriptEngine | Executed Script 59604 ~ Sender: RegisterVariable ~ Duration: 44 ms
10.08.2018 17:39:58 | 20211 | WARNING | Register Variable | Daten zum Entschlüsseln:
0 : c9 5e 49 5e fc db 2a 00 c0 75 bf 62 1a 50 70 b3 [.^I^……u.b.Pp.]
10 : 0c 35 4f 5c 1f c7 cf 9d 1f b1 b8 94 3c 96 c7 7f [.5O…<…]
20 : 9a 39 c2 0f 69 90 61 87 38 9f 57 a4 39 32 a9 25 [.9…i.a.8.W.92.%]
30 : 0c 41 39 b6 7a 11 37 10 a2 2a 40 87 9c b2 40 5a [.A9.z.7…
@…@Z]
40 : 9b 37 41 55 f4 c9 92 f4 d5 76 52 98 56 79 4f 46 [.7AU…vR.VyOF]
<br />
<b>Fatal error</b>: Uncaught Error: Call to undefined function mcrypt_module_open() in C:\IP-Symcon\scripts\59604.ips.php:133
Stack trace:
#0 {main}
thrown in <b>C:\IP-Symcon\scripts\59604.ips.php</b> on line <b>133</b><br />
<br />
<b>Warning</b>: Use of undefined constant c_lf - assumed ‚c_lf‘ (this will throw an Error in a future version of PHP) in <b>C:\IP-Symcon\scripts\IPSLibrary\app\core\IPSLogger\IPSLogger_PhpErrorHandler.inc.php</b> on line <b>29</b><br />
<br />
<b>Fatal error</b>: Uncaught Error: Call to undefined function IPSLogger_Out() in C:\IP-Symcon\scripts\IPSLibrary\app\core\IPSLogger\IPSLogger.inc.php:133
Stack trace:
#0 C:\IP-Symcon\scripts\IPSLibrary\app\core\IPSLogger\IPSLogger_PhpErrorHandler.inc.php(37): IPSLogger_Err(‚PHP‘, ‚Warning: includ…‘)
#1 C:\IP-Symcon\scripts\IPSLibrary\app\core\IPSLogger\IPSLogger_Constants.inc.php(14): IPSLogger_PhpErrorHandler(2, ‚include_once(\…‘, ‚C:\IP-Symcon\sc…‘, 14, Array)
#2 C:\IP-Symcon\scripts\IPSLibrary\app\core\IPSLogger\IPSLogger_Constants.inc.php(14): include_once()
#3 C:\IP-Symcon\scripts\IPSLibrary\app\core\IPSLogger\IPSLogger.inc.php(112): include_once(‚C:\IP-Symcon\sc…‘)
#4 C:\IP-Symcon\scripts\IPSLibrary\app\core\IPSLogger\IPSLogger_PhpErrorHandler.inc.php(27): require_once(‚C:\IP-Symcon\sc…‘)
#5 C:\IP-Symcon\scripts\IPSLibrary\app\core\IPSLogger\IPSLogger_PhpErrorHandler.inc.php(120): IPSLogger_PhpErrorHandler(1, ‚Uncaught Error:…‘, ‚C:\IP-Symcon\sc…‘, 133, NULL)
#6 [internal function]: IPSLogger_PhpFa in <b>C:\IP-Symcon\scripts\IPSLibrary\app\core\IPSLogger\IPSLogger.inc.php</b> on line <b>133</b><br />

10.08.2018 17:39:59 | 59604 | DEBUG | ScriptEngine | Skriptausführung: 59604 ~ Absender: RegisterVariable
10.08.2018 17:39:59 | 59604 | DEBUG | ScriptEngine | Executed Script 59604 ~ Sender: RegisterVariable ~ Duration: 21 ms

Hilft das?

Danke Alex

In den Meldungen steht ja einiges drin. V5 läuft mit PHP 7. Eventuell Extension anpassen und mal lesen in der PHP Doku was noch so alles geändert wurde von den Befehlen die verwendet werden.

Hallo,

hab das gleiche Problem; das Logging sagt, dass es ein Problem mit der funktion: „mcrypt_module_open()“ gibt.

Vielleicht hilft das bei der Fehlerbehebung.

Grüße

Wie kann man hier eigentlich Beiträge editieren?

Zum Thema:

Es scheint das gleiche Problem zu sein, wie schon hier behandelt wurde:

https://www.symcon.de/forum/threads/36396-Wie-kann-man-mcrypt_decrypt-ersetzen

Vielleicht kann Bikasso, der Erbauer dieses tollen Skripts uns da weiterhelfen! Ich möchte auf keinen Fall auf die 5er Version upgraden bevor nicht dieses Skript hier wieder funktioniert. Da gingen mit zuviele Daten verloren :frowning:

Hallo Hofimax,
Ich sehe das auch so dass „nur“ ein Ersatz für mcrypt gefunden werden muss, dann funktioniert wieder alles. D.h. Muss im Script die Zeile(n) mit der Entschlüsselung angepasst werden.
Leider hab ich grad keine Zeit mit sowas zu beschäftigen, da bei mir grad 2 Sachen zusammenkommen: ein Jahrhundertsommer und eine große Baustelle daheim.
Der Einzug von IP-Symcon 5.0 muss bei mir somit auch warten, bis das wieder läuft.
Vielleicht hat bis zum Herbst schon jemand eine Lösung gefunden… :slight_smile:
Gruß,
Bikasso

Hi Bikasso!

Kein Problem, ich hätte selber auch grad keine Lust und Zeit mich da hinzusetzen…hätte ja sein können das dies für dich nur ein Klacks gewesen wäre…ich habe auch keinen Stress deswegen, mir reicht ein Upgrade im Herbst auch vollkommen aus. Und falls nicht, vielleicht spiele ich mich wirklich mal selber damit, mal sehen!

Viel Spaß noch bei deiner Baustelle :smiley:

Es passt nicht ganz zum Thema aber wenn mir hie vl jemand weiterhelfen könnte wäre ich undenlich Dankbar:D:o

Hallo zusammen!

Durch meine „Updatewut“ :smiley: hab ich mich mal mit dem Entschlüsseln beschäftigt und auch eine Lösung gefunden.
Läuft bei mir seit heute Vormittag fehlerfrei.

Wie ich genau auf die Lösung gekommen bin, kann ich leider nicht mehr sagen, das ganze war mehr ein „Try & Error“… bis halt kein Error mehr war :smiley:

Also:
aus alt:


/* Open module, and create IV */
$td = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', 'cbc', '');
//$iv_size = mcrypt_enc_get_iv_size($td);
//$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$iv = pack("C*", $ManufacCode1, $ManufacCode2, 0 , 0 , 0 , 0 , $Version , $DeviceType , $AcessNr , $AcessNr, $AcessNr, $AcessNr, $AcessNr, $AcessNr, $AcessNr, $AcessNr); 

/* Initialize encryption handle */
if (mcrypt_generic_init($td, $key, $iv) != -1) {
    /* Reinitialize buffers for decryption */
     mcrypt_generic_init($td, $key, $iv);
     $decryptedData = mdecrypt_generic($td, $encryptedData);
     mcrypt_generic_deinit($td); 
    /* Encrypt data */
     mcrypt_generic_init($td, $key, $iv);
     $encryptedData_Kontrolle = mcrypt_generic($td, $decryptedData); 
    /* Clean up */
     mcrypt_generic_deinit($td);
     mcrypt_module_close($td);
}

mach neu:


$iv = pack("C*", $ManufacCode1, $ManufacCode2, 0 , 0 , 0 , 0 , $Version , $DeviceType , $AcessNr , $AcessNr, $AcessNr, $AcessNr, $AcessNr, $AcessNr, $AcessNr, $AcessNr);
$decryptedData = openssl_decrypt(base64_encode($encryptedData), 'aes-128-cbc', $key, OPENSSL_ZERO_PADDING, $iv);
$encryptedData_Kontrolle = base64_decode(openssl_encrypt($decryptedData, 'aes-128-cbc', $key, OPENSSL_ZERO_PADDING, $iv));

funktioniert mit IPS 4.4 und dem IPS 5 stable

lg,
Christian.

Funktioniert 1a.:smiley:

Hab auch ne zeitlang mit dem openssl_decrypt probiert, aber ich glaube mit dem base64 nicht… Dieses Verschlüsselungszeugs ist mir echt zu hoch:banghead:

Besten Dank!

Hallo Christian,

jetzt ist Herbst, d.h. IPS 5 ist im Haus. Ich hab mein Sript lt. deinem Code angepasst.
Funktioniert super.
Vielen Dank dass du dich dem angenommen hast und das Problem gelöst hast.

Gruß
Bikasso

Hallo Christian,

Danke für deine Hilfe Funktioniert 1a :slight_smile:

Danke
Alex:D

Hallo

Gibts es auch die möglichkeit zur Auslesung der einzelnen Verbräuche pro Phase L1-L3?

Danke
Alex:)

Hallo Alex,

Ich kann Auskunft über den AMIS-Zähler der Energie AG geben.
Auf der Kundenschnittstelle des Smart Meters werden Summen Zählerstände und Leistungen ausgegeben. Somit stehen die einzelnen Verbräuche je Phase nicht zur Verfügung.
Man kann sich die erweiterte Displayanzeige freischalten lassen und dann sind diese Werte am Displays des Smart Meters ersichtlich.

lg Siegi

Denn hab ich auch. Schade wollte es in IPS muss ich halt noch eine Zähler abgreifen oder es induktiv lösen mit Shelly :slight_smile:

Danke
Alex

Ich gehe erstmal davon aus, dass dein Zähler mit der PIN freigeschaltet ist.
Dann hängt das von dem Zählerbetreiber ab, ob das auch ausgegeben wird.
2 Möglichkeiten

  1. mit dem Zählerbetreiber reden
    2.Werte über die optische Schnittstelle auslesen und sehen, ob die Obis-Kennzahlen dabei sind. Z.B.

1-0:36.7.0 Momentane Leistung Phase L1 [W]
1-0:56.7.0 Momentane Leistung Phase L2 [W]
1-0:76.7.0 Momentane Leistung Phase L3 [W]