Skip to content
DataMiner DoJo

More results...

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors
Search in posts
Search in pages
Search in posts
Search in pages
Log in
Menu
  • Updates & Insights
  • Questions
  • Learning
    • E-learning Courses
    • Empower Replay: Limited Edition
    • Tutorials
    • Open Classroom Training
    • Agility
      • Kanban workshop
      • Agile Fundamentals
    • Certification
      • DataMiner Fundamentals
      • DataMiner Configurator
      • DataMiner Automation
      • Scripts & Connectors Developer: HTTP Basics
      • Scripts & Connectors Developer: SNMP Basics
      • Visual Overview – Level 1
      • Verify a certificate
    • Video Library
    • Books We Like
    • >> Go to DataMiner Docs
  • Expert Center
    • Solutions & Use Cases
      • Solutions
      • Use Case Library
    • Markets & Industries
      • Media production
      • Government & defense
      • Content distribution
      • Service providers
      • Partners
      • OSS/BSS
    • Agile
      • Agile Webspace
      • Everything Agile
        • The Agile Manifesto
        • Best Practices
        • Retro Recipes
      • Methodologies
        • The Scrum Framework
        • Kanban
        • Extreme Programming
      • Roles
        • The Product Owner
        • The Agile Coach
        • The Quality & UX Coach (QX)
    • DataMiner DevOps Professional Program
      • About the DevOps Program
      • DataMiner DevOps Support
  • Downloads
  • More
    • DataMiner Releases & Updates
    • Feature Suggestions
    • Climb the leaderboard!
    • Swag Shop
    • Contact
    • Global Feedback Survey
  • Support
  • PARTNERS
    • All Partners
    • Technology Partners
    • Strategic Partner Program
    • Deal Registration
  • >> Go to dataminer.services

HTTP Protocol, can’t login at first time

Solved76 views5 hours ago
2
Jose Araujo [DevOps Advocate]547 5 days ago 0 Comments

Hi

I have a issues with my protocol, I don't know for some reason, need click in login button twice  for login, I review my code and I think all is Ok, maybe something is wrong.

second issue, session 2 no run with timer
<Protocol xmlns="http://www.skyline.be/protocol">
<Name>TEST</Name>
<Description>TEST</Description>
<Version>1.0.0.1</Version>
<IntegrationID>DMS-DRV-0001</IntegrationID>
<Provider>Rio Pacifico</Provider>
<Vendor>TEST</Vendor>
<VendorOID>1.3.6.1.4.1.8813.2.99</VendorOID>
<DeviceOID>100</DeviceOID>
<ElementType>Monitoring Platform</ElementType>
<Type relativeTimers="true">http</Type>
<Display defaultPage="General" pageOrder="General;----------;Security;----------;Resources;Management;Services;Networking;Sensor;Licence;----------;Webpage#http://[Polling Ip]/" wideColumnPages="Security"/>
<SNMP includepages="true">auto</SNMP>

<Compliancies>
<CassandraReady>true</CassandraReady>
<MinimumRequiredVersion>10.2.0.0 - 12603</MinimumRequiredVersion>
</Compliancies>

<Params>
<Param id="1">
<Name>AfterStartup</Name>
<Description>After Startup</Description>
<Type>dummy</Type>
</Param>
<Param id="2">
<Name>StatusCodePingCheck</Name>
<Description>Statuscodepingcheck</Description>
<Type>read</Type>
<Interprete>
<RawType>other</RawType>
<Type>string</Type>
<LengthType>next param</LengthType>
</Interprete>
</Param>
<Param id="3">
<Name>PingCheckResponse</Name>
<Description>Pingcheckresponse</Description>
<Type>read</Type>
<Interprete>
<RawType>other</RawType>
<Type>string</Type>
<LengthType>next param</LengthType>
</Interprete>
</Param>
<Param id="4">
<Name>StatusCodeLogin</Name>
<Description>Statuscodelogin</Description>
<Type>read</Type>
<Interprete>
<RawType>other</RawType>
<Type>string</Type>
<LengthType>next param</LengthType>
</Interprete>
</Param>
<Param id="5">
<Name>LoginResponse</Name>
<Description>Login Response</Description>
<Type>read</Type>
<Interprete>
<RawType>other</RawType>
<Type>string</Type>
<LengthType>next param</LengthType>
</Interprete>
</Param>
<Param id="6">
<Name>LoginSend</Name>
<Description>Login Send</Description>
<Type>read</Type>
<Interprete>
<RawType>other</RawType>
<Type>string</Type>
<LengthType>next param</LengthType>
</Interprete>
</Param>
<Param id="7" trending="false">
<Name>StatusFirmware</Name>
<Description>Status Firmware</Description>
<Type>read</Type>
<Information>
</Information>
<Interprete>
<RawType>other</RawType>
<Type>string</Type>
<LengthType>next param</LengthType>
</Interprete>
<Display>
<RTDisplay>true</RTDisplay>
<Positions>
<Position>
<Page>General</Page>
<Column>1</Column>
<Row>0</Row>
</Position>
</Positions>
</Display>
<Measurement>
<Type>string</Type>
</Measurement>
</Param>
<Param id="8" trending="false">
<Name>FirmwareResponse</Name>
<Description>Respondse of Firmware API</Description>
<Type>read</Type>
<Information>
</Information>
<Interprete>
<RawType>other</RawType>
<Type>string</Type>
<LengthType>next param</LengthType>
</Interprete>
<Display>
<RTDisplay>true</RTDisplay>
<Positions>
<Position>
<Page>General</Page>
<Column>1</Column>
<Row>1</Row>
</Position>
</Positions>
</Display>
<Measurement>
<Type>string</Type>
</Measurement>
</Param>

<Param id="100" trending="true">
<Name>APIHealth</Name>
<Description>API Health</Description>
<Type>read</Type>
<Information>
<Subtext>
<![CDATA[API Health Status]]>
</Subtext>
</Information>
<Interprete>
<RawType>numeric text</RawType>
<Type>double</Type>
<LengthType>next param</LengthType>
</Interprete>
<Alarm>
<Monitored>true</Monitored>
<CH>Fail</CH>
<Normal>Healhty</Normal>
</Alarm>
<Display>
<RTDisplay>true</RTDisplay>
<Positions>
<Position>
<Page>General</Page>
<Column>0</Column>
<Row>0</Row>
</Position>
<Position>
<Page>Resources</Page>
<Column>0</Column>
<Row>0</Row>
</Position>
<Position>
<Page>Management</Page>
<Column>0</Column>
<Row>0</Row>
</Position>
<Position>
<Page>Services</Page>
<Column>0</Column>
<Row>0</Row>
</Position>
<Position>
<Page>Networking</Page>
<Column>0</Column>
<Row>0</Row>
</Position>
<Position>
<Page>Sensor</Page>
<Column>0</Column>
<Row>0</Row>
</Position>
<Position>
<Page>Licence</Page>
<Column>0</Column>
<Row>0</Row>
</Position>
</Positions>
</Display>
<Measurement>
<Type>discreet</Type>
<Discreets>
<Discreet>
<Display>Fail</Display>
<Value>0</Value>
</Discreet>
<Discreet>
<Display>Healhty</Display>
<Value>1</Value>
</Discreet>
</Discreets>
</Measurement>
</Param>
<Param id="101" trending="false">
<Name>ProtocolSupport</Name>
<Description>Protocol Support</Description>
<Type>read</Type>
<Information>
<Subtext>
<![CDATA[API support with this protocol]]>
</Subtext>
</Information>
<Alarm>
<Monitored>true</Monitored>
<Normal>Support</Normal>
<CH>Not Support</CH>
</Alarm>
<Interprete>
<RawType>numeric text</RawType>
<Type>double</Type>
<LengthType>next param</LengthType>
</Interprete>
<Display>
<RTDisplay>true</RTDisplay>
<Positions>
<Position>
<Page>General</Page>
<Column>0</Column>
<Row>1</Row>
</Position>
</Positions>
</Display>
<Measurement>
<Type>discreet</Type>
<Discreets>
<Discreet>
<Display>Not Support</Display>
<Value>0</Value>
</Discreet>
<Discreet>
<Display>Support</Display>
<Value>1</Value>
</Discreet>
</Discreets>
</Measurement>
</Param>
<Param id="102" trending="false">
<Name>APIVersion</Name>
<Description>API Version</Description>
<Type>read</Type>
<Information>
<Subtext>
<![CDATA[API Version]]>
</Subtext>
</Information>
<Alarm>
<Monitored>true</Monitored>
<Normal>2.4.0.3</Normal>
<CH>=!2.4.0.3</CH>
</Alarm>
<Interprete>
<RawType>other</RawType>
<Type>string</Type>
<LengthType>next param</LengthType>
</Interprete>
<Display>
<RTDisplay>true</RTDisplay>
<Positions>
<Position>
<Page>General</Page>
<Column>0</Column>
<Row>2</Row>
</Position>
</Positions>
</Display>
<Measurement>
<Type>string</Type>
</Measurement>
</Param>
<Param id="103" trending="false">
<Name>FirmwareVersion</Name>
<Description>Firmware Version</Description>
<Type>read</Type>
<Information>
<Subtext>
<![CDATA[Firmware Version]]>
</Subtext>
</Information>
<Alarm>
<Monitored>true</Monitored>
<Normal>4.1.30.0-0</Normal>
<CH>=!4.1.30.0-0</CH>
</Alarm>
<Interprete>
<RawType>other</RawType>
<Type>string</Type>
<LengthType>next param</LengthType>
</Interprete>
<Display>
<RTDisplay>true</RTDisplay>
<Positions>
<Position>
<Page>General</Page>
<Column>0</Column>
<Row>3</Row>
</Position>
</Positions>
</Display>
<Measurement>
<Type>string</Type>
</Measurement>
</Param>
<Param id="104" trending="false">
<Name>ServerUUID</Name>
<Description>Server UUID</Description>
<Type>read</Type>
<Information>
<Subtext>
<![CDATA[Unique UUID of Encoder]]>
</Subtext>
</Information>
<Alarm>
<Monitored>false</Monitored>
</Alarm>
<Interprete>
<RawType>other</RawType>
<Type>string</Type>
<LengthType>next param</LengthType>
</Interprete>
<Display>
<RTDisplay>true</RTDisplay>
<Positions>
<Position>
<Page>General</Page>
<Column>0</Column>
<Row>4</Row>
</Position>
</Positions>
</Display>
<Measurement>
<Type>string</Type>
</Measurement>
</Param>
<Param id="105" trending="false">
<Name>EncoderStatus</Name>
<Description>Encoder Status</Description>
<Type>read</Type>
<Information>
<Subtext>
<![CDATA[Login Status of Encoder]]>
</Subtext>
</Information>
<Alarm>
<Monitored>true</Monitored>
<Normal>Authorized</Normal>
<CH>Not Authorized</CH>
</Alarm>
<Interprete>
<RawType>numeric text</RawType>
<Type>double</Type>
<LengthType>next param</LengthType>
</Interprete>
<Display>
<RTDisplay>true</RTDisplay>
<Positions>
<Position>
<Page>General</Page>
<Column>0</Column>
<Row>5</Row>
</Position>
<Position>
<Page>Security</Page>
<Column>0</Column>
<Row>0</Row>
</Position>
</Positions>
</Display>
<Measurement>
<Type>discreet</Type>
<Discreets>
<Discreet>
<Display>Not Authorized</Display>
<Value>0</Value>
</Discreet>
<Discreet>
<Display>Authorized</Display>
<Value>1</Value>
</Discreet>
</Discreets>
</Measurement>
</Param>
<Param id="106" trending="false">
<Name>FirmwareRelease</Name>
<Description>Firmware Release</Description>
<Type>read</Type>
<Information>
<Subtext>
<![CDATA[Firmware release version]]>
</Subtext>
</Information>
<Alarm>
<Monitored>false</Monitored>
</Alarm>
<Interprete>
<RawType>other</RawType>
<Type>string</Type>
<LengthType>next param</LengthType>
</Interprete>
<Display>
<RTDisplay>true</RTDisplay>
<Positions>
<Position>
<Page>General</Page>
<Column>0</Column>
<Row>6</Row>
</Position>
</Positions>
</Display>
<Measurement>
<Type>string</Type>
</Measurement>
</Param>
<Param id="107" trending="false">
<Name>ServerType</Name>
<Description>Server Type</Description>
<Type>read</Type>
<Information>
</Information>
<Interprete>
<RawType>other</RawType>
<Type>string</Type>
<LengthType>next param</LengthType>
</Interprete>
<Display>
<RTDisplay>true</RTDisplay>
<Positions>
<Position>
<Page>General</Page>
<Column>0</Column>
<Row>7</Row>
</Position>
</Positions>
</Display>
<Measurement>
<Type>string</Type>
</Measurement>
</Param>
<Param id="108" trending="false">
<Name>VersionType</Name>
<Description>Version Release</Description>
<Type>read</Type>
<Information>
</Information>
<Interprete>
<RawType>other</RawType>
<Type>string</Type>
<LengthType>next param</LengthType>
</Interprete>
<Display>
<RTDisplay>true</RTDisplay>
<Positions>
<Position>
<Page>General</Page>
<Column>0</Column>
<Row>8</Row>
</Position>
</Positions>
</Display>
<Measurement>
<Type>string</Type>
</Measurement>
</Param>
<Param id="135" trending="false" save="true">
<Name>username</Name>
<Description>Username</Description>
<Type>read</Type>
<Information>
<Subtext>
0
</Subtext>
</Information>
<Interprete>
<RawType>other</RawType>
<Type>string</Type>
<LengthType>next param</LengthType>
</Interprete>
<Display>
<RTDisplay>true</RTDisplay>
<Positions>
<Position>
<Page>Security</Page>
<Column>0</Column>
<Row>2</Row>
</Position>
</Positions>
</Display>
<Measurement>
<Type>string</Type>
</Measurement>
</Param>
<Param id="235" setter="true">
<Name>username</Name>
<Description>Username</Description>
<Type>write</Type>
<Interprete>
<RawType>other</RawType>
<Type>string</Type>
<LengthType>next param</LengthType>
</Interprete>
<Display>
<RTDisplay>true</RTDisplay>
<Positions>
<Position>
<Page>Security</Page>
<Column>0</Column>
<Row>2</Row>
</Position>
</Positions>
</Display>
<Measurement>
<Type>string</Type>
</Measurement>
</Param>

<Param id="136" trending="false" save="true">
<Name>Password</Name>
<Description>Password</Description>
<Type>read</Type>
<Information>
<Subtext>
0
</Subtext>
</Information>
<Interprete>
<RawType>other</RawType>
<Type>string</Type>
<LengthType>next param</LengthType>
</Interprete>
<Display>
<RTDisplay>true</RTDisplay>
<Positions>
<Position>
<Page>Security</Page>
<Column>0</Column>
<Row>3</Row>
</Position>
</Positions>
</Display>
<Measurement>
<Type options="Password">string</Type>
</Measurement>
</Param>
<Param id="236" setter="true">
<Name>Password</Name>
<Description>Password</Description>
<Type>write</Type>
<Interprete>
<RawType>other</RawType>
<Type>string</Type>
<LengthType>next param</LengthType>
</Interprete>
<Display>
<RTDisplay>true</RTDisplay>
<Positions>
<Position>
<Page>Security</Page>
<Column>0</Column>
<Row>3</Row>
</Position>
</Positions>
</Display>
<Measurement>
<Type options="Password">string</Type>
</Measurement>
</Param>
<Param id="137" trending="false">
<Name>TokenValue</Name>
<Description>Token</Description>
<Type>read</Type>
<Information>
<Subtext>
0
</Subtext>
</Information>
<Interprete>
<RawType>other</RawType>
<Type>string</Type>
<LengthType>next param</LengthType>
</Interprete>
<Display>
<RTDisplay>true</RTDisplay>
<Positions>
<Position>
<Page>Security</Page>
<Column>0</Column>
<Row>1</Row>
</Position>
</Positions>
</Display>
<Measurement>
<Type>string</Type>
</Measurement>
</Param>
<Param id="138">
<Name>Login</Name>
<Description></Description>
<Type>write</Type>
<Information>
<Subtext>A</Subtext>
</Information>
<Interprete>
<RawType>other</RawType>
<Type>string</Type>
<LengthType>next param</LengthType>
</Interprete>
<Display>
<RTDisplay>true</RTDisplay>
<Positions>

<Position>
<Page>Security</Page>
<Column>0</Column>
<Row>4</Row>
</Position>
</Positions>
</Display>
<Measurement>
<Type width="110">button</Type>
<Discreets>
<Discreet>
<Display>Login</Display>
<Value>Login</Value>
</Discreet>
</Discreets>
</Measurement>
</Param>

</Params>
<QActions>
<QAction id="1" name="Precompiled Code" encoding="csharp" options="precompile" />
<QAction id="2" name="After Startup" encoding="csharp" triggers="1" />
<QAction id="3" name="Ping Status" encoding="csharp" triggers="3" />
<QAction id="4" name="Extract token" encoding="csharp" triggers="5"/>
<QAction id="5" name="Send login" encoding="csharp" triggers="138"/>
<QAction id="6" name="firmware" encoding="csharp" triggers="101"/>

</QActions>

<HTTP>
<Session id="1" name="API Status">
<Connection id="1" name="Check Ping">
<Request verb="GET" url="/api/v1/system/network/ping">
</Request>
<Response statusCode="2">
<Content pid="3"></Content>
</Response>
</Connection>
</Session>
<Session id="2" name="API Login">
<Connection id="1" name="Credentials">
<Request verb="POST" url="/api/v1/system/configuration/login">
<!--<Parameters>
<Parameter key="user" pid="135"></Parameter>
<Parameter key="password" pid="136"></Parameter>
</Parameters>-->
<Data pid="6">
</Data>
<Headers>
  <Header key="Content-Type">application/json</Header>
</Headers>
</Request>
<Response statusCode="4">
<Content pid="5"></Content>
</Response>
</Connection>
</Session>
<Session id="3" name="API firmware">
<Connection id="1" name="firmware">
<Request verb="GET" url="/api/v1/system/updater/firmware">
<Headers>
<Header key="token" pid="137"/>
</Headers>
</Request>
<Response statusCode="7">
<Content pid="8"></Content>
</Response>
</Connection>
</Session>

</HTTP>

<Groups>
<Group id="1">
<Name>After Startup</Name>
<Description>After Startup</Description>
<Type>poll action</Type>
<Content>
<Action>2</Action>
</Content>
</Group>
<Group id="2">
<Name>Fast Polling Session</Name>
<Description>Fast Polling 10s</Description>
<Type>poll</Type>
<Content>
<Session>1</Session>
</Content>
</Group>
<Group id="3">
<Name>Fast Polling Action</Name>
<Description>Fast Polling 10s</Description>
<Type>poll action</Type>
<Content>
<Action>3</Action>
</Content>
</Group>
<Group id="4">
<Name>Slow Polling Session</Name>
<Description>Fast Polling 5m</Description>
<Type>poll</Type>
<Content>
<Session>2</Session>
<Session>3</Session>
</Content>
</Group>
<Group id="5">
<Name>Send Login</Name>
<Description>Send Login</Description>
<Type>poll</Type>
<Content>
                <Session>2</Session>
</Content>
</Group>
</Groups>

<Triggers>
<Trigger id="1">
<Name>After Startup</Name>
<On>protocol</On>
<Time>after startup</Time>
<Type>action</Type>
<Content>
<Id>1</Id>
</Content>
</Trigger>
<Trigger id="2">
<Name>Login</Name>
<On id="138">parameter</On>
<Time>change</Time>
<Type>action</Type>
<Content>
<Id>4</Id>
</Content>
</Trigger>
</Triggers>

<Actions>
<Action id="1">
<Name>After Startup Group</Name>
<On id="1">group</On>
<Type>execute next</Type>
</Action>
<Action id="2">
<Name>After Startup QAction</Name>
<On id="1">parameter</On>
<Type>run actions</Type>
</Action>
<Action id="3">
<Name>Run Ping Check</Name>
<On id="3">parameter</On>
<Type>run actions</Type>
</Action>
<Action id="4">
<Name>Send Login</Name>
<On id="5">group</On>
<Type>execute one now</Type>
</Action>
<Action id="5">
<Name>Run Check Support</Name>
<On id="101">parameter</On>
<Type>run actions</Type>
</Action>
</Actions>

<Timers>
<Timer id="1">
<Name>Fast Timer (10s)</Name>
<Time initial="true">10000</Time>
<Interval>75</Interval>
<Content>
<Group>2</Group>

</Content>
</Timer>
<Timer id="2">
<Name>Medium Timer (1m)</Name>
<Time initial="true" dataDisplay="30000">60000</Time>
<Interval>75</Interval>
<Content>
<Group>3</Group>
</Content>
</Timer>
<Timer id="3">
<Name>Slow Timer (30S)</Name>
<Time initial="true">30000</Time>
<Interval>75</Interval>
<Content>
<Group>4</Group>
</Content>
</Timer>
<Timer id="4">
<Name>Slow Timer (5m)</Name>
<Time initial="true">300000</Time>
<Interval>75</Interval>
<Content>
<!--<Group>4</Group>-->
</Content>
</Timer>

</Timers>

<PortSettings name="HTTP Connection">
<BusAddress>
<DefaultValue>ByPassProxy</DefaultValue>
<Disabled>false</Disabled>
</BusAddress>
<IPport>
<DefaultValue>80</DefaultValue>
<Disabled>false</Disabled>
</IPport>
</PortSettings>

</Protocol>

Jose Araujo [DevOps Advocate] Selected answer as best 5 hours ago

2 Answers

  • Active
  • Voted
  • Newest
  • Oldest
0
Bram Devlaminck [SLC] [DevOps Advocate]320 Posted 3 days ago 0 Comments

Hi Jose,

I cannot immediately find a reason for the login only working the second time.
I'd recommend checking if it is the login itself that actually fails, or if the login succeeds and the logic that displays if the login was successful is faulty.

Regarding session 2 not being executed by a timer.
I can see that your "group 5" (that contains session 2) is not part of a timer.
You'll simply have to add it to one of your timers.
In the example below, I added it to the "Slow Timer (5m)", but you can do accordingly to another timer of your liking.

<Timer id="4">
<Name>Slow Timer (5m)</Name>
<Time initial="true">300000</Time>
<Interval>75</Interval>
<Content>
<Group>5</Group>
</Content>
</Timer>

Hope this helps and you manage to sort everything out.

Kind regards,

Jose Araujo [DevOps Advocate] Selected answer as best 5 hours ago
0
Tom Waterbley [SLC] [DevOps Catalyst]8.93K Posted 3 days ago 0 Comments

Hi Jose,

Your login button (PID 138) has two triggers: one to send the HTTP request to the device, and one that triggers a QAction. The QAction is probably to prepare the data that needs to be sent to the device.

The first time you click the button, the request data is probably still empty as the QAction might not have been executed. The second time you click the login button, the data is present and the login succeeds.

To fix this problem, you'll need to trigger sending the HTTP request from QAction 5, after setting the request data parameter (PID 6).

Tom Waterbley [SLC] [DevOps Catalyst] Answered question 3 days ago
Please login to be able to comment or post an answer.

My DevOps rank

DevOps Members get more insights on their profile page.

My user earnings

0 Dojo credits

Spend your credits in our swag shop.

0 Reputation points

Boost your reputation, climb the leaderboard.

Promo banner DataMiner DevOps Professiona Program
DataMiner Integration Studio (DIS)
Empower Katas
Privacy Policy • Terms & Conditions • Contact

© 2025 Skyline Communications. All rights reserved.

DOJO Q&A widget

Can't find what you need?

? Explore the Q&A DataMiner Docs

[ Placeholder content for popup link ] WordPress Download Manager - Best Download Management Plugin