FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: The Spirit am 31 Dezember 2016, 14:47:47

Titel: Wertepaket alle x minuten per UDP verschicken
Beitrag von: The Spirit am 31 Dezember 2016, 14:47:47
HI.
Ich habe gerade meine Tecalor Heizung in FHEM eingebunden und würde gern den Parameter sGlobal alle 15 Minuten per UDP verschicken, damit ich ihn in Loxone nutzen kann.
Wie muss ich das machen?

So sieht der Teil im der fhem.cfg aus:
#Heizung einbinden
define Tecalor THZ /dev/ttyUSB0@115200
attr Tecalor interval_sGlobal 300
attr Tecalor interval_sHistory 28800
attr Tecalor interval_sLast10errors 120
attr Tecalor room Heizung
attr Tecalor userReadings AussenTemp {(split ' ',ReadingsVal("Tecalor","sGlobal",0))[1]},
define FileLog_Tecalor FileLog ./log/Tecalor-%Y.log Tecalor
attr FileLog_Tecalor room Heizung

#Heizungsdaten an Loxone schicken
define sendHeizung at +*00:00:05 {UDP_Msg("192.168.178.122" , "7007", Tecalor:sGlobal)}


Und so der teil in der 99_myUtils:
##############################################
# $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.
use IO::Socket;

#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";
}

1;


Werde aus dem Wiki noch nicht ganz schlau.
Danke


Titel: Antw:Wertepaket alle x minuten per UDP verschicken
Beitrag von: philipp_b am 12 August 2017, 11:47:16
Hallo, das würde mich auch interessieren!

ich komme da auch nicht weiter...
Titel: Antw:Wertepaket alle x minuten per UDP verschicken
Beitrag von: MadMax-FHEM am 12 August 2017, 11:52:29
Es war schon im ersten Post unklar (zumindest für mich) was geht und was nicht, also wo das Problem liegt...

Wenn das Senden, also die Sub tut, dann einfach Aufruf per 'at' alle 15min...

Und beim letzen Post ist noch viel weniger klar wo das/die Problem/e liegt/liegen...

Gruß, Joachim
Titel: Antw:Wertepaket alle x minuten per UDP verschicken
Beitrag von: philipp_b am 12 August 2017, 11:59:01
unklar ist, wie man per UDP daten versenden kann, bzw was ich dafür eingeben muss.

ich habe nur die Zeilen wie unten in die 99_myutils.pm eingefügt, aber bei allem weiterem stehe ich auf dem schlauch. :(
Titel: Antw:Wertepaket alle x minuten per UDP verschicken
Beitrag von: MadMax-FHEM am 12 August 2017, 12:12:05
Ob die Funktion tut (also tatsächlich UDP-Pakete verschickt) weiß ich nicht.

Aber aufrufen sollte so gehen:

{UDP_Msg("IP-Adresse-des-Empfängers", "Port-des-Empfängers", "NACHRICHT")}

oben in die fhem-Web-Commandozeile und 'Enter'...

Bzw. wenn zyklisch gewünscht dann eben per 'at':

https://wiki.fhem.de/wiki/At

https://fhem.de/commandref_DE.html#at

Gruß, Joachim
Titel: Antw:Wertepaket alle x minuten per UDP verschicken
Beitrag von: dev0 am 12 August 2017, 12:31:28
Ob die weiter oben gezeigte Sub zum Sendem von UDP Paketen funktioniert habe ich nicht geprüft, diese hier ist getestet: https://forum.fhem.de/index.php/topic,56581
Titel: Antw:Wertepaket alle x minuten per UDP verschicken
Beitrag von: philipp_b am 12 August 2017, 12:37:17
danke mit dem Befehl {UDP_Msg("IP", "Port", "Nachricht")}

kann ich per Loxone die UDP Nachricht empfangen,
nur weiß ich nicht wie ich aus meiner Heizung "Readings" Werte senden kann.

speziell aus dem sGlobal
Titel: Antw:Wertepaket alle x minuten per UDP verschicken
Beitrag von: CoolTux am 12 August 2017, 12:43:12
In dem Du die Werte vom Reading vorher in eine Variable ein ließt
ReadingsVal()
Titel: Antw:Wertepaket alle x minuten per UDP verschicken
Beitrag von: philipp_b am 12 August 2017, 13:19:58
wie würde das aussehen?
Titel: Antw:Wertepaket alle x minuten per UDP verschicken
Beitrag von: CoolTux am 12 August 2017, 14:24:13
Commandref unter der Sektion Perl Specials