Ler dados textField JavaFX

Bom dia, como estou começando com JavaFX estou montando uma pequena aplicação para testar, no momento estou tentando ler o conteúdo de um campo textField mas tenho null pointer como retorno.
fiz a ligação do controller no fxml, criei o id e vinculei.
Erro:

Exception in thread "JavaFX Application Thread" java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
    at javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1774)
    at javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(FXMLLoader.java:1657)
    at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
    at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
    at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
    at javafx.event.Event.fireEvent(Event.java:198)
    at javafx.scene.Node.fireEvent(Node.java:8411)
    at javafx.scene.control.Button.fire(Button.java:185)
    at com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:182)
    at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:96)
    at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:89)
    at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218)
    at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
    at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
    at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
    at javafx.event.Event.fireEvent(Event.java:198)
    at javafx.scene.Scene$MouseHandler.process(Scene.java:3757)
    at javafx.scene.Scene$MouseHandler.access$1500(Scene.java:3485)
    at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1762)
    at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2494)
    at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:352)
    at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:275)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$354(GlassViewEventHandler.java:388)
    at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:389)
    at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:387)
    at com.sun.glass.ui.View.handleMouseEvent(View.java:555)
    at com.sun.glass.ui.View.notifyMouse(View.java:937)
    at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    at com.sun.glass.ui.win.WinApplication.lambda$null$148(WinApplication.java:191)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:71)
    at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:275)
    at javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1771)
    ... 48 more
Caused by: java.lang.NullPointerException
    at br.ind.risc.controller.Controller.validateFormB1(Controller.java:134)
    at br.ind.risc.controller.Controller.searchQ1(Controller.java:115)
    ... 58 more

Fonte:
controller

package br.ind.risc.controller;

import java.awt.Dialog;
import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
import java.util.Date;
import java.util.List;

import javax.print.attribute.standard.DateTimeAtCompleted;
import javax.print.attribute.standard.DialogTypeSelection;

import br.ind.risc.application.ReportMain;
import br.ind.risc.dao.DAOFactory;
import br.ind.risc.dao.TagsDAO;
import br.ind.risc.model.Tags;
import br.ind.risc.util.StringUtils;
import javafx.application.Platform;
import javafx.beans.property.BooleanProperty;
import javafx.beans.property.SimpleBooleanProperty;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.fxml.FXML;
import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType;
import javafx.scene.control.Button;
import javafx.scene.control.ComboBox;
import javafx.scene.control.DatePicker;
import javafx.scene.control.RadioButton;
import javafx.scene.control.TextField;
import org.controlsfx.dialog.Dialogs;

public class Controller {
    
    private ReportMain reportMain;
    
    LocalDate dtIniDif;
    LocalDate dtFimDif;
    
    /**
     * Quadro 1 Data/Tag
     * 2 date picker; 1 combobox; 4 radio button
     * 1 button
     */
    @FXML
    private DatePicker dtIni1;
    @FXML
    private DatePicker dtFim1;
    @FXML
    private ComboBox<String> cbTag1;
    @FXML
    private RadioButton pdf1;
    @FXML
    private RadioButton excel1;
    @FXML
    private RadioButton gBarra1;
    @FXML
    private RadioButton gLinha1;
    @FXML
    private Button btnGerar1;
    
    @FXML
    private TextField hourIni;
    
    /**
     * Dados tag
     */
    private Tags currentTags;
    
    /**
     * Objeto DAO para manipulação de dados
     */
    private TagsDAO dao;
    
    /**
     * Property que indica se os resultados da tabela estão filtrados 
     */
    private BooleanProperty resultsFiltered = new SimpleBooleanProperty();
    
    /**
     * Método chamado pelo JavaFX quando o controller é instanciado
     */
    @FXML
    private void initialize(){
        //obtém o objeto DAO
        //dao = DAOFactory.getTagsDAO();
        //carrega os dados sem filtragem
        loadData(false);
    }
    
    /**
     * sair
     */
    @FXML
    public void exit(){
        //Encerra a aplicação
        Platform.exit();
    }
    
    /**
     * Método chamando quando o usuário confirma a geração do relatório do bloco 1
     */
    @FXML
    public void onConfirmB1(){
        
        
    }
    
    /**
     * Método chamando quando uma filtragem é realizada quadro 1
     */
    @FXML
    public void searchQ1(){
        
        //valida se os dados estão ok
        String errorMessage = validateFormB1();
        if(!errorMessage.isEmpty()){
        //Caso não estejam, mostra o erro de validação e retorna
        showValidationError(errorMessage);
            return;
        }
        //Carrega os dados com a filtragem habilitada
        loadData(true);
        
        //Define os  dados como estando filtrados
        resultsFiltered.set(true);
    }
    
    /**
     * valida o formulário bloco1
     */
    private String validateFormB1(){
        StringBuilder errorMessage = new StringBuilder();

        System.out.println(hourIni.getText());
        
        //Verifica se a data foi preenchida
        if(StringUtils.isEmpty(currentTags.getData().toString())){
            errorMessage.append("Inserir a data").append(StringUtils.newLine());
        }
        
        return errorMessage.toString();
    }
    
    /**
     * Exibe um erro de validação na tela
     * @param message
     */
    private void showValidationError(String message){
        Alert alert = new Alert(AlertType.ERROR);
        alert.setTitle("Erro de validação");
        alert.setHeaderText("Dados incorretos");
        alert.setContentText(message);
        alert.showAndWait();
    }
    
    /**
     * Carrega os dados na tela
     * @para filter true se é preciso filtrar os dados; false, caso contrário
     */
    private void loadData(boolean filter){
        List<Tags> items = null;
        if(!filter){
            //items = dao.load();
        }else{
            //items = dao.filter(dt1, dt2, idTag)
        }
        
        //ObservableList<Tags> list = FXCollections.observableArrayList(items);
        
    }
}

fxml:

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.geometry.Insets?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.ComboBox?>
<?import javafx.scene.control.DatePicker?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.RadioButton?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.Pane?>

<AnchorPane maxHeight="700.0" maxWidth="897.0" minHeight="416.0" minWidth="500.0" prefHeight="512.0" prefWidth="776.0" styleClass="background" stylesheets="@css/RootTheme.css" 
            xmlns="http://javafx.com/javafx/8.0.65" xmlns:fx="http://javafx.com/fxml/1" fx:controller="br.ind.risc.controller.Controller">
   <children>
           <Pane layoutX="15.0" layoutY="30.0" prefHeight="201.0" prefWidth="362.0" styleClass="pane" stylesheets="@css/RootTheme.css">
               <children>
                   <Label layoutX="7.0" layoutY="-11.0" styleClass="label" stylesheets="@css/RootTheme.css" text="Data/Tag" textAlignment="CENTER" textOverrun="WORD_ELLIPSIS" />
                   <Label layoutX="14.0" layoutY="28.0" styleClass="label" stylesheets="@css/RootTheme.css" text="Data Inicial:">
                       <padding>
                           <Insets left="2.0" right="2.0" />
                       </padding>
                   </Label>
            <Label layoutX="14.0" layoutY="59.0" styleClass="label" stylesheets="@css/RootTheme.css" text="Data Final:">
               <padding>
                  <Insets left="2.0" right="2.0" />
               </padding>
            </Label>
            <Label layoutX="14.0" layoutY="95.0" styleClass="label" stylesheets="@css/RootTheme.css" text="Tag:">
               <padding>
                  <Insets left="2.0" right="2.0" />
               </padding>
            </Label>
            <ComboBox layoutX="108.0" layoutY="93.0" prefHeight="25.0" prefWidth="239.0" />
            <DatePicker layoutX="108.0" layoutY="57.0" />
            <DatePicker layoutX="108.0" layoutY="26.0" />
            <RadioButton layoutX="25.0" layoutY="134.0" mnemonicParsing="false" text="PDF" />
            <RadioButton layoutX="77.0" layoutY="134.0" mnemonicParsing="false" text="Excel" />
            <RadioButton layoutX="134.0" layoutY="134.0" mnemonicParsing="false" text="Gráfico(Barra)" />
            <Button layoutX="121.0" layoutY="162.0" fx:id="btnGerar1" onAction="#searchQ1"  mnemonicParsing="false" prefHeight="32.0" prefWidth="147.0" text="Gerar relatoriosdfsd" />
            <RadioButton layoutX="238.0" layoutY="134.0" mnemonicParsing="false" text="Gráfico(Linha)" />
               </children>
           </Pane>
           <Pane layoutX="397.0" layoutY="30.0" prefHeight="201.0" prefWidth="362.0" styleClass="pane" stylesheets="@css/RootTheme.css">
                <Label layoutX="14" layoutY="-11.0" styleClass="label" stylesheets="@css/RootTheme.css" text="Data" textAlignment="CENTER" textOverrun="WORD_ELLIPSIS" />
             <Label layoutX="12.0" layoutY="32.0" text="Data Inicial:" />
             <Label layoutX="15.0" layoutY="69.0" text="Data Final:" />
             <DatePicker layoutX="96.0" layoutY="30.0" />
             <DatePicker layoutX="96.0" layoutY="67.0" />
             <RadioButton layoutX="27.0" layoutY="121.0" mnemonicParsing="false" text="PDF" />
             <RadioButton layoutX="79.0" layoutY="121.0" mnemonicParsing="false" text="Excel" />
             <RadioButton layoutX="136.0" layoutY="121.0" mnemonicParsing="false" text="Gráfico(Barra)" />
             <RadioButton layoutX="240.0" layoutY="121.0" mnemonicParsing="false" text="Gráfico(Linha)" />
             <Button layoutX="121.0" layoutY="160.0" mnemonicParsing="false" prefHeight="32.0" prefWidth="147.0" text="Gerar relatorio" />
           </Pane>
           <Pane layoutX="14.0" layoutY="245.0" prefHeight="251.0" prefWidth="362.0" styleClass="pane" stylesheets="@css/RootTheme.css">
                <Label layoutX="14" layoutY="-11.0" styleClass="label" stylesheets="@css/RootTheme.css" text="Data/Tag/Hora" textAlignment="CENTER" textOverrun="WORD_ELLIPSIS" />
             <Label layoutX="14.0" layoutY="22.0" text="Data:" />
             <Label layoutX="17.0" layoutY="59.0" text="Tag:" />
             <Label layoutX="17.0" layoutY="91.0" text="Hora inicial:" />
             <Label layoutX="14.0" layoutY="123.0" text="Hora final:" />
             <DatePicker layoutX="106.0" layoutY="20.0" />
             <ComboBox layoutX="106.0" layoutY="57.0" prefHeight="25.0" prefWidth="239.0" />
             <TextField layoutX="107.0" layoutY="89.0" text="Hora Inicial" id="hourIni"/>
             <TextField layoutX="107.0" layoutY="121.0" />
             <RadioButton layoutX="12.0" layoutY="166.0" mnemonicParsing="false" text="PDF" />
             <RadioButton layoutX="64.0" layoutY="166.0" mnemonicParsing="false" text="Excel" />
             <RadioButton layoutX="121.0" layoutY="166.0" mnemonicParsing="false" text="Gráfico(Barra)" />
             <RadioButton layoutX="225.0" layoutY="166.0" mnemonicParsing="false" text="Gráfico(Linha)" />
             <Button layoutX="108.0" layoutY="205.0" mnemonicParsing="false" prefHeight="32.0" prefWidth="147.0" text="Gerar relatorio" />
           </Pane>
           <Pane layoutX="397.0" layoutY="245.0" prefHeight="251.0" prefWidth="362.0" styleClass="pane" stylesheets="@css/RootTheme.css">
               <Label layoutX="14" layoutY="-11.0" styleClass="label" stylesheets="@css/RootTheme.css" text="Data/Hora" textAlignment="CENTER" textOverrun="WORD_ELLIPSIS" />
         <Button layoutX="27.0" layoutY="30.0" mnemonicParsing="false" prefHeight="192.0" prefWidth="309.0" text="Gerar relatorio" />
           </Pane>
    </children>
   
</AnchorPane>

Grato pela ajuda