Page 1 of 1

HEX waarde sturen naar TCPIP device

Posted: Sun Jul 15, 2012 5:25 pm
by esschenk
Hallo,

Heeft iemand ervaring en of een script waarmee ik een Hex waarde naar een tcp-ip poort kan sturen
Module staat op 192.168.1.50 poort 5000
En wil daar een een hex waarde naar toe sturen vanuit Homeseer

Groet Ed

Re: HEX WAARDE STUREN NAAR TCPIP DEVICE

Posted: Sun Jul 15, 2012 9:40 pm
by AshaiRey
Via welk protocol moet dat gebeuren?
Is het een Telnet poort of een webserver die hierop luister?

Re: HEX WAARDE STUREN NAAR TCPIP DEVICE

Posted: Sun Jul 15, 2012 10:49 pm
by esschenk
Hallo Bam,

Het gaat om deze serial to ethernet unit

http://www.wiznet.co.kr/sub_modules/en/ ... 40&cType=2

Ik heb wat problemen met de virtuele comport software vandaar dat ik wil proberen om hem via tcp/ip aan te sturen
ik heb dit getest met het programma Hercules en dat werk perfect .
Maar heb geen idee hoe dit toe te passen via Homeseer.

Alvast bedankt

Ed

Re: HEX WAARDE STUREN NAAR TCPIP DEVICE

Posted: Mon Jul 16, 2012 9:33 am
by AshaiRey
Hoi Ed,

Als ik het dus goed begruipt is dit een serieel naar ethernet converter die je via een com poort benaderd.
Ik heb thuis een werkend scriptje dat als voorbeeld kan dienen om de com.poort aan te sturen. Daar zal je dus nog even op moeten wachten.

Tijdens het wachten kan je misschien eens een kijkje nemen naar de HS online helpfiles (http://www.homeseer.com/support/homesee ... meseer.htm)
Zoek dan onder Index naar SendToComPort

Een decimaal naar hex omzetten in vbscript doe je met Hex(decimaal getal)
Van Hex naar decimaal kan je als volgt doen CLng("&h" & hex_value)

Re: HEX WAARDE STUREN NAAR TCPIP DEVICE

Posted: Mon Jul 16, 2012 1:45 pm
by Menno
Hoi Ed,

Zie hier een simpel script wat een voorbeeldwaarde als text verstuurd naar een IP-adres volgens het TCP protocol. De waarde die verstuurd wordt is : <1234567> je kunt dit vervangen door je eigen hexwaarde bijvoorbeeld: &h0F o.i.d. De Wiznet moet je zo instellen dat hij verbinding maakt met het IP-adres van Homeseer waar je dit script runt.

Public Sub main(ByVal parm As Object)

' Must listen on correct port- must be same as port client wants to connect on.
Const portNumber As Integer = 2345
Dim tcpListener As New System.Net.Sockets.TcpListener(portNumber)
tcpListener.Start()
hs.writelog("TCPListen", "Waiting for connection...")
Try
'Accept the pending client connection and return 'a TcpClient initialized for communication.
Dim tcpClient As System.Net.Sockets.TcpClient = tcpListener.AcceptTcpClient()
hs.writelog("TCPListen", "Connection accepted.")
' Get the stream
Dim networkStream As System.Net.Sockets.NetworkStream = tcpClient.GetStream()
If networkStream.CanWrite And networkStream.CanRead Then
' Do a simple write.
Dim sendBytes As [Byte]() = system.text.Encoding.ASCII.GetBytes("<1234567>")
networkStream.Write(sendBytes, 0, sendBytes.Length)

Else
If Not networkStream.CanRead Then
hs.writelog("TCPListener", "cannot not write data to this stream")
tcpClient.Close()
End If
End If


tcpClient.Close()
tcpListener.Stop()
hs.writelog("TCPListen", "exit")

Catch e As Exception

End Try
End Sub

Re: HEX WAARDE STUREN NAAR TCPIP DEVICE

Posted: Mon Jul 16, 2012 7:52 pm
by AshaiRey
Dit zou moeten werken.

Code: Select all

' com port script to send data to a COM port
' this script registers a callback script named com_event.txt
' when data is received on the COM port the com_event.txt script is called and the
' data can be processed there
' this script only needs to be called once as the com port will stay open
sub main()
	dim e

	e=hs.OpenComPort(1,"9600,n,8,1",1,"com_event.txt","main")
	if e <> "" then
		hs.writelog "Error opening com port",e
	end if
	
	' if you need to send data to the com port when the port is open, it can be done here
	hs.SendToComPort 1,"&HAF" + vbcrlf

	hs.WaitSecs 1	
                hs.CloseComPort 1
        hs.writelog "COM SCRIPT","Script Complete"
end sub

HEX waarde sturen naar TCPIP device

Posted: Mon Jul 16, 2012 11:20 pm
by labium

Code: Select all

Sub Main()
hs.OpenComPort 7,"4800,O,8,1",1,"",""
'hs.SendToComPort 7, rolluik zolder rechts dicht
hs.SendToComport 7, chr(&H7F) &chr(&HF2) &chr(&HFA) &chr(&H01) &chr(&H00) &chr(&H00) &chr(&HA4) &chr(&H78) &chr(&HFA) &chr(&HF4) &chr(&HFD) &chr(&H06) &chr(&H73)       
hs.CloseComPort 7   
End Sub



Re: HEX waarde sturen naar TCPIP device

Posted: Tue Jul 17, 2012 8:30 am
by esschenk
Hallo,

Dank voor de reactie's

Het probleem is dat de com poort elke keer stopt dus het sturen naar een compoort werkt niet lekker.
De oplossing van menno is wat ik zoek.
Menno kun je uitleggen hoe ik de wiznet aan Homeseer moet koppelen
(De Wiznet moet je zo instellen dat hij verbinding maakt met het IP-adres van Homeseer waar je dit script runt.)

Alvast bedankt

Ed

Re: HEX waarde sturen naar TCPIP device

Posted: Tue Jul 17, 2012 9:13 am
by Menno
Hoi Ed,

In de handleiding van de Wiznet staat dat je deze op Client, Server of Mixed mode kunt instellen. Ik neem aan dat je hem dan op Server moet configureren en daarbij het IP adres van de computer waar Homeseer met het script draait. Het script is een TCP client, dus volgens mij moet het dan zo werken.

mvg,
Menno