Werte von Wasserzähler per UDP weitergeben

Begonnen von Rudolpho, 15 Februar 2019, 18:24:21

Vorheriges Thema - Nächstes Thema

Rudolpho

Hallo
Ich habe es schon hinbekommen mit einem CUL die Werte von meinem Diehl Hydrus Wasserzähler auszulesen.
Im Event Monitor sieht das so aus:
Zitat2019-02-15 18:05:45 WMBUS WMBUS_DME_56064082_112_7 2_storage_no: 0
2019-02-15 18:05:45 WMBUS WMBUS_DME_56064082_112_7 2_type: VIF_VOLUME
2019-02-15 18:05:45 WMBUS WMBUS_DME_56064082_112_7 2_value: 306.583
2019-02-15 18:05:45 WMBUS WMBUS_DME_56064082_112_7 2_unit: m³
2019-02-15 18:05:45 WMBUS WMBUS_DME_56064082_112_7 2_value_type: Instantaneous value
2019-02-15 18:05:45 WMBUS WMBUS_DME_56064082_112_7 3_storage_no: 1
2019-02-15 18:05:45 WMBUS WMBUS_DME_56064082_112_7 3_type: VIF_VOLUME
2019-02-15 18:05:45 WMBUS WMBUS_DME_56064082_112_7 3_value: 184.073
2019-02-15 18:05:45 WMBUS WMBUS_DME_56064082_112_7 3_unit: m³
2019-02-15 18:05:45 WMBUS WMBUS_DME_56064082_112_7 3_value_type: Instantaneous value
2019-02-15 18:05:45 WMBUS WMBUS_DME_56064082_112_7 4_storage_no: 1
2019-02-15 18:05:45 WMBUS WMBUS_DME_56064082_112_7 4_type: VIF_VOLUME
2019-02-15 18:05:45 WMBUS WMBUS_DME_56064082_112_7 4_value: 0
2019-02-15 18:05:45 WMBUS WMBUS_DME_56064082_112_7 4_unit: m³
2019-02-15 18:05:45 WMBUS WMBUS_DME_56064082_112_7 4_value_type: Instantaneous value

sehr hilfreich beim Einbinden der CUL war die Vorarbeit hier:  https://forum.fhem.de/index.php/topic,33068.msg737335.html#msg737335

Mein Notify (Versuch) soweit:    define WMBUS_DME_56064082_112_7_notify_1 notify WMBUS_DME_56064082_112_7:2_value:..* {WasserToLoxone("$NAME")}

Die Funktion habe ich https://ownsmarthome.de/2017/06/fhem-mit-loxone-erweitern/#Ok_los_geht8217s_Ich_will_Loxone
hier entnommen und versucht anzupassen....
##############################################
# $Id: myUtilsTemplate.pm 7570 2015-01-14 18:31:44Z rudolfkoenig $
#
# Save this file as 99_myUtils.pm, and create your own functions in the new
# file. They are then available in every Perl expression.

package main;

use strict;
use warnings;
use POSIX;

sub
myUtils_Initialize($$)
{
  my ($hash) = @_;
}

# Enter you functions below _this_ line.
#UDP Befehle senden
sub UDP_Msg($$)
{
my ($dest,$port,$cmd) = @_;
my $sock = IO::Socket::INET->new(
Proto => 'udp',
PeerPort => $port,
PeerAddr => $dest
) or die "Could not create socket: $!\n";
$sock->send($cmd) or die "Send error: $!\n";
return "send $cmd";
}
sub WasserToLoxone($)
{
my ($device) = @_;
my $wasserGes=ReadingsVal("$device","2_value","-1");

UDP_Msg("192.168.178.xxx" , "7600" , "$device: $wasserGes");
}
1;



Also schön wäre es wenn der Wert von 2_value an die UDP Adresse gesendet wird..... funktiniert so leider noch nicht

KölnSolar

Du willst auch an einen Loxone-Server(-Client ?) senden ? Bei IP und Port bist Du sicher, dass die richtig sind ? Evtl. eine SSL-Verbindung notwendig ? ......
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

Rudolpho

auf einem anderen Pi bei mir funktioniert die Kommunikation mit Loxone wie in ownsmarthome beschrieben hervorragend. Dort ist ein Fenstersensor im Einsatz.
Adresse und Port sollten passen - nur mit meinem selbstverunstalteten Code bin ich mir nicht ganz sicher
besonders der Notify und das Reading ist befürchte ich murks

KölnSolar

define WMBUS_DME_56064082_112_7_notify_1 notify WMBUS_DME_56064082_112_7:2_value.* {WasserToLoxone("$NAME")}
my $wasserGes=ReadingsVal($device,"2_value","-1");
sub UDP_Msg($$$)

Tipp1: Besserer Betreff und klarer Formulierung, was Dein Ziel/Problem ist(also auf Deinen Eingangsthread bezogen).
Tipp2: Sprechendere device-Bezeichnungen
Tipp3: Bau Dir ggfs. in die Sub Logs ein. sub wird aufgerufen -> notify funktioniert; Richtiger Value ausgegeben ?
Log3 $device, 1, "[WasserToLoxone] device: $device with value:  $wasserGes";
Tipp4: Das "die" führt meines Wissens zum Absturz. Das müsstest Du in ein eval kleiden. Besser eigentlich zu loggen anstatt "die".

Have fun
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

CoolTux

Statt "die" lieber "return" nehmen sonst ist Dein FHEM jedesmal down.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net